diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..033c228 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +*.sdf +Debug/ +*.filters +*.suo +DirectXTex/ +*.error +ipch/ +*.user +*.opensdf +*.opendb +*.db diff --git a/Assets/Boxes.mtl b/Assets/Boxes.mtl new file mode 100644 index 0000000..7665742 --- /dev/null +++ b/Assets/Boxes.mtl @@ -0,0 +1,26 @@ +# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware +# File Created: 22.09.2015 22:34:25 + +newmtl RedCube + Ns 9.999999 + Ni 1.500000 + d 1.000000 + Tr 0.000000 + Tf 1.000000 1.000000 1.000000 + illum 2 + Ka 1.000000 0.000000 0.000000 + Kd 1.000000 0.000000 0.000000 + Ks 0.000000 0.000000 0.000000 + Ke 0.000000 0.000000 0.000000 + +newmtl BlueCube + Ns 9.999999 + Ni 1.500000 + d 1.000000 + Tr 0.000000 + Tf 1.000000 1.000000 1.000000 + illum 2 + Ka 0.047059 0.000000 1.000000 + Kd 0.047059 0.000000 1.000000 + Ks 0.000000 0.000000 0.000000 + Ke 0.000000 0.000000 0.000000 diff --git a/Assets/Boxes.obj b/Assets/Boxes.obj new file mode 100644 index 0000000..4b17746 --- /dev/null +++ b/Assets/Boxes.obj @@ -0,0 +1,105 @@ +# 3dA Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware +# File Created: 22.09.2015 22:34:25 + +mtllib Boxes.mtl + +# +# object RedBox +# + +v -0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 1.000000 -0.500000 +# 8 vertices + +vn 0.000000 -1.000000 -0.000000 +vn 0.000000 1.000000 -0.000000 +vn 0.000000 0.000000 1.000000 +vn 1.000000 0.000000 -0.000000 +vn 0.000000 0.000000 -1.000000 +vn -1.000000 0.000000 -0.000000 +# 6 vertex normals + +vt 1.000000 0.000000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 0.000000 1.000000 0.000000 +vt 0.000000 0.000000 0.000000 +# 4 texture coords + +g RedBox +usemtl RedCube +s 2 +f 1/1/1 2/2/1 3/3/1 +f 3/3/1 4/4/1 1/1/1 +s 4 +f 5/4/2 6/1/2 7/2/2 +f 7/2/2 8/3/2 5/4/2 +s 8 +f 1/4/3 4/1/3 6/2/3 +f 6/2/3 5/3/3 1/4/3 +s 16 +f 4/4/4 3/1/4 7/2/4 +f 7/2/4 6/3/4 4/4/4 +s 32 +f 3/4/5 2/1/5 8/2/5 +f 8/2/5 7/3/5 3/4/5 +s 64 +f 2/4/6 1/1/6 5/2/6 +f 5/2/6 8/3/6 2/4/6 +# 12 faces + +# +# object BlueBox +# + +v -0.500000 0.000000 1.978305 +v -0.500000 0.000000 0.978305 +v 0.500000 0.000000 0.978305 +v 0.500000 0.000000 1.978305 +v -0.500000 1.000000 1.978305 +v 0.500000 1.000000 1.978305 +v 0.500000 1.000000 0.978305 +v -0.500000 1.000000 0.978305 +# 8 vertices + +vn 0.000000 -1.000000 -0.000000 +vn 0.000000 1.000000 -0.000000 +vn 0.000000 0.000000 1.000000 +vn 1.000000 0.000000 -0.000000 +vn 0.000000 0.000000 -1.000000 +vn -1.000000 0.000000 -0.000000 +# 6 vertex normals + +vt 1.000000 0.000000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 0.000000 1.000000 0.000000 +vt 0.000000 0.000000 0.000000 +# 4 texture coords + +g BlueBox +usemtl BlueCube +s 2 +f 9/5/7 10/6/7 11/7/7 +f 11/7/7 12/8/7 9/5/7 +s 4 +f 13/8/8 14/5/8 15/6/8 +f 15/6/8 16/7/8 13/8/8 +s 8 +f 9/8/9 12/5/9 14/6/9 +f 14/6/9 13/7/9 9/8/9 +s 16 +f 12/8/10 11/5/10 15/6/10 +f 15/6/10 14/7/10 12/8/10 +s 32 +f 11/8/11 10/5/11 16/6/11 +f 16/6/11 15/7/11 11/8/11 +s 64 +f 10/8/12 9/5/12 13/6/12 +f 13/6/12 16/7/12 10/8/12 +# 12 faces + diff --git a/Assets/Boxes.obj.meta b/Assets/Boxes.obj.meta new file mode 100644 index 0000000..845c679 --- /dev/null +++ b/Assets/Boxes.obj.meta @@ -0,0 +1,3 @@ +1.0 +{6799A53E-CBB1-451A-82C7-E5F10C33EBCA} +14435573237290376 diff --git a/LEditor/BoundsView.h b/LEditor/BoundsView.h new file mode 100644 index 0000000..4c0a963 --- /dev/null +++ b/LEditor/BoundsView.h @@ -0,0 +1,13 @@ +#ifndef BoundsView_h__ +#define BoundsView_h__ + +#include "ObjectsFactory.h" + +LOBJECT(BoundsView, Component) +public: + void tick(float deltaTime) override { + LEngine::Instance()->GetActiveScene()->GetGizmos().SetMatrix(transform()->GetGlobalTransform()); + LEngine::Instance()->GetActiveScene()->GetGizmos().DrawBounds(gameObject->GetComponent()->GetMesh()->GetBounds()); + } +}; +#endif // BoundsView_h__ diff --git a/LEditor/FreeCameraController.h b/LEditor/FreeCameraController.h new file mode 100644 index 0000000..843cb76 --- /dev/null +++ b/LEditor/FreeCameraController.h @@ -0,0 +1,67 @@ +#ifndef FreeCameraController_h__ +#define FreeCameraController_h__ + +#include "Component.h" +#include "lframework/Input.h" +#include +#include "Transform.h" +#include "ObjectsFactory.h" + +LOBJECT(FreeCameraController, Component) +public: + float mouse_speed; + float move_speed = 3.0f; + static constexpr float pi = 3.14159265358979f; + + FreeCameraController() : mouse_speed(0.01f){ + _angle_x = _angle_y = 0.0f; + } + + virtual void tick(float deltaTime) override { + auto mice = Input::Instance()->mice(); + auto mouse = mice[0]; + _angle_x += mouse_speed * mouse->GetDx(); + _angle_y += mouse_speed * mouse->GetDy(); + + _angle_y = clamp(_angle_y, -pi / 2.0f, pi / 2.0f); + + auto rv = Quaternion_f::angleAxis(_angle_y, float3(1.0f, 0.0f, 0.0f)); + auto rh = Quaternion_f::angleAxis(_angle_x, float3(0.0f, 1.0f, 0.0f)); + + /* if (mouse->GetDx() != 0) { + std::cout << "Mouse DX: " << mouse->GetDx() << std::endl; + } + if (mouse->GetDy() != 0) { + std::cout << "Mouse DY: " << mouse->GetDy() << std::endl; + }*/ + + gameObject->transform->SetLocalRotation(lm::mul(rh, rv)); + + + + auto keyboards = Input::Instance()->keyboards(); + auto keyboard = keyboards[0]; + + if(keyboard->GetKeyState(0x57)){ + gameObject->transform->SetLocalPosition(gameObject->transform->GetLocalPosition() + gameObject->transform->forward() * (deltaTime * move_speed)); + } + + if (keyboard->GetKeyState(0x53)) { + gameObject->transform->SetLocalPosition(gameObject->transform->GetLocalPosition() - gameObject->transform->forward() * (deltaTime * move_speed)); + } + + if (keyboard->GetKeyState(0x41)) { + gameObject->transform->SetLocalPosition(gameObject->transform->GetLocalPosition() - gameObject->transform->right() * (deltaTime * move_speed)); + } + + if (keyboard->GetKeyState(0x44)) { + gameObject->transform->SetLocalPosition(gameObject->transform->GetLocalPosition() + gameObject->transform->right() * (deltaTime * move_speed)); + } + + + } +private: + float _angle_x; + float _angle_y; +}; +#endif // FreeCameraController_h__ diff --git a/LEditor/LEditor.aps b/LEditor/LEditor.aps new file mode 100644 index 0000000..f572c8a Binary files /dev/null and b/LEditor/LEditor.aps differ diff --git a/LEditor/LEditor.cpp b/LEditor/LEditor.cpp new file mode 100644 index 0000000..1bbd87a --- /dev/null +++ b/LEditor/LEditor.cpp @@ -0,0 +1,167 @@ +#include +#include "LEditor.h" +#include +#include "LEngine.h" +#include "Ui.h" +#include "Controls/UiHwndCoreWindow.h" +#include "Controls/UiSwapChainWindow.h" +#include "RenderTargetOutput.h" +#include "SwapChainOutput.h" +#include "Mesh.h" +#include "GameObject.h" +#include "SceneRenderer.h" +#include "AssetManager.h" +#include "ObjMeshLoader.h" +#include "FreeCameraController.h" +#include "Input.h" +#include +#include "BoundsView.h" +#include +#include "AssetDatabase.h" +#include "AssetMetadata.h" +#include "OutputArchive.h" +#include "InputArchive.h" +#include "Asset.h" +#include "AssetFile.h" +#include + +#pragma comment(lib, "lframework.lib") + +GameObjectPtr CreateCube() { + auto cubeObject = GameObject::create(); + cubeObject->AddComponent()->SetMesh(Mesh::Create([](MeshPtr mesh) {MeshGenerator::Cube(mesh, true); })); + return cubeObject; +} + +struct TestObject : public Object { + uint8_t uint8_t_; + uint16_t uint16_t_; + uint32_t uint32_t_; + uint64_t uint64_t_; + std::string string_; + std::wstring wstring_; + + std::shared_ptr next; + + virtual void serialize(Archive& archive) override { + archive << uint8_t_ << uint16_t_ << uint32_t_; + archive << uint64_t_ << string_ << wstring_; + archive << std::static_pointer_cast(next); + } +}; + +void SaveScene(const std::wstring& path){ + AssetDatabase::get().open_asset_file(path); + + AssetFile asset(Guid(1, 2, 3, 4), path); + + //find all game objects + auto scene_objects = Object::FindObjectsOfType(); + + //add all game objects and components to scene asset + for(auto obj : scene_objects){ + asset.AddObject(obj); + auto components = obj->GetComponents(); + for (auto component : components) { + asset.AddObject(component); + } + } + + asset.Save(); +} + +void CreateTestScene(){ + auto cameraGo = GameObject::create(); + cameraGo->SetName(L"Main camera"); + cameraGo->AddComponent()->fov = 45.0f; + cameraGo->transform->SetLocalPosition(float3(0.0f, 4.0f, -4.0f)); + cameraGo->AddComponent(); +} + +void LoadScene(const std::wstring& path){ + auto archive = AssetDatabase::get().open_asset_file(path); +} + + +int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { + AllocConsole(); + freopen("CONOUT$", "w", stdout); + + auto ints = Input::Instance(); + AssetDatabase::get().set_root_path(L"D:\\lengine\\Assets"); + + auto editorWindow = UiSwapChainWindow::Create(L"LEngineEditorWindow"); + auto engine = LEngine::Instance(); + engine->Init(L"D:/lengine/LEngine/"); + engine->LoadScene(""); + + std::wstring scene = L"TestScene.asset"; + + CreateTestScene(); + //SaveScene(scene); + + //LoadScene(scene); + + auto outputs = engine->GetRenderer()->EnumOutputs(); + auto modes = engine->GetRenderer()->GetDisplayModes(DXGI_FORMAT_B8G8R8A8_UNORM, outputs[0]); + + editorWindow->size = UiSize(640, 480); + + + auto output = std::make_shared(engine->GetRenderer(), editorWindow->GetWindow()->GetHwnd(), 640, 480, false); + engine->AddOutput(output); + + auto sceneRenderer = std::make_shared(); + + ObjMeshLoader loader; + auto ob = loader.Load(L"D:\\lengine\\Assets\\Boxes.obj"); + //ob[0]->AddComponent(); + + auto mat = Material::Create(Shader::Create(L"shaders/shader.fx"), ""); + auto tex = AssetManager::Instance()->LoadTexture(L"textures/1_store.dds"); + mat->GetParametersBlock().SetTexture("diffuse", tex); + + + for(auto o : ob) + { + o->GetComponent()->SetMaterial(mat, 0); + } + + /*AssetMetadata meta(L"D:\\lengine\\Assets\\Boxes.obj"); + meta.Save(); + + auto& factory = ObjectsFactory::instance(); + +*/ + auto cameras = Object::FindObjectsOfType(); + + auto cameraGo = cameras[0]->gameObject; + + cameraGo->transform->SetLocalPosition(float3(0.0f, 0.0f, -4.0f)); + + typedef std::chrono::high_resolution_clock clock; + + auto last_time = clock::now(); + float delta_time = 0.0f; + + float totalTime = 0; + while (true) { + auto now_time = clock::now(); + delta_time = (float)((double)std::chrono::duration_cast(now_time - last_time).count() / 1000000.0); + last_time = now_time; + totalTime += delta_time; + if(totalTime >= 30.0f) + { + //sceneRenderer->createPSO = false; + } + std::chrono::high_resolution_clock::now(); + LEngine::Instance()->GetActiveScene()->tick(delta_time); + sceneRenderer->RenderScene(engine->GetRenderer(), engine->GetActiveScene(), cameraGo->GetComponent(), output); + editorWindow->Update(1); + Input::Instance()->strobe(); + //output->Present(); + } + + return 0; +} + \ No newline at end of file diff --git a/LEditor/LEditor.h b/LEditor/LEditor.h new file mode 100644 index 0000000..d00d47e --- /dev/null +++ b/LEditor/LEditor.h @@ -0,0 +1,3 @@ +#pragma once + +#include "resource.h" diff --git a/LEditor/LEditor.i-40ee66e4 b/LEditor/LEditor.i-40ee66e4 new file mode 100644 index 0000000..997668a --- /dev/null +++ b/LEditor/LEditor.i-40ee66e4 @@ -0,0 +1,250091 @@ +# 1 "D:/lengine/LEditor/LEditor.cpp" +# 1 "" 1 +# 1 "" 3 +# 323 "" 3 +# 1 "" 1 +# 1 "" 2 +# 1 "D:/lengine/LEditor/LEditor.cpp" 2 +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\Windows.h" 1 +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\winapifamily.h" 1 +# 20 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\winapifamily.h" +#pragma warning(push) +#pragma warning(disable: 4001) + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\winpackagefamily.h" 1 +# 20 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\winpackagefamily.h" +#pragma warning(push) +#pragma warning(disable: 4001) +# 87 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\winpackagefamily.h" +#pragma warning(pop) +# 26 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\winapifamily.h" 2 +# 236 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\winapifamily.h" +#pragma warning(pop) +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\Windows.h" 2 +# 22 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\Windows.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\sdkddkver.h" 1 +# 20 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\sdkddkver.h" +#pragma warning(push) +#pragma warning(disable: 4668) + +#pragma warning(disable: 4001) +# 288 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\sdkddkver.h" +#pragma warning(pop) +# 22 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\Windows.h" 2 +# 153 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\Windows.h" +#pragma warning(disable: 4514) + +#pragma warning(disable: 4103) + + +#pragma warning(push) + +#pragma warning(disable: 4001) +#pragma warning(disable: 4201) +#pragma warning(disable: 4214) + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\excpt.h" 1 3 +# 12 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\excpt.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 1 3 +# 45 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 3 +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\sal.h" 1 3 +# 2381 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\sal.h" 3 +extern "C" { +# 2991 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\sal.h" 3 +} + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\ConcurrencySal.h" 1 3 +# 22 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\ConcurrencySal.h" 3 +extern "C" { +# 354 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\ConcurrencySal.h" 3 +} +# 2994 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\sal.h" 2 3 +# 45 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vadefs.h" 1 3 +# 15 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vadefs.h" 3 +#pragma pack(push, 8) + + +extern "C" { +# 30 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vadefs.h" 3 + typedef unsigned int uintptr_t; +# 39 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vadefs.h" 3 + typedef char* va_list; +# 118 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vadefs.h" 3 +} + + + + extern "C++" + { + template + struct __vcrt_va_list_is_reference + { + enum : bool { __the_value = false }; + }; + + template + struct __vcrt_va_list_is_reference<_Ty&> + { + enum : bool { __the_value = true }; + }; + + template + struct __vcrt_va_list_is_reference<_Ty&&> + { + enum : bool { __the_value = true }; + }; + + template + void __vcrt_va_start_verify_argument_type() throw() + { + static_assert(!__vcrt_va_list_is_reference<_Ty>::__the_value, "va_start argument must not have reference type and must not be parenthesized"); + } + } +# 157 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vadefs.h" 3 +#pragma pack(pop) +# 46 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 2 3 +# 81 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 3 +#pragma pack(push, 8) +# 81 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 3 + extern "C" { +# 198 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 3 + typedef unsigned int size_t; + typedef int ptrdiff_t; + typedef int intptr_t; + + + + typedef bool __vcrt_bool; +# 247 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 3 + extern "C++" + { + template + char (*__countof_helper( _CountofType (&_Array)[_SizeOfArray]))[_SizeOfArray]; + + + } +# 298 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 3 + void __cdecl __security_init_cookie(void); + + + void __fastcall __security_check_cookie( uintptr_t _StackCookie); + __declspec(noreturn) void __cdecl __report_gsfailure(void); + + + + + + +extern uintptr_t __security_cookie; + + + + + + + +} +# 317 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 3 +#pragma pack(pop) +# 12 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\excpt.h" 2 3 + + +#pragma pack(push, 8) +# 14 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\excpt.h" 3 + extern "C" { + + + + +typedef enum _EXCEPTION_DISPOSITION +{ + ExceptionContinueExecution, + ExceptionContinueSearch, + ExceptionNestedException, + ExceptionCollidedUnwind +} EXCEPTION_DISPOSITION; + + + + + + + struct _EXCEPTION_RECORD; + struct _CONTEXT; + + EXCEPTION_DISPOSITION __cdecl _except_handler( + struct _EXCEPTION_RECORD* _ExceptionRecord, + void* _EstablisherFrame, + struct _CONTEXT* _ContextRecord, + void* _DispatcherContext + ); +# 69 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\excpt.h" 3 +unsigned long __cdecl _exception_code(void); +void * __cdecl _exception_info(void); +int __cdecl _abnormal_termination(void); +# 82 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\excpt.h" 3 +} +# 82 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\excpt.h" 3 +#pragma pack(pop) +# 164 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\Windows.h" 2 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdarg.h" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdarg.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdarg.h" 2 3 + + +#pragma pack(push, 8) +# 13 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdarg.h" 3 + extern "C" { +# 24 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdarg.h" 3 +} +# 24 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdarg.h" 3 +#pragma pack(pop) +# 165 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\Windows.h" 2 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\windef.h" 1 +# 17 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\windef.h" +extern "C" { + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\minwindef.h" 1 +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\minwindef.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\specstrings.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\specstrings.h" +#pragma warning(push) +#pragma warning(disable: 4668) +# 69 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\specstrings.h" +extern "C" { +# 645 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\specstrings.h" +} +# 674 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\specstrings.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\specstrings_strict.h" 1 +# 188 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\specstrings_strict.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\specstrings_undef.h" 1 +# 188 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\specstrings_strict.h" 2 +# 674 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\specstrings.h" 2 +# 695 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\specstrings.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\driverspecs.h" 1 +# 125 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\driverspecs.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/sdv_driverspecs.h" 1 +# 125 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\driverspecs.h" 2 + + + + + + + + +extern "C" { +# 897 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\driverspecs.h" +} +# 695 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\specstrings.h" 2 +# 711 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\specstrings.h" +#pragma warning(pop) +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\minwindef.h" 2 +# 42 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\minwindef.h" +extern "C" { +# 51 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\minwindef.h" +typedef unsigned long ULONG; +typedef ULONG *PULONG; +typedef unsigned short USHORT; +typedef USHORT *PUSHORT; +typedef unsigned char UCHAR; +typedef UCHAR *PUCHAR; +typedef char *PSZ; +# 156 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\minwindef.h" +typedef unsigned long DWORD; +typedef int BOOL; +typedef unsigned char BYTE; +typedef unsigned short WORD; +typedef float FLOAT; +typedef FLOAT *PFLOAT; +typedef BOOL *PBOOL; +typedef BOOL *LPBOOL; +typedef BYTE *PBYTE; +typedef BYTE *LPBYTE; +typedef int *PINT; +typedef int *LPINT; +typedef WORD *PWORD; +typedef WORD *LPWORD; +typedef long *LPLONG; +typedef DWORD *PDWORD; +typedef DWORD *LPDWORD; +typedef void *LPVOID; +typedef const void *LPCVOID; + +typedef int INT; +typedef unsigned int UINT; +typedef unsigned int *PUINT; + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 1 +# 22 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +#pragma warning(push) +#pragma warning(disable: 4668) +#pragma warning(disable: 4820) + +#pragma warning(disable: 4200) +#pragma warning(disable: 4201) +#pragma warning(disable: 4214) + + +extern "C" { + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\ctype.h" 1 +# 11 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\ctype.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt.h" 1 +# 10 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt.h" +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 1 3 +# 10 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt.h" 2 + + +#pragma pack(push, 8) +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt.h" + extern "C" { +# 119 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt.h" +extern "C++" +{ + template + struct _CrtEnableIf; + + template + struct _CrtEnableIf + { + typedef _Ty _Type; + }; +} + + + + typedef bool __crt_bool; +# 238 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt.h" + void __cdecl _invalid_parameter( + wchar_t const*, + wchar_t const*, + wchar_t const*, + unsigned int, + uintptr_t + ); + + + void __cdecl _invalid_parameter_noinfo(void); + __declspec(noreturn) void __cdecl _invalid_parameter_noinfo_noreturn(void); + +__declspec(noreturn) + void __cdecl _invoke_watson( + wchar_t const*, + wchar_t const*, + wchar_t const*, + unsigned int, + uintptr_t); +# 476 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt.h" +typedef int errno_t; +typedef unsigned short wint_t; +typedef unsigned short wctype_t; +typedef long __time32_t; +typedef __int64 __time64_t; + +typedef struct __crt_locale_data_public +{ + unsigned short const* _locale_pctype; + int _locale_mb_cur_max; + unsigned int _locale_lc_codepage; +} __crt_locale_data_public; + +typedef struct __crt_locale_pointers +{ + struct __crt_locale_data* locinfo; + struct __crt_multibyte_data* mbcinfo; +} __crt_locale_pointers; + +typedef __crt_locale_pointers* _locale_t; + +typedef struct _Mbstatet +{ + unsigned long _Wchar; + unsigned short _Byte, _State; +} _Mbstatet; + +typedef _Mbstatet mbstate_t; +# 517 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt.h" + typedef __time64_t time_t; +# 527 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt.h" + typedef size_t rsize_t; +# 1976 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt.h" +} +# 1976 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt.h" +#pragma pack(pop) +# 11 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\ctype.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wctype.h" 1 +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wctype.h" +#pragma pack(push, 8) +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wctype.h" + extern "C" { +# 31 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wctype.h" + const unsigned short* __cdecl __pctype_func(void); + const wctype_t* __cdecl __pwctype_func(void); +# 63 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wctype.h" + int __cdecl iswalnum ( wint_t _C); + int __cdecl iswalpha ( wint_t _C); + int __cdecl iswascii ( wint_t _C); + int __cdecl iswblank ( wint_t _C); + int __cdecl iswcntrl ( wint_t _C); + + + int __cdecl iswdigit ( wint_t _C); + + int __cdecl iswgraph ( wint_t _C); + int __cdecl iswlower ( wint_t _C); + int __cdecl iswprint ( wint_t _C); + int __cdecl iswpunct ( wint_t _C); + int __cdecl iswspace ( wint_t _C); + int __cdecl iswupper ( wint_t _C); + int __cdecl iswxdigit ( wint_t _C); + int __cdecl __iswcsymf( wint_t _C); + int __cdecl __iswcsym ( wint_t _C); + + int __cdecl _iswalnum_l ( wint_t _C, _locale_t _Locale); + int __cdecl _iswalpha_l ( wint_t _C, _locale_t _Locale); + int __cdecl _iswblank_l ( wint_t _C, _locale_t _Locale); + int __cdecl _iswcntrl_l ( wint_t _C, _locale_t _Locale); + int __cdecl _iswdigit_l ( wint_t _C, _locale_t _Locale); + int __cdecl _iswgraph_l ( wint_t _C, _locale_t _Locale); + int __cdecl _iswlower_l ( wint_t _C, _locale_t _Locale); + int __cdecl _iswprint_l ( wint_t _C, _locale_t _Locale); + int __cdecl _iswpunct_l ( wint_t _C, _locale_t _Locale); + int __cdecl _iswspace_l ( wint_t _C, _locale_t _Locale); + int __cdecl _iswupper_l ( wint_t _C, _locale_t _Locale); + int __cdecl _iswxdigit_l( wint_t _C, _locale_t _Locale); + int __cdecl _iswcsymf_l ( wint_t _C, _locale_t _Locale); + int __cdecl _iswcsym_l ( wint_t _C, _locale_t _Locale); + + + wint_t __cdecl towupper( wint_t _C); + wint_t __cdecl towlower( wint_t _C); + int __cdecl iswctype( wint_t _C, wctype_t _Type); + + wint_t __cdecl _towupper_l( wint_t _C, _locale_t _Locale); + wint_t __cdecl _towlower_l( wint_t _C, _locale_t _Locale); + int __cdecl _iswctype_l( wint_t _C, wctype_t _Type, _locale_t _Locale); + + + + int __cdecl isleadbyte( int _C); + int __cdecl _isleadbyte_l( int _C, _locale_t _Locale); + + __declspec(deprecated("This function or variable has been superceded by newer library " "or operating system functionality. Consider using " "iswctype" " " "instead. See online help for details.")) int __cdecl is_wctype( wint_t _C, wctype_t _Type); +# 199 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wctype.h" +} +# 199 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wctype.h" +#pragma pack(pop) +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\ctype.h" 2 + + +#pragma pack(push, 8) +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\ctype.h" + extern "C" { +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\ctype.h" + int __cdecl _isctype( int _C, int _Type); + int __cdecl _isctype_l( int _C, int _Type, _locale_t _Locale); + int __cdecl isalpha( int _C); + int __cdecl _isalpha_l( int _C, _locale_t _Locale); + int __cdecl isupper( int _C); + int __cdecl _isupper_l( int _C, _locale_t _Locale); + int __cdecl islower( int _C); + int __cdecl _islower_l( int _C, _locale_t _Locale); + + + int __cdecl isdigit( int _C); + + int __cdecl _isdigit_l( int _C, _locale_t _Locale); + int __cdecl isxdigit( int _C); + int __cdecl _isxdigit_l( int _C, _locale_t _Locale); + + + int __cdecl isspace( int _C); + + int __cdecl _isspace_l( int _C, _locale_t _Locale); + int __cdecl ispunct( int _C); + int __cdecl _ispunct_l( int _C, _locale_t _Locale); + int __cdecl isblank( int _C); + int __cdecl _isblank_l( int _C, _locale_t _Locale); + int __cdecl isalnum( int _C); + int __cdecl _isalnum_l( int _C, _locale_t _Locale); + int __cdecl isprint( int _C); + int __cdecl _isprint_l( int _C, _locale_t _Locale); + int __cdecl isgraph( int _C); + int __cdecl _isgraph_l( int _C, _locale_t _Locale); + int __cdecl iscntrl( int _C); + int __cdecl _iscntrl_l( int _C, _locale_t _Locale); + + + int __cdecl toupper( int _C); + + + int __cdecl tolower( int _C); + + int __cdecl _tolower( int _C); + int __cdecl _tolower_l( int _C, _locale_t _Locale); + int __cdecl _toupper( int _C); + int __cdecl _toupper_l( int _C, _locale_t _Locale); + + int __cdecl __isascii( int _C); + int __cdecl __toascii( int _C); + int __cdecl __iscsymf( int _C); + int __cdecl __iscsym( int _C); +# 100 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\ctype.h" + int __cdecl ___mb_cur_max_func(void); + + int __cdecl ___mb_cur_max_l_func(_locale_t); + + + + + + + + int __cdecl _chvalidator( int _Ch, int _Mask); +# 144 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\ctype.h" + __inline __crt_locale_data_public* __cdecl __acrt_get_locale_data_prefix(void const volatile* const _LocalePointers) + { + _locale_t const _TypedLocalePointers = (_locale_t)_LocalePointers; + return (__crt_locale_data_public*)_TypedLocalePointers->locinfo; + } + + + int __cdecl _chvalidator_l( _locale_t, int _Ch, int _Mask); + + + __inline int __cdecl _chvalidchk_l( + int const _C, + int const _Mask, + _locale_t const _Locale + ) + { + + return _chvalidator_l(_Locale, _C, _Mask); +# 170 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\ctype.h" + } + + + + + __inline int __cdecl _ischartype_l( + int const _C, + int const _Mask, + _locale_t const _Locale + ) + { + if (_Locale && __acrt_get_locale_data_prefix(_Locale)->_locale_mb_cur_max > 1) + { + return _isctype_l(_C, _Mask, _Locale); + } + + return _chvalidchk_l(_C, _Mask, _Locale); + } +# 233 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\ctype.h" +} +# 233 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\ctype.h" +#pragma pack(pop) +# 34 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 +# 86 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\kernelspecs.h" 1 +# 43 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\kernelspecs.h" +extern "C" { +# 256 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\kernelspecs.h" +} +# 86 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 +# 179 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\basetsd.h" 1 +# 23 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\basetsd.h" +#pragma warning(push) +#pragma warning(disable: 4668) +# 45 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\basetsd.h" + typedef unsigned long POINTER_64_INT; +# 72 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\basetsd.h" +extern "C" { + + +typedef signed char INT8, *PINT8; +typedef signed short INT16, *PINT16; +typedef signed int INT32, *PINT32; +typedef signed __int64 INT64, *PINT64; +typedef unsigned char UINT8, *PUINT8; +typedef unsigned short UINT16, *PUINT16; +typedef unsigned int UINT32, *PUINT32; +typedef unsigned __int64 UINT64, *PUINT64; + + + + + +typedef signed int LONG32, *PLONG32; + + + + + +typedef unsigned int ULONG32, *PULONG32; +typedef unsigned int DWORD32, *PDWORD32; +# 134 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\basetsd.h" + typedef int INT_PTR, *PINT_PTR; + typedef unsigned int UINT_PTR, *PUINT_PTR; + + typedef long LONG_PTR, *PLONG_PTR; + typedef unsigned long ULONG_PTR, *PULONG_PTR; +# 333 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\basetsd.h" +typedef unsigned short UHALF_PTR, *PUHALF_PTR; +typedef short HALF_PTR, *PHALF_PTR; +typedef long SHANDLE_PTR; +typedef unsigned long HANDLE_PTR; +# 354 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\basetsd.h" +__inline +void * __ptr64 +PtrToPtr64( + const void *p + ) +{ + return((void * __ptr64) (unsigned __int64) (ULONG_PTR)p ); +} + +__inline +void * +Ptr64ToPtr( + const void * __ptr64 p + ) +{ + return((void *) (ULONG_PTR) (unsigned __int64) p); +} + +__inline +void * __ptr64 +HandleToHandle64( + const void *h + ) +{ + return((void * __ptr64)(__int64)(LONG_PTR)h ); +} + +__inline +void * +Handle64ToHandle( + const void * __ptr64 h + ) +{ + return((void *) (ULONG_PTR) (unsigned __int64) h ); +} +# 420 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\basetsd.h" +typedef ULONG_PTR SIZE_T, *PSIZE_T; +typedef LONG_PTR SSIZE_T, *PSSIZE_T; +# 469 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\basetsd.h" +typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR; + + + + + +typedef __int64 LONG64, *PLONG64; + + + + + + +typedef unsigned __int64 ULONG64, *PULONG64; +typedef unsigned __int64 DWORD64, *PDWORD64; + + + + + + + +typedef ULONG_PTR KAFFINITY; +typedef KAFFINITY *PKAFFINITY; + + + + +} + + + +#pragma warning(pop) +# 179 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 +# 371 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef void *PVOID; +typedef void * __ptr64 PVOID64; +# 413 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef char CHAR; +typedef short SHORT; +typedef long LONG; + +typedef int INT; +# 426 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef wchar_t WCHAR; + + + + + +typedef WCHAR *PWCHAR, *LPWCH, *PWCH; +typedef const WCHAR *LPCWCH, *PCWCH; + +typedef WCHAR *NWPSTR, *LPWSTR, *PWSTR; +typedef PWSTR *PZPWSTR; +typedef const PWSTR *PCZPWSTR; +typedef WCHAR *LPUWSTR, *PUWSTR; +typedef const WCHAR *LPCWSTR, *PCWSTR; +typedef PCWSTR *PZPCWSTR; +typedef const PCWSTR *PCZPCWSTR; +typedef const WCHAR *LPCUWSTR, *PCUWSTR; + +typedef WCHAR *PZZWSTR; +typedef const WCHAR *PCZZWSTR; +typedef WCHAR *PUZZWSTR; +typedef const WCHAR *PCUZZWSTR; + +typedef WCHAR *PNZWCH; +typedef const WCHAR *PCNZWCH; +typedef WCHAR *PUNZWCH; +typedef const WCHAR *PCUNZWCH; + + + +typedef const WCHAR *LPCWCHAR, *PCWCHAR; +typedef const WCHAR *LPCUWCHAR, *PCUWCHAR; + + + + + +typedef unsigned long UCSCHAR; +# 483 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef UCSCHAR *PUCSCHAR; +typedef const UCSCHAR *PCUCSCHAR; + +typedef UCSCHAR *PUCSSTR; +typedef UCSCHAR *PUUCSSTR; + +typedef const UCSCHAR *PCUCSSTR; +typedef const UCSCHAR *PCUUCSSTR; + +typedef UCSCHAR *PUUCSCHAR; +typedef const UCSCHAR *PCUUCSCHAR; + + + + + + + +typedef CHAR *PCHAR, *LPCH, *PCH; +typedef const CHAR *LPCCH, *PCCH; + +typedef CHAR *NPSTR, *LPSTR, *PSTR; +typedef PSTR *PZPSTR; +typedef const PSTR *PCZPSTR; +typedef const CHAR *LPCSTR, *PCSTR; +typedef PCSTR *PZPCSTR; +typedef const PCSTR *PCZPCSTR; + +typedef CHAR *PZZSTR; +typedef const CHAR *PCZZSTR; + +typedef CHAR *PNZCH; +typedef const CHAR *PCNZCH; + + + + + + + +typedef WCHAR TCHAR, *PTCHAR; +typedef WCHAR TBYTE , *PTBYTE ; + + + +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; +# 569 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef SHORT *PSHORT; +typedef LONG *PLONG; +# 579 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _PROCESSOR_NUMBER { + WORD Group; + BYTE Number; + BYTE Reserved; +} PROCESSOR_NUMBER, *PPROCESSOR_NUMBER; + + + + + + +typedef struct _GROUP_AFFINITY { + KAFFINITY Mask; + WORD Group; + WORD Reserved[3]; +} GROUP_AFFINITY, *PGROUP_AFFINITY; +# 615 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef void *HANDLE; +# 625 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef HANDLE *PHANDLE; + + + + + + + +typedef BYTE FCHAR; +typedef WORD FSHORT; +typedef DWORD FLONG; +# 646 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef long HRESULT; +# 713 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef char CCHAR; +typedef DWORD LCID; +typedef PDWORD PLCID; +typedef WORD LANGID; +# 725 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef enum { + UNSPECIFIED_COMPARTMENT_ID = 0, + DEFAULT_COMPARTMENT_ID +} COMPARTMENT_ID, *PCOMPARTMENT_ID; +# 756 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _FLOAT128 { + __int64 LowPart; + __int64 HighPart; +} FLOAT128; + +typedef FLOAT128 *PFLOAT128; +# 771 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef __int64 LONGLONG; +typedef unsigned __int64 ULONGLONG; +# 793 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef LONGLONG *PLONGLONG; +typedef ULONGLONG *PULONGLONG; + + + +typedef LONGLONG USN; + + + + +typedef union _LARGE_INTEGER { + struct { + DWORD LowPart; + LONG HighPart; + } ; + struct { + DWORD LowPart; + LONG HighPart; + } u; + + LONGLONG QuadPart; +} LARGE_INTEGER; + +typedef LARGE_INTEGER *PLARGE_INTEGER; + + + + +typedef union _ULARGE_INTEGER { + struct { + DWORD LowPart; + DWORD HighPart; + } ; + struct { + DWORD LowPart; + DWORD HighPart; + } u; + + ULONGLONG QuadPart; +} ULARGE_INTEGER; + +typedef ULARGE_INTEGER *PULARGE_INTEGER; + + + + + +typedef LONG_PTR RTL_REFERENCE_COUNT, *PRTL_REFERENCE_COUNT; +# 850 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _LUID { + DWORD LowPart; + LONG HighPart; +} LUID, *PLUID; + + +typedef ULONGLONG DWORDLONG; +typedef DWORDLONG *PDWORDLONG; +# 902 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +ULONGLONG +__stdcall +Int64ShllMod32 ( + ULONGLONG Value, + DWORD ShiftCount + ); + +LONGLONG +__stdcall +Int64ShraMod32 ( + LONGLONG Value, + DWORD ShiftCount + ); + +ULONGLONG +__stdcall +Int64ShrlMod32 ( + ULONGLONG Value, + DWORD ShiftCount + ); + + +#pragma warning(push) + +#pragma warning(disable: 4035 4793) + +__inline ULONGLONG +__stdcall +Int64ShllMod32 ( + ULONGLONG Value, + DWORD ShiftCount + ) +{ + __asm { + mov ecx, ShiftCount + mov eax, dword ptr [Value] + mov edx, dword ptr [Value+4] + shld edx, eax, cl + shl eax, cl + } +} + +__inline LONGLONG +__stdcall +Int64ShraMod32 ( + LONGLONG Value, + DWORD ShiftCount + ) +{ + __asm { + mov ecx, ShiftCount + mov eax, dword ptr [Value] + mov edx, dword ptr [Value+4] + shrd eax, edx, cl + sar edx, cl + } +} + +__inline ULONGLONG +__stdcall +Int64ShrlMod32 ( + ULONGLONG Value, + DWORD ShiftCount + ) +{ + __asm { + mov ecx, ShiftCount + mov eax, dword ptr [Value] + mov edx, dword ptr [Value+4] + shrd eax, edx, cl + shr edx, cl + } +} + + +#pragma warning(pop) +# 993 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" { +# 1045 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +unsigned int +__cdecl +_rotl ( + unsigned int Value, + int Shift + ); + +unsigned __int64 +__cdecl +_rotl64 ( + unsigned __int64 Value, + int Shift + ); + +unsigned int +__cdecl +_rotr ( + unsigned int Value, + int Shift + ); + +unsigned __int64 +__cdecl +_rotr64 ( + unsigned __int64 Value, + int Shift + ); + +#pragma intrinsic(_rotl) +#pragma intrinsic(_rotl64) +#pragma intrinsic(_rotr) +#pragma intrinsic(_rotr64) + + + + +} + + + + + + +typedef BYTE BOOLEAN; +typedef BOOLEAN *PBOOLEAN; + + + + + +typedef struct _LIST_ENTRY { + struct _LIST_ENTRY *Flink; + struct _LIST_ENTRY *Blink; +} LIST_ENTRY, *PLIST_ENTRY, * PRLIST_ENTRY; + + + + + + +typedef struct _SINGLE_LIST_ENTRY { + struct _SINGLE_LIST_ENTRY *Next; +} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY; +# 1116 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\guiddef.h" 1 +# 22 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\guiddef.h" +typedef struct _GUID { + unsigned long Data1; + unsigned short Data2; + unsigned short Data3; + unsigned char Data4[ 8 ]; +} GUID; +# 75 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\guiddef.h" +typedef GUID *LPGUID; + + + + +typedef const GUID *LPCGUID; + + + + + +typedef GUID IID; +typedef IID *LPIID; + + +typedef GUID CLSID; +typedef CLSID *LPCLSID; + + +typedef GUID FMTID; +typedef FMTID *LPFMTID; +# 146 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\guiddef.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\string.h" 1 +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\string.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_memory.h" 1 +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_memory.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_memcpy_s.h" 1 +# 11 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_memcpy_s.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\errno.h" 1 +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\errno.h" +#pragma pack(push, 8) +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\errno.h" + extern "C" { + + + + + int* __cdecl _errno(void); + + + errno_t __cdecl _set_errno( int _Value); + errno_t __cdecl _get_errno( int* _Value); + + unsigned long* __cdecl __doserrno(void); + + + errno_t __cdecl _set_doserrno( unsigned long _Value); + errno_t __cdecl _get_doserrno( unsigned long * _Value); +# 129 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\errno.h" +} +# 129 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\errno.h" +#pragma pack(pop) +# 11 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_memcpy_s.h" 2 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_string.h" 1 3 +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_string.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 1 3 +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_string.h" 2 3 + + + + +#pragma pack(push, 8) +# 14 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_string.h" 3 + extern "C" { + + + + + void const* __cdecl memchr( + void const* _Buf, + int _Val, + size_t _MaxCount + ); + + +int __cdecl memcmp( + void const* _Buf1, + void const* _Buf2, + size_t _Size + ); +# 40 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_string.h" 3 +void* __cdecl memcpy( + void* _Dst, + void const* _Src, + size_t _Size + ); + + + void* __cdecl memmove( + void* _Dst, + void const* _Src, + size_t _Size + ); +# 60 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_string.h" 3 +void* __cdecl memset( + void* _Dst, + int _Val, + size_t _Size + ); + + + char const* __cdecl strchr( + char const* _Str, + int _Val + ); + + + char const* __cdecl strrchr( + char const* _Str, + int _Ch + ); + + + char const* __cdecl strstr( + char const* _Str, + char const* _SubStr + ); + + + + wchar_t const* __cdecl wcschr( + wchar_t const* _Str, + wchar_t _Ch + ); + + + wchar_t const* __cdecl wcsrchr( + wchar_t const* _Str, + wchar_t _Ch + ); + + + + wchar_t const* __cdecl wcsstr( + wchar_t const* _Str, + wchar_t const* _SubStr + ); + + + +} +# 106 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_string.h" 3 +#pragma pack(pop) +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_memcpy_s.h" 2 + + +#pragma pack(push, 8) +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_memcpy_s.h" + extern "C" { +# 35 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_memcpy_s.h" + static __inline errno_t __cdecl memcpy_s( + void* const _Destination, + rsize_t const _DestinationSize, + void const* const _Source, + rsize_t const _SourceSize + ) + { + if (_SourceSize == 0) + { + return 0; + } + + { int _Expr_val=!!(_Destination != 0); if (!(_Expr_val)) { (*_errno()) = 22; _invalid_parameter_noinfo(); return 22; } }; + if (_Source == 0 || _DestinationSize < _SourceSize) + { + memset(_Destination, 0, _DestinationSize); + + { int _Expr_val=!!(_Source != 0); if (!(_Expr_val)) { (*_errno()) = 22; _invalid_parameter_noinfo(); return 22; } }; + { int _Expr_val=!!(_DestinationSize >= _SourceSize); if (!(_Expr_val)) { (*_errno()) = 34; _invalid_parameter_noinfo(); return 34; } }; + + + return 22; + } + + memcpy(_Destination, _Source, _SourceSize); + return 0; + } + + + static __inline errno_t __cdecl memmove_s( + void* const _Destination, + rsize_t const _DestinationSize, + void const* const _Source, + rsize_t const _SourceSize + ) + { + if (_SourceSize == 0) + { + return 0; + } + + { int _Expr_val=!!(_Destination != 0); if (!(_Expr_val)) { (*_errno()) = 22; _invalid_parameter_noinfo(); return 22; } }; + { int _Expr_val=!!(_Source != 0); if (!(_Expr_val)) { (*_errno()) = 22; _invalid_parameter_noinfo(); return 22; } }; + { int _Expr_val=!!(_DestinationSize >= _SourceSize); if (!(_Expr_val)) { (*_errno()) = 34; _invalid_parameter_noinfo(); return 34; } }; + + memmove(_Destination, _Source, _SourceSize); + return 0; + } + + + + + +} +# 88 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_memcpy_s.h" +#pragma pack(pop) +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_memory.h" 2 + + + + + +#pragma pack(push, 8) +# 19 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_memory.h" + extern "C" { + + + + + int __cdecl _memicmp( + void const* _Buf1, + void const* _Buf2, + size_t _Size + ); + + + int __cdecl _memicmp_l( + void const* _Buf1, + void const* _Buf2, + size_t _Size, + _locale_t _Locale + ); +# 78 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_memory.h" + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_memccpy" ". See online help for details.")) + void* __cdecl memccpy( + void* _Dst, + void const* _Src, + int _Val, + size_t _Size + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_memicmp" ". See online help for details.")) + int __cdecl memicmp( + void const* _Buf1, + void const* _Buf2, + size_t _Size + ); + + + + + + + + extern "C++" + inline void* __cdecl memchr( + void* _Pv, + int _C, + size_t _N + ) + { + void const* const _Pvc = _Pv; + return const_cast(memchr(_Pvc, _C, _N)); + } + + + + + +} +# 114 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_memory.h" +#pragma pack(pop) +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\string.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstring.h" 1 +# 16 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstring.h" +#pragma pack(push, 8) +# 16 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstring.h" + extern "C" { +# 28 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstring.h" + errno_t __cdecl wcscat_s( + wchar_t* _Destination, + rsize_t _SizeInWords, + wchar_t const* _Source + ); + + + errno_t __cdecl wcscpy_s( + wchar_t* _Destination, + rsize_t _SizeInWords, + wchar_t const* _Source + ); + + + errno_t __cdecl wcsncat_s( + wchar_t* _Destination, + rsize_t _SizeInWords, + wchar_t const* _Source, + rsize_t _MaxCount + ); + + + errno_t __cdecl wcsncpy_s( + wchar_t* _Destination, + rsize_t _SizeInWords, + wchar_t const* _Source, + rsize_t _MaxCount + ); + + + wchar_t* __cdecl wcstok_s( + wchar_t* _String, + wchar_t const* _Delimiter, + wchar_t** _Context + ); +# 79 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstring.h" + __declspec(allocator) wchar_t* __cdecl _wcsdup( + wchar_t const* _String + ); + + + + + + + +extern "C++" { template inline errno_t __cdecl wcscat_s(wchar_t (&_Destination)[_Size], wchar_t const* _Source) throw() { return wcscat_s(_Destination, _Size, _Source); } } + + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "wcscat_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl wcscat( wchar_t *_Destination, wchar_t const* _Source); +# 106 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstring.h" + int __cdecl wcscmp( + wchar_t const* _String1, + wchar_t const* _String2 + ); + +extern "C++" { template inline errno_t __cdecl wcscpy_s(wchar_t (&_Destination)[_Size], wchar_t const* _Source) throw() { return wcscpy_s(_Destination, _Size, _Source); } } + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "wcscpy_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl wcscpy( wchar_t *_Destination, wchar_t const* _Source); + + + + + + + size_t __cdecl wcscspn( + wchar_t const* _String, + wchar_t const* _Control + ); + + + size_t __cdecl wcslen( + wchar_t const* _String + ); +# 143 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstring.h" + size_t __cdecl wcsnlen( + wchar_t const* _Source, + size_t _MaxCount + ); +# 159 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstring.h" + static __inline size_t __cdecl wcsnlen_s( + wchar_t const* _Source, + size_t _MaxCount + ) + { + return (_Source == 0) ? 0 : wcsnlen(_Source, _MaxCount); + } + + + +extern "C++" { template inline errno_t __cdecl wcsncat_s(wchar_t (&_Destination)[_Size], wchar_t const* _Source, size_t _Count) throw() { return wcsncat_s(_Destination, _Size, _Source, _Count); } } + + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "wcsncat_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl wcsncat( wchar_t *_Destination, wchar_t const* _Source, size_t _Count); +# 185 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstring.h" + int __cdecl wcsncmp( + wchar_t const* _String1, + wchar_t const* _String2, + size_t _MaxCount + ); + +extern "C++" { template inline errno_t __cdecl wcsncpy_s(wchar_t (&_Destination)[_Size], wchar_t const* _Source, size_t _Count) throw() { return wcsncpy_s(_Destination, _Size, _Source, _Count); } } + + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "wcsncpy_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl wcsncpy( wchar_t *_Destination, wchar_t const* _Source, size_t _Count); +# 207 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstring.h" + wchar_t const* __cdecl wcspbrk( + wchar_t const* _String, + wchar_t const* _Control + ); + + + size_t __cdecl wcsspn( + wchar_t const* _String, + wchar_t const* _Control + ); + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "wcstok_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + wchar_t* __cdecl wcstok( + wchar_t* _String, + wchar_t const* _Delimiter, + wchar_t** _Context + ); +# 236 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstring.h" +#pragma warning(push) +#pragma warning(disable: 4141 4996) + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "wcstok_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + static __inline wchar_t* __cdecl _wcstok( + wchar_t* const _String, + wchar_t const* const _Delimiter + ) + { + return wcstok(_String, _Delimiter, 0); + } + + + + + + + extern "C++" __declspec(deprecated("wcstok has been changed to conform with the ISO C standard, " "adding an extra context parameter. To use the legacy Microsoft " "wcstok, define _CRT_NON_CONFORMING_WCSTOK.")) + inline wchar_t* __cdecl wcstok( + wchar_t* _String, + wchar_t const* _Delimiter + ) throw() + { + return wcstok(_String, _Delimiter, 0); + } + + +#pragma warning(pop) + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcserror_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + wchar_t* __cdecl _wcserror( + int _ErrorNumber + ); + + + errno_t __cdecl _wcserror_s( + wchar_t* _Buffer, + size_t _SizeInWords, + int _ErrorNumber + ); + +extern "C++" { template inline errno_t __cdecl _wcserror_s(wchar_t (&_Buffer)[_Size], int _Error) throw() { return _wcserror_s(_Buffer, _Size, _Error); } } + + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "__wcserror_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + wchar_t* __cdecl __wcserror( + wchar_t const* _String + ); + + errno_t __cdecl __wcserror_s( + wchar_t* _Buffer, + size_t _SizeInWords, + wchar_t const* _ErrorMessage + ); + +extern "C++" { template inline errno_t __cdecl __wcserror_s(wchar_t (&_Buffer)[_Size], wchar_t const* _ErrorMessage) throw() { return __wcserror_s(_Buffer, _Size, _ErrorMessage); } } + + + + + + int __cdecl _wcsicmp( + wchar_t const* _String1, + wchar_t const* _String2 + ); + + int __cdecl _wcsicmp_l( + wchar_t const* _String1, + wchar_t const* _String2, + _locale_t _Locale + ); + + int __cdecl _wcsnicmp( + wchar_t const* _String1, + wchar_t const* _String2, + size_t _MaxCount + ); + + int __cdecl _wcsnicmp_l( + wchar_t const* _String1, + wchar_t const* _String2, + size_t _MaxCount, + _locale_t _Locale + ); + + errno_t __cdecl _wcsnset_s( + wchar_t* _Destination, + size_t _SizeInWords, + wchar_t _Value, + size_t _MaxCount + ); + +extern "C++" { template inline errno_t __cdecl _wcsnset_s(wchar_t (&_Destination)[_Size], wchar_t _Value, size_t _MaxCount) throw() { return _wcsnset_s(_Destination, _Size, _Value, _MaxCount); } } + + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcsnset_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl _wcsnset( wchar_t *_String, wchar_t _Value, size_t _MaxCount); + + + + + + + + wchar_t* __cdecl _wcsrev( + wchar_t* _String + ); + + errno_t __cdecl _wcsset_s( + wchar_t* _Destination, + size_t _SizeInWords, + wchar_t _Value + ); + +extern "C++" { template inline errno_t __cdecl _wcsset_s(wchar_t (&_String)[_Size], wchar_t _Value) throw() { return _wcsset_s(_String, _Size, _Value); } } + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcsset_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl _wcsset( wchar_t *_String, wchar_t _Value); + + + + + + + errno_t __cdecl _wcslwr_s( + wchar_t* _String, + size_t _SizeInWords + ); + +extern "C++" { template inline errno_t __cdecl _wcslwr_s(wchar_t (&_String)[_Size]) throw() { return _wcslwr_s(_String, _Size); } } + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcslwr_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl _wcslwr( wchar_t *_String); + + + + + + errno_t __cdecl _wcslwr_s_l( + wchar_t* _String, + size_t _SizeInWords, + _locale_t _Locale + ); + +extern "C++" { template inline errno_t __cdecl _wcslwr_s_l(wchar_t (&_String)[_Size], _locale_t _Locale) throw() { return _wcslwr_s_l(_String, _Size, _Locale); } } + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcslwr_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl _wcslwr_l( wchar_t *_String, _locale_t _Locale); + + + + + + + + errno_t __cdecl _wcsupr_s( + wchar_t* _String, + size_t _Size + ); + +extern "C++" { template inline errno_t __cdecl _wcsupr_s(wchar_t (&_String)[_Size]) throw() { return _wcsupr_s(_String, _Size); } } + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcsupr_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl _wcsupr( wchar_t *_String); + + + + + + errno_t __cdecl _wcsupr_s_l( + wchar_t* _String, + size_t _Size, + _locale_t _Locale + ); + +extern "C++" { template inline errno_t __cdecl _wcsupr_s_l(wchar_t (&_String)[_Size], _locale_t _Locale) throw() { return _wcsupr_s_l(_String, _Size, _Locale); } } + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcsupr_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl _wcsupr_l( wchar_t *_String, _locale_t _Locale); +# 449 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstring.h" + size_t __cdecl wcsxfrm( + wchar_t* _Destination, + wchar_t const* _Source, + size_t _MaxCount + ); + + + + size_t __cdecl _wcsxfrm_l( + wchar_t* _Destination, + wchar_t const* _Source, + size_t _MaxCount, + _locale_t _Locale + ); + + + int __cdecl wcscoll( + wchar_t const* _String1, + wchar_t const* _String2 + ); + + + int __cdecl _wcscoll_l( + wchar_t const* _String1, + wchar_t const* _String2, + _locale_t _Locale + ); + + + int __cdecl _wcsicoll( + wchar_t const* _String1, + wchar_t const* _String2 + ); + + + int __cdecl _wcsicoll_l( + wchar_t const* _String1, + wchar_t const* _String2, + _locale_t _Locale + ); + + + int __cdecl _wcsncoll( + wchar_t const* _String1, + wchar_t const* _String2, + size_t _MaxCount + ); + + + int __cdecl _wcsncoll_l( + wchar_t const* _String1, + wchar_t const* _String2, + size_t _MaxCount, + _locale_t _Locale + ); + + + int __cdecl _wcsnicoll( + wchar_t const* _String1, + wchar_t const* _String2, + size_t _MaxCount + ); + + + int __cdecl _wcsnicoll_l( + wchar_t const* _String1, + wchar_t const* _String2, + size_t _MaxCount, + _locale_t _Locale + ); +# 528 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstring.h" +extern "C++" { + + + + inline wchar_t* __cdecl wcschr( wchar_t* _String, wchar_t _C) + { + return const_cast(wcschr(static_cast(_String), _C)); + } + + + inline wchar_t* __cdecl wcspbrk( wchar_t* _String, wchar_t const* _Control) + { + return const_cast(wcspbrk(static_cast(_String), _Control)); + } + + + inline wchar_t* __cdecl wcsrchr( wchar_t* _String, wchar_t _C) + { + return const_cast(wcsrchr(static_cast(_String), _C)); + } + + + + inline wchar_t* __cdecl wcsstr( wchar_t* _String, wchar_t const*_SubStr) + { + return const_cast(wcsstr(static_cast(_String), _SubStr)); + } + +} +# 572 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstring.h" + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcsdup" ". See online help for details.")) + wchar_t* __cdecl wcsdup( + wchar_t const* _String + ); +# 584 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstring.h" + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcsicmp" ". See online help for details.")) + int __cdecl wcsicmp( + wchar_t const* _String1, + wchar_t const* _String2 + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcsnicmp" ". See online help for details.")) + int __cdecl wcsnicmp( + wchar_t const* _String1, + wchar_t const* _String2, + size_t _MaxCount + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcsnset" ". See online help for details.")) + + wchar_t* __cdecl wcsnset( + wchar_t* _String, + wchar_t _Value, + size_t _MaxCount + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcsrev" ". See online help for details.")) + + wchar_t* __cdecl wcsrev( + wchar_t* _String + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcsset" ". See online help for details.")) + + wchar_t* __cdecl wcsset( + wchar_t* _String, + wchar_t _Value + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcslwr" ". See online help for details.")) + + wchar_t* __cdecl wcslwr( + wchar_t* _String + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcsupr" ". See online help for details.")) + + wchar_t* __cdecl wcsupr( + wchar_t* _String + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_wcsicoll" ". See online help for details.")) + int __cdecl wcsicoll( + wchar_t const* _String1, + wchar_t const* _String2 + ); + + + + + +} +# 640 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstring.h" +#pragma pack(pop) +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\string.h" 2 + + + + + +#pragma pack(push, 8) +# 18 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\string.h" + extern "C" { +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\string.h" + errno_t __cdecl strcpy_s( + char* _Destination, + rsize_t _SizeInBytes, + char const* _Source + ); + + + errno_t __cdecl strcat_s( + char* _Destination, + rsize_t _SizeInBytes, + char const* _Source + ); + + + errno_t __cdecl strerror_s( + char* _Buffer, + size_t _SizeInBytes, + int _ErrorNumber); + + + errno_t __cdecl strncat_s( + char* _Destination, + rsize_t _SizeInBytes, + char const* _Source, + rsize_t _MaxCount + ); + + + errno_t __cdecl strncpy_s( + char* _Destination, + rsize_t _SizeInBytes, + char const* _Source, + rsize_t _MaxCount + ); + + + char* __cdecl strtok_s( + char* _String, + char const* _Delimiter, + char** _Context + ); + + + + void* __cdecl _memccpy( + void* _Dst, + void const* _Src, + int _Val, + size_t _MaxCount + ); + +extern "C++" { template inline errno_t __cdecl strcat_s(char (&_Destination)[_Size], char const* _Source) throw() { return strcat_s(_Destination, _Size, _Source); } } + + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "strcat_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char* __cdecl strcat( char *_Destination, char const* _Source); +# 95 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\string.h" +int __cdecl strcmp( + char const* _Str1, + char const* _Str2 + ); + + + int __cdecl _strcmpi( + char const* _String1, + char const* _String2 + ); + + + int __cdecl strcoll( + char const* _String1, + char const* _String2 + ); + + + int __cdecl _strcoll_l( + char const* _String1, + char const* _String2, + _locale_t _Locale + ); + +extern "C++" { template inline errno_t __cdecl strcpy_s(char (&_Destination)[_Size], char const* _Source) throw() { return strcpy_s(_Destination, _Size, _Source); } } + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "strcpy_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char* __cdecl strcpy( char *_Destination, char const* _Source); + + + + + + + size_t __cdecl strcspn( + char const* _Str, + char const* _Control + ); + + + + + + + + __declspec(allocator) char* __cdecl _strdup( + char const* _Source + ); + + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_strerror_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl _strerror( + char const* _ErrorMessage + ); + + + errno_t __cdecl _strerror_s( + char* _Buffer, + size_t _SizeInBytes, + char const* _ErrorMessage + ); + +extern "C++" { template inline errno_t __cdecl _strerror_s(char (&_Buffer)[_Size], char const* _ErrorMessage) throw() { return _strerror_s(_Buffer, _Size, _ErrorMessage); } } + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "strerror_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl strerror( + int _ErrorMessage + ); + +extern "C++" { template inline errno_t __cdecl strerror_s(char (&_Buffer)[_Size], int _ErrorMessage) throw() { return strerror_s(_Buffer, _Size, _ErrorMessage); } } + + + + + + + int __cdecl _stricmp( + char const* _String1, + char const* _String2 + ); + + + int __cdecl _stricoll( + char const* _String1, + char const* _String2 + ); + + + int __cdecl _stricoll_l( + char const* _String1, + char const* _String2, + _locale_t _Locale + ); + + + int __cdecl _stricmp_l( + char const* _String1, + char const* _String2, + _locale_t _Locale + ); + + +size_t __cdecl strlen( + char const* _Str + ); + + + errno_t __cdecl _strlwr_s( + char* _String, + size_t _Size + ); + +extern "C++" { template inline errno_t __cdecl _strlwr_s(char (&_String)[_Size]) throw() { return _strlwr_s(_String, _Size); } } + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_strlwr_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char* __cdecl _strlwr( char *_String); + + + + + + errno_t __cdecl _strlwr_s_l( + char* _String, + size_t _Size, + _locale_t _Locale + ); + +extern "C++" { template inline errno_t __cdecl _strlwr_s_l(char (&_String)[_Size], _locale_t _Locale) throw() { return _strlwr_s_l(_String, _Size, _Locale); } } + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_strlwr_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char* __cdecl _strlwr_l( char *_String, _locale_t _Locale); + + + + + + +extern "C++" { template inline errno_t __cdecl strncat_s(char (&_Destination)[_Size], char const* _Source, size_t _Count) throw() { return strncat_s(_Destination, _Size, _Source, _Count); } } + + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "strncat_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char* __cdecl strncat( char *_Destination, char const* _Source, size_t _Count); +# 266 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\string.h" + int __cdecl strncmp( + char const* _Str1, + char const* _Str2, + size_t _MaxCount + ); + + + int __cdecl _strnicmp( + char const* _String1, + char const* _String2, + size_t _MaxCount + ); + + + int __cdecl _strnicmp_l( + char const* _String1, + char const* _String2, + size_t _MaxCount, + _locale_t _Locale + ); + + + int __cdecl _strnicoll( + char const* _String1, + char const* _String2, + size_t _MaxCount + ); + + + int __cdecl _strnicoll_l( + char const* _String1, + char const* _String2, + size_t _MaxCount, + _locale_t _Locale + ); + + + int __cdecl _strncoll( + char const* _String1, + char const* _String2, + size_t _MaxCount + ); + + + int __cdecl _strncoll_l( + char const* _String1, + char const* _String2, + size_t _MaxCount, + _locale_t _Locale + ); + + size_t __cdecl __strncnt( + char const* _String, + size_t _Count + ); + +extern "C++" { template inline errno_t __cdecl strncpy_s(char (&_Destination)[_Size], char const* _Source, size_t _Count) throw() { return strncpy_s(_Destination, _Size, _Source, _Count); } } + + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "strncpy_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char* __cdecl strncpy( char *_Destination, char const* _Source, size_t _Count); +# 346 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\string.h" + size_t __cdecl strnlen( + char const* _String, + size_t _MaxCount + ); +# 362 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\string.h" + static __inline size_t __cdecl strnlen_s( + char const* _String, + size_t _MaxCount + ) + { + return _String == 0 ? 0 : strnlen(_String, _MaxCount); + } + + + + + errno_t __cdecl _strnset_s( + char* _String, + size_t _SizeInBytes, + int _Value, + size_t _MaxCount + ); + +extern "C++" { template inline errno_t __cdecl _strnset_s(char (&_Destination)[_Size], int _Value, size_t _Count) throw() { return _strnset_s(_Destination, _Size, _Value, _Count); } } + + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_strnset_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char* __cdecl _strnset( char *_Destination, int _Value, size_t _Count); +# 396 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\string.h" + char const* __cdecl strpbrk( + char const* _Str, + char const* _Control + ); + + char* __cdecl _strrev( + char* _Str + ); + + + errno_t __cdecl _strset_s( + char* _Destination, + size_t _DestinationSize, + int _Value + ); + +extern "C++" { template inline errno_t __cdecl _strset_s(char (&_Destination)[_Size], int _Value) throw() { return _strset_s(_Destination, _Size, _Value); } } + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_strset_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char* __cdecl _strset( char *_Destination, int _Value); + + + + + + + size_t __cdecl strspn( + char const* _Str, + char const* _Control + ); + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "strtok_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl strtok( + char* _String, + char const* _Delimiter + ); + + + errno_t __cdecl _strupr_s( + char* _String, + size_t _Size + ); + +extern "C++" { template inline errno_t __cdecl _strupr_s(char (&_String)[_Size]) throw() { return _strupr_s(_String, _Size); } } + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_strupr_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char* __cdecl _strupr( char *_String); + + + + + + errno_t __cdecl _strupr_s_l( + char* _String, + size_t _Size, + _locale_t _Locale + ); + +extern "C++" { template inline errno_t __cdecl _strupr_s_l(char (&_String)[_Size], _locale_t _Locale) throw() { return _strupr_s_l(_String, _Size, _Locale); } } + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_strupr_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char* __cdecl _strupr_l( char *_String, _locale_t _Locale); +# 474 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\string.h" + size_t __cdecl strxfrm( + char* _Destination, + char const* _Source, + size_t _MaxCount + ); + + + + size_t __cdecl _strxfrm_l( + char* _Destination, + char const* _Source, + size_t _MaxCount, + _locale_t _Locale + ); + + + + +extern "C++" +{ + + inline char* __cdecl strchr( char* const _String, int const _Ch) + { + return const_cast(strchr(static_cast(_String), _Ch)); + } + + + inline char* __cdecl strpbrk( char* const _String, char const* const _Control) + { + return const_cast(strpbrk(static_cast(_String), _Control)); + } + + + inline char* __cdecl strrchr( char* const _String, int const _Ch) + { + return const_cast(strrchr(static_cast(_String), _Ch)); + } + + + inline char* __cdecl strstr( char* const _String, char const* const _SubString) + { + return const_cast(strstr(static_cast(_String), _SubString)); + } +} +# 529 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\string.h" + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_strdup" ". See online help for details.")) + char* __cdecl strdup( + char const* _String + ); + + + + + + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_strcmpi" ". See online help for details.")) + int __cdecl strcmpi( + char const* _String1, + char const* _String2 + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_stricmp" ". See online help for details.")) + int __cdecl stricmp( + char const* _String1, + char const* _String2 + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_strlwr" ". See online help for details.")) + char* __cdecl strlwr( + char* _String + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_strnicmp" ". See online help for details.")) + int __cdecl strnicmp( + char const* _String1, + char const* _String2, + size_t _MaxCount + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_strnset" ". See online help for details.")) + char* __cdecl strnset( + char* _String, + int _Value, + size_t _MaxCount + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_strrev" ". See online help for details.")) + char* __cdecl strrev( + char* _String + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_strset" ". See online help for details.")) + char* __cdecl strset( + char* _String, + int _Value); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_strupr" ". See online help for details.")) + char* __cdecl strupr( + char* _String + ); + + + + + +} +# 589 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\string.h" +#pragma pack(pop) +# 146 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\guiddef.h" 2 + + + + +__inline int InlineIsEqualGUID(const GUID & rguid1, const GUID & rguid2) +{ + return ( + ((unsigned long *) &rguid1)[0] == ((unsigned long *) &rguid2)[0] && + ((unsigned long *) &rguid1)[1] == ((unsigned long *) &rguid2)[1] && + ((unsigned long *) &rguid1)[2] == ((unsigned long *) &rguid2)[2] && + ((unsigned long *) &rguid1)[3] == ((unsigned long *) &rguid2)[3]); +} + +__inline int IsEqualGUID(const GUID & rguid1, const GUID & rguid2) +{ + return !memcmp(&rguid1, &rguid2, sizeof(GUID)); +} +# 192 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\guiddef.h" +__inline bool operator==(const GUID & guidOne, const GUID & guidOther) +{ + return !!IsEqualGUID(guidOne,guidOther); +} + +__inline bool operator!=(const GUID & guidOne, const GUID & guidOther) +{ + return !(guidOne == guidOther); +} +# 1129 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 + + + + + +typedef struct _OBJECTID { + GUID Lineage; + DWORD Uniquifier; +} OBJECTID; +# 1225 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C++" +template +char (*RtlpNumberOf( T (&)[N] ))[N]; +# 1353 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef + + +EXCEPTION_DISPOSITION +__stdcall +EXCEPTION_ROUTINE ( + struct _EXCEPTION_RECORD *ExceptionRecord, + PVOID EstablisherFrame, + struct _CONTEXT *ContextRecord, + PVOID DispatcherContext + ); + +typedef EXCEPTION_ROUTINE *PEXCEPTION_ROUTINE; +# 2242 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; + }; + + + template + struct _ENUM_FLAG_SIZED_INTEGER + { + typedef typename _ENUM_FLAG_INTEGER_FOR_SIZE::type type; + }; + +} +# 2387 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef ULONG_PTR KSPIN_LOCK; +typedef KSPIN_LOCK *PKSPIN_LOCK; + + + + + + + +typedef struct __declspec(align(16)) _M128A { + ULONGLONG Low; + LONGLONG High; +} M128A, *PM128A; + + + + + +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]; +# 2428 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" + M128A XmmRegisters[8]; + BYTE Reserved4[224]; + + + +} XSAVE_FORMAT, *PXSAVE_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; + PXSAVE_AREA Area; + + + DWORD Reserved2; + + + PVOID Buffer; + + + DWORD Reserved3; + + +} XSTATE_CONTEXT, *PXSTATE_CONTEXT; + + + + + +typedef struct _SCOPE_TABLE_AMD64 { + DWORD Count; + struct { + DWORD BeginAddress; + DWORD EndAddress; + DWORD HandlerAddress; + DWORD JumpTarget; + } ScopeRecord[1]; +} SCOPE_TABLE_AMD64, *PSCOPE_TABLE_AMD64; +# 3972 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _SCOPE_TABLE_ARM { + DWORD Count; + struct + { + DWORD BeginAddress; + DWORD EndAddress; + DWORD HandlerAddress; + DWORD JumpTarget; + } ScopeRecord[1]; +} SCOPE_TABLE_ARM, *PSCOPE_TABLE_ARM; +# 4944 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _SCOPE_TABLE_ARM64 { + DWORD Count; + struct + { + DWORD BeginAddress; + DWORD EndAddress; + DWORD HandlerAddress; + DWORD JumpTarget; + } ScopeRecord[1]; +} SCOPE_TABLE_ARM64, *PSCOPE_TABLE_ARM64; +# 6031 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" { +# 6078 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +void +__int2c ( + void + ); + +#pragma intrinsic(__int2c) +# 6181 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +} +# 6213 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +#pragma warning(push) + + + + + +#pragma warning(pop) +# 6234 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" { +# 6257 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +BOOLEAN +_bittest ( + LONG const *Base, + LONG Offset + ); + +BOOLEAN +_bittestandcomplement ( + LONG *Base, + LONG Offset + ); + +BOOLEAN +_bittestandset ( + LONG *Base, + LONG Offset + ); + +BOOLEAN +_bittestandreset ( + LONG *Base, + LONG Offset + ); + +BOOLEAN +_interlockedbittestandset ( + LONG volatile *Base, + LONG Offset + ); + +BOOLEAN +_interlockedbittestandreset ( + LONG volatile *Base, + LONG Offset + ); + +#pragma intrinsic(_bittest) +#pragma intrinsic(_bittestandcomplement) +#pragma intrinsic(_bittestandset) +#pragma intrinsic(_bittestandreset) +#pragma intrinsic(_interlockedbittestandset) +#pragma intrinsic(_interlockedbittestandreset) +# 6308 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +BOOLEAN +_BitScanForward ( + DWORD *Index, + DWORD Mask + ); + + +BOOLEAN +_BitScanReverse ( + DWORD *Index, + DWORD Mask + ); + +#pragma intrinsic(_BitScanForward) +#pragma intrinsic(_BitScanReverse) + + +__forceinline +BOOLEAN +_InlineBitScanForward64 ( + DWORD *Index, + DWORD64 Mask + ) +{ + if (_BitScanForward(Index, (DWORD)Mask)) { + return 1; + } + + if (_BitScanForward(Index, (DWORD)(Mask >> 32))) { + *Index += 32; + return 1; + } + + return 0; +} + + + + +__forceinline +BOOLEAN +_InlineBitScanReverse64 ( + DWORD *Index, + DWORD64 Mask + ) +{ + if (_BitScanReverse(Index, (DWORD)(Mask >> 32))) { + *Index += 32; + return 1; + } + + if (_BitScanReverse(Index, (DWORD)Mask)) { + return 1; + } + + return 0; +} +# 6396 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +SHORT +_InterlockedIncrement16 ( + SHORT volatile *Addend + ); + +SHORT +_InterlockedDecrement16 ( + SHORT volatile *Addend + ); + +SHORT +_InterlockedCompareExchange16 ( + SHORT volatile *Destination, + SHORT ExChange, + SHORT Comperand + ); + +LONG64 +_InterlockedCompareExchange64 ( + LONG64 volatile *Destination, + LONG64 ExChange, + LONG64 Comperand + ); + +#pragma intrinsic(_InterlockedIncrement16) +#pragma intrinsic(_InterlockedDecrement16) +#pragma intrinsic(_InterlockedCompareExchange16) +#pragma intrinsic(_InterlockedCompareExchange64) +# 6474 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +LONG +_InterlockedAnd ( + LONG volatile *Destination, + LONG Value + ); + +LONG +_InterlockedOr ( + LONG volatile *Destination, + LONG Value + ); + +LONG +_InterlockedXor ( + LONG volatile *Destination, + LONG Value + ); + +LONG +__cdecl +_InterlockedIncrement ( + LONG volatile *Addend + ); + +LONG +__cdecl +_InterlockedDecrement ( + LONG volatile *Addend + ); + +LONG +__cdecl +_InterlockedExchange ( + LONG volatile *Target, + LONG Value + ); + +LONG +__cdecl +_InterlockedExchangeAdd ( + LONG volatile *Addend, + LONG Value + ); + +__forceinline +LONG +_InlineInterlockedAdd ( + LONG volatile *Addend, + LONG Value + ) + +{ + + return _InterlockedExchangeAdd(Addend, Value) + Value; +} + +LONG +__cdecl +_InterlockedCompareExchange ( + LONG volatile * Destination, + LONG ExChange, + LONG Comperand + ); + + + +__forceinline + +PVOID +_InlineInterlockedExchangePointer( + + + + PVOID volatile * Destination, + PVOID Value + ) +{ + return (PVOID)_InterlockedExchange((LONG volatile *) Destination, + (LONG) Value); +} + + + + + + +__forceinline + +PVOID +_InlineInterlockedCompareExchangePointer ( + + + + PVOID volatile * Destination, + PVOID ExChange, + PVOID Comperand + ) +{ + return (PVOID)_InterlockedCompareExchange((LONG volatile *) Destination, + (LONG) ExChange, + (LONG) Comperand); +} +# 6586 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +#pragma intrinsic(_InterlockedAnd) +#pragma intrinsic(_InterlockedOr) +#pragma intrinsic(_InterlockedXor) +#pragma intrinsic(_InterlockedIncrement) +#pragma intrinsic(_InterlockedDecrement) +#pragma intrinsic(_InterlockedExchange) +#pragma intrinsic(_InterlockedExchangeAdd) +#pragma intrinsic(_InterlockedCompareExchange) + + + + + + + + +CHAR +_InterlockedExchange8 ( + CHAR volatile *Target, + CHAR Value + ); + +SHORT +_InterlockedExchange16 ( + SHORT volatile *Destination, + SHORT ExChange + ); + +#pragma intrinsic(_InterlockedExchange8) +#pragma intrinsic(_InterlockedExchange16) +# 6632 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +char +_InterlockedExchangeAdd8 ( + char volatile * _Addend, + char _Value + ); + +char +_InterlockedAnd8 ( + char volatile *Destination, + char Value + ); + +char +_InterlockedOr8 ( + char volatile *Destination, + char Value + ); + +char +_InterlockedXor8 ( + char volatile *Destination, + char Value + ); + +SHORT +_InterlockedAnd16 ( + SHORT volatile *Destination, + SHORT Value + ); + +SHORT +_InterlockedXor16( + SHORT volatile *Destination, + SHORT Value + ); + +SHORT +_InterlockedCompareExchange16 ( + SHORT volatile *Destination, + SHORT ExChange, + SHORT Comperand + ); + +SHORT +_InterlockedOr16 ( + SHORT volatile *Destination, + SHORT Value + ); + +SHORT +_InterlockedIncrement16 ( + SHORT volatile *Destination + ); + +SHORT +_InterlockedDecrement16 ( + 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) +# 6711 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__forceinline +LONG64 +_InlineInterlockedAnd64 ( + LONG64 volatile *Destination, + LONG64 Value + ) +{ + LONG64 Old; + + do { + Old = *Destination; + } while (_InterlockedCompareExchange64(Destination, + Old & Value, + Old) != Old); + + return Old; +} + + + + + + +__forceinline +LONG64 +_InlineInterlockedAdd64 ( + LONG64 volatile *Addend, + LONG64 Value + ) +{ + LONG64 Old; + + do { + Old = *Addend; + } while (_InterlockedCompareExchange64(Addend, + Old + Value, + Old) != Old); + + return Old + Value; +} +# 6772 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +LONG +_InterlockedXor ( + LONG volatile *Target, + LONG Set + ); + +#pragma intrinsic(_InterlockedXor) + + + + + +LONGLONG +__forceinline +_InlineInterlockedOr64 ( + LONGLONG volatile *Destination, + LONGLONG Value + ) +{ + LONGLONG Old; + + do { + Old = *Destination; + } while (_InterlockedCompareExchange64(Destination, + Old | Value, + Old) != Old); + + return Old; +} + + + +__forceinline +LONG64 +_InlineInterlockedXor64 ( + LONG64 volatile *Destination, + LONG64 Value + ) +{ + LONG64 Old; + + do { + Old = *Destination; + } while (_InterlockedCompareExchange64(Destination, + Old ^ Value, + Old) != Old); + + return Old; +} + + + +LONGLONG +__forceinline +_InlineInterlockedIncrement64 ( + LONGLONG volatile *Addend + ) +{ + LONGLONG Old; + + do { + Old = *Addend; + } while (_InterlockedCompareExchange64(Addend, + Old + 1, + Old) != Old); + + return Old + 1; +} + + + + + +__forceinline +LONGLONG +_InlineInterlockedDecrement64 ( + LONGLONG volatile *Addend + ) +{ + LONGLONG Old; + + do { + Old = *Addend; + } while (_InterlockedCompareExchange64(Addend, + Old - 1, + Old) != Old); + + return Old - 1; +} + + + +__forceinline +LONGLONG +_InlineInterlockedExchange64 ( + LONGLONG volatile *Target, + LONGLONG Value + ) +{ + LONGLONG Old; + + do { + Old = *Target; + } while (_InterlockedCompareExchange64(Target, + Value, + Old) != Old); + + return Old; +} + + + + + + +__forceinline +LONGLONG +_InlineInterlockedExchangeAdd64 ( + LONGLONG volatile *Addend, + LONGLONG Value + ) +{ + LONGLONG Old; + + do { + Old = *Addend; + } while (_InterlockedCompareExchange64(Addend, + Old + Value, + Old) != Old); + + return Old; +} +# 6912 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +void +__incfsbyte ( + DWORD Offset + ); + +void +__addfsbyte ( + DWORD Offset, + BYTE Value + ); + +void +__incfsword ( + DWORD Offset + ); + +void +__addfsword ( + DWORD Offset, + WORD Value + ); + +void +__incfsdword ( + DWORD Offset + ); + +void +__addfsdword ( + DWORD Offset, + DWORD Value + ); + +#pragma intrinsic(__incfsbyte) +#pragma intrinsic(__addfsbyte) +#pragma intrinsic(__incfsword) +#pragma intrinsic(__addfsword) +#pragma intrinsic(__incfsdword) +#pragma intrinsic(__addfsdword) +# 6966 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +void +__cpuidex ( + int CPUInfo[4], + int Function, + int SubLeaf + ); + +#pragma intrinsic(__cpuidex) +# 6983 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +BYTE +__readfsbyte ( + DWORD Offset + ); + +WORD +__readfsword ( + DWORD Offset + ); + +DWORD +__readfsdword ( + DWORD Offset + ); + +void +__writefsbyte ( + DWORD Offset, + BYTE Data + ); + +void +__writefsword ( + DWORD Offset, + WORD Data + ); + +void +__writefsdword ( + DWORD Offset, + DWORD Data + ); + +#pragma intrinsic(__readfsbyte) +#pragma intrinsic(__readfsword) +#pragma intrinsic(__readfsdword) +#pragma intrinsic(__writefsbyte) +#pragma intrinsic(__writefsword) +#pragma intrinsic(__writefsdword) + + + + + +void +_mm_pause ( + void + ); + +#pragma intrinsic(_mm_pause) + + + + + + +} +# 7050 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +#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) +# 7080 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +void +_mm_prefetch ( + CHAR const *a, + int sel + ); + +#pragma intrinsic(_mm_prefetch) +# 7109 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +DWORD64 +__readpmc ( + DWORD Counter + ); + +#pragma intrinsic(__readpmc) + + + + + + + +DWORD64 +__rdtsc ( + void + ); + +#pragma intrinsic(__rdtsc) + + + + + + + + +__inline PVOID GetFiberData( void ) { return *(PVOID *) (ULONG_PTR) __readfsdword (0x10);} +__inline PVOID GetCurrentFiber( void ) { return (PVOID) (ULONG_PTR) __readfsdword (0x10);} +# 7202 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _FLOATING_SAVE_AREA { + DWORD ControlWord; + DWORD StatusWord; + DWORD TagWord; + DWORD ErrorOffset; + DWORD ErrorSelector; + DWORD DataOffset; + DWORD DataSelector; + BYTE RegisterArea[80]; + DWORD Spare0; +} FLOATING_SAVE_AREA; + +typedef FLOATING_SAVE_AREA *PFLOATING_SAVE_AREA; +# 7224 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef char __C_ASSERT__[(sizeof(XSAVE_FORMAT) == 512)?1:-1]; + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/pshpack4.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/pshpack4.h" +#pragma warning(disable: 4103) + +#pragma pack(push,4) +# 7231 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 +# 7243 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _CONTEXT { +# 7263 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" + DWORD ContextFlags; + + + + + + + + DWORD Dr0; + DWORD Dr1; + DWORD Dr2; + DWORD Dr3; + DWORD Dr6; + DWORD Dr7; + + + + + + + FLOATING_SAVE_AREA FloatSave; + + + + + + + DWORD SegGs; + DWORD SegFs; + DWORD SegEs; + DWORD SegDs; + + + + + + + DWORD Edi; + DWORD Esi; + DWORD Ebx; + DWORD Edx; + DWORD Ecx; + DWORD Eax; + + + + + + + DWORD Ebp; + DWORD Eip; + DWORD SegCs; + DWORD EFlags; + DWORD Esp; + DWORD SegSs; + + + + + + + + BYTE ExtendedRegisters[512]; + +} CONTEXT; + +typedef CONTEXT *PCONTEXT; + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 7331 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 +# 7341 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _LDT_ENTRY { + WORD LimitLow; + WORD BaseLow; + union { + struct { + BYTE BaseMid; + BYTE Flags1; + BYTE Flags2; + 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; +# 7375 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" { + + +__forceinline +CHAR +ReadAcquire8 ( + CHAR const volatile *Source + ) + +{ + + CHAR Value; + + Value = *Source; + return Value; +} + +__forceinline +CHAR +ReadNoFence8 ( + CHAR const volatile *Source + ) + +{ + + CHAR Value; + + Value = *Source; + return Value; +} + +__forceinline +void +WriteRelease8 ( + CHAR volatile *Destination, + CHAR Value + ) + +{ + + *Destination = Value; + return; +} + +__forceinline +void +WriteNoFence8 ( + CHAR volatile *Destination, + CHAR Value + ) + +{ + + *Destination = Value; + return; +} + +__forceinline +SHORT +ReadAcquire16 ( + SHORT const volatile *Source + ) + +{ + + SHORT Value; + + Value = *Source; + return Value; +} + +__forceinline +SHORT +ReadNoFence16 ( + SHORT const volatile *Source + ) + +{ + + SHORT Value; + + Value = *Source; + return Value; +} + +__forceinline +void +WriteRelease16 ( + SHORT volatile *Destination, + SHORT Value + ) + +{ + + *Destination = Value; + return; +} + +__forceinline +void +WriteNoFence16 ( + SHORT volatile *Destination, + SHORT Value + ) + +{ + + *Destination = Value; + return; +} + +__forceinline +LONG +ReadAcquire ( + LONG const volatile *Source + ) + +{ + + LONG Value; + + Value = *Source; + return Value; +} + +__forceinline +LONG +ReadNoFence ( + LONG const volatile *Source + ) + +{ + + LONG Value; + + Value = *Source; + return Value; +} + +__forceinline +void +WriteRelease ( + LONG volatile *Destination, + LONG Value + ) + +{ + + *Destination = Value; + return; +} + +__forceinline +void +WriteNoFence ( + LONG volatile *Destination, + LONG Value + ) + +{ + + *Destination = Value; + return; +} + +__forceinline +LONG64 +ReadAcquire64 ( + LONG64 const volatile *Source + ) + +{ + + LONG64 Value; + + Value = *Source; + return Value; +} + +__forceinline +LONG64 +ReadNoFence64 ( + LONG64 const volatile *Source + ) + +{ + + LONG64 Value; + + Value = *Source; + return Value; +} + +__forceinline +void +WriteRelease64 ( + LONG64 volatile *Destination, + LONG64 Value + ) + +{ + + *Destination = Value; + return; +} + +__forceinline +void +WriteNoFence64 ( + LONG64 volatile *Destination, + LONG64 Value + ) + +{ + + *Destination = Value; + return; +} + + +} +# 7604 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__forceinline +CHAR +ReadRaw8 ( + CHAR const volatile *Source + ) + +{ + + CHAR Value; + + Value = *(CHAR *)Source; + return Value; +} + +__forceinline +void +WriteRaw8 ( + CHAR volatile *Destination, + CHAR Value + ) + +{ + + *(CHAR *)Destination = Value; + return; +} + +__forceinline +SHORT +ReadRaw16 ( + SHORT const volatile *Source + ) + +{ + + SHORT Value; + + Value = *(SHORT *)Source; + return Value; +} + +__forceinline +void +WriteRaw16 ( + SHORT volatile *Destination, + SHORT Value + ) + +{ + + *(SHORT *)Destination = Value; + return; +} + +__forceinline +LONG +ReadRaw ( + LONG const volatile *Source + ) + +{ + + LONG Value; + + Value = *(LONG *)Source; + return Value; +} + +__forceinline +void +WriteRaw ( + LONG volatile *Destination, + LONG Value + ) + +{ + + *(LONG *)Destination = Value; + return; +} + +__forceinline +LONG64 +ReadRaw64 ( + LONG64 const volatile *Source + ) + +{ + + LONG64 Value; + + Value = *(LONG64 *)Source; + return Value; +} + +__forceinline +void +WriteRaw64 ( + LONG64 volatile *Destination, + LONG64 Value + ) + +{ + + *(LONG64 *)Destination = Value; + return; +} + + + + + +__forceinline +BYTE +ReadUCharAcquire ( + BYTE const volatile *Source + ) + +{ + + return (BYTE )ReadAcquire8((PCHAR)Source); +} + +__forceinline +BYTE +ReadUCharNoFence ( + BYTE const volatile *Source + ) + +{ + + return (BYTE )ReadNoFence8((PCHAR)Source); +} + +__forceinline +BYTE +ReadBooleanAcquire ( + BOOLEAN const volatile *Source + ) + +{ + + return (BOOLEAN)ReadAcquire8((PCHAR)Source); +} + +__forceinline +BYTE +ReadBooleanNoFence ( + BOOLEAN const volatile *Source + ) + +{ + + return (BOOLEAN)ReadNoFence8((PCHAR)Source); +} + +__forceinline +BYTE +ReadUCharRaw ( + BYTE const volatile *Source + ) + +{ + + return (BYTE )ReadRaw8((PCHAR)Source); +} + +__forceinline +void +WriteUCharRelease ( + BYTE volatile *Destination, + BYTE Value + ) + +{ + + WriteRelease8((PCHAR)Destination, (CHAR)Value); + return; +} + +__forceinline +void +WriteUCharNoFence ( + BYTE volatile *Destination, + BYTE Value + ) + +{ + + WriteNoFence8((PCHAR)Destination, (CHAR)Value); + return; +} + +__forceinline +void +WriteBooleanRelease ( + BOOLEAN volatile *Destination, + BOOLEAN Value + ) + +{ + + WriteRelease8((PCHAR)Destination, (CHAR)Value); + return; +} + +__forceinline +void +WriteBooleanNoFence ( + BOOLEAN volatile *Destination, + BOOLEAN Value + ) + +{ + + WriteNoFence8((PCHAR)Destination, (CHAR)Value); + return; +} + +__forceinline +void +WriteUCharRaw ( + BYTE volatile *Destination, + BYTE Value + ) + +{ + + WriteRaw8((PCHAR)Destination, (CHAR)Value); + return; +} + +__forceinline +WORD +ReadUShortAcquire ( + WORD const volatile *Source + ) + +{ + + return (WORD )ReadAcquire16((PSHORT)Source); +} + +__forceinline +WORD +ReadUShortNoFence ( + WORD const volatile *Source + ) + +{ + + return (WORD )ReadNoFence16((PSHORT)Source); +} + +__forceinline +WORD +ReadUShortRaw ( + WORD const volatile *Source + ) + +{ + + return (WORD )ReadRaw16((PSHORT)Source); +} + +__forceinline +void +WriteUShortRelease ( + WORD volatile *Destination, + WORD Value + ) + +{ + + WriteRelease16((PSHORT)Destination, (SHORT)Value); + return; +} + +__forceinline +void +WriteUShortNoFence ( + WORD volatile *Destination, + WORD Value + ) + +{ + + WriteNoFence16((PSHORT)Destination, (SHORT)Value); + return; +} + +__forceinline +void +WriteUShortRaw ( + WORD volatile *Destination, + WORD Value + ) + +{ + + WriteRaw16((PSHORT)Destination, (SHORT)Value); + return; +} + +__forceinline +DWORD +ReadULongAcquire ( + DWORD const volatile *Source + ) + +{ + + return (DWORD)ReadAcquire((PLONG)Source); +} + +__forceinline +DWORD +ReadULongNoFence ( + DWORD const volatile *Source + ) + +{ + + return (DWORD)ReadNoFence((PLONG)Source); +} + +__forceinline +DWORD +ReadULongRaw ( + DWORD const volatile *Source + ) + +{ + + return (DWORD)ReadRaw((PLONG)Source); +} + +__forceinline +void +WriteULongRelease ( + DWORD volatile *Destination, + DWORD Value + ) + +{ + + WriteRelease((PLONG)Destination, (LONG)Value); + return; +} + +__forceinline +void +WriteULongNoFence ( + DWORD volatile *Destination, + DWORD Value + ) + +{ + + WriteNoFence((PLONG)Destination, (LONG)Value); + return; +} + +__forceinline +void +WriteULongRaw ( + DWORD volatile *Destination, + DWORD Value + ) + +{ + + WriteRaw((PLONG)Destination, (LONG)Value); + return; +} + +__forceinline +DWORD64 +ReadULong64Acquire ( + DWORD64 const volatile *Source + ) + +{ + + return (DWORD64)ReadAcquire64((PLONG64)Source); +} + +__forceinline +DWORD64 +ReadULong64NoFence ( + DWORD64 const volatile *Source + ) + +{ + + return (DWORD64)ReadNoFence64((PLONG64)Source); +} + +__forceinline +DWORD64 +ReadULong64Raw ( + DWORD64 const volatile *Source + ) + +{ + + return (DWORD64)ReadRaw64((PLONG64)Source); +} + +__forceinline +void +WriteULong64Release ( + DWORD64 volatile *Destination, + DWORD64 Value + ) + +{ + + WriteRelease64((PLONG64)Destination, (LONG64)Value); + return; +} + +__forceinline +void +WriteULong64NoFence ( + DWORD64 volatile *Destination, + DWORD64 Value + ) + +{ + + WriteNoFence64((PLONG64)Destination, (LONG64)Value); + return; +} + +__forceinline +void +WriteULong64Raw ( + DWORD64 volatile *Destination, + DWORD64 Value + ) + +{ + + WriteRaw64((PLONG64)Destination, (LONG64)Value); + return; +} +# 8066 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__forceinline +PVOID +ReadPointerAcquire ( + PVOID const volatile *Source + ) + +{ + + return (PVOID)ReadAcquire((PLONG)Source); +} + +__forceinline +PVOID +ReadPointerNoFence ( + PVOID const volatile *Source + ) + +{ + + return (PVOID)ReadNoFence((PLONG)Source); +} + +__forceinline +PVOID +ReadPointerRaw ( + PVOID const volatile *Source + ) + +{ + + return (PVOID)ReadRaw((PLONG)Source); +} + +__forceinline +void +WritePointerRelease ( + PVOID volatile *Destination, + PVOID Value + ) + +{ + + WriteRelease((PLONG)Destination, (LONG)Value); + return; +} + +__forceinline +void +WritePointerNoFence ( + PVOID volatile *Destination, + PVOID Value + ) + +{ + + WriteNoFence((PLONG)Destination, (LONG)Value); + return; +} + +__forceinline +void +WritePointerRaw ( + PVOID volatile *Destination, + PVOID Value + ) + +{ + + WriteRaw((PLONG)Destination, (LONG)Value); + return; +} +# 8302 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _WOW64_FLOATING_SAVE_AREA { + DWORD ControlWord; + DWORD StatusWord; + DWORD TagWord; + DWORD ErrorOffset; + DWORD ErrorSelector; + DWORD DataOffset; + DWORD DataSelector; + BYTE RegisterArea[80]; + DWORD Cr0NpxState; +} WOW64_FLOATING_SAVE_AREA; + +typedef WOW64_FLOATING_SAVE_AREA *PWOW64_FLOATING_SAVE_AREA; + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/pshpack4.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/pshpack4.h" +#pragma warning(disable: 4103) + +#pragma pack(push,4) +# 8316 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 +# 8328 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _WOW64_CONTEXT { +# 8348 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" + DWORD ContextFlags; + + + + + + + + DWORD Dr0; + DWORD Dr1; + DWORD Dr2; + DWORD Dr3; + DWORD Dr6; + DWORD Dr7; + + + + + + + WOW64_FLOATING_SAVE_AREA FloatSave; + + + + + + + DWORD SegGs; + DWORD SegFs; + DWORD SegEs; + DWORD SegDs; + + + + + + + DWORD Edi; + DWORD Esi; + DWORD Ebx; + DWORD Edx; + DWORD Ecx; + DWORD Eax; + + + + + + + DWORD Ebp; + DWORD Eip; + DWORD SegCs; + DWORD EFlags; + DWORD Esp; + DWORD SegSs; + + + + + + + + BYTE ExtendedRegisters[512]; + +} WOW64_CONTEXT; + +typedef WOW64_CONTEXT *PWOW64_CONTEXT; + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 8416 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 + + + +typedef struct _WOW64_LDT_ENTRY { + WORD LimitLow; + WORD BaseLow; + union { + struct { + BYTE BaseMid; + BYTE Flags1; + BYTE Flags2; + 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; +# 8470 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _EXCEPTION_RECORD { + DWORD ExceptionCode; + DWORD ExceptionFlags; + struct _EXCEPTION_RECORD *ExceptionRecord; + PVOID ExceptionAddress; + DWORD NumberParameters; + ULONG_PTR ExceptionInformation[15]; + } EXCEPTION_RECORD; + +typedef EXCEPTION_RECORD *PEXCEPTION_RECORD; + +typedef struct _EXCEPTION_RECORD32 { + DWORD ExceptionCode; + DWORD ExceptionFlags; + DWORD ExceptionRecord; + DWORD ExceptionAddress; + DWORD NumberParameters; + DWORD ExceptionInformation[15]; +} EXCEPTION_RECORD32, *PEXCEPTION_RECORD32; + +typedef struct _EXCEPTION_RECORD64 { + DWORD ExceptionCode; + DWORD ExceptionFlags; + DWORD64 ExceptionRecord; + DWORD64 ExceptionAddress; + DWORD NumberParameters; + DWORD __unusedAlignment; + DWORD64 ExceptionInformation[15]; +} EXCEPTION_RECORD64, *PEXCEPTION_RECORD64; + + + + + +typedef struct _EXCEPTION_POINTERS { + PEXCEPTION_RECORD ExceptionRecord; + PCONTEXT ContextRecord; +} EXCEPTION_POINTERS, *PEXCEPTION_POINTERS; +# 8528 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef PVOID PACCESS_TOKEN; +typedef PVOID PSECURITY_DESCRIPTOR; +typedef PVOID PSID; +typedef PVOID PCLAIMS_BLOB; +# 8572 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef DWORD ACCESS_MASK; +typedef ACCESS_MASK *PACCESS_MASK; +# 8631 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _GENERIC_MAPPING { + ACCESS_MASK GenericRead; + ACCESS_MASK GenericWrite; + ACCESS_MASK GenericExecute; + ACCESS_MASK GenericAll; +} GENERIC_MAPPING; +typedef GENERIC_MAPPING *PGENERIC_MAPPING; +# 8650 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack4.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack4.h" +#pragma warning(disable: 4103) + +#pragma pack(push,4) +# 8650 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 + + +typedef struct _LUID_AND_ATTRIBUTES { + LUID Luid; + DWORD Attributes; + } LUID_AND_ATTRIBUTES, * PLUID_AND_ATTRIBUTES; +typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[1]; +typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY; + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 8659 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 +# 8694 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _SID_IDENTIFIER_AUTHORITY { + BYTE Value[6]; +} SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY; + + + + + +typedef struct _SID { + BYTE Revision; + BYTE SubAuthorityCount; + SID_IDENTIFIER_AUTHORITY IdentifierAuthority; + + + + DWORD SubAuthority[1]; + +} SID, *PISID; +# 8730 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef union _SE_SID { + SID Sid; + BYTE Buffer[(sizeof(SID) - sizeof(DWORD) + ((15) * sizeof(DWORD)))]; +} SE_SID, *PSE_SID; + + + + +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 { + + + + PSID Sid; + + DWORD Attributes; + } SID_AND_ATTRIBUTES, * PSID_AND_ATTRIBUTES; + +typedef SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[1]; +typedef SID_AND_ATTRIBUTES_ARRAY *PSID_AND_ATTRIBUTES_ARRAY; + + +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[32]; +} SID_AND_ATTRIBUTES_HASH, *PSID_AND_ATTRIBUTES_HASH; +# 9166 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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, +} WELL_KNOWN_SID_TYPE; +# 9384 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _ACL { + BYTE AclRevision; + BYTE Sbz1; + WORD AclSize; + WORD AceCount; + WORD Sbz2; +} ACL; +typedef ACL *PACL; +# 9414 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _ACE_HEADER { + BYTE AceType; + BYTE AceFlags; + WORD AceSize; +} ACE_HEADER; +typedef ACE_HEADER *PACE_HEADER; +# 9528 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; + +} 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; +# 9596 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; + + + + + + +typedef struct _ACCESS_ALLOWED_CALLBACK_ACE { + ACE_HEADER Header; + ACCESS_MASK Mask; + DWORD SidStart; + +} ACCESS_ALLOWED_CALLBACK_ACE, *PACCESS_ALLOWED_CALLBACK_ACE; + +typedef struct _ACCESS_DENIED_CALLBACK_ACE { + ACE_HEADER Header; + ACCESS_MASK Mask; + DWORD SidStart; + +} ACCESS_DENIED_CALLBACK_ACE, *PACCESS_DENIED_CALLBACK_ACE; + +typedef struct _SYSTEM_AUDIT_CALLBACK_ACE { + ACE_HEADER Header; + ACCESS_MASK Mask; + DWORD SidStart; + +} SYSTEM_AUDIT_CALLBACK_ACE, *PSYSTEM_AUDIT_CALLBACK_ACE; + +typedef struct _SYSTEM_ALARM_CALLBACK_ACE { + ACE_HEADER Header; + ACCESS_MASK Mask; + DWORD SidStart; + +} 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; + +} 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; + +} 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; + +} 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; + +} SYSTEM_ALARM_CALLBACK_OBJECT_ACE, *PSYSTEM_ALARM_CALLBACK_OBJECT_ACE; +# 9719 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef enum _ACL_INFORMATION_CLASS { + AclRevisionInformation = 1, + AclSizeInformation +} ACL_INFORMATION_CLASS; + + + + + + +typedef struct _ACL_REVISION_INFORMATION { + DWORD AclRevision; +} ACL_REVISION_INFORMATION; +typedef ACL_REVISION_INFORMATION *PACL_REVISION_INFORMATION; + + + + + +typedef struct _ACL_SIZE_INFORMATION { + DWORD AceCount; + DWORD AclBytesInUse; + DWORD AclBytesFree; +} ACL_SIZE_INFORMATION; +typedef ACL_SIZE_INFORMATION *PACL_SIZE_INFORMATION; +# 9770 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL; +# 9860 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; + DWORD ConstraintMask; +} SECURITY_OBJECT_AI_PARAMS, *PSECURITY_OBJECT_AI_PARAMS; +# 9937 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _OBJECT_TYPE_LIST { + WORD Level; + WORD Sbz; + GUID *ObjectType; +} OBJECT_TYPE_LIST, *POBJECT_TYPE_LIST; +# 9957 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef enum _AUDIT_EVENT_TYPE { + AuditEventObjectAccess, + AuditEventDirectoryServiceAccess +} AUDIT_EVENT_TYPE, *PAUDIT_EVENT_TYPE; +# 10011 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _PRIVILEGE_SET { + DWORD PrivilegeCount; + DWORD Control; + LUID_AND_ATTRIBUTES Privilege[1]; + } PRIVILEGE_SET, * PPRIVILEGE_SET; +# 10032 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef enum _ACCESS_REASON_TYPE{ + + AccessReasonNone = 0x00000000, + + + + + + + AccessReasonAllowedAce = 0x00010000, + AccessReasonDeniedAce = 0x00020000, + + AccessReasonAllowedParentAce = 0x00030000, + AccessReasonDeniedParentAce = 0x00040000, + + AccessReasonNotGrantedByCape = 0x00050000, + AccessReasonNotGrantedByParentCape = 0x00060000, + + AccessReasonNotGrantedToAppContainer = 0x00070000, + + AccessReasonMissingPrivilege = 0x00100000, + AccessReasonFromPrivilege = 0x00200000, + + + AccessReasonIntegrityLevel = 0x00300000, + + AccessReasonOwnership = 0x00400000, + + AccessReasonNullDacl = 0x00500000, + AccessReasonEmptyDacl = 0x00600000, + + AccessReasonNoSD = 0x00700000, + AccessReasonNoGrant = 0x00800000, + + AccessReasonTrustLabel = 0x00900000 +} +ACCESS_REASON_TYPE; +# 10083 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef DWORD ACCESS_REASON; + +typedef struct _ACCESS_REASONS{ + ACCESS_REASON Data[32]; +} ACCESS_REASONS, *PACCESS_REASONS; +# 10112 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; + PGENERIC_MAPPING GenericMapping; + DWORD ObjectTypeListCount; + POBJECT_TYPE_LIST ObjectTypeList; +} SE_ACCESS_REQUEST, *PSE_ACCESS_REQUEST; + + +typedef struct _SE_ACCESS_REPLY +{ + DWORD Size; + DWORD ResultListCount; + PACCESS_MASK GrantedAccess; + PDWORD AccessStatus; + PACCESS_REASONS AccessReason; + PPRIVILEGE_SET* Privileges; +} SE_ACCESS_REPLY, *PSE_ACCESS_REPLY; +# 10212 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef enum _SECURITY_IMPERSONATION_LEVEL { + SecurityAnonymous, + SecurityIdentification, + SecurityImpersonation, + SecurityDelegation + } SECURITY_IMPERSONATION_LEVEL, * PSECURITY_IMPERSONATION_LEVEL; +# 10294 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef enum _TOKEN_TYPE { + TokenPrimary = 1, + TokenImpersonation + } TOKEN_TYPE; +typedef TOKEN_TYPE *PTOKEN_TYPE; + + + + + + + +typedef enum _TOKEN_ELEVATION_TYPE { + TokenElevationTypeDefault = 1, + TokenElevationTypeFull, + TokenElevationTypeLimited, +} TOKEN_ELEVATION_TYPE, *PTOKEN_ELEVATION_TYPE; + + + + + + +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, + MaxTokenInfoClass +} TOKEN_INFORMATION_CLASS, *PTOKEN_INFORMATION_CLASS; + + + + + +typedef struct _TOKEN_USER { + SID_AND_ATTRIBUTES User; +} TOKEN_USER, *PTOKEN_USER; + + + +typedef struct _SE_TOKEN_USER { + union { + TOKEN_USER TokenUser; + SID_AND_ATTRIBUTES User; + } ; + + union { + SID Sid; + BYTE Buffer[(sizeof(SID) - sizeof(DWORD) + ((15) * sizeof(DWORD)))]; + } ; + +} SE_TOKEN_USER , PSE_TOKEN_USER; + + + + + + +typedef struct _TOKEN_GROUPS { + DWORD GroupCount; + + + + SID_AND_ATTRIBUTES Groups[1]; + +} TOKEN_GROUPS, *PTOKEN_GROUPS; + +typedef struct _TOKEN_PRIVILEGES { + DWORD PrivilegeCount; + LUID_AND_ATTRIBUTES Privileges[1]; +} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES; + + +typedef struct _TOKEN_OWNER { + PSID Owner; +} TOKEN_OWNER, *PTOKEN_OWNER; + + + + + +typedef struct _TOKEN_PRIMARY_GROUP { + PSID PrimaryGroup; +} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP; + + +typedef struct _TOKEN_DEFAULT_DACL { + PACL DefaultDacl; +} TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL; + +typedef struct _TOKEN_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; +# 10468 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; + + + + + + + +typedef struct _TOKEN_AUDIT_POLICY { + BYTE PerUserPolicy[(((59)) >> 1) + 1]; +} TOKEN_AUDIT_POLICY, *PTOKEN_AUDIT_POLICY; + + + +typedef struct _TOKEN_SOURCE { + CHAR SourceName[8]; + 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; + + + + + +typedef struct _TOKEN_SID_INFORMATION { + PSID Sid; +} TOKEN_SID_INFORMATION, *PTOKEN_SID_INFORMATION; +# 10586 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE { + DWORD64 Version; + PWSTR Name; +} CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE, *PCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE; +# 10598 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE { + PVOID pValue; + DWORD ValueLength; +} CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE, + *PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE; +# 10670 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _CLAIM_SECURITY_ATTRIBUTE_V1 { + + + + + + + PWSTR Name; + + + + + + WORD ValueType; + + + + + + + WORD Reserved; + + + + + + DWORD Flags; + + + + + + DWORD ValueCount; + + + + + + 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; + + + + + + +typedef struct _CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 { + + + + + + + DWORD Name; + + + + + + WORD ValueType; + + + + + + + WORD Reserved; + + + + + + DWORD Flags; + + + + + + DWORD ValueCount; + + + + + + union { + DWORD pInt64[1]; + DWORD pUint64[1]; + DWORD ppString[1]; + DWORD pFqbn[1]; + DWORD pOctetString[1]; + } Values; +} CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1, *PCLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1; +# 10789 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _CLAIM_SECURITY_ATTRIBUTES_INFORMATION { + + + + + + WORD Version; + + + + + + WORD Reserved; + + DWORD AttributeCount; + union { + PCLAIM_SECURITY_ATTRIBUTE_V1 pAttributeV1; + } Attribute; +} CLAIM_SECURITY_ATTRIBUTES_INFORMATION, *PCLAIM_SECURITY_ATTRIBUTES_INFORMATION; +# 10816 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, + * PSECURITY_CONTEXT_TRACKING_MODE; + + + + + + + +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; + + + + + + +typedef struct _SE_IMPERSONATION_STATE { + PACCESS_TOKEN Token; + BOOLEAN CopyOnOpen; + BOOLEAN EffectiveOnly; + SECURITY_IMPERSONATION_LEVEL Level; +} SE_IMPERSONATION_STATE, *PSE_IMPERSONATION_STATE; + + + + + + +typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION; +# 10871 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef BYTE SE_SIGNING_LEVEL, *PSE_SIGNING_LEVEL; +# 10895 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef enum _SE_IMAGE_SIGNATURE_TYPE +{ + SeImageSignatureNone = 0, + SeImageSignatureEmbedded, + SeImageSignatureCache, + SeImageSignatureCatalogCached, + SeImageSignatureCatalogNotCached, + SeImageSignatureCatalogHint, + SeImageSignaturePackageCatalog, +} SE_IMAGE_SIGNATURE_TYPE, *PSE_IMAGE_SIGNATURE_TYPE; + + + + + + +typedef enum _SE_LEARNING_MODE_DATA_TYPE { + SeLearningModeInvalidType = 0, + SeLearningModeSettings, + SeLearningModeMax +} SE_LEARNING_MODE_DATA_TYPE; + + + +typedef struct _SECURITY_CAPABILITIES { + + + + + PSID AppContainerSid; + PSID_AND_ATTRIBUTES Capabilities; + + DWORD CapabilityCount; + DWORD Reserved; +} SECURITY_CAPABILITIES, *PSECURITY_CAPABILITIES, *LPSECURITY_CAPABILITIES; +# 10984 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _JOB_SET_ARRAY { + HANDLE JobHandle; + DWORD MemberLevel; + DWORD Flags; +} JOB_SET_ARRAY, *PJOB_SET_ARRAY; + + + + +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; + + union { + PVOID FiberData; + DWORD Version; + }; + + + + PVOID ArbitraryUserPointer; + struct _NT_TIB *Self; +} NT_TIB; +typedef NT_TIB *PNT_TIB; + + + + +typedef struct _NT_TIB32 { + DWORD ExceptionList; + DWORD StackBase; + DWORD StackLimit; + DWORD SubSystemTib; + + + union { + DWORD FiberData; + DWORD Version; + }; + + + + + DWORD ArbitraryUserPointer; + DWORD Self; +} NT_TIB32, *PNT_TIB32; + +typedef struct _NT_TIB64 { + DWORD64 ExceptionList; + DWORD64 StackBase; + DWORD64 StackLimit; + DWORD64 SubSystemTib; + + + union { + DWORD64 FiberData; + DWORD Version; + }; + + + + + + DWORD64 ArbitraryUserPointer; + DWORD64 Self; +} NT_TIB64, *PNT_TIB64; +# 11069 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; +# 11097 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; + + + + + + + +typedef union _RATE_QUOTA_LIMIT { + DWORD RateData; + struct { + DWORD RatePercent : 7; + DWORD Reserved0 : 25; + } ; +} 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; + LARGE_INTEGER TimeLimit; + SIZE_T WorkingSetLimit; + 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; + + + + +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, + MaxProcessMitigationPolicy +} PROCESS_MITIGATION_POLICY, *PPROCESS_MITIGATION_POLICY; + + + + + + +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; + } ; + } ; +} 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; + } ; + } ; + 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; + } ; + } ; +} 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 ReservedFlags : 31; + } ; + } ; +} 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; + } ; + } ; +} 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 ReservedFlags : 30; + } ; + } ; +} 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 ReservedFlags : 31; + } ; + } ; +} 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 ReservedFlags : 29; + } ; + } ; +} 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; + } ; + } ; +} 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 ReservedFlags : 29; + } ; + } ; +} PROCESS_MITIGATION_IMAGE_LOAD_POLICY, *PPROCESS_MITIGATION_IMAGE_LOAD_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; + + +typedef struct _JOBOBJECT_BASIC_PROCESS_ID_LIST { + DWORD NumberOfAssignedProcesses; + DWORD NumberOfProcessIdsInList; + ULONG_PTR ProcessIdList[1]; +} JOBOBJECT_BASIC_PROCESS_ID_LIST, *PJOBOBJECT_BASIC_PROCESS_ID_LIST; + +typedef struct _JOBOBJECT_BASIC_UI_RESTRICTIONS { + DWORD UIRestrictionsClass; +} JOBOBJECT_BASIC_UI_RESTRICTIONS, *PJOBOBJECT_BASIC_UI_RESTRICTIONS; + + + + + +typedef struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION { + DWORD SecurityLimitFlags ; + HANDLE JobToken ; + PTOKEN_GROUPS SidsToDisable ; + PTOKEN_PRIVILEGES PrivilegesToDelete ; + PTOKEN_GROUPS RestrictedSids ; +} JOBOBJECT_SECURITY_LIMIT_INFORMATION, *PJOBOBJECT_SECURITY_LIMIT_INFORMATION ; + +typedef struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION { + DWORD EndOfJobTimeAction; +} JOBOBJECT_END_OF_JOB_TIME_INFORMATION, *PJOBOBJECT_END_OF_JOB_TIME_INFORMATION; + +typedef struct _JOBOBJECT_ASSOCIATE_COMPLETION_PORT { + PVOID CompletionKey; + HANDLE CompletionPort; +} JOBOBJECT_ASSOCIATE_COMPLETION_PORT, *PJOBOBJECT_ASSOCIATE_COMPLETION_PORT; + +typedef struct _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION { + JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo; + IO_COUNTERS IoInfo; +} JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION, *PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION; + +typedef struct _JOBOBJECT_JOBSET_INFORMATION { + DWORD MemberLevel; +} JOBOBJECT_JOBSET_INFORMATION, *PJOBOBJECT_JOBSET_INFORMATION; + +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; + } ; + + union { + JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance; + JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlTolerance; + } ; + + union { + JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL RateControlToleranceInterval; + JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL + CpuRateControlToleranceInterval; + } ; + + 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; + } ; + + union { + JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlTolerance; + JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlTolerance; + } ; + + union { + JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlToleranceLimit; + JOBOBJECT_RATE_CONTROL_TOLERANCE CpuRateControlToleranceLimit; + } ; + + 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; + } ; + } ; +} JOBOBJECT_CPU_RATE_CONTROL_INFORMATION, *PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION; + + + + + +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; + + + +extern "C++" { inline constexpr JOB_OBJECT_NET_RATE_CONTROL_FLAGS operator | (JOB_OBJECT_NET_RATE_CONTROL_FLAGS a, JOB_OBJECT_NET_RATE_CONTROL_FLAGS b) throw() { return JOB_OBJECT_NET_RATE_CONTROL_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline JOB_OBJECT_NET_RATE_CONTROL_FLAGS &operator |= (JOB_OBJECT_NET_RATE_CONTROL_FLAGS &a, JOB_OBJECT_NET_RATE_CONTROL_FLAGS b) throw() { return (JOB_OBJECT_NET_RATE_CONTROL_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr JOB_OBJECT_NET_RATE_CONTROL_FLAGS operator & (JOB_OBJECT_NET_RATE_CONTROL_FLAGS a, JOB_OBJECT_NET_RATE_CONTROL_FLAGS b) throw() { return JOB_OBJECT_NET_RATE_CONTROL_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline JOB_OBJECT_NET_RATE_CONTROL_FLAGS &operator &= (JOB_OBJECT_NET_RATE_CONTROL_FLAGS &a, JOB_OBJECT_NET_RATE_CONTROL_FLAGS b) throw() { return (JOB_OBJECT_NET_RATE_CONTROL_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr JOB_OBJECT_NET_RATE_CONTROL_FLAGS operator ~ (JOB_OBJECT_NET_RATE_CONTROL_FLAGS a) throw() { return JOB_OBJECT_NET_RATE_CONTROL_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr JOB_OBJECT_NET_RATE_CONTROL_FLAGS operator ^ (JOB_OBJECT_NET_RATE_CONTROL_FLAGS a, JOB_OBJECT_NET_RATE_CONTROL_FLAGS b) throw() { return JOB_OBJECT_NET_RATE_CONTROL_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline JOB_OBJECT_NET_RATE_CONTROL_FLAGS &operator ^= (JOB_OBJECT_NET_RATE_CONTROL_FLAGS &a, JOB_OBJECT_NET_RATE_CONTROL_FLAGS b) throw() { return (JOB_OBJECT_NET_RATE_CONTROL_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } } +typedef char __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))?1:-1]; +# 11493 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct JOBOBJECT_NET_RATE_CONTROL_INFORMATION { + DWORD64 MaxBandwidth; + JOB_OBJECT_NET_RATE_CONTROL_FLAGS ControlFlags; + BYTE DscpTag; +} JOBOBJECT_NET_RATE_CONTROL_INFORMATION; +# 11506 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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_VALID_FLAGS = JOB_OBJECT_IO_RATE_CONTROL_ENABLE | + JOB_OBJECT_IO_RATE_CONTROL_STANDALONE_VOLUME +} JOB_OBJECT_IO_RATE_CONTROL_FLAGS; + + + +extern "C++" { inline constexpr JOB_OBJECT_IO_RATE_CONTROL_FLAGS operator | (JOB_OBJECT_IO_RATE_CONTROL_FLAGS a, JOB_OBJECT_IO_RATE_CONTROL_FLAGS b) throw() { return JOB_OBJECT_IO_RATE_CONTROL_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline JOB_OBJECT_IO_RATE_CONTROL_FLAGS &operator |= (JOB_OBJECT_IO_RATE_CONTROL_FLAGS &a, JOB_OBJECT_IO_RATE_CONTROL_FLAGS b) throw() { return (JOB_OBJECT_IO_RATE_CONTROL_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr JOB_OBJECT_IO_RATE_CONTROL_FLAGS operator & (JOB_OBJECT_IO_RATE_CONTROL_FLAGS a, JOB_OBJECT_IO_RATE_CONTROL_FLAGS b) throw() { return JOB_OBJECT_IO_RATE_CONTROL_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline JOB_OBJECT_IO_RATE_CONTROL_FLAGS &operator &= (JOB_OBJECT_IO_RATE_CONTROL_FLAGS &a, JOB_OBJECT_IO_RATE_CONTROL_FLAGS b) throw() { return (JOB_OBJECT_IO_RATE_CONTROL_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr JOB_OBJECT_IO_RATE_CONTROL_FLAGS operator ~ (JOB_OBJECT_IO_RATE_CONTROL_FLAGS a) throw() { return JOB_OBJECT_IO_RATE_CONTROL_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr JOB_OBJECT_IO_RATE_CONTROL_FLAGS operator ^ (JOB_OBJECT_IO_RATE_CONTROL_FLAGS a, JOB_OBJECT_IO_RATE_CONTROL_FLAGS b) throw() { return JOB_OBJECT_IO_RATE_CONTROL_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline JOB_OBJECT_IO_RATE_CONTROL_FLAGS &operator ^= (JOB_OBJECT_IO_RATE_CONTROL_FLAGS &a, JOB_OBJECT_IO_RATE_CONTROL_FLAGS b) throw() { return (JOB_OBJECT_IO_RATE_CONTROL_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } } + + + +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 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; +# 11700 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef enum _JOBOBJECTINFOCLASS { + JobObjectBasicAccountingInformation = 1, + JobObjectBasicLimitInformation, + JobObjectBasicProcessIdList, + JobObjectBasicUIRestrictions, + JobObjectSecurityLimitInformation, + 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, + JobObjectReserved17Information, + JobObjectReserved18Information, + JobObjectReserved19Information = 41, + JobObjectReserved20Information, + 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; +# 11810 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef enum _LOGICAL_PROCESSOR_RELATIONSHIP { + RelationProcessorCore, + RelationNumaNode, + RelationCache, + RelationProcessorPackage, + RelationGroup, + RelationAll = 0xffff +} LOGICAL_PROCESSOR_RELATIONSHIP; + + + +typedef enum _PROCESSOR_CACHE_TYPE { + CacheUnified, + CacheInstruction, + CacheData, + CacheTrace +} PROCESSOR_CACHE_TYPE; + + + +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]; + } ; +} SYSTEM_LOGICAL_PROCESSOR_INFORMATION, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION; + +typedef struct _PROCESSOR_RELATIONSHIP { + BYTE Flags; + BYTE EfficiencyClass; + BYTE Reserved[20]; + WORD GroupCount; + GROUP_AFFINITY GroupMask[1]; +} 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[1]; +} GROUP_RELATIONSHIP, *PGROUP_RELATIONSHIP; + + 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; + } ; +}; + +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 _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 { + + + + + + + BYTE AllFlags; + struct { + BYTE Parked : 1; + BYTE Allocated : 1; + BYTE AllocatedToTargetProcess : 1; + BYTE RealTime : 1; + BYTE ReservedFlags : 4; + } ; + } ; + DWORD Reserved; + DWORD64 AllocationTag; + } CpuSet; + } ; +}; + +typedef struct _SYSTEM_CPU_SET_INFORMATION SYSTEM_CPU_SET_INFORMATION, *PSYSTEM_CPU_SET_INFORMATION; + + + +typedef struct _SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION { + DWORD64 CycleTime; +} SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION, *PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION; +# 12106 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _XSTATE_FEATURE { + DWORD Offset; + DWORD Size; +} XSTATE_FEATURE, *PXSTATE_FEATURE; + +typedef struct _XSTATE_CONFIGURATION { + + DWORD64 EnabledFeatures; + + + DWORD64 EnabledVolatileFeatures; + + + DWORD Size; + + + union { + DWORD ControlFlags; + struct + { + DWORD OptimizedSave : 1; + DWORD CompactionEnabled : 1; + }; + }; + + + XSTATE_FEATURE Features[(64)]; + + + DWORD64 EnabledSupervisorFeatures; + + + DWORD64 AlignedFeatures; + + + DWORD AllFeatureSize; + + + DWORD AllFeatures[(64)]; + +} XSTATE_CONFIGURATION, *PXSTATE_CONFIGURATION; + + + +typedef struct _MEMORY_BASIC_INFORMATION { + PVOID BaseAddress; + PVOID AllocationBase; + DWORD AllocationProtect; + SIZE_T RegionSize; + DWORD State; + DWORD Protect; + DWORD Type; +} MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION; + + + +typedef struct _MEMORY_BASIC_INFORMATION32 { + DWORD BaseAddress; + DWORD AllocationBase; + DWORD AllocationProtect; + DWORD RegionSize; + DWORD State; + DWORD Protect; + DWORD Type; +} MEMORY_BASIC_INFORMATION32, *PMEMORY_BASIC_INFORMATION32; + +typedef struct __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; +# 12202 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _CFG_CALL_TARGET_INFO { + ULONG_PTR Offset; + ULONG_PTR Flags; +} CFG_CALL_TARGET_INFO, *PCFG_CALL_TARGET_INFO; +# 12293 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; +# 12434 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _FILE_ID_128 { + BYTE Identifier[16]; +} FILE_ID_128, *PFILE_ID_128; + + + + + +typedef struct _FILE_NOTIFY_INFORMATION { + DWORD NextEntryOffset; + DWORD Action; + DWORD FileNameLength; + WCHAR FileName[1]; +} FILE_NOTIFY_INFORMATION, *PFILE_NOTIFY_INFORMATION; + + + + + + +typedef union _FILE_SEGMENT_ELEMENT { + PVOID64 Buffer; + ULONGLONG Alignment; +}FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT; +# 12528 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; +# 12651 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _SCRUB_DATA_INPUT { + + + + + + DWORD Size; +# 12666 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" + DWORD Flags; + + + + + + + + DWORD MaximumIos; + + + + + + DWORD Reserved[17]; + + + + + + + + BYTE ResumeContext[816]; + +} SCRUB_DATA_INPUT, *PSCRUB_DATA_INPUT; + + + +typedef struct _SCRUB_PARITY_EXTENT { + + LONGLONG Offset; + + ULONGLONG Length; + +} SCRUB_PARITY_EXTENT, *PSCRUB_PARITY_EXTENT; + +typedef struct _SCRUB_PARITY_EXTENT_DATA { + + + + + + WORD Size; + + + + + + WORD Flags; + + + + + + WORD NumberOfParityExtents; + + + + + + WORD MaximumNumberOfParityExtents; + + + + + + SCRUB_PARITY_EXTENT ParityExtents[1]; + +} SCRUB_PARITY_EXTENT_DATA, *PSCRUB_PARITY_EXTENT_DATA; + + + +typedef struct _SCRUB_DATA_OUTPUT { + + + + + + DWORD Size; +# 12754 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" + DWORD Flags; + + + + + + DWORD Status; + + + + + + + ULONGLONG ErrorFileOffset; + + + + + + + ULONGLONG ErrorLength; + + + + + + ULONGLONG NumberOfBytesRepaired; + + + + + + ULONGLONG NumberOfBytesFailed; + + + + + + ULONGLONG InternalFileReference; +# 12803 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" + WORD ResumeContextLength; + + + + + + + + WORD ParityExtentDataOffset; + + + + + + DWORD Reserved[5]; +# 12842 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" + BYTE ResumeContext[816]; + +} SCRUB_DATA_OUTPUT, *PSCRUB_DATA_OUTPUT; +# 12856 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef enum _SharedVirtualDiskSupportType +{ + + + + SharedVirtualDisksUnsupported = 0, + + + + + SharedVirtualDisksSupported = 1, + + + + + + SharedVirtualDiskSnapshotsSupported = 3, + + + + + + SharedVirtualDiskCDPSnapshotsSupported = 7 +} SharedVirtualDiskSupportType; + +typedef enum _SharedVirtualDiskHandleState +{ + + + + SharedVirtualDiskHandleStateNone = 0, + + + + + + SharedVirtualDiskHandleStateFileShared = 1, + + + + + + SharedVirtualDiskHandleStateHandleShared = 3 +} SharedVirtualDiskHandleState; + + + + + +typedef struct _SHARED_VIRTUAL_DISK_SUPPORT { + + + + + SharedVirtualDiskSupportType SharedVirtualDiskSupport; + + + + + + SharedVirtualDiskHandleState HandleState; +} SHARED_VIRTUAL_DISK_SUPPORT, *PSHARED_VIRTUAL_DISK_SUPPORT; +# 12969 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _NETWORK_APP_INSTANCE_EA { + + + + + + + GUID AppInstanceID; + + + + + + DWORD CsvFlags; + +} NETWORK_APP_INSTANCE_EA, *PNETWORK_APP_INSTANCE_EA; +# 13011 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_MAX_POWER_SAVINGS; + + + + + + +extern "C" const GUID GUID_MIN_POWER_SAVINGS; + + + + + + +extern "C" const GUID GUID_TYPICAL_POWER_SAVINGS; + + + + + + + +extern "C" const GUID NO_SUBGROUP_GUID; + + + + + + + +extern "C" const GUID ALL_POWERSCHEMES_GUID; +# 13078 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_POWERSCHEME_PERSONALITY; +# 13087 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_ACTIVE_POWERSCHEME; +# 13102 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_IDLE_RESILIENCY_SUBGROUP; + + + + + + + +extern "C" const GUID GUID_IDLE_RESILIENCY_PERIOD; + + + + + +extern "C" const GUID GUID_DEEP_SLEEP_ENABLED; +# 13125 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_DEEP_SLEEP_PLATFORM_STATE; + + + + + + +extern "C" const GUID GUID_DISK_COALESCING_POWERDOWN_TIMEOUT; +# 13145 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_EXECUTION_REQUIRED_REQUEST_TIMEOUT; +# 13154 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_VIDEO_SUBGROUP; + + + + + +extern "C" const GUID GUID_VIDEO_POWERDOWN_TIMEOUT; + + + + + + + +extern "C" const GUID GUID_VIDEO_ANNOYANCE_TIMEOUT; + + + + + + + +extern "C" const GUID GUID_VIDEO_ADAPTIVE_PERCENT_INCREASE; + + + + + +extern "C" const GUID GUID_VIDEO_DIM_TIMEOUT; + + + + + +extern "C" const GUID GUID_VIDEO_ADAPTIVE_POWERDOWN; + + + + +extern "C" const GUID GUID_DISK_MAX_POWER; + + + + + +extern "C" const GUID GUID_MONITOR_POWER_ON; + + + + +extern "C" const GUID GUID_DEVICE_POWER_POLICY_VIDEO_BRIGHTNESS; + + + + + +extern "C" const GUID GUID_DEVICE_POWER_POLICY_VIDEO_DIM_BRIGHTNESS; + + + + +extern "C" const GUID GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS; + + + + + + +extern "C" const GUID GUID_VIDEO_ADAPTIVE_DISPLAY_BRIGHTNESS; + + + + + +extern "C" const GUID GUID_CONSOLE_DISPLAY_STATE; + + + + + + + +extern "C" const GUID GUID_ALLOW_DISPLAY_REQUIRED; + + + + + + + +extern "C" const GUID GUID_VIDEO_CONSOLE_LOCK_TIMEOUT; + + + + + + +extern "C" const GUID GUID_ADAPTIVE_POWER_BEHAVIOR_SUBGROUP; + + + + + + +extern "C" const GUID GUID_NON_ADAPTIVE_INPUT_TIMEOUT; + + + + + + + +extern "C" const GUID GUID_DISK_SUBGROUP; + + + + + +extern "C" const GUID GUID_DISK_POWERDOWN_TIMEOUT; + + + + + + +extern "C" const GUID GUID_DISK_IDLE_TIMEOUT; +# 13288 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_DISK_BURST_IGNORE_THRESHOLD; + + + + + +extern "C" const GUID GUID_DISK_ADAPTIVE_POWERDOWN; +# 13303 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_SLEEP_SUBGROUP; + + + + + + + +extern "C" const GUID GUID_SLEEP_IDLE_THRESHOLD; + + + + + +extern "C" const GUID GUID_STANDBY_TIMEOUT; +# 13326 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_UNATTEND_SLEEP_TIMEOUT; + + + + + +extern "C" const GUID GUID_HIBERNATE_TIMEOUT; + + + + + +extern "C" const GUID GUID_HIBERNATE_FASTS4_POLICY; +# 13347 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_CRITICAL_POWER_TRANSITION; + + + + + +extern "C" const GUID GUID_SYSTEM_AWAYMODE; + + + + + + +extern "C" const GUID GUID_ALLOW_AWAYMODE; + + + + + + +extern "C" const GUID GUID_USER_PRESENCE_PREDICTION; + + + + + + +extern "C" const GUID GUID_STANDBY_BUDGET_GRACE_PERIOD; + + + + + + +extern "C" const GUID GUID_STANDBY_BUDGET_PERCENT; + + + + + + +extern "C" const GUID GUID_STANDBY_RESERVE_GRACE_PERIOD; + + + + + + +extern "C" const GUID GUID_STANDBY_RESERVE_TIME; + + + + + + +extern "C" const GUID GUID_STANDBY_RESET_PERCENT; + + + + + + + +extern "C" const GUID GUID_ALLOW_STANDBY_STATES; + + + + + + +extern "C" const GUID GUID_ALLOW_RTC_WAKE; + + + + + + + +extern "C" const GUID GUID_ALLOW_SYSTEM_REQUIRED; +# 13434 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_POWER_SAVING_STATUS; + + + + + + + +extern "C" const GUID GUID_ENERGY_SAVER_SUBGROUP; + + + + + + +extern "C" const GUID GUID_ENERGY_SAVER_BATTERY_THRESHOLD; + + + + + + +extern "C" const GUID GUID_ENERGY_SAVER_BRIGHTNESS; + + + + + + +extern "C" const GUID GUID_ENERGY_SAVER_POLICY; +# 13472 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_SYSTEM_BUTTON_SUBGROUP; +# 13493 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_POWERBUTTON_ACTION; + + + + + +extern "C" const GUID GUID_SLEEPBUTTON_ACTION; + + + + + + +extern "C" const GUID GUID_USERINTERFACEBUTTON_ACTION; + + + + + +extern "C" const GUID GUID_LIDCLOSE_ACTION; +extern "C" const GUID GUID_LIDOPEN_POWERSTATE; +# 13522 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_BATTERY_SUBGROUP; +# 13534 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_BATTERY_DISCHARGE_ACTION_0; +extern "C" const GUID GUID_BATTERY_DISCHARGE_LEVEL_0; +extern "C" const GUID GUID_BATTERY_DISCHARGE_FLAGS_0; + +extern "C" const GUID GUID_BATTERY_DISCHARGE_ACTION_1; +extern "C" const GUID GUID_BATTERY_DISCHARGE_LEVEL_1; +extern "C" const GUID GUID_BATTERY_DISCHARGE_FLAGS_1; + +extern "C" const GUID GUID_BATTERY_DISCHARGE_ACTION_2; +extern "C" const GUID GUID_BATTERY_DISCHARGE_LEVEL_2; +extern "C" const GUID GUID_BATTERY_DISCHARGE_FLAGS_2; + +extern "C" const GUID GUID_BATTERY_DISCHARGE_ACTION_3; +extern "C" const GUID GUID_BATTERY_DISCHARGE_LEVEL_3; +extern "C" const GUID GUID_BATTERY_DISCHARGE_FLAGS_3; +# 13559 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_SETTINGS_SUBGROUP; + + + + + +extern "C" const GUID GUID_PROCESSOR_THROTTLE_POLICY; +# 13583 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_THROTTLE_MAXIMUM; +# 13593 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_THROTTLE_MAXIMUM_1; +# 13603 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_THROTTLE_MINIMUM; +# 13613 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_THROTTLE_MINIMUM_1; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_ALLOW_THROTTLING; +# 13631 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_IDLESTATE_POLICY; + + + + + +extern "C" const GUID GUID_PROCESSOR_PERFSTATE_POLICY; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_PERF_INCREASE_THRESHOLD; +# 13654 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_PERF_INCREASE_THRESHOLD_1; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_PERF_DECREASE_THRESHOLD; +# 13671 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_PERF_DECREASE_THRESHOLD_1; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_PERF_INCREASE_POLICY; +# 13688 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_PERF_INCREASE_POLICY_1; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_PERF_DECREASE_POLICY; +# 13705 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_PERF_DECREASE_POLICY_1; +# 13714 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_PERF_INCREASE_TIME; +# 13723 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_PERF_INCREASE_TIME_1; +# 13732 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_PERF_DECREASE_TIME; +# 13741 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_PERF_DECREASE_TIME_1; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_PERF_TIME_CHECK; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_PERF_BOOST_POLICY; +# 13769 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_PERF_BOOST_MODE; +# 13787 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_PERF_AUTONOMOUS_MODE; +# 13798 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_PERF_ENERGY_PERFORMANCE_PREFERENCE; +# 13809 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_PERF_AUTONOMOUS_ACTIVITY_WINDOW; +# 13819 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_DUTY_CYCLING; +# 13831 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_IDLE_ALLOW_SCALING; + + + + + + +extern "C" const GUID GUID_PROCESSOR_IDLE_DISABLE; +# 13847 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_IDLE_STATE_MAXIMUM; +# 13856 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_IDLE_TIME_CHECK; +# 13865 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_IDLE_DEMOTE_THRESHOLD; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_IDLE_PROMOTE_THRESHOLD; +# 13882 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_INCREASE_THRESHOLD; +# 13891 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_DECREASE_THRESHOLD; + + + + + + +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_INCREASE_POLICY; +# 13911 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_DECREASE_POLICY; + + + + + + +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_MAX_CORES; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_MAX_CORES_1; + + + + + + +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_MIN_CORES; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_MIN_CORES_1; + + + + + + +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_INCREASE_TIME; + + + + + + +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_DECREASE_TIME; + + + + + + +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_DECREASE_FACTOR; + + + + + + +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_THRESHOLD; + + + + + + +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_AFFINITY_WEIGHTING; + + + + + + +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_DECREASE_FACTOR; + + + + + + +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_THRESHOLD; + + + + + + +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_WEIGHTING; + + + + + + +extern "C" const GUID GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_THRESHOLD; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_PARKING_CORE_OVERRIDE; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_PARKING_PERF_STATE; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_PARKING_PERF_STATE_1; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_PARKING_CONCURRENCY_THRESHOLD; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_PARKING_HEADROOM_THRESHOLD; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_PARKING_DISTRIBUTION_THRESHOLD; + + + + + + +extern "C" const GUID GUID_PROCESSOR_PERF_HISTORY; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_PERF_HISTORY_1; +# 14077 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_PERF_INCREASE_HISTORY; +# 14087 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_PERF_DECREASE_HISTORY; +# 14097 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_PERF_CORE_PARKING_HISTORY; +# 14107 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_PERF_LATENCY_HINT; + + + + + + +extern "C" const GUID GUID_PROCESSOR_PERF_LATENCY_HINT_PERF; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_PERF_LATENCY_HINT_PERF_1; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_LATENCY_HINT_MIN_UNPARK; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_LATENCY_HINT_MIN_UNPARK_1; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_DISTRIBUTE_UTILITY; +# 14157 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_HETEROGENEOUS_POLICY; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_HETERO_DECREASE_TIME; + + + + + + + +extern "C" const GUID GUID_PROCESSOR_HETERO_INCREASE_TIME; +# 14182 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_HETERO_DECREASE_THRESHOLD; +# 14191 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_HETERO_INCREASE_THRESHOLD; +# 14200 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_CLASS0_FLOOR_PERF; +# 14209 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PROCESSOR_CLASS1_INITIAL_PERF; + + + + + + + +extern "C" const GUID GUID_SYSTEM_COOLING_POLICY; +# 14227 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_LOCK_CONSOLE_ON_WAKE; +# 14237 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_DEVICE_IDLE_POLICY; +# 14246 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_CONNECTIVITY_IN_STANDBY; +# 14267 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_ACDC_POWER_SOURCE; +# 14283 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_LIDSWITCH_STATE_CHANGE; +# 14300 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_BATTERY_PERCENTAGE_REMAINING; +# 14313 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_BATTERY_COUNT; + + + + + + +extern "C" const GUID GUID_GLOBAL_USER_PRESENCE; +# 14331 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_SESSION_DISPLAY_STATUS; +# 14341 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_SESSION_USER_PRESENCE; + + + + + + +extern "C" const GUID GUID_IDLE_BACKGROUND_TASK; + + + + + + +extern "C" const GUID GUID_BACKGROUND_TASK_NOTIFICATION; + + + + + + + +extern "C" const GUID GUID_APPLAUNCH_BUTTON; +# 14374 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_PCIEXPRESS_SETTINGS_SUBGROUP; + + + + + +extern "C" const GUID GUID_PCIEXPRESS_ASPM_POLICY; +# 14392 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID GUID_ENABLE_SWITCH_FORCED_SHUTDOWN; + + + + + + +extern "C" const GUID GUID_INTSTEER_SUBGROUP; + + + +extern "C" const GUID GUID_INTSTEER_MODE; + + + +extern "C" const GUID GUID_INTSTEER_LOAD_PER_PROC_TRIGGER; + + + +extern "C" const GUID GUID_INTSTEER_TIME_UNPARK_TRIGGER; + + + +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; + + + +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; +# 14471 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef DWORD EXECUTION_STATE, *PEXECUTION_STATE; + +typedef enum { + LT_DONT_CARE, + LT_LOWEST_LATENCY +} LATENCY_TIME; +# 14495 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef enum _POWER_REQUEST_TYPE { + PowerRequestDisplayRequired, + PowerRequestSystemRequired, + PowerRequestAwayModeRequired, + PowerRequestExecutionRequired +} POWER_REQUEST_TYPE, *PPOWER_REQUEST_TYPE; +# 14521 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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[7]; + SYSTEM_POWER_STATE PD_DeepestSystemWake; +} CM_POWER_DATA, *PCM_POWER_DATA; + + + + + +typedef enum { + SystemPowerPolicyAc, + SystemPowerPolicyDc, + VerifySystemPolicyAc, + VerifySystemPolicyDc, + SystemPowerCapabilities, + SystemBatteryState, + SystemPowerStateHandler, + ProcessorStateHandler, + SystemPowerPolicyCurrent, + AdministratorPowerPolicy, + SystemReserveHiberFile, + ProcessorInformation, + SystemPowerInformation, + ProcessorStateHandler2, + LastWakeTime, + LastSleepTime, + 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, + PlatformIdleVeto, + SystemBatteryStatePrecise, + ThermalEvent, + PowerRequestActionInternal, + BatteryDeviceState, + PowerInformationInternal, + ThermalStandby, + SystemHiberFileType, + PhysicalPowerButtonPress, + PowerInformationLevelMaximum +} POWER_INFORMATION_LEVEL; + + + + + +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; + + + + +typedef struct _POWER_SESSION_CONNECT { + BOOLEAN Connected; + BOOLEAN Console; +} POWER_SESSION_CONNECT, *PPOWER_SESSION_CONNECT; + +typedef struct _POWER_SESSION_TIMEOUTS { + DWORD InputTimeout; + DWORD DisplayTimeout; +} POWER_SESSION_TIMEOUTS, *PPOWER_SESSION_TIMEOUTS; + + + + +typedef struct _POWER_SESSION_RIT_STATE { + BOOLEAN Active; + DWORD LastInputTime; +} POWER_SESSION_RIT_STATE, *PPOWER_SESSION_RIT_STATE; + + + + +typedef struct _POWER_SESSION_WINLOGON { + DWORD SessionId; + BOOLEAN Console; + BOOLEAN Locked; +} POWER_SESSION_WINLOGON, *PPOWER_SESSION_WINLOGON; + + + + +typedef struct _POWER_IDLE_RESILIENCY { + DWORD CoalescingTimeout; + DWORD IdleResiliencyPeriod; +} POWER_IDLE_RESILIENCY, *PPOWER_IDLE_RESILIENCY; + + + + +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, + MonitorRequestReasonMax +} POWER_MONITOR_REQUEST_REASON; + +typedef enum _POWER_MONITOR_REQUEST_TYPE { + MonitorRequestTypeOff, + MonitorRequestTypeOnAndPresent, + MonitorRequestTypeToggleOn +} POWER_MONITOR_REQUEST_TYPE; + + + + +typedef struct _POWER_MONITOR_INVOCATION { + BOOLEAN Console; + POWER_MONITOR_REQUEST_REASON RequestReason; +} POWER_MONITOR_INVOCATION, *PPOWER_MONITOR_INVOCATION; + + + + + +typedef struct _RESUME_PERFORMANCE { + DWORD PostTimeMs; + ULONGLONG TotalResumeTimeMs; + ULONGLONG ResumeCompleteTimestamp; +} RESUME_PERFORMANCE, *PRESUME_PERFORMANCE; + + + + + +typedef enum { + PoAc, + PoDc, + PoHot, + PoConditionMaximum +} SYSTEM_POWER_CONDITION; + +typedef struct { + + + + + + DWORD Version; + + + + + + GUID Guid; + + + + + + + SYSTEM_POWER_CONDITION PowerCondition; + + + + + DWORD DataLength; + + + + + BYTE Data[1]; +} SET_POWER_SETTING_VALUE, *PSET_POWER_SETTING_VALUE; + + + +typedef struct { + GUID Guid; +} NOTIFY_USER_POWER_SETTING, *PNOTIFY_USER_POWER_SETTING; + + + + + + +typedef struct _APPLICATIONLAUNCH_SETTING_VALUE { + + + + + + LARGE_INTEGER ActivationTime; + + + + + DWORD Flags; + + + + + DWORD ButtonInstanceID; + + +} APPLICATIONLAUNCH_SETTING_VALUE, *PAPPLICATIONLAUNCH_SETTING_VALUE; + + + + + +typedef enum _POWER_PLATFORM_ROLE { + PlatformRoleUnspecified = 0, + PlatformRoleDesktop, + PlatformRoleMobile, + PlatformRoleWorkstation, + PlatformRoleEnterpriseServer, + PlatformRoleSOHOServer, + PlatformRoleAppliancePC, + PlatformRolePerformanceServer, + PlatformRoleSlate, + PlatformRoleMaximum +} POWER_PLATFORM_ROLE, *PPOWER_PLATFORM_ROLE; +# 14852 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _POWER_PLATFORM_INFORMATION { + BOOLEAN AoAc; +} POWER_PLATFORM_INFORMATION, *PPOWER_PLATFORM_INFORMATION; + + + + + + +typedef struct { + DWORD Granularity; + DWORD Capacity; +} BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE; + + + + +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; +} PPM_WMI_IDLE_STATE, *PPPM_WMI_IDLE_STATE; + +typedef struct { + DWORD Type; + DWORD Count; + DWORD TargetState; + DWORD OldState; + DWORD64 TargetProcessors; + PPM_WMI_IDLE_STATE State[1]; +} PPM_WMI_IDLE_STATES, *PPPM_WMI_IDLE_STATES; + +typedef struct { + DWORD Type; + DWORD Count; + DWORD TargetState; + DWORD OldState; + PVOID TargetProcessors; + PPM_WMI_IDLE_STATE State[1]; +} PPM_WMI_IDLE_STATES_EX, *PPPM_WMI_IDLE_STATES_EX; + +typedef struct { + DWORD Frequency; + DWORD Power; + BYTE PercentFrequency; + BYTE IncreaseLevel; + BYTE DecreaseLevel; + BYTE Type; + DWORD IncreaseTime; + DWORD DecreaseTime; + DWORD64 Control; + DWORD64 Status; + DWORD HitCount; + DWORD Reserved1; + DWORD64 Reserved2; + DWORD64 Reserved3; +} PPM_WMI_PERF_STATE, *PPPM_WMI_PERF_STATE; + +typedef struct { + DWORD Count; + DWORD MaxFrequency; + DWORD CurrentState; + DWORD MaxPerfState; + DWORD MinPerfState; + DWORD LowestPerfState; + DWORD ThermalConstraint; + BYTE BusyAdjThreshold; + BYTE PolicyType; + BYTE Type; + BYTE Reserved; + DWORD TimerInterval; + DWORD64 TargetProcessors; + DWORD PStateHandler; + DWORD PStateContext; + DWORD TStateHandler; + DWORD TStateContext; + DWORD FeedbackHandler; + DWORD Reserved1; + DWORD64 Reserved2; + PPM_WMI_PERF_STATE State[1]; +} PPM_WMI_PERF_STATES, *PPPM_WMI_PERF_STATES; + +typedef struct { + DWORD Count; + DWORD MaxFrequency; + DWORD CurrentState; + DWORD MaxPerfState; + DWORD MinPerfState; + DWORD LowestPerfState; + DWORD ThermalConstraint; + BYTE BusyAdjThreshold; + BYTE PolicyType; + BYTE Type; + BYTE Reserved; + DWORD TimerInterval; + PVOID TargetProcessors; + DWORD PStateHandler; + DWORD PStateContext; + DWORD TStateHandler; + DWORD TStateContext; + DWORD FeedbackHandler; + DWORD Reserved1; + DWORD64 Reserved2; + PPM_WMI_PERF_STATE State[1]; +} PPM_WMI_PERF_STATES_EX, *PPPM_WMI_PERF_STATES_EX; + + + + + + + +typedef struct { + DWORD IdleTransitions; + DWORD FailedTransitions; + DWORD InvalidBucketIndex; + DWORD64 TotalTime; + DWORD IdleTimeBuckets[6]; +} PPM_IDLE_STATE_ACCOUNTING, *PPPM_IDLE_STATE_ACCOUNTING; + +typedef struct { + DWORD StateCount; + DWORD TotalTransitions; + DWORD ResetCount; + DWORD64 StartTime; + PPM_IDLE_STATE_ACCOUNTING State[1]; +} PPM_IDLE_ACCOUNTING, *PPPM_IDLE_ACCOUNTING; + + + + + + + +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[16]; +} PPM_IDLE_STATE_ACCOUNTING_EX, *PPPM_IDLE_STATE_ACCOUNTING_EX; + +typedef struct { + DWORD StateCount; + DWORD TotalTransitions; + DWORD ResetCount; + DWORD AbortCount; + DWORD64 StartTime; + PPM_IDLE_STATE_ACCOUNTING_EX State[1]; +} PPM_IDLE_ACCOUNTING_EX, *PPPM_IDLE_ACCOUNTING_EX; +# 15086 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +extern "C" const GUID PPM_PERFSTATE_CHANGE_GUID; + + + +extern "C" const GUID PPM_PERFSTATE_DOMAIN_CHANGE_GUID; + + + +extern "C" const GUID PPM_IDLESTATE_CHANGE_GUID; + + + +extern "C" const GUID PPM_PERFSTATES_DATA_GUID; + + + +extern "C" const GUID PPM_IDLESTATES_DATA_GUID; + + + +extern "C" const GUID PPM_IDLE_ACCOUNTING_GUID; + + + +extern "C" const GUID PPM_IDLE_ACCOUNTING_EX_GUID; + + + +extern "C" const GUID PPM_THERMALCONSTRAINT_GUID; + + + +extern "C" const GUID PPM_PERFMON_PERFSTATE_GUID; + + + +extern "C" const GUID PPM_THERMAL_POLICY_CHANGE_GUID; + + + +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) + + + + +typedef struct { + POWER_ACTION Action; + DWORD Flags; + DWORD EventCode; +} POWER_ACTION_POLICY, *PPOWER_ACTION_POLICY; +# 15203 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct { + BOOLEAN Enable; + BYTE Spare[3]; + DWORD BatteryLevel; + POWER_ACTION_POLICY PowerPolicy; + SYSTEM_POWER_STATE MinSystemState; +} SYSTEM_POWER_LEVEL, *PSYSTEM_POWER_LEVEL; +# 15218 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _SYSTEM_POWER_POLICY { + DWORD Revision; + + + POWER_ACTION_POLICY PowerButton; + POWER_ACTION_POLICY SleepButton; + POWER_ACTION_POLICY LidClose; + SYSTEM_POWER_STATE LidOpenWake; + DWORD Reserved; + + + POWER_ACTION_POLICY Idle; + DWORD IdleTimeout; + BYTE IdleSensitivity; + + BYTE DynamicThrottle; + BYTE Spare2[2]; + + + SYSTEM_POWER_STATE MinSleep; + SYSTEM_POWER_STATE MaxSleep; + SYSTEM_POWER_STATE ReducedLatencySleep; + DWORD WinLogonFlags; + + DWORD Spare3; + + + + DWORD DozeS4Timeout; + + + DWORD BroadcastCapacityResolution; + SYSTEM_POWER_LEVEL DischargePolicy[4]; + + + DWORD VideoTimeout; + BOOLEAN VideoDimDisplay; + DWORD VideoReserved[3]; + + + DWORD SpindownTimeout; + + + BOOLEAN OptimizeForPower; + BYTE FanThrottleTolerance; + BYTE ForcedThrottle; + BYTE MinThrottle; + POWER_ACTION_POLICY OverThrottled; + +} SYSTEM_POWER_POLICY, *PSYSTEM_POWER_POLICY; +# 15278 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; + } ; + } Flags; + + DWORD PolicyCount; + PROCESSOR_IDLESTATE_INFO Policy[0x3]; +} PROCESSOR_IDLESTATE_POLICY, *PPROCESSOR_IDLESTATE_POLICY; +# 15313 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _PROCESSOR_POWER_POLICY_INFO { + + + DWORD TimeCheck; + DWORD DemoteLimit; + DWORD PromoteLimit; + + + BYTE DemotePercent; + BYTE PromotePercent; + BYTE Spare[2]; + + + DWORD AllowDemotion:1; + DWORD AllowPromotion:1; + DWORD Reserved:30; + +} PROCESSOR_POWER_POLICY_INFO, *PPROCESSOR_POWER_POLICY_INFO; + + +typedef struct _PROCESSOR_POWER_POLICY { + DWORD Revision; + + + BYTE DynamicThrottle; + BYTE Spare[3]; + + + DWORD DisableCStates:1; + DWORD Reserved:31; + + + + + DWORD PolicyCount; + PROCESSOR_POWER_POLICY_INFO Policy[3]; + +} PROCESSOR_POWER_POLICY, *PPROCESSOR_POWER_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; + } ; + } Flags; + } ; + + DWORD TimeCheck; + DWORD IncreaseTime; + DWORD DecreaseTime; + DWORD IncreasePercent; + DWORD DecreasePercent; +} PROCESSOR_PERFSTATE_POLICY, *PPROCESSOR_PERFSTATE_POLICY; + + +typedef struct _ADMINISTRATOR_POWER_POLICY { + + + SYSTEM_POWER_STATE MinSleep; + SYSTEM_POWER_STATE MaxSleep; + + + DWORD MinVideoTimeout; + DWORD MaxVideoTimeout; + + + 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; + + + + + + +typedef struct _HIBERFILE_BUCKET { + DWORD64 MaxPhysicalMemory; + DWORD PhysicalMemoryPercent[0x03]; +} HIBERFILE_BUCKET, *PHIBERFILE_BUCKET; + +typedef struct { + + BOOLEAN PowerButtonPresent; + BOOLEAN SleepButtonPresent; + BOOLEAN LidPresent; + BOOLEAN SystemS1; + BOOLEAN SystemS2; + BOOLEAN SystemS3; + BOOLEAN SystemS4; + BOOLEAN SystemS5; + BOOLEAN HiberFilePresent; + BOOLEAN FullWake; + BOOLEAN VideoDimPresent; + BOOLEAN ApmPresent; + BOOLEAN UpsPresent; + + + BOOLEAN ThermalControl; + BOOLEAN ProcessorThrottle; + BYTE ProcessorMinThrottle; + + + + + + BYTE ProcessorMaxThrottle; + BOOLEAN FastSystemS4; + BOOLEAN Hiberboot; + BOOLEAN WakeAlarmPresent; + BOOLEAN AoAc; + + + + BOOLEAN DiskSpinDown; + + + + + + BYTE HiberFileType; + BOOLEAN AoAcConnectivitySupported; + BYTE spare3[6]; + + + + BOOLEAN SystemBatteriesPresent; + BOOLEAN BatteriesAreShortTerm; + BATTERY_REPORTING_SCALE BatteryScale[3]; + + + SYSTEM_POWER_STATE AcOnLineWake; + SYSTEM_POWER_STATE SoftLidWake; + SYSTEM_POWER_STATE RtcWake; + SYSTEM_POWER_STATE MinDeviceWakeState; + SYSTEM_POWER_STATE DefaultLowLatencyWake; +} 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; +# 15503 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack4.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack4.h" +#pragma warning(disable: 4103) + +#pragma pack(push,4) +# 15503 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 + + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/pshpack2.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/pshpack2.h" +#pragma warning(disable: 4103) + +#pragma pack(push,2) +# 15511 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 +# 15523 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _IMAGE_DOS_HEADER { + WORD e_magic; + WORD e_cblp; + WORD e_cp; + WORD e_crlc; + WORD e_cparhdr; + WORD e_minalloc; + WORD e_maxalloc; + WORD e_ss; + WORD e_sp; + WORD e_csum; + WORD e_ip; + WORD e_cs; + WORD e_lfarlc; + WORD e_ovno; + WORD e_res[4]; + WORD e_oemid; + WORD e_oeminfo; + WORD e_res2[10]; + LONG e_lfanew; + } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; + +typedef struct _IMAGE_OS2_HEADER { + WORD ne_magic; + CHAR ne_ver; + CHAR ne_rev; + WORD ne_enttab; + WORD ne_cbenttab; + LONG ne_crc; + WORD ne_flags; + WORD ne_autodata; + WORD ne_heap; + WORD ne_stack; + LONG ne_csip; + LONG ne_sssp; + WORD ne_cseg; + WORD ne_cmod; + WORD ne_cbnrestab; + WORD ne_segtab; + WORD ne_rsrctab; + WORD ne_restab; + WORD ne_modtab; + WORD ne_imptab; + LONG ne_nrestab; + WORD ne_cmovent; + WORD ne_align; + WORD ne_cres; + BYTE ne_exetyp; + BYTE ne_flagsothers; + WORD ne_pretthunks; + WORD ne_psegrefbytes; + WORD ne_swaparea; + WORD ne_expver; + } IMAGE_OS2_HEADER, *PIMAGE_OS2_HEADER; + +typedef struct _IMAGE_VXD_HEADER { + WORD e32_magic; + BYTE e32_border; + BYTE e32_worder; + DWORD e32_level; + WORD e32_cpu; + WORD e32_os; + DWORD e32_ver; + DWORD e32_mflags; + DWORD e32_mpages; + DWORD e32_startobj; + DWORD e32_eip; + DWORD e32_stackobj; + DWORD e32_esp; + DWORD e32_pagesize; + DWORD e32_lastpagesize; + DWORD e32_fixupsize; + DWORD e32_fixupsum; + DWORD e32_ldrsize; + DWORD e32_ldrsum; + DWORD e32_objtab; + DWORD e32_objcnt; + DWORD e32_objmap; + DWORD e32_itermap; + DWORD e32_rsrctab; + DWORD e32_rsrccnt; + DWORD e32_restab; + DWORD e32_enttab; + DWORD e32_dirtab; + DWORD e32_dircnt; + DWORD e32_fpagetab; + DWORD e32_frectab; + DWORD e32_impmod; + DWORD e32_impmodcnt; + DWORD e32_impproc; + DWORD e32_pagesum; + DWORD e32_datapage; + DWORD e32_preload; + DWORD e32_nrestab; + DWORD e32_cbnrestab; + DWORD e32_nressum; + DWORD e32_autodata; + DWORD e32_debuginfo; + DWORD e32_debuglen; + DWORD e32_instpreload; + DWORD e32_instdemand; + DWORD e32_heapsize; + BYTE e32_res3[12]; + DWORD e32_winresoff; + DWORD e32_winreslen; + WORD e32_devid; + WORD e32_ddkver; + } IMAGE_VXD_HEADER, *PIMAGE_VXD_HEADER; + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 15633 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 + + + + + + + +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; +# 15706 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _IMAGE_DATA_DIRECTORY { + DWORD VirtualAddress; + DWORD Size; +} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; + + + + + + + +typedef struct _IMAGE_OPTIONAL_HEADER { + + + + + WORD Magic; + BYTE MajorLinkerVersion; + BYTE MinorLinkerVersion; + DWORD SizeOfCode; + DWORD SizeOfInitializedData; + DWORD SizeOfUninitializedData; + DWORD AddressOfEntryPoint; + DWORD BaseOfCode; + DWORD BaseOfData; + + + + + + DWORD ImageBase; + DWORD SectionAlignment; + DWORD FileAlignment; + WORD MajorOperatingSystemVersion; + WORD MinorOperatingSystemVersion; + WORD MajorImageVersion; + WORD MinorImageVersion; + WORD MajorSubsystemVersion; + WORD MinorSubsystemVersion; + DWORD Win32VersionValue; + DWORD SizeOfImage; + DWORD SizeOfHeaders; + DWORD CheckSum; + WORD Subsystem; + WORD DllCharacteristics; + DWORD SizeOfStackReserve; + DWORD SizeOfStackCommit; + DWORD SizeOfHeapReserve; + DWORD SizeOfHeapCommit; + DWORD LoaderFlags; + DWORD NumberOfRvaAndSizes; + IMAGE_DATA_DIRECTORY DataDirectory[16]; +} 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[16]; +} IMAGE_OPTIONAL_HEADER64, *PIMAGE_OPTIONAL_HEADER64; +# 15818 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER; +typedef PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER; + + + +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; + + + + + +typedef IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS; +typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS; +# 15915 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct ANON_OBJECT_HEADER { + WORD Sig1; + WORD Sig2; + WORD Version; + WORD Machine; + DWORD TimeDateStamp; + CLSID ClassID; + DWORD SizeOfData; +} ANON_OBJECT_HEADER; + +typedef struct ANON_OBJECT_HEADER_V2 { + WORD Sig1; + WORD Sig2; + WORD Version; + WORD Machine; + DWORD TimeDateStamp; + CLSID ClassID; + DWORD SizeOfData; + DWORD Flags; + DWORD MetaDataSize; + DWORD MetaDataOffset; +} ANON_OBJECT_HEADER_V2; + +typedef struct ANON_OBJECT_HEADER_BIGOBJ { + + WORD Sig1; + WORD Sig2; + WORD Version; + WORD Machine; + DWORD TimeDateStamp; + CLSID ClassID; + DWORD SizeOfData; + DWORD Flags; + DWORD MetaDataSize; + DWORD MetaDataOffset; + + + DWORD NumberOfSections; + DWORD PointerToSymbolTable; + DWORD NumberOfSymbols; +} ANON_OBJECT_HEADER_BIGOBJ; + + + + + + + +typedef struct _IMAGE_SECTION_HEADER { + BYTE Name[8]; + 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; +# 16043 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/pshpack2.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/pshpack2.h" +#pragma warning(disable: 4103) + +#pragma pack(push,2) +# 16043 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 + + + + + + + +typedef struct _IMAGE_SYMBOL { + union { + BYTE ShortName[8]; + struct { + DWORD Short; + DWORD Long; + } Name; + DWORD LongName[2]; + } N; + DWORD Value; + SHORT SectionNumber; + WORD Type; + BYTE StorageClass; + BYTE NumberOfAuxSymbols; +} IMAGE_SYMBOL; +typedef IMAGE_SYMBOL *PIMAGE_SYMBOL; + + + +typedef struct _IMAGE_SYMBOL_EX { + union { + BYTE ShortName[8]; + struct { + DWORD Short; + DWORD Long; + } Name; + DWORD LongName[2]; + } N; + DWORD Value; + LONG SectionNumber; + WORD Type; + BYTE StorageClass; + BYTE NumberOfAuxSymbols; +} IMAGE_SYMBOL_EX; +typedef IMAGE_SYMBOL_EX *PIMAGE_SYMBOL_EX; +# 16206 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack2.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack2.h" +#pragma warning(disable: 4103) + +#pragma pack(push,2) +# 16206 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 + + +typedef struct IMAGE_AUX_SYMBOL_TOKEN_DEF { + BYTE bAuxType; + BYTE bReserved; + DWORD SymbolTableIndex; + BYTE rgbReserved[12]; +} IMAGE_AUX_SYMBOL_TOKEN_DEF; + +typedef IMAGE_AUX_SYMBOL_TOKEN_DEF *PIMAGE_AUX_SYMBOL_TOKEN_DEF; + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 16217 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 + + + + + + +typedef union _IMAGE_AUX_SYMBOL { + struct { + DWORD TagIndex; + union { + struct { + WORD Linenumber; + WORD Size; + } LnSz; + DWORD TotalSize; + } Misc; + union { + struct { + DWORD PointerToLinenumber; + DWORD PointerToNextFunction; + } Function; + struct { + WORD Dimension[4]; + } Array; + } FcnAry; + WORD TvIndex; + } Sym; + struct { + BYTE Name[18]; + } File; + struct { + DWORD Length; + WORD NumberOfRelocations; + WORD NumberOfLinenumbers; + DWORD CheckSum; + SHORT Number; + BYTE Selection; + BYTE bReserved; + SHORT HighNumber; + } Section; + IMAGE_AUX_SYMBOL_TOKEN_DEF TokenDef; + struct { + DWORD crc; + BYTE rgbReserved[14]; + } CRC; +} IMAGE_AUX_SYMBOL; +typedef IMAGE_AUX_SYMBOL *PIMAGE_AUX_SYMBOL; + +typedef union _IMAGE_AUX_SYMBOL_EX { + struct { + DWORD WeakDefaultSymIndex; + DWORD WeakSearchType; + BYTE rgbReserved[12]; + } Sym; + struct { + BYTE Name[sizeof(IMAGE_SYMBOL_EX)]; + } File; + struct { + DWORD Length; + WORD NumberOfRelocations; + WORD NumberOfLinenumbers; + DWORD CheckSum; + SHORT Number; + BYTE Selection; + BYTE bReserved; + SHORT HighNumber; + BYTE rgbReserved[2]; + } Section; + struct{ + IMAGE_AUX_SYMBOL_TOKEN_DEF TokenDef; + BYTE rgbReserved[2]; + } ; + struct { + DWORD crc; + BYTE rgbReserved[16]; + } CRC; +} IMAGE_AUX_SYMBOL_EX; +typedef IMAGE_AUX_SYMBOL_EX *PIMAGE_AUX_SYMBOL_EX; + +typedef enum IMAGE_AUX_SYMBOL_TYPE { + IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF = 1, +} IMAGE_AUX_SYMBOL_TYPE; +# 16321 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _IMAGE_RELOCATION { + union { + DWORD VirtualAddress; + DWORD RelocCount; + } ; + DWORD SymbolTableIndex; + WORD Type; +} IMAGE_RELOCATION; +typedef IMAGE_RELOCATION *PIMAGE_RELOCATION; +# 16722 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _IMAGE_LINENUMBER { + union { + DWORD SymbolTableIndex; + DWORD VirtualAddress; + } Type; + WORD Linenumber; +} IMAGE_LINENUMBER; +typedef IMAGE_LINENUMBER *PIMAGE_LINENUMBER; + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 16732 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 + + + + + + + +typedef struct _IMAGE_BASE_RELOCATION { + DWORD VirtualAddress; + DWORD SizeOfBlock; + +} IMAGE_BASE_RELOCATION; +typedef IMAGE_BASE_RELOCATION * PIMAGE_BASE_RELOCATION; +# 16786 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER { + BYTE Name[16]; + BYTE Date[12]; + BYTE UserID[6]; + BYTE GroupID[6]; + BYTE Mode[8]; + BYTE Size[10]; + BYTE EndHeader[2]; +} IMAGE_ARCHIVE_MEMBER_HEADER, *PIMAGE_ARCHIVE_MEMBER_HEADER; +# 16806 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _IMAGE_EXPORT_DIRECTORY { + DWORD Characteristics; + DWORD TimeDateStamp; + WORD MajorVersion; + WORD MinorVersion; + DWORD Name; + DWORD Base; + DWORD NumberOfFunctions; + DWORD NumberOfNames; + DWORD AddressOfFunctions; + DWORD AddressOfNames; + DWORD AddressOfNameOrdinals; +} IMAGE_EXPORT_DIRECTORY, *PIMAGE_EXPORT_DIRECTORY; + + + + + +typedef struct _IMAGE_IMPORT_BY_NAME { + WORD Hint; + CHAR Name[1]; +} IMAGE_IMPORT_BY_NAME, *PIMAGE_IMPORT_BY_NAME; + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/pshpack8.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/pshpack8.h" +#pragma warning(disable: 4103) + +#pragma pack(push,8) +# 16829 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 + + +typedef struct _IMAGE_THUNK_DATA64 { + union { + ULONGLONG ForwarderString; + ULONGLONG Function; + ULONGLONG Ordinal; + ULONGLONG AddressOfData; + } u1; +} IMAGE_THUNK_DATA64; +typedef IMAGE_THUNK_DATA64 * PIMAGE_THUNK_DATA64; + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 16841 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 + + +typedef struct _IMAGE_THUNK_DATA32 { + union { + DWORD ForwarderString; + DWORD Function; + DWORD Ordinal; + DWORD AddressOfData; + } u1; +} IMAGE_THUNK_DATA32; +typedef IMAGE_THUNK_DATA32 * PIMAGE_THUNK_DATA32; +# 16864 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef void +(__stdcall *PIMAGE_TLS_CALLBACK) ( + PVOID DllHandle, + DWORD Reason, + PVOID Reserved + ); + +typedef struct _IMAGE_TLS_DIRECTORY64 { + ULONGLONG StartAddressOfRawData; + ULONGLONG EndAddressOfRawData; + ULONGLONG AddressOfIndex; + ULONGLONG AddressOfCallBacks; + DWORD SizeOfZeroFill; + union { + DWORD Characteristics; + struct { + DWORD Reserved0 : 20; + DWORD Alignment : 4; + DWORD Reserved1 : 8; + } ; + } ; + +} IMAGE_TLS_DIRECTORY64; + +typedef IMAGE_TLS_DIRECTORY64 * PIMAGE_TLS_DIRECTORY64; + +typedef struct _IMAGE_TLS_DIRECTORY32 { + DWORD StartAddressOfRawData; + DWORD EndAddressOfRawData; + DWORD AddressOfIndex; + DWORD AddressOfCallBacks; + DWORD SizeOfZeroFill; + union { + DWORD Characteristics; + struct { + DWORD Reserved0 : 20; + DWORD Alignment : 4; + DWORD Reserved1 : 8; + } ; + } ; + +} IMAGE_TLS_DIRECTORY32; +typedef IMAGE_TLS_DIRECTORY32 * PIMAGE_TLS_DIRECTORY32; +# 16919 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA; +typedef PIMAGE_THUNK_DATA32 PIMAGE_THUNK_DATA; + +typedef IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY; +typedef PIMAGE_TLS_DIRECTORY32 PIMAGE_TLS_DIRECTORY; + + +typedef struct _IMAGE_IMPORT_DESCRIPTOR { + union { + DWORD Characteristics; + DWORD OriginalFirstThunk; + } ; + DWORD TimeDateStamp; + + + + + DWORD ForwarderChain; + DWORD Name; + DWORD FirstThunk; +} IMAGE_IMPORT_DESCRIPTOR; +typedef IMAGE_IMPORT_DESCRIPTOR *PIMAGE_IMPORT_DESCRIPTOR; + + + + + +typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR { + DWORD TimeDateStamp; + WORD OffsetModuleName; + WORD NumberOfModuleForwarderRefs; + +} 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; + DWORD ReservedAttributes : 31; + } ; + } Attributes; + + DWORD DllNameRVA; + DWORD ModuleHandleRVA; + DWORD ImportAddressTableRVA; + DWORD ImportNameTableRVA; + DWORD BoundImportAddressTableRVA; + DWORD UnloadInformationTableRVA; + DWORD TimeDateStamp; + + +} IMAGE_DELAYLOAD_DESCRIPTOR, *PIMAGE_DELAYLOAD_DESCRIPTOR; + +typedef const IMAGE_DELAYLOAD_DESCRIPTOR *PCIMAGE_DELAYLOAD_DESCRIPTOR; +# 16999 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _IMAGE_RESOURCE_DIRECTORY { + DWORD Characteristics; + DWORD TimeDateStamp; + WORD MajorVersion; + WORD MinorVersion; + WORD NumberOfNamedEntries; + WORD NumberOfIdEntries; + +} IMAGE_RESOURCE_DIRECTORY, *PIMAGE_RESOURCE_DIRECTORY; +# 17026 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY { + union { + struct { + DWORD NameOffset:31; + DWORD NameIsString:1; + } ; + DWORD Name; + WORD Id; + } ; + union { + DWORD OffsetToData; + struct { + DWORD OffsetToDirectory:31; + DWORD DataIsDirectory:1; + } ; + } ; +} IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY; +# 17053 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; +# 17074 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _IMAGE_RESOURCE_DATA_ENTRY { + DWORD OffsetToData; + DWORD Size; + DWORD CodePage; + DWORD Reserved; +} IMAGE_RESOURCE_DATA_ENTRY, *PIMAGE_RESOURCE_DATA_ENTRY; + + + + + +typedef struct _IMAGE_LOAD_CONFIG_CODE_INTEGRITY { + WORD Flags; + WORD Catalog; + DWORD CatalogOffset; + DWORD Reserved; +} IMAGE_LOAD_CONFIG_CODE_INTEGRITY, *PIMAGE_LOAD_CONFIG_CODE_INTEGRITY; + + + + + +typedef struct _IMAGE_DYNAMIC_RELOCATION_TABLE { + DWORD Version; + DWORD Size; + +} IMAGE_DYNAMIC_RELOCATION_TABLE, *PIMAGE_DYNAMIC_RELOCATION_TABLE; + + + + + +typedef struct _IMAGE_DYNAMIC_RELOCATION { + PVOID Symbol; + DWORD BaseRelocSize; + +} IMAGE_DYNAMIC_RELOCATION, *PIMAGE_DYNAMIC_RELOCATION; + + + + + +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; + DWORD MaximumAllocationSize; + DWORD VirtualMemoryThreshold; + DWORD ProcessHeapFlags; + DWORD ProcessAffinityMask; + WORD CSDVersion; + WORD DependentLoadFlags; + DWORD EditList; + DWORD SecurityCookie; + DWORD SEHandlerTable; + DWORD SEHandlerCount; + DWORD GuardCFCheckFunctionPointer; + DWORD GuardCFDispatchFunctionPointer; + DWORD GuardCFFunctionTable; + DWORD GuardCFFunctionCount; + DWORD GuardFlags; + IMAGE_LOAD_CONFIG_CODE_INTEGRITY CodeIntegrity; + DWORD GuardAddressTakenIatEntryTable; + DWORD GuardAddressTakenIatEntryCount; + DWORD GuardLongJumpTargetTable; + DWORD GuardLongJumpTargetCount; + DWORD DynamicValueRelocTable; + DWORD HybridMetadataPointer; +} 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; + ULONGLONG MaximumAllocationSize; + ULONGLONG VirtualMemoryThreshold; + ULONGLONG ProcessAffinityMask; + DWORD ProcessHeapFlags; + WORD CSDVersion; + WORD DependentLoadFlags; + ULONGLONG EditList; + ULONGLONG SecurityCookie; + ULONGLONG SEHandlerTable; + ULONGLONG SEHandlerCount; + ULONGLONG GuardCFCheckFunctionPointer; + ULONGLONG GuardCFDispatchFunctionPointer; + ULONGLONG GuardCFFunctionTable; + ULONGLONG GuardCFFunctionCount; + DWORD GuardFlags; + IMAGE_LOAD_CONFIG_CODE_INTEGRITY CodeIntegrity; + ULONGLONG GuardAddressTakenIatEntryTable; + ULONGLONG GuardAddressTakenIatEntryCount; + ULONGLONG GuardLongJumpTargetTable; + ULONGLONG GuardLongJumpTargetCount; + ULONGLONG DynamicValueRelocTable; + ULONGLONG HybridMetadataPointer; +} IMAGE_LOAD_CONFIG_DIRECTORY64, *PIMAGE_LOAD_CONFIG_DIRECTORY64; + + + + + + +typedef IMAGE_LOAD_CONFIG_DIRECTORY32 IMAGE_LOAD_CONFIG_DIRECTORY; +typedef PIMAGE_LOAD_CONFIG_DIRECTORY32 PIMAGE_LOAD_CONFIG_DIRECTORY; +# 17223 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; + } ; + } ; +} 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; + } ; + } ; +} 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; + } ; +} _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; +# 17317 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY; +typedef _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY; + + + + + + + +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; +# 17355 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; + + + + + + +typedef struct _FPO_DATA { + DWORD ulOffStart; + DWORD cbProcSize; + DWORD cdwLocals; + WORD cdwParams; + WORD cbProlog : 8; + WORD cbRegs : 3; + WORD fHasSEH : 1; + WORD fUseBP : 1; + WORD reserved : 1; + WORD cbFrame : 2; +} FPO_DATA, *PFPO_DATA; + + + + + +typedef struct _IMAGE_DEBUG_MISC { + DWORD DataType; + DWORD Length; + + BOOLEAN Unicode; + BYTE Reserved[ 3 ]; + BYTE Data[ 1 ]; +} IMAGE_DEBUG_MISC, *PIMAGE_DEBUG_MISC; +# 17404 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _IMAGE_FUNCTION_ENTRY { + DWORD StartingAddress; + DWORD EndingAddress; + DWORD EndOfPrologue; +} IMAGE_FUNCTION_ENTRY, *PIMAGE_FUNCTION_ENTRY; + +typedef struct _IMAGE_FUNCTION_ENTRY64 { + ULONGLONG StartingAddress; + ULONGLONG EndingAddress; + union { + ULONGLONG EndOfPrologue; + ULONGLONG UnwindInfoAddress; + } ; +} IMAGE_FUNCTION_ENTRY64, *PIMAGE_FUNCTION_ENTRY64; +# 17439 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _IMAGE_SEPARATE_DEBUG_HEADER { + WORD Signature; + WORD Flags; + WORD Machine; + WORD Characteristics; + DWORD TimeDateStamp; + DWORD CheckSum; + DWORD ImageBase; + DWORD SizeOfImage; + DWORD NumberOfSections; + DWORD ExportedNamesSize; + DWORD DebugDirectorySize; + DWORD SectionAlignment; + DWORD Reserved[2]; +} IMAGE_SEPARATE_DEBUG_HEADER, *PIMAGE_SEPARATE_DEBUG_HEADER; + + + +typedef struct _NON_PAGED_DEBUG_INFO { + WORD Signature; + WORD Flags; + DWORD Size; + WORD Machine; + WORD Characteristics; + DWORD TimeDateStamp; + DWORD CheckSum; + DWORD SizeOfImage; + ULONGLONG ImageBase; + + +} NON_PAGED_DEBUG_INFO, *PNON_PAGED_DEBUG_INFO; +# 17493 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _ImageArchitectureHeader { + unsigned int AmaskValue: 1; + + int :7; + unsigned int AmaskShift: 8; + int :16; + DWORD FirstEntryRVA; +} IMAGE_ARCHITECTURE_HEADER, *PIMAGE_ARCHITECTURE_HEADER; + +typedef struct _ImageArchitectureEntry { + DWORD FixupInstRVA; + DWORD NewInst; +} IMAGE_ARCHITECTURE_ENTRY, *PIMAGE_ARCHITECTURE_ENTRY; + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 17507 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 +# 17516 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct IMPORT_OBJECT_HEADER { + WORD Sig1; + WORD Sig2; + WORD Version; + WORD Machine; + DWORD TimeDateStamp; + DWORD SizeOfData; + + union { + WORD Ordinal; + WORD Hint; + } ; + + WORD Type : 2; + WORD NameType : 3; + WORD Reserved : 11; +} 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_OBJECT_NAME = 1, + IMPORT_OBJECT_NAME_NO_PREFIX = 2, + IMPORT_OBJECT_NAME_UNDECORATE = 3, + +} IMPORT_OBJECT_NAME_TYPE; + + + + + +typedef enum ReplacesCorHdrNumericDefines +{ + + 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, + + + 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, + + + NATIVE_TYPE_MAX_CB =1, + COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE=0xFF, + + + IMAGE_COR_MIH_METHODRVA =0x01, + IMAGE_COR_MIH_EHRVA =0x02, + IMAGE_COR_MIH_BASICBLOCK =0x08, + + + COR_VTABLE_32BIT =0x01, + COR_VTABLE_64BIT =0x02, + COR_VTABLE_FROM_UNMANAGED =0x04, + COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN =0x08, + COR_VTABLE_CALL_MOST_DERIVED =0x10, + + + IMAGE_COR_EATJ_THUNK_SIZE =32, + + + + MAX_CLASS_NAME =1024, + MAX_PACKAGE_NAME =1024, +} ReplacesCorHdrNumericDefines; + + +typedef struct IMAGE_COR20_HEADER +{ + + DWORD cb; + WORD MajorRuntimeVersion; + WORD MinorRuntimeVersion; + + + IMAGE_DATA_DIRECTORY MetaData; + DWORD Flags; + + + + union { + DWORD EntryPointToken; + DWORD EntryPointRVA; + } ; + + + IMAGE_DATA_DIRECTORY Resources; + IMAGE_DATA_DIRECTORY StrongNameSignature; + + + IMAGE_DATA_DIRECTORY CodeManagerTable; + IMAGE_DATA_DIRECTORY VTableFixups; + IMAGE_DATA_DIRECTORY ExportAddressTableJumps; + + + IMAGE_DATA_DIRECTORY ManagedNativeHeader; + +} IMAGE_COR20_HEADER, *PIMAGE_COR20_HEADER; + + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\apiset.h" 1 +# 17636 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 +# 17651 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__declspec(dllimport) + +WORD +__stdcall +RtlCaptureStackBackTrace( + DWORD FramesToSkip, + DWORD FramesToCapture, + PVOID * BackTrace, + PDWORD BackTraceHash + ); +# 17675 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__declspec(dllimport) +void +__stdcall +RtlCaptureContext( + PCONTEXT ContextRecord + ); +# 17694 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__declspec(dllimport) +void +__stdcall +RtlUnwind( + PVOID TargetFrame, + PVOID TargetIp, + PEXCEPTION_RECORD ExceptionRecord, + PVOID ReturnValue + ); +# 18316 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__declspec(dllimport) +PVOID +__stdcall +RtlPcToFileHeader( + PVOID PcValue, + PVOID * BaseOfImage + ); +# 18341 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__declspec(dllimport) +SIZE_T +__stdcall +RtlCompareMemory( + const void * Source1, + const void * Source2, + SIZE_T Length + ); +# 18395 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _SINGLE_LIST_ENTRY SLIST_ENTRY, *PSLIST_ENTRY; +# 18432 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef union _SLIST_HEADER { + ULONGLONG Alignment; + struct { + SLIST_ENTRY Next; + WORD Depth; + WORD CpuId; + } ; +} SLIST_HEADER, *PSLIST_HEADER; +# 18460 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__declspec(dllimport) +void +__stdcall +RtlInitializeSListHead ( + PSLIST_HEADER ListHead + ); + + +__declspec(dllimport) +PSLIST_ENTRY +__stdcall +RtlFirstEntrySList ( + const SLIST_HEADER *ListHead + ); + +__declspec(dllimport) +PSLIST_ENTRY +__stdcall +RtlInterlockedPopEntrySList ( + PSLIST_HEADER ListHead + ); + +__declspec(dllimport) +PSLIST_ENTRY +__stdcall +RtlInterlockedPushEntrySList ( + PSLIST_HEADER ListHead, + PSLIST_ENTRY ListEntry + ); + +__declspec(dllimport) +PSLIST_ENTRY +__stdcall +RtlInterlockedPushListSListEx ( + PSLIST_HEADER ListHead, + PSLIST_ENTRY List, + PSLIST_ENTRY ListEnd, + DWORD Count + ); + +__declspec(dllimport) +PSLIST_ENTRY +__stdcall +RtlInterlockedFlushSList ( + PSLIST_HEADER ListHead + ); + +__declspec(dllimport) +WORD +__stdcall +RtlQueryDepthSList ( + PSLIST_HEADER ListHead + ); +# 18542 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef union _RTL_RUN_ONCE { + PVOID Ptr; +} RTL_RUN_ONCE, *PRTL_RUN_ONCE; + + + +typedef struct _RTL_BARRIER { + DWORD Reserved1; + DWORD Reserved2; + ULONG_PTR Reserved3[2]; + DWORD Reserved4; + DWORD Reserved5; +} RTL_BARRIER, *PRTL_BARRIER; +# 18610 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__declspec(noreturn) +void +__fastfail( + unsigned int Code + ); + +#pragma intrinsic(__fastfail) +# 18637 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__forceinline +DWORD +HEAP_MAKE_TAG_FLAGS ( + DWORD TagBase, + DWORD Tag + ) + +{ + return ((DWORD)((TagBase) + ((Tag) << 18))); +} +# 18716 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__forceinline +PVOID +RtlSecureZeroMemory( + PVOID ptr, + SIZE_T cnt + ) +{ + volatile char *vptr = (volatile char *)ptr; + + + + + + + + while (cnt) { + + + + + + + + *vptr = 0; + + + + vptr++; + cnt--; + } + + + + return ptr; +} +# 18775 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _MESSAGE_RESOURCE_ENTRY { + WORD Length; + WORD Flags; + BYTE Text[ 1 ]; +} MESSAGE_RESOURCE_ENTRY, *PMESSAGE_RESOURCE_ENTRY; + + + +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 ]; +} OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA; + +typedef struct _OSVERSIONINFOW { + DWORD dwOSVersionInfoSize; + DWORD dwMajorVersion; + DWORD dwMinorVersion; + DWORD dwBuildNumber; + DWORD dwPlatformId; + WCHAR szCSDVersion[ 128 ]; +} OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW, RTL_OSVERSIONINFOW, *PRTL_OSVERSIONINFOW; + +typedef OSVERSIONINFOW OSVERSIONINFO; +typedef POSVERSIONINFOW POSVERSIONINFO; +typedef LPOSVERSIONINFOW LPOSVERSIONINFO; + + + + + + +typedef struct _OSVERSIONINFOEXA { + DWORD dwOSVersionInfoSize; + DWORD dwMajorVersion; + DWORD dwMinorVersion; + DWORD dwBuildNumber; + DWORD dwPlatformId; + CHAR szCSDVersion[ 128 ]; + WORD wServicePackMajor; + WORD wServicePackMinor; + WORD wSuiteMask; + BYTE wProductType; + BYTE wReserved; +} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA; +typedef struct _OSVERSIONINFOEXW { + DWORD dwOSVersionInfoSize; + DWORD dwMajorVersion; + DWORD dwMinorVersion; + DWORD dwBuildNumber; + DWORD dwPlatformId; + WCHAR szCSDVersion[ 128 ]; + WORD wServicePackMajor; + WORD wServicePackMinor; + WORD wSuiteMask; + BYTE wProductType; + BYTE wReserved; +} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW; + +typedef OSVERSIONINFOEXW OSVERSIONINFOEX; +typedef POSVERSIONINFOEXW POSVERSIONINFOEX; +typedef LPOSVERSIONINFOEXW LPOSVERSIONINFOEX; +# 18922 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__declspec(dllimport) +ULONGLONG +__stdcall +VerSetConditionMask( + ULONGLONG ConditionMask, + DWORD TypeMask, + BYTE Condition + ); +# 18947 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__declspec(dllimport) +BOOLEAN +__stdcall +RtlGetProductInfo( + DWORD OSMajorVersion, + DWORD OSMinorVersion, + DWORD SpMajorVersion, + DWORD SpMinorVersion, + PDWORD ReturnedProductType + ); +# 18967 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef enum _RTL_UMS_THREAD_INFO_CLASS { + UmsThreadInvalidInfoClass = 0, + UmsThreadUserContext, + UmsThreadPriority, + UmsThreadAffinity, + 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 + +void +__stdcall +RTL_UMS_SCHEDULER_ENTRY_POINT( + RTL_UMS_SCHEDULER_REASON Reason, + ULONG_PTR ActivationPayload, + PVOID SchedulerParam + ); + +typedef RTL_UMS_SCHEDULER_ENTRY_POINT *PRTL_UMS_SCHEDULER_ENTRY_POINT; +# 19056 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__declspec(dllimport) +DWORD +__stdcall +RtlCrc32( + const void *Buffer, + size_t Size, + DWORD InitialCrc + ); + +__declspec(dllimport) +ULONGLONG +__stdcall +RtlCrc64( + const void *Buffer, + size_t Size, + ULONGLONG InitialCrc + ); +# 19094 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef enum _OS_DEPLOYEMENT_STATE_VALUES { + OS_DEPLOYMENT_STANDARD = 1, + OS_DEPLOYMENT_COMPACT +} OS_DEPLOYEMENT_STATE_VALUES; + +__declspec(dllimport) +OS_DEPLOYEMENT_STATE_VALUES +__stdcall +RtlOsDeploymentState( + DWORD Flags + ); + + + + + +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; +# 19138 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +#pragma pack(push, 8) + +typedef struct _RTL_CRITICAL_SECTION { + PRTL_CRITICAL_SECTION_DEBUG DebugInfo; + + + + + + + LONG LockCount; + LONG RecursionCount; + HANDLE OwningThread; + HANDLE LockSemaphore; + ULONG_PTR SpinCount; +} RTL_CRITICAL_SECTION, *PRTL_CRITICAL_SECTION; + +#pragma pack(pop) + +typedef struct _RTL_SRWLOCK { + PVOID Ptr; +} RTL_SRWLOCK, *PRTL_SRWLOCK; + +typedef struct _RTL_CONDITION_VARIABLE { + PVOID Ptr; +} RTL_CONDITION_VARIABLE, *PRTL_CONDITION_VARIABLE; + + +typedef +void +(__stdcall *PAPCFUNC)( + ULONG_PTR Parameter + ); +typedef LONG (__stdcall *PVECTORED_EXCEPTION_HANDLER)( + struct _EXCEPTION_POINTERS *ExceptionInfo + ); + +typedef enum _HEAP_INFORMATION_CLASS { + + HeapCompatibilityInformation = 0, + HeapEnableTerminationOnCorruption = 1 + + + + + , + + HeapOptimizeResources = 3 + + + + +} HEAP_INFORMATION_CLASS; + + + + + + +typedef struct _HEAP_OPTIMIZE_RESOURCES_INFORMATION { + DWORD Version; + DWORD Flags; +} HEAP_OPTIMIZE_RESOURCES_INFORMATION, *PHEAP_OPTIMIZE_RESOURCES_INFORMATION; +# 19216 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef void (__stdcall * WAITORTIMERCALLBACKFUNC) (PVOID, BOOLEAN ); +typedef void (__stdcall * WORKERCALLBACKFUNC) (PVOID ); +typedef void (__stdcall * APC_CALLBACK_FUNCTION) (DWORD , PVOID, PVOID); +typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK; +typedef +void +(__stdcall *PFLS_CALLBACK_FUNCTION) ( + PVOID lpFlsData + ); + +typedef +BOOLEAN +(__stdcall *PSECURE_MEMORY_CACHE_CALLBACK) ( + PVOID Addr, + SIZE_T Range + ); + + + + +typedef enum _ACTIVATION_CONTEXT_INFO_CLASS { + ActivationContextBasicInformation = 1, + ActivationContextDetailedInformation = 2, + AssemblyDetailedInformationInActivationContext = 3, + FileInformationInAssemblyOfAssemblyInActivationContext = 4, + RunlevelInformationInActivationContext = 5, + CompatibilityInformationInActivationContext = 6, + ActivationContextManifestResourceName = 7, + MaxActivationContextInfoClass, + + + + + AssemblyDetailedInformationInActivationContxt = 3, + FileInformationInAssemblyOfAssemblyInActivationContxt = 4 +} 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; + + + + + + + +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; +# 19288 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION { + DWORD ulFlags; + DWORD ulEncodedAssemblyIdentityLength; + DWORD ulManifestPathType; + DWORD ulManifestPathLength; + LARGE_INTEGER liManifestLastWriteTime; + DWORD ulPolicyPathType; + DWORD ulPolicyPathLength; + LARGE_INTEGER liPolicyLastWriteTime; + DWORD ulMetadataSatelliteRosterIndex; + + DWORD ulManifestVersionMajor; + DWORD ulManifestVersionMinor; + DWORD ulPolicyVersionMajor; + DWORD ulPolicyVersionMinor; + DWORD ulAssemblyDirectoryNameLength; + + PCWSTR lpAssemblyEncodedAssemblyIdentity; + PCWSTR lpAssemblyManifestPath; + PCWSTR lpAssemblyPolicyPath; + PCWSTR lpAssemblyDirectoryName; + + DWORD ulFileCount; +} 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; + +typedef struct _COMPATIBILITY_CONTEXT_ELEMENT { + GUID Id; + ACTCTX_COMPATIBILITY_ELEMENT_TYPE Type; +} COMPATIBILITY_CONTEXT_ELEMENT, *PCOMPATIBILITY_CONTEXT_ELEMENT; + +typedef const struct _COMPATIBILITY_CONTEXT_ELEMENT *PCCOMPATIBILITY_CONTEXT_ELEMENT; + + + + +#pragma warning(push) +#pragma warning(disable: 4200) + + +typedef struct _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION { + DWORD ElementCount; + COMPATIBILITY_CONTEXT_ELEMENT Elements[]; +} ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION, * PACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION; + + +#pragma warning(pop) + + +typedef const struct _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION * PCACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION; + + + +typedef struct _SUPPORTED_OS_INFO { + WORD MajorVersion; + WORD MinorVersion; +} SUPPORTED_OS_INFO, *PSUPPORTED_OS_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; + + + + +typedef struct _HARDWARE_COUNTER_DATA { + HARDWARE_COUNTER_TYPE Type; + DWORD Reserved; + DWORD64 Value; +} HARDWARE_COUNTER_DATA, *PHARDWARE_COUNTER_DATA; + + + +typedef struct _PERFORMANCE_DATA { + WORD Size; + BYTE Version; + BYTE HwCountersCount; + DWORD ContextSwitchCount; + DWORD64 WaitReasonBitMap; + DWORD64 CycleTime; + DWORD RetryCount; + DWORD Reserved; + HARDWARE_COUNTER_DATA HwCounters[16]; +} PERFORMANCE_DATA, *PPERFORMANCE_DATA; +# 19476 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +void +__stdcall +RtlGetDeviceFamilyInfoEnum( + ULONGLONG *pullUAPInfo, + DWORD *pulDeviceFamily, + DWORD *pulDeviceForm +); + +DWORD +__stdcall +RtlConvertDeviceFamilyInfoToString( + PDWORD pulDeviceFamilyBufferSize, + PDWORD pulDeviceFormBufferSize, + PWSTR DeviceFamily, + PWSTR DeviceForm + +); + +DWORD +__stdcall +RtlSwitchedVVI( + PRTL_OSVERSIONINFOEXW VersionInfo, + DWORD TypeMask, + ULONGLONG ConditionMask + ); +# 19551 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _EVENTLOGRECORD { + DWORD Length; + DWORD Reserved; + DWORD RecordNumber; + DWORD TimeGenerated; + DWORD TimeWritten; + DWORD EventID; + WORD EventType; + WORD NumStrings; + WORD EventCategory; + WORD ReservedFlags; + DWORD ClosingRecordNumber; + DWORD StringOffset; + DWORD UserSidLength; + DWORD UserSidOffset; + DWORD DataLength; + DWORD DataOffset; +# 19579 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +} EVENTLOGRECORD, *PEVENTLOGRECORD; + + + + + + +#pragma warning(push) + +#pragma warning(disable: 4200) + +struct _EVENTSFORLOGFILE; +typedef struct _EVENTSFORLOGFILE EVENTSFORLOGFILE, *PEVENTSFORLOGFILE; + +struct _PACKEDEVENTINFO; +typedef struct _PACKEDEVENTINFO PACKEDEVENTINFO, *PPACKEDEVENTINFO; + + + +struct _EVENTSFORLOGFILE +{ + DWORD ulSize; + WCHAR szLogicalLogFile[256]; + DWORD ulNumRecords; + EVENTLOGRECORD pEventLogRecords[]; +}; + +struct _PACKEDEVENTINFO +{ + DWORD ulSize; + DWORD ulNumEventsForLogFile; + DWORD ulOffsets[]; +}; + + + + +#pragma warning(pop) +# 19847 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef enum _CM_SERVICE_NODE_TYPE { + DriverType = 0x00000001, + FileSystemType = 0x00000002, + Win32ServiceOwnProcess = 0x00000010, + Win32ServiceShareProcess = 0x00000020, + AdapterType = 0x00000004, + RecognizerType = 0x00000008 +} SERVICE_NODE_TYPE; + +typedef enum _CM_SERVICE_LOAD_TYPE { + BootLoad = 0x00000000, + SystemLoad = 0x00000001, + AutoLoad = 0x00000002, + DemandLoad = 0x00000003, + DisableLoad = 0x00000004 +} SERVICE_LOAD_TYPE; + +typedef enum _CM_ERROR_CONTROL_TYPE { + IgnoreError = 0x00000000, + NormalError = 0x00000001, + SevereError = 0x00000002, + CriticalError = 0x00000003 +} SERVICE_ERROR_TYPE; +# 19935 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _TAPE_ERASE { + DWORD Type; + BOOLEAN Immediate; +} TAPE_ERASE, *PTAPE_ERASE; +# 19951 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _TAPE_PREPARE { + DWORD Operation; + BOOLEAN Immediate; +} TAPE_PREPARE, *PTAPE_PREPARE; +# 19965 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _TAPE_WRITE_MARKS { + DWORD Type; + DWORD Count; + BOOLEAN Immediate; +} TAPE_WRITE_MARKS, *PTAPE_WRITE_MARKS; +# 19979 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _TAPE_GET_POSITION { + DWORD Type; + DWORD Partition; + LARGE_INTEGER Offset; +} TAPE_GET_POSITION, *PTAPE_GET_POSITION; +# 20000 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _TAPE_SET_POSITION { + DWORD Method; + DWORD Partition; + LARGE_INTEGER Offset; + BOOLEAN Immediate; +} TAPE_SET_POSITION, *PTAPE_SET_POSITION; +# 20093 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; + + + + + +typedef struct _TAPE_SET_DRIVE_PARAMETERS { + BOOLEAN ECC; + BOOLEAN Compression; + BOOLEAN DataPadding; + BOOLEAN ReportSetmarks; + DWORD EOTWarningZoneSize; +} TAPE_SET_DRIVE_PARAMETERS, *PTAPE_SET_DRIVE_PARAMETERS; + + + + + +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; + + + + + +typedef struct _TAPE_SET_MEDIA_PARAMETERS { + DWORD BlockSize; +} TAPE_SET_MEDIA_PARAMETERS, *PTAPE_SET_MEDIA_PARAMETERS; +# 20147 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _TAPE_CREATE_PARTITION { + DWORD Method; + DWORD Count; + DWORD Size; +} TAPE_CREATE_PARTITION, *PTAPE_CREATE_PARTITION; +# 20163 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _TAPE_WMI_OPERATIONS { + DWORD Method; + DWORD DataBufferSize; + PVOID DataBuffer; +} TAPE_WMI_OPERATIONS, *PTAPE_WMI_OPERATIONS; + + + + +typedef enum _TAPE_DRIVE_PROBLEM_TYPE { + TapeDriveProblemNone, TapeDriveReadWriteWarning, + TapeDriveReadWriteError, TapeDriveReadWarning, + TapeDriveWriteWarning, TapeDriveReadError, + TapeDriveWriteError, TapeDriveHardwareError, + TapeDriveUnsupportedMedia, TapeDriveScsiConnectionError, + TapeDriveTimetoClean, TapeDriveCleanDriveNow, + TapeDriveMediaLifeExpired, TapeDriveSnappedTape +} TAPE_DRIVE_PROBLEM_TYPE; + + + + + + + +extern "C" { + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\ktmtypes.h" 1 +# 23 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\ktmtypes.h" +extern "C" { + + + +#pragma warning(push) +#pragma warning(disable: 4820) + + +typedef GUID UOW, *PUOW; +typedef GUID CRM_PROTOCOL_ID, *PCRM_PROTOCOL_ID; +# 82 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\ktmtypes.h" +typedef ULONG NOTIFICATION_MASK; +# 137 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\ktmtypes.h" +typedef struct _TRANSACTION_NOTIFICATION { + PVOID TransactionKey; + ULONG TransactionNotification; + LARGE_INTEGER TmVirtualClock; + ULONG ArgumentLength; +} TRANSACTION_NOTIFICATION, *PTRANSACTION_NOTIFICATION; + +typedef struct _TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT { + GUID EnlistmentId; + UOW UOW; +} TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT, *PTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT; + + + +typedef struct _TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT { + GUID TmIdentity; + ULONG Flags; +} TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT, *PTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT; + +typedef ULONG SAVEPOINT_ID, *PSAVEPOINT_ID; + +typedef struct _TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT { + SAVEPOINT_ID SavepointId; +} TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT, *PTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT; + +typedef struct _TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT { + ULONG PropagationCookie; + GUID UOW; + GUID TmIdentity; + ULONG BufferLength; + +} TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT, *PTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT; + +typedef struct _TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT { + ULONG MarshalCookie; + GUID UOW; +} TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT, *PTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT; + +typedef TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT TRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT, *PTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT; + + + + + + + +typedef struct _KCRM_MARSHAL_HEADER { + ULONG VersionMajor; + ULONG VersionMinor; + ULONG NumProtocols; + ULONG Unused; +} KCRM_MARSHAL_HEADER, *PKCRM_MARSHAL_HEADER, * PRKCRM_MARSHAL_HEADER; + +typedef struct _KCRM_TRANSACTION_BLOB { + UOW UOW; + GUID TmIdentity; + ULONG IsolationLevel; + ULONG IsolationFlags; + ULONG Timeout; + WCHAR Description[64]; +} KCRM_TRANSACTION_BLOB, *PKCRM_TRANSACTION_BLOB, * PRKCRM_TRANSACTION_BLOB; + +typedef struct _KCRM_PROTOCOL_BLOB { + CRM_PROTOCOL_ID ProtocolId; + ULONG StaticInfoLength; + ULONG TransactionIdInfoLength; + ULONG Unused1; + ULONG Unused2; +} KCRM_PROTOCOL_BLOB, *PKCRM_PROTOCOL_BLOB, * PRKCRM_PROTOCOL_BLOB; + + +#pragma warning(pop) + + + +} +# 20192 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" 2 + + + +#pragma warning(push) +#pragma warning(disable: 4820) +# 20369 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.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; + WCHAR LogPath[1]; + +} TRANSACTIONMANAGER_LOGPATH_INFORMATION, *PTRANSACTIONMANAGER_LOGPATH_INFORMATION; + +typedef struct _TRANSACTIONMANAGER_RECOVERY_INFORMATION { + ULONGLONG LastRecoveredLsn; +} TRANSACTIONMANAGER_RECOVERY_INFORMATION, *PTRANSACTIONMANAGER_RECOVERY_INFORMATION; + + + +typedef struct _TRANSACTIONMANAGER_OLDEST_INFORMATION { + GUID OldestTransactionGuid; +} TRANSACTIONMANAGER_OLDEST_INFORMATION, *PTRANSACTIONMANAGER_OLDEST_INFORMATION; + + + +typedef struct _TRANSACTION_PROPERTIES_INFORMATION { + DWORD IsolationLevel; + DWORD IsolationFlags; + LARGE_INTEGER Timeout; + DWORD Outcome; + DWORD DescriptionLength; + WCHAR Description[1]; + +} TRANSACTION_PROPERTIES_INFORMATION, *PTRANSACTION_PROPERTIES_INFORMATION; + + + +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]; +} 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]; +} RESOURCEMANAGER_BASIC_INFORMATION, *PRESOURCEMANAGER_BASIC_INFORMATION; + +typedef struct _RESOURCEMANAGER_COMPLETION_INFORMATION { + HANDLE IoCompletionPortHandle; + ULONG_PTR CompletionKey; +} RESOURCEMANAGER_COMPLETION_INFORMATION, *PRESOURCEMANAGER_COMPLETION_INFORMATION; + + + + +typedef enum _TRANSACTION_INFORMATION_CLASS { + TransactionBasicInformation, + TransactionPropertiesInformation, + TransactionEnlistmentInformation, + TransactionSuperiorEnlistmentInformation + + , + + + TransactionBindInformation, + TransactionDTCPrivateInformation + , + +} TRANSACTION_INFORMATION_CLASS; + + +typedef enum _TRANSACTIONMANAGER_INFORMATION_CLASS { + TransactionManagerBasicInformation, + TransactionManagerLogInformation, + TransactionManagerLogPathInformation, + TransactionManagerRecoveryInformation = 4 + + , + + + + TransactionManagerOnlineProbeInformation = 3, + TransactionManagerOldestTransactionInformation = 5 + + + +} TRANSACTIONMANAGER_INFORMATION_CLASS; + + + +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; + + + +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]; +} TRANSACTION_LIST_INFORMATION, *PTRANSACTION_LIST_INFORMATION; + + + + + + +typedef enum _KTMOBJECT_TYPE { + + KTMOBJECT_TRANSACTION, + KTMOBJECT_TRANSACTION_MANAGER, + KTMOBJECT_RESOURCE_MANAGER, + KTMOBJECT_ENLISTMENT, + KTMOBJECT_INVALID + +} KTMOBJECT_TYPE, *PKTMOBJECT_TYPE; +# 20554 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +typedef struct _KTMOBJECT_CURSOR { + + + + + + GUID LastQuery; + + + + + + DWORD ObjectIdCount; + + + + + + GUID ObjectIds[1]; + +} KTMOBJECT_CURSOR, *PKTMOBJECT_CURSOR; + + + + +#pragma warning(pop) + + + +} + + + +typedef DWORD TP_VERSION, *PTP_VERSION; + +typedef struct _TP_CALLBACK_INSTANCE TP_CALLBACK_INSTANCE, *PTP_CALLBACK_INSTANCE; + +typedef void (__stdcall *PTP_SIMPLE_CALLBACK)( + PTP_CALLBACK_INSTANCE Instance, + 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 (__stdcall *PTP_CLEANUP_GROUP_CANCEL_CALLBACK)( + PVOID ObjectContext, + PVOID CleanupContext + ); +# 20625 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +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; +# 20673 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__forceinline +void +TpInitializeCallbackEnviron( + PTP_CALLBACK_ENVIRON CallbackEnviron + ) +{ + + + + CallbackEnviron->Version = 3; + + + + + + + + CallbackEnviron->Pool = 0; + CallbackEnviron->CleanupGroup = 0; + CallbackEnviron->CleanupGroupCancelCallback = 0; + CallbackEnviron->RaceDll = 0; + CallbackEnviron->ActivationContext = 0; + CallbackEnviron->FinalizationCallback = 0; + CallbackEnviron->u.Flags = 0; + + + + CallbackEnviron->CallbackPriority = TP_CALLBACK_PRIORITY_NORMAL; + CallbackEnviron->Size = sizeof(TP_CALLBACK_ENVIRON); + + + +} + +__forceinline +void +TpSetCallbackThreadpool( + PTP_CALLBACK_ENVIRON CallbackEnviron, + PTP_POOL Pool + ) +{ + CallbackEnviron->Pool = Pool; +} + +__forceinline +void +TpSetCallbackCleanupGroup( + PTP_CALLBACK_ENVIRON CallbackEnviron, + PTP_CLEANUP_GROUP CleanupGroup, + PTP_CLEANUP_GROUP_CANCEL_CALLBACK CleanupGroupCancelCallback + ) +{ + CallbackEnviron->CleanupGroup = CleanupGroup; + CallbackEnviron->CleanupGroupCancelCallback = CleanupGroupCancelCallback; +} + +__forceinline +void +TpSetCallbackActivationContext( + PTP_CALLBACK_ENVIRON CallbackEnviron, + struct _ACTIVATION_CONTEXT *ActivationContext + ) +{ + CallbackEnviron->ActivationContext = ActivationContext; +} + +__forceinline +void +TpSetCallbackNoActivationContext( + PTP_CALLBACK_ENVIRON CallbackEnviron + ) +{ + CallbackEnviron->ActivationContext = (struct _ACTIVATION_CONTEXT *)(LONG_PTR) -1; +} + +__forceinline +void +TpSetCallbackLongFunction( + PTP_CALLBACK_ENVIRON CallbackEnviron + ) +{ + CallbackEnviron->u.s.LongFunction = 1; +} + +__forceinline +void +TpSetCallbackRaceWithDll( + PTP_CALLBACK_ENVIRON CallbackEnviron, + PVOID DllHandle + ) +{ + CallbackEnviron->RaceDll = DllHandle; +} + +__forceinline +void +TpSetCallbackFinalizationCallback( + PTP_CALLBACK_ENVIRON CallbackEnviron, + PTP_SIMPLE_CALLBACK FinalizationCallback + ) +{ + CallbackEnviron->FinalizationCallback = FinalizationCallback; +} + + + +__forceinline +void +TpSetCallbackPriority( + PTP_CALLBACK_ENVIRON CallbackEnviron, + TP_CALLBACK_PRIORITY Priority + ) +{ + CallbackEnviron->CallbackPriority = Priority; +} + + + +__forceinline +void +TpSetCallbackPersistent( + PTP_CALLBACK_ENVIRON CallbackEnviron + ) +{ + CallbackEnviron->u.s.Persistent = 1; +} + + +__forceinline +void +TpDestroyCallbackEnviron( + PTP_CALLBACK_ENVIRON CallbackEnviron + ) +{ + + + + + + + (CallbackEnviron); +} + + + + +typedef struct _TP_WORK TP_WORK, *PTP_WORK; + +typedef void (__stdcall *PTP_WORK_CALLBACK)( + PTP_CALLBACK_INSTANCE Instance, + PVOID Context, + PTP_WORK Work + ); + +typedef struct _TP_TIMER TP_TIMER, *PTP_TIMER; + +typedef void (__stdcall *PTP_TIMER_CALLBACK)( + PTP_CALLBACK_INSTANCE Instance, + PVOID Context, + PTP_TIMER Timer + ); + +typedef DWORD TP_WAIT_RESULT; + +typedef struct _TP_WAIT TP_WAIT, *PTP_WAIT; + +typedef void (__stdcall *PTP_WAIT_CALLBACK)( + PTP_CALLBACK_INSTANCE Instance, + PVOID Context, + PTP_WAIT Wait, + TP_WAIT_RESULT WaitResult + ); + +typedef struct _TP_IO TP_IO, *PTP_IO; +# 20957 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +__inline struct _TEB * NtCurrentTeb( void ) { return (struct _TEB *) (ULONG_PTR) __readfsdword (0x18); } +# 20978 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnt.h" +} + + + +#pragma warning(pop) +# 182 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\minwindef.h" 2 + + + + +typedef UINT_PTR WPARAM; +typedef LONG_PTR LPARAM; +typedef LONG_PTR LRESULT; +# 209 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\minwindef.h" +typedef HANDLE *SPHANDLE; +typedef HANDLE *LPHANDLE; +typedef HANDLE HGLOBAL; +typedef HANDLE HLOCAL; +typedef HANDLE GLOBALHANDLE; +typedef HANDLE LOCALHANDLE; + + + +#pragma warning(push) +#pragma warning(disable: 4255) + + + + + + + +typedef int ( __stdcall *FARPROC)(); +typedef int ( __stdcall *NEARPROC)(); +typedef int (__stdcall *PROC)(); + + + + + + + +#pragma warning(pop) + + + + + + + +typedef WORD ATOM; + +struct HKEY__{int unused;}; typedef struct HKEY__ *HKEY; +typedef HKEY *PHKEY; +struct HMETAFILE__{int unused;}; typedef struct HMETAFILE__ *HMETAFILE; +struct HINSTANCE__{int unused;}; typedef struct HINSTANCE__ *HINSTANCE; +typedef HINSTANCE HMODULE; +struct HRGN__{int unused;}; typedef struct HRGN__ *HRGN; +struct HRSRC__{int unused;}; typedef struct HRSRC__ *HRSRC; +struct HSPRITE__{int unused;}; typedef struct HSPRITE__ *HSPRITE; +struct HLSURF__{int unused;}; typedef struct HLSURF__ *HLSURF; +struct HSTR__{int unused;}; typedef struct HSTR__ *HSTR; +struct HTASK__{int unused;}; typedef struct HTASK__ *HTASK; +struct HWINSTA__{int unused;}; typedef struct HWINSTA__ *HWINSTA; +struct HKL__{int unused;}; typedef struct HKL__ *HKL; + + +typedef int HFILE; +# 271 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\minwindef.h" +typedef struct _FILETIME { + DWORD dwLowDateTime; + DWORD dwHighDateTime; +} FILETIME, *PFILETIME, *LPFILETIME; + + + +} +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\windef.h" 2 +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\windef.h" +struct HWND__{int unused;}; typedef struct HWND__ *HWND; +struct HHOOK__{int unused;}; typedef struct HHOOK__ *HHOOK; +# 63 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\windef.h" +typedef void * HGDIOBJ; + + + + + + +struct HACCEL__{int unused;}; typedef struct HACCEL__ *HACCEL; + + +struct HBITMAP__{int unused;}; typedef struct HBITMAP__ *HBITMAP; +struct HBRUSH__{int unused;}; typedef struct HBRUSH__ *HBRUSH; + + +struct HCOLORSPACE__{int unused;}; typedef struct HCOLORSPACE__ *HCOLORSPACE; + + +struct HDC__{int unused;}; typedef struct HDC__ *HDC; + +struct HGLRC__{int unused;}; typedef struct HGLRC__ *HGLRC; +struct HDESK__{int unused;}; typedef struct HDESK__ *HDESK; +struct HENHMETAFILE__{int unused;}; typedef struct HENHMETAFILE__ *HENHMETAFILE; + +struct HFONT__{int unused;}; typedef struct HFONT__ *HFONT; + +struct HICON__{int unused;}; typedef struct HICON__ *HICON; + +struct HMENU__{int unused;}; typedef struct HMENU__ *HMENU; + + +struct HPALETTE__{int unused;}; typedef struct HPALETTE__ *HPALETTE; +struct HPEN__{int unused;}; typedef struct HPEN__ *HPEN; + + + +struct HWINEVENTHOOK__{int unused;}; typedef struct HWINEVENTHOOK__ *HWINEVENTHOOK; +# 110 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\windef.h" +struct HMONITOR__{int unused;}; typedef struct HMONITOR__ *HMONITOR; +# 120 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\windef.h" +struct HUMPD__{int unused;}; typedef struct HUMPD__ *HUMPD; +# 131 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\windef.h" +typedef HICON HCURSOR; + + + + +typedef DWORD COLORREF; + + + + + + + +typedef DWORD *LPCOLORREF; +# 154 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\windef.h" +typedef struct tagRECT +{ + LONG left; + LONG top; + LONG right; + LONG bottom; +} RECT, *PRECT, *NPRECT, *LPRECT; + +typedef const RECT * LPCRECT; + +typedef struct _RECTL +{ + LONG left; + LONG top; + LONG right; + LONG bottom; +} RECTL, *PRECTL, *LPRECTL; + +typedef const RECTL * LPCRECTL; + +typedef struct tagPOINT +{ + LONG x; + LONG y; +} POINT, *PPOINT, *NPPOINT, *LPPOINT; + +typedef struct _POINTL +{ + LONG x; + LONG y; +} POINTL, *PPOINTL; + +typedef struct tagSIZE +{ + LONG cx; + LONG cy; +} SIZE, *PSIZE, *LPSIZE; + +typedef SIZE SIZEL; +typedef SIZE *PSIZEL, *LPSIZEL; + +typedef struct tagPOINTS +{ + + SHORT x; + SHORT y; + + + + +} POINTS, *PPOINTS, *LPPOINTS; +# 241 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\windef.h" +} +# 250 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\windef.h" +struct DPI_AWARENESS_CONTEXT__{int unused;}; typedef struct DPI_AWARENESS_CONTEXT__ *DPI_AWARENESS_CONTEXT; + +typedef enum DPI_AWARENESS { + DPI_AWARENESS_INVALID = -1, + DPI_AWARENESS_UNAWARE = 0, + DPI_AWARENESS_SYSTEM_AWARE = 1, + DPI_AWARENESS_PER_MONITOR_AWARE = 2 +} DPI_AWARENESS; +# 168 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\Windows.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 1 +# 19 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +#pragma warning(push) +#pragma warning(disable: 4820) +#pragma warning(disable: 4668) + +#pragma warning(disable: 4001) +#pragma warning(disable: 4201) +#pragma warning(disable: 4214) + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\apisetcconv.h" 1 +# 32 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\minwinbase.h" 1 +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\minwinbase.h" +#pragma warning(disable: 4514) + +#pragma warning(disable: 4103) + + +#pragma warning(push) +#pragma warning(disable: 4820) + +#pragma warning(disable: 4001) +#pragma warning(disable: 4201) +#pragma warning(disable: 4214) + + + + + + +extern "C" { +# 46 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\minwinbase.h" +typedef struct _SECURITY_ATTRIBUTES { + DWORD nLength; + LPVOID lpSecurityDescriptor; + BOOL bInheritHandle; +} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; + +typedef struct _OVERLAPPED { + ULONG_PTR Internal; + ULONG_PTR InternalHigh; + union { + struct { + DWORD Offset; + DWORD OffsetHigh; + } ; + PVOID Pointer; + } ; + + HANDLE hEvent; +} OVERLAPPED, *LPOVERLAPPED; + +typedef struct _OVERLAPPED_ENTRY { + ULONG_PTR lpCompletionKey; + LPOVERLAPPED lpOverlapped; + ULONG_PTR Internal; + DWORD dwNumberOfBytesTransferred; +} OVERLAPPED_ENTRY, *LPOVERLAPPED_ENTRY; +# 90 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\minwinbase.h" +typedef struct _SYSTEMTIME { + WORD wYear; + WORD wMonth; + WORD wDayOfWeek; + WORD wDay; + WORD wHour; + WORD wMinute; + WORD wSecond; + WORD wMilliseconds; +} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME; + + +typedef struct _WIN32_FIND_DATAA { + DWORD dwFileAttributes; + FILETIME ftCreationTime; + FILETIME ftLastAccessTime; + FILETIME ftLastWriteTime; + DWORD nFileSizeHigh; + DWORD nFileSizeLow; + DWORD dwReserved0; + DWORD dwReserved1; + CHAR cFileName[ 260 ]; + CHAR cAlternateFileName[ 14 ]; + + + + + +} WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA; +typedef struct _WIN32_FIND_DATAW { + DWORD dwFileAttributes; + FILETIME ftCreationTime; + FILETIME ftLastAccessTime; + FILETIME ftLastWriteTime; + DWORD nFileSizeHigh; + DWORD nFileSizeLow; + DWORD dwReserved0; + DWORD dwReserved1; + WCHAR cFileName[ 260 ]; + WCHAR cAlternateFileName[ 14 ]; + + + + + +} WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW; + +typedef WIN32_FIND_DATAW WIN32_FIND_DATA; +typedef PWIN32_FIND_DATAW PWIN32_FIND_DATA; +typedef LPWIN32_FIND_DATAW LPWIN32_FIND_DATA; +# 148 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\minwinbase.h" +typedef enum _FINDEX_INFO_LEVELS { + FindExInfoStandard, + FindExInfoBasic, + FindExInfoMaxInfoLevel +} FINDEX_INFO_LEVELS; + + + + +typedef enum _FINDEX_SEARCH_OPS { + FindExSearchNameMatch, + FindExSearchLimitToDirectories, + FindExSearchLimitToDevices, + FindExSearchMaxSearchOp +} FINDEX_SEARCH_OPS; + + +typedef enum _GET_FILEEX_INFO_LEVELS { + GetFileExInfoStandard, + GetFileExMaxInfoLevel +} GET_FILEEX_INFO_LEVELS; + + +typedef enum _FILE_INFO_BY_HANDLE_CLASS { + FileBasicInfo, + FileStandardInfo, + FileNameInfo, + FileRenameInfo, + FileDispositionInfo, + FileAllocationInfo, + FileEndOfFileInfo, + FileStreamInfo, + FileCompressionInfo, + FileAttributeTagInfo, + FileIdBothDirectoryInfo, + FileIdBothDirectoryRestartInfo, + FileIoPriorityHintInfo, + FileRemoteProtocolInfo, + FileFullDirectoryInfo, + FileFullDirectoryRestartInfo, + + FileStorageInfo, + FileAlignmentInfo, + FileIdInfo, + FileIdExtdDirectoryInfo, + FileIdExtdDirectoryRestartInfo, + + + FileDispositionInfoEx, + FileRenameInfoEx, + + MaximumFileInfoByHandleClass +} FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS; + + +typedef RTL_CRITICAL_SECTION CRITICAL_SECTION; +typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION; +typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION; + +typedef RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG; +typedef PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG; +typedef PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG; + +typedef +void +(__stdcall *LPOVERLAPPED_COMPLETION_ROUTINE)( + DWORD dwErrorCode, + DWORD dwNumberOfBytesTransfered, + LPOVERLAPPED lpOverlapped + ); + + + + +typedef struct _PROCESS_HEAP_ENTRY { + PVOID lpData; + DWORD cbData; + BYTE cbOverhead; + BYTE iRegionIndex; + WORD wFlags; + union { + struct { + HANDLE hMem; + DWORD dwReserved[ 3 ]; + } Block; + struct { + DWORD dwCommittedSize; + DWORD dwUnCommittedSize; + LPVOID lpFirstBlock; + LPVOID lpLastBlock; + } Region; + } ; +} PROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY, *PPROCESS_HEAP_ENTRY; +# 249 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\minwinbase.h" +typedef struct _REASON_CONTEXT { + ULONG Version; + DWORD Flags; + union { + struct { + HMODULE LocalizedReasonModule; + ULONG LocalizedReasonId; + ULONG ReasonStringCount; + LPWSTR *ReasonStrings; + + } Detailed; + + LPWSTR SimpleReasonString; + } Reason; +} REASON_CONTEXT, *PREASON_CONTEXT; +# 278 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\minwinbase.h" +typedef DWORD (__stdcall *PTHREAD_START_ROUTINE)( + LPVOID lpThreadParameter + ); +typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE; + +typedef struct _EXCEPTION_DEBUG_INFO { + EXCEPTION_RECORD ExceptionRecord; + DWORD dwFirstChance; +} EXCEPTION_DEBUG_INFO, *LPEXCEPTION_DEBUG_INFO; + +typedef struct _CREATE_THREAD_DEBUG_INFO { + HANDLE hThread; + LPVOID lpThreadLocalBase; + LPTHREAD_START_ROUTINE lpStartAddress; +} CREATE_THREAD_DEBUG_INFO, *LPCREATE_THREAD_DEBUG_INFO; + +typedef struct _CREATE_PROCESS_DEBUG_INFO { + HANDLE hFile; + HANDLE hProcess; + HANDLE hThread; + LPVOID lpBaseOfImage; + DWORD dwDebugInfoFileOffset; + DWORD nDebugInfoSize; + LPVOID lpThreadLocalBase; + LPTHREAD_START_ROUTINE lpStartAddress; + LPVOID lpImageName; + WORD fUnicode; +} CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO; + +typedef struct _EXIT_THREAD_DEBUG_INFO { + DWORD dwExitCode; +} EXIT_THREAD_DEBUG_INFO, *LPEXIT_THREAD_DEBUG_INFO; + +typedef struct _EXIT_PROCESS_DEBUG_INFO { + DWORD dwExitCode; +} EXIT_PROCESS_DEBUG_INFO, *LPEXIT_PROCESS_DEBUG_INFO; + +typedef struct _LOAD_DLL_DEBUG_INFO { + HANDLE hFile; + LPVOID lpBaseOfDll; + DWORD dwDebugInfoFileOffset; + DWORD nDebugInfoSize; + LPVOID lpImageName; + WORD fUnicode; +} LOAD_DLL_DEBUG_INFO, *LPLOAD_DLL_DEBUG_INFO; + +typedef struct _UNLOAD_DLL_DEBUG_INFO { + LPVOID lpBaseOfDll; +} UNLOAD_DLL_DEBUG_INFO, *LPUNLOAD_DLL_DEBUG_INFO; + +typedef struct _OUTPUT_DEBUG_STRING_INFO { + LPSTR lpDebugStringData; + WORD fUnicode; + WORD nDebugStringLength; +} OUTPUT_DEBUG_STRING_INFO, *LPOUTPUT_DEBUG_STRING_INFO; + +typedef struct _RIP_INFO { + DWORD dwError; + DWORD dwType; +} RIP_INFO, *LPRIP_INFO; + + +typedef struct _DEBUG_EVENT { + DWORD dwDebugEventCode; + DWORD dwProcessId; + DWORD dwThreadId; + union { + EXCEPTION_DEBUG_INFO Exception; + CREATE_THREAD_DEBUG_INFO CreateThread; + CREATE_PROCESS_DEBUG_INFO CreateProcessInfo; + EXIT_THREAD_DEBUG_INFO ExitThread; + EXIT_PROCESS_DEBUG_INFO ExitProcess; + LOAD_DLL_DEBUG_INFO LoadDll; + UNLOAD_DLL_DEBUG_INFO UnloadDll; + OUTPUT_DEBUG_STRING_INFO DebugString; + RIP_INFO RipInfo; + } u; +} DEBUG_EVENT, *LPDEBUG_EVENT; + + + + + + + +typedef PCONTEXT LPCONTEXT; +# 422 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\minwinbase.h" +} + + + + + + +#pragma warning(pop) +# 33 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processenv.h" 1 +# 43 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processenv.h" +extern "C" { +# 55 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processenv.h" +__declspec(dllimport) + +LPCH +__stdcall +GetEnvironmentStrings( + void + ); + + +__declspec(dllimport) + +LPWCH +__stdcall +GetEnvironmentStringsW( + void + ); +# 79 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processenv.h" +__declspec(dllimport) +BOOL +__stdcall +SetEnvironmentStringsW( + LPWCH NewEnvironment + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +FreeEnvironmentStringsA( + LPCH penv + ); + +__declspec(dllimport) +BOOL +__stdcall +FreeEnvironmentStringsW( + LPWCH penv + ); + + + + + + + +__declspec(dllimport) +HANDLE +__stdcall +GetStdHandle( + DWORD nStdHandle + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetStdHandle( + DWORD nStdHandle, + HANDLE hHandle + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetStdHandleEx( + DWORD nStdHandle, + HANDLE hHandle, + PHANDLE phPrevValue + ); +# 153 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processenv.h" +__declspec(dllimport) +LPSTR +__stdcall +GetCommandLineA( + void + ); + +__declspec(dllimport) +LPWSTR +__stdcall +GetCommandLineW( + void + ); +# 184 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processenv.h" +__declspec(dllimport) + +DWORD +__stdcall +GetEnvironmentVariableA( + LPCSTR lpName, + LPSTR lpBuffer, + DWORD nSize + ); + +__declspec(dllimport) + +DWORD +__stdcall +GetEnvironmentVariableW( + LPCWSTR lpName, + LPWSTR lpBuffer, + DWORD nSize + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetEnvironmentVariableA( + LPCSTR lpName, + LPCSTR lpValue + ); + +__declspec(dllimport) +BOOL +__stdcall +SetEnvironmentVariableW( + LPCWSTR lpName, + LPCWSTR lpValue + ); + + + + + + + +__declspec(dllimport) + +DWORD +__stdcall +ExpandEnvironmentStringsA( + LPCSTR lpSrc, + LPSTR lpDst, + DWORD nSize + ); + +__declspec(dllimport) + +DWORD +__stdcall +ExpandEnvironmentStringsW( + LPCWSTR lpSrc, + LPWSTR lpDst, + DWORD nSize + ); +# 269 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processenv.h" +__declspec(dllimport) +BOOL +__stdcall +SetCurrentDirectoryA( + LPCSTR lpPathName + ); + +__declspec(dllimport) +BOOL +__stdcall +SetCurrentDirectoryW( + LPCWSTR lpPathName + ); +# 290 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processenv.h" +__declspec(dllimport) + +DWORD +__stdcall +GetCurrentDirectoryA( + DWORD nBufferLength, + LPSTR lpBuffer + ); + +__declspec(dllimport) + +DWORD +__stdcall +GetCurrentDirectoryW( + DWORD nBufferLength, + LPWSTR lpBuffer + ); +# 325 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processenv.h" +__declspec(dllimport) +DWORD +__stdcall +SearchPathW( + LPCWSTR lpPath, + LPCWSTR lpFileName, + LPCWSTR lpExtension, + DWORD nBufferLength, + LPWSTR lpBuffer, + LPWSTR * lpFilePart + ); +# 351 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processenv.h" +__declspec(dllimport) +DWORD +__stdcall +SearchPathA( + LPCSTR lpPath, + LPCSTR lpFileName, + LPCSTR lpExtension, + DWORD nBufferLength, + LPSTR lpBuffer, + LPSTR * lpFilePart + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +NeedCurrentDirectoryForExePathA( + LPCSTR ExeName + ); + +__declspec(dllimport) +BOOL +__stdcall +NeedCurrentDirectoryForExePathW( + LPCWSTR ExeName + ); +# 400 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processenv.h" +} +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" 1 +# 48 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +extern "C" { +# 81 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +LONG +__stdcall +CompareFileTime( + const FILETIME * lpFileTime1, + const FILETIME * lpFileTime2 + ); + + +__declspec(dllimport) +BOOL +__stdcall +CreateDirectoryA( + LPCSTR lpPathName, + LPSECURITY_ATTRIBUTES lpSecurityAttributes + ); + +__declspec(dllimport) +BOOL +__stdcall +CreateDirectoryW( + LPCWSTR lpPathName, + LPSECURITY_ATTRIBUTES lpSecurityAttributes + ); +# 119 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +HANDLE +__stdcall +CreateFileA( + LPCSTR lpFileName, + DWORD dwDesiredAccess, + DWORD dwShareMode, + LPSECURITY_ATTRIBUTES lpSecurityAttributes, + DWORD dwCreationDisposition, + DWORD dwFlagsAndAttributes, + HANDLE hTemplateFile + ); + +__declspec(dllimport) +HANDLE +__stdcall +CreateFileW( + LPCWSTR lpFileName, + DWORD dwDesiredAccess, + DWORD dwShareMode, + LPSECURITY_ATTRIBUTES lpSecurityAttributes, + DWORD dwCreationDisposition, + DWORD dwFlagsAndAttributes, + HANDLE hTemplateFile + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +DefineDosDeviceW( + DWORD dwFlags, + LPCWSTR lpDeviceName, + LPCWSTR lpTargetPath + ); +# 172 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +DeleteFileA( + LPCSTR lpFileName + ); + +__declspec(dllimport) +BOOL +__stdcall +DeleteFileW( + LPCWSTR lpFileName + ); +# 199 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +DeleteVolumeMountPointW( + LPCWSTR lpszVolumeMountPoint + ); +# 218 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +FileTimeToLocalFileTime( + const FILETIME * lpFileTime, + LPFILETIME lpLocalFileTime + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +FindClose( + HANDLE hFindFile + ); +# 245 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +FindCloseChangeNotification( + HANDLE hChangeHandle + ); + + +__declspec(dllimport) +HANDLE +__stdcall +FindFirstChangeNotificationA( + LPCSTR lpPathName, + BOOL bWatchSubtree, + DWORD dwNotifyFilter + ); + +__declspec(dllimport) +HANDLE +__stdcall +FindFirstChangeNotificationW( + LPCWSTR lpPathName, + BOOL bWatchSubtree, + DWORD dwNotifyFilter + ); +# 284 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +HANDLE +__stdcall +FindFirstFileA( + LPCSTR lpFileName, + LPWIN32_FIND_DATAA lpFindFileData + ); + +__declspec(dllimport) +HANDLE +__stdcall +FindFirstFileW( + LPCWSTR lpFileName, + LPWIN32_FIND_DATAW lpFindFileData + ); +# 309 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +HANDLE +__stdcall +FindFirstFileExA( + LPCSTR lpFileName, + FINDEX_INFO_LEVELS fInfoLevelId, + LPVOID lpFindFileData, + FINDEX_SEARCH_OPS fSearchOp, + LPVOID lpSearchFilter, + DWORD dwAdditionalFlags + ); + +__declspec(dllimport) +HANDLE +__stdcall +FindFirstFileExW( + LPCWSTR lpFileName, + FINDEX_INFO_LEVELS fInfoLevelId, + LPVOID lpFindFileData, + FINDEX_SEARCH_OPS fSearchOp, + LPVOID lpSearchFilter, + DWORD dwAdditionalFlags + ); +# 348 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +HANDLE +__stdcall +FindFirstVolumeW( + LPWSTR lpszVolumeName, + DWORD cchBufferLength + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +FindNextChangeNotification( + HANDLE hChangeHandle + ); +# 376 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +FindNextFileA( + HANDLE hFindFile, + LPWIN32_FIND_DATAA lpFindFileData + ); + +__declspec(dllimport) +BOOL +__stdcall +FindNextFileW( + HANDLE hFindFile, + LPWIN32_FIND_DATAW lpFindFileData + ); +# 405 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +FindNextVolumeW( + HANDLE hFindVolume, + LPWSTR lpszVolumeName, + DWORD cchBufferLength + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +FindVolumeClose( + HANDLE hFindVolume + ); +# 434 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +FlushFileBuffers( + HANDLE hFile + ); +# 449 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetDiskFreeSpaceA( + LPCSTR lpRootPathName, + LPDWORD lpSectorsPerCluster, + LPDWORD lpBytesPerSector, + LPDWORD lpNumberOfFreeClusters, + LPDWORD lpTotalNumberOfClusters + ); + +__declspec(dllimport) +BOOL +__stdcall +GetDiskFreeSpaceW( + LPCWSTR lpRootPathName, + LPDWORD lpSectorsPerCluster, + LPDWORD lpBytesPerSector, + LPDWORD lpNumberOfFreeClusters, + LPDWORD lpTotalNumberOfClusters + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetDiskFreeSpaceExA( + LPCSTR lpDirectoryName, + PULARGE_INTEGER lpFreeBytesAvailableToCaller, + PULARGE_INTEGER lpTotalNumberOfBytes, + PULARGE_INTEGER lpTotalNumberOfFreeBytes + ); + +__declspec(dllimport) +BOOL +__stdcall +GetDiskFreeSpaceExW( + LPCWSTR lpDirectoryName, + PULARGE_INTEGER lpFreeBytesAvailableToCaller, + PULARGE_INTEGER lpTotalNumberOfBytes, + PULARGE_INTEGER lpTotalNumberOfFreeBytes + ); +# 510 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +UINT +__stdcall +GetDriveTypeA( + LPCSTR lpRootPathName + ); + +__declspec(dllimport) +UINT +__stdcall +GetDriveTypeW( + LPCWSTR lpRootPathName + ); +# 537 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +typedef struct _WIN32_FILE_ATTRIBUTE_DATA { + DWORD dwFileAttributes; + FILETIME ftCreationTime; + FILETIME ftLastAccessTime; + FILETIME ftLastWriteTime; + DWORD nFileSizeHigh; + DWORD nFileSizeLow; +} WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA; + +__declspec(dllimport) +DWORD +__stdcall +GetFileAttributesA( + LPCSTR lpFileName + ); + +__declspec(dllimport) +DWORD +__stdcall +GetFileAttributesW( + LPCWSTR lpFileName + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetFileAttributesExA( + LPCSTR lpFileName, + GET_FILEEX_INFO_LEVELS fInfoLevelId, + LPVOID lpFileInformation + ); + +__declspec(dllimport) +BOOL +__stdcall +GetFileAttributesExW( + LPCWSTR lpFileName, + GET_FILEEX_INFO_LEVELS fInfoLevelId, + LPVOID lpFileInformation + ); +# 597 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +typedef struct _BY_HANDLE_FILE_INFORMATION { + DWORD dwFileAttributes; + FILETIME ftCreationTime; + FILETIME ftLastAccessTime; + FILETIME ftLastWriteTime; + DWORD dwVolumeSerialNumber; + DWORD nFileSizeHigh; + DWORD nFileSizeLow; + DWORD nNumberOfLinks; + DWORD nFileIndexHigh; + DWORD nFileIndexLow; +} BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION; + +__declspec(dllimport) +BOOL +__stdcall +GetFileInformationByHandle( + HANDLE hFile, + LPBY_HANDLE_FILE_INFORMATION lpFileInformation + ); + + +__declspec(dllimport) +DWORD +__stdcall +GetFileSize( + HANDLE hFile, + LPDWORD lpFileSizeHigh + ); +# 635 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetFileSizeEx( + HANDLE hFile, + PLARGE_INTEGER lpFileSize + ); + + +__declspec(dllimport) +DWORD +__stdcall +GetFileType( + HANDLE hFile + ); + + + + + +__declspec(dllimport) +DWORD +__stdcall +GetFinalPathNameByHandleA( + HANDLE hFile, + LPSTR lpszFilePath, + DWORD cchFilePath, + DWORD dwFlags + ); + +__declspec(dllimport) +DWORD +__stdcall +GetFinalPathNameByHandleW( + HANDLE hFile, + LPWSTR lpszFilePath, + DWORD cchFilePath, + DWORD dwFlags + ); +# 683 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetFileTime( + HANDLE hFile, + LPFILETIME lpCreationTime, + LPFILETIME lpLastAccessTime, + LPFILETIME lpLastWriteTime + ); + + +__declspec(dllimport) + +DWORD +__stdcall +GetFullPathNameW( + LPCWSTR lpFileName, + DWORD nBufferLength, + LPWSTR lpBuffer, + LPWSTR * lpFilePart + ); +# 717 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) + +DWORD +__stdcall +GetFullPathNameA( + LPCSTR lpFileName, + DWORD nBufferLength, + LPSTR lpBuffer, + LPSTR * lpFilePart + ); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +GetLogicalDrives( + void + ); + + +__declspec(dllimport) +DWORD +__stdcall +GetLogicalDriveStringsW( + DWORD nBufferLength, + LPWSTR lpBuffer + ); + + + + + + +__declspec(dllimport) + +DWORD +__stdcall +GetLongPathNameA( + LPCSTR lpszShortPath, + LPSTR lpszLongPath, + DWORD cchBuffer + ); +# 776 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) + +DWORD +__stdcall +GetLongPathNameW( + LPCWSTR lpszShortPath, + LPWSTR lpszLongPath, + DWORD cchBuffer + ); +# 798 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) + +DWORD +__stdcall +GetShortPathNameW( + LPCWSTR lpszLongPath, + LPWSTR lpszShortPath, + DWORD cchBuffer + ); +# 820 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +UINT +__stdcall +GetTempFileNameW( + LPCWSTR lpPathName, + LPCWSTR lpPrefixString, + UINT uUnique, + LPWSTR lpTempFileName + ); +# 845 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetVolumeInformationByHandleW( + HANDLE hFile, + LPWSTR lpVolumeNameBuffer, + DWORD nVolumeNameSize, + LPDWORD lpVolumeSerialNumber, + LPDWORD lpMaximumComponentLength, + LPDWORD lpFileSystemFlags, + LPWSTR lpFileSystemNameBuffer, + DWORD nFileSystemNameSize + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +GetVolumeInformationW( + LPCWSTR lpRootPathName, + LPWSTR lpVolumeNameBuffer, + DWORD nVolumeNameSize, + LPDWORD lpVolumeSerialNumber, + LPDWORD lpMaximumComponentLength, + LPDWORD lpFileSystemFlags, + LPWSTR lpFileSystemNameBuffer, + DWORD nFileSystemNameSize + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetVolumePathNameW( + LPCWSTR lpszFileName, + LPWSTR lpszVolumePathName, + DWORD cchBufferLength + ); +# 902 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +LocalFileTimeToFileTime( + const FILETIME * lpLocalFileTime, + LPFILETIME lpFileTime + ); +# 918 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +LockFile( + HANDLE hFile, + DWORD dwFileOffsetLow, + DWORD dwFileOffsetHigh, + DWORD nNumberOfBytesToLockLow, + DWORD nNumberOfBytesToLockHigh + ); +# 937 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +LockFileEx( + HANDLE hFile, + DWORD dwFlags, + DWORD dwReserved, + DWORD nNumberOfBytesToLockLow, + DWORD nNumberOfBytesToLockHigh, + LPOVERLAPPED lpOverlapped + ); +# 957 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +DWORD +__stdcall +QueryDosDeviceW( + LPCWSTR lpDeviceName, + LPWSTR lpTargetPath, + DWORD ucchMax + ); +# 978 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) + +BOOL +__stdcall +ReadFile( + HANDLE hFile, + LPVOID lpBuffer, + DWORD nNumberOfBytesToRead, + LPDWORD lpNumberOfBytesRead, + LPOVERLAPPED lpOverlapped + ); + + +__declspec(dllimport) + +BOOL +__stdcall +ReadFileEx( + HANDLE hFile, + LPVOID lpBuffer, + DWORD nNumberOfBytesToRead, + LPOVERLAPPED lpOverlapped, + LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine + ); +# 1011 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) + +BOOL +__stdcall +ReadFileScatter( + HANDLE hFile, + FILE_SEGMENT_ELEMENT aSegmentArray[], + DWORD nNumberOfBytesToRead, + LPDWORD lpReserved, + LPOVERLAPPED lpOverlapped + ); +# 1031 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +RemoveDirectoryA( + LPCSTR lpPathName + ); + +__declspec(dllimport) +BOOL +__stdcall +RemoveDirectoryW( + LPCWSTR lpPathName + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetEndOfFile( + HANDLE hFile + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetFileAttributesA( + LPCSTR lpFileName, + DWORD dwFileAttributes + ); + +__declspec(dllimport) +BOOL +__stdcall +SetFileAttributesW( + LPCWSTR lpFileName, + DWORD dwFileAttributes + ); +# 1084 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +SetFileInformationByHandle( + HANDLE hFile, + FILE_INFO_BY_HANDLE_CLASS FileInformationClass, + LPVOID lpFileInformation, + DWORD dwBufferSize + ); + + + + +__declspec(dllimport) +DWORD +__stdcall +SetFilePointer( + HANDLE hFile, + LONG lDistanceToMove, + PLONG lpDistanceToMoveHigh, + DWORD dwMoveMethod + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetFilePointerEx( + HANDLE hFile, + LARGE_INTEGER liDistanceToMove, + PLARGE_INTEGER lpNewFilePointer, + DWORD dwMoveMethod + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetFileTime( + HANDLE hFile, + const FILETIME * lpCreationTime, + const FILETIME * lpLastAccessTime, + const FILETIME * lpLastWriteTime + ); +# 1140 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +SetFileValidData( + HANDLE hFile, + LONGLONG ValidDataLength + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +UnlockFile( + HANDLE hFile, + DWORD dwFileOffsetLow, + DWORD dwFileOffsetHigh, + DWORD nNumberOfBytesToUnlockLow, + DWORD nNumberOfBytesToUnlockHigh + ); +# 1170 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +UnlockFileEx( + HANDLE hFile, + DWORD dwReserved, + DWORD nNumberOfBytesToUnlockLow, + DWORD nNumberOfBytesToUnlockHigh, + LPOVERLAPPED lpOverlapped + ); + + +__declspec(dllimport) +BOOL +__stdcall +WriteFile( + HANDLE hFile, + LPCVOID lpBuffer, + DWORD nNumberOfBytesToWrite, + LPDWORD lpNumberOfBytesWritten, + LPOVERLAPPED lpOverlapped + ); + + +__declspec(dllimport) +BOOL +__stdcall +WriteFileEx( + HANDLE hFile, + LPCVOID lpBuffer, + DWORD nNumberOfBytesToWrite, + LPOVERLAPPED lpOverlapped, + LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine + ); +# 1213 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +WriteFileGather( + HANDLE hFile, + FILE_SEGMENT_ELEMENT aSegmentArray[], + DWORD nNumberOfBytesToWrite, + LPDWORD lpReserved, + LPOVERLAPPED lpOverlapped + ); +# 1239 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +DWORD +__stdcall +GetTempPathW( + DWORD nBufferLength, + LPWSTR lpBuffer + ); +# 1259 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetVolumeNameForVolumeMountPointW( + LPCWSTR lpszVolumeMountPoint, + LPWSTR lpszVolumeName, + DWORD cchBufferLength + ); +# 1276 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetVolumePathNamesForVolumeNameW( + LPCWSTR lpszVolumeName, + LPWCH lpszVolumePathNames, + DWORD cchBufferLength, + PDWORD lpcchReturnLength + ); +# 1303 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +typedef struct _CREATEFILE2_EXTENDED_PARAMETERS { + DWORD dwSize; + DWORD dwFileAttributes; + DWORD dwFileFlags; + DWORD dwSecurityQosFlags; + LPSECURITY_ATTRIBUTES lpSecurityAttributes; + HANDLE hTemplateFile; +} CREATEFILE2_EXTENDED_PARAMETERS, *PCREATEFILE2_EXTENDED_PARAMETERS, *LPCREATEFILE2_EXTENDED_PARAMETERS; + +__declspec(dllimport) +HANDLE +__stdcall +CreateFile2( + LPCWSTR lpFileName, + DWORD dwDesiredAccess, + DWORD dwShareMode, + DWORD dwCreationDisposition, + LPCREATEFILE2_EXTENDED_PARAMETERS pCreateExParams + ); +# 1344 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +SetFileIoOverlappedRange( + HANDLE FileHandle, + PUCHAR OverlappedRangeStart, + ULONG Length + ); +# 1366 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +DWORD +__stdcall +GetCompressedFileSizeA( + LPCSTR lpFileName, + LPDWORD lpFileSizeHigh + ); + +__declspec(dllimport) +DWORD +__stdcall +GetCompressedFileSizeW( + LPCWSTR lpFileName, + LPDWORD lpFileSizeHigh + ); +# 1404 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +typedef enum _STREAM_INFO_LEVELS { + + FindStreamInfoStandard, + FindStreamInfoMaxInfoLevel + +} STREAM_INFO_LEVELS; + +typedef struct _WIN32_FIND_STREAM_DATA { + + LARGE_INTEGER StreamSize; + WCHAR cStreamName[ 260 + 36 ]; + +} WIN32_FIND_STREAM_DATA, *PWIN32_FIND_STREAM_DATA; + + + + +__declspec(dllimport) +HANDLE +__stdcall +FindFirstStreamW( + LPCWSTR lpFileName, + STREAM_INFO_LEVELS InfoLevel, + LPVOID lpFindStreamData, + DWORD dwFlags + ); + + +__declspec(dllimport) +BOOL +__stdcall +FindNextStreamW( + HANDLE hFindStream, + LPVOID lpFindStreamData + ); +# 1448 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +BOOL +__stdcall +AreFileApisANSI( + void + ); + + +__declspec(dllimport) +DWORD +__stdcall +GetTempPathA( + DWORD nBufferLength, + LPSTR lpBuffer + ); +# 1472 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +__declspec(dllimport) +HANDLE +__stdcall +FindFirstFileNameW( + LPCWSTR lpFileName, + DWORD dwFlags, + LPDWORD StringLength, + PWSTR LinkName + ); + + +__declspec(dllimport) +BOOL +__stdcall +FindNextFileNameW( + HANDLE hFindStream, + LPDWORD StringLength, + PWSTR LinkName + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +GetVolumeInformationA( + LPCSTR lpRootPathName, + LPSTR lpVolumeNameBuffer, + DWORD nVolumeNameSize, + LPDWORD lpVolumeSerialNumber, + LPDWORD lpMaximumComponentLength, + LPDWORD lpFileSystemFlags, + LPSTR lpFileSystemNameBuffer, + DWORD nFileSystemNameSize + ); + + + + + + +__declspec(dllimport) +UINT +__stdcall +GetTempFileNameA( + LPCSTR lpPathName, + LPCSTR lpPrefixString, + UINT uUnique, + LPSTR lpTempFileName + ); + + + + + + +__declspec(dllimport) +void +__stdcall +SetFileApisToOEM( + void + ); + + +__declspec(dllimport) +void +__stdcall +SetFileApisToANSI( + void + ); +# 1555 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fileapi.h" +} +# 40 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\debugapi.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\debugapi.h" +extern "C" { +# 58 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\debugapi.h" +__declspec(dllimport) +BOOL +__stdcall +IsDebuggerPresent( + void + ); +# 74 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\debugapi.h" +__declspec(dllimport) +void +__stdcall +DebugBreak( + void + ); +# 89 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\debugapi.h" +__declspec(dllimport) +void +__stdcall +OutputDebugStringA( + LPCSTR lpOutputString + ); + +__declspec(dllimport) +void +__stdcall +OutputDebugStringW( + LPCWSTR lpOutputString + ); +# 121 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\debugapi.h" +__declspec(dllimport) +BOOL +__stdcall +ContinueDebugEvent( + DWORD dwProcessId, + DWORD dwThreadId, + DWORD dwContinueStatus + ); + + +__declspec(dllimport) +BOOL +__stdcall +WaitForDebugEvent( + LPDEBUG_EVENT lpDebugEvent, + DWORD dwMilliseconds + ); + + +__declspec(dllimport) +BOOL +__stdcall +DebugActiveProcess( + DWORD dwProcessId + ); + + +__declspec(dllimport) +BOOL +__stdcall +DebugActiveProcessStop( + DWORD dwProcessId + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +CheckRemoteDebuggerPresent( + HANDLE hProcess, + PBOOL pbDebuggerPresent + ); +# 183 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\debugapi.h" +__declspec(dllimport) +BOOL +__stdcall +WaitForDebugEventEx( + LPDEBUG_EVENT lpDebugEvent, + DWORD dwMilliseconds + ); +# 201 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\debugapi.h" +} +# 41 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\utilapiset.h" 1 +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\utilapiset.h" +extern "C" { + + + + + + +__declspec(dllimport) + +PVOID +__stdcall +EncodePointer( + PVOID Ptr + ); + + +__declspec(dllimport) + +PVOID +__stdcall +DecodePointer( + PVOID Ptr + ); +# 71 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\utilapiset.h" +__declspec(dllimport) + +PVOID +__stdcall +EncodeSystemPointer( + PVOID Ptr + ); + + +__declspec(dllimport) + +PVOID +__stdcall +DecodeSystemPointer( + PVOID Ptr + ); + + + + + +__declspec(dllimport) +HRESULT +__stdcall +EncodeRemotePointer( + HANDLE ProcessHandle, + PVOID Ptr, + PVOID * EncodedPtr + ); + + +__declspec(dllimport) +HRESULT +__stdcall +DecodeRemotePointer( + HANDLE ProcessHandle, + PVOID Ptr, + PVOID * DecodedPtr + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +Beep( + DWORD dwFreq, + DWORD dwDuration + ); + + + + + + +} +# 42 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\handleapi.h" 1 +# 37 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\handleapi.h" +extern "C" { +# 52 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\handleapi.h" +__declspec(dllimport) +BOOL +__stdcall +CloseHandle( + HANDLE hObject + ); + + +__declspec(dllimport) +BOOL +__stdcall +DuplicateHandle( + HANDLE hSourceProcessHandle, + HANDLE hSourceHandle, + HANDLE hTargetProcessHandle, + LPHANDLE lpTargetHandle, + DWORD dwDesiredAccess, + BOOL bInheritHandle, + DWORD dwOptions + ); + + +__declspec(dllimport) +BOOL +__stdcall +CompareObjectHandles( + HANDLE hFirstObjectHandle, + HANDLE hSecondObjectHandle + ); +# 90 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\handleapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetHandleInformation( + HANDLE hObject, + LPDWORD lpdwFlags + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetHandleInformation( + HANDLE hObject, + DWORD dwMask, + DWORD dwFlags + ); + + + + + + +} +# 43 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\errhandlingapi.h" 1 +# 47 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\errhandlingapi.h" +extern "C" { +# 65 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\errhandlingapi.h" +typedef LONG (__stdcall *PTOP_LEVEL_EXCEPTION_FILTER)( + struct _EXCEPTION_POINTERS *ExceptionInfo + ); + +typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER; + + + + + +__declspec(dllimport) + +void +__stdcall +RaiseException( + DWORD dwExceptionCode, + DWORD dwExceptionFlags, + DWORD nNumberOfArguments, + const ULONG_PTR * lpArguments + ); +# 95 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\errhandlingapi.h" +__declspec(dllimport) +LONG +__stdcall +UnhandledExceptionFilter( + struct _EXCEPTION_POINTERS * ExceptionInfo + ); +# 110 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\errhandlingapi.h" +__declspec(dllimport) +LPTOP_LEVEL_EXCEPTION_FILTER +__stdcall +SetUnhandledExceptionFilter( + LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter + ); + + + + +__declspec(dllimport) + +DWORD +__stdcall +GetLastError( + void + ); + + + + +__declspec(dllimport) +void +__stdcall +SetLastError( + DWORD dwErrCode + ); +# 149 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\errhandlingapi.h" +__declspec(dllimport) +UINT +__stdcall +GetErrorMode( + void + ); + + + + +__declspec(dllimport) +UINT +__stdcall +SetErrorMode( + UINT uMode + ); +# 181 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\errhandlingapi.h" +__declspec(dllimport) + +PVOID +__stdcall +AddVectoredExceptionHandler( + ULONG First, + PVECTORED_EXCEPTION_HANDLER Handler + ); + + +__declspec(dllimport) +ULONG +__stdcall +RemoveVectoredExceptionHandler( + PVOID Handle + ); + + +__declspec(dllimport) + +PVOID +__stdcall +AddVectoredContinueHandler( + ULONG First, + PVECTORED_EXCEPTION_HANDLER Handler + ); + + +__declspec(dllimport) +ULONG +__stdcall +RemoveVectoredContinueHandler( + PVOID Handle + ); +# 260 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\errhandlingapi.h" +__declspec(dllimport) +void +__stdcall +RaiseFailFastException( + PEXCEPTION_RECORD pExceptionRecord, + PCONTEXT pContextRecord, + DWORD dwFlags + ); +# 286 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\errhandlingapi.h" +__declspec(dllimport) +void +__stdcall +FatalAppExitA( + UINT uAction, + LPCSTR lpMessageText + ); + +__declspec(dllimport) +void +__stdcall +FatalAppExitW( + UINT uAction, + LPCWSTR lpMessageText + ); + + + + + + + +__declspec(dllimport) +DWORD +__stdcall +GetThreadErrorMode( + void + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetThreadErrorMode( + DWORD dwNewMode, + LPDWORD lpOldMode + ); + + +__declspec(dllimport) +void +__stdcall +TerminateProcessOnMemoryExhaustion( + SIZE_T FailedAllocationSize + ); +# 346 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\errhandlingapi.h" +} +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fibersapi.h" 1 +# 41 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fibersapi.h" +extern "C" { +# 60 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fibersapi.h" +__declspec(dllimport) +DWORD +__stdcall +FlsAlloc( + PFLS_CALLBACK_FUNCTION lpCallback + ); + + +__declspec(dllimport) +PVOID +__stdcall +FlsGetValue( + DWORD dwFlsIndex + ); + + +__declspec(dllimport) +BOOL +__stdcall +FlsSetValue( + DWORD dwFlsIndex, + PVOID lpFlsData + ); + + +__declspec(dllimport) +BOOL +__stdcall +FlsFree( + DWORD dwFlsIndex + ); +# 109 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fibersapi.h" +__declspec(dllimport) +BOOL +__stdcall +IsThreadAFiber( + void + ); +# 128 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\fibersapi.h" +} +# 45 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\namedpipeapi.h" 1 +# 48 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\namedpipeapi.h" +extern "C" { +# 60 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\namedpipeapi.h" +__declspec(dllimport) +BOOL +__stdcall +CreatePipe( + PHANDLE hReadPipe, + PHANDLE hWritePipe, + LPSECURITY_ATTRIBUTES lpPipeAttributes, + DWORD nSize + ); + + +__declspec(dllimport) +BOOL +__stdcall +ConnectNamedPipe( + HANDLE hNamedPipe, + LPOVERLAPPED lpOverlapped + ); + + +__declspec(dllimport) +BOOL +__stdcall +DisconnectNamedPipe( + HANDLE hNamedPipe + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetNamedPipeHandleState( + HANDLE hNamedPipe, + LPDWORD lpMode, + LPDWORD lpMaxCollectionCount, + LPDWORD lpCollectDataTimeout + ); + + +__declspec(dllimport) +BOOL +__stdcall +PeekNamedPipe( + HANDLE hNamedPipe, + LPVOID lpBuffer, + DWORD nBufferSize, + LPDWORD lpBytesRead, + LPDWORD lpTotalBytesAvail, + LPDWORD lpBytesLeftThisMessage + ); + + +__declspec(dllimport) +BOOL +__stdcall +TransactNamedPipe( + HANDLE hNamedPipe, + LPVOID lpInBuffer, + DWORD nInBufferSize, + LPVOID lpOutBuffer, + DWORD nOutBufferSize, + LPDWORD lpBytesRead, + LPOVERLAPPED lpOverlapped + ); + + +__declspec(dllimport) +HANDLE +__stdcall +CreateNamedPipeW( + LPCWSTR lpName, + DWORD dwOpenMode, + DWORD dwPipeMode, + DWORD nMaxInstances, + DWORD nOutBufferSize, + DWORD nInBufferSize, + DWORD nDefaultTimeOut, + LPSECURITY_ATTRIBUTES lpSecurityAttributes + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +WaitNamedPipeW( + LPCWSTR lpNamedPipeName, + DWORD nTimeOut + ); +# 161 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\namedpipeapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetNamedPipeClientComputerNameW( + HANDLE Pipe, + LPWSTR ClientComputerName, + ULONG ClientComputerNameLength + ); +# 177 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\namedpipeapi.h" +__declspec(dllimport) + +BOOL +__stdcall +ImpersonateNamedPipeClient( + HANDLE hNamedPipe + ); +# 199 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\namedpipeapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetNamedPipeInfo( + HANDLE hNamedPipe, + LPDWORD lpFlags, + LPDWORD lpOutBufferSize, + LPDWORD lpInBufferSize, + LPDWORD lpMaxInstances + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetNamedPipeHandleStateW( + HANDLE hNamedPipe, + LPDWORD lpState, + LPDWORD lpCurInstances, + LPDWORD lpMaxCollectionCount, + LPDWORD lpCollectDataTimeout, + LPWSTR lpUserName, + DWORD nMaxUserNameSize + ); +# 244 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\namedpipeapi.h" +__declspec(dllimport) +BOOL +__stdcall +CallNamedPipeW( + LPCWSTR lpNamedPipeName, + LPVOID lpInBuffer, + DWORD nInBufferSize, + LPVOID lpOutBuffer, + DWORD nOutBufferSize, + LPDWORD lpBytesRead, + DWORD nTimeOut + ); +# 274 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\namedpipeapi.h" +} +# 46 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\profileapi.h" 1 +# 37 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\profileapi.h" +extern "C" { +# 48 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\profileapi.h" +__declspec(dllimport) +BOOL +__stdcall +QueryPerformanceCounter( + LARGE_INTEGER * lpPerformanceCount + ); + + +__declspec(dllimport) +BOOL +__stdcall +QueryPerformanceFrequency( + LARGE_INTEGER * lpFrequency + ); + + + + + + +} +# 47 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\heapapi.h" 1 +# 48 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\heapapi.h" +extern "C" { + + + + +#pragma warning(push) +#pragma warning(disable: 4820) +# 65 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\heapapi.h" +typedef struct _HEAP_SUMMARY { + DWORD cb; + SIZE_T cbAllocated; + SIZE_T cbCommitted; + SIZE_T cbReserved; + SIZE_T cbMaxReserve; +} HEAP_SUMMARY, *PHEAP_SUMMARY; +typedef PHEAP_SUMMARY LPHEAP_SUMMARY; +# 85 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\heapapi.h" +__declspec(dllimport) + +HANDLE +__stdcall +HeapCreate( + DWORD flOptions, + SIZE_T dwInitialSize, + SIZE_T dwMaximumSize + ); + + +__declspec(dllimport) +BOOL +__stdcall +HeapDestroy( + HANDLE hHeap + ); + + +__declspec(dllimport) + + +__declspec(allocator) +LPVOID +__stdcall +HeapAlloc( + HANDLE hHeap, + DWORD dwFlags, + SIZE_T dwBytes + ); + + +__declspec(dllimport) + + + +__declspec(allocator) +LPVOID +__stdcall +HeapReAlloc( + HANDLE hHeap, + DWORD dwFlags, + LPVOID lpMem, + SIZE_T dwBytes + ); + + +__declspec(dllimport) + +BOOL +__stdcall +HeapFree( + HANDLE hHeap, + DWORD dwFlags, + LPVOID lpMem + ); + + +__declspec(dllimport) +SIZE_T +__stdcall +HeapSize( + HANDLE hHeap, + DWORD dwFlags, + LPCVOID lpMem + ); + + +__declspec(dllimport) +HANDLE +__stdcall +GetProcessHeap( + void + ); + + +__declspec(dllimport) +SIZE_T +__stdcall +HeapCompact( + HANDLE hHeap, + DWORD dwFlags + ); + + +__declspec(dllimport) +BOOL +__stdcall +HeapSetInformation( + HANDLE HeapHandle, + HEAP_INFORMATION_CLASS HeapInformationClass, + PVOID HeapInformation, + SIZE_T HeapInformationLength + ); +# 188 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\heapapi.h" +__declspec(dllimport) +BOOL +__stdcall +HeapValidate( + HANDLE hHeap, + DWORD dwFlags, + LPCVOID lpMem + ); +# 208 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\heapapi.h" +BOOL +__stdcall +HeapSummary( + HANDLE hHeap, + DWORD dwFlags, + LPHEAP_SUMMARY lpSummary + ); +# 226 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\heapapi.h" +__declspec(dllimport) +DWORD +__stdcall +GetProcessHeaps( + DWORD NumberOfHeaps, + PHANDLE ProcessHeaps + ); + + +__declspec(dllimport) +BOOL +__stdcall +HeapLock( + HANDLE hHeap + ); + + +__declspec(dllimport) +BOOL +__stdcall +HeapUnlock( + HANDLE hHeap + ); + + +__declspec(dllimport) +BOOL +__stdcall +HeapWalk( + HANDLE hHeap, + LPPROCESS_HEAP_ENTRY lpEntry + ); + + +__declspec(dllimport) +BOOL +__stdcall +HeapQueryInformation( + HANDLE HeapHandle, + HEAP_INFORMATION_CLASS HeapInformationClass, + PVOID HeapInformation, + SIZE_T HeapInformationLength, + PSIZE_T ReturnLength + ); +# 281 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\heapapi.h" +#pragma warning(pop) + + + +} +# 48 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ioapiset.h" 1 +# 42 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ioapiset.h" +extern "C" { +# 54 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ioapiset.h" +__declspec(dllimport) + +HANDLE +__stdcall +CreateIoCompletionPort( + HANDLE FileHandle, + HANDLE ExistingCompletionPort, + ULONG_PTR CompletionKey, + DWORD NumberOfConcurrentThreads + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetQueuedCompletionStatus( + HANDLE CompletionPort, + LPDWORD lpNumberOfBytesTransferred, + PULONG_PTR lpCompletionKey, + LPOVERLAPPED * lpOverlapped, + DWORD dwMilliseconds + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetQueuedCompletionStatusEx( + HANDLE CompletionPort, + LPOVERLAPPED_ENTRY lpCompletionPortEntries, + ULONG ulCount, + PULONG ulNumEntriesRemoved, + DWORD dwMilliseconds, + BOOL fAlertable + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +PostQueuedCompletionStatus( + HANDLE CompletionPort, + DWORD dwNumberOfBytesTransferred, + ULONG_PTR dwCompletionKey, + LPOVERLAPPED lpOverlapped + ); +# 114 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ioapiset.h" +__declspec(dllimport) +BOOL +__stdcall +DeviceIoControl( + HANDLE hDevice, + DWORD dwIoControlCode, + LPVOID lpInBuffer, + DWORD nInBufferSize, + LPVOID lpOutBuffer, + DWORD nOutBufferSize, + LPDWORD lpBytesReturned, + LPOVERLAPPED lpOverlapped + ); +# 136 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ioapiset.h" +__declspec(dllimport) +BOOL +__stdcall +GetOverlappedResult( + HANDLE hFile, + LPOVERLAPPED lpOverlapped, + LPDWORD lpNumberOfBytesTransferred, + BOOL bWait + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +CancelIoEx( + HANDLE hFile, + LPOVERLAPPED lpOverlapped + ); +# 175 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ioapiset.h" +__declspec(dllimport) +BOOL +__stdcall +CancelIo( + HANDLE hFile + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetOverlappedResultEx( + HANDLE hFile, + LPOVERLAPPED lpOverlapped, + LPDWORD lpNumberOfBytesTransferred, + DWORD dwMilliseconds, + BOOL bAlertable + ); +# 205 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ioapiset.h" +__declspec(dllimport) +BOOL +__stdcall +CancelSynchronousIo( + HANDLE hThread + ); +# 226 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ioapiset.h" +} +# 49 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" 1 +# 45 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +extern "C" { +# 64 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +typedef RTL_SRWLOCK SRWLOCK, *PSRWLOCK; +# 80 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +__declspec(dllimport) +void +__stdcall +InitializeSRWLock( + PSRWLOCK SRWLock + ); + + +__declspec(dllimport) + +void +__stdcall +ReleaseSRWLockExclusive( + PSRWLOCK SRWLock + ); + + +__declspec(dllimport) + +void +__stdcall +ReleaseSRWLockShared( + PSRWLOCK SRWLock + ); + + +__declspec(dllimport) + +void +__stdcall +AcquireSRWLockExclusive( + PSRWLOCK SRWLock + ); + + +__declspec(dllimport) + +void +__stdcall +AcquireSRWLockShared( + PSRWLOCK SRWLock + ); + + +__declspec(dllimport) + +BOOLEAN +__stdcall +TryAcquireSRWLockExclusive( + PSRWLOCK SRWLock + ); + + +__declspec(dllimport) + +BOOLEAN +__stdcall +TryAcquireSRWLockShared( + PSRWLOCK SRWLock + ); +# 158 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +__declspec(dllimport) +void +__stdcall +InitializeCriticalSection( + LPCRITICAL_SECTION lpCriticalSection + ); + + + + +__declspec(dllimport) +void +__stdcall +EnterCriticalSection( + LPCRITICAL_SECTION lpCriticalSection + ); + + +__declspec(dllimport) +void +__stdcall +LeaveCriticalSection( + LPCRITICAL_SECTION lpCriticalSection + ); + + +__declspec(dllimport) + +BOOL +__stdcall +InitializeCriticalSectionAndSpinCount( + LPCRITICAL_SECTION lpCriticalSection, + DWORD dwSpinCount + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +InitializeCriticalSectionEx( + LPCRITICAL_SECTION lpCriticalSection, + DWORD dwSpinCount, + DWORD Flags + ); + + + + +__declspec(dllimport) +DWORD +__stdcall +SetCriticalSectionSpinCount( + LPCRITICAL_SECTION lpCriticalSection, + DWORD dwSpinCount + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +TryEnterCriticalSection( + LPCRITICAL_SECTION lpCriticalSection + ); + + + + +__declspec(dllimport) +void +__stdcall +DeleteCriticalSection( + LPCRITICAL_SECTION lpCriticalSection + ); +# 247 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +typedef RTL_RUN_ONCE INIT_ONCE; +typedef PRTL_RUN_ONCE PINIT_ONCE; +typedef PRTL_RUN_ONCE LPINIT_ONCE; +# 268 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +typedef +BOOL +(__stdcall *PINIT_ONCE_FN) ( + PINIT_ONCE InitOnce, + PVOID Parameter, + PVOID *Context + ); + + + + + + + +__declspec(dllimport) +void +__stdcall +InitOnceInitialize( + PINIT_ONCE InitOnce + ); + + +__declspec(dllimport) +BOOL +__stdcall +InitOnceExecuteOnce( + PINIT_ONCE InitOnce, + PINIT_ONCE_FN InitFn, + PVOID Parameter, + LPVOID * Context + ); + + +__declspec(dllimport) +BOOL +__stdcall +InitOnceBeginInitialize( + LPINIT_ONCE lpInitOnce, + DWORD dwFlags, + PBOOL fPending, + LPVOID * lpContext + ); + + +__declspec(dllimport) +BOOL +__stdcall +InitOnceComplete( + LPINIT_ONCE lpInitOnce, + DWORD dwFlags, + LPVOID lpContext + ); +# 330 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +typedef RTL_CONDITION_VARIABLE CONDITION_VARIABLE, *PCONDITION_VARIABLE; +# 350 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +__declspec(dllimport) +void +__stdcall +InitializeConditionVariable( + PCONDITION_VARIABLE ConditionVariable + ); + + +__declspec(dllimport) +void +__stdcall +WakeConditionVariable( + PCONDITION_VARIABLE ConditionVariable + ); + + +__declspec(dllimport) +void +__stdcall +WakeAllConditionVariable( + PCONDITION_VARIABLE ConditionVariable + ); + + +__declspec(dllimport) +BOOL +__stdcall +SleepConditionVariableCS( + PCONDITION_VARIABLE ConditionVariable, + PCRITICAL_SECTION CriticalSection, + DWORD dwMilliseconds + ); + + +__declspec(dllimport) +BOOL +__stdcall +SleepConditionVariableSRW( + PCONDITION_VARIABLE ConditionVariable, + PSRWLOCK SRWLock, + DWORD dwMilliseconds, + ULONG Flags + ); +# 403 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +__declspec(dllimport) +BOOL +__stdcall +SetEvent( + HANDLE hEvent + ); + + +__declspec(dllimport) +BOOL +__stdcall +ResetEvent( + HANDLE hEvent + ); + + +__declspec(dllimport) +BOOL +__stdcall +ReleaseSemaphore( + HANDLE hSemaphore, + LONG lReleaseCount, + LPLONG lpPreviousCount + ); + + +__declspec(dllimport) +BOOL +__stdcall +ReleaseMutex( + HANDLE hMutex + ); + + +__declspec(dllimport) +DWORD +__stdcall +WaitForSingleObject( + HANDLE hHandle, + DWORD dwMilliseconds + ); + + +__declspec(dllimport) +DWORD +__stdcall +SleepEx( + DWORD dwMilliseconds, + BOOL bAlertable + ); + + +__declspec(dllimport) +DWORD +__stdcall +WaitForSingleObjectEx( + HANDLE hHandle, + DWORD dwMilliseconds, + BOOL bAlertable + ); + + +__declspec(dllimport) +DWORD +__stdcall +WaitForMultipleObjectsEx( + DWORD nCount, + const HANDLE * lpHandles, + BOOL bWaitAll, + DWORD dwMilliseconds, + BOOL bAlertable + ); +# 484 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +__declspec(dllimport) + +HANDLE +__stdcall +CreateMutexA( + LPSECURITY_ATTRIBUTES lpMutexAttributes, + BOOL bInitialOwner, + LPCSTR lpName + ); + +__declspec(dllimport) + +HANDLE +__stdcall +CreateMutexW( + LPSECURITY_ATTRIBUTES lpMutexAttributes, + BOOL bInitialOwner, + LPCWSTR lpName + ); + + + + + + + +__declspec(dllimport) + +HANDLE +__stdcall +OpenMutexW( + DWORD dwDesiredAccess, + BOOL bInheritHandle, + LPCWSTR lpName + ); + + + + + + +__declspec(dllimport) + +HANDLE +__stdcall +CreateEventA( + LPSECURITY_ATTRIBUTES lpEventAttributes, + BOOL bManualReset, + BOOL bInitialState, + LPCSTR lpName + ); + +__declspec(dllimport) + +HANDLE +__stdcall +CreateEventW( + LPSECURITY_ATTRIBUTES lpEventAttributes, + BOOL bManualReset, + BOOL bInitialState, + LPCWSTR lpName + ); + + + + + + + +__declspec(dllimport) + +HANDLE +__stdcall +OpenEventA( + DWORD dwDesiredAccess, + BOOL bInheritHandle, + LPCSTR lpName + ); + +__declspec(dllimport) + +HANDLE +__stdcall +OpenEventW( + DWORD dwDesiredAccess, + BOOL bInheritHandle, + LPCWSTR lpName + ); + + + + + + + +__declspec(dllimport) + +HANDLE +__stdcall +OpenSemaphoreW( + DWORD dwDesiredAccess, + BOOL bInheritHandle, + LPCWSTR lpName + ); +# 604 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +typedef +void +(__stdcall *PTIMERAPCROUTINE)( + LPVOID lpArgToCompletionRoutine, + DWORD dwTimerLowValue, + DWORD dwTimerHighValue + ); + +__declspec(dllimport) + +HANDLE +__stdcall +OpenWaitableTimerW( + DWORD dwDesiredAccess, + BOOL bInheritHandle, + LPCWSTR lpTimerName + ); +# 630 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +BOOL +__stdcall +SetWaitableTimerEx( + HANDLE hTimer, + const LARGE_INTEGER * lpDueTime, + LONG lPeriod, + PTIMERAPCROUTINE pfnCompletionRoutine, + LPVOID lpArgToCompletionRoutine, + PREASON_CONTEXT WakeContext, + ULONG TolerableDelay + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +SetWaitableTimer( + HANDLE hTimer, + const LARGE_INTEGER * lpDueTime, + LONG lPeriod, + PTIMERAPCROUTINE pfnCompletionRoutine, + LPVOID lpArgToCompletionRoutine, + BOOL fResume + ); + + +__declspec(dllimport) +BOOL +__stdcall +CancelWaitableTimer( + HANDLE hTimer + ); +# 678 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +__declspec(dllimport) + +HANDLE +__stdcall +CreateMutexExA( + LPSECURITY_ATTRIBUTES lpMutexAttributes, + LPCSTR lpName, + DWORD dwFlags, + DWORD dwDesiredAccess + ); + +__declspec(dllimport) + +HANDLE +__stdcall +CreateMutexExW( + LPSECURITY_ATTRIBUTES lpMutexAttributes, + LPCWSTR lpName, + DWORD dwFlags, + DWORD dwDesiredAccess + ); +# 709 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +__declspec(dllimport) + +HANDLE +__stdcall +CreateEventExA( + LPSECURITY_ATTRIBUTES lpEventAttributes, + LPCSTR lpName, + DWORD dwFlags, + DWORD dwDesiredAccess + ); + +__declspec(dllimport) + +HANDLE +__stdcall +CreateEventExW( + LPSECURITY_ATTRIBUTES lpEventAttributes, + LPCWSTR lpName, + DWORD dwFlags, + DWORD dwDesiredAccess + ); + + + + + + + +__declspec(dllimport) + +HANDLE +__stdcall +CreateSemaphoreExW( + LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, + LONG lInitialCount, + LONG lMaximumCount, + LPCWSTR lpName, + DWORD dwFlags, + DWORD dwDesiredAccess + ); +# 764 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +__declspec(dllimport) + +HANDLE +__stdcall +CreateWaitableTimerExW( + LPSECURITY_ATTRIBUTES lpTimerAttributes, + LPCWSTR lpTimerName, + DWORD dwFlags, + DWORD dwDesiredAccess + ); +# 798 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +typedef RTL_BARRIER SYNCHRONIZATION_BARRIER; +typedef PRTL_BARRIER PSYNCHRONIZATION_BARRIER; +typedef PRTL_BARRIER LPSYNCHRONIZATION_BARRIER; + + + + + +BOOL +__stdcall +EnterSynchronizationBarrier( + LPSYNCHRONIZATION_BARRIER lpBarrier, + DWORD dwFlags + ); + + +BOOL +__stdcall +InitializeSynchronizationBarrier( + LPSYNCHRONIZATION_BARRIER lpBarrier, + LONG lTotalThreads, + LONG lSpinCount + ); + + +BOOL +__stdcall +DeleteSynchronizationBarrier( + LPSYNCHRONIZATION_BARRIER lpBarrier + ); +# 837 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +__declspec(dllimport) +void +__stdcall +Sleep( + DWORD dwMilliseconds + ); + + +BOOL +__stdcall +WaitOnAddress( + volatile void * Address, + PVOID CompareAddress, + SIZE_T AddressSize, + DWORD dwMilliseconds + ); + + +void +__stdcall +WakeByAddressSingle( + PVOID Address + ); + + +void +__stdcall +WakeByAddressAll( + PVOID Address + ); +# 878 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +__declspec(dllimport) +DWORD +__stdcall +SignalObjectAndWait( + HANDLE hObjectToSignal, + HANDLE hObjectToWaitOn, + DWORD dwMilliseconds, + BOOL bAlertable + ); +# 905 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +__declspec(dllimport) +DWORD +__stdcall +WaitForMultipleObjects( + DWORD nCount, + const HANDLE * lpHandles, + BOOL bWaitAll, + DWORD dwMilliseconds + ); + + +__declspec(dllimport) +HANDLE +__stdcall +CreateSemaphoreW( + LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, + LONG lInitialCount, + LONG lMaximumCount, + LPCWSTR lpName + ); +# 938 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +__declspec(dllimport) + +HANDLE +__stdcall +CreateWaitableTimerW( + LPSECURITY_ATTRIBUTES lpTimerAttributes, + BOOL bManualReset, + LPCWSTR lpTimerName + ); +# 963 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\synchapi.h" +} +# 50 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\interlockedapi.h" 1 +# 41 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\interlockedapi.h" +extern "C" { +# 57 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\interlockedapi.h" +__declspec(dllimport) +void +__stdcall +InitializeSListHead( + PSLIST_HEADER ListHead + ); + + +__declspec(dllimport) +PSLIST_ENTRY +__stdcall +InterlockedPopEntrySList( + PSLIST_HEADER ListHead + ); + + +__declspec(dllimport) +PSLIST_ENTRY +__stdcall +InterlockedPushEntrySList( + PSLIST_HEADER ListHead, + PSLIST_ENTRY ListEntry + ); + + + + + + + +__declspec(dllimport) +PSLIST_ENTRY +__stdcall +InterlockedPushListSListEx( + PSLIST_HEADER ListHead, + PSLIST_ENTRY List, + PSLIST_ENTRY ListEnd, + ULONG Count + ); + + + + +__declspec(dllimport) +PSLIST_ENTRY +__stdcall +InterlockedFlushSList( + PSLIST_HEADER ListHead + ); + + +__declspec(dllimport) +USHORT +__stdcall +QueryDepthSList( + PSLIST_HEADER ListHead + ); +# 129 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\interlockedapi.h" +} +# 51 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" 1 +# 48 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +extern "C" { +# 63 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +typedef struct _PROCESS_INFORMATION { + HANDLE hProcess; + HANDLE hThread; + DWORD dwProcessId; + DWORD dwThreadId; +} PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION; + +typedef struct _STARTUPINFOA { + DWORD cb; + LPSTR lpReserved; + LPSTR lpDesktop; + LPSTR lpTitle; + DWORD dwX; + DWORD dwY; + DWORD dwXSize; + DWORD dwYSize; + DWORD dwXCountChars; + DWORD dwYCountChars; + DWORD dwFillAttribute; + DWORD dwFlags; + WORD wShowWindow; + WORD cbReserved2; + LPBYTE lpReserved2; + HANDLE hStdInput; + HANDLE hStdOutput; + HANDLE hStdError; +} STARTUPINFOA, *LPSTARTUPINFOA; +typedef struct _STARTUPINFOW { + DWORD cb; + LPWSTR lpReserved; + LPWSTR lpDesktop; + LPWSTR lpTitle; + DWORD dwX; + DWORD dwY; + DWORD dwXSize; + DWORD dwYSize; + DWORD dwXCountChars; + DWORD dwYCountChars; + DWORD dwFillAttribute; + DWORD dwFlags; + WORD wShowWindow; + WORD cbReserved2; + LPBYTE lpReserved2; + HANDLE hStdInput; + HANDLE hStdOutput; + HANDLE hStdError; +} STARTUPINFOW, *LPSTARTUPINFOW; + +typedef STARTUPINFOW STARTUPINFO; +typedef LPSTARTUPINFOW LPSTARTUPINFO; +# 132 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +DWORD +__stdcall +QueueUserAPC( + PAPCFUNC pfnAPC, + HANDLE hThread, + ULONG_PTR dwData + ); +# 151 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetProcessTimes( + HANDLE hProcess, + LPFILETIME lpCreationTime, + LPFILETIME lpExitTime, + LPFILETIME lpKernelTime, + LPFILETIME lpUserTime + ); +# 170 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +HANDLE +__stdcall +GetCurrentProcess( + void + ); + + +__declspec(dllimport) +DWORD +__stdcall +GetCurrentProcessId( + void + ); +# 193 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +__declspec(noreturn) +void +__stdcall +ExitProcess( + UINT uExitCode + ); +# 209 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +BOOL +__stdcall +TerminateProcess( + HANDLE hProcess, + UINT uExitCode + ); +# 225 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetExitCodeProcess( + HANDLE hProcess, + LPDWORD lpExitCode + ); +# 241 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +BOOL +__stdcall +SwitchToThread( + void + ); + + +__declspec(dllimport) + +HANDLE +__stdcall +CreateThread( + LPSECURITY_ATTRIBUTES lpThreadAttributes, + SIZE_T dwStackSize, + LPTHREAD_START_ROUTINE lpStartAddress, + LPVOID lpParameter, + DWORD dwCreationFlags, + LPDWORD lpThreadId + ); + + + + + + + +__declspec(dllimport) + +HANDLE +__stdcall +CreateRemoteThread( + HANDLE hProcess, + LPSECURITY_ATTRIBUTES lpThreadAttributes, + SIZE_T dwStackSize, + LPTHREAD_START_ROUTINE lpStartAddress, + LPVOID lpParameter, + DWORD dwCreationFlags, + LPDWORD lpThreadId + ); +# 290 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +HANDLE +__stdcall +GetCurrentThread( + void + ); + + +__declspec(dllimport) +DWORD +__stdcall +GetCurrentThreadId( + void + ); +# 313 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) + +HANDLE +__stdcall +OpenThread( + DWORD dwDesiredAccess, + BOOL bInheritHandle, + DWORD dwThreadId + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetThreadPriority( + HANDLE hThread, + int nPriority + ); +# 344 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +BOOL +__stdcall +SetThreadPriorityBoost( + HANDLE hThread, + BOOL bDisablePriorityBoost + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetThreadPriorityBoost( + HANDLE hThread, + PBOOL pDisablePriorityBoost + ); + + + + + + + +__declspec(dllimport) +int +__stdcall +GetThreadPriority( + HANDLE hThread + ); + + +__declspec(dllimport) +__declspec(noreturn) +void +__stdcall +ExitThread( + DWORD dwExitCode + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +TerminateThread( + HANDLE hThread, + DWORD dwExitCode + ); +# 404 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) + +BOOL +__stdcall +GetExitCodeThread( + HANDLE hThread, + LPDWORD lpExitCode + ); + + +__declspec(dllimport) +DWORD +__stdcall +SuspendThread( + HANDLE hThread + ); + + +__declspec(dllimport) +DWORD +__stdcall +ResumeThread( + HANDLE hThread + ); + + + + + + + +__declspec(dllimport) +DWORD +__stdcall +TlsAlloc( + void + ); + + +__declspec(dllimport) +LPVOID +__stdcall +TlsGetValue( + DWORD dwTlsIndex + ); + + +__declspec(dllimport) +BOOL +__stdcall +TlsSetValue( + DWORD dwTlsIndex, + LPVOID lpTlsValue + ); + + +__declspec(dllimport) +BOOL +__stdcall +TlsFree( + DWORD dwTlsIndex + ); +# 477 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +BOOL +__stdcall +CreateProcessA( + LPCSTR lpApplicationName, + LPSTR lpCommandLine, + LPSECURITY_ATTRIBUTES lpProcessAttributes, + LPSECURITY_ATTRIBUTES lpThreadAttributes, + BOOL bInheritHandles, + DWORD dwCreationFlags, + LPVOID lpEnvironment, + LPCSTR lpCurrentDirectory, + LPSTARTUPINFOA lpStartupInfo, + LPPROCESS_INFORMATION lpProcessInformation + ); + +__declspec(dllimport) +BOOL +__stdcall +CreateProcessW( + LPCWSTR lpApplicationName, + LPWSTR lpCommandLine, + LPSECURITY_ATTRIBUTES lpProcessAttributes, + LPSECURITY_ATTRIBUTES lpThreadAttributes, + BOOL bInheritHandles, + DWORD dwCreationFlags, + LPVOID lpEnvironment, + LPCWSTR lpCurrentDirectory, + LPSTARTUPINFOW lpStartupInfo, + LPPROCESS_INFORMATION lpProcessInformation + ); +# 517 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +BOOL +__stdcall +SetProcessShutdownParameters( + DWORD dwLevel, + DWORD dwFlags + ); + + +__declspec(dllimport) +DWORD +__stdcall +GetProcessVersion( + DWORD ProcessId + ); + + +__declspec(dllimport) +void +__stdcall +GetStartupInfoW( + LPSTARTUPINFOW lpStartupInfo + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +CreateProcessAsUserW( + HANDLE hToken, + LPCWSTR lpApplicationName, + LPWSTR lpCommandLine, + LPSECURITY_ATTRIBUTES lpProcessAttributes, + LPSECURITY_ATTRIBUTES lpThreadAttributes, + BOOL bInheritHandles, + DWORD dwCreationFlags, + LPVOID lpEnvironment, + LPCWSTR lpCurrentDirectory, + LPSTARTUPINFOW lpStartupInfo, + LPPROCESS_INFORMATION lpProcessInformation + ); +# 583 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__forceinline +HANDLE +GetCurrentProcessToken ( + void + ) +{ + return (HANDLE)(LONG_PTR) -4; +} + +__forceinline +HANDLE +GetCurrentThreadToken ( + void + ) +{ + return (HANDLE)(LONG_PTR) -5; +} + +__forceinline +HANDLE +GetCurrentThreadEffectiveToken ( + void + ) +{ + return (HANDLE)(LONG_PTR) -6; +} + + + + +__declspec(dllimport) + +BOOL +__stdcall +SetThreadToken( + PHANDLE Thread, + HANDLE Token + ); + + +__declspec(dllimport) +BOOL +__stdcall +OpenProcessToken( + HANDLE ProcessHandle, + DWORD DesiredAccess, + PHANDLE TokenHandle + ); + + +__declspec(dllimport) +BOOL +__stdcall +OpenThreadToken( + HANDLE ThreadHandle, + DWORD DesiredAccess, + BOOL OpenAsSelf, + PHANDLE TokenHandle + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetPriorityClass( + HANDLE hProcess, + DWORD dwPriorityClass + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetThreadStackGuarantee( + PULONG StackSizeInBytes + ); + + +__declspec(dllimport) +DWORD +__stdcall +GetPriorityClass( + HANDLE hProcess + ); + + +__declspec(dllimport) +BOOL +__stdcall +ProcessIdToSessionId( + DWORD dwProcessId, + DWORD * pSessionId + ); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +GetProcessId( + HANDLE Process + ); + + + + +typedef struct _PROC_THREAD_ATTRIBUTE_LIST *PPROC_THREAD_ATTRIBUTE_LIST, *LPPROC_THREAD_ATTRIBUTE_LIST; +# 704 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +DWORD +__stdcall +GetThreadId( + HANDLE Thread + ); + + + + + + + +__declspec(dllimport) +void +__stdcall +FlushProcessWriteBuffers( + void + ); +# 737 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +DWORD +__stdcall +GetProcessIdOfThread( + HANDLE Thread + ); + + +__declspec(dllimport) + +BOOL +__stdcall +InitializeProcThreadAttributeList( + LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList, + DWORD dwAttributeCount, + DWORD dwFlags, + PSIZE_T lpSize + ); + + +__declspec(dllimport) +void +__stdcall +DeleteProcThreadAttributeList( + LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +SetProcessAffinityUpdateMode( + HANDLE hProcess, + DWORD dwFlags + ); + + +__declspec(dllimport) +BOOL +__stdcall +QueryProcessAffinityUpdateMode( + HANDLE hProcess, + LPDWORD lpdwFlags + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +UpdateProcThreadAttribute( + LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList, + DWORD dwFlags, + DWORD_PTR Attribute, + PVOID lpValue, + SIZE_T cbSize, + PVOID lpPreviousValue, + PSIZE_T lpReturnSize + ); +# 810 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) + +HANDLE +__stdcall +CreateRemoteThreadEx( + HANDLE hProcess, + LPSECURITY_ATTRIBUTES lpThreadAttributes, + SIZE_T dwStackSize, + LPTHREAD_START_ROUTINE lpStartAddress, + LPVOID lpParameter, + DWORD dwCreationFlags, + LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList, + LPDWORD lpThreadId + ); +# 844 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +void +__stdcall +GetCurrentThreadStackLimits( + PULONG_PTR LowLimit, + PULONG_PTR HighLimit + ); +# 862 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetThreadContext( + HANDLE hThread, + LPCONTEXT lpContext + ); +# 878 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +BOOL +__stdcall +SetThreadContext( + HANDLE hThread, + const CONTEXT * lpContext + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetProcessMitigationPolicy( + PROCESS_MITIGATION_POLICY MitigationPolicy, + PVOID lpBuffer, + SIZE_T dwLength + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetProcessMitigationPolicy( + HANDLE hProcess, + PROCESS_MITIGATION_POLICY MitigationPolicy, + PVOID lpBuffer, + SIZE_T dwLength + ); +# 926 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +BOOL +__stdcall +FlushInstructionCache( + HANDLE hProcess, + LPCVOID lpBaseAddress, + SIZE_T dwSize + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetThreadTimes( + HANDLE hThread, + LPFILETIME lpCreationTime, + LPFILETIME lpExitTime, + LPFILETIME lpKernelTime, + LPFILETIME lpUserTime + ); +# 955 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +HANDLE +__stdcall +OpenProcess( + DWORD dwDesiredAccess, + BOOL bInheritHandle, + DWORD dwProcessId + ); + + +BOOL +__stdcall +IsProcessorFeaturePresent( + DWORD ProcessorFeature + ); +# 984 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetProcessHandleCount( + HANDLE hProcess, + PDWORD pdwHandleCount + ); +# 1005 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +DWORD +__stdcall +GetCurrentProcessorNumber( + void + ); +# 1025 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +BOOL +__stdcall +SetThreadIdealProcessorEx( + HANDLE hThread, + PPROCESSOR_NUMBER lpIdealProcessor, + PPROCESSOR_NUMBER lpPreviousIdealProcessor + ); +# 1042 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetThreadIdealProcessorEx( + HANDLE hThread, + PPROCESSOR_NUMBER lpIdealProcessor + ); + + +__declspec(dllimport) +void +__stdcall +GetCurrentProcessorNumberEx( + PPROCESSOR_NUMBER ProcNumber + ); +# 1077 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetProcessPriorityBoost( + HANDLE hProcess, + PBOOL pDisablePriorityBoost + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetProcessPriorityBoost( + HANDLE hProcess, + BOOL bDisablePriorityBoost + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetThreadIOPendingFlag( + HANDLE hThread, + PBOOL lpIOIsPending + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetSystemTimes( + PFILETIME lpIdleTime, + PFILETIME lpKernelTime, + PFILETIME lpUserTime + ); +# 1120 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +typedef enum _THREAD_INFORMATION_CLASS { + ThreadMemoryPriority, + ThreadAbsoluteCpuPriority, + ThreadDynamicCodePolicy, + ThreadInformationClassMax +} THREAD_INFORMATION_CLASS; + + + + +typedef struct _MEMORY_PRIORITY_INFORMATION { + ULONG MemoryPriority; +} MEMORY_PRIORITY_INFORMATION, *PMEMORY_PRIORITY_INFORMATION; + +__declspec(dllimport) +BOOL +__stdcall +GetThreadInformation( + HANDLE hThread, + THREAD_INFORMATION_CLASS ThreadInformationClass, + LPVOID ThreadInformation, + DWORD ThreadInformationSize + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetThreadInformation( + HANDLE hThread, + THREAD_INFORMATION_CLASS ThreadInformationClass, + LPVOID ThreadInformation, + DWORD ThreadInformationSize + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +IsProcessCritical( + HANDLE hProcess, + PBOOL Critical + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetProtectedPolicy( + LPCGUID PolicyGuid, + ULONG_PTR PolicyValue, + PULONG_PTR OldPolicyValue + ); + + +__declspec(dllimport) +BOOL +__stdcall +QueryProtectedPolicy( + LPCGUID PolicyGuid, + PULONG_PTR PolicyValue + ); +# 1211 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +DWORD +__stdcall +SetThreadIdealProcessor( + HANDLE hThread, + DWORD dwIdealProcessor + ); +# 1227 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +typedef enum _PROCESS_INFORMATION_CLASS { + ProcessMemoryPriority, + ProcessMemoryExhaustionInfo, + ProcessAppMemoryInfo, + ProcessInPrivateInfo, + ProcessInformationClassMax +} PROCESS_INFORMATION_CLASS; + +typedef struct _APP_MEMORY_INFORMATION { + ULONG64 AvailableCommit; + ULONG64 PrivateCommitUsage; + ULONG64 PeakPrivateCommitUsage; + ULONG64 TotalCommitUsage; +} APP_MEMORY_INFORMATION, *PAPP_MEMORY_INFORMATION; +# 1249 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +typedef enum _PROCESS_MEMORY_EXHAUSTION_TYPE { + PMETypeFailFastOnCommitFailure, + PMETypeMax +} PROCESS_MEMORY_EXHAUSTION_TYPE, *PPROCESS_MEMORY_EXHAUSTION_TYPE; + + + + +typedef struct _PROCESS_MEMORY_EXHAUSTION_INFO { + USHORT Version; + USHORT Reserved; + PROCESS_MEMORY_EXHAUSTION_TYPE Type; + ULONG_PTR Value; +} PROCESS_MEMORY_EXHAUSTION_INFO, *PPROCESS_MEMORY_EXHAUSTION_INFO; + + + + +__declspec(dllimport) +BOOL +__stdcall +SetProcessInformation( + HANDLE hProcess, + PROCESS_INFORMATION_CLASS ProcessInformationClass, + LPVOID ProcessInformation, + DWORD ProcessInformationSize + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetProcessInformation( + HANDLE hProcess, + PROCESS_INFORMATION_CLASS ProcessInformationClass, + LPVOID ProcessInformation, + DWORD ProcessInformationSize + ); +# 1295 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +BOOL +__stdcall +GetSystemCpuSetInformation( + PSYSTEM_CPU_SET_INFORMATION Information, + ULONG BufferLength, + PULONG ReturnedLength, + HANDLE Process, + ULONG Flags + ); + + + +BOOL +__stdcall +GetProcessDefaultCpuSets( + HANDLE Process, + PULONG CpuSetIds, + ULONG CpuSetIdCount, + PULONG RequiredIdCount + ); + + + +BOOL +__stdcall +SetProcessDefaultCpuSets( + HANDLE Process, + const ULONG * CpuSetIds, + ULONG CpuSetIdCount + ); + + + +BOOL +__stdcall +GetThreadSelectedCpuSets( + HANDLE Thread, + PULONG CpuSetIds, + ULONG CpuSetIdCount, + PULONG RequiredIdCount + ); + + + +BOOL +__stdcall +SetThreadSelectedCpuSets( + HANDLE Thread, + const ULONG * CpuSetIds, + ULONG CpuSetIdCount + ); +# 1357 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +__declspec(dllimport) +BOOL +__stdcall +CreateProcessAsUserA( + HANDLE hToken, + LPCSTR lpApplicationName, + LPSTR lpCommandLine, + LPSECURITY_ATTRIBUTES lpProcessAttributes, + LPSECURITY_ATTRIBUTES lpThreadAttributes, + BOOL bInheritHandles, + DWORD dwCreationFlags, + LPVOID lpEnvironment, + LPCSTR lpCurrentDirectory, + LPSTARTUPINFOA lpStartupInfo, + LPPROCESS_INFORMATION lpProcessInformation + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetProcessShutdownParameters( + LPDWORD lpdwLevel, + LPDWORD lpdwFlags + ); + + +__declspec(dllimport) +HRESULT +__stdcall +SetThreadDescription( + HANDLE hThread, + PCWSTR lpThreadDescription + ); + + +__declspec(dllimport) +HRESULT +__stdcall +GetThreadDescription( + HANDLE hThread, + PWSTR * ppszThreadDescription + ); +# 1419 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processthreadsapi.h" +} +# 52 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" 1 +# 30 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +#pragma warning(disable: 4514) + +#pragma warning(disable: 4103) + + + +#pragma warning(push) + +#pragma warning(disable: 4001) +#pragma warning(disable: 4201) +#pragma warning(disable: 4214) +# 74 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +extern "C" { +# 89 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +typedef struct _SYSTEM_INFO { + union { + DWORD dwOemId; + struct { + WORD wProcessorArchitecture; + WORD wReserved; + } ; + } ; + DWORD dwPageSize; + LPVOID lpMinimumApplicationAddress; + LPVOID lpMaximumApplicationAddress; + DWORD_PTR dwActiveProcessorMask; + DWORD dwNumberOfProcessors; + DWORD dwProcessorType; + DWORD dwAllocationGranularity; + WORD wProcessorLevel; + WORD wProcessorRevision; +} SYSTEM_INFO, *LPSYSTEM_INFO; +# 119 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +typedef struct _MEMORYSTATUSEX { + DWORD dwLength; + DWORD dwMemoryLoad; + DWORDLONG ullTotalPhys; + DWORDLONG ullAvailPhys; + DWORDLONG ullTotalPageFile; + DWORDLONG ullAvailPageFile; + DWORDLONG ullTotalVirtual; + DWORDLONG ullAvailVirtual; + DWORDLONG ullAvailExtendedVirtual; +} MEMORYSTATUSEX, *LPMEMORYSTATUSEX; + +__declspec(dllimport) +BOOL +__stdcall +GlobalMemoryStatusEx( + LPMEMORYSTATUSEX lpBuffer + ); + + +__declspec(dllimport) +void +__stdcall +GetSystemInfo( + LPSYSTEM_INFO lpSystemInfo + ); + + +__declspec(dllimport) +void +__stdcall +GetSystemTime( + LPSYSTEMTIME lpSystemTime + ); + + +__declspec(dllimport) +void +__stdcall +GetSystemTimeAsFileTime( + LPFILETIME lpSystemTimeAsFileTime + ); + + +__declspec(dllimport) +void +__stdcall +GetLocalTime( + LPSYSTEMTIME lpSystemTime + ); +# 178 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +__declspec(deprecated) +__declspec(dllimport) + +DWORD +__stdcall +GetVersion( + void + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetLocalTime( + const SYSTEMTIME * lpSystemTime + ); +# 207 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +__declspec(dllimport) +DWORD +__stdcall +GetTickCount( + void + ); +# 225 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +__declspec(dllimport) +ULONGLONG +__stdcall +GetTickCount64( + void + ); +# 242 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +__declspec(dllimport) + +BOOL +__stdcall +GetSystemTimeAdjustment( + PDWORD lpTimeAdjustment, + PDWORD lpTimeIncrement, + PBOOL lpTimeAdjustmentDisabled + ); + + +__declspec(dllimport) + +UINT +__stdcall +GetSystemDirectoryA( + LPSTR lpBuffer, + UINT uSize + ); + +__declspec(dllimport) + +UINT +__stdcall +GetSystemDirectoryW( + LPWSTR lpBuffer, + UINT uSize + ); + + + + + + + +__declspec(dllimport) + + +UINT +__stdcall +GetWindowsDirectoryA( + LPSTR lpBuffer, + UINT uSize + ); + +__declspec(dllimport) + + +UINT +__stdcall +GetWindowsDirectoryW( + LPWSTR lpBuffer, + UINT uSize + ); + + + + + + + +__declspec(dllimport) + +UINT +__stdcall +GetSystemWindowsDirectoryA( + LPSTR lpBuffer, + UINT uSize + ); + +__declspec(dllimport) + +UINT +__stdcall +GetSystemWindowsDirectoryW( + LPWSTR lpBuffer, + UINT uSize + ); +# 340 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +typedef enum _COMPUTER_NAME_FORMAT { + ComputerNameNetBIOS, + ComputerNameDnsHostname, + ComputerNameDnsDomain, + ComputerNameDnsFullyQualified, + ComputerNamePhysicalNetBIOS, + ComputerNamePhysicalDnsHostname, + ComputerNamePhysicalDnsDomain, + ComputerNamePhysicalDnsFullyQualified, + ComputerNameMax +} COMPUTER_NAME_FORMAT ; +# 365 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +__declspec(dllimport) + +BOOL +__stdcall +GetComputerNameExA( + COMPUTER_NAME_FORMAT NameType, + LPSTR lpBuffer, + LPDWORD nSize + ); + +__declspec(dllimport) + +BOOL +__stdcall +GetComputerNameExW( + COMPUTER_NAME_FORMAT NameType, + LPWSTR lpBuffer, + LPDWORD nSize + ); +# 404 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +__declspec(dllimport) +BOOL +__stdcall +SetComputerNameExW( + COMPUTER_NAME_FORMAT NameType, + LPCWSTR lpBuffer + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetSystemTime( + const SYSTEMTIME * lpSystemTime + ); +# 437 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +__declspec(deprecated) +__declspec(dllimport) + +BOOL +__stdcall +GetVersionExA( + LPOSVERSIONINFOA lpVersionInformation + ); + +__declspec(deprecated) +__declspec(dllimport) + +BOOL +__stdcall +GetVersionExW( + LPOSVERSIONINFOW lpVersionInformation + ); +# 468 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetLogicalProcessorInformation( + PSYSTEM_LOGICAL_PROCESSOR_INFORMATION Buffer, + PDWORD ReturnedLength + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetLogicalProcessorInformationEx( + LOGICAL_PROCESSOR_RELATIONSHIP RelationshipType, + PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Buffer, + PDWORD ReturnedLength + ); +# 508 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +__declspec(dllimport) +void +__stdcall +GetNativeSystemInfo( + LPSYSTEM_INFO lpSystemInfo + ); + + + + + + + +__declspec(dllimport) +void +__stdcall +GetSystemTimePreciseAsFileTime( + LPFILETIME lpSystemTimeAsFileTime + ); +# 541 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetProductInfo( + DWORD dwOSMajorVersion, + DWORD dwOSMinorVersion, + DWORD dwSpMajorVersion, + DWORD dwSpMinorVersion, + PDWORD pdwReturnedProductType + ); + + + + + + + +__declspec(dllimport) +ULONGLONG +__stdcall +VerSetConditionMask( + ULONGLONG ConditionMask, + ULONG TypeMask, + UCHAR Condition + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetOsSafeBootMode( + PDWORD Flags + ); + + + + +__declspec(dllimport) +UINT +__stdcall +EnumSystemFirmwareTables( + DWORD FirmwareTableProviderSignature, + PVOID pFirmwareTableEnumBuffer, + DWORD BufferSize + ); + + +__declspec(dllimport) +UINT +__stdcall +GetSystemFirmwareTable( + DWORD FirmwareTableProviderSignature, + DWORD FirmwareTableID, + PVOID pFirmwareTableBuffer, + DWORD BufferSize + ); +# 619 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +__declspec(dllimport) + +BOOL +__stdcall +DnsHostnameToComputerNameExW( + LPCWSTR Hostname, + LPWSTR ComputerName, + LPDWORD nSize + ); + + +__declspec(dllimport) + +BOOL +__stdcall +GetPhysicallyInstalledSystemMemory( + PULONGLONG TotalMemoryInKilobytes + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +SetComputerNameEx2W( + COMPUTER_NAME_FORMAT NameType, + DWORD Flags, + LPCWSTR lpBuffer + ); + + + + + + +__declspec(dllimport) + +BOOL +__stdcall +SetSystemTimeAdjustment( + DWORD dwTimeAdjustment, + BOOL bTimeAdjustmentDisabled + ); + + +__declspec(dllimport) +BOOL +__stdcall +InstallELAMCertificateInfo( + HANDLE ELAMFile + ); +# 687 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetProcessorSystemCycleTime( + USHORT Group, + PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION Buffer, + PDWORD ReturnedLength + ); +# 714 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetOsManufacturingMode( + PBOOL pbEnabled + ); +# 734 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +__declspec(dllimport) +HRESULT +__stdcall +GetIntegratedDisplaySize( + double * sizeInInches + ); +# 751 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +__declspec(dllimport) +BOOL +__stdcall +SetComputerNameA( + LPCSTR lpComputerName + ); + +__declspec(dllimport) +BOOL +__stdcall +SetComputerNameW( + LPCWSTR lpComputerName + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetComputerNameExA( + COMPUTER_NAME_FORMAT NameType, + LPCSTR lpBuffer + ); +# 797 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\sysinfoapi.h" +} + + + + + + +#pragma warning(pop) +# 53 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" 1 +# 52 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +extern "C" { + + + + +#pragma warning(push) +#pragma warning(disable: 4668) +# 92 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +__declspec(dllimport) + +LPVOID +__stdcall +VirtualAlloc( + LPVOID lpAddress, + SIZE_T dwSize, + DWORD flAllocationType, + DWORD flProtect + ); + + +__declspec(dllimport) + +BOOL +__stdcall +VirtualProtect( + LPVOID lpAddress, + SIZE_T dwSize, + DWORD flNewProtect, + PDWORD lpflOldProtect + ); +# 132 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +__declspec(dllimport) +BOOL +__stdcall +VirtualFree( + LPVOID lpAddress, + SIZE_T dwSize, + DWORD dwFreeType + ); + + +__declspec(dllimport) +SIZE_T +__stdcall +VirtualQuery( + LPCVOID lpAddress, + PMEMORY_BASIC_INFORMATION lpBuffer, + SIZE_T dwLength + ); +# 159 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +__declspec(dllimport) + +LPVOID +__stdcall +VirtualAllocEx( + HANDLE hProcess, + LPVOID lpAddress, + SIZE_T dwSize, + DWORD flAllocationType, + DWORD flProtect + ); +# 184 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +__declspec(dllimport) +BOOL +__stdcall +VirtualFreeEx( + HANDLE hProcess, + LPVOID lpAddress, + SIZE_T dwSize, + DWORD dwFreeType + ); + + +__declspec(dllimport) + +BOOL +__stdcall +VirtualProtectEx( + HANDLE hProcess, + LPVOID lpAddress, + SIZE_T dwSize, + DWORD flNewProtect, + PDWORD lpflOldProtect + ); + + +__declspec(dllimport) +SIZE_T +__stdcall +VirtualQueryEx( + HANDLE hProcess, + LPCVOID lpAddress, + PMEMORY_BASIC_INFORMATION lpBuffer, + SIZE_T dwLength + ); + + +__declspec(dllimport) + +BOOL +__stdcall +ReadProcessMemory( + HANDLE hProcess, + LPCVOID lpBaseAddress, + LPVOID lpBuffer, + SIZE_T nSize, + SIZE_T * lpNumberOfBytesRead + ); + + +__declspec(dllimport) + +BOOL +__stdcall +WriteProcessMemory( + HANDLE hProcess, + LPVOID lpBaseAddress, + LPCVOID lpBuffer, + SIZE_T nSize, + SIZE_T * lpNumberOfBytesWritten + ); + + +__declspec(dllimport) + +HANDLE +__stdcall +CreateFileMappingW( + HANDLE hFile, + LPSECURITY_ATTRIBUTES lpFileMappingAttributes, + DWORD flProtect, + DWORD dwMaximumSizeHigh, + DWORD dwMaximumSizeLow, + LPCWSTR lpName + ); + + + + + + +__declspec(dllimport) + +HANDLE +__stdcall +OpenFileMappingW( + DWORD dwDesiredAccess, + BOOL bInheritHandle, + LPCWSTR lpName + ); + + + + + + +__declspec(dllimport) + +LPVOID +__stdcall +MapViewOfFile( + HANDLE hFileMappingObject, + DWORD dwDesiredAccess, + DWORD dwFileOffsetHigh, + DWORD dwFileOffsetLow, + SIZE_T dwNumberOfBytesToMap + ); + + +__declspec(dllimport) + +LPVOID +__stdcall +MapViewOfFileEx( + HANDLE hFileMappingObject, + DWORD dwDesiredAccess, + DWORD dwFileOffsetHigh, + DWORD dwFileOffsetLow, + SIZE_T dwNumberOfBytesToMap, + LPVOID lpBaseAddress + ); +# 312 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +__declspec(dllimport) +BOOL +__stdcall +FlushViewOfFile( + LPCVOID lpBaseAddress, + SIZE_T dwNumberOfBytesToFlush + ); + + +__declspec(dllimport) +BOOL +__stdcall +UnmapViewOfFile( + LPCVOID lpBaseAddress + ); +# 342 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +__declspec(dllimport) +SIZE_T +__stdcall +GetLargePageMinimum( + void + ); + + +__declspec(dllimport) + +BOOL +__stdcall +GetProcessWorkingSetSizeEx( + HANDLE hProcess, + PSIZE_T lpMinimumWorkingSetSize, + PSIZE_T lpMaximumWorkingSetSize, + PDWORD Flags + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetProcessWorkingSetSizeEx( + HANDLE hProcess, + SIZE_T dwMinimumWorkingSetSize, + SIZE_T dwMaximumWorkingSetSize, + DWORD Flags + ); + + +__declspec(dllimport) +BOOL +__stdcall +VirtualLock( + LPVOID lpAddress, + SIZE_T dwSize + ); + + +__declspec(dllimport) +BOOL +__stdcall +VirtualUnlock( + LPVOID lpAddress, + SIZE_T dwSize + ); +# 398 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +__declspec(dllimport) + +UINT +__stdcall +GetWriteWatch( + DWORD dwFlags, + PVOID lpBaseAddress, + SIZE_T dwRegionSize, + PVOID * lpAddresses, + ULONG_PTR * lpdwCount, + LPDWORD lpdwGranularity + ); + + +__declspec(dllimport) +UINT +__stdcall +ResetWriteWatch( + LPVOID lpBaseAddress, + SIZE_T dwRegionSize + ); +# 431 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +typedef enum _MEMORY_RESOURCE_NOTIFICATION_TYPE { + LowMemoryResourceNotification, + HighMemoryResourceNotification +} MEMORY_RESOURCE_NOTIFICATION_TYPE; + +__declspec(dllimport) + +HANDLE +__stdcall +CreateMemoryResourceNotification( + MEMORY_RESOURCE_NOTIFICATION_TYPE NotificationType + ); + + +__declspec(dllimport) + +BOOL +__stdcall +QueryMemoryResourceNotification( + HANDLE ResourceNotificationHandle, + PBOOL ResourceState + ); +# 466 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +__declspec(dllimport) + +BOOL +__stdcall +GetSystemFileCacheSize( + PSIZE_T lpMinimumFileCacheSize, + PSIZE_T lpMaximumFileCacheSize, + PDWORD lpFlags + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetSystemFileCacheSize( + SIZE_T MinimumFileCacheSize, + SIZE_T MaximumFileCacheSize, + DWORD Flags + ); + + + + + + + +__declspec(dllimport) + +HANDLE +__stdcall +CreateFileMappingNumaW( + HANDLE hFile, + LPSECURITY_ATTRIBUTES lpFileMappingAttributes, + DWORD flProtect, + DWORD dwMaximumSizeHigh, + DWORD dwMaximumSizeLow, + LPCWSTR lpName, + DWORD nndPreferred + ); +# 516 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +typedef struct _WIN32_MEMORY_RANGE_ENTRY { + PVOID VirtualAddress; + SIZE_T NumberOfBytes; +} WIN32_MEMORY_RANGE_ENTRY, *PWIN32_MEMORY_RANGE_ENTRY; + +__declspec(dllimport) +BOOL +__stdcall +PrefetchVirtualMemory( + HANDLE hProcess, + ULONG_PTR NumberOfEntries, + PWIN32_MEMORY_RANGE_ENTRY VirtualAddresses, + ULONG Flags + ); +# 544 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +__declspec(dllimport) + +HANDLE +__stdcall +CreateFileMappingFromApp( + HANDLE hFile, + PSECURITY_ATTRIBUTES SecurityAttributes, + ULONG PageProtection, + ULONG64 MaximumSize, + PCWSTR Name + ); + + +__declspec(dllimport) + +PVOID +__stdcall +MapViewOfFileFromApp( + HANDLE hFileMappingObject, + ULONG DesiredAccess, + ULONG64 FileOffset, + SIZE_T NumberOfBytesToMap + ); + + +__declspec(dllimport) +BOOL +__stdcall +UnmapViewOfFileEx( + PVOID BaseAddress, + ULONG UnmapFlags + ); +# 598 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +__declspec(dllimport) + +BOOL +__stdcall +AllocateUserPhysicalPages( + HANDLE hProcess, + PULONG_PTR NumberOfPages, + PULONG_PTR PageArray + ); + + +__declspec(dllimport) + +BOOL +__stdcall +FreeUserPhysicalPages( + HANDLE hProcess, + PULONG_PTR NumberOfPages, + PULONG_PTR PageArray + ); + + +__declspec(dllimport) + +BOOL +__stdcall +MapUserPhysicalPages( + PVOID VirtualAddress, + ULONG_PTR NumberOfPages, + PULONG_PTR PageArray + ); + + + + + + + +__declspec(dllimport) + +BOOL +__stdcall +AllocateUserPhysicalPagesNuma( + HANDLE hProcess, + PULONG_PTR NumberOfPages, + PULONG_PTR PageArray, + DWORD nndPreferred + ); + + +__declspec(dllimport) + +LPVOID +__stdcall +VirtualAllocExNuma( + HANDLE hProcess, + LPVOID lpAddress, + SIZE_T dwSize, + DWORD flAllocationType, + DWORD flProtect, + DWORD nndPreferred + ); +# 669 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +__declspec(dllimport) + +BOOL +__stdcall +GetMemoryErrorHandlingCapabilities( + PULONG Capabilities + ); + + + +typedef +void +__stdcall +BAD_MEMORY_CALLBACK_ROUTINE( + void + ); + +typedef BAD_MEMORY_CALLBACK_ROUTINE *PBAD_MEMORY_CALLBACK_ROUTINE; + +__declspec(dllimport) + +PVOID +__stdcall +RegisterBadMemoryNotification( + PBAD_MEMORY_CALLBACK_ROUTINE Callback + ); + + +__declspec(dllimport) + +BOOL +__stdcall +UnregisterBadMemoryNotification( + PVOID RegistrationHandle + ); +# 733 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +typedef enum OFFER_PRIORITY { + VmOfferPriorityVeryLow = 1, + VmOfferPriorityLow, + VmOfferPriorityBelowNormal, + VmOfferPriorityNormal +} OFFER_PRIORITY; + +DWORD +__stdcall +OfferVirtualMemory( + PVOID VirtualAddress, + SIZE_T Size, + OFFER_PRIORITY Priority + ); + + +DWORD +__stdcall +ReclaimVirtualMemory( + void const * VirtualAddress, + SIZE_T Size + ); + + +DWORD +__stdcall +DiscardVirtualMemory( + PVOID VirtualAddress, + SIZE_T Size + ); +# 787 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +__declspec(dllimport) +BOOL +__stdcall +SetProcessValidCallTargets( + HANDLE hProcess, + PVOID VirtualAddress, + SIZE_T RegionSize, + ULONG NumberOfOffsets, + PCFG_CALL_TARGET_INFO OffsetInformation + ); +# 811 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +__declspec(dllimport) + +PVOID +__stdcall +VirtualAllocFromApp( + PVOID BaseAddress, + SIZE_T Size, + ULONG AllocationType, + ULONG Protection + ); + + +__declspec(dllimport) + +BOOL +__stdcall +VirtualProtectFromApp( + PVOID Address, + SIZE_T Size, + ULONG NewProtection, + PULONG OldProtection + ); + + +__declspec(dllimport) + +HANDLE +__stdcall +OpenFileMappingFromApp( + ULONG DesiredAccess, + BOOL InheritHandle, + PCWSTR Name + ); +# 1033 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\memoryapi.h" +#pragma warning(pop) + + + +} +# 54 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\enclaveapi.h" 1 +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\enclaveapi.h" +extern "C" { + + + + + + +__declspec(dllimport) + +BOOL +__stdcall +IsEnclaveTypeSupported( + DWORD flEnclaveType + ); + + +__declspec(dllimport) + +LPVOID +__stdcall +CreateEnclave( + HANDLE hProcess, + LPVOID lpAddress, + SIZE_T dwSize, + SIZE_T dwInitialCommitment, + DWORD flEnclaveType, + LPCVOID lpEnclaveInformation, + DWORD dwInfoLength, + LPDWORD lpEnclaveError + ); + + +__declspec(dllimport) + +BOOL +__stdcall +LoadEnclaveData( + HANDLE hProcess, + LPVOID lpAddress, + LPCVOID lpBuffer, + SIZE_T nSize, + DWORD flProtect, + LPCVOID lpPageInformation, + DWORD dwInfoLength, + PSIZE_T lpNumberOfBytesWritten, + LPDWORD lpEnclaveError + ); + + +__declspec(dllimport) + +BOOL +__stdcall +InitializeEnclave( + HANDLE hProcess, + LPVOID lpAddress, + LPCVOID lpEnclaveInformation, + DWORD dwInfoLength, + LPDWORD lpEnclaveError + ); + + + + + + +} +# 55 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\threadpoollegacyapiset.h" 1 +# 38 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\threadpoollegacyapiset.h" +extern "C" { +# 49 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\threadpoollegacyapiset.h" +__declspec(dllimport) +BOOL +__stdcall +QueueUserWorkItem( + LPTHREAD_START_ROUTINE Function, + PVOID Context, + ULONG Flags + ); + + +__declspec(dllimport) + +BOOL +__stdcall +UnregisterWaitEx( + HANDLE WaitHandle, + HANDLE CompletionEvent + ); + + +__declspec(dllimport) + +HANDLE +__stdcall +CreateTimerQueue( + void + ); + + +__declspec(dllimport) +BOOL +__stdcall +CreateTimerQueueTimer( + PHANDLE phNewTimer, + HANDLE TimerQueue, + WAITORTIMERCALLBACK Callback, + PVOID Parameter, + DWORD DueTime, + DWORD Period, + ULONG Flags + ); + + +__declspec(dllimport) + +BOOL +__stdcall +ChangeTimerQueueTimer( + HANDLE TimerQueue, + HANDLE Timer, + ULONG DueTime, + ULONG Period + ); + + +__declspec(dllimport) + +BOOL +__stdcall +DeleteTimerQueueTimer( + HANDLE TimerQueue, + HANDLE Timer, + HANDLE CompletionEvent + ); + + +__declspec(dllimport) + +BOOL +__stdcall +DeleteTimerQueueEx( + HANDLE TimerQueue, + HANDLE CompletionEvent + ); + + + + + + +} +# 56 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\threadpoolapiset.h" 1 +# 41 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\threadpoolapiset.h" +extern "C" { +# 52 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\threadpoolapiset.h" +typedef +void +(__stdcall *PTP_WIN32_IO_CALLBACK)( + PTP_CALLBACK_INSTANCE Instance, + PVOID Context, + PVOID Overlapped, + ULONG IoResult, + ULONG_PTR NumberOfBytesTransferred, + PTP_IO Io + ); + + + + +__declspec(dllimport) + +PTP_POOL +__stdcall +CreateThreadpool( + PVOID reserved + ); + + +__declspec(dllimport) +void +__stdcall +SetThreadpoolThreadMaximum( + PTP_POOL ptpp, + DWORD cthrdMost + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetThreadpoolThreadMinimum( + PTP_POOL ptpp, + DWORD cthrdMic + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetThreadpoolStackInformation( + PTP_POOL ptpp, + PTP_POOL_STACK_INFORMATION ptpsi + ); + + +__declspec(dllimport) +BOOL +__stdcall +QueryThreadpoolStackInformation( + PTP_POOL ptpp, + PTP_POOL_STACK_INFORMATION ptpsi + ); + + +__declspec(dllimport) +void +__stdcall +CloseThreadpool( + PTP_POOL ptpp + ); + + +__declspec(dllimport) + +PTP_CLEANUP_GROUP +__stdcall +CreateThreadpoolCleanupGroup( + void + ); + + +__declspec(dllimport) +void +__stdcall +CloseThreadpoolCleanupGroupMembers( + PTP_CLEANUP_GROUP ptpcg, + BOOL fCancelPendingCallbacks, + PVOID pvCleanupContext + ); + + +__declspec(dllimport) +void +__stdcall +CloseThreadpoolCleanupGroup( + PTP_CLEANUP_GROUP ptpcg + ); + + +__declspec(dllimport) +void +__stdcall +SetEventWhenCallbackReturns( + PTP_CALLBACK_INSTANCE pci, + HANDLE evt + ); + + +__declspec(dllimport) +void +__stdcall +ReleaseSemaphoreWhenCallbackReturns( + PTP_CALLBACK_INSTANCE pci, + HANDLE sem, + DWORD crel + ); + + +__declspec(dllimport) +void +__stdcall +ReleaseMutexWhenCallbackReturns( + PTP_CALLBACK_INSTANCE pci, + HANDLE mut + ); + + +__declspec(dllimport) +void +__stdcall +LeaveCriticalSectionWhenCallbackReturns( + PTP_CALLBACK_INSTANCE pci, + PCRITICAL_SECTION pcs + ); + + +__declspec(dllimport) +void +__stdcall +FreeLibraryWhenCallbackReturns( + PTP_CALLBACK_INSTANCE pci, + HMODULE mod + ); + + +__declspec(dllimport) +BOOL +__stdcall +CallbackMayRunLong( + PTP_CALLBACK_INSTANCE pci + ); + + +__declspec(dllimport) +void +__stdcall +DisassociateCurrentThreadFromCallback( + PTP_CALLBACK_INSTANCE pci + ); + + +__declspec(dllimport) + +BOOL +__stdcall +TrySubmitThreadpoolCallback( + PTP_SIMPLE_CALLBACK pfns, + PVOID pv, + PTP_CALLBACK_ENVIRON pcbe + ); + + +__declspec(dllimport) + +PTP_WORK +__stdcall +CreateThreadpoolWork( + PTP_WORK_CALLBACK pfnwk, + PVOID pv, + PTP_CALLBACK_ENVIRON pcbe + ); + + +__declspec(dllimport) +void +__stdcall +SubmitThreadpoolWork( + PTP_WORK pwk + ); + + +__declspec(dllimport) +void +__stdcall +WaitForThreadpoolWorkCallbacks( + PTP_WORK pwk, + BOOL fCancelPendingCallbacks + ); + + +__declspec(dllimport) +void +__stdcall +CloseThreadpoolWork( + PTP_WORK pwk + ); + + +__declspec(dllimport) + +PTP_TIMER +__stdcall +CreateThreadpoolTimer( + PTP_TIMER_CALLBACK pfnti, + PVOID pv, + PTP_CALLBACK_ENVIRON pcbe + ); + + +__declspec(dllimport) +void +__stdcall +SetThreadpoolTimer( + PTP_TIMER pti, + PFILETIME pftDueTime, + DWORD msPeriod, + DWORD msWindowLength + ); + + +__declspec(dllimport) +BOOL +__stdcall +IsThreadpoolTimerSet( + PTP_TIMER pti + ); + + +__declspec(dllimport) +void +__stdcall +WaitForThreadpoolTimerCallbacks( + PTP_TIMER pti, + BOOL fCancelPendingCallbacks + ); + + +__declspec(dllimport) +void +__stdcall +CloseThreadpoolTimer( + PTP_TIMER pti + ); + + +__declspec(dllimport) + +PTP_WAIT +__stdcall +CreateThreadpoolWait( + PTP_WAIT_CALLBACK pfnwa, + PVOID pv, + PTP_CALLBACK_ENVIRON pcbe + ); + + +__declspec(dllimport) +void +__stdcall +SetThreadpoolWait( + PTP_WAIT pwa, + HANDLE h, + PFILETIME pftTimeout + ); + + +__declspec(dllimport) +void +__stdcall +WaitForThreadpoolWaitCallbacks( + PTP_WAIT pwa, + BOOL fCancelPendingCallbacks + ); + + +__declspec(dllimport) +void +__stdcall +CloseThreadpoolWait( + PTP_WAIT pwa + ); + + +__declspec(dllimport) + +PTP_IO +__stdcall +CreateThreadpoolIo( + HANDLE fl, + PTP_WIN32_IO_CALLBACK pfnio, + PVOID pv, + PTP_CALLBACK_ENVIRON pcbe + ); + + +__declspec(dllimport) +void +__stdcall +StartThreadpoolIo( + PTP_IO pio + ); + + +__declspec(dllimport) +void +__stdcall +CancelThreadpoolIo( + PTP_IO pio + ); + + +__declspec(dllimport) +void +__stdcall +WaitForThreadpoolIoCallbacks( + PTP_IO pio, + BOOL fCancelPendingCallbacks + ); + + +__declspec(dllimport) +void +__stdcall +CloseThreadpoolIo( + PTP_IO pio + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetThreadpoolTimerEx( + PTP_TIMER pti, + PFILETIME pftDueTime, + DWORD msPeriod, + DWORD msWindowLength + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetThreadpoolWaitEx( + PTP_WAIT pwa, + HANDLE h, + PFILETIME pftTimeout, + PVOID Reserved + ); +# 431 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\threadpoolapiset.h" +} +# 57 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\jobapi.h" 1 +# 38 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\jobapi.h" +extern "C" { +# 48 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\jobapi.h" +__declspec(dllimport) +BOOL +__stdcall +IsProcessInJob( + HANDLE ProcessHandle, + HANDLE JobHandle, + PBOOL Result + ); +# 64 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\jobapi.h" +} +# 58 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\jobapi2.h" 1 +# 36 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\jobapi2.h" +extern "C" { + + + + + + + +typedef struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION { + LONG64 MaxIops; + LONG64 MaxBandwidth; + LONG64 ReservationIops; + PCWSTR VolumeName; + ULONG BaseIoSize; + ULONG ControlFlags; +} JOBOBJECT_IO_RATE_CONTROL_INFORMATION; + +__declspec(dllimport) +HANDLE +__stdcall +CreateJobObjectW( + LPSECURITY_ATTRIBUTES lpJobAttributes, + LPCWSTR lpName + ); + + + + +__declspec(dllimport) +void +__stdcall +FreeMemoryJobObject( + void * Buffer + ); + + + +__declspec(dllimport) +HANDLE +__stdcall +OpenJobObjectW( + DWORD dwDesiredAccess, + BOOL bInheritHandle, + LPCWSTR lpName + ); + + + +__declspec(dllimport) +BOOL +__stdcall +AssignProcessToJobObject( + HANDLE hJob, + HANDLE hProcess + ); + + + +__declspec(dllimport) +BOOL +__stdcall +TerminateJobObject( + HANDLE hJob, + UINT uExitCode + ); + + + +__declspec(dllimport) +BOOL +__stdcall +SetInformationJobObject( + HANDLE hJob, + JOBOBJECTINFOCLASS JobObjectInformationClass, + LPVOID lpJobObjectInformation, + DWORD cbJobObjectInformationLength + ); + + + + +__declspec(dllimport) +DWORD +__stdcall +SetIoRateControlInformationJobObject( + HANDLE hJob, + JOBOBJECT_IO_RATE_CONTROL_INFORMATION * IoRateControlInfo + ); + + + +__declspec(dllimport) +BOOL +__stdcall +QueryInformationJobObject( + HANDLE hJob, + JOBOBJECTINFOCLASS JobObjectInformationClass, + LPVOID lpJobObjectInformation, + DWORD cbJobObjectInformationLength, + LPDWORD lpReturnLength + ); + + + + +__declspec(dllimport) +DWORD +__stdcall +QueryIoRateControlInformationJobObject( + HANDLE hJob, + PCWSTR VolumeName, + JOBOBJECT_IO_RATE_CONTROL_INFORMATION ** InfoBlocks, + ULONG * InfoBlockCount + ); +# 158 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\jobapi2.h" +} +# 59 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wow64apiset.h" 1 +# 40 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wow64apiset.h" +extern "C" { +# 52 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wow64apiset.h" +__declspec(dllimport) +BOOL +__stdcall +Wow64DisableWow64FsRedirection( + PVOID * OldValue + ); + + +__declspec(dllimport) +BOOL +__stdcall +Wow64RevertWow64FsRedirection( + PVOID OlValue + ); +# 74 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wow64apiset.h" +__declspec(dllimport) +BOOL +__stdcall +IsWow64Process( + HANDLE hProcess, + PBOOL Wow64Process + ); +# 93 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wow64apiset.h" +__declspec(dllimport) + + +UINT +__stdcall +GetSystemWow64DirectoryA( + LPSTR lpBuffer, + UINT uSize + ); + +__declspec(dllimport) + + +UINT +__stdcall +GetSystemWow64DirectoryW( + LPWSTR lpBuffer, + UINT uSize + ); + + + + + + + +__declspec(dllimport) + + +UINT +__stdcall +GetSystemWow64Directory2A( + LPSTR lpBuffer, + UINT uSize, + WORD ImageFileMachineType + ); + +__declspec(dllimport) + + +UINT +__stdcall +GetSystemWow64Directory2W( + LPWSTR lpBuffer, + UINT uSize, + WORD ImageFileMachineType + ); +# 153 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wow64apiset.h" +__declspec(dllimport) +USHORT +__stdcall +Wow64SetThreadDefaultGuestMachine( + USHORT Machine + ); + + +__declspec(dllimport) +BOOL +__stdcall +IsWow64Process2( + HANDLE hProcess, + USHORT * pProcessMachine, + USHORT * pNativeMachine + ); +# 179 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wow64apiset.h" +} +# 60 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" 1 +# 49 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +extern "C" { +# 68 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +typedef struct tagENUMUILANG { + ULONG NumOfEnumUILang; + ULONG SizeOfEnumUIBuffer; + LANGID *pEnumUIBuffer; +} ENUMUILANG, *PENUMUILANG; + + + +typedef BOOL (__stdcall* ENUMRESLANGPROCA)( + HMODULE hModule, + LPCSTR lpType, + LPCSTR lpName, + WORD wLanguage, + LONG_PTR lParam); +typedef BOOL (__stdcall* ENUMRESLANGPROCW)( + HMODULE hModule, + LPCWSTR lpType, + LPCWSTR lpName, + WORD wLanguage, + LONG_PTR lParam); + + + + + + +typedef BOOL (__stdcall* ENUMRESNAMEPROCA)( + HMODULE hModule, + LPCSTR lpType, + LPSTR lpName, + LONG_PTR lParam); +typedef BOOL (__stdcall* ENUMRESNAMEPROCW)( + HMODULE hModule, + LPCWSTR lpType, + LPWSTR lpName, + LONG_PTR lParam); + + + + + + +typedef BOOL (__stdcall* ENUMRESTYPEPROCA)( + HMODULE hModule, + LPSTR lpType, + LONG_PTR lParam + ); +typedef BOOL (__stdcall* ENUMRESTYPEPROCW)( + HMODULE hModule, + LPWSTR lpType, + LONG_PTR lParam + ); +# 163 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +__declspec(dllimport) +BOOL +__stdcall +DisableThreadLibraryCalls( + HMODULE hLibModule + ); +# 178 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +__declspec(dllimport) + +HRSRC +__stdcall +FindResourceExW( + HMODULE hModule, + LPCWSTR lpType, + LPCWSTR lpName, + WORD wLanguage + ); +# 204 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +__declspec(dllimport) +int +__stdcall +FindStringOrdinal( + DWORD dwFindStringOrdinalFlags, + LPCWSTR lpStringSource, + int cchSource, + LPCWSTR lpStringValue, + int cchValue, + BOOL bIgnoreCase + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +FreeLibrary( + HMODULE hLibModule + ); + + +__declspec(dllimport) +__declspec(noreturn) +void +__stdcall +FreeLibraryAndExitThread( + HMODULE hLibModule, + DWORD dwExitCode + ); +# 244 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +__declspec(dllimport) +BOOL +__stdcall +FreeResource( + HGLOBAL hResData + ); +# 259 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +__declspec(dllimport) + + +DWORD +__stdcall +GetModuleFileNameA( + HMODULE hModule, + LPSTR lpFilename, + DWORD nSize + ); + +__declspec(dllimport) + + +DWORD +__stdcall +GetModuleFileNameW( + HMODULE hModule, + LPWSTR lpFilename, + DWORD nSize + ); +# 294 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +__declspec(dllimport) + + +HMODULE +__stdcall +GetModuleHandleA( + LPCSTR lpModuleName + ); + +__declspec(dllimport) + + +HMODULE +__stdcall +GetModuleHandleW( + LPCWSTR lpModuleName + ); +# 325 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +typedef +BOOL +(__stdcall* +PGET_MODULE_HANDLE_EXA)( + DWORD dwFlags, + LPCSTR lpModuleName, + HMODULE* phModule + ); +typedef +BOOL +(__stdcall* +PGET_MODULE_HANDLE_EXW)( + DWORD dwFlags, + LPCWSTR lpModuleName, + HMODULE* phModule + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetModuleHandleExA( + DWORD dwFlags, + LPCSTR lpModuleName, + HMODULE * phModule + ); + +__declspec(dllimport) +BOOL +__stdcall +GetModuleHandleExW( + DWORD dwFlags, + LPCWSTR lpModuleName, + HMODULE * phModule + ); +# 380 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +__declspec(dllimport) +FARPROC +__stdcall +GetProcAddress( + HMODULE hModule, + LPCSTR lpProcName + ); +# 396 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +__declspec(dllimport) + +HMODULE +__stdcall +LoadLibraryExA( + LPCSTR lpLibFileName, + HANDLE hFile, + DWORD dwFlags + ); + +__declspec(dllimport) + +HMODULE +__stdcall +LoadLibraryExW( + LPCWSTR lpLibFileName, + HANDLE hFile, + DWORD dwFlags + ); +# 459 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +__declspec(dllimport) + +HGLOBAL +__stdcall +LoadResource( + HMODULE hModule, + HRSRC hResInfo + ); +# 478 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +__declspec(dllimport) +int +__stdcall +LoadStringA( + HINSTANCE hInstance, + UINT uID, + LPSTR lpBuffer, + int cchBufferMax + ); + +__declspec(dllimport) +int +__stdcall +LoadStringW( + HINSTANCE hInstance, + UINT uID, + LPWSTR lpBuffer, + int cchBufferMax + ); +# 513 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +__declspec(dllimport) +LPVOID +__stdcall +LockResource( + HGLOBAL hResData + ); + + +__declspec(dllimport) +DWORD +__stdcall +SizeofResource( + HMODULE hModule, + HRSRC hResInfo + ); +# 539 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +typedef PVOID DLL_DIRECTORY_COOKIE, *PDLL_DIRECTORY_COOKIE; + +__declspec(dllimport) +DLL_DIRECTORY_COOKIE +__stdcall +AddDllDirectory( + PCWSTR NewDirectory + ); + + +__declspec(dllimport) +BOOL +__stdcall +RemoveDllDirectory( + DLL_DIRECTORY_COOKIE Cookie + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetDefaultDllDirectories( + DWORD DirectoryFlags + ); +# 580 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +__declspec(dllimport) +BOOL +__stdcall +EnumResourceLanguagesExA( + HMODULE hModule, + LPCSTR lpType, + LPCSTR lpName, + ENUMRESLANGPROCA lpEnumFunc, + LONG_PTR lParam, + DWORD dwFlags, + LANGID LangId + ); + +__declspec(dllimport) +BOOL +__stdcall +EnumResourceLanguagesExW( + HMODULE hModule, + LPCWSTR lpType, + LPCWSTR lpName, + ENUMRESLANGPROCW lpEnumFunc, + LONG_PTR lParam, + DWORD dwFlags, + LANGID LangId + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +EnumResourceNamesExA( + HMODULE hModule, + LPCSTR lpType, + ENUMRESNAMEPROCA lpEnumFunc, + LONG_PTR lParam, + DWORD dwFlags, + LANGID LangId + ); + +__declspec(dllimport) +BOOL +__stdcall +EnumResourceNamesExW( + HMODULE hModule, + LPCWSTR lpType, + ENUMRESNAMEPROCW lpEnumFunc, + LONG_PTR lParam, + DWORD dwFlags, + LANGID LangId + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +EnumResourceTypesExA( + HMODULE hModule, + ENUMRESTYPEPROCA lpEnumFunc, + LONG_PTR lParam, + DWORD dwFlags, + LANGID LangId + ); + +__declspec(dllimport) +BOOL +__stdcall +EnumResourceTypesExW( + HMODULE hModule, + ENUMRESTYPEPROCW lpEnumFunc, + LONG_PTR lParam, + DWORD dwFlags, + LANGID LangId + ); +# 686 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +__declspec(dllimport) + +HRSRC +__stdcall +FindResourceW( + HMODULE hModule, + LPCWSTR lpName, + LPCWSTR lpType + ); + + + + + + +__declspec(dllimport) + +HMODULE +__stdcall +LoadLibraryA( + LPCSTR lpLibFileName + ); + +__declspec(dllimport) + +HMODULE +__stdcall +LoadLibraryW( + LPCWSTR lpLibFileName + ); +# 735 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +__declspec(dllimport) +BOOL +__stdcall +EnumResourceNamesW( + HMODULE hModule, + LPCWSTR lpType, + ENUMRESNAMEPROCW lpEnumFunc, + LONG_PTR lParam + ); +# 759 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\libloaderapi.h" +} +# 61 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\securitybaseapi.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\securitybaseapi.h" +extern "C" { +# 60 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\securitybaseapi.h" +__declspec(dllimport) +BOOL +__stdcall +AccessCheck( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + HANDLE ClientToken, + DWORD DesiredAccess, + PGENERIC_MAPPING GenericMapping, + PPRIVILEGE_SET PrivilegeSet, + LPDWORD PrivilegeSetLength, + LPDWORD GrantedAccess, + LPBOOL AccessStatus + ); + + +__declspec(dllimport) +BOOL +__stdcall +AccessCheckAndAuditAlarmW( + LPCWSTR SubsystemName, + LPVOID HandleId, + LPWSTR ObjectTypeName, + LPWSTR ObjectName, + PSECURITY_DESCRIPTOR SecurityDescriptor, + DWORD DesiredAccess, + PGENERIC_MAPPING GenericMapping, + BOOL ObjectCreation, + LPDWORD GrantedAccess, + LPBOOL AccessStatus, + LPBOOL pfGenerateOnClose + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +AccessCheckByType( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + PSID PrincipalSelfSid, + HANDLE ClientToken, + DWORD DesiredAccess, + POBJECT_TYPE_LIST ObjectTypeList, + DWORD ObjectTypeListLength, + PGENERIC_MAPPING GenericMapping, + PPRIVILEGE_SET PrivilegeSet, + LPDWORD PrivilegeSetLength, + LPDWORD GrantedAccess, + LPBOOL AccessStatus + ); + + +__declspec(dllimport) +BOOL +__stdcall +AccessCheckByTypeResultList( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + PSID PrincipalSelfSid, + HANDLE ClientToken, + DWORD DesiredAccess, + POBJECT_TYPE_LIST ObjectTypeList, + DWORD ObjectTypeListLength, + PGENERIC_MAPPING GenericMapping, + PPRIVILEGE_SET PrivilegeSet, + LPDWORD PrivilegeSetLength, + LPDWORD GrantedAccessList, + LPDWORD AccessStatusList + ); + + +__declspec(dllimport) +BOOL +__stdcall +AccessCheckByTypeAndAuditAlarmW( + LPCWSTR SubsystemName, + LPVOID HandleId, + LPCWSTR ObjectTypeName, + LPCWSTR ObjectName, + PSECURITY_DESCRIPTOR SecurityDescriptor, + PSID PrincipalSelfSid, + DWORD DesiredAccess, + AUDIT_EVENT_TYPE AuditType, + DWORD Flags, + POBJECT_TYPE_LIST ObjectTypeList, + DWORD ObjectTypeListLength, + PGENERIC_MAPPING GenericMapping, + BOOL ObjectCreation, + LPDWORD GrantedAccess, + LPBOOL AccessStatus, + LPBOOL pfGenerateOnClose + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +AccessCheckByTypeResultListAndAuditAlarmW( + LPCWSTR SubsystemName, + LPVOID HandleId, + LPCWSTR ObjectTypeName, + LPCWSTR ObjectName, + PSECURITY_DESCRIPTOR SecurityDescriptor, + PSID PrincipalSelfSid, + DWORD DesiredAccess, + AUDIT_EVENT_TYPE AuditType, + DWORD Flags, + POBJECT_TYPE_LIST ObjectTypeList, + DWORD ObjectTypeListLength, + PGENERIC_MAPPING GenericMapping, + BOOL ObjectCreation, + LPDWORD GrantedAccessList, + LPDWORD AccessStatusList, + LPBOOL pfGenerateOnClose + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +AccessCheckByTypeResultListAndAuditAlarmByHandleW( + LPCWSTR SubsystemName, + LPVOID HandleId, + HANDLE ClientToken, + LPCWSTR ObjectTypeName, + LPCWSTR ObjectName, + PSECURITY_DESCRIPTOR SecurityDescriptor, + PSID PrincipalSelfSid, + DWORD DesiredAccess, + AUDIT_EVENT_TYPE AuditType, + DWORD Flags, + POBJECT_TYPE_LIST ObjectTypeList, + DWORD ObjectTypeListLength, + PGENERIC_MAPPING GenericMapping, + BOOL ObjectCreation, + LPDWORD GrantedAccessList, + LPDWORD AccessStatusList, + LPBOOL pfGenerateOnClose + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +AddAccessAllowedAce( + PACL pAcl, + DWORD dwAceRevision, + DWORD AccessMask, + PSID pSid + ); + + +__declspec(dllimport) +BOOL +__stdcall +AddAccessAllowedAceEx( + PACL pAcl, + DWORD dwAceRevision, + DWORD AceFlags, + DWORD AccessMask, + PSID pSid + ); + + +__declspec(dllimport) +BOOL +__stdcall +AddAccessAllowedObjectAce( + PACL pAcl, + DWORD dwAceRevision, + DWORD AceFlags, + DWORD AccessMask, + GUID * ObjectTypeGuid, + GUID * InheritedObjectTypeGuid, + PSID pSid + ); + + +__declspec(dllimport) +BOOL +__stdcall +AddAccessDeniedAce( + PACL pAcl, + DWORD dwAceRevision, + DWORD AccessMask, + PSID pSid + ); + + +__declspec(dllimport) +BOOL +__stdcall +AddAccessDeniedAceEx( + PACL pAcl, + DWORD dwAceRevision, + DWORD AceFlags, + DWORD AccessMask, + PSID pSid + ); + + +__declspec(dllimport) +BOOL +__stdcall +AddAccessDeniedObjectAce( + PACL pAcl, + DWORD dwAceRevision, + DWORD AceFlags, + DWORD AccessMask, + GUID * ObjectTypeGuid, + GUID * InheritedObjectTypeGuid, + PSID pSid + ); + + +__declspec(dllimport) +BOOL +__stdcall +AddAce( + PACL pAcl, + DWORD dwAceRevision, + DWORD dwStartingAceIndex, + LPVOID pAceList, + DWORD nAceListLength + ); + + +__declspec(dllimport) +BOOL +__stdcall +AddAuditAccessAce( + PACL pAcl, + DWORD dwAceRevision, + DWORD dwAccessMask, + PSID pSid, + BOOL bAuditSuccess, + BOOL bAuditFailure + ); + + +__declspec(dllimport) +BOOL +__stdcall +AddAuditAccessAceEx( + PACL pAcl, + DWORD dwAceRevision, + DWORD AceFlags, + DWORD dwAccessMask, + PSID pSid, + BOOL bAuditSuccess, + BOOL bAuditFailure + ); + + +__declspec(dllimport) +BOOL +__stdcall +AddAuditAccessObjectAce( + PACL pAcl, + DWORD dwAceRevision, + DWORD AceFlags, + DWORD AccessMask, + GUID * ObjectTypeGuid, + GUID * InheritedObjectTypeGuid, + PSID pSid, + BOOL bAuditSuccess, + BOOL bAuditFailure + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +AddMandatoryAce( + PACL pAcl, + DWORD dwAceRevision, + DWORD AceFlags, + DWORD MandatoryPolicy, + PSID pLabelSid + ); +# 366 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\securitybaseapi.h" +__declspec(dllimport) +BOOL +__stdcall +AddResourceAttributeAce( + PACL pAcl, + DWORD dwAceRevision, + DWORD AceFlags, + DWORD AccessMask, + PSID pSid, + PCLAIM_SECURITY_ATTRIBUTES_INFORMATION pAttributeInfo, + PDWORD pReturnLength + ); + + +__declspec(dllimport) +BOOL +__stdcall +AddScopedPolicyIDAce( + PACL pAcl, + DWORD dwAceRevision, + DWORD AceFlags, + DWORD AccessMask, + PSID pSid + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +AdjustTokenGroups( + HANDLE TokenHandle, + BOOL ResetToDefault, + PTOKEN_GROUPS NewState, + DWORD BufferLength, + PTOKEN_GROUPS PreviousState, + PDWORD ReturnLength + ); + + +__declspec(dllimport) +BOOL +__stdcall +AdjustTokenPrivileges( + HANDLE TokenHandle, + BOOL DisableAllPrivileges, + PTOKEN_PRIVILEGES NewState, + DWORD BufferLength, + PTOKEN_PRIVILEGES PreviousState, + PDWORD ReturnLength + ); + + +__declspec(dllimport) +BOOL +__stdcall +AllocateAndInitializeSid( + PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, + BYTE nSubAuthorityCount, + DWORD nSubAuthority0, + DWORD nSubAuthority1, + DWORD nSubAuthority2, + DWORD nSubAuthority3, + DWORD nSubAuthority4, + DWORD nSubAuthority5, + DWORD nSubAuthority6, + DWORD nSubAuthority7, + PSID * pSid + ); + + +__declspec(dllimport) +BOOL +__stdcall +AllocateLocallyUniqueId( + PLUID Luid + ); + + +__declspec(dllimport) +BOOL +__stdcall +AreAllAccessesGranted( + DWORD GrantedAccess, + DWORD DesiredAccess + ); + + +__declspec(dllimport) +BOOL +__stdcall +AreAnyAccessesGranted( + DWORD GrantedAccess, + DWORD DesiredAccess + ); + + +__declspec(dllimport) +BOOL +__stdcall +CheckTokenMembership( + HANDLE TokenHandle, + PSID SidToCheck, + PBOOL IsMember + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CheckTokenCapability( + HANDLE TokenHandle, + PSID CapabilitySidToCheck, + PBOOL HasCapability + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetAppContainerAce( + PACL Acl, + DWORD StartingAceIndex, + PVOID * AppContainerAce, + DWORD * AppContainerAceIndex + ); + + +__declspec(dllimport) +BOOL +__stdcall +CheckTokenMembershipEx( + HANDLE TokenHandle, + PSID SidToCheck, + DWORD Flags, + PBOOL IsMember + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +ConvertToAutoInheritPrivateObjectSecurity( + PSECURITY_DESCRIPTOR ParentDescriptor, + PSECURITY_DESCRIPTOR CurrentSecurityDescriptor, + PSECURITY_DESCRIPTOR * NewSecurityDescriptor, + GUID * ObjectType, + BOOLEAN IsDirectoryObject, + PGENERIC_MAPPING GenericMapping + ); + + +__declspec(dllimport) +BOOL +__stdcall +CopySid( + DWORD nDestinationSidLength, + PSID pDestinationSid, + PSID pSourceSid + ); + + +__declspec(dllimport) +BOOL +__stdcall +CreatePrivateObjectSecurity( + PSECURITY_DESCRIPTOR ParentDescriptor, + PSECURITY_DESCRIPTOR CreatorDescriptor, + PSECURITY_DESCRIPTOR * NewDescriptor, + BOOL IsDirectoryObject, + HANDLE Token, + PGENERIC_MAPPING GenericMapping + ); + + +__declspec(dllimport) +BOOL +__stdcall +CreatePrivateObjectSecurityEx( + PSECURITY_DESCRIPTOR ParentDescriptor, + PSECURITY_DESCRIPTOR CreatorDescriptor, + PSECURITY_DESCRIPTOR * NewDescriptor, + GUID * ObjectType, + BOOL IsContainerObject, + ULONG AutoInheritFlags, + HANDLE Token, + PGENERIC_MAPPING GenericMapping + ); + + +__declspec(dllimport) +BOOL +__stdcall +CreatePrivateObjectSecurityWithMultipleInheritance( + PSECURITY_DESCRIPTOR ParentDescriptor, + PSECURITY_DESCRIPTOR CreatorDescriptor, + PSECURITY_DESCRIPTOR * NewDescriptor, + GUID ** ObjectTypes, + ULONG GuidCount, + BOOL IsContainerObject, + ULONG AutoInheritFlags, + HANDLE Token, + PGENERIC_MAPPING GenericMapping + ); + + +__declspec(dllimport) +BOOL +__stdcall +CreateRestrictedToken( + HANDLE ExistingTokenHandle, + DWORD Flags, + DWORD DisableSidCount, + PSID_AND_ATTRIBUTES SidsToDisable, + DWORD DeletePrivilegeCount, + PLUID_AND_ATTRIBUTES PrivilegesToDelete, + DWORD RestrictedSidCount, + PSID_AND_ATTRIBUTES SidsToRestrict, + PHANDLE NewTokenHandle + ); + + + + + +__declspec(dllimport) + +BOOL +__stdcall +CreateWellKnownSid( + WELL_KNOWN_SID_TYPE WellKnownSidType, + PSID DomainSid, + PSID pSid, + DWORD * cbSid + ); + + +__declspec(dllimport) + +BOOL +__stdcall +EqualDomainSid( + PSID pSid1, + PSID pSid2, + BOOL * pfEqual + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +DeleteAce( + PACL pAcl, + DWORD dwAceIndex + ); + + +__declspec(dllimport) +BOOL +__stdcall +DestroyPrivateObjectSecurity( + PSECURITY_DESCRIPTOR * ObjectDescriptor + ); + + +__declspec(dllimport) +BOOL +__stdcall +DuplicateToken( + HANDLE ExistingTokenHandle, + SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, + PHANDLE DuplicateTokenHandle + ); + + +__declspec(dllimport) +BOOL +__stdcall +DuplicateTokenEx( + HANDLE hExistingToken, + DWORD dwDesiredAccess, + LPSECURITY_ATTRIBUTES lpTokenAttributes, + SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, + TOKEN_TYPE TokenType, + PHANDLE phNewToken + ); + + +__declspec(dllimport) +BOOL +__stdcall +EqualPrefixSid( + PSID pSid1, + PSID pSid2 + ); + + +__declspec(dllimport) +BOOL +__stdcall +EqualSid( + PSID pSid1, + PSID pSid2 + ); + + +__declspec(dllimport) +BOOL +__stdcall +FindFirstFreeAce( + PACL pAcl, + LPVOID * pAce + ); + + +__declspec(dllimport) +PVOID +__stdcall +FreeSid( + PSID pSid + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetAce( + PACL pAcl, + DWORD dwAceIndex, + LPVOID * pAce + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetAclInformation( + PACL pAcl, + LPVOID pAclInformation, + DWORD nAclInformationLength, + ACL_INFORMATION_CLASS dwAclInformationClass + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetFileSecurityW( + LPCWSTR lpFileName, + SECURITY_INFORMATION RequestedInformation, + PSECURITY_DESCRIPTOR pSecurityDescriptor, + DWORD nLength, + LPDWORD lpnLengthNeeded + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetKernelObjectSecurity( + HANDLE Handle, + SECURITY_INFORMATION RequestedInformation, + PSECURITY_DESCRIPTOR pSecurityDescriptor, + DWORD nLength, + LPDWORD lpnLengthNeeded + ); + + +__declspec(dllimport) + + +DWORD +__stdcall +GetLengthSid( + PSID pSid + ); + + +__declspec(dllimport) + +BOOL +__stdcall +GetPrivateObjectSecurity( + PSECURITY_DESCRIPTOR ObjectDescriptor, + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR ResultantDescriptor, + DWORD DescriptorLength, + PDWORD ReturnLength + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetSecurityDescriptorControl( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + PSECURITY_DESCRIPTOR_CONTROL pControl, + LPDWORD lpdwRevision + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetSecurityDescriptorDacl( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + LPBOOL lpbDaclPresent, + PACL * pDacl, + LPBOOL lpbDaclDefaulted + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetSecurityDescriptorGroup( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + PSID * pGroup, + LPBOOL lpbGroupDefaulted + ); + + +__declspec(dllimport) +DWORD +__stdcall +GetSecurityDescriptorLength( + PSECURITY_DESCRIPTOR pSecurityDescriptor + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetSecurityDescriptorOwner( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + PSID * pOwner, + LPBOOL lpbOwnerDefaulted + ); + + +__declspec(dllimport) +DWORD +__stdcall +GetSecurityDescriptorRMControl( + PSECURITY_DESCRIPTOR SecurityDescriptor, + PUCHAR RMControl + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetSecurityDescriptorSacl( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + LPBOOL lpbSaclPresent, + PACL * pSacl, + LPBOOL lpbSaclDefaulted + ); + + +__declspec(dllimport) +PSID_IDENTIFIER_AUTHORITY +__stdcall +GetSidIdentifierAuthority( + PSID pSid + ); + + +__declspec(dllimport) +DWORD +__stdcall +GetSidLengthRequired( + UCHAR nSubAuthorityCount + ); + + +__declspec(dllimport) +PDWORD +__stdcall +GetSidSubAuthority( + PSID pSid, + DWORD nSubAuthority + ); + + +__declspec(dllimport) +PUCHAR +__stdcall +GetSidSubAuthorityCount( + PSID pSid + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetTokenInformation( + HANDLE TokenHandle, + TOKEN_INFORMATION_CLASS TokenInformationClass, + LPVOID TokenInformation, + DWORD TokenInformationLength, + PDWORD ReturnLength + ); + + + + + +__declspec(dllimport) + +BOOL +__stdcall +GetWindowsAccountDomainSid( + PSID pSid, + PSID pDomainSid, + DWORD * cbDomainSid + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +ImpersonateAnonymousToken( + HANDLE ThreadHandle + ); + + + +__declspec(dllimport) +BOOL +__stdcall +ImpersonateLoggedOnUser( + HANDLE hToken + ); + + + +__declspec(dllimport) +BOOL +__stdcall +ImpersonateSelf( + SECURITY_IMPERSONATION_LEVEL ImpersonationLevel + ); + + +__declspec(dllimport) +BOOL +__stdcall +InitializeAcl( + PACL pAcl, + DWORD nAclLength, + DWORD dwAclRevision + ); + + +__declspec(dllimport) +BOOL +__stdcall +InitializeSecurityDescriptor( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + DWORD dwRevision + ); + + +__declspec(dllimport) +BOOL +__stdcall +InitializeSid( + PSID Sid, + PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, + BYTE nSubAuthorityCount + ); + + +__declspec(dllimport) +BOOL +__stdcall +IsTokenRestricted( + HANDLE TokenHandle + ); + + +__declspec(dllimport) +BOOL +__stdcall +IsValidAcl( + PACL pAcl + ); + + +__declspec(dllimport) +BOOL +__stdcall +IsValidSecurityDescriptor( + PSECURITY_DESCRIPTOR pSecurityDescriptor + ); + + +__declspec(dllimport) +BOOL +__stdcall +IsValidSid( + PSID pSid + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +IsWellKnownSid( + PSID pSid, + WELL_KNOWN_SID_TYPE WellKnownSidType + ); + + + + +__declspec(dllimport) + +BOOL +__stdcall +MakeAbsoluteSD( + PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, + PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, + LPDWORD lpdwAbsoluteSecurityDescriptorSize, + PACL pDacl, + LPDWORD lpdwDaclSize, + PACL pSacl, + LPDWORD lpdwSaclSize, + PSID pOwner, + LPDWORD lpdwOwnerSize, + PSID pPrimaryGroup, + LPDWORD lpdwPrimaryGroupSize + ); + + +__declspec(dllimport) + +BOOL +__stdcall +MakeSelfRelativeSD( + PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, + PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, + LPDWORD lpdwBufferLength + ); + + +__declspec(dllimport) +void +__stdcall +MapGenericMask( + PDWORD AccessMask, + PGENERIC_MAPPING GenericMapping + ); + + +__declspec(dllimport) +BOOL +__stdcall +ObjectCloseAuditAlarmW( + LPCWSTR SubsystemName, + LPVOID HandleId, + BOOL GenerateOnClose + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +ObjectDeleteAuditAlarmW( + LPCWSTR SubsystemName, + LPVOID HandleId, + BOOL GenerateOnClose + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +ObjectOpenAuditAlarmW( + LPCWSTR SubsystemName, + LPVOID HandleId, + LPWSTR ObjectTypeName, + LPWSTR ObjectName, + PSECURITY_DESCRIPTOR pSecurityDescriptor, + HANDLE ClientToken, + DWORD DesiredAccess, + DWORD GrantedAccess, + PPRIVILEGE_SET Privileges, + BOOL ObjectCreation, + BOOL AccessGranted, + LPBOOL GenerateOnClose + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +ObjectPrivilegeAuditAlarmW( + LPCWSTR SubsystemName, + LPVOID HandleId, + HANDLE ClientToken, + DWORD DesiredAccess, + PPRIVILEGE_SET Privileges, + BOOL AccessGranted + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +PrivilegeCheck( + HANDLE ClientToken, + PPRIVILEGE_SET RequiredPrivileges, + LPBOOL pfResult + ); + + +__declspec(dllimport) +BOOL +__stdcall +PrivilegedServiceAuditAlarmW( + LPCWSTR SubsystemName, + LPCWSTR ServiceName, + HANDLE ClientToken, + PPRIVILEGE_SET Privileges, + BOOL AccessGranted + ); +# 1142 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\securitybaseapi.h" +__declspec(dllimport) +void +__stdcall +QuerySecurityAccessMask( + SECURITY_INFORMATION SecurityInformation, + LPDWORD DesiredAccess + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +RevertToSelf( + void + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetAclInformation( + PACL pAcl, + LPVOID pAclInformation, + DWORD nAclInformationLength, + ACL_INFORMATION_CLASS dwAclInformationClass + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetFileSecurityW( + LPCWSTR lpFileName, + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR pSecurityDescriptor + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetKernelObjectSecurity( + HANDLE Handle, + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR SecurityDescriptor + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetPrivateObjectSecurity( + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR ModificationDescriptor, + PSECURITY_DESCRIPTOR * ObjectsSecurityDescriptor, + PGENERIC_MAPPING GenericMapping, + HANDLE Token + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetPrivateObjectSecurityEx( + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR ModificationDescriptor, + PSECURITY_DESCRIPTOR * ObjectsSecurityDescriptor, + ULONG AutoInheritFlags, + PGENERIC_MAPPING GenericMapping, + HANDLE Token + ); + + + + + +__declspec(dllimport) +void +__stdcall +SetSecurityAccessMask( + SECURITY_INFORMATION SecurityInformation, + LPDWORD DesiredAccess + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +SetSecurityDescriptorControl( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest, + SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetSecurityDescriptorDacl( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + BOOL bDaclPresent, + PACL pDacl, + BOOL bDaclDefaulted + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetSecurityDescriptorGroup( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + PSID pGroup, + BOOL bGroupDefaulted + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetSecurityDescriptorOwner( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + PSID pOwner, + BOOL bOwnerDefaulted + ); + + +__declspec(dllimport) +DWORD +__stdcall +SetSecurityDescriptorRMControl( + PSECURITY_DESCRIPTOR SecurityDescriptor, + PUCHAR RMControl + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetSecurityDescriptorSacl( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + BOOL bSaclPresent, + PACL pSacl, + BOOL bSaclDefaulted + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetTokenInformation( + HANDLE TokenHandle, + TOKEN_INFORMATION_CLASS TokenInformationClass, + LPVOID TokenInformation, + DWORD TokenInformationLength + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetCachedSigningLevel( + PHANDLE SourceFiles, + ULONG SourceFileCount, + ULONG Flags, + HANDLE TargetFile + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetCachedSigningLevel( + HANDLE File, + PULONG Flags, + PULONG SigningLevel, + PUCHAR Thumbprint, + PULONG ThumbprintSize, + PULONG ThumbprintAlgorithm + ); +# 1347 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\securitybaseapi.h" +__declspec(dllimport) +LONG +__stdcall +CveEventWrite( + PCWSTR CveId, + PCWSTR AdditionalDetails + ); +# 1364 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\securitybaseapi.h" +} +# 62 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\namespaceapi.h" 1 +# 38 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\namespaceapi.h" +extern "C" { +# 47 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\namespaceapi.h" +__declspec(dllimport) +HANDLE +__stdcall +CreatePrivateNamespaceW( + LPSECURITY_ATTRIBUTES lpPrivateNamespaceAttributes, + LPVOID lpBoundaryDescriptor, + LPCWSTR lpAliasPrefix + ); + + +__declspec(dllimport) +HANDLE +__stdcall +OpenPrivateNamespaceW( + LPVOID lpBoundaryDescriptor, + LPCWSTR lpAliasPrefix + ); + + +__declspec(dllimport) +BOOLEAN +__stdcall +ClosePrivateNamespace( + HANDLE Handle, + ULONG Flags + ); + + +__declspec(dllimport) +HANDLE +__stdcall +CreateBoundaryDescriptorW( + LPCWSTR Name, + ULONG Flags + ); + + +__declspec(dllimport) +BOOL +__stdcall +AddSIDToBoundaryDescriptor( + HANDLE * BoundaryDescriptor, + PSID RequiredSid + ); + + +__declspec(dllimport) +void +__stdcall +DeleteBoundaryDescriptor( + HANDLE BoundaryDescriptor + ); + + + + + + +} +# 63 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\systemtopologyapi.h" 1 +# 40 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\systemtopologyapi.h" +extern "C" { + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetNumaHighestNodeNumber( + PULONG HighestNodeNumber + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetNumaNodeProcessorMaskEx( + USHORT Node, + PGROUP_AFFINITY ProcessorMask + ); +# 75 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\systemtopologyapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetNumaProximityNodeEx( + ULONG ProximityId, + PUSHORT NodeNumber + ); +# 92 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\systemtopologyapi.h" +} +# 64 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processtopologyapi.h" 1 +# 41 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processtopologyapi.h" +extern "C" { +# 51 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processtopologyapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetProcessGroupAffinity( + HANDLE hProcess, + PUSHORT GroupCount, + PUSHORT GroupArray + ); +# 74 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processtopologyapi.h" +__declspec(dllimport) +BOOL +__stdcall +GetThreadGroupAffinity( + HANDLE hThread, + PGROUP_AFFINITY GroupAffinity + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetThreadGroupAffinity( + HANDLE hThread, + const GROUP_AFFINITY * GroupAffinity, + PGROUP_AFFINITY PreviousGroupAffinity + ); +# 99 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\processtopologyapi.h" +} +# 65 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\securityappcontainer.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\securityappcontainer.h" +extern "C" { +# 54 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\securityappcontainer.h" +BOOL +__stdcall +GetAppContainerNamedObjectPath( + HANDLE Token, + PSID AppContainerSid, + ULONG ObjectPathLength, + LPWSTR ObjectPath, + PULONG ReturnLength + ); + + + + + +} +# 66 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\realtimeapiset.h" 1 +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\realtimeapiset.h" +extern "C" { +# 49 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\realtimeapiset.h" +__declspec(dllimport) +BOOL +__stdcall +QueryThreadCycleTime( + HANDLE ThreadHandle, + PULONG64 CycleTime + ); + + +__declspec(dllimport) +BOOL +__stdcall +QueryProcessCycleTime( + HANDLE ProcessHandle, + PULONG64 CycleTime + ); + + +__declspec(dllimport) +BOOL +__stdcall +QueryIdleProcessorCycleTime( + PULONG BufferLength, + PULONG64 ProcessorIdleCycleTime + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +QueryIdleProcessorCycleTimeEx( + USHORT Group, + PULONG BufferLength, + PULONG64 ProcessorIdleCycleTime + ); +# 103 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\realtimeapiset.h" +__declspec(dllimport) +void +__stdcall +QueryInterruptTimePrecise( + PULONGLONG lpInterruptTimePrecise + ); + + +__declspec(dllimport) +void +__stdcall +QueryUnbiasedInterruptTimePrecise( + PULONGLONG lpUnbiasedInterruptTimePrecise + ); + + +__declspec(dllimport) +void +__stdcall +QueryInterruptTime( + PULONGLONG lpInterruptTime + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +QueryUnbiasedInterruptTime( + PULONGLONG UnbiasedTime + ); +# 146 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\realtimeapiset.h" +} +# 67 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + + + +extern "C" { +# 290 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef void (__stdcall *PFIBER_START_ROUTINE)( + LPVOID lpFiberParameter + ); +typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE; + +typedef LPVOID (__stdcall *PFIBER_CALLOUT_ROUTINE)( + LPVOID lpParameter + ); +# 308 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef PLDT_ENTRY LPLDT_ENTRY; +# 413 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef struct _COMMPROP { + WORD wPacketLength; + WORD wPacketVersion; + DWORD dwServiceMask; + DWORD dwReserved1; + DWORD dwMaxTxQueue; + DWORD dwMaxRxQueue; + DWORD dwMaxBaud; + DWORD dwProvSubType; + DWORD dwProvCapabilities; + DWORD dwSettableParams; + DWORD dwSettableBaud; + WORD wSettableData; + WORD wSettableStopParity; + DWORD dwCurrentTxQueue; + DWORD dwCurrentRxQueue; + DWORD dwProvSpec1; + DWORD dwProvSpec2; + WCHAR wcProvChar[1]; +} COMMPROP,*LPCOMMPROP; + + + + + + + +typedef struct _COMSTAT { + DWORD fCtsHold : 1; + DWORD fDsrHold : 1; + DWORD fRlsdHold : 1; + DWORD fXoffHold : 1; + DWORD fXoffSent : 1; + DWORD fEof : 1; + DWORD fTxim : 1; + DWORD fReserved : 25; + DWORD cbInQue; + DWORD cbOutQue; +} COMSTAT, *LPCOMSTAT; +# 468 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef struct _DCB { + DWORD DCBlength; + DWORD BaudRate; + DWORD fBinary: 1; + DWORD fParity: 1; + DWORD fOutxCtsFlow:1; + DWORD fOutxDsrFlow:1; + DWORD fDtrControl:2; + DWORD fDsrSensitivity:1; + DWORD fTXContinueOnXoff: 1; + DWORD fOutX: 1; + DWORD fInX: 1; + DWORD fErrorChar: 1; + DWORD fNull: 1; + DWORD fRtsControl:2; + DWORD fAbortOnError:1; + DWORD fDummy2:17; + WORD wReserved; + WORD XonLim; + WORD XoffLim; + BYTE ByteSize; + BYTE Parity; + BYTE StopBits; + char XonChar; + char XoffChar; + char ErrorChar; + char EofChar; + char EvtChar; + WORD wReserved1; +} DCB, *LPDCB; + +typedef struct _COMMTIMEOUTS { + DWORD ReadIntervalTimeout; + DWORD ReadTotalTimeoutMultiplier; + DWORD ReadTotalTimeoutConstant; + DWORD WriteTotalTimeoutMultiplier; + DWORD WriteTotalTimeoutConstant; +} COMMTIMEOUTS,*LPCOMMTIMEOUTS; + +typedef struct _COMMCONFIG { + DWORD dwSize; + WORD wVersion; + WORD wReserved; + DCB dcb; + DWORD dwProviderSubType; + + DWORD dwProviderOffset; + + DWORD dwProviderSize; + WCHAR wcProviderData[1]; +} COMMCONFIG,*LPCOMMCONFIG; +# 555 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef struct _MEMORYSTATUS { + DWORD dwLength; + DWORD dwMemoryLoad; + SIZE_T dwTotalPhys; + SIZE_T dwAvailPhys; + SIZE_T dwTotalPageFile; + SIZE_T dwAvailPageFile; + SIZE_T dwTotalVirtual; + SIZE_T dwAvailVirtual; +} MEMORYSTATUS, *LPMEMORYSTATUS; +# 656 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef struct _JIT_DEBUG_INFO { + DWORD dwSize; + DWORD dwProcessorArchitecture; + DWORD dwThreadID; + DWORD dwReserved0; + ULONG64 lpExceptionAddress; + ULONG64 lpExceptionRecord; + ULONG64 lpContextRecord; +} JIT_DEBUG_INFO, *LPJIT_DEBUG_INFO; + +typedef JIT_DEBUG_INFO JIT_DEBUG_INFO32, *LPJIT_DEBUG_INFO32; +typedef JIT_DEBUG_INFO JIT_DEBUG_INFO64, *LPJIT_DEBUG_INFO64; + + +typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD; +typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS; +# 885 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef struct _OFSTRUCT { + BYTE cBytes; + BYTE fFixedDisk; + WORD nErrCode; + WORD Reserved1; + WORD Reserved2; + CHAR szPathName[128]; +} OFSTRUCT, *LPOFSTRUCT, *POFSTRUCT; +# 905 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +int + + + + +__stdcall + + + + +WinMain ( + HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPSTR lpCmdLine, + int nShowCmd + ); + +int + + + +__stdcall + +wWinMain( + HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPWSTR lpCmdLine, + int nShowCmd + ); + + + + + + + +__declspec(dllimport) + + +__declspec(allocator) +HGLOBAL +__stdcall +GlobalAlloc( + UINT uFlags, + SIZE_T dwBytes + ); + + + + + + + +__declspec(dllimport) + +__declspec(allocator) +HGLOBAL +__stdcall +GlobalReAlloc ( + HGLOBAL hMem, + SIZE_T dwBytes, + UINT uFlags + ); + + + + + + + +__declspec(dllimport) +SIZE_T +__stdcall +GlobalSize ( + HGLOBAL hMem + ); + +__declspec(dllimport) +UINT +__stdcall +GlobalFlags ( + HGLOBAL hMem + ); + +__declspec(dllimport) + +LPVOID +__stdcall +GlobalLock ( + HGLOBAL hMem + ); + +__declspec(dllimport) + +HGLOBAL +__stdcall +GlobalHandle ( + LPCVOID pMem + ); + +__declspec(dllimport) +BOOL +__stdcall +GlobalUnlock( + HGLOBAL hMem + ); + + + + + + + +__declspec(dllimport) + + +HGLOBAL +__stdcall +GlobalFree( + HGLOBAL hMem + ); + + + + + + + +__declspec(dllimport) +SIZE_T +__stdcall +GlobalCompact( + DWORD dwMinFree + ); + +__declspec(dllimport) +void +__stdcall +GlobalFix( + HGLOBAL hMem + ); + +__declspec(dllimport) +void +__stdcall +GlobalUnfix( + HGLOBAL hMem + ); + +__declspec(dllimport) +LPVOID +__stdcall +GlobalWire( + HGLOBAL hMem + ); + +__declspec(dllimport) +BOOL +__stdcall +GlobalUnWire( + HGLOBAL hMem + ); + + +__declspec(dllimport) +void +__stdcall +GlobalMemoryStatus( + LPMEMORYSTATUS lpBuffer + ); + + + + + + + +__declspec(dllimport) + + +__declspec(allocator) +HLOCAL +__stdcall +LocalAlloc( + UINT uFlags, + SIZE_T uBytes + ); + +__declspec(dllimport) + +__declspec(allocator) +HLOCAL +__stdcall +LocalReAlloc( + HLOCAL hMem, + SIZE_T uBytes, + UINT uFlags + ); + + + + + + + +__declspec(dllimport) + +LPVOID +__stdcall +LocalLock( + HLOCAL hMem + ); + + + + + + + +__declspec(dllimport) + +HLOCAL +__stdcall +LocalHandle( + LPCVOID pMem + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +LocalUnlock( + HLOCAL hMem + ); + + + + + + + +__declspec(dllimport) +SIZE_T +__stdcall +LocalSize( + HLOCAL hMem + ); + +__declspec(dllimport) +UINT +__stdcall +LocalFlags( + HLOCAL hMem + ); + + + + + + + +__declspec(dllimport) + + +HLOCAL +__stdcall +LocalFree( + HLOCAL hMem + ); + + + + + + + +__declspec(dllimport) +SIZE_T +__stdcall +LocalShrink( + HLOCAL hMem, + UINT cbNewSize + ); + +__declspec(dllimport) +SIZE_T +__stdcall +LocalCompact( + UINT uMinFree + ); +# 1217 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +GetBinaryTypeA( + LPCSTR lpApplicationName, + LPDWORD lpBinaryType + ); +__declspec(dllimport) +BOOL +__stdcall +GetBinaryTypeW( + LPCWSTR lpApplicationName, + LPDWORD lpBinaryType + ); + + + + + + +__declspec(dllimport) + +DWORD +__stdcall +GetShortPathNameA( + LPCSTR lpszLongPath, + LPSTR lpszShortPath, + DWORD cchBuffer + ); + + + + + + +__declspec(dllimport) + +DWORD +__stdcall +GetLongPathNameTransactedA( + LPCSTR lpszShortPath, + LPSTR lpszLongPath, + DWORD cchBuffer, + HANDLE hTransaction + ); +__declspec(dllimport) + +DWORD +__stdcall +GetLongPathNameTransactedW( + LPCWSTR lpszShortPath, + LPWSTR lpszLongPath, + DWORD cchBuffer, + HANDLE hTransaction + ); +# 1280 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +GetProcessAffinityMask( + HANDLE hProcess, + PDWORD_PTR lpProcessAffinityMask, + PDWORD_PTR lpSystemAffinityMask + ); + +__declspec(dllimport) +BOOL +__stdcall +SetProcessAffinityMask( + HANDLE hProcess, + DWORD_PTR dwProcessAffinityMask + ); + +__declspec(dllimport) +BOOL +__stdcall +GetProcessIoCounters( + HANDLE hProcess, + PIO_COUNTERS lpIoCounters + ); + +__declspec(dllimport) +BOOL +__stdcall +GetProcessWorkingSetSize( + HANDLE hProcess, + PSIZE_T lpMinimumWorkingSetSize, + PSIZE_T lpMaximumWorkingSetSize + ); + +__declspec(dllimport) +BOOL +__stdcall +SetProcessWorkingSetSize( + HANDLE hProcess, + SIZE_T dwMinimumWorkingSetSize, + SIZE_T dwMaximumWorkingSetSize + ); + +__declspec(dllimport) + +void +__stdcall +FatalExit( + int ExitCode + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetEnvironmentStringsA( + LPCH NewEnvironment + ); +# 1361 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +void +__stdcall +SwitchToFiber( + LPVOID lpFiber + ); + +__declspec(dllimport) +void +__stdcall +DeleteFiber( + LPVOID lpFiber + ); + + + +__declspec(dllimport) +BOOL +__stdcall +ConvertFiberToThread( + void + ); + + + +__declspec(dllimport) + +LPVOID +__stdcall +CreateFiberEx( + SIZE_T dwStackCommitSize, + SIZE_T dwStackReserveSize, + DWORD dwFlags, + LPFIBER_START_ROUTINE lpStartAddress, + LPVOID lpParameter + ); + +__declspec(dllimport) + +LPVOID +__stdcall +ConvertThreadToFiberEx( + LPVOID lpParameter, + DWORD dwFlags + ); + + + + + + + +__declspec(dllimport) + +LPVOID +__stdcall +CreateFiber( + SIZE_T dwStackSize, + LPFIBER_START_ROUTINE lpStartAddress, + LPVOID lpParameter + ); + +__declspec(dllimport) + +LPVOID +__stdcall +ConvertThreadToFiber( + LPVOID lpParameter + ); +# 1449 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef void *PUMS_CONTEXT; + +typedef void *PUMS_COMPLETION_LIST; + +typedef enum _RTL_UMS_THREAD_INFO_CLASS UMS_THREAD_INFO_CLASS, *PUMS_THREAD_INFO_CLASS; + +typedef enum _RTL_UMS_SCHEDULER_REASON UMS_SCHEDULER_REASON; + +typedef PRTL_UMS_SCHEDULER_ENTRY_POINT PUMS_SCHEDULER_ENTRY_POINT; + +typedef struct _UMS_SCHEDULER_STARTUP_INFO { + + + + + ULONG UmsVersion; + + + + + PUMS_COMPLETION_LIST CompletionList; + + + + + + PUMS_SCHEDULER_ENTRY_POINT SchedulerProc; + + + + + PVOID SchedulerParam; + +} UMS_SCHEDULER_STARTUP_INFO, *PUMS_SCHEDULER_STARTUP_INFO; + +typedef struct _UMS_SYSTEM_THREAD_INFORMATION { + ULONG UmsVersion; + union { + struct { + ULONG IsUmsSchedulerThread : 1; + ULONG IsUmsWorkerThread : 1; + } ; + ULONG ThreadUmsFlags; + } ; +} UMS_SYSTEM_THREAD_INFORMATION, *PUMS_SYSTEM_THREAD_INFORMATION; + + +__declspec(dllimport) +BOOL +__stdcall +CreateUmsCompletionList( + PUMS_COMPLETION_LIST* UmsCompletionList + ); + +__declspec(dllimport) +BOOL +__stdcall +DequeueUmsCompletionListItems( + PUMS_COMPLETION_LIST UmsCompletionList, + DWORD WaitTimeOut, + PUMS_CONTEXT* UmsThreadList + ); + +__declspec(dllimport) +BOOL +__stdcall +GetUmsCompletionListEvent( + PUMS_COMPLETION_LIST UmsCompletionList, + PHANDLE UmsCompletionEvent + ); + +__declspec(dllimport) +BOOL +__stdcall +ExecuteUmsThread( + PUMS_CONTEXT UmsThread + ); + +__declspec(dllimport) +BOOL +__stdcall +UmsThreadYield( + PVOID SchedulerParam + ); + +__declspec(dllimport) +BOOL +__stdcall +DeleteUmsCompletionList( + PUMS_COMPLETION_LIST UmsCompletionList + ); + +__declspec(dllimport) +PUMS_CONTEXT +__stdcall +GetCurrentUmsThread( + void + ); + +__declspec(dllimport) +PUMS_CONTEXT +__stdcall +GetNextUmsListItem( + PUMS_CONTEXT UmsContext + ); + +__declspec(dllimport) +BOOL +__stdcall +QueryUmsThreadInformation( + PUMS_CONTEXT UmsThread, + UMS_THREAD_INFO_CLASS UmsThreadInfoClass, + PVOID UmsThreadInformation, + ULONG UmsThreadInformationLength, + PULONG ReturnLength + ); + +__declspec(dllimport) +BOOL +__stdcall +SetUmsThreadInformation( + PUMS_CONTEXT UmsThread, + UMS_THREAD_INFO_CLASS UmsThreadInfoClass, + PVOID UmsThreadInformation, + ULONG UmsThreadInformationLength + ); + +__declspec(dllimport) +BOOL +__stdcall +DeleteUmsThreadContext( + PUMS_CONTEXT UmsThread + ); + +__declspec(dllimport) +BOOL +__stdcall +CreateUmsThreadContext( + PUMS_CONTEXT *lpUmsThread + ); + +__declspec(dllimport) +BOOL +__stdcall +EnterUmsSchedulingMode( + PUMS_SCHEDULER_STARTUP_INFO SchedulerStartupInfo + ); + +__declspec(dllimport) +BOOL +__stdcall +GetUmsSystemThreadInformation( + HANDLE ThreadHandle, + PUMS_SYSTEM_THREAD_INFORMATION SystemThreadInfo + ); +# 1619 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +DWORD_PTR +__stdcall +SetThreadAffinityMask( + HANDLE hThread, + DWORD_PTR dwThreadAffinityMask + ); +# 1637 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +SetProcessDEPPolicy( + DWORD dwFlags + ); + +__declspec(dllimport) +BOOL +__stdcall +GetProcessDEPPolicy( + HANDLE hProcess, + LPDWORD lpFlags, + PBOOL lpPermanent + ); + + + +__declspec(dllimport) +BOOL +__stdcall +RequestWakeupLatency( + LATENCY_TIME latency + ); + +__declspec(dllimport) +BOOL +__stdcall +IsSystemResumeAutomatic( + void + ); + +__declspec(dllimport) +BOOL +__stdcall +GetThreadSelectorEntry( + HANDLE hThread, + DWORD dwSelector, + LPLDT_ENTRY lpSelectorEntry + ); + +__declspec(dllimport) +EXECUTION_STATE +__stdcall +SetThreadExecutionState( + EXECUTION_STATE esFlags + ); + + + + + + + +typedef REASON_CONTEXT POWER_REQUEST_CONTEXT, *PPOWER_REQUEST_CONTEXT, *LPPOWER_REQUEST_CONTEXT; + +__declspec(dllimport) +HANDLE +__stdcall +PowerCreateRequest ( + PREASON_CONTEXT Context + ); + +__declspec(dllimport) +BOOL +__stdcall +PowerSetRequest ( + HANDLE PowerRequest, + POWER_REQUEST_TYPE RequestType + ); + +__declspec(dllimport) +BOOL +__stdcall +PowerClearRequest ( + HANDLE PowerRequest, + POWER_REQUEST_TYPE RequestType + ); +# 1773 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +SetFileCompletionNotificationModes( + HANDLE FileHandle, + UCHAR Flags + ); +# 1792 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +Wow64GetThreadContext( + HANDLE hThread, + PWOW64_CONTEXT lpContext + ); + +__declspec(dllimport) +BOOL +__stdcall +Wow64SetThreadContext( + HANDLE hThread, + const WOW64_CONTEXT *lpContext + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +Wow64GetThreadSelectorEntry( + HANDLE hThread, + DWORD dwSelector, + PWOW64_LDT_ENTRY lpSelectorEntry + ); + + + + + + + +__declspec(dllimport) +DWORD +__stdcall +Wow64SuspendThread( + HANDLE hThread + ); + + + +__declspec(dllimport) +BOOL +__stdcall +DebugSetProcessKillOnExit( + BOOL KillOnExit + ); + +__declspec(dllimport) +BOOL +__stdcall +DebugBreakProcess ( + HANDLE Process + ); +# 1866 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +PulseEvent( + HANDLE hEvent + ); + +__declspec(dllimport) +ATOM +__stdcall +GlobalDeleteAtom( + ATOM nAtom + ); + +__declspec(dllimport) +BOOL +__stdcall +InitAtomTable( + DWORD nSize + ); + +__declspec(dllimport) +ATOM +__stdcall +DeleteAtom( + ATOM nAtom + ); + +__declspec(dllimport) +UINT +__stdcall +SetHandleCount( + UINT uNumber + ); + +__declspec(dllimport) +BOOL +__stdcall +RequestDeviceWakeup( + HANDLE hDevice + ); + +__declspec(dllimport) +BOOL +__stdcall +CancelDeviceWakeupRequest( + HANDLE hDevice + ); + +__declspec(dllimport) +BOOL +__stdcall +GetDevicePowerState( + HANDLE hDevice, + BOOL *pfOn + ); + +__declspec(dllimport) +BOOL +__stdcall +SetMessageWaitingIndicator( + HANDLE hMsgIndicator, + ULONG ulMsgCount + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetFileShortNameA( + HANDLE hFile, + LPCSTR lpShortName + ); +__declspec(dllimport) +BOOL +__stdcall +SetFileShortNameW( + HANDLE hFile, + LPCWSTR lpShortName + ); +# 1957 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +DWORD +__stdcall +LoadModule( + LPCSTR lpModuleName, + LPVOID lpParameterBlock + ); + + + +__declspec(dllimport) +UINT +__stdcall +WinExec( + LPCSTR lpCmdLine, + UINT uCmdShow + ); +# 1982 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +ClearCommBreak( + HANDLE hFile + ); + +__declspec(dllimport) +BOOL +__stdcall +ClearCommError( + HANDLE hFile, + LPDWORD lpErrors, + LPCOMSTAT lpStat + ); + +__declspec(dllimport) +BOOL +__stdcall +SetupComm( + HANDLE hFile, + DWORD dwInQueue, + DWORD dwOutQueue + ); + +__declspec(dllimport) +BOOL +__stdcall +EscapeCommFunction( + HANDLE hFile, + DWORD dwFunc + ); + +__declspec(dllimport) + +BOOL +__stdcall +GetCommConfig( + HANDLE hCommDev, + LPCOMMCONFIG lpCC, + LPDWORD lpdwSize + ); + +__declspec(dllimport) +BOOL +__stdcall +GetCommMask( + HANDLE hFile, + LPDWORD lpEvtMask + ); + +__declspec(dllimport) +BOOL +__stdcall +GetCommProperties( + HANDLE hFile, + LPCOMMPROP lpCommProp + ); + +__declspec(dllimport) +BOOL +__stdcall +GetCommModemStatus( + HANDLE hFile, + LPDWORD lpModemStat + ); + +__declspec(dllimport) +BOOL +__stdcall +GetCommState( + HANDLE hFile, + LPDCB lpDCB + ); + +__declspec(dllimport) +BOOL +__stdcall +GetCommTimeouts( + HANDLE hFile, + LPCOMMTIMEOUTS lpCommTimeouts + ); + +__declspec(dllimport) +BOOL +__stdcall +PurgeComm( + HANDLE hFile, + DWORD dwFlags + ); + +__declspec(dllimport) +BOOL +__stdcall +SetCommBreak( + HANDLE hFile + ); + +__declspec(dllimport) +BOOL +__stdcall +SetCommConfig( + HANDLE hCommDev, + LPCOMMCONFIG lpCC, + DWORD dwSize + ); + +__declspec(dllimport) +BOOL +__stdcall +SetCommMask( + HANDLE hFile, + DWORD dwEvtMask + ); + +__declspec(dllimport) +BOOL +__stdcall +SetCommState( + HANDLE hFile, + LPDCB lpDCB + ); + +__declspec(dllimport) +BOOL +__stdcall +SetCommTimeouts( + HANDLE hFile, + LPCOMMTIMEOUTS lpCommTimeouts + ); + +__declspec(dllimport) +BOOL +__stdcall +TransmitCommChar( + HANDLE hFile, + char cChar + ); + +__declspec(dllimport) +BOOL +__stdcall +WaitCommEvent( + HANDLE hFile, + LPDWORD lpEvtMask, + LPOVERLAPPED lpOverlapped + ); + + + + + + + +__declspec(dllimport) +DWORD +__stdcall +SetTapePosition( + HANDLE hDevice, + DWORD dwPositionMethod, + DWORD dwPartition, + DWORD dwOffsetLow, + DWORD dwOffsetHigh, + BOOL bImmediate + ); + +__declspec(dllimport) +DWORD +__stdcall +GetTapePosition( + HANDLE hDevice, + DWORD dwPositionType, + LPDWORD lpdwPartition, + LPDWORD lpdwOffsetLow, + LPDWORD lpdwOffsetHigh + ); + +__declspec(dllimport) +DWORD +__stdcall +PrepareTape( + HANDLE hDevice, + DWORD dwOperation, + BOOL bImmediate + ); + +__declspec(dllimport) +DWORD +__stdcall +EraseTape( + HANDLE hDevice, + DWORD dwEraseType, + BOOL bImmediate + ); + +__declspec(dllimport) +DWORD +__stdcall +CreateTapePartition( + HANDLE hDevice, + DWORD dwPartitionMethod, + DWORD dwCount, + DWORD dwSize + ); + +__declspec(dllimport) +DWORD +__stdcall +WriteTapemark( + HANDLE hDevice, + DWORD dwTapemarkType, + DWORD dwTapemarkCount, + BOOL bImmediate + ); + +__declspec(dllimport) +DWORD +__stdcall +GetTapeStatus( + HANDLE hDevice + ); + +__declspec(dllimport) +DWORD +__stdcall +GetTapeParameters( + HANDLE hDevice, + DWORD dwOperation, + LPDWORD lpdwSize, + LPVOID lpTapeInformation + ); + + + + +__declspec(dllimport) +DWORD +__stdcall +SetTapeParameters( + HANDLE hDevice, + DWORD dwOperation, + LPVOID lpTapeInformation + ); +# 2235 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +int +__stdcall +MulDiv( + int nNumber, + int nNumerator, + int nDenominator + ); + + + + + + + +typedef enum _DEP_SYSTEM_POLICY_TYPE { + DEPPolicyAlwaysOff = 0, + DEPPolicyAlwaysOn, + DEPPolicyOptIn, + DEPPolicyOptOut, + DEPTotalPolicyCount +} DEP_SYSTEM_POLICY_TYPE; + + + +__declspec(dllimport) +DEP_SYSTEM_POLICY_TYPE +__stdcall +GetSystemDEPPolicy( + void + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetSystemRegistryQuota( + PDWORD pdwQuotaAllowed, + PDWORD pdwQuotaUsed + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +FileTimeToDosDateTime( + const FILETIME *lpFileTime, + LPWORD lpFatDate, + LPWORD lpFatTime + ); + +__declspec(dllimport) +BOOL +__stdcall +DosDateTimeToFileTime( + WORD wFatDate, + WORD wFatTime, + LPFILETIME lpFileTime + ); +# 2316 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) + +DWORD +__stdcall +FormatMessageA( + DWORD dwFlags, + LPCVOID lpSource, + DWORD dwMessageId, + DWORD dwLanguageId, + + + LPSTR lpBuffer, + DWORD nSize, + va_list *Arguments + ); +__declspec(dllimport) + +DWORD +__stdcall +FormatMessageW( + DWORD dwFlags, + LPCVOID lpSource, + DWORD dwMessageId, + DWORD dwLanguageId, + + + LPWSTR lpBuffer, + DWORD nSize, + va_list *Arguments + ); +# 2397 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +HANDLE +__stdcall +CreateMailslotA( + LPCSTR lpName, + DWORD nMaxMessageSize, + DWORD lReadTimeout, + LPSECURITY_ATTRIBUTES lpSecurityAttributes + ); +__declspec(dllimport) +HANDLE +__stdcall +CreateMailslotW( + LPCWSTR lpName, + DWORD nMaxMessageSize, + DWORD lReadTimeout, + LPSECURITY_ATTRIBUTES lpSecurityAttributes + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetMailslotInfo( + HANDLE hMailslot, + LPDWORD lpMaxMessageSize, + LPDWORD lpNextSize, + LPDWORD lpMessageCount, + LPDWORD lpReadTimeout + ); + +__declspec(dllimport) +BOOL +__stdcall +SetMailslotInfo( + HANDLE hMailslot, + DWORD lReadTimeout + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +EncryptFileA( + LPCSTR lpFileName + ); +__declspec(dllimport) +BOOL +__stdcall +EncryptFileW( + LPCWSTR lpFileName + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +DecryptFileA( + LPCSTR lpFileName, + DWORD dwReserved + ); +__declspec(dllimport) +BOOL +__stdcall +DecryptFileW( + LPCWSTR lpFileName, + DWORD dwReserved + ); +# 2497 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +FileEncryptionStatusA( + LPCSTR lpFileName, + LPDWORD lpStatus + ); +__declspec(dllimport) +BOOL +__stdcall +FileEncryptionStatusW( + LPCWSTR lpFileName, + LPDWORD lpStatus + ); +# 2523 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef +DWORD +(__stdcall *PFE_EXPORT_FUNC)( + PBYTE pbData, + PVOID pvCallbackContext, + ULONG ulLength + ); + +typedef +DWORD +(__stdcall *PFE_IMPORT_FUNC)( + PBYTE pbData, + PVOID pvCallbackContext, + PULONG ulLength + ); +# 2551 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +DWORD +__stdcall +OpenEncryptedFileRawA( + LPCSTR lpFileName, + ULONG ulFlags, + PVOID *pvContext + ); +__declspec(dllimport) +DWORD +__stdcall +OpenEncryptedFileRawW( + LPCWSTR lpFileName, + ULONG ulFlags, + PVOID *pvContext + ); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +ReadEncryptedFileRaw( + PFE_EXPORT_FUNC pfExportCallback, + PVOID pvCallbackContext, + PVOID pvContext + ); + +__declspec(dllimport) +DWORD +__stdcall +WriteEncryptedFileRaw( + PFE_IMPORT_FUNC pfImportCallback, + PVOID pvCallbackContext, + PVOID pvContext + ); + +__declspec(dllimport) +void +__stdcall +CloseEncryptedFileRaw( + PVOID pvContext + ); +# 2608 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +int +__stdcall +lstrcmpA( + LPCSTR lpString1, + LPCSTR lpString2 + ); +__declspec(dllimport) +int +__stdcall +lstrcmpW( + LPCWSTR lpString1, + LPCWSTR lpString2 + ); + + + + + + +__declspec(dllimport) +int +__stdcall +lstrcmpiA( + LPCSTR lpString1, + LPCSTR lpString2 + ); +__declspec(dllimport) +int +__stdcall +lstrcmpiW( + LPCWSTR lpString1, + LPCWSTR lpString2 + ); + + + + + + + +#pragma warning(push) +#pragma warning(disable: 4995) + + +__declspec(dllimport) + + + + +LPSTR +__stdcall +lstrcpynA( + LPSTR lpString1, + LPCSTR lpString2, + int iMaxLength + ); +__declspec(dllimport) + + + + +LPWSTR +__stdcall +lstrcpynW( + LPWSTR lpString1, + LPCWSTR lpString2, + int iMaxLength + ); + + + + + + +__declspec(dllimport) +LPSTR +__stdcall +lstrcpyA( + LPSTR lpString1, + LPCSTR lpString2 + ); +__declspec(dllimport) +LPWSTR +__stdcall +lstrcpyW( + LPWSTR lpString1, + LPCWSTR lpString2 + ); + + + + + + +__declspec(dllimport) +LPSTR +__stdcall +lstrcatA( + LPSTR lpString1, + LPCSTR lpString2 + ); +__declspec(dllimport) +LPWSTR +__stdcall +lstrcatW( + LPWSTR lpString1, + LPCWSTR lpString2 + ); + + + + + + + +#pragma warning(pop) + + +__declspec(dllimport) +int +__stdcall +lstrlenA( + LPCSTR lpString + ); +__declspec(dllimport) +int +__stdcall +lstrlenW( + LPCWSTR lpString + ); +# 2751 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +HFILE +__stdcall +OpenFile( + LPCSTR lpFileName, + LPOFSTRUCT lpReOpenBuff, + UINT uStyle + ); + +__declspec(dllimport) +HFILE +__stdcall +_lopen( + LPCSTR lpPathName, + int iReadWrite + ); + +__declspec(dllimport) +HFILE +__stdcall +_lcreat( + LPCSTR lpPathName, + int iAttribute + ); + +__declspec(dllimport) +UINT +__stdcall +_lread( + HFILE hFile, + LPVOID lpBuffer, + UINT uBytes + ); + +__declspec(dllimport) +UINT +__stdcall +_lwrite( + HFILE hFile, + LPCCH lpBuffer, + UINT uBytes + ); + +__declspec(dllimport) +long +__stdcall +_hread( + HFILE hFile, + LPVOID lpBuffer, + long lBytes + ); + +__declspec(dllimport) +long +__stdcall +_hwrite( + HFILE hFile, + LPCCH lpBuffer, + long lBytes + ); + +__declspec(dllimport) +HFILE +__stdcall +_lclose( + HFILE hFile + ); + +__declspec(dllimport) +LONG +__stdcall +_llseek( + HFILE hFile, + LONG lOffset, + int iOrigin + ); + +__declspec(dllimport) +BOOL +__stdcall +IsTextUnicode( + const void* lpv, + int iSize, + LPINT lpiResult + ); + + +__declspec(dllimport) +DWORD +__stdcall +SignalObjectAndWait( + HANDLE hObjectToSignal, + HANDLE hObjectToWaitOn, + DWORD dwMilliseconds, + BOOL bAlertable + ); + + +__declspec(dllimport) +BOOL +__stdcall +BackupRead( + HANDLE hFile, + LPBYTE lpBuffer, + DWORD nNumberOfBytesToRead, + LPDWORD lpNumberOfBytesRead, + BOOL bAbort, + BOOL bProcessSecurity, + LPVOID *lpContext + ); + +__declspec(dllimport) +BOOL +__stdcall +BackupSeek( + HANDLE hFile, + DWORD dwLowBytesToSeek, + DWORD dwHighBytesToSeek, + LPDWORD lpdwLowByteSeeked, + LPDWORD lpdwHighByteSeeked, + LPVOID *lpContext + ); + +__declspec(dllimport) +BOOL +__stdcall +BackupWrite( + HANDLE hFile, + LPBYTE lpBuffer, + DWORD nNumberOfBytesToWrite, + LPDWORD lpNumberOfBytesWritten, + BOOL bAbort, + BOOL bProcessSecurity, + LPVOID *lpContext + ); + + + + +typedef struct _WIN32_STREAM_ID { + DWORD dwStreamId ; + DWORD dwStreamAttributes ; + LARGE_INTEGER Size ; + DWORD dwStreamNameSize ; + WCHAR cStreamName[ 1 ] ; +} WIN32_STREAM_ID, *LPWIN32_STREAM_ID ; +# 2954 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef struct _STARTUPINFOEXA { + STARTUPINFOA StartupInfo; + LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList; +} STARTUPINFOEXA, *LPSTARTUPINFOEXA; +typedef struct _STARTUPINFOEXW { + STARTUPINFOW StartupInfo; + LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList; +} STARTUPINFOEXW, *LPSTARTUPINFOEXW; + +typedef STARTUPINFOEXW STARTUPINFOEX; +typedef LPSTARTUPINFOEXW LPSTARTUPINFOEX; +# 2980 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) + +HANDLE +__stdcall +OpenMutexA( + DWORD dwDesiredAccess, + BOOL bInheritHandle, + LPCSTR lpName + ); + + + + +__declspec(dllimport) + +HANDLE +__stdcall +CreateSemaphoreA( + LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, + LONG lInitialCount, + LONG lMaximumCount, + LPCSTR lpName + ); +# 3013 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) + +HANDLE +__stdcall +OpenSemaphoreA( + DWORD dwDesiredAccess, + BOOL bInheritHandle, + LPCSTR lpName + ); +# 3034 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) + +HANDLE +__stdcall +CreateWaitableTimerA( + LPSECURITY_ATTRIBUTES lpTimerAttributes, + BOOL bManualReset, + LPCSTR lpTimerName + ); + + + + +__declspec(dllimport) + +HANDLE +__stdcall +OpenWaitableTimerA( + DWORD dwDesiredAccess, + BOOL bInheritHandle, + LPCSTR lpTimerName + ); +# 3067 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) + +HANDLE +__stdcall +CreateSemaphoreExA( + LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, + LONG lInitialCount, + LONG lMaximumCount, + LPCSTR lpName, + DWORD dwFlags, + DWORD dwDesiredAccess + ); + + + + + + + +__declspec(dllimport) + +HANDLE +__stdcall +CreateWaitableTimerExA( + LPSECURITY_ATTRIBUTES lpTimerAttributes, + LPCSTR lpTimerName, + DWORD dwFlags, + DWORD dwDesiredAccess + ); +# 3111 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) + +HANDLE +__stdcall +CreateFileMappingA( + HANDLE hFile, + LPSECURITY_ATTRIBUTES lpFileMappingAttributes, + DWORD flProtect, + DWORD dwMaximumSizeHigh, + DWORD dwMaximumSizeLow, + LPCSTR lpName + ); + + + + + + +__declspec(dllimport) + +HANDLE +__stdcall +CreateFileMappingNumaA( + HANDLE hFile, + LPSECURITY_ATTRIBUTES lpFileMappingAttributes, + DWORD flProtect, + DWORD dwMaximumSizeHigh, + DWORD dwMaximumSizeLow, + LPCSTR lpName, + DWORD nndPreferred + ); + + + + + + + +__declspec(dllimport) +HANDLE +__stdcall +OpenFileMappingA( + DWORD dwDesiredAccess, + BOOL bInheritHandle, + LPCSTR lpName + ); +# 3167 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) + +DWORD +__stdcall +GetLogicalDriveStringsA( + DWORD nBufferLength, + LPSTR lpBuffer + ); +# 3194 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) + +HMODULE +__stdcall +LoadPackagedLibrary ( + LPCWSTR lpwLibFileName, + DWORD Reserved + ); +# 3215 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +QueryFullProcessImageNameA( + HANDLE hProcess, + DWORD dwFlags, + LPSTR lpExeName, + PDWORD lpdwSize + ); +__declspec(dllimport) +BOOL +__stdcall +QueryFullProcessImageNameW( + HANDLE hProcess, + DWORD dwFlags, + LPWSTR lpExeName, + PDWORD lpdwSize + ); +# 3256 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef enum _PROC_THREAD_ATTRIBUTE_NUM { + ProcThreadAttributeParentProcess = 0, + ProcThreadAttributeHandleList = 2, + + ProcThreadAttributeGroupAffinity = 3, + ProcThreadAttributePreferredNode = 4, + ProcThreadAttributeIdealProcessor = 5, + ProcThreadAttributeUmsThread = 6, + ProcThreadAttributeMitigationPolicy = 7, + + + ProcThreadAttributeSecurityCapabilities = 9, + + ProcThreadAttributeProtectionLevel = 11, + + + + ProcThreadAttributeJobList = 13, + ProcThreadAttributeChildProcessPolicy = 14, + ProcThreadAttributeAllApplicationPackagesPolicy = 15, + ProcThreadAttributeWin32kFilter = 16, + + + + +} PROC_THREAD_ATTRIBUTE_NUM; +# 3557 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +void +__stdcall +GetStartupInfoA( + LPSTARTUPINFOA lpStartupInfo + ); +# 3627 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +DWORD +__stdcall +GetFirmwareEnvironmentVariableA( + LPCSTR lpName, + LPCSTR lpGuid, + PVOID pBuffer, + DWORD nSize + ); +__declspec(dllimport) +DWORD +__stdcall +GetFirmwareEnvironmentVariableW( + LPCWSTR lpName, + LPCWSTR lpGuid, + PVOID pBuffer, + DWORD nSize + ); +# 3653 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +DWORD +__stdcall +GetFirmwareEnvironmentVariableExA( + LPCSTR lpName, + LPCSTR lpGuid, + PVOID pBuffer, + DWORD nSize, + PDWORD pdwAttribubutes + ); +__declspec(dllimport) +DWORD +__stdcall +GetFirmwareEnvironmentVariableExW( + LPCWSTR lpName, + LPCWSTR lpGuid, + PVOID pBuffer, + DWORD nSize, + PDWORD pdwAttribubutes + ); +# 3681 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +SetFirmwareEnvironmentVariableA( + LPCSTR lpName, + LPCSTR lpGuid, + PVOID pValue, + DWORD nSize + ); +__declspec(dllimport) +BOOL +__stdcall +SetFirmwareEnvironmentVariableW( + LPCWSTR lpName, + LPCWSTR lpGuid, + PVOID pValue, + DWORD nSize + ); +# 3707 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +SetFirmwareEnvironmentVariableExA( + LPCSTR lpName, + LPCSTR lpGuid, + PVOID pValue, + DWORD nSize, + DWORD dwAttributes + ); +__declspec(dllimport) +BOOL +__stdcall +SetFirmwareEnvironmentVariableExW( + LPCWSTR lpName, + LPCWSTR lpGuid, + PVOID pValue, + DWORD nSize, + DWORD dwAttributes + ); +# 3743 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +GetFirmwareType ( + PFIRMWARE_TYPE FirmwareType + ); + + +__declspec(dllimport) +BOOL +__stdcall +IsNativeVhdBoot ( + PBOOL NativeVhdBoot + ); + + + +__declspec(dllimport) + +HRSRC +__stdcall +FindResourceA( + HMODULE hModule, + LPCSTR lpName, + LPCSTR lpType + ); + + + + +__declspec(dllimport) + +HRSRC +__stdcall +FindResourceExA( + HMODULE hModule, + LPCSTR lpType, + LPCSTR lpName, + WORD wLanguage + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +EnumResourceTypesA( + HMODULE hModule, + ENUMRESTYPEPROCA lpEnumFunc, + LONG_PTR lParam + ); +__declspec(dllimport) +BOOL +__stdcall +EnumResourceTypesW( + HMODULE hModule, + ENUMRESTYPEPROCW lpEnumFunc, + LONG_PTR lParam + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +EnumResourceNamesA( + HMODULE hModule, + LPCSTR lpType, + ENUMRESNAMEPROCA lpEnumFunc, + LONG_PTR lParam + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +EnumResourceLanguagesA( + HMODULE hModule, + LPCSTR lpType, + LPCSTR lpName, + ENUMRESLANGPROCA lpEnumFunc, + LONG_PTR lParam + ); +__declspec(dllimport) +BOOL +__stdcall +EnumResourceLanguagesW( + HMODULE hModule, + LPCWSTR lpType, + LPCWSTR lpName, + ENUMRESLANGPROCW lpEnumFunc, + LONG_PTR lParam + ); + + + + + + +__declspec(dllimport) +HANDLE +__stdcall +BeginUpdateResourceA( + LPCSTR pFileName, + BOOL bDeleteExistingResources + ); +__declspec(dllimport) +HANDLE +__stdcall +BeginUpdateResourceW( + LPCWSTR pFileName, + BOOL bDeleteExistingResources + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +UpdateResourceA( + HANDLE hUpdate, + LPCSTR lpType, + LPCSTR lpName, + WORD wLanguage, + LPVOID lpData, + DWORD cb + ); +__declspec(dllimport) +BOOL +__stdcall +UpdateResourceW( + HANDLE hUpdate, + LPCWSTR lpType, + LPCWSTR lpName, + WORD wLanguage, + LPVOID lpData, + DWORD cb + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +EndUpdateResourceA( + HANDLE hUpdate, + BOOL fDiscard + ); +__declspec(dllimport) +BOOL +__stdcall +EndUpdateResourceW( + HANDLE hUpdate, + BOOL fDiscard + ); +# 3919 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +ATOM +__stdcall +GlobalAddAtomA( + LPCSTR lpString + ); +__declspec(dllimport) +ATOM +__stdcall +GlobalAddAtomW( + LPCWSTR lpString + ); + + + + + + +__declspec(dllimport) +ATOM +__stdcall +GlobalAddAtomExA( + LPCSTR lpString, + DWORD Flags + ); +__declspec(dllimport) +ATOM +__stdcall +GlobalAddAtomExW( + LPCWSTR lpString, + DWORD Flags + ); + + + + + + +__declspec(dllimport) +ATOM +__stdcall +GlobalFindAtomA( + LPCSTR lpString + ); +__declspec(dllimport) +ATOM +__stdcall +GlobalFindAtomW( + LPCWSTR lpString + ); + + + + + + +__declspec(dllimport) +UINT +__stdcall +GlobalGetAtomNameA( + ATOM nAtom, + LPSTR lpBuffer, + int nSize + ); +__declspec(dllimport) +UINT +__stdcall +GlobalGetAtomNameW( + ATOM nAtom, + LPWSTR lpBuffer, + int nSize + ); + + + + + + +__declspec(dllimport) +ATOM +__stdcall +AddAtomA( + LPCSTR lpString + ); +__declspec(dllimport) +ATOM +__stdcall +AddAtomW( + LPCWSTR lpString + ); + + + + + + +__declspec(dllimport) +ATOM +__stdcall +FindAtomA( + LPCSTR lpString + ); +__declspec(dllimport) +ATOM +__stdcall +FindAtomW( + LPCWSTR lpString + ); + + + + + + +__declspec(dllimport) +UINT +__stdcall +GetAtomNameA( + ATOM nAtom, + LPSTR lpBuffer, + int nSize + ); +__declspec(dllimport) +UINT +__stdcall +GetAtomNameW( + ATOM nAtom, + LPWSTR lpBuffer, + int nSize + ); +# 4061 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +UINT +__stdcall +GetProfileIntA( + LPCSTR lpAppName, + LPCSTR lpKeyName, + INT nDefault + ); +__declspec(dllimport) +UINT +__stdcall +GetProfileIntW( + LPCWSTR lpAppName, + LPCWSTR lpKeyName, + INT nDefault + ); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +GetProfileStringA( + LPCSTR lpAppName, + LPCSTR lpKeyName, + LPCSTR lpDefault, + LPSTR lpReturnedString, + DWORD nSize + ); +__declspec(dllimport) +DWORD +__stdcall +GetProfileStringW( + LPCWSTR lpAppName, + LPCWSTR lpKeyName, + LPCWSTR lpDefault, + LPWSTR lpReturnedString, + DWORD nSize + ); +# 4115 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +WriteProfileStringA( + LPCSTR lpAppName, + LPCSTR lpKeyName, + LPCSTR lpString + ); +__declspec(dllimport) +BOOL +__stdcall +WriteProfileStringW( + LPCWSTR lpAppName, + LPCWSTR lpKeyName, + LPCWSTR lpString + ); +# 4143 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +DWORD +__stdcall +GetProfileSectionA( + LPCSTR lpAppName, + LPSTR lpReturnedString, + DWORD nSize + ); +__declspec(dllimport) +DWORD +__stdcall +GetProfileSectionW( + LPCWSTR lpAppName, + LPWSTR lpReturnedString, + DWORD nSize + ); +# 4171 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +WriteProfileSectionA( + LPCSTR lpAppName, + LPCSTR lpString + ); +__declspec(dllimport) +BOOL +__stdcall +WriteProfileSectionW( + LPCWSTR lpAppName, + LPCWSTR lpString + ); +# 4197 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +UINT +__stdcall +GetPrivateProfileIntA( + LPCSTR lpAppName, + LPCSTR lpKeyName, + INT nDefault, + LPCSTR lpFileName + ); +__declspec(dllimport) +UINT +__stdcall +GetPrivateProfileIntW( + LPCWSTR lpAppName, + LPCWSTR lpKeyName, + INT nDefault, + LPCWSTR lpFileName + ); +# 4245 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +DWORD +__stdcall +GetPrivateProfileStringA( + LPCSTR lpAppName, + LPCSTR lpKeyName, + LPCSTR lpDefault, + LPSTR lpReturnedString, + DWORD nSize, + LPCSTR lpFileName + ); +__declspec(dllimport) +DWORD +__stdcall +GetPrivateProfileStringW( + LPCWSTR lpAppName, + LPCWSTR lpKeyName, + LPCWSTR lpDefault, + LPWSTR lpReturnedString, + DWORD nSize, + LPCWSTR lpFileName + ); +# 4301 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +WritePrivateProfileStringA( + LPCSTR lpAppName, + LPCSTR lpKeyName, + LPCSTR lpString, + LPCSTR lpFileName + ); +__declspec(dllimport) +BOOL +__stdcall +WritePrivateProfileStringW( + LPCWSTR lpAppName, + LPCWSTR lpKeyName, + LPCWSTR lpString, + LPCWSTR lpFileName + ); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +GetPrivateProfileSectionA( + LPCSTR lpAppName, + LPSTR lpReturnedString, + DWORD nSize, + LPCSTR lpFileName + ); +__declspec(dllimport) +DWORD +__stdcall +GetPrivateProfileSectionW( + LPCWSTR lpAppName, + LPWSTR lpReturnedString, + DWORD nSize, + LPCWSTR lpFileName + ); +# 4373 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +WritePrivateProfileSectionA( + LPCSTR lpAppName, + LPCSTR lpString, + LPCSTR lpFileName + ); +__declspec(dllimport) +BOOL +__stdcall +WritePrivateProfileSectionW( + LPCWSTR lpAppName, + LPCWSTR lpString, + LPCWSTR lpFileName + ); +# 4401 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +DWORD +__stdcall +GetPrivateProfileSectionNamesA( + LPSTR lpszReturnBuffer, + DWORD nSize, + LPCSTR lpFileName + ); +__declspec(dllimport) +DWORD +__stdcall +GetPrivateProfileSectionNamesW( + LPWSTR lpszReturnBuffer, + DWORD nSize, + LPCWSTR lpFileName + ); +# 4445 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +GetPrivateProfileStructA( + LPCSTR lpszSection, + LPCSTR lpszKey, + LPVOID lpStruct, + UINT uSizeStruct, + LPCSTR szFile + ); +__declspec(dllimport) +BOOL +__stdcall +GetPrivateProfileStructW( + LPCWSTR lpszSection, + LPCWSTR lpszKey, + LPVOID lpStruct, + UINT uSizeStruct, + LPCWSTR szFile + ); +# 4497 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +WritePrivateProfileStructA( + LPCSTR lpszSection, + LPCSTR lpszKey, + LPVOID lpStruct, + UINT uSizeStruct, + LPCSTR szFile + ); +__declspec(dllimport) +BOOL +__stdcall +WritePrivateProfileStructW( + LPCWSTR lpszSection, + LPCWSTR lpszKey, + LPVOID lpStruct, + UINT uSizeStruct, + LPCWSTR szFile + ); +# 4550 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOLEAN +__stdcall +Wow64EnableWow64FsRedirection ( + BOOLEAN Wow64FsEnableRedirection + ); + + + + +typedef UINT (__stdcall* PGET_SYSTEM_WOW64_DIRECTORY_A)( LPSTR lpBuffer, UINT uSize); +typedef UINT (__stdcall* PGET_SYSTEM_WOW64_DIRECTORY_W)( LPWSTR lpBuffer, UINT uSize); +# 4628 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +SetDllDirectoryA( + LPCSTR lpPathName + ); +__declspec(dllimport) +BOOL +__stdcall +SetDllDirectoryW( + LPCWSTR lpPathName + ); + + + + + + +__declspec(dllimport) + +DWORD +__stdcall +GetDllDirectoryA( + DWORD nBufferLength, + LPSTR lpBuffer + ); +__declspec(dllimport) + +DWORD +__stdcall +GetDllDirectoryW( + DWORD nBufferLength, + LPWSTR lpBuffer + ); +# 4675 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +SetSearchPathMode ( + DWORD Flags + ); +# 4714 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +CreateDirectoryExA( + LPCSTR lpTemplateDirectory, + LPCSTR lpNewDirectory, + LPSECURITY_ATTRIBUTES lpSecurityAttributes + ); +__declspec(dllimport) +BOOL +__stdcall +CreateDirectoryExW( + LPCWSTR lpTemplateDirectory, + LPCWSTR lpNewDirectory, + LPSECURITY_ATTRIBUTES lpSecurityAttributes + ); +# 4744 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +CreateDirectoryTransactedA( + LPCSTR lpTemplateDirectory, + LPCSTR lpNewDirectory, + LPSECURITY_ATTRIBUTES lpSecurityAttributes, + HANDLE hTransaction + ); +__declspec(dllimport) +BOOL +__stdcall +CreateDirectoryTransactedW( + LPCWSTR lpTemplateDirectory, + LPCWSTR lpNewDirectory, + LPSECURITY_ATTRIBUTES lpSecurityAttributes, + HANDLE hTransaction + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +RemoveDirectoryTransactedA( + LPCSTR lpPathName, + HANDLE hTransaction + ); +__declspec(dllimport) +BOOL +__stdcall +RemoveDirectoryTransactedW( + LPCWSTR lpPathName, + HANDLE hTransaction + ); + + + + + + +__declspec(dllimport) + +DWORD +__stdcall +GetFullPathNameTransactedA( + LPCSTR lpFileName, + DWORD nBufferLength, + LPSTR lpBuffer, + LPSTR *lpFilePart, + HANDLE hTransaction + ); +__declspec(dllimport) + +DWORD +__stdcall +GetFullPathNameTransactedW( + LPCWSTR lpFileName, + DWORD nBufferLength, + LPWSTR lpBuffer, + LPWSTR *lpFilePart, + HANDLE hTransaction + ); +# 4830 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +DefineDosDeviceA( + DWORD dwFlags, + LPCSTR lpDeviceName, + LPCSTR lpTargetPath + ); + + + + +__declspec(dllimport) +DWORD +__stdcall +QueryDosDeviceA( + LPCSTR lpDeviceName, + LPSTR lpTargetPath, + DWORD ucchMax + ); +# 4864 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +HANDLE +__stdcall +CreateFileTransactedA( + LPCSTR lpFileName, + DWORD dwDesiredAccess, + DWORD dwShareMode, + LPSECURITY_ATTRIBUTES lpSecurityAttributes, + DWORD dwCreationDisposition, + DWORD dwFlagsAndAttributes, + HANDLE hTemplateFile, + HANDLE hTransaction, + PUSHORT pusMiniVersion, + PVOID lpExtendedParameter + ); +__declspec(dllimport) +HANDLE +__stdcall +CreateFileTransactedW( + LPCWSTR lpFileName, + DWORD dwDesiredAccess, + DWORD dwShareMode, + LPSECURITY_ATTRIBUTES lpSecurityAttributes, + DWORD dwCreationDisposition, + DWORD dwFlagsAndAttributes, + HANDLE hTemplateFile, + HANDLE hTransaction, + PUSHORT pusMiniVersion, + PVOID lpExtendedParameter + ); +# 4910 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +HANDLE +__stdcall +ReOpenFile( + HANDLE hOriginalFile, + DWORD dwDesiredAccess, + DWORD dwShareMode, + DWORD dwFlagsAndAttributes + ); +# 4931 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +SetFileAttributesTransactedA( + LPCSTR lpFileName, + DWORD dwFileAttributes, + HANDLE hTransaction + ); +__declspec(dllimport) +BOOL +__stdcall +SetFileAttributesTransactedW( + LPCWSTR lpFileName, + DWORD dwFileAttributes, + HANDLE hTransaction + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetFileAttributesTransactedA( + LPCSTR lpFileName, + GET_FILEEX_INFO_LEVELS fInfoLevelId, + LPVOID lpFileInformation, + HANDLE hTransaction + ); +__declspec(dllimport) +BOOL +__stdcall +GetFileAttributesTransactedW( + LPCWSTR lpFileName, + GET_FILEEX_INFO_LEVELS fInfoLevelId, + LPVOID lpFileInformation, + HANDLE hTransaction + ); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +GetCompressedFileSizeTransactedA( + LPCSTR lpFileName, + LPDWORD lpFileSizeHigh, + HANDLE hTransaction + ); +__declspec(dllimport) +DWORD +__stdcall +GetCompressedFileSizeTransactedW( + LPCWSTR lpFileName, + LPDWORD lpFileSizeHigh, + HANDLE hTransaction + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +DeleteFileTransactedA( + LPCSTR lpFileName, + HANDLE hTransaction + ); +__declspec(dllimport) +BOOL +__stdcall +DeleteFileTransactedW( + LPCWSTR lpFileName, + HANDLE hTransaction + ); +# 5053 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +CheckNameLegalDOS8Dot3A( + LPCSTR lpName, + LPSTR lpOemName, + DWORD OemNameSize, + PBOOL pbNameContainsSpaces , + PBOOL pbNameLegal + ); +__declspec(dllimport) +BOOL +__stdcall +CheckNameLegalDOS8Dot3W( + LPCWSTR lpName, + LPSTR lpOemName, + DWORD OemNameSize, + PBOOL pbNameContainsSpaces , + PBOOL pbNameLegal + ); +# 5091 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +HANDLE +__stdcall +FindFirstFileTransactedA( + LPCSTR lpFileName, + FINDEX_INFO_LEVELS fInfoLevelId, + LPVOID lpFindFileData, + FINDEX_SEARCH_OPS fSearchOp, + LPVOID lpSearchFilter, + DWORD dwAdditionalFlags, + HANDLE hTransaction + ); +__declspec(dllimport) +HANDLE +__stdcall +FindFirstFileTransactedW( + LPCWSTR lpFileName, + FINDEX_INFO_LEVELS fInfoLevelId, + LPVOID lpFindFileData, + FINDEX_SEARCH_OPS fSearchOp, + LPVOID lpSearchFilter, + DWORD dwAdditionalFlags, + HANDLE hTransaction + ); +# 5132 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +CopyFileA( + LPCSTR lpExistingFileName, + LPCSTR lpNewFileName, + BOOL bFailIfExists + ); +__declspec(dllimport) +BOOL +__stdcall +CopyFileW( + LPCWSTR lpExistingFileName, + LPCWSTR lpNewFileName, + BOOL bFailIfExists + ); +# 5184 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef +DWORD +(__stdcall *LPPROGRESS_ROUTINE)( + LARGE_INTEGER TotalFileSize, + LARGE_INTEGER TotalBytesTransferred, + LARGE_INTEGER StreamSize, + LARGE_INTEGER StreamBytesTransferred, + DWORD dwStreamNumber, + DWORD dwCallbackReason, + HANDLE hSourceFile, + HANDLE hDestinationFile, + LPVOID lpData + ); + +__declspec(dllimport) +BOOL +__stdcall +CopyFileExA( + LPCSTR lpExistingFileName, + LPCSTR lpNewFileName, + LPPROGRESS_ROUTINE lpProgressRoutine, + LPVOID lpData, + + LPBOOL pbCancel, + DWORD dwCopyFlags + ); +__declspec(dllimport) +BOOL +__stdcall +CopyFileExW( + LPCWSTR lpExistingFileName, + LPCWSTR lpNewFileName, + LPPROGRESS_ROUTINE lpProgressRoutine, + LPVOID lpData, + + LPBOOL pbCancel, + DWORD dwCopyFlags + ); +# 5236 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +CopyFileTransactedA( + LPCSTR lpExistingFileName, + LPCSTR lpNewFileName, + LPPROGRESS_ROUTINE lpProgressRoutine, + LPVOID lpData, + LPBOOL pbCancel, + DWORD dwCopyFlags, + HANDLE hTransaction + ); +__declspec(dllimport) +BOOL +__stdcall +CopyFileTransactedW( + LPCWSTR lpExistingFileName, + LPCWSTR lpNewFileName, + LPPROGRESS_ROUTINE lpProgressRoutine, + LPVOID lpData, + LPBOOL pbCancel, + DWORD dwCopyFlags, + HANDLE hTransaction + ); +# 5280 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef enum _COPYFILE2_MESSAGE_TYPE { + COPYFILE2_CALLBACK_NONE = 0, + COPYFILE2_CALLBACK_CHUNK_STARTED, + COPYFILE2_CALLBACK_CHUNK_FINISHED, + COPYFILE2_CALLBACK_STREAM_STARTED, + COPYFILE2_CALLBACK_STREAM_FINISHED, + COPYFILE2_CALLBACK_POLL_CONTINUE, + COPYFILE2_CALLBACK_ERROR, + COPYFILE2_CALLBACK_MAX, +} COPYFILE2_MESSAGE_TYPE; + +typedef enum _COPYFILE2_MESSAGE_ACTION { + COPYFILE2_PROGRESS_CONTINUE = 0, + COPYFILE2_PROGRESS_CANCEL, + COPYFILE2_PROGRESS_STOP, + COPYFILE2_PROGRESS_QUIET, + COPYFILE2_PROGRESS_PAUSE, +} COPYFILE2_MESSAGE_ACTION; + +typedef enum _COPYFILE2_COPY_PHASE { + COPYFILE2_PHASE_NONE = 0, + COPYFILE2_PHASE_PREPARE_SOURCE, + COPYFILE2_PHASE_PREPARE_DEST, + COPYFILE2_PHASE_READ_SOURCE, + COPYFILE2_PHASE_WRITE_DESTINATION, + COPYFILE2_PHASE_SERVER_COPY, + COPYFILE2_PHASE_NAMEGRAFT_COPY, + + COPYFILE2_PHASE_MAX, +} COPYFILE2_COPY_PHASE; + + + +typedef struct COPYFILE2_MESSAGE { + + COPYFILE2_MESSAGE_TYPE Type; + DWORD dwPadding; + + union { + + struct { + DWORD dwStreamNumber; + DWORD dwReserved; + HANDLE hSourceFile; + HANDLE hDestinationFile; + ULARGE_INTEGER uliChunkNumber; + ULARGE_INTEGER uliChunkSize; + ULARGE_INTEGER uliStreamSize; + ULARGE_INTEGER uliTotalFileSize; + } ChunkStarted; + + struct { + DWORD dwStreamNumber; + DWORD dwFlags; + HANDLE hSourceFile; + HANDLE hDestinationFile; + ULARGE_INTEGER uliChunkNumber; + ULARGE_INTEGER uliChunkSize; + ULARGE_INTEGER uliStreamSize; + ULARGE_INTEGER uliStreamBytesTransferred; + ULARGE_INTEGER uliTotalFileSize; + ULARGE_INTEGER uliTotalBytesTransferred; + } ChunkFinished; + + struct { + DWORD dwStreamNumber; + DWORD dwReserved; + HANDLE hSourceFile; + HANDLE hDestinationFile; + ULARGE_INTEGER uliStreamSize; + ULARGE_INTEGER uliTotalFileSize; + } StreamStarted; + + struct { + DWORD dwStreamNumber; + DWORD dwReserved; + HANDLE hSourceFile; + HANDLE hDestinationFile; + ULARGE_INTEGER uliStreamSize; + ULARGE_INTEGER uliStreamBytesTransferred; + ULARGE_INTEGER uliTotalFileSize; + ULARGE_INTEGER uliTotalBytesTransferred; + } StreamFinished; + + struct { + DWORD dwReserved; + } PollContinue; + + struct { + COPYFILE2_COPY_PHASE CopyPhase; + DWORD dwStreamNumber; + HRESULT hrFailure; + DWORD dwReserved; + ULARGE_INTEGER uliChunkNumber; + ULARGE_INTEGER uliStreamSize; + ULARGE_INTEGER uliStreamBytesTransferred; + ULARGE_INTEGER uliTotalFileSize; + ULARGE_INTEGER uliTotalBytesTransferred; + } Error; + + } Info; + +} COPYFILE2_MESSAGE; + +typedef +COPYFILE2_MESSAGE_ACTION (__stdcall *PCOPYFILE2_PROGRESS_ROUTINE)( + const COPYFILE2_MESSAGE *pMessage, + PVOID pvCallbackContext +); + +typedef struct COPYFILE2_EXTENDED_PARAMETERS { + DWORD dwSize; + DWORD dwCopyFlags; + BOOL *pfCancel; + PCOPYFILE2_PROGRESS_ROUTINE pProgressRoutine; + PVOID pvCallbackContext; +} COPYFILE2_EXTENDED_PARAMETERS; + +__declspec(dllimport) +HRESULT +__stdcall +CopyFile2( + PCWSTR pwszExistingFileName, + PCWSTR pwszNewFileName, + COPYFILE2_EXTENDED_PARAMETERS *pExtendedParameters +); +# 5417 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +MoveFileA( + LPCSTR lpExistingFileName, + LPCSTR lpNewFileName + ); +__declspec(dllimport) +BOOL +__stdcall +MoveFileW( + LPCWSTR lpExistingFileName, + LPCWSTR lpNewFileName + ); +# 5463 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +MoveFileExA( + LPCSTR lpExistingFileName, + LPCSTR lpNewFileName, + DWORD dwFlags + ); +__declspec(dllimport) +BOOL +__stdcall +MoveFileExW( + LPCWSTR lpExistingFileName, + LPCWSTR lpNewFileName, + DWORD dwFlags + ); +# 5492 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +MoveFileWithProgressA( + LPCSTR lpExistingFileName, + LPCSTR lpNewFileName, + LPPROGRESS_ROUTINE lpProgressRoutine, + LPVOID lpData, + DWORD dwFlags + ); +__declspec(dllimport) +BOOL +__stdcall +MoveFileWithProgressW( + LPCWSTR lpExistingFileName, + LPCWSTR lpNewFileName, + LPPROGRESS_ROUTINE lpProgressRoutine, + LPVOID lpData, + DWORD dwFlags + ); +# 5526 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +MoveFileTransactedA( + LPCSTR lpExistingFileName, + LPCSTR lpNewFileName, + LPPROGRESS_ROUTINE lpProgressRoutine, + LPVOID lpData, + DWORD dwFlags, + HANDLE hTransaction + ); +__declspec(dllimport) +BOOL +__stdcall +MoveFileTransactedW( + LPCWSTR lpExistingFileName, + LPCWSTR lpNewFileName, + LPPROGRESS_ROUTINE lpProgressRoutine, + LPVOID lpData, + DWORD dwFlags, + HANDLE hTransaction + ); +# 5585 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +ReplaceFileA( + LPCSTR lpReplacedFileName, + LPCSTR lpReplacementFileName, + LPCSTR lpBackupFileName, + DWORD dwReplaceFlags, + LPVOID lpExclude, + LPVOID lpReserved + ); +__declspec(dllimport) +BOOL +__stdcall +ReplaceFileW( + LPCWSTR lpReplacedFileName, + LPCWSTR lpReplacementFileName, + LPCWSTR lpBackupFileName, + DWORD dwReplaceFlags, + LPVOID lpExclude, + LPVOID lpReserved + ); +# 5625 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +CreateHardLinkA( + LPCSTR lpFileName, + LPCSTR lpExistingFileName, + LPSECURITY_ATTRIBUTES lpSecurityAttributes + ); +__declspec(dllimport) +BOOL +__stdcall +CreateHardLinkW( + LPCWSTR lpFileName, + LPCWSTR lpExistingFileName, + LPSECURITY_ATTRIBUTES lpSecurityAttributes + ); +# 5660 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +CreateHardLinkTransactedA( + LPCSTR lpFileName, + LPCSTR lpExistingFileName, + LPSECURITY_ATTRIBUTES lpSecurityAttributes, + HANDLE hTransaction + ); +__declspec(dllimport) +BOOL +__stdcall +CreateHardLinkTransactedW( + LPCWSTR lpFileName, + LPCWSTR lpExistingFileName, + LPSECURITY_ATTRIBUTES lpSecurityAttributes, + HANDLE hTransaction + ); +# 5688 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +HANDLE +__stdcall +FindFirstStreamTransactedW ( + LPCWSTR lpFileName, + STREAM_INFO_LEVELS InfoLevel, + LPVOID lpFindStreamData, + DWORD dwFlags, + HANDLE hTransaction + ); + +__declspec(dllimport) +HANDLE +__stdcall +FindFirstFileNameTransactedW ( + LPCWSTR lpFileName, + DWORD dwFlags, + LPDWORD StringLength, + PWSTR LinkName, + HANDLE hTransaction + ); + + + +__declspec(dllimport) +HANDLE +__stdcall +CreateNamedPipeA( + LPCSTR lpName, + DWORD dwOpenMode, + DWORD dwPipeMode, + DWORD nMaxInstances, + DWORD nOutBufferSize, + DWORD nInBufferSize, + DWORD nDefaultTimeOut, + LPSECURITY_ATTRIBUTES lpSecurityAttributes + ); +# 5735 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +GetNamedPipeHandleStateA( + HANDLE hNamedPipe, + LPDWORD lpState, + LPDWORD lpCurInstances, + LPDWORD lpMaxCollectionCount, + LPDWORD lpCollectDataTimeout, + LPSTR lpUserName, + DWORD nMaxUserNameSize + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +CallNamedPipeA( + LPCSTR lpNamedPipeName, + LPVOID lpInBuffer, + DWORD nInBufferSize, + LPVOID lpOutBuffer, + DWORD nOutBufferSize, + LPDWORD lpBytesRead, + DWORD nTimeOut + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +WaitNamedPipeA( + LPCSTR lpNamedPipeName, + DWORD nTimeOut + ); +# 5794 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +GetNamedPipeClientComputerNameA( + HANDLE Pipe, + LPSTR ClientComputerName, + ULONG ClientComputerNameLength + ); +# 5813 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +GetNamedPipeClientProcessId( + HANDLE Pipe, + PULONG ClientProcessId + ); + +__declspec(dllimport) +BOOL +__stdcall +GetNamedPipeClientSessionId( + HANDLE Pipe, + PULONG ClientSessionId + ); + +__declspec(dllimport) +BOOL +__stdcall +GetNamedPipeServerProcessId( + HANDLE Pipe, + PULONG ServerProcessId + ); + +__declspec(dllimport) +BOOL +__stdcall +GetNamedPipeServerSessionId( + HANDLE Pipe, + PULONG ServerSessionId + ); +# 5853 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +SetVolumeLabelA( + LPCSTR lpRootPathName, + LPCSTR lpVolumeName + ); +__declspec(dllimport) +BOOL +__stdcall +SetVolumeLabelW( + LPCWSTR lpRootPathName, + LPCWSTR lpVolumeName + ); +# 5875 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +SetFileBandwidthReservation( + HANDLE hFile, + DWORD nPeriodMilliseconds, + DWORD nBytesPerPeriod, + BOOL bDiscardable, + LPDWORD lpTransferSize, + LPDWORD lpNumOutstandingRequests + ); + +__declspec(dllimport) +BOOL +__stdcall +GetFileBandwidthReservation( + HANDLE hFile, + LPDWORD lpPeriodMilliseconds, + LPDWORD lpBytesPerPeriod, + LPBOOL pDiscardable, + LPDWORD lpTransferSize, + LPDWORD lpNumOutstandingRequests + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +ClearEventLogA ( + HANDLE hEventLog, + LPCSTR lpBackupFileName + ); +__declspec(dllimport) +BOOL +__stdcall +ClearEventLogW ( + HANDLE hEventLog, + LPCWSTR lpBackupFileName + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +BackupEventLogA ( + HANDLE hEventLog, + LPCSTR lpBackupFileName + ); +__declspec(dllimport) +BOOL +__stdcall +BackupEventLogW ( + HANDLE hEventLog, + LPCWSTR lpBackupFileName + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CloseEventLog ( + HANDLE hEventLog + ); + +__declspec(dllimport) +BOOL +__stdcall +DeregisterEventSource ( + HANDLE hEventLog + ); + +__declspec(dllimport) +BOOL +__stdcall +NotifyChangeEventLog( + HANDLE hEventLog, + HANDLE hEvent + ); + +__declspec(dllimport) +BOOL +__stdcall +GetNumberOfEventLogRecords ( + HANDLE hEventLog, + PDWORD NumberOfRecords + ); + +__declspec(dllimport) +BOOL +__stdcall +GetOldestEventLogRecord ( + HANDLE hEventLog, + PDWORD OldestRecord + ); + +__declspec(dllimport) +HANDLE +__stdcall +OpenEventLogA ( + LPCSTR lpUNCServerName, + LPCSTR lpSourceName + ); +__declspec(dllimport) +HANDLE +__stdcall +OpenEventLogW ( + LPCWSTR lpUNCServerName, + LPCWSTR lpSourceName + ); + + + + + + +__declspec(dllimport) +HANDLE +__stdcall +RegisterEventSourceA ( + LPCSTR lpUNCServerName, + LPCSTR lpSourceName + ); +__declspec(dllimport) +HANDLE +__stdcall +RegisterEventSourceW ( + LPCWSTR lpUNCServerName, + LPCWSTR lpSourceName + ); + + + + + + +__declspec(dllimport) +HANDLE +__stdcall +OpenBackupEventLogA ( + LPCSTR lpUNCServerName, + LPCSTR lpFileName + ); +__declspec(dllimport) +HANDLE +__stdcall +OpenBackupEventLogW ( + LPCWSTR lpUNCServerName, + LPCWSTR lpFileName + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +ReadEventLogA ( + HANDLE hEventLog, + DWORD dwReadFlags, + DWORD dwRecordOffset, + LPVOID lpBuffer, + DWORD nNumberOfBytesToRead, + DWORD *pnBytesRead, + DWORD *pnMinNumberOfBytesNeeded + ); +__declspec(dllimport) +BOOL +__stdcall +ReadEventLogW ( + HANDLE hEventLog, + DWORD dwReadFlags, + DWORD dwRecordOffset, + LPVOID lpBuffer, + DWORD nNumberOfBytesToRead, + DWORD *pnBytesRead, + DWORD *pnMinNumberOfBytesNeeded + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +ReportEventA ( + HANDLE hEventLog, + WORD wType, + WORD wCategory, + DWORD dwEventID, + PSID lpUserSid, + WORD wNumStrings, + DWORD dwDataSize, + LPCSTR *lpStrings, + LPVOID lpRawData + ); +__declspec(dllimport) +BOOL +__stdcall +ReportEventW ( + HANDLE hEventLog, + WORD wType, + WORD wCategory, + DWORD dwEventID, + PSID lpUserSid, + WORD wNumStrings, + DWORD dwDataSize, + LPCWSTR *lpStrings, + LPVOID lpRawData + ); +# 6110 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef struct _EVENTLOG_FULL_INFORMATION +{ + DWORD dwFull; +} +EVENTLOG_FULL_INFORMATION, *LPEVENTLOG_FULL_INFORMATION; + +__declspec(dllimport) +BOOL +__stdcall +GetEventLogInformation ( + HANDLE hEventLog, + DWORD dwInfoLevel, + LPVOID lpBuffer, + DWORD cbBufSize, + LPDWORD pcbBytesNeeded + ); +# 6134 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef ULONG OPERATION_ID; + + + + + +typedef struct _OPERATION_START_PARAMETERS { + ULONG Version; + OPERATION_ID OperationId; + ULONG Flags; +} OPERATION_START_PARAMETERS, *POPERATION_START_PARAMETERS; + + + + + + + +typedef struct _OPERATION_END_PARAMETERS { + ULONG Version; + OPERATION_ID OperationId; + ULONG Flags; +} OPERATION_END_PARAMETERS, *POPERATION_END_PARAMETERS; + + + +__declspec(dllimport) +BOOL +__stdcall +OperationStart ( + OPERATION_START_PARAMETERS* OperationStartParams + ); + +__declspec(dllimport) +BOOL +__stdcall +OperationEnd ( + OPERATION_END_PARAMETERS* OperationEndParams + ); +# 6182 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +AccessCheckAndAuditAlarmA ( + LPCSTR SubsystemName, + LPVOID HandleId, + LPSTR ObjectTypeName, + LPSTR ObjectName, + PSECURITY_DESCRIPTOR SecurityDescriptor, + DWORD DesiredAccess, + PGENERIC_MAPPING GenericMapping, + BOOL ObjectCreation, + LPDWORD GrantedAccess, + LPBOOL AccessStatus, + LPBOOL pfGenerateOnClose + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +AccessCheckByTypeAndAuditAlarmA ( + LPCSTR SubsystemName, + LPVOID HandleId, + LPCSTR ObjectTypeName, + LPCSTR ObjectName, + PSECURITY_DESCRIPTOR SecurityDescriptor, + PSID PrincipalSelfSid, + DWORD DesiredAccess, + AUDIT_EVENT_TYPE AuditType, + DWORD Flags, + POBJECT_TYPE_LIST ObjectTypeList, + DWORD ObjectTypeListLength, + PGENERIC_MAPPING GenericMapping, + BOOL ObjectCreation, + LPDWORD GrantedAccess, + LPBOOL AccessStatus, + LPBOOL pfGenerateOnClose + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +AccessCheckByTypeResultListAndAuditAlarmA ( + LPCSTR SubsystemName, + LPVOID HandleId, + LPCSTR ObjectTypeName, + LPCSTR ObjectName, + PSECURITY_DESCRIPTOR SecurityDescriptor, + PSID PrincipalSelfSid, + DWORD DesiredAccess, + AUDIT_EVENT_TYPE AuditType, + DWORD Flags, + POBJECT_TYPE_LIST ObjectTypeList, + DWORD ObjectTypeListLength, + PGENERIC_MAPPING GenericMapping, + BOOL ObjectCreation, + LPDWORD GrantedAccess, + LPDWORD AccessStatusList, + LPBOOL pfGenerateOnClose + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +AccessCheckByTypeResultListAndAuditAlarmByHandleA ( + LPCSTR SubsystemName, + LPVOID HandleId, + HANDLE ClientToken, + LPCSTR ObjectTypeName, + LPCSTR ObjectName, + PSECURITY_DESCRIPTOR SecurityDescriptor, + PSID PrincipalSelfSid, + DWORD DesiredAccess, + AUDIT_EVENT_TYPE AuditType, + DWORD Flags, + POBJECT_TYPE_LIST ObjectTypeList, + DWORD ObjectTypeListLength, + PGENERIC_MAPPING GenericMapping, + BOOL ObjectCreation, + LPDWORD GrantedAccess, + LPDWORD AccessStatusList, + LPBOOL pfGenerateOnClose + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +ObjectOpenAuditAlarmA ( + LPCSTR SubsystemName, + LPVOID HandleId, + LPSTR ObjectTypeName, + LPSTR ObjectName, + PSECURITY_DESCRIPTOR pSecurityDescriptor, + HANDLE ClientToken, + DWORD DesiredAccess, + DWORD GrantedAccess, + PPRIVILEGE_SET Privileges, + BOOL ObjectCreation, + BOOL AccessGranted, + LPBOOL GenerateOnClose + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +ObjectPrivilegeAuditAlarmA ( + LPCSTR SubsystemName, + LPVOID HandleId, + HANDLE ClientToken, + DWORD DesiredAccess, + PPRIVILEGE_SET Privileges, + BOOL AccessGranted + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +ObjectCloseAuditAlarmA ( + LPCSTR SubsystemName, + LPVOID HandleId, + BOOL GenerateOnClose + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +ObjectDeleteAuditAlarmA ( + LPCSTR SubsystemName, + LPVOID HandleId, + BOOL GenerateOnClose + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +PrivilegedServiceAuditAlarmA ( + LPCSTR SubsystemName, + LPCSTR ServiceName, + HANDLE ClientToken, + PPRIVILEGE_SET Privileges, + BOOL AccessGranted + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +AddConditionalAce ( + PACL pAcl, + DWORD dwAceRevision, + DWORD AceFlags, + UCHAR AceType, + DWORD AccessMask, + PSID pSid, + PWCHAR ConditionStr, + DWORD *ReturnLength + ); +# 6377 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +SetFileSecurityA ( + LPCSTR lpFileName, + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR pSecurityDescriptor + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +GetFileSecurityA ( + LPCSTR lpFileName, + SECURITY_INFORMATION RequestedInformation, + PSECURITY_DESCRIPTOR pSecurityDescriptor, + DWORD nLength, + LPDWORD lpnLengthNeeded + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +ReadDirectoryChangesW( + HANDLE hDirectory, + LPVOID lpBuffer, + DWORD nBufferLength, + BOOL bWatchSubtree, + DWORD dwNotifyFilter, + LPDWORD lpBytesReturned, + LPOVERLAPPED lpOverlapped, + LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine + ); +# 6427 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) + +LPVOID +__stdcall +MapViewOfFileExNuma( + HANDLE hFileMappingObject, + DWORD dwDesiredAccess, + DWORD dwFileOffsetHigh, + DWORD dwFileOffsetLow, + SIZE_T dwNumberOfBytesToMap, + LPVOID lpBaseAddress, + DWORD nndPreferred + ); + + + +__declspec(dllimport) +BOOL +__stdcall +IsBadReadPtr( + const void *lp, + UINT_PTR ucb + ); + +__declspec(dllimport) +BOOL +__stdcall +IsBadWritePtr( + LPVOID lp, + UINT_PTR ucb + ); + +__declspec(dllimport) +BOOL +__stdcall +IsBadHugeReadPtr( + const void *lp, + UINT_PTR ucb + ); + +__declspec(dllimport) +BOOL +__stdcall +IsBadHugeWritePtr( + LPVOID lp, + UINT_PTR ucb + ); + +__declspec(dllimport) +BOOL +__stdcall +IsBadCodePtr( + FARPROC lpfn + ); + +__declspec(dllimport) +BOOL +__stdcall +IsBadStringPtrA( + LPCSTR lpsz, + UINT_PTR ucchMax + ); +__declspec(dllimport) +BOOL +__stdcall +IsBadStringPtrW( + LPCWSTR lpsz, + UINT_PTR ucchMax + ); +# 6508 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) + BOOL +__stdcall +LookupAccountSidA( + LPCSTR lpSystemName, + PSID Sid, + LPSTR Name, + LPDWORD cchName, + LPSTR ReferencedDomainName, + LPDWORD cchReferencedDomainName, + PSID_NAME_USE peUse + ); +__declspec(dllimport) + BOOL +__stdcall +LookupAccountSidW( + LPCWSTR lpSystemName, + PSID Sid, + LPWSTR Name, + LPDWORD cchName, + LPWSTR ReferencedDomainName, + LPDWORD cchReferencedDomainName, + PSID_NAME_USE peUse + ); + + + + + + +__declspec(dllimport) + BOOL +__stdcall +LookupAccountNameA( + LPCSTR lpSystemName, + LPCSTR lpAccountName, + PSID Sid, + LPDWORD cbSid, + LPSTR ReferencedDomainName, + LPDWORD cchReferencedDomainName, + PSID_NAME_USE peUse + ); +__declspec(dllimport) + BOOL +__stdcall +LookupAccountNameW( + LPCWSTR lpSystemName, + LPCWSTR lpAccountName, + PSID Sid, + LPDWORD cbSid, + LPWSTR ReferencedDomainName, + LPDWORD cchReferencedDomainName, + PSID_NAME_USE peUse + ); +# 6576 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) + BOOL +__stdcall +LookupAccountNameLocalA( + LPCSTR lpAccountName, + PSID Sid, + LPDWORD cbSid, + LPSTR ReferencedDomainName, + LPDWORD cchReferencedDomainName, + PSID_NAME_USE peUse + ); +__declspec(dllimport) + BOOL +__stdcall +LookupAccountNameLocalW( + LPCWSTR lpAccountName, + PSID Sid, + LPDWORD cbSid, + LPWSTR ReferencedDomainName, + LPDWORD cchReferencedDomainName, + PSID_NAME_USE peUse + ); + + + + + + +__declspec(dllimport) + BOOL +__stdcall +LookupAccountSidLocalA( + PSID Sid, + LPSTR Name, + LPDWORD cchName, + LPSTR ReferencedDomainName, + LPDWORD cchReferencedDomainName, + PSID_NAME_USE peUse + ); +__declspec(dllimport) + BOOL +__stdcall +LookupAccountSidLocalW( + PSID Sid, + LPWSTR Name, + LPDWORD cchName, + LPWSTR ReferencedDomainName, + LPDWORD cchReferencedDomainName, + PSID_NAME_USE peUse + ); +# 6662 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +LookupPrivilegeValueA( + LPCSTR lpSystemName, + LPCSTR lpName, + PLUID lpLuid + ); +__declspec(dllimport) +BOOL +__stdcall +LookupPrivilegeValueW( + LPCWSTR lpSystemName, + LPCWSTR lpName, + PLUID lpLuid + ); + + + + + + +__declspec(dllimport) + BOOL +__stdcall +LookupPrivilegeNameA( + LPCSTR lpSystemName, + PLUID lpLuid, + LPSTR lpName, + LPDWORD cchName + ); +__declspec(dllimport) + BOOL +__stdcall +LookupPrivilegeNameW( + LPCWSTR lpSystemName, + PLUID lpLuid, + LPWSTR lpName, + LPDWORD cchName + ); + + + + + + +__declspec(dllimport) + BOOL +__stdcall +LookupPrivilegeDisplayNameA( + LPCSTR lpSystemName, + LPCSTR lpName, + LPSTR lpDisplayName, + LPDWORD cchDisplayName, + LPDWORD lpLanguageId + ); +__declspec(dllimport) + BOOL +__stdcall +LookupPrivilegeDisplayNameW( + LPCWSTR lpSystemName, + LPCWSTR lpName, + LPWSTR lpDisplayName, + LPDWORD cchDisplayName, + LPDWORD lpLanguageId + ); +# 6740 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +BuildCommDCBA( + LPCSTR lpDef, + LPDCB lpDCB + ); +__declspec(dllimport) +BOOL +__stdcall +BuildCommDCBW( + LPCWSTR lpDef, + LPDCB lpDCB + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +BuildCommDCBAndTimeoutsA( + LPCSTR lpDef, + LPDCB lpDCB, + LPCOMMTIMEOUTS lpCommTimeouts + ); +__declspec(dllimport) +BOOL +__stdcall +BuildCommDCBAndTimeoutsW( + LPCWSTR lpDef, + LPDCB lpDCB, + LPCOMMTIMEOUTS lpCommTimeouts + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CommConfigDialogA( + LPCSTR lpszName, + HWND hWnd, + LPCOMMCONFIG lpCC + ); +__declspec(dllimport) +BOOL +__stdcall +CommConfigDialogW( + LPCWSTR lpszName, + HWND hWnd, + LPCOMMCONFIG lpCC + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetDefaultCommConfigA( + LPCSTR lpszName, + LPCOMMCONFIG lpCC, + LPDWORD lpdwSize + ); +__declspec(dllimport) +BOOL +__stdcall +GetDefaultCommConfigW( + LPCWSTR lpszName, + LPCOMMCONFIG lpCC, + LPDWORD lpdwSize + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetDefaultCommConfigA( + LPCSTR lpszName, + LPCOMMCONFIG lpCC, + DWORD dwSize + ); +__declspec(dllimport) +BOOL +__stdcall +SetDefaultCommConfigW( + LPCWSTR lpszName, + LPCOMMCONFIG lpCC, + DWORD dwSize + ); +# 6854 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) + +BOOL +__stdcall +GetComputerNameA ( + LPSTR lpBuffer, + LPDWORD nSize + ); +__declspec(dllimport) + +BOOL +__stdcall +GetComputerNameW ( + LPWSTR lpBuffer, + LPDWORD nSize + ); +# 6879 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) + +BOOL +__stdcall +DnsHostnameToComputerNameA ( + LPCSTR Hostname, + LPSTR ComputerName, + LPDWORD nSize + ); +__declspec(dllimport) + +BOOL +__stdcall +DnsHostnameToComputerNameW ( + LPCWSTR Hostname, + LPWSTR ComputerName, + LPDWORD nSize + ); +# 6905 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +GetUserNameA ( + LPSTR lpBuffer, + LPDWORD pcbBuffer + ); +__declspec(dllimport) +BOOL +__stdcall +GetUserNameW ( + LPWSTR lpBuffer, + LPDWORD pcbBuffer + ); +# 6953 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +LogonUserA ( + LPCSTR lpszUsername, + LPCSTR lpszDomain, + LPCSTR lpszPassword, + DWORD dwLogonType, + DWORD dwLogonProvider, + PHANDLE phToken + ); +__declspec(dllimport) +BOOL +__stdcall +LogonUserW ( + LPCWSTR lpszUsername, + LPCWSTR lpszDomain, + LPCWSTR lpszPassword, + DWORD dwLogonType, + DWORD dwLogonProvider, + PHANDLE phToken + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +LogonUserExA ( + LPCSTR lpszUsername, + LPCSTR lpszDomain, + LPCSTR lpszPassword, + DWORD dwLogonType, + DWORD dwLogonProvider, + PHANDLE phToken, + PSID *ppLogonSid, + PVOID *ppProfileBuffer, + LPDWORD pdwProfileLength, + PQUOTA_LIMITS pQuotaLimits + ); +__declspec(dllimport) +BOOL +__stdcall +LogonUserExW ( + LPCWSTR lpszUsername, + LPCWSTR lpszDomain, + LPCWSTR lpszPassword, + DWORD dwLogonType, + DWORD dwLogonProvider, + PHANDLE phToken, + PSID *ppLogonSid, + PVOID *ppProfileBuffer, + LPDWORD pdwProfileLength, + PQUOTA_LIMITS pQuotaLimits + ); +# 7037 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) + BOOL +__stdcall +CreateProcessWithLogonW( + LPCWSTR lpUsername, + LPCWSTR lpDomain, + LPCWSTR lpPassword, + DWORD dwLogonFlags, + LPCWSTR lpApplicationName, + LPWSTR lpCommandLine, + DWORD dwCreationFlags, + LPVOID lpEnvironment, + LPCWSTR lpCurrentDirectory, + LPSTARTUPINFOW lpStartupInfo, + LPPROCESS_INFORMATION lpProcessInformation + ); + +__declspec(dllimport) + BOOL +__stdcall +CreateProcessWithTokenW( + HANDLE hToken, + DWORD dwLogonFlags, + LPCWSTR lpApplicationName, + LPWSTR lpCommandLine, + DWORD dwCreationFlags, + LPVOID lpEnvironment, + LPCWSTR lpCurrentDirectory, + LPSTARTUPINFOW lpStartupInfo, + LPPROCESS_INFORMATION lpProcessInformation + ); + + + +__declspec(dllimport) +BOOL +__stdcall +IsTokenUntrusted( + HANDLE TokenHandle + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +RegisterWaitForSingleObject( + PHANDLE phNewWaitObject, + HANDLE hObject, + WAITORTIMERCALLBACK Callback, + PVOID Context, + ULONG dwMilliseconds, + ULONG dwFlags + ); + +__declspec(dllimport) + +BOOL +__stdcall +UnregisterWait( + HANDLE WaitHandle + ); + +__declspec(dllimport) +BOOL +__stdcall +BindIoCompletionCallback ( + HANDLE FileHandle, + LPOVERLAPPED_COMPLETION_ROUTINE Function, + ULONG Flags + ); + +__declspec(dllimport) +HANDLE +__stdcall +SetTimerQueueTimer( + HANDLE TimerQueue, + WAITORTIMERCALLBACK Callback, + PVOID Parameter, + DWORD DueTime, + DWORD Period, + BOOL PreferIo + ); + +__declspec(dllimport) + +BOOL +__stdcall +CancelTimerQueueTimer( + HANDLE TimerQueue, + HANDLE Timer + ); + +__declspec(dllimport) + +BOOL +__stdcall +DeleteTimerQueue( + HANDLE TimerQueue + ); +# 7154 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__forceinline +void +InitializeThreadpoolEnvironment( + PTP_CALLBACK_ENVIRON pcbe + ) +{ + TpInitializeCallbackEnviron(pcbe); +} + +__forceinline +void +SetThreadpoolCallbackPool( + PTP_CALLBACK_ENVIRON pcbe, + PTP_POOL ptpp + ) +{ + TpSetCallbackThreadpool(pcbe, ptpp); +} + +__forceinline +void +SetThreadpoolCallbackCleanupGroup( + PTP_CALLBACK_ENVIRON pcbe, + PTP_CLEANUP_GROUP ptpcg, + PTP_CLEANUP_GROUP_CANCEL_CALLBACK pfng + ) +{ + TpSetCallbackCleanupGroup(pcbe, ptpcg, pfng); +} + +__forceinline +void +SetThreadpoolCallbackRunsLong( + PTP_CALLBACK_ENVIRON pcbe + ) +{ + TpSetCallbackLongFunction(pcbe); +} + +__forceinline +void +SetThreadpoolCallbackLibrary( + PTP_CALLBACK_ENVIRON pcbe, + PVOID mod + ) +{ + TpSetCallbackRaceWithDll(pcbe, mod); +} + + + +__forceinline +void +SetThreadpoolCallbackPriority( + PTP_CALLBACK_ENVIRON pcbe, + TP_CALLBACK_PRIORITY Priority + ) +{ + TpSetCallbackPriority(pcbe, Priority); +} + + + +__forceinline +void +DestroyThreadpoolEnvironment( + PTP_CALLBACK_ENVIRON pcbe + ) +{ + TpDestroyCallbackEnviron(pcbe); +} +# 7241 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__forceinline +void +SetThreadpoolCallbackPersistent( + PTP_CALLBACK_ENVIRON pcbe + ) +{ + TpSetCallbackPersistent(pcbe); +} +# 7262 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) + +HANDLE +__stdcall +CreatePrivateNamespaceA( + LPSECURITY_ATTRIBUTES lpPrivateNamespaceAttributes, + LPVOID lpBoundaryDescriptor, + LPCSTR lpAliasPrefix + ); + + + + + + + +__declspec(dllimport) + +HANDLE +__stdcall +OpenPrivateNamespaceA( + LPVOID lpBoundaryDescriptor, + LPCSTR lpAliasPrefix + ); +# 7298 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) + +HANDLE +__stdcall +CreateBoundaryDescriptorA( + LPCSTR Name, + ULONG Flags + ); +# 7319 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +AddIntegrityLabelToBoundaryDescriptor( + HANDLE * BoundaryDescriptor, + PSID IntegrityLabel + ); +# 7349 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef struct tagHW_PROFILE_INFOA { + DWORD dwDockInfo; + CHAR szHwProfileGuid[39]; + CHAR szHwProfileName[80]; +} HW_PROFILE_INFOA, *LPHW_PROFILE_INFOA; +typedef struct tagHW_PROFILE_INFOW { + DWORD dwDockInfo; + WCHAR szHwProfileGuid[39]; + WCHAR szHwProfileName[80]; +} HW_PROFILE_INFOW, *LPHW_PROFILE_INFOW; + +typedef HW_PROFILE_INFOW HW_PROFILE_INFO; +typedef LPHW_PROFILE_INFOW LPHW_PROFILE_INFO; + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetCurrentHwProfileA ( + LPHW_PROFILE_INFOA lpHwProfileInfo + ); +__declspec(dllimport) +BOOL +__stdcall +GetCurrentHwProfileW ( + LPHW_PROFILE_INFOW lpHwProfileInfo + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +VerifyVersionInfoA( + LPOSVERSIONINFOEXA lpVersionInformation, + DWORD dwTypeMask, + DWORDLONG dwlConditionMask + ); +__declspec(dllimport) +BOOL +__stdcall +VerifyVersionInfoW( + LPOSVERSIONINFOEXW lpVersionInformation, + DWORD dwTypeMask, + DWORDLONG dwlConditionMask + ); +# 7417 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\winerror.h" 1 +# 27715 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\winerror.h" +constexpr + +__forceinline HRESULT HRESULT_FROM_WIN32(unsigned long x) { return (HRESULT)(x) <= 0 ? (HRESULT)(x) : (HRESULT) (((x) & 0x0000FFFF) | (7 << 16) | 0x80000000);} +# 7417 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\timezoneapi.h" 1 +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\timezoneapi.h" +extern "C" { +# 52 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\timezoneapi.h" +typedef struct _TIME_ZONE_INFORMATION { + LONG Bias; + WCHAR StandardName[ 32 ]; + SYSTEMTIME StandardDate; + LONG StandardBias; + WCHAR DaylightName[ 32 ]; + SYSTEMTIME DaylightDate; + LONG DaylightBias; +} TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION; + +typedef struct _TIME_DYNAMIC_ZONE_INFORMATION { + LONG Bias; + WCHAR StandardName[ 32 ]; + SYSTEMTIME StandardDate; + LONG StandardBias; + WCHAR DaylightName[ 32 ]; + SYSTEMTIME DaylightDate; + LONG DaylightBias; + WCHAR TimeZoneKeyName[ 128 ]; + BOOLEAN DynamicDaylightTimeDisabled; +} DYNAMIC_TIME_ZONE_INFORMATION, *PDYNAMIC_TIME_ZONE_INFORMATION; + +__declspec(dllimport) + +BOOL +__stdcall +SystemTimeToTzSpecificLocalTime( + const TIME_ZONE_INFORMATION * lpTimeZoneInformation, + const SYSTEMTIME * lpUniversalTime, + LPSYSTEMTIME lpLocalTime + ); + + +__declspec(dllimport) + +BOOL +__stdcall +TzSpecificLocalTimeToSystemTime( + const TIME_ZONE_INFORMATION * lpTimeZoneInformation, + const SYSTEMTIME * lpLocalTime, + LPSYSTEMTIME lpUniversalTime + ); + + +__declspec(dllimport) + +BOOL +__stdcall +FileTimeToSystemTime( + const FILETIME * lpFileTime, + LPSYSTEMTIME lpSystemTime + ); + + +__declspec(dllimport) + +BOOL +__stdcall +SystemTimeToFileTime( + const SYSTEMTIME * lpSystemTime, + LPFILETIME lpFileTime + ); + + +__declspec(dllimport) + +DWORD +__stdcall +GetTimeZoneInformation( + LPTIME_ZONE_INFORMATION lpTimeZoneInformation + ); +# 132 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\timezoneapi.h" +__declspec(dllimport) +BOOL +__stdcall +SetTimeZoneInformation( + const TIME_ZONE_INFORMATION * lpTimeZoneInformation + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetDynamicTimeZoneInformation( + const DYNAMIC_TIME_ZONE_INFORMATION * lpTimeZoneInformation + ); +# 163 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\timezoneapi.h" +__declspec(dllimport) + +DWORD +__stdcall +GetDynamicTimeZoneInformation( + PDYNAMIC_TIME_ZONE_INFORMATION pTimeZoneInformation + ); +# 178 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\timezoneapi.h" +BOOL +__stdcall +GetTimeZoneInformationForYear( + USHORT wYear, + PDYNAMIC_TIME_ZONE_INFORMATION pdtzi, + LPTIME_ZONE_INFORMATION ptzi + ); +# 194 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\timezoneapi.h" +__declspec(dllimport) + +DWORD +__stdcall +EnumDynamicTimeZoneInformation( + const DWORD dwIndex, + PDYNAMIC_TIME_ZONE_INFORMATION lpTimeZoneInformation + ); + + +__declspec(dllimport) + +DWORD +__stdcall +GetDynamicTimeZoneInformationEffectiveYears( + const PDYNAMIC_TIME_ZONE_INFORMATION lpTimeZoneInformation, + LPDWORD FirstYear, + LPDWORD LastYear + ); + + +__declspec(dllimport) + +BOOL +__stdcall +SystemTimeToTzSpecificLocalTimeEx( + const DYNAMIC_TIME_ZONE_INFORMATION * lpTimeZoneInformation, + const SYSTEMTIME * lpUniversalTime, + LPSYSTEMTIME lpLocalTime + ); + + +__declspec(dllimport) + +BOOL +__stdcall +TzSpecificLocalTimeToSystemTimeEx( + const DYNAMIC_TIME_ZONE_INFORMATION * lpTimeZoneInformation, + const SYSTEMTIME * lpLocalTime, + LPSYSTEMTIME lpUniversalTime + ); +# 245 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\timezoneapi.h" +} +# 7418 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" 2 +# 7453 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef struct _SYSTEM_POWER_STATUS { + BYTE ACLineStatus; + BYTE BatteryFlag; + BYTE BatteryLifePercent; + BYTE SystemStatusFlag; + DWORD BatteryLifeTime; + DWORD BatteryFullLifeTime; +} SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS; + +__declspec(dllimport) +BOOL +__stdcall +GetSystemPowerStatus( + LPSYSTEM_POWER_STATUS lpSystemPowerStatus + ); + +__declspec(dllimport) +BOOL +__stdcall +SetSystemPowerState( + BOOL fSuspend, + BOOL fForce + ); +# 7490 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +MapUserPhysicalPagesScatter( + PVOID *VirtualAddresses, + ULONG_PTR NumberOfPages, + PULONG_PTR PageArray + ); + + + + + + + +__declspec(dllimport) + +HANDLE +__stdcall +CreateJobObjectA( + LPSECURITY_ATTRIBUTES lpJobAttributes, + LPCSTR lpName + ); + + + + + + + +__declspec(dllimport) + +HANDLE +__stdcall +OpenJobObjectA( + DWORD dwDesiredAccess, + BOOL bInheritHandle, + LPCSTR lpName + ); +# 7542 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +CreateJobSet ( + ULONG NumJob, + PJOB_SET_ARRAY UserJobSet, + ULONG Flags); + + + + + + + +__declspec(dllimport) +HANDLE +__stdcall +FindFirstVolumeA( + LPSTR lpszVolumeName, + DWORD cchBufferLength + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +FindNextVolumeA( + HANDLE hFindVolume, + LPSTR lpszVolumeName, + DWORD cchBufferLength + ); +# 7585 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +HANDLE +__stdcall +FindFirstVolumeMountPointA( + LPCSTR lpszRootPathName, + LPSTR lpszVolumeMountPoint, + DWORD cchBufferLength + ); +__declspec(dllimport) +HANDLE +__stdcall +FindFirstVolumeMountPointW( + LPCWSTR lpszRootPathName, + LPWSTR lpszVolumeMountPoint, + DWORD cchBufferLength + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +FindNextVolumeMountPointA( + HANDLE hFindVolumeMountPoint, + LPSTR lpszVolumeMountPoint, + DWORD cchBufferLength + ); +__declspec(dllimport) +BOOL +__stdcall +FindNextVolumeMountPointW( + HANDLE hFindVolumeMountPoint, + LPWSTR lpszVolumeMountPoint, + DWORD cchBufferLength + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +FindVolumeMountPointClose( + HANDLE hFindVolumeMountPoint + ); + +__declspec(dllimport) +BOOL +__stdcall +SetVolumeMountPointA( + LPCSTR lpszVolumeMountPoint, + LPCSTR lpszVolumeName + ); +__declspec(dllimport) +BOOL +__stdcall +SetVolumeMountPointW( + LPCWSTR lpszVolumeMountPoint, + LPCWSTR lpszVolumeName + ); +# 7662 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +DeleteVolumeMountPointA( + LPCSTR lpszVolumeMountPoint + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +GetVolumeNameForVolumeMountPointA( + LPCSTR lpszVolumeMountPoint, + LPSTR lpszVolumeName, + DWORD cchBufferLength + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +GetVolumePathNameA( + LPCSTR lpszFileName, + LPSTR lpszVolumePathName, + DWORD cchBufferLength + ); +# 7706 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +GetVolumePathNamesForVolumeNameA( + LPCSTR lpszVolumeName, + LPCH lpszVolumePathNames, + DWORD cchBufferLength, + PDWORD lpcchReturnLength + ); +# 7733 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef struct tagACTCTXA { + ULONG cbSize; + DWORD dwFlags; + LPCSTR lpSource; + USHORT wProcessorArchitecture; + LANGID wLangId; + LPCSTR lpAssemblyDirectory; + LPCSTR lpResourceName; + LPCSTR lpApplicationName; + HMODULE hModule; +} ACTCTXA, *PACTCTXA; +typedef struct tagACTCTXW { + ULONG cbSize; + DWORD dwFlags; + LPCWSTR lpSource; + USHORT wProcessorArchitecture; + LANGID wLangId; + LPCWSTR lpAssemblyDirectory; + LPCWSTR lpResourceName; + LPCWSTR lpApplicationName; + HMODULE hModule; +} ACTCTXW, *PACTCTXW; + +typedef ACTCTXW ACTCTX; +typedef PACTCTXW PACTCTX; + + + + + +typedef const ACTCTXA *PCACTCTXA; +typedef const ACTCTXW *PCACTCTXW; + +typedef PCACTCTXW PCACTCTX; + + + + + + +__declspec(dllimport) +HANDLE +__stdcall +CreateActCtxA( + PCACTCTXA pActCtx + ); +__declspec(dllimport) +HANDLE +__stdcall +CreateActCtxW( + PCACTCTXW pActCtx + ); + + + + + + +__declspec(dllimport) +void +__stdcall +AddRefActCtx( + HANDLE hActCtx + ); + + +__declspec(dllimport) +void +__stdcall +ReleaseActCtx( + HANDLE hActCtx + ); + +__declspec(dllimport) +BOOL +__stdcall +ZombifyActCtx( + HANDLE hActCtx + ); + + + +__declspec(dllimport) +BOOL +__stdcall +ActivateActCtx( + HANDLE hActCtx, + ULONG_PTR *lpCookie + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +DeactivateActCtx( + DWORD dwFlags, + ULONG_PTR ulCookie + ); + +__declspec(dllimport) +BOOL +__stdcall +GetCurrentActCtx( + HANDLE *lphActCtx); + + +typedef struct tagACTCTX_SECTION_KEYED_DATA_2600 { + ULONG cbSize; + ULONG ulDataFormatVersion; + PVOID lpData; + ULONG ulLength; + PVOID lpSectionGlobalData; + ULONG ulSectionGlobalDataLength; + PVOID lpSectionBase; + ULONG ulSectionTotalLength; + HANDLE hActCtx; + ULONG ulAssemblyRosterIndex; +} ACTCTX_SECTION_KEYED_DATA_2600, *PACTCTX_SECTION_KEYED_DATA_2600; +typedef const ACTCTX_SECTION_KEYED_DATA_2600 * PCACTCTX_SECTION_KEYED_DATA_2600; + +typedef struct tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA { + PVOID lpInformation; + PVOID lpSectionBase; + ULONG ulSectionLength; + PVOID lpSectionGlobalDataBase; + ULONG ulSectionGlobalDataLength; +} ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, *PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA; +typedef const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA *PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA; + +typedef struct tagACTCTX_SECTION_KEYED_DATA { + ULONG cbSize; + ULONG ulDataFormatVersion; + PVOID lpData; + ULONG ulLength; + PVOID lpSectionGlobalData; + ULONG ulSectionGlobalDataLength; + PVOID lpSectionBase; + ULONG ulSectionTotalLength; + HANDLE hActCtx; + ULONG ulAssemblyRosterIndex; + + ULONG ulFlags; + ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA AssemblyMetadata; +} ACTCTX_SECTION_KEYED_DATA, *PACTCTX_SECTION_KEYED_DATA; +typedef const ACTCTX_SECTION_KEYED_DATA * PCACTCTX_SECTION_KEYED_DATA; +# 7889 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +FindActCtxSectionStringA( + DWORD dwFlags, + const GUID *lpExtensionGuid, + ULONG ulSectionId, + LPCSTR lpStringToFind, + PACTCTX_SECTION_KEYED_DATA ReturnedData + ); + +__declspec(dllimport) +BOOL +__stdcall +FindActCtxSectionStringW( + DWORD dwFlags, + const GUID *lpExtensionGuid, + ULONG ulSectionId, + LPCWSTR lpStringToFind, + PACTCTX_SECTION_KEYED_DATA ReturnedData + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +FindActCtxSectionGuid( + DWORD dwFlags, + const GUID *lpExtensionGuid, + ULONG ulSectionId, + const GUID *lpGuidToFind, + PACTCTX_SECTION_KEYED_DATA ReturnedData + ); + + + + + +typedef struct _ACTIVATION_CONTEXT_BASIC_INFORMATION { + HANDLE hActCtx; + DWORD dwFlags; +} ACTIVATION_CONTEXT_BASIC_INFORMATION, *PACTIVATION_CONTEXT_BASIC_INFORMATION; + +typedef const struct _ACTIVATION_CONTEXT_BASIC_INFORMATION *PCACTIVATION_CONTEXT_BASIC_INFORMATION; +# 7979 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +QueryActCtxW( + DWORD dwFlags, + HANDLE hActCtx, + PVOID pvSubInstance, + ULONG ulInfoClass, + PVOID pvBuffer, + SIZE_T cbBuffer, + SIZE_T *pcbWrittenOrRequired + ); + +typedef BOOL (__stdcall * PQUERYACTCTXW_FUNC)( + DWORD dwFlags, + HANDLE hActCtx, + PVOID pvSubInstance, + ULONG ulInfoClass, + PVOID pvBuffer, + SIZE_T cbBuffer, + SIZE_T *pcbWrittenOrRequired + ); +# 8013 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +DWORD +__stdcall +WTSGetActiveConsoleSessionId( + void + ); + + + + + +__declspec(dllimport) +DWORD +__stdcall +WTSGetServiceSessionId( + void + ); + +__declspec(dllimport) +BOOLEAN +__stdcall +WTSIsServerContainer( + void + ); + + + + + +__declspec(dllimport) +WORD +__stdcall +GetActiveProcessorGroupCount( + void + ); + +__declspec(dllimport) +WORD +__stdcall +GetMaximumProcessorGroupCount( + void + ); + +__declspec(dllimport) +DWORD +__stdcall +GetActiveProcessorCount( + WORD GroupNumber + ); + +__declspec(dllimport) +DWORD +__stdcall +GetMaximumProcessorCount( + WORD GroupNumber + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetNumaProcessorNode( + UCHAR Processor, + PUCHAR NodeNumber + ); + + + +__declspec(dllimport) +BOOL +__stdcall +GetNumaNodeNumberFromHandle( + HANDLE hFile, + PUSHORT NodeNumber + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetNumaProcessorNodeEx( + PPROCESSOR_NUMBER Processor, + PUSHORT NodeNumber + ); + + + +__declspec(dllimport) +BOOL +__stdcall +GetNumaNodeProcessorMask( + UCHAR Node, + PULONGLONG ProcessorMask + ); + +__declspec(dllimport) +BOOL +__stdcall +GetNumaAvailableMemoryNode( + UCHAR Node, + PULONGLONG AvailableBytes + ); + + + +__declspec(dllimport) +BOOL +__stdcall +GetNumaAvailableMemoryNodeEx( + USHORT Node, + PULONGLONG AvailableBytes + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetNumaProximityNode( + ULONG ProximityId, + PUCHAR NodeNumber + ); +# 8157 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef DWORD (__stdcall *APPLICATION_RECOVERY_CALLBACK)(PVOID pvParameter); +# 8195 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +HRESULT +__stdcall +RegisterApplicationRecoveryCallback( + APPLICATION_RECOVERY_CALLBACK pRecoveyCallback, + PVOID pvParameter, + DWORD dwPingInterval, + DWORD dwFlags + ); + +__declspec(dllimport) +HRESULT +__stdcall +UnregisterApplicationRecoveryCallback(void); + +__declspec(dllimport) +HRESULT +__stdcall +RegisterApplicationRestart( + PCWSTR pwzCommandline, + DWORD dwFlags + ); + +__declspec(dllimport) +HRESULT +__stdcall +UnregisterApplicationRestart(void); +# 8233 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +HRESULT +__stdcall +GetApplicationRecoveryCallback( + HANDLE hProcess, + APPLICATION_RECOVERY_CALLBACK* pRecoveryCallback, + PVOID* ppvParameter, + PDWORD pdwPingInterval, + PDWORD pdwFlags + ); + +__declspec(dllimport) +HRESULT +__stdcall +GetApplicationRestartSettings( + HANDLE hProcess, + PWSTR pwzCommandline, + PDWORD pcchSize, + PDWORD pdwFlags + ); +# 8264 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +HRESULT +__stdcall +ApplicationRecoveryInProgress( + PBOOL pbCancelled + ); + +__declspec(dllimport) +void +__stdcall +ApplicationRecoveryFinished( + BOOL bSuccess + ); +# 8288 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef struct _FILE_BASIC_INFO { + LARGE_INTEGER CreationTime; + LARGE_INTEGER LastAccessTime; + LARGE_INTEGER LastWriteTime; + LARGE_INTEGER ChangeTime; + DWORD FileAttributes; +} FILE_BASIC_INFO, *PFILE_BASIC_INFO; + +typedef struct _FILE_STANDARD_INFO { + LARGE_INTEGER AllocationSize; + LARGE_INTEGER EndOfFile; + DWORD NumberOfLinks; + BOOLEAN DeletePending; + BOOLEAN Directory; +} FILE_STANDARD_INFO, *PFILE_STANDARD_INFO; + +typedef struct _FILE_NAME_INFO { + DWORD FileNameLength; + WCHAR FileName[1]; +} FILE_NAME_INFO, *PFILE_NAME_INFO; + + + + + + +typedef struct _FILE_RENAME_INFO { + + union { + BOOLEAN ReplaceIfExists; + DWORD Flags; + } ; + + + + HANDLE RootDirectory; + DWORD FileNameLength; + WCHAR FileName[1]; +} FILE_RENAME_INFO, *PFILE_RENAME_INFO; + +typedef struct _FILE_ALLOCATION_INFO { + LARGE_INTEGER AllocationSize; +} FILE_ALLOCATION_INFO, *PFILE_ALLOCATION_INFO; + +typedef struct _FILE_END_OF_FILE_INFO { + LARGE_INTEGER EndOfFile; +} FILE_END_OF_FILE_INFO, *PFILE_END_OF_FILE_INFO; + +typedef struct _FILE_STREAM_INFO { + DWORD NextEntryOffset; + DWORD StreamNameLength; + LARGE_INTEGER StreamSize; + LARGE_INTEGER StreamAllocationSize; + WCHAR StreamName[1]; +} FILE_STREAM_INFO, *PFILE_STREAM_INFO; + +typedef struct _FILE_COMPRESSION_INFO { + LARGE_INTEGER CompressedFileSize; + WORD CompressionFormat; + UCHAR CompressionUnitShift; + UCHAR ChunkShift; + UCHAR ClusterShift; + UCHAR Reserved[3]; +} FILE_COMPRESSION_INFO, *PFILE_COMPRESSION_INFO; + +typedef struct _FILE_ATTRIBUTE_TAG_INFO { + DWORD FileAttributes; + DWORD ReparseTag; +} FILE_ATTRIBUTE_TAG_INFO, *PFILE_ATTRIBUTE_TAG_INFO; + +typedef struct _FILE_DISPOSITION_INFO { + BOOLEAN DeleteFileW; +} FILE_DISPOSITION_INFO, *PFILE_DISPOSITION_INFO; +# 8369 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef struct _FILE_DISPOSITION_INFO_EX { + DWORD Flags; +} FILE_DISPOSITION_INFO_EX, *PFILE_DISPOSITION_INFO_EX; + + +typedef struct _FILE_ID_BOTH_DIR_INFO { + DWORD NextEntryOffset; + DWORD FileIndex; + LARGE_INTEGER CreationTime; + LARGE_INTEGER LastAccessTime; + LARGE_INTEGER LastWriteTime; + LARGE_INTEGER ChangeTime; + LARGE_INTEGER EndOfFile; + LARGE_INTEGER AllocationSize; + DWORD FileAttributes; + DWORD FileNameLength; + DWORD EaSize; + CCHAR ShortNameLength; + WCHAR ShortName[12]; + LARGE_INTEGER FileId; + WCHAR FileName[1]; +} FILE_ID_BOTH_DIR_INFO, *PFILE_ID_BOTH_DIR_INFO; + +typedef struct _FILE_FULL_DIR_INFO { + ULONG NextEntryOffset; + ULONG FileIndex; + LARGE_INTEGER CreationTime; + LARGE_INTEGER LastAccessTime; + LARGE_INTEGER LastWriteTime; + LARGE_INTEGER ChangeTime; + LARGE_INTEGER EndOfFile; + LARGE_INTEGER AllocationSize; + ULONG FileAttributes; + ULONG FileNameLength; + ULONG EaSize; + WCHAR FileName[1]; +} FILE_FULL_DIR_INFO, *PFILE_FULL_DIR_INFO; + +typedef enum _PRIORITY_HINT { + IoPriorityHintVeryLow = 0, + IoPriorityHintLow, + IoPriorityHintNormal, + MaximumIoPriorityHintType +} PRIORITY_HINT; + +typedef struct _FILE_IO_PRIORITY_HINT_INFO { + PRIORITY_HINT PriorityHint; +} FILE_IO_PRIORITY_HINT_INFO, *PFILE_IO_PRIORITY_HINT_INFO; + + + + + +typedef struct _FILE_ALIGNMENT_INFO { + ULONG AlignmentRequirement; +} FILE_ALIGNMENT_INFO, *PFILE_ALIGNMENT_INFO; +# 8445 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef struct _FILE_STORAGE_INFO { + ULONG LogicalBytesPerSector; + ULONG PhysicalBytesPerSectorForAtomicity; + ULONG PhysicalBytesPerSectorForPerformance; + ULONG FileSystemEffectivePhysicalBytesPerSectorForAtomicity; + ULONG Flags; + ULONG ByteOffsetForSectorAlignment; + ULONG ByteOffsetForPartitionAlignment; +} FILE_STORAGE_INFO, *PFILE_STORAGE_INFO; + + + + +typedef struct _FILE_ID_INFO { + ULONGLONG VolumeSerialNumber; + FILE_ID_128 FileId; +} FILE_ID_INFO, *PFILE_ID_INFO; + + + + +typedef struct _FILE_ID_EXTD_DIR_INFO { + ULONG NextEntryOffset; + ULONG FileIndex; + LARGE_INTEGER CreationTime; + LARGE_INTEGER LastAccessTime; + LARGE_INTEGER LastWriteTime; + LARGE_INTEGER ChangeTime; + LARGE_INTEGER EndOfFile; + LARGE_INTEGER AllocationSize; + ULONG FileAttributes; + ULONG FileNameLength; + ULONG EaSize; + ULONG ReparsePointTag; + FILE_ID_128 FileId; + WCHAR FileName[1]; +} FILE_ID_EXTD_DIR_INFO, *PFILE_ID_EXTD_DIR_INFO; +# 8519 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +typedef struct _FILE_REMOTE_PROTOCOL_INFO +{ + + USHORT StructureVersion; + USHORT StructureSize; + + ULONG Protocol; + + + USHORT ProtocolMajorVersion; + USHORT ProtocolMinorVersion; + USHORT ProtocolRevision; + + USHORT Reserved; + + + ULONG Flags; + + struct { + ULONG Reserved[8]; + } GenericReserved; +# 8550 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" + union { + + struct { + + struct { + ULONG Capabilities; + } Server; + + struct { + ULONG Capabilities; + ULONG CachingFlags; + } Share; + + } Smb2; + + ULONG Reserved[16]; + + } ProtocolSpecific; + + + +} FILE_REMOTE_PROTOCOL_INFO, *PFILE_REMOTE_PROTOCOL_INFO; + +__declspec(dllimport) +BOOL +__stdcall +GetFileInformationByHandleEx( + HANDLE hFile, + FILE_INFO_BY_HANDLE_CLASS FileInformationClass, + LPVOID lpFileInformation, + DWORD dwBufferSize +); + + + + + + + +typedef enum _FILE_ID_TYPE { + FileIdType, + ObjectIdType, + ExtendedFileIdType, + MaximumFileIdType +} FILE_ID_TYPE, *PFILE_ID_TYPE; + +typedef struct FILE_ID_DESCRIPTOR { + DWORD dwSize; + FILE_ID_TYPE Type; + union { + LARGE_INTEGER FileId; + GUID ObjectId; + + FILE_ID_128 ExtendedFileId; + + } ; +} FILE_ID_DESCRIPTOR, *LPFILE_ID_DESCRIPTOR; + +__declspec(dllimport) +HANDLE +__stdcall +OpenFileById ( + HANDLE hVolumeHint, + LPFILE_ID_DESCRIPTOR lpFileId, + DWORD dwDesiredAccess, + DWORD dwShareMode, + LPSECURITY_ATTRIBUTES lpSecurityAttributes, + DWORD dwFlagsAndAttributes + ); +# 8638 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOLEAN +__stdcall +CreateSymbolicLinkA ( + LPCSTR lpSymlinkFileName, + LPCSTR lpTargetFileName, + DWORD dwFlags + ); +__declspec(dllimport) +BOOLEAN +__stdcall +CreateSymbolicLinkW ( + LPCWSTR lpSymlinkFileName, + LPCWSTR lpTargetFileName, + DWORD dwFlags + ); +# 8664 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +QueryActCtxSettingsW( + DWORD dwFlags, + HANDLE hActCtx, + PCWSTR settingsNameSpace, + PCWSTR settingName, + PWSTR pvBuffer, + SIZE_T dwBuffer, + SIZE_T *pdwWrittenOrRequired + ); +# 8687 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOLEAN +__stdcall +CreateSymbolicLinkTransactedA ( + LPCSTR lpSymlinkFileName, + LPCSTR lpTargetFileName, + DWORD dwFlags, + HANDLE hTransaction + ); +__declspec(dllimport) +BOOLEAN +__stdcall +CreateSymbolicLinkTransactedW ( + LPCWSTR lpSymlinkFileName, + LPCWSTR lpTargetFileName, + DWORD dwFlags, + HANDLE hTransaction + ); +# 8715 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +ReplacePartitionUnit ( + PWSTR TargetPartition, + PWSTR SparePartition, + ULONG Flags + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +AddSecureMemoryCacheCallback( + PSECURE_MEMORY_CACHE_CALLBACK pfnCallBack + ); + +__declspec(dllimport) +BOOL +__stdcall +RemoveSecureMemoryCacheCallback( + PSECURE_MEMORY_CACHE_CALLBACK pfnCallBack + ); +# 8754 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +CopyContext( + PCONTEXT Destination, + DWORD ContextFlags, + PCONTEXT Source + ); +# 8770 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +InitializeContext( + PVOID Buffer, + DWORD ContextFlags, + PCONTEXT* Context, + PDWORD ContextLength + ); +# 8787 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +DWORD64 +__stdcall +GetEnabledXStateFeatures( + void + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetXStateFeaturesMask( + PCONTEXT Context, + PDWORD64 FeatureMask + ); + + +__declspec(dllimport) +PVOID +__stdcall +LocateXStateFeature( + PCONTEXT Context, + DWORD FeatureId, + PDWORD Length + ); +# 8820 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +BOOL +__stdcall +SetXStateFeaturesMask( + PCONTEXT Context, + DWORD64 FeatureMask + ); +# 8840 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +__declspec(dllimport) +DWORD +__stdcall +EnableThreadProfiling( + HANDLE ThreadHandle, + DWORD Flags, + DWORD64 HardwareCounters, + HANDLE *PerformanceDataHandle + ); + +__declspec(dllimport) +DWORD +__stdcall +DisableThreadProfiling( + HANDLE PerformanceDataHandle + ); + +__declspec(dllimport) +DWORD +__stdcall +QueryThreadProfiling( + HANDLE ThreadHandle, + PBOOLEAN Enabled + ); + +__declspec(dllimport) +DWORD +__stdcall +ReadThreadProfilingData( + HANDLE PerformanceDataHandle, + DWORD Flags, + PPERFORMANCE_DATA PerformanceData + ); +# 8888 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +} + + + + +#pragma warning(pop) +# 8950 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winbase.h" +extern "C++" { + +__forceinline +unsigned +_InterlockedIncrement( + unsigned volatile *Addend + ) +{ + return (unsigned) _InterlockedIncrement((volatile long*) Addend); +} + +__forceinline +unsigned long +_InterlockedIncrement( + unsigned long volatile *Addend + ) +{ + return (unsigned long) _InterlockedIncrement((volatile long*) Addend); +} + + + + +__forceinline +unsigned __int64 +_InterlockedIncrement( + unsigned __int64 volatile *Addend + ) +{ + return (unsigned __int64) (_InlineInterlockedIncrement64)((volatile __int64*) Addend); +} + + + +__forceinline +unsigned +_InterlockedDecrement( + unsigned volatile *Addend + ) +{ + return (unsigned long) _InterlockedDecrement((volatile long*) Addend); +} + +__forceinline +unsigned long +_InterlockedDecrement( + unsigned long volatile *Addend + ) +{ + return (unsigned long) _InterlockedDecrement((volatile long*) Addend); +} + + + + +__forceinline +unsigned __int64 +_InterlockedDecrement( + unsigned __int64 volatile *Addend + ) +{ + return (unsigned __int64) (_InlineInterlockedDecrement64)((volatile __int64*) Addend); +} + + + + + +__forceinline +unsigned +_InterlockedExchange( + unsigned volatile *Target, + unsigned Value + ) +{ + return (unsigned) _InterlockedExchange((volatile long*) Target, (long) Value); +} + +__forceinline +unsigned long +_InterlockedExchange( + unsigned long volatile *Target, + unsigned long Value + ) +{ + return (unsigned long) _InterlockedExchange((volatile long*) Target, (long) Value); +} + + + +__forceinline +unsigned __int64 +_InterlockedExchange( + unsigned __int64 volatile *Target, + unsigned __int64 Value + ) +{ + return (unsigned __int64) _InlineInterlockedExchange64((volatile __int64*) Target, (__int64) Value); +} + + + +__forceinline +unsigned +_InterlockedExchangeAdd( + unsigned volatile *Addend, + unsigned Value + ) +{ + return (unsigned) _InterlockedExchangeAdd((volatile long*) Addend, (long) Value); +} + +__forceinline +unsigned +InterlockedExchangeSubtract( + unsigned volatile *Addend, + unsigned Value + ) +{ + return (unsigned) _InterlockedExchangeAdd((volatile long*) Addend, - (long) Value); +} + +__forceinline +unsigned long +_InterlockedExchangeAdd( + unsigned long volatile *Addend, + unsigned long Value + ) +{ + return (unsigned long) _InterlockedExchangeAdd((volatile long*) Addend, (long) Value); +} + +__forceinline +unsigned long +InterlockedExchangeSubtract( + unsigned long volatile *Addend, + unsigned long Value + ) +{ + return (unsigned long) _InterlockedExchangeAdd((volatile long*) Addend, - (long) Value); +} + + + +__forceinline +unsigned __int64 +_InterlockedExchangeAdd( + unsigned __int64 volatile *Addend, + unsigned __int64 Value + ) +{ + return (unsigned __int64) _InlineInterlockedExchangeAdd64((volatile __int64*) Addend, (__int64) Value); +} + +__forceinline +unsigned __int64 +InterlockedExchangeSubtract( + unsigned __int64 volatile *Addend, + unsigned __int64 Value + ) +{ + return (unsigned __int64) _InlineInterlockedExchangeAdd64((volatile __int64*) Addend, - (__int64) Value); +} + + + +__forceinline +unsigned +_InterlockedCompareExchange( + unsigned volatile *Destination, + unsigned Exchange, + unsigned Comperand + ) +{ + return (unsigned) _InterlockedCompareExchange((volatile long*) Destination, (long) Exchange, (long) Comperand); +} + +__forceinline +unsigned long +_InterlockedCompareExchange( + unsigned long volatile *Destination, + unsigned long Exchange, + unsigned long Comperand + ) +{ + return (unsigned long) _InterlockedCompareExchange((volatile long*) Destination, (long) Exchange, (long) Comperand); +} + + + +__forceinline +unsigned __int64 +_InterlockedCompareExchange( + unsigned __int64 volatile *Destination, + unsigned __int64 Exchange, + unsigned __int64 Comperand + ) +{ + return (unsigned __int64) _InterlockedCompareExchange64((volatile __int64*) Destination, (__int64) Exchange, (__int64) Comperand); +} + +__forceinline +unsigned __int64 +_InterlockedAnd( + unsigned __int64 volatile *Destination, + unsigned __int64 Value + ) +{ + return (unsigned __int64) _InlineInterlockedAnd64((volatile __int64*) Destination, (__int64) Value); +} + +__forceinline +unsigned __int64 +_InterlockedOr( + unsigned __int64 volatile *Destination, + unsigned __int64 Value + ) +{ + return (unsigned __int64) _InlineInterlockedOr64((volatile __int64*) Destination, (__int64) Value); +} + +__forceinline +unsigned __int64 +_InterlockedXor( + unsigned __int64 volatile *Destination, + unsigned __int64 Value + ) +{ + return (unsigned __int64) _InlineInterlockedXor64((volatile __int64*) Destination, (__int64) Value); +} + + + + + +} +# 169 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\Windows.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" 1 +# 18 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +#pragma warning(push) +#pragma warning(disable: 4201) + + + +#pragma warning(disable: 4820) +# 52 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +extern "C" { +# 293 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct _DRAWPATRECT { + POINT ptPosition; + POINT ptSize; + WORD wStyle; + WORD wPattern; +} DRAWPATRECT, *PDRAWPATRECT; +# 425 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct _PSINJECTDATA { + + DWORD DataBytes; + WORD InjectionPoint; + WORD PageNumber; + + + +} PSINJECTDATA, *PPSINJECTDATA; +# 513 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct _PSFEATURE_OUTPUT { + + BOOL bPageIndependent; + BOOL bSetPageDevice; + +} PSFEATURE_OUTPUT, *PPSFEATURE_OUTPUT; + + + + + +typedef struct _PSFEATURE_CUSTPAPER { + + LONG lOrientation; + LONG lWidth; + LONG lHeight; + LONG lWidthOffset; + LONG lHeightOffset; + +} PSFEATURE_CUSTPAPER, *PPSFEATURE_CUSTPAPER; +# 590 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagXFORM + { + FLOAT eM11; + FLOAT eM12; + FLOAT eM21; + FLOAT eM22; + FLOAT eDx; + FLOAT eDy; + } XFORM, *PXFORM, *LPXFORM; + + +typedef struct tagBITMAP + { + LONG bmType; + LONG bmWidth; + LONG bmHeight; + LONG bmWidthBytes; + WORD bmPlanes; + WORD bmBitsPixel; + LPVOID bmBits; + } BITMAP, *PBITMAP, *NPBITMAP, *LPBITMAP; + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" +#pragma warning(disable: 4103) + +#pragma pack(push,1) +# 615 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" 2 + + + + + +typedef struct tagRGBTRIPLE { + BYTE rgbtBlue; + BYTE rgbtGreen; + BYTE rgbtRed; +} RGBTRIPLE, *PRGBTRIPLE, *NPRGBTRIPLE, *LPRGBTRIPLE; + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 629 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" 2 + + + + + +typedef struct tagRGBQUAD { + BYTE rgbBlue; + BYTE rgbGreen; + BYTE rgbRed; + BYTE rgbReserved; +} RGBQUAD; + + + + + + + +typedef RGBQUAD * LPRGBQUAD; +# 672 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef LONG LCSCSTYPE; + + + +typedef LONG LCSGAMUTMATCH; +# 704 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef long FXPT16DOT16, *LPFXPT16DOT16; +typedef long FXPT2DOT30, *LPFXPT2DOT30; + + + + +typedef struct tagCIEXYZ +{ + FXPT2DOT30 ciexyzX; + FXPT2DOT30 ciexyzY; + FXPT2DOT30 ciexyzZ; +} CIEXYZ; + + + + + + + +typedef CIEXYZ *LPCIEXYZ; + + + + + + + +typedef struct tagICEXYZTRIPLE +{ + CIEXYZ ciexyzRed; + CIEXYZ ciexyzGreen; + CIEXYZ ciexyzBlue; +} CIEXYZTRIPLE; + + + + + + + +typedef CIEXYZTRIPLE *LPCIEXYZTRIPLE; +# 757 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagLOGCOLORSPACEA { + DWORD lcsSignature; + DWORD lcsVersion; + DWORD lcsSize; + LCSCSTYPE lcsCSType; + LCSGAMUTMATCH lcsIntent; + CIEXYZTRIPLE lcsEndpoints; + DWORD lcsGammaRed; + DWORD lcsGammaGreen; + DWORD lcsGammaBlue; + CHAR lcsFilename[260]; +} LOGCOLORSPACEA, *LPLOGCOLORSPACEA; +typedef struct tagLOGCOLORSPACEW { + DWORD lcsSignature; + DWORD lcsVersion; + DWORD lcsSize; + LCSCSTYPE lcsCSType; + LCSGAMUTMATCH lcsIntent; + CIEXYZTRIPLE lcsEndpoints; + DWORD lcsGammaRed; + DWORD lcsGammaGreen; + DWORD lcsGammaBlue; + WCHAR lcsFilename[260]; +} LOGCOLORSPACEW, *LPLOGCOLORSPACEW; + +typedef LOGCOLORSPACEW LOGCOLORSPACE; +typedef LPLOGCOLORSPACEW LPLOGCOLORSPACE; +# 798 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagBITMAPCOREHEADER { + DWORD bcSize; + WORD bcWidth; + WORD bcHeight; + WORD bcPlanes; + WORD bcBitCount; +} BITMAPCOREHEADER, *LPBITMAPCOREHEADER, *PBITMAPCOREHEADER; + + + + + + + +typedef struct tagBITMAPINFOHEADER{ + DWORD biSize; + LONG biWidth; + LONG biHeight; + WORD biPlanes; + WORD biBitCount; + DWORD biCompression; + DWORD biSizeImage; + LONG biXPelsPerMeter; + LONG biYPelsPerMeter; + DWORD biClrUsed; + DWORD biClrImportant; +} BITMAPINFOHEADER, *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER; +# 834 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct { + DWORD bV4Size; + LONG bV4Width; + LONG bV4Height; + WORD bV4Planes; + WORD bV4BitCount; + DWORD bV4V4Compression; + DWORD bV4SizeImage; + LONG bV4XPelsPerMeter; + LONG bV4YPelsPerMeter; + DWORD bV4ClrUsed; + DWORD bV4ClrImportant; + DWORD bV4RedMask; + DWORD bV4GreenMask; + DWORD bV4BlueMask; + DWORD bV4AlphaMask; + DWORD bV4CSType; + CIEXYZTRIPLE bV4Endpoints; + DWORD bV4GammaRed; + DWORD bV4GammaGreen; + DWORD bV4GammaBlue; +} BITMAPV4HEADER, *LPBITMAPV4HEADER, *PBITMAPV4HEADER; +# 865 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct { + DWORD bV5Size; + LONG bV5Width; + LONG bV5Height; + WORD bV5Planes; + WORD bV5BitCount; + DWORD bV5Compression; + DWORD bV5SizeImage; + LONG bV5XPelsPerMeter; + LONG bV5YPelsPerMeter; + DWORD bV5ClrUsed; + DWORD bV5ClrImportant; + DWORD bV5RedMask; + DWORD bV5GreenMask; + DWORD bV5BlueMask; + DWORD bV5AlphaMask; + DWORD bV5CSType; + CIEXYZTRIPLE bV5Endpoints; + DWORD bV5GammaRed; + DWORD bV5GammaGreen; + DWORD bV5GammaBlue; + DWORD bV5Intent; + DWORD bV5ProfileData; + DWORD bV5ProfileSize; + DWORD bV5Reserved; +} BITMAPV5HEADER, *LPBITMAPV5HEADER, *PBITMAPV5HEADER; +# 913 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagBITMAPINFO { + BITMAPINFOHEADER bmiHeader; + RGBQUAD bmiColors[1]; +} BITMAPINFO, *LPBITMAPINFO, *PBITMAPINFO; + + + + + + + +typedef struct tagBITMAPCOREINFO { + BITMAPCOREHEADER bmciHeader; + RGBTRIPLE bmciColors[1]; +} BITMAPCOREINFO, *LPBITMAPCOREINFO, *PBITMAPCOREINFO; + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack2.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack2.h" +#pragma warning(disable: 4103) + +#pragma pack(push,2) +# 932 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" 2 + + + + + +typedef struct tagBITMAPFILEHEADER { + WORD bfType; + DWORD bfSize; + WORD bfReserved1; + WORD bfReserved2; + DWORD bfOffBits; +} BITMAPFILEHEADER, *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER; + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 948 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" 2 +# 958 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagFONTSIGNATURE +{ + DWORD fsUsb[4]; + DWORD fsCsb[2]; +} FONTSIGNATURE, *PFONTSIGNATURE, *LPFONTSIGNATURE; + + + + + + + +typedef struct tagCHARSETINFO +{ + UINT ciCharset; + UINT ciACP; + FONTSIGNATURE fs; +} CHARSETINFO, *PCHARSETINFO, *NPCHARSETINFO, *LPCHARSETINFO; +# 990 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagLOCALESIGNATURE +{ + DWORD lsUsb[4]; + DWORD lsCsbDefault[2]; + DWORD lsCsbSupported[2]; +} LOCALESIGNATURE, *PLOCALESIGNATURE, *LPLOCALESIGNATURE; +# 1010 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagHANDLETABLE + { + HGDIOBJ objectHandle[1]; + } HANDLETABLE, *PHANDLETABLE, *LPHANDLETABLE; + +typedef struct tagMETARECORD + { + DWORD rdSize; + WORD rdFunction; + WORD rdParm[1]; + } METARECORD; + + + + + + + +typedef struct tagMETARECORD *PMETARECORD; + + + + + + + +typedef struct tagMETARECORD *LPMETARECORD; + +typedef struct tagMETAFILEPICT + { + LONG mm; + LONG xExt; + LONG yExt; + HMETAFILE hMF; + } METAFILEPICT, *LPMETAFILEPICT; + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack2.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack2.h" +#pragma warning(disable: 4103) + +#pragma pack(push,2) +# 1049 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" 2 + + + + + +typedef struct tagMETAHEADER +{ + WORD mtType; + WORD mtHeaderSize; + WORD mtVersion; + DWORD mtSize; + WORD mtNoObjects; + DWORD mtMaxRecord; + WORD mtNoParameters; +} METAHEADER; +typedef struct tagMETAHEADER *PMETAHEADER; +typedef struct tagMETAHEADER *LPMETAHEADER; + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 1070 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" 2 + + + + + + +typedef struct tagENHMETARECORD +{ + DWORD iType; + DWORD nSize; + DWORD dParm[1]; +} ENHMETARECORD, *PENHMETARECORD, *LPENHMETARECORD; + +typedef struct tagENHMETAHEADER +{ + DWORD iType; + DWORD nSize; + + RECTL rclBounds; + RECTL rclFrame; + DWORD dSignature; + DWORD nVersion; + DWORD nBytes; + DWORD nRecords; + WORD nHandles; + + WORD sReserved; + DWORD nDescription; + + DWORD offDescription; + + DWORD nPalEntries; + SIZEL szlDevice; + SIZEL szlMillimeters; + + DWORD cbPixelFormat; + + DWORD offPixelFormat; + + DWORD bOpenGL; + + + + SIZEL szlMicrometers; + + +} ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER; +# 1138 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" + typedef WCHAR BCHAR; +# 1148 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack4.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack4.h" +#pragma warning(disable: 4103) + +#pragma pack(push,4) +# 1148 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" 2 + + + + + +typedef struct tagTEXTMETRICA +{ + LONG tmHeight; + LONG tmAscent; + LONG tmDescent; + LONG tmInternalLeading; + LONG tmExternalLeading; + LONG tmAveCharWidth; + LONG tmMaxCharWidth; + LONG tmWeight; + LONG tmOverhang; + LONG tmDigitizedAspectX; + LONG tmDigitizedAspectY; + BYTE tmFirstChar; + BYTE tmLastChar; + BYTE tmDefaultChar; + BYTE tmBreakChar; + BYTE tmItalic; + BYTE tmUnderlined; + BYTE tmStruckOut; + BYTE tmPitchAndFamily; + BYTE tmCharSet; +} TEXTMETRICA, *PTEXTMETRICA, *NPTEXTMETRICA, *LPTEXTMETRICA; +typedef struct tagTEXTMETRICW +{ + LONG tmHeight; + LONG tmAscent; + LONG tmDescent; + LONG tmInternalLeading; + LONG tmExternalLeading; + LONG tmAveCharWidth; + LONG tmMaxCharWidth; + LONG tmWeight; + LONG tmOverhang; + LONG tmDigitizedAspectX; + LONG tmDigitizedAspectY; + WCHAR tmFirstChar; + WCHAR tmLastChar; + WCHAR tmDefaultChar; + WCHAR tmBreakChar; + BYTE tmItalic; + BYTE tmUnderlined; + BYTE tmStruckOut; + BYTE tmPitchAndFamily; + BYTE tmCharSet; +} TEXTMETRICW, *PTEXTMETRICW, *NPTEXTMETRICW, *LPTEXTMETRICW; + +typedef TEXTMETRICW TEXTMETRIC; +typedef PTEXTMETRICW PTEXTMETRIC; +typedef NPTEXTMETRICW NPTEXTMETRIC; +typedef LPTEXTMETRICW LPTEXTMETRIC; +# 1214 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 1214 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" 2 +# 1231 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack4.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack4.h" +#pragma warning(disable: 4103) + +#pragma pack(push,4) +# 1231 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" 2 + + + + + +typedef struct tagNEWTEXTMETRICA +{ + LONG tmHeight; + LONG tmAscent; + LONG tmDescent; + LONG tmInternalLeading; + LONG tmExternalLeading; + LONG tmAveCharWidth; + LONG tmMaxCharWidth; + LONG tmWeight; + LONG tmOverhang; + LONG tmDigitizedAspectX; + LONG tmDigitizedAspectY; + BYTE tmFirstChar; + BYTE tmLastChar; + BYTE tmDefaultChar; + BYTE tmBreakChar; + BYTE tmItalic; + BYTE tmUnderlined; + BYTE tmStruckOut; + BYTE tmPitchAndFamily; + BYTE tmCharSet; + DWORD ntmFlags; + UINT ntmSizeEM; + UINT ntmCellHeight; + UINT ntmAvgWidth; +} NEWTEXTMETRICA, *PNEWTEXTMETRICA, *NPNEWTEXTMETRICA, *LPNEWTEXTMETRICA; +typedef struct tagNEWTEXTMETRICW +{ + LONG tmHeight; + LONG tmAscent; + LONG tmDescent; + LONG tmInternalLeading; + LONG tmExternalLeading; + LONG tmAveCharWidth; + LONG tmMaxCharWidth; + LONG tmWeight; + LONG tmOverhang; + LONG tmDigitizedAspectX; + LONG tmDigitizedAspectY; + WCHAR tmFirstChar; + WCHAR tmLastChar; + WCHAR tmDefaultChar; + WCHAR tmBreakChar; + BYTE tmItalic; + BYTE tmUnderlined; + BYTE tmStruckOut; + BYTE tmPitchAndFamily; + BYTE tmCharSet; + DWORD ntmFlags; + UINT ntmSizeEM; + UINT ntmCellHeight; + UINT ntmAvgWidth; +} NEWTEXTMETRICW, *PNEWTEXTMETRICW, *NPNEWTEXTMETRICW, *LPNEWTEXTMETRICW; + +typedef NEWTEXTMETRICW NEWTEXTMETRIC; +typedef PNEWTEXTMETRICW PNEWTEXTMETRIC; +typedef NPNEWTEXTMETRICW NPNEWTEXTMETRIC; +typedef LPNEWTEXTMETRICW LPNEWTEXTMETRIC; +# 1305 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 1305 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" 2 + + + + + + + +typedef struct tagNEWTEXTMETRICEXA +{ + NEWTEXTMETRICA ntmTm; + FONTSIGNATURE ntmFontSig; +}NEWTEXTMETRICEXA; +typedef struct tagNEWTEXTMETRICEXW +{ + NEWTEXTMETRICW ntmTm; + FONTSIGNATURE ntmFontSig; +}NEWTEXTMETRICEXW; + +typedef NEWTEXTMETRICEXW NEWTEXTMETRICEX; +# 1339 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagPELARRAY + { + LONG paXCount; + LONG paYCount; + LONG paXExt; + LONG paYExt; + BYTE paRGBs; + } PELARRAY, *PPELARRAY, *NPPELARRAY, *LPPELARRAY; +# 1355 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagLOGBRUSH + { + UINT lbStyle; + COLORREF lbColor; + ULONG_PTR lbHatch; + } LOGBRUSH, *PLOGBRUSH, *NPLOGBRUSH, *LPLOGBRUSH; + +typedef struct tagLOGBRUSH32 + { + UINT lbStyle; + COLORREF lbColor; + ULONG lbHatch; + } LOGBRUSH32, *PLOGBRUSH32, *NPLOGBRUSH32, *LPLOGBRUSH32; + + + + + + + +typedef LOGBRUSH PATTERN; +typedef PATTERN *PPATTERN; +typedef PATTERN *NPPATTERN; +typedef PATTERN *LPPATTERN; +# 1387 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagLOGPEN + { + UINT lopnStyle; + POINT lopnWidth; + COLORREF lopnColor; + } LOGPEN, *PLOGPEN, *NPLOGPEN, *LPLOGPEN; + + + + + + + +typedef struct tagEXTLOGPEN { + DWORD elpPenStyle; + DWORD elpWidth; + UINT elpBrushStyle; + COLORREF elpColor; + ULONG_PTR elpHatch; + DWORD elpNumEntries; + DWORD elpStyleEntry[1]; +} EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN; + + + + + + + +typedef struct tagEXTLOGPEN32 { + DWORD elpPenStyle; + DWORD elpWidth; + UINT elpBrushStyle; + COLORREF elpColor; + ULONG elpHatch; + DWORD elpNumEntries; + DWORD elpStyleEntry[1]; +} EXTLOGPEN32, *PEXTLOGPEN32, *NPEXTLOGPEN32, *LPEXTLOGPEN32; + + + +typedef struct tagPALETTEENTRY { + BYTE peRed; + BYTE peGreen; + BYTE peBlue; + BYTE peFlags; +} PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY; + + + + + +typedef struct tagLOGPALETTE { + WORD palVersion; + WORD palNumEntries; + PALETTEENTRY palPalEntry[1]; +} LOGPALETTE, *PLOGPALETTE, *NPLOGPALETTE, *LPLOGPALETTE; + + + + + + +typedef struct tagLOGFONTA +{ + LONG lfHeight; + LONG lfWidth; + LONG lfEscapement; + LONG lfOrientation; + LONG lfWeight; + BYTE lfItalic; + BYTE lfUnderline; + BYTE lfStrikeOut; + BYTE lfCharSet; + BYTE lfOutPrecision; + BYTE lfClipPrecision; + BYTE lfQuality; + BYTE lfPitchAndFamily; + CHAR lfFaceName[32]; +} LOGFONTA, *PLOGFONTA, *NPLOGFONTA, *LPLOGFONTA; +typedef struct tagLOGFONTW +{ + LONG lfHeight; + LONG lfWidth; + LONG lfEscapement; + LONG lfOrientation; + LONG lfWeight; + BYTE lfItalic; + BYTE lfUnderline; + BYTE lfStrikeOut; + BYTE lfCharSet; + BYTE lfOutPrecision; + BYTE lfClipPrecision; + BYTE lfQuality; + BYTE lfPitchAndFamily; + WCHAR lfFaceName[32]; +} LOGFONTW, *PLOGFONTW, *NPLOGFONTW, *LPLOGFONTW; + +typedef LOGFONTW LOGFONT; +typedef PLOGFONTW PLOGFONT; +typedef NPLOGFONTW NPLOGFONT; +typedef LPLOGFONTW LPLOGFONT; +# 1505 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagENUMLOGFONTA +{ + LOGFONTA elfLogFont; + BYTE elfFullName[64]; + BYTE elfStyle[32]; +} ENUMLOGFONTA, * LPENUMLOGFONTA; + +typedef struct tagENUMLOGFONTW +{ + LOGFONTW elfLogFont; + WCHAR elfFullName[64]; + WCHAR elfStyle[32]; +} ENUMLOGFONTW, * LPENUMLOGFONTW; + +typedef ENUMLOGFONTW ENUMLOGFONT; +typedef LPENUMLOGFONTW LPENUMLOGFONT; + + + + + + +typedef struct tagENUMLOGFONTEXA +{ + LOGFONTA elfLogFont; + BYTE elfFullName[64]; + BYTE elfStyle[32]; + BYTE elfScript[32]; +} ENUMLOGFONTEXA, *LPENUMLOGFONTEXA; +typedef struct tagENUMLOGFONTEXW +{ + LOGFONTW elfLogFont; + WCHAR elfFullName[64]; + WCHAR elfStyle[32]; + WCHAR elfScript[32]; +} ENUMLOGFONTEXW, *LPENUMLOGFONTEXW; + +typedef ENUMLOGFONTEXW ENUMLOGFONTEX; +typedef LPENUMLOGFONTEXW LPENUMLOGFONTEX; +# 1683 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagPANOSE +{ + BYTE bFamilyType; + BYTE bSerifStyle; + BYTE bWeight; + BYTE bProportion; + BYTE bContrast; + BYTE bStrokeVariation; + BYTE bArmStyle; + BYTE bLetterform; + BYTE bMidline; + BYTE bXHeight; +} PANOSE, * LPPANOSE; +# 1809 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagEXTLOGFONTA { + LOGFONTA elfLogFont; + BYTE elfFullName[64]; + BYTE elfStyle[32]; + DWORD elfVersion; + DWORD elfStyleSize; + DWORD elfMatch; + DWORD elfReserved; + BYTE elfVendorId[4]; + DWORD elfCulture; + PANOSE elfPanose; +} EXTLOGFONTA, *PEXTLOGFONTA, *NPEXTLOGFONTA, *LPEXTLOGFONTA; +typedef struct tagEXTLOGFONTW { + LOGFONTW elfLogFont; + WCHAR elfFullName[64]; + WCHAR elfStyle[32]; + DWORD elfVersion; + DWORD elfStyleSize; + DWORD elfMatch; + DWORD elfReserved; + BYTE elfVendorId[4]; + DWORD elfCulture; + PANOSE elfPanose; +} EXTLOGFONTW, *PEXTLOGFONTW, *NPEXTLOGFONTW, *LPEXTLOGFONTW; + +typedef EXTLOGFONTW EXTLOGFONT; +typedef PEXTLOGFONTW PEXTLOGFONT; +typedef NPEXTLOGFONTW NPEXTLOGFONT; +typedef LPEXTLOGFONTW LPEXTLOGFONT; +# 2195 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct _devicemodeA { + BYTE dmDeviceName[32]; + WORD dmSpecVersion; + WORD dmDriverVersion; + WORD dmSize; + WORD dmDriverExtra; + DWORD dmFields; + union { + + struct { + short dmOrientation; + short dmPaperSize; + short dmPaperLength; + short dmPaperWidth; + short dmScale; + short dmCopies; + short dmDefaultSource; + short dmPrintQuality; + } ; + + struct { + POINTL dmPosition; + DWORD dmDisplayOrientation; + DWORD dmDisplayFixedOutput; + } ; + } ; + short dmColor; + short dmDuplex; + short dmYResolution; + short dmTTOption; + short dmCollate; + BYTE dmFormName[32]; + WORD dmLogPixels; + DWORD dmBitsPerPel; + DWORD dmPelsWidth; + DWORD dmPelsHeight; + union { + DWORD dmDisplayFlags; + DWORD dmNup; + } ; + DWORD dmDisplayFrequency; + + DWORD dmICMMethod; + DWORD dmICMIntent; + DWORD dmMediaType; + DWORD dmDitherType; + DWORD dmReserved1; + DWORD dmReserved2; + + DWORD dmPanningWidth; + DWORD dmPanningHeight; + + +} DEVMODEA, *PDEVMODEA, *NPDEVMODEA, *LPDEVMODEA; +typedef struct _devicemodeW { + WCHAR dmDeviceName[32]; + WORD dmSpecVersion; + WORD dmDriverVersion; + WORD dmSize; + WORD dmDriverExtra; + DWORD dmFields; + union { + + struct { + short dmOrientation; + short dmPaperSize; + short dmPaperLength; + short dmPaperWidth; + short dmScale; + short dmCopies; + short dmDefaultSource; + short dmPrintQuality; + } ; + + struct { + POINTL dmPosition; + DWORD dmDisplayOrientation; + DWORD dmDisplayFixedOutput; + } ; + } ; + short dmColor; + short dmDuplex; + short dmYResolution; + short dmTTOption; + short dmCollate; + WCHAR dmFormName[32]; + WORD dmLogPixels; + DWORD dmBitsPerPel; + DWORD dmPelsWidth; + DWORD dmPelsHeight; + union { + DWORD dmDisplayFlags; + DWORD dmNup; + } ; + DWORD dmDisplayFrequency; + + DWORD dmICMMethod; + DWORD dmICMIntent; + DWORD dmMediaType; + DWORD dmDitherType; + DWORD dmReserved1; + DWORD dmReserved2; + + DWORD dmPanningWidth; + DWORD dmPanningHeight; + + +} DEVMODEW, *PDEVMODEW, *NPDEVMODEW, *LPDEVMODEW; + +typedef DEVMODEW DEVMODE; +typedef PDEVMODEW PDEVMODE; +typedef NPDEVMODEW NPDEVMODE; +typedef LPDEVMODEW LPDEVMODE; +# 2730 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct _DISPLAY_DEVICEA { + DWORD cb; + CHAR DeviceName[32]; + CHAR DeviceString[128]; + DWORD StateFlags; + CHAR DeviceID[128]; + CHAR DeviceKey[128]; +} DISPLAY_DEVICEA, *PDISPLAY_DEVICEA, *LPDISPLAY_DEVICEA; +typedef struct _DISPLAY_DEVICEW { + DWORD cb; + WCHAR DeviceName[32]; + WCHAR DeviceString[128]; + DWORD StateFlags; + WCHAR DeviceID[128]; + WCHAR DeviceKey[128]; +} DISPLAY_DEVICEW, *PDISPLAY_DEVICEW, *LPDISPLAY_DEVICEW; + +typedef DISPLAY_DEVICEW DISPLAY_DEVICE; +typedef PDISPLAY_DEVICEW PDISPLAY_DEVICE; +typedef LPDISPLAY_DEVICEW LPDISPLAY_DEVICE; +# 2796 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct DISPLAYCONFIG_RATIONAL +{ + UINT32 Numerator; + UINT32 Denominator; +} DISPLAYCONFIG_RATIONAL; + +typedef enum +{ + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_OTHER = -1, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15 = 0, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SVIDEO = 1, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPOSITE_VIDEO = 2, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPONENT_VIDEO = 3, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI = 4, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI = 5, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS = 6, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN = 8, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI = 9, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL = 10, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED = 11, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL = 12, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED = 13, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE = 14, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_MIRACAST = 15, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_WIRED = 16, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL = 0x80000000, + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32 = 0xFFFFFFFF +} DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY; + +typedef enum +{ + DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED = 0, + DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE = 1, + DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED = 2, + DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST = DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED, + DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_LOWERFIELDFIRST = 3, + DISPLAYCONFIG_SCANLINE_ORDERING_FORCE_UINT32 = 0xFFFFFFFF +} DISPLAYCONFIG_SCANLINE_ORDERING; + +typedef struct DISPLAYCONFIG_2DREGION +{ + UINT32 cx; + UINT32 cy; +} DISPLAYCONFIG_2DREGION; + +typedef struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO +{ + UINT64 pixelRate; + DISPLAYCONFIG_RATIONAL hSyncFreq; + DISPLAYCONFIG_RATIONAL vSyncFreq; + DISPLAYCONFIG_2DREGION activeSize; + DISPLAYCONFIG_2DREGION totalSize; + + union + { + struct + { + UINT32 videoStandard : 16; + + + UINT32 vSyncFreqDivider : 6; + + UINT32 reserved : 10; + } AdditionalSignalInfo; + + UINT32 videoStandard; + } ; + + + DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering; +} DISPLAYCONFIG_VIDEO_SIGNAL_INFO; + +typedef enum +{ + DISPLAYCONFIG_SCALING_IDENTITY = 1, + DISPLAYCONFIG_SCALING_CENTERED = 2, + DISPLAYCONFIG_SCALING_STRETCHED = 3, + DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX = 4, + DISPLAYCONFIG_SCALING_CUSTOM = 5, + DISPLAYCONFIG_SCALING_PREFERRED = 128, + DISPLAYCONFIG_SCALING_FORCE_UINT32 = 0xFFFFFFFF +} DISPLAYCONFIG_SCALING; + +typedef enum +{ + DISPLAYCONFIG_ROTATION_IDENTITY = 1, + DISPLAYCONFIG_ROTATION_ROTATE90 = 2, + DISPLAYCONFIG_ROTATION_ROTATE180 = 3, + DISPLAYCONFIG_ROTATION_ROTATE270 = 4, + DISPLAYCONFIG_ROTATION_FORCE_UINT32 = 0xFFFFFFFF +} DISPLAYCONFIG_ROTATION; + +typedef enum +{ + DISPLAYCONFIG_MODE_INFO_TYPE_SOURCE = 1, + DISPLAYCONFIG_MODE_INFO_TYPE_TARGET = 2, + DISPLAYCONFIG_MODE_INFO_TYPE_DESKTOP_IMAGE = 3, + DISPLAYCONFIG_MODE_INFO_TYPE_FORCE_UINT32 = 0xFFFFFFFF +} DISPLAYCONFIG_MODE_INFO_TYPE; + +typedef enum +{ + DISPLAYCONFIG_PIXELFORMAT_8BPP = 1, + DISPLAYCONFIG_PIXELFORMAT_16BPP = 2, + DISPLAYCONFIG_PIXELFORMAT_24BPP = 3, + DISPLAYCONFIG_PIXELFORMAT_32BPP = 4, + DISPLAYCONFIG_PIXELFORMAT_NONGDI = 5, + DISPLAYCONFIG_PIXELFORMAT_FORCE_UINT32 = 0xffffffff +} DISPLAYCONFIG_PIXELFORMAT; + +typedef struct DISPLAYCONFIG_SOURCE_MODE +{ + UINT32 width; + UINT32 height; + DISPLAYCONFIG_PIXELFORMAT pixelFormat; + POINTL position; +} DISPLAYCONFIG_SOURCE_MODE; + +typedef struct DISPLAYCONFIG_TARGET_MODE +{ + DISPLAYCONFIG_VIDEO_SIGNAL_INFO targetVideoSignalInfo; +} DISPLAYCONFIG_TARGET_MODE; + +typedef struct DISPLAYCONFIG_DESKTOP_IMAGE_INFO +{ + POINTL PathSourceSize; + RECTL DesktopImageRegion; + RECTL DesktopImageClip; +} DISPLAYCONFIG_DESKTOP_IMAGE_INFO; + +typedef struct DISPLAYCONFIG_MODE_INFO +{ + DISPLAYCONFIG_MODE_INFO_TYPE infoType; + UINT32 id; + LUID adapterId; + union + { + DISPLAYCONFIG_TARGET_MODE targetMode; + DISPLAYCONFIG_SOURCE_MODE sourceMode; + DISPLAYCONFIG_DESKTOP_IMAGE_INFO desktopImageInfo; + } ; +} DISPLAYCONFIG_MODE_INFO; + + + + + + + +typedef struct DISPLAYCONFIG_PATH_SOURCE_INFO +{ + LUID adapterId; + UINT32 id; + union + { + UINT32 modeInfoIdx; + struct + { + UINT32 cloneGroupId : 16; + UINT32 sourceModeInfoIdx : 16; + } ; + } ; + + UINT32 statusFlags; +} DISPLAYCONFIG_PATH_SOURCE_INFO; + + + + + + + +typedef struct DISPLAYCONFIG_PATH_TARGET_INFO +{ + LUID adapterId; + UINT32 id; + union + { + UINT32 modeInfoIdx; + struct + { + UINT32 desktopModeInfoIdx : 16; + UINT32 targetModeInfoIdx : 16; + } ; + } ; + DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY outputTechnology; + DISPLAYCONFIG_ROTATION rotation; + DISPLAYCONFIG_SCALING scaling; + DISPLAYCONFIG_RATIONAL refreshRate; + DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering; + BOOL targetAvailable; + UINT32 statusFlags; +} DISPLAYCONFIG_PATH_TARGET_INFO; +# 3000 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct DISPLAYCONFIG_PATH_INFO +{ + DISPLAYCONFIG_PATH_SOURCE_INFO sourceInfo; + DISPLAYCONFIG_PATH_TARGET_INFO targetInfo; + UINT32 flags; +} DISPLAYCONFIG_PATH_INFO; +# 3016 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef enum +{ + DISPLAYCONFIG_TOPOLOGY_INTERNAL = 0x00000001, + DISPLAYCONFIG_TOPOLOGY_CLONE = 0x00000002, + DISPLAYCONFIG_TOPOLOGY_EXTEND = 0x00000004, + DISPLAYCONFIG_TOPOLOGY_EXTERNAL = 0x00000008, + DISPLAYCONFIG_TOPOLOGY_FORCE_UINT32 = 0xFFFFFFFF +} DISPLAYCONFIG_TOPOLOGY_ID; + + +typedef enum +{ + DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_NAME = 1, + DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME = 2, + DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE = 3, + DISPLAYCONFIG_DEVICE_INFO_GET_ADAPTER_NAME = 4, + DISPLAYCONFIG_DEVICE_INFO_SET_TARGET_PERSISTENCE = 5, + DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE = 6, + DISPLAYCONFIG_DEVICE_INFO_GET_SUPPORT_VIRTUAL_RESOLUTION = 7, + DISPLAYCONFIG_DEVICE_INFO_SET_SUPPORT_VIRTUAL_RESOLUTION = 8, + DISPLAYCONFIG_DEVICE_INFO_FORCE_UINT32 = 0xFFFFFFFF +} DISPLAYCONFIG_DEVICE_INFO_TYPE; +# 3046 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct DISPLAYCONFIG_DEVICE_INFO_HEADER +{ + DISPLAYCONFIG_DEVICE_INFO_TYPE type; + UINT32 size; + LUID adapterId; + UINT32 id; +} DISPLAYCONFIG_DEVICE_INFO_HEADER; + + + + + + + +typedef struct DISPLAYCONFIG_SOURCE_DEVICE_NAME +{ + DISPLAYCONFIG_DEVICE_INFO_HEADER header; + WCHAR viewGdiDeviceName[32]; +} DISPLAYCONFIG_SOURCE_DEVICE_NAME; + +typedef struct DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS +{ + union + { + struct + { + UINT32 friendlyNameFromEdid : 1; + UINT32 friendlyNameForced : 1; + UINT32 edidIdsValid : 1; + UINT32 reserved : 29; + } ; + UINT32 value; + } ; +} DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS; + +typedef struct DISPLAYCONFIG_TARGET_DEVICE_NAME +{ + DISPLAYCONFIG_DEVICE_INFO_HEADER header; + DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS flags; + DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY outputTechnology; + UINT16 edidManufactureId; + UINT16 edidProductCodeId; + UINT32 connectorInstance; + WCHAR monitorFriendlyDeviceName[64]; + WCHAR monitorDevicePath[128]; +} DISPLAYCONFIG_TARGET_DEVICE_NAME; + +typedef struct DISPLAYCONFIG_TARGET_PREFERRED_MODE +{ + DISPLAYCONFIG_DEVICE_INFO_HEADER header; + UINT32 width; + UINT32 height; + DISPLAYCONFIG_TARGET_MODE targetMode; +} DISPLAYCONFIG_TARGET_PREFERRED_MODE; + +typedef struct DISPLAYCONFIG_ADAPTER_NAME +{ + DISPLAYCONFIG_DEVICE_INFO_HEADER header; + WCHAR adapterDevicePath[128]; +} DISPLAYCONFIG_ADAPTER_NAME; + +typedef struct DISPLAYCONFIG_TARGET_BASE_TYPE { + DISPLAYCONFIG_DEVICE_INFO_HEADER header; + DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY baseOutputTechnology; +} DISPLAYCONFIG_TARGET_BASE_TYPE; + +typedef struct DISPLAYCONFIG_SET_TARGET_PERSISTENCE +{ + DISPLAYCONFIG_DEVICE_INFO_HEADER header; + union + { + struct + { + UINT32 bootPersistenceOn : 1; + UINT32 reserved : 31; + } ; + UINT32 value; + } ; +} DISPLAYCONFIG_SET_TARGET_PERSISTENCE; + +typedef struct DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION +{ + DISPLAYCONFIG_DEVICE_INFO_HEADER header; + union + { + struct + { + UINT32 disableMonitorVirtualResolution : 1; + UINT32 reserved : 31; + } ; + UINT32 value; + } ; +} DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION; +# 3185 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct _RGNDATAHEADER { + DWORD dwSize; + DWORD iType; + DWORD nCount; + DWORD nRgnSize; + RECT rcBound; +} RGNDATAHEADER, *PRGNDATAHEADER; + +typedef struct _RGNDATA { + RGNDATAHEADER rdh; + char Buffer[1]; +} RGNDATA, *PRGNDATA, *NPRGNDATA, *LPRGNDATA; +# 3209 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct _ABC { + int abcA; + UINT abcB; + int abcC; +} ABC, *PABC, *NPABC, *LPABC; + +typedef struct _ABCFLOAT { + FLOAT abcfA; + FLOAT abcfB; + FLOAT abcfC; +} ABCFLOAT, *PABCFLOAT, *NPABCFLOAT, *LPABCFLOAT; +# 3233 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct _OUTLINETEXTMETRICA { + UINT otmSize; + TEXTMETRICA otmTextMetrics; + BYTE otmFiller; + PANOSE otmPanoseNumber; + UINT otmfsSelection; + UINT otmfsType; + int otmsCharSlopeRise; + int otmsCharSlopeRun; + int otmItalicAngle; + UINT otmEMSquare; + int otmAscent; + int otmDescent; + UINT otmLineGap; + UINT otmsCapEmHeight; + UINT otmsXHeight; + RECT otmrcFontBox; + int otmMacAscent; + int otmMacDescent; + UINT otmMacLineGap; + UINT otmusMinimumPPEM; + POINT otmptSubscriptSize; + POINT otmptSubscriptOffset; + POINT otmptSuperscriptSize; + POINT otmptSuperscriptOffset; + UINT otmsStrikeoutSize; + int otmsStrikeoutPosition; + int otmsUnderscoreSize; + int otmsUnderscorePosition; + PSTR otmpFamilyName; + PSTR otmpFaceName; + PSTR otmpStyleName; + PSTR otmpFullName; +} OUTLINETEXTMETRICA, *POUTLINETEXTMETRICA, *NPOUTLINETEXTMETRICA, *LPOUTLINETEXTMETRICA; +typedef struct _OUTLINETEXTMETRICW { + UINT otmSize; + TEXTMETRICW otmTextMetrics; + BYTE otmFiller; + PANOSE otmPanoseNumber; + UINT otmfsSelection; + UINT otmfsType; + int otmsCharSlopeRise; + int otmsCharSlopeRun; + int otmItalicAngle; + UINT otmEMSquare; + int otmAscent; + int otmDescent; + UINT otmLineGap; + UINT otmsCapEmHeight; + UINT otmsXHeight; + RECT otmrcFontBox; + int otmMacAscent; + int otmMacDescent; + UINT otmMacLineGap; + UINT otmusMinimumPPEM; + POINT otmptSubscriptSize; + POINT otmptSubscriptOffset; + POINT otmptSuperscriptSize; + POINT otmptSuperscriptOffset; + UINT otmsStrikeoutSize; + int otmsStrikeoutPosition; + int otmsUnderscoreSize; + int otmsUnderscorePosition; + PSTR otmpFamilyName; + PSTR otmpFaceName; + PSTR otmpStyleName; + PSTR otmpFullName; +} OUTLINETEXTMETRICW, *POUTLINETEXTMETRICW, *NPOUTLINETEXTMETRICW, *LPOUTLINETEXTMETRICW; + +typedef OUTLINETEXTMETRICW OUTLINETEXTMETRIC; +typedef POUTLINETEXTMETRICW POUTLINETEXTMETRIC; +typedef NPOUTLINETEXTMETRICW NPOUTLINETEXTMETRIC; +typedef LPOUTLINETEXTMETRICW LPOUTLINETEXTMETRIC; +# 3325 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagPOLYTEXTA +{ + int x; + int y; + UINT n; + LPCSTR lpstr; + UINT uiFlags; + RECT rcl; + int *pdx; +} POLYTEXTA, *PPOLYTEXTA, *NPPOLYTEXTA, *LPPOLYTEXTA; +typedef struct tagPOLYTEXTW +{ + int x; + int y; + UINT n; + LPCWSTR lpstr; + UINT uiFlags; + RECT rcl; + int *pdx; +} POLYTEXTW, *PPOLYTEXTW, *NPPOLYTEXTW, *LPPOLYTEXTW; + +typedef POLYTEXTW POLYTEXT; +typedef PPOLYTEXTW PPOLYTEXT; +typedef NPPOLYTEXTW NPPOLYTEXT; +typedef LPPOLYTEXTW LPPOLYTEXT; +# 3363 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct _FIXED { + + WORD fract; + short value; + + + + +} FIXED; + + +typedef struct _MAT2 { + FIXED eM11; + FIXED eM12; + FIXED eM21; + FIXED eM22; +} MAT2, *LPMAT2; + + + +typedef struct _GLYPHMETRICS { + UINT gmBlackBoxX; + UINT gmBlackBoxY; + POINT gmptGlyphOrigin; + short gmCellIncX; + short gmCellIncY; +} GLYPHMETRICS, *LPGLYPHMETRICS; +# 3421 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagPOINTFX +{ + FIXED x; + FIXED y; +} POINTFX, * LPPOINTFX; + +typedef struct tagTTPOLYCURVE +{ + WORD wType; + WORD cpfx; + POINTFX apfx[1]; +} TTPOLYCURVE, * LPTTPOLYCURVE; + +typedef struct tagTTPOLYGONHEADER +{ + DWORD cb; + DWORD dwType; + POINTFX pfxStart; +} TTPOLYGONHEADER, * LPTTPOLYGONHEADER; +# 3491 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagGCP_RESULTSA + { + DWORD lStructSize; + LPSTR lpOutString; + UINT *lpOrder; + int *lpDx; + int *lpCaretPos; + LPSTR lpClass; + LPWSTR lpGlyphs; + UINT nGlyphs; + int nMaxFit; + } GCP_RESULTSA, * LPGCP_RESULTSA; +typedef struct tagGCP_RESULTSW + { + DWORD lStructSize; + LPWSTR lpOutString; + UINT *lpOrder; + int *lpDx; + int *lpCaretPos; + LPSTR lpClass; + LPWSTR lpGlyphs; + UINT nGlyphs; + int nMaxFit; + } GCP_RESULTSW, * LPGCP_RESULTSW; + +typedef GCP_RESULTSW GCP_RESULTS; +typedef LPGCP_RESULTSW LPGCP_RESULTS; +# 3530 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct _RASTERIZER_STATUS { + short nSize; + short wFlags; + short nLanguageID; +} RASTERIZER_STATUS, *LPRASTERIZER_STATUS; +# 3547 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagPIXELFORMATDESCRIPTOR +{ + WORD nSize; + WORD nVersion; + DWORD dwFlags; + BYTE iPixelType; + BYTE cColorBits; + BYTE cRedBits; + BYTE cRedShift; + BYTE cGreenBits; + BYTE cGreenShift; + BYTE cBlueBits; + BYTE cBlueShift; + BYTE cAlphaBits; + BYTE cAlphaShift; + BYTE cAccumBits; + BYTE cAccumRedBits; + BYTE cAccumGreenBits; + BYTE cAccumBlueBits; + BYTE cAccumAlphaBits; + BYTE cDepthBits; + BYTE cStencilBits; + BYTE cAuxBuffers; + BYTE iLayerType; + BYTE bReserved; + DWORD dwLayerMask; + DWORD dwVisibleMask; + DWORD dwDamageMask; +} PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR; +# 3619 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef int (__stdcall* OLDFONTENUMPROCA)(const LOGFONTA *, const TEXTMETRICA *, DWORD, LPARAM); +typedef int (__stdcall* OLDFONTENUMPROCW)(const LOGFONTW *, const TEXTMETRICW *, DWORD, LPARAM); +# 3636 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef OLDFONTENUMPROCA FONTENUMPROCA; +typedef OLDFONTENUMPROCW FONTENUMPROCW; + +typedef FONTENUMPROCW FONTENUMPROC; + + + + +typedef int (__stdcall* GOBJENUMPROC)(LPVOID, LPARAM); +typedef void (__stdcall* LINEDDAPROC)(int, int, LPARAM); +# 3667 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +__declspec(dllimport) int __stdcall AddFontResourceA( LPCSTR); +__declspec(dllimport) int __stdcall AddFontResourceW( LPCWSTR); + + + + + + + __declspec(dllimport) BOOL __stdcall AnimatePalette( HPALETTE hPal, UINT iStartIndex, UINT cEntries, const PALETTEENTRY * ppe); + __declspec(dllimport) BOOL __stdcall Arc( HDC hdc, int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4); + __declspec(dllimport) BOOL __stdcall BitBlt( HDC hdc, int x, int y, int cx, int cy, HDC hdcSrc, int x1, int y1, DWORD rop); +__declspec(dllimport) BOOL __stdcall CancelDC( HDC hdc); + __declspec(dllimport) BOOL __stdcall Chord( HDC hdc, int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4); +__declspec(dllimport) int __stdcall ChoosePixelFormat( HDC hdc, const PIXELFORMATDESCRIPTOR *ppfd); +__declspec(dllimport) HMETAFILE __stdcall CloseMetaFile( HDC hdc); +__declspec(dllimport) int __stdcall CombineRgn( HRGN hrgnDst, HRGN hrgnSrc1, HRGN hrgnSrc2, int iMode); +__declspec(dllimport) HMETAFILE __stdcall CopyMetaFileA( HMETAFILE, LPCSTR); +__declspec(dllimport) HMETAFILE __stdcall CopyMetaFileW( HMETAFILE, LPCWSTR); + + + + + + __declspec(dllimport) HBITMAP __stdcall CreateBitmap( int nWidth, int nHeight, UINT nPlanes, UINT nBitCount, const void *lpBits); + __declspec(dllimport) HBITMAP __stdcall CreateBitmapIndirect( const BITMAP *pbm); + __declspec(dllimport) HBRUSH __stdcall CreateBrushIndirect( const LOGBRUSH *plbrush); +__declspec(dllimport) HBITMAP __stdcall CreateCompatibleBitmap( HDC hdc, int cx, int cy); +__declspec(dllimport) HBITMAP __stdcall CreateDiscardableBitmap( HDC hdc, int cx, int cy); +__declspec(dllimport) HDC __stdcall CreateCompatibleDC( HDC hdc); +__declspec(dllimport) HDC __stdcall CreateDCA( LPCSTR pwszDriver, LPCSTR pwszDevice, LPCSTR pszPort, const DEVMODEA * pdm); +__declspec(dllimport) HDC __stdcall CreateDCW( LPCWSTR pwszDriver, LPCWSTR pwszDevice, LPCWSTR pszPort, const DEVMODEW * pdm); + + + + + +__declspec(dllimport) HBITMAP __stdcall CreateDIBitmap( HDC hdc, const BITMAPINFOHEADER *pbmih, DWORD flInit, const void *pjBits, const BITMAPINFO *pbmi, UINT iUsage); +__declspec(dllimport) HBRUSH __stdcall CreateDIBPatternBrush( HGLOBAL h, UINT iUsage); + __declspec(dllimport) HBRUSH __stdcall CreateDIBPatternBrushPt( const void *lpPackedDIB, UINT iUsage); +__declspec(dllimport) HRGN __stdcall CreateEllipticRgn( int x1, int y1, int x2, int y2); +__declspec(dllimport) HRGN __stdcall CreateEllipticRgnIndirect( const RECT *lprect); + __declspec(dllimport) HFONT __stdcall CreateFontIndirectA( const LOGFONTA *lplf); + __declspec(dllimport) HFONT __stdcall CreateFontIndirectW( const LOGFONTW *lplf); + + + + + +__declspec(dllimport) HFONT __stdcall CreateFontA( int cHeight, int cWidth, int cEscapement, int cOrientation, int cWeight, DWORD bItalic, + DWORD bUnderline, DWORD bStrikeOut, DWORD iCharSet, DWORD iOutPrecision, DWORD iClipPrecision, + DWORD iQuality, DWORD iPitchAndFamily, LPCSTR pszFaceName); +__declspec(dllimport) HFONT __stdcall CreateFontW( int cHeight, int cWidth, int cEscapement, int cOrientation, int cWeight, DWORD bItalic, + DWORD bUnderline, DWORD bStrikeOut, DWORD iCharSet, DWORD iOutPrecision, DWORD iClipPrecision, + DWORD iQuality, DWORD iPitchAndFamily, LPCWSTR pszFaceName); + + + + + + +__declspec(dllimport) HBRUSH __stdcall CreateHatchBrush( int iHatch, COLORREF color); +__declspec(dllimport) HDC __stdcall CreateICA( LPCSTR pszDriver, LPCSTR pszDevice, LPCSTR pszPort, const DEVMODEA * pdm); +__declspec(dllimport) HDC __stdcall CreateICW( LPCWSTR pszDriver, LPCWSTR pszDevice, LPCWSTR pszPort, const DEVMODEW * pdm); + + + + + +__declspec(dllimport) HDC __stdcall CreateMetaFileA( LPCSTR pszFile); +__declspec(dllimport) HDC __stdcall CreateMetaFileW( LPCWSTR pszFile); + + + + + + __declspec(dllimport) HPALETTE __stdcall CreatePalette( const LOGPALETTE * plpal); +__declspec(dllimport) HPEN __stdcall CreatePen( int iStyle, int cWidth, COLORREF color); + __declspec(dllimport) HPEN __stdcall CreatePenIndirect( const LOGPEN *plpen); +__declspec(dllimport) HRGN __stdcall CreatePolyPolygonRgn( const POINT *pptl, + const INT *pc, + int cPoly, + int iMode); + __declspec(dllimport) HBRUSH __stdcall CreatePatternBrush( HBITMAP hbm); +__declspec(dllimport) HRGN __stdcall CreateRectRgn( int x1, int y1, int x2, int y2); +__declspec(dllimport) HRGN __stdcall CreateRectRgnIndirect( const RECT *lprect); +__declspec(dllimport) HRGN __stdcall CreateRoundRectRgn( int x1, int y1, int x2, int y2, int w, int h); +__declspec(dllimport) BOOL __stdcall CreateScalableFontResourceA( DWORD fdwHidden, LPCSTR lpszFont, LPCSTR lpszFile, LPCSTR lpszPath); +__declspec(dllimport) BOOL __stdcall CreateScalableFontResourceW( DWORD fdwHidden, LPCWSTR lpszFont, LPCWSTR lpszFile, LPCWSTR lpszPath); + + + + + +__declspec(dllimport) HBRUSH __stdcall CreateSolidBrush( COLORREF color); + +__declspec(dllimport) BOOL __stdcall DeleteDC( HDC hdc); +__declspec(dllimport) BOOL __stdcall DeleteMetaFile( HMETAFILE hmf); + __declspec(dllimport) BOOL __stdcall DeleteObject( HGDIOBJ ho); +__declspec(dllimport) int __stdcall DescribePixelFormat( HDC hdc, + int iPixelFormat, + UINT nBytes, + LPPIXELFORMATDESCRIPTOR ppfd); + + + + + +typedef UINT (__stdcall* LPFNDEVMODE)(HWND, HMODULE, LPDEVMODE, LPSTR, LPSTR, LPDEVMODE, LPSTR, UINT); + +typedef DWORD (__stdcall* LPFNDEVCAPS)(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODE); +# 3861 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +__declspec(dllimport) +int +__stdcall +DeviceCapabilitiesA( + LPCSTR pDevice, + LPCSTR pPort, + WORD fwCapability, + LPSTR pOutput, + const DEVMODEA *pDevMode + ); +__declspec(dllimport) +int +__stdcall +DeviceCapabilitiesW( + LPCWSTR pDevice, + LPCWSTR pPort, + WORD fwCapability, + LPWSTR pOutput, + const DEVMODEW *pDevMode + ); + + + + + + +__declspec(dllimport) int __stdcall DrawEscape( HDC hdc, + int iEscape, + int cjIn, + LPCSTR lpIn); + + __declspec(dllimport) BOOL __stdcall Ellipse( HDC hdc, int left, int top, int right, int bottom); + + +__declspec(dllimport) int __stdcall EnumFontFamiliesExA( HDC hdc, LPLOGFONTA lpLogfont, FONTENUMPROCA lpProc, LPARAM lParam, DWORD dwFlags); +__declspec(dllimport) int __stdcall EnumFontFamiliesExW( HDC hdc, LPLOGFONTW lpLogfont, FONTENUMPROCW lpProc, LPARAM lParam, DWORD dwFlags); + + + + + + + +__declspec(dllimport) int __stdcall EnumFontFamiliesA( HDC hdc, LPCSTR lpLogfont, FONTENUMPROCA lpProc, LPARAM lParam); +__declspec(dllimport) int __stdcall EnumFontFamiliesW( HDC hdc, LPCWSTR lpLogfont, FONTENUMPROCW lpProc, LPARAM lParam); + + + + + +__declspec(dllimport) int __stdcall EnumFontsA( HDC hdc, LPCSTR lpLogfont, FONTENUMPROCA lpProc, LPARAM lParam); +__declspec(dllimport) int __stdcall EnumFontsW( HDC hdc, LPCWSTR lpLogfont, FONTENUMPROCW lpProc, LPARAM lParam); + + + + + + + +__declspec(dllimport) int __stdcall EnumObjects( HDC hdc, int nType, GOBJENUMPROC lpFunc, LPARAM lParam); + + + + + +__declspec(dllimport) BOOL __stdcall EqualRgn( HRGN hrgn1, HRGN hrgn2); + __declspec(dllimport) int __stdcall Escape( HDC hdc, + int iEscape, + int cjIn, + LPCSTR pvIn, + LPVOID pvOut); +__declspec(dllimport) int __stdcall ExtEscape( HDC hdc, + int iEscape, + int cjInput, + LPCSTR lpInData, + int cjOutput, + LPSTR lpOutData); + __declspec(dllimport) int __stdcall ExcludeClipRect( HDC hdc, int left, int top, int right, int bottom); + __declspec(dllimport) HRGN __stdcall ExtCreateRegion( const XFORM * lpx, DWORD nCount, const RGNDATA * lpData); + __declspec(dllimport) BOOL __stdcall ExtFloodFill( HDC hdc, int x, int y, COLORREF color, UINT type); + __declspec(dllimport) BOOL __stdcall FillRgn( HDC hdc, HRGN hrgn, HBRUSH hbr); + __declspec(dllimport) BOOL __stdcall FloodFill( HDC hdc, int x, int y, COLORREF color); + __declspec(dllimport) BOOL __stdcall FrameRgn( HDC hdc, HRGN hrgn, HBRUSH hbr, int w, int h); +__declspec(dllimport) int __stdcall GetROP2( HDC hdc); +__declspec(dllimport) BOOL __stdcall GetAspectRatioFilterEx( HDC hdc, LPSIZE lpsize); +__declspec(dllimport) COLORREF __stdcall GetBkColor( HDC hdc); + + +__declspec(dllimport) COLORREF __stdcall GetDCBrushColor( HDC hdc); +__declspec(dllimport) COLORREF __stdcall GetDCPenColor( HDC hdc); + + +__declspec(dllimport) +int +__stdcall +GetBkMode( + HDC hdc + ); + +__declspec(dllimport) +LONG +__stdcall +GetBitmapBits( + HBITMAP hbit, + LONG cb, + LPVOID lpvBits + ); + +__declspec(dllimport) BOOL __stdcall GetBitmapDimensionEx( HBITMAP hbit, LPSIZE lpsize); +__declspec(dllimport) UINT __stdcall GetBoundsRect( HDC hdc, LPRECT lprect, UINT flags); + +__declspec(dllimport) BOOL __stdcall GetBrushOrgEx( HDC hdc, LPPOINT lppt); + +__declspec(dllimport) BOOL __stdcall GetCharWidthA( HDC hdc, UINT iFirst, UINT iLast, LPINT lpBuffer); +__declspec(dllimport) BOOL __stdcall GetCharWidthW( HDC hdc, UINT iFirst, UINT iLast, LPINT lpBuffer); + + + + + +__declspec(dllimport) BOOL __stdcall GetCharWidth32A( HDC hdc, UINT iFirst, UINT iLast, LPINT lpBuffer); +__declspec(dllimport) BOOL __stdcall GetCharWidth32W( HDC hdc, UINT iFirst, UINT iLast, LPINT lpBuffer); + + + + + +__declspec(dllimport) BOOL __stdcall GetCharWidthFloatA( HDC hdc, UINT iFirst, UINT iLast, PFLOAT lpBuffer); +__declspec(dllimport) BOOL __stdcall GetCharWidthFloatW( HDC hdc, UINT iFirst, UINT iLast, PFLOAT lpBuffer); + + + + + + +__declspec(dllimport) BOOL __stdcall GetCharABCWidthsA( HDC hdc, + UINT wFirst, + UINT wLast, + LPABC lpABC); +__declspec(dllimport) BOOL __stdcall GetCharABCWidthsW( HDC hdc, + UINT wFirst, + UINT wLast, + LPABC lpABC); + + + + + + +__declspec(dllimport) BOOL __stdcall GetCharABCWidthsFloatA( HDC hdc, UINT iFirst, UINT iLast, LPABCFLOAT lpABC); +__declspec(dllimport) BOOL __stdcall GetCharABCWidthsFloatW( HDC hdc, UINT iFirst, UINT iLast, LPABCFLOAT lpABC); + + + + + +__declspec(dllimport) int __stdcall GetClipBox( HDC hdc, LPRECT lprect); +__declspec(dllimport) int __stdcall GetClipRgn( HDC hdc, HRGN hrgn); +__declspec(dllimport) int __stdcall GetMetaRgn( HDC hdc, HRGN hrgn); +__declspec(dllimport) HGDIOBJ __stdcall GetCurrentObject( HDC hdc, UINT type); +__declspec(dllimport) BOOL __stdcall GetCurrentPositionEx( HDC hdc, LPPOINT lppt); +__declspec(dllimport) int __stdcall GetDeviceCaps( HDC hdc, int index); +__declspec(dllimport) int __stdcall GetDIBits( HDC hdc, HBITMAP hbm, UINT start, UINT cLines, + LPVOID lpvBits, LPBITMAPINFO lpbmi, UINT usage); + + +__declspec(dllimport) DWORD __stdcall GetFontData ( HDC hdc, + DWORD dwTable, + DWORD dwOffset, + PVOID pvBuffer, + DWORD cjBuffer + ); + +__declspec(dllimport) DWORD __stdcall GetGlyphOutlineA( HDC hdc, + UINT uChar, + UINT fuFormat, + LPGLYPHMETRICS lpgm, + DWORD cjBuffer, + LPVOID pvBuffer, + const MAT2 *lpmat2 + ); +__declspec(dllimport) DWORD __stdcall GetGlyphOutlineW( HDC hdc, + UINT uChar, + UINT fuFormat, + LPGLYPHMETRICS lpgm, + DWORD cjBuffer, + LPVOID pvBuffer, + const MAT2 *lpmat2 + ); + + + + + + +__declspec(dllimport) int __stdcall GetGraphicsMode( HDC hdc); +__declspec(dllimport) int __stdcall GetMapMode( HDC hdc); +__declspec(dllimport) UINT __stdcall GetMetaFileBitsEx( HMETAFILE hMF, UINT cbBuffer, LPVOID lpData); +__declspec(dllimport) HMETAFILE __stdcall GetMetaFileA( LPCSTR lpName); +__declspec(dllimport) HMETAFILE __stdcall GetMetaFileW( LPCWSTR lpName); + + + + + +__declspec(dllimport) COLORREF __stdcall GetNearestColor( HDC hdc, COLORREF color); +__declspec(dllimport) UINT __stdcall GetNearestPaletteIndex( HPALETTE h, COLORREF color); +__declspec(dllimport) DWORD __stdcall GetObjectType( HGDIOBJ h); + + + +__declspec(dllimport) UINT __stdcall GetOutlineTextMetricsA( HDC hdc, + UINT cjCopy, + LPOUTLINETEXTMETRICA potm); +__declspec(dllimport) UINT __stdcall GetOutlineTextMetricsW( HDC hdc, + UINT cjCopy, + LPOUTLINETEXTMETRICW potm); +# 4087 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +__declspec(dllimport) UINT __stdcall GetPaletteEntries( HPALETTE hpal, + UINT iStart, + UINT cEntries, + LPPALETTEENTRY pPalEntries); +__declspec(dllimport) COLORREF __stdcall GetPixel( HDC hdc, int x, int y); +__declspec(dllimport) int __stdcall GetPixelFormat( HDC hdc); +__declspec(dllimport) int __stdcall GetPolyFillMode( HDC hdc); +__declspec(dllimport) BOOL __stdcall GetRasterizerCaps( LPRASTERIZER_STATUS lpraststat, + UINT cjBytes); + +__declspec(dllimport) int __stdcall GetRandomRgn ( HDC hdc, HRGN hrgn, INT i); +__declspec(dllimport) DWORD __stdcall GetRegionData( HRGN hrgn, + DWORD nCount, + LPRGNDATA lpRgnData); +__declspec(dllimport) int __stdcall GetRgnBox( HRGN hrgn, LPRECT lprc); +__declspec(dllimport) HGDIOBJ __stdcall GetStockObject( int i); +__declspec(dllimport) int __stdcall GetStretchBltMode( HDC hdc); +__declspec(dllimport) +UINT +__stdcall +GetSystemPaletteEntries( + HDC hdc, + UINT iStart, + UINT cEntries, + LPPALETTEENTRY pPalEntries + ); + +__declspec(dllimport) UINT __stdcall GetSystemPaletteUse( HDC hdc); +__declspec(dllimport) int __stdcall GetTextCharacterExtra( HDC hdc); +__declspec(dllimport) UINT __stdcall GetTextAlign( HDC hdc); +__declspec(dllimport) COLORREF __stdcall GetTextColor( HDC hdc); + +__declspec(dllimport) +BOOL +__stdcall +GetTextExtentPointA( + HDC hdc, + LPCSTR lpString, + int c, + LPSIZE lpsz + ); +__declspec(dllimport) +BOOL +__stdcall +GetTextExtentPointW( + HDC hdc, + LPCWSTR lpString, + int c, + LPSIZE lpsz + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetTextExtentPoint32A( + HDC hdc, + LPCSTR lpString, + int c, + LPSIZE psizl + ); +__declspec(dllimport) +BOOL +__stdcall +GetTextExtentPoint32W( + HDC hdc, + LPCWSTR lpString, + int c, + LPSIZE psizl + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetTextExtentExPointA( + HDC hdc, + LPCSTR lpszString, + int cchString, + int nMaxExtent, + LPINT lpnFit, + LPINT lpnDx, + LPSIZE lpSize + ); +__declspec(dllimport) +BOOL +__stdcall +GetTextExtentExPointW( + HDC hdc, + LPCWSTR lpszString, + int cchString, + int nMaxExtent, + LPINT lpnFit, + LPINT lpnDx, + LPSIZE lpSize + ); + + + + + + + +__declspec(dllimport) int __stdcall GetTextCharset( HDC hdc); +__declspec(dllimport) int __stdcall GetTextCharsetInfo( HDC hdc, LPFONTSIGNATURE lpSig, DWORD dwFlags); +__declspec(dllimport) BOOL __stdcall TranslateCharsetInfo( DWORD *lpSrc, LPCHARSETINFO lpCs, DWORD dwFlags); +__declspec(dllimport) DWORD __stdcall GetFontLanguageInfo( HDC hdc); +__declspec(dllimport) DWORD __stdcall GetCharacterPlacementA( HDC hdc, LPCSTR lpString, int nCount, int nMexExtent, LPGCP_RESULTSA lpResults, DWORD dwFlags); +__declspec(dllimport) DWORD __stdcall GetCharacterPlacementW( HDC hdc, LPCWSTR lpString, int nCount, int nMexExtent, LPGCP_RESULTSW lpResults, DWORD dwFlags); +# 4219 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagWCRANGE +{ + WCHAR wcLow; + USHORT cGlyphs; +} WCRANGE, *PWCRANGE, *LPWCRANGE; + + +typedef struct tagGLYPHSET +{ + DWORD cbThis; + DWORD flAccel; + DWORD cGlyphsSupported; + DWORD cRanges; + WCRANGE ranges[1]; +} GLYPHSET, *PGLYPHSET, *LPGLYPHSET; +# 4243 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +__declspec(dllimport) DWORD __stdcall GetFontUnicodeRanges( HDC hdc, LPGLYPHSET lpgs); +__declspec(dllimport) DWORD __stdcall GetGlyphIndicesA( HDC hdc, LPCSTR lpstr, int c, LPWORD pgi, DWORD fl); +__declspec(dllimport) DWORD __stdcall GetGlyphIndicesW( HDC hdc, LPCWSTR lpstr, int c, LPWORD pgi, DWORD fl); + + + + + +__declspec(dllimport) BOOL __stdcall GetTextExtentPointI( HDC hdc, LPWORD pgiIn, int cgi, LPSIZE psize); +__declspec(dllimport) BOOL __stdcall GetTextExtentExPointI ( HDC hdc, + LPWORD lpwszString, + int cwchString, + int nMaxExtent, + LPINT lpnFit, + LPINT lpnDx, + LPSIZE lpSize + ); + +__declspec(dllimport) BOOL __stdcall GetCharWidthI( HDC hdc, + UINT giFirst, + UINT cgi, + LPWORD pgi, + LPINT piWidths + ); + +__declspec(dllimport) BOOL __stdcall GetCharABCWidthsI( HDC hdc, + UINT giFirst, + UINT cgi, + LPWORD pgi, + LPABC pabc + ); +# 4282 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagDESIGNVECTOR +{ + DWORD dvReserved; + DWORD dvNumAxes; + LONG dvValues[16]; +} DESIGNVECTOR, *PDESIGNVECTOR, *LPDESIGNVECTOR; + +__declspec(dllimport) int __stdcall AddFontResourceExA( LPCSTR name, DWORD fl, PVOID res); +__declspec(dllimport) int __stdcall AddFontResourceExW( LPCWSTR name, DWORD fl, PVOID res); + + + + + +__declspec(dllimport) BOOL __stdcall RemoveFontResourceExA( LPCSTR name, DWORD fl, PVOID pdv); +__declspec(dllimport) BOOL __stdcall RemoveFontResourceExW( LPCWSTR name, DWORD fl, PVOID pdv); + + + + + +__declspec(dllimport) HANDLE __stdcall AddFontMemResourceEx( PVOID pFileView, + DWORD cjSize, + PVOID pvResrved, + DWORD* pNumFonts); + +__declspec(dllimport) BOOL __stdcall RemoveFontMemResourceEx( HANDLE h); +# 4318 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagAXISINFOA +{ + LONG axMinValue; + LONG axMaxValue; + BYTE axAxisName[16]; +} AXISINFOA, *PAXISINFOA, *LPAXISINFOA; +typedef struct tagAXISINFOW +{ + LONG axMinValue; + LONG axMaxValue; + WCHAR axAxisName[16]; +} AXISINFOW, *PAXISINFOW, *LPAXISINFOW; + +typedef AXISINFOW AXISINFO; +typedef PAXISINFOW PAXISINFO; +typedef LPAXISINFOW LPAXISINFO; + + + + + + +typedef struct tagAXESLISTA +{ + DWORD axlReserved; + DWORD axlNumAxes; + AXISINFOA axlAxisInfo[16]; +} AXESLISTA, *PAXESLISTA, *LPAXESLISTA; +typedef struct tagAXESLISTW +{ + DWORD axlReserved; + DWORD axlNumAxes; + AXISINFOW axlAxisInfo[16]; +} AXESLISTW, *PAXESLISTW, *LPAXESLISTW; + +typedef AXESLISTW AXESLIST; +typedef PAXESLISTW PAXESLIST; +typedef LPAXESLISTW LPAXESLIST; +# 4366 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagENUMLOGFONTEXDVA +{ + ENUMLOGFONTEXA elfEnumLogfontEx; + DESIGNVECTOR elfDesignVector; +} ENUMLOGFONTEXDVA, *PENUMLOGFONTEXDVA, *LPENUMLOGFONTEXDVA; +typedef struct tagENUMLOGFONTEXDVW +{ + ENUMLOGFONTEXW elfEnumLogfontEx; + DESIGNVECTOR elfDesignVector; +} ENUMLOGFONTEXDVW, *PENUMLOGFONTEXDVW, *LPENUMLOGFONTEXDVW; + +typedef ENUMLOGFONTEXDVW ENUMLOGFONTEXDV; +typedef PENUMLOGFONTEXDVW PENUMLOGFONTEXDV; +typedef LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV; + + + + + + +__declspec(dllimport) HFONT __stdcall CreateFontIndirectExA( const ENUMLOGFONTEXDVA *); +__declspec(dllimport) HFONT __stdcall CreateFontIndirectExW( const ENUMLOGFONTEXDVW *); + + + + + + + +typedef struct tagENUMTEXTMETRICA +{ + NEWTEXTMETRICEXA etmNewTextMetricEx; + AXESLISTA etmAxesList; +} ENUMTEXTMETRICA, *PENUMTEXTMETRICA, *LPENUMTEXTMETRICA; +typedef struct tagENUMTEXTMETRICW +{ + NEWTEXTMETRICEXW etmNewTextMetricEx; + AXESLISTW etmAxesList; +} ENUMTEXTMETRICW, *PENUMTEXTMETRICW, *LPENUMTEXTMETRICW; + +typedef ENUMTEXTMETRICW ENUMTEXTMETRIC; +typedef PENUMTEXTMETRICW PENUMTEXTMETRIC; +typedef LPENUMTEXTMETRICW LPENUMTEXTMETRIC; +# 4424 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +__declspec(dllimport) BOOL __stdcall GetViewportExtEx( HDC hdc, LPSIZE lpsize); +__declspec(dllimport) BOOL __stdcall GetViewportOrgEx( HDC hdc, LPPOINT lppoint); +__declspec(dllimport) BOOL __stdcall GetWindowExtEx( HDC hdc, LPSIZE lpsize); +__declspec(dllimport) BOOL __stdcall GetWindowOrgEx( HDC hdc, LPPOINT lppoint); + + __declspec(dllimport) int __stdcall IntersectClipRect( HDC hdc, int left, int top, int right, int bottom); + __declspec(dllimport) BOOL __stdcall InvertRgn( HDC hdc, HRGN hrgn); +__declspec(dllimport) BOOL __stdcall LineDDA( int xStart, int yStart, int xEnd, int yEnd, LINEDDAPROC lpProc, LPARAM data); + __declspec(dllimport) BOOL __stdcall LineTo( HDC hdc, int x, int y); +__declspec(dllimport) BOOL __stdcall MaskBlt( HDC hdcDest, int xDest, int yDest, int width, int height, + HDC hdcSrc, int xSrc, int ySrc, HBITMAP hbmMask, int xMask, int yMask, DWORD rop); +__declspec(dllimport) BOOL __stdcall PlgBlt( HDC hdcDest, const POINT * lpPoint, HDC hdcSrc, int xSrc, int ySrc, int width, + int height, HBITMAP hbmMask, int xMask, int yMask); + + __declspec(dllimport) int __stdcall OffsetClipRgn( HDC hdc, int x, int y); +__declspec(dllimport) int __stdcall OffsetRgn( HRGN hrgn, int x, int y); + __declspec(dllimport) BOOL __stdcall PatBlt( HDC hdc, int x, int y, int w, int h, DWORD rop); + __declspec(dllimport) BOOL __stdcall Pie( HDC hdc, int left, int top, int right, int bottom, int xr1, int yr1, int xr2, int yr2); +__declspec(dllimport) BOOL __stdcall PlayMetaFile( HDC hdc, HMETAFILE hmf); + __declspec(dllimport) BOOL __stdcall PaintRgn( HDC hdc, HRGN hrgn); + __declspec(dllimport) BOOL __stdcall PolyPolygon( HDC hdc, const POINT *apt, const INT *asz, int csz); +__declspec(dllimport) BOOL __stdcall PtInRegion( HRGN hrgn, int x, int y); +__declspec(dllimport) BOOL __stdcall PtVisible( HDC hdc, int x, int y); +__declspec(dllimport) BOOL __stdcall RectInRegion( HRGN hrgn, const RECT * lprect); +__declspec(dllimport) BOOL __stdcall RectVisible( HDC hdc, const RECT * lprect); + __declspec(dllimport) BOOL __stdcall Rectangle( HDC hdc, int left, int top, int right, int bottom); + __declspec(dllimport) BOOL __stdcall RestoreDC( HDC hdc, int nSavedDC); + __declspec(dllimport) HDC __stdcall ResetDCA( HDC hdc, const DEVMODEA * lpdm); + __declspec(dllimport) HDC __stdcall ResetDCW( HDC hdc, const DEVMODEW * lpdm); + + + + + + __declspec(dllimport) UINT __stdcall RealizePalette( HDC hdc); +__declspec(dllimport) BOOL __stdcall RemoveFontResourceA( LPCSTR lpFileName); +__declspec(dllimport) BOOL __stdcall RemoveFontResourceW( LPCWSTR lpFileName); + + + + + + __declspec(dllimport) BOOL __stdcall RoundRect( HDC hdc, int left, int top, int right, int bottom, int width, int height); + __declspec(dllimport) BOOL __stdcall ResizePalette( HPALETTE hpal, UINT n); + + __declspec(dllimport) int __stdcall SaveDC( HDC hdc); + __declspec(dllimport) int __stdcall SelectClipRgn( HDC hdc, HRGN hrgn); +__declspec(dllimport) int __stdcall ExtSelectClipRgn( HDC hdc, HRGN hrgn, int mode); +__declspec(dllimport) int __stdcall SetMetaRgn( HDC hdc); + __declspec(dllimport) HGDIOBJ __stdcall SelectObject( HDC hdc, HGDIOBJ h); + __declspec(dllimport) HPALETTE __stdcall SelectPalette( HDC hdc, HPALETTE hPal, BOOL bForceBkgd); + __declspec(dllimport) COLORREF __stdcall SetBkColor( HDC hdc, COLORREF color); + + +__declspec(dllimport) COLORREF __stdcall SetDCBrushColor( HDC hdc, COLORREF color); +__declspec(dllimport) COLORREF __stdcall SetDCPenColor( HDC hdc, COLORREF color); + + + __declspec(dllimport) int __stdcall SetBkMode( HDC hdc, int mode); + +__declspec(dllimport) +LONG __stdcall +SetBitmapBits( + HBITMAP hbm, + DWORD cb, + const void *pvBits); + +__declspec(dllimport) UINT __stdcall SetBoundsRect( HDC hdc, const RECT * lprect, UINT flags); +__declspec(dllimport) int __stdcall SetDIBits( HDC hdc, HBITMAP hbm, UINT start, UINT cLines, const void *lpBits, const BITMAPINFO * lpbmi, UINT ColorUse); + __declspec(dllimport) int __stdcall SetDIBitsToDevice( HDC hdc, int xDest, int yDest, DWORD w, DWORD h, int xSrc, + int ySrc, UINT StartScan, UINT cLines, const void * lpvBits, const BITMAPINFO * lpbmi, UINT ColorUse); + __declspec(dllimport) DWORD __stdcall SetMapperFlags( HDC hdc, DWORD flags); +__declspec(dllimport) int __stdcall SetGraphicsMode( HDC hdc, int iMode); + __declspec(dllimport) int __stdcall SetMapMode( HDC hdc, int iMode); + + + __declspec(dllimport) DWORD __stdcall SetLayout( HDC hdc, DWORD l); +__declspec(dllimport) DWORD __stdcall GetLayout( HDC hdc); + + +__declspec(dllimport) HMETAFILE __stdcall SetMetaFileBitsEx( UINT cbBuffer, const BYTE *lpData); + __declspec(dllimport) UINT __stdcall SetPaletteEntries( HPALETTE hpal, + UINT iStart, + UINT cEntries, + const PALETTEENTRY *pPalEntries); + __declspec(dllimport) COLORREF __stdcall SetPixel( HDC hdc, int x, int y, COLORREF color); +__declspec(dllimport) BOOL __stdcall SetPixelV( HDC hdc, int x, int y, COLORREF color); +__declspec(dllimport) BOOL __stdcall SetPixelFormat( HDC hdc, int format, const PIXELFORMATDESCRIPTOR * ppfd); + __declspec(dllimport) int __stdcall SetPolyFillMode( HDC hdc, int mode); + __declspec(dllimport) BOOL __stdcall StretchBlt( HDC hdcDest, int xDest, int yDest, int wDest, int hDest, HDC hdcSrc, int xSrc, int ySrc, int wSrc, int hSrc, DWORD rop); +__declspec(dllimport) BOOL __stdcall SetRectRgn( HRGN hrgn, int left, int top, int right, int bottom); + __declspec(dllimport) int __stdcall StretchDIBits( HDC hdc, int xDest, int yDest, int DestWidth, int DestHeight, int xSrc, int ySrc, int SrcWidth, int SrcHeight, + const void * lpBits, const BITMAPINFO * lpbmi, UINT iUsage, DWORD rop); + __declspec(dllimport) int __stdcall SetROP2( HDC hdc, int rop2); + __declspec(dllimport) int __stdcall SetStretchBltMode( HDC hdc, int mode); +__declspec(dllimport) UINT __stdcall SetSystemPaletteUse( HDC hdc, UINT use); + __declspec(dllimport) int __stdcall SetTextCharacterExtra( HDC hdc, int extra); + __declspec(dllimport) COLORREF __stdcall SetTextColor( HDC hdc, COLORREF color); + __declspec(dllimport) UINT __stdcall SetTextAlign( HDC hdc, UINT align); + __declspec(dllimport) BOOL __stdcall SetTextJustification( HDC hdc, int extra, int count); +__declspec(dllimport) BOOL __stdcall UpdateColors( HDC hdc); +# 4575 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef USHORT COLOR16; + +typedef struct _TRIVERTEX +{ + LONG x; + LONG y; + COLOR16 Red; + COLOR16 Green; + COLOR16 Blue; + COLOR16 Alpha; +}TRIVERTEX,*PTRIVERTEX,*LPTRIVERTEX; + + + + + + + +typedef struct _GRADIENT_TRIANGLE +{ + ULONG Vertex1; + ULONG Vertex2; + ULONG Vertex3; +} GRADIENT_TRIANGLE,*PGRADIENT_TRIANGLE,*LPGRADIENT_TRIANGLE; + +typedef struct _GRADIENT_RECT +{ + ULONG UpperLeft; + ULONG LowerRight; +}GRADIENT_RECT,*PGRADIENT_RECT,*LPGRADIENT_RECT; + + + + + + + +typedef struct _BLENDFUNCTION +{ + BYTE BlendOp; + BYTE BlendFlags; + BYTE SourceConstantAlpha; + BYTE AlphaFormat; +}BLENDFUNCTION,*PBLENDFUNCTION; +# 4639 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +__declspec(dllimport) BOOL __stdcall AlphaBlend( + HDC hdcDest, + int xoriginDest, + int yoriginDest, + int wDest, + int hDest, + HDC hdcSrc, + int xoriginSrc, + int yoriginSrc, + int wSrc, + int hSrc, + BLENDFUNCTION ftn); + +__declspec(dllimport) BOOL __stdcall TransparentBlt( + HDC hdcDest, + int xoriginDest, + int yoriginDest, + int wDest, + int hDest, + HDC hdcSrc, + int xoriginSrc, + int yoriginSrc, + int wSrc, + int hSrc, + UINT crTransparent); +# 4675 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +__declspec(dllimport) +BOOL +__stdcall +GradientFill( + HDC hdc, + PTRIVERTEX pVertex, + ULONG nVertex, + PVOID pMesh, + ULONG nMesh, + ULONG ulMode + ); +# 4698 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +__declspec(dllimport) BOOL __stdcall GdiAlphaBlend( HDC hdcDest, int xoriginDest, int yoriginDest, int wDest, int hDest, HDC hdcSrc, int xoriginSrc, int yoriginSrc, int wSrc, int hSrc, BLENDFUNCTION ftn); + +__declspec(dllimport) BOOL __stdcall GdiTransparentBlt( HDC hdcDest, int xoriginDest, int yoriginDest, int wDest, int hDest, HDC hdcSrc, + int xoriginSrc, int yoriginSrc, int wSrc, int hSrc, UINT crTransparent); + +__declspec(dllimport) BOOL __stdcall GdiGradientFill( HDC hdc, + PTRIVERTEX pVertex, + ULONG nVertex, + PVOID pMesh, + ULONG nCount, + ULONG ulMode); + + + + + + + +__declspec(dllimport) BOOL __stdcall PlayMetaFileRecord( HDC hdc, + LPHANDLETABLE lpHandleTable, + LPMETARECORD lpMR, + UINT noObjs); + +typedef int (__stdcall* MFENUMPROC)( HDC hdc, HANDLETABLE * lpht, METARECORD * lpMR, int nObj, LPARAM param); +__declspec(dllimport) BOOL __stdcall EnumMetaFile( HDC hdc, HMETAFILE hmf, MFENUMPROC proc, LPARAM param); + +typedef int (__stdcall* ENHMFENUMPROC)( HDC hdc, HANDLETABLE * lpht, const ENHMETARECORD * lpmr, int nHandles, LPARAM data); + + + +__declspec(dllimport) HENHMETAFILE __stdcall CloseEnhMetaFile( HDC hdc); +__declspec(dllimport) HENHMETAFILE __stdcall CopyEnhMetaFileA( HENHMETAFILE hEnh, LPCSTR lpFileName); +__declspec(dllimport) HENHMETAFILE __stdcall CopyEnhMetaFileW( HENHMETAFILE hEnh, LPCWSTR lpFileName); + + + + + +__declspec(dllimport) HDC __stdcall CreateEnhMetaFileA( HDC hdc, LPCSTR lpFilename, const RECT *lprc, LPCSTR lpDesc); +__declspec(dllimport) HDC __stdcall CreateEnhMetaFileW( HDC hdc, LPCWSTR lpFilename, const RECT *lprc, LPCWSTR lpDesc); + + + + + +__declspec(dllimport) BOOL __stdcall DeleteEnhMetaFile( HENHMETAFILE hmf); +__declspec(dllimport) BOOL __stdcall EnumEnhMetaFile( HDC hdc, HENHMETAFILE hmf, ENHMFENUMPROC proc, + LPVOID param, const RECT * lpRect); +__declspec(dllimport) HENHMETAFILE __stdcall GetEnhMetaFileA( LPCSTR lpName); +__declspec(dllimport) HENHMETAFILE __stdcall GetEnhMetaFileW( LPCWSTR lpName); + + + + + +__declspec(dllimport) UINT __stdcall GetEnhMetaFileBits( HENHMETAFILE hEMF, + UINT nSize, + LPBYTE lpData); +__declspec(dllimport) UINT __stdcall GetEnhMetaFileDescriptionA( HENHMETAFILE hemf, + UINT cchBuffer, + LPSTR lpDescription); +__declspec(dllimport) UINT __stdcall GetEnhMetaFileDescriptionW( HENHMETAFILE hemf, + UINT cchBuffer, + LPWSTR lpDescription); + + + + + +__declspec(dllimport) UINT __stdcall GetEnhMetaFileHeader( HENHMETAFILE hemf, + UINT nSize, + LPENHMETAHEADER lpEnhMetaHeader); +__declspec(dllimport) UINT __stdcall GetEnhMetaFilePaletteEntries( HENHMETAFILE hemf, + UINT nNumEntries, + LPPALETTEENTRY lpPaletteEntries); + +__declspec(dllimport) UINT __stdcall GetEnhMetaFilePixelFormat( HENHMETAFILE hemf, + UINT cbBuffer, + PIXELFORMATDESCRIPTOR *ppfd); +__declspec(dllimport) UINT __stdcall GetWinMetaFileBits( HENHMETAFILE hemf, + UINT cbData16, + LPBYTE pData16, + INT iMapMode, + HDC hdcRef); +__declspec(dllimport) BOOL __stdcall PlayEnhMetaFile( HDC hdc, HENHMETAFILE hmf, const RECT * lprect); +__declspec(dllimport) BOOL __stdcall PlayEnhMetaFileRecord( HDC hdc, + LPHANDLETABLE pht, + const ENHMETARECORD *pmr, + UINT cht); + +__declspec(dllimport) HENHMETAFILE __stdcall SetEnhMetaFileBits( UINT nSize, + const BYTE * pb); + +__declspec(dllimport) HENHMETAFILE __stdcall SetWinMetaFileBits( UINT nSize, + const BYTE *lpMeta16Data, + HDC hdcRef, + const METAFILEPICT *lpMFP); +__declspec(dllimport) BOOL __stdcall GdiComment( HDC hdc, UINT nSize, const BYTE *lpData); + + + + + +__declspec(dllimport) BOOL __stdcall GetTextMetricsA( HDC hdc, LPTEXTMETRICA lptm); +__declspec(dllimport) BOOL __stdcall GetTextMetricsW( HDC hdc, LPTEXTMETRICW lptm); +# 4833 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagDIBSECTION { + BITMAP dsBm; + BITMAPINFOHEADER dsBmih; + DWORD dsBitfields[3]; + HANDLE dshSection; + DWORD dsOffset; +} DIBSECTION, *LPDIBSECTION, *PDIBSECTION; + + +__declspec(dllimport) BOOL __stdcall AngleArc( HDC hdc, int x, int y, DWORD r, FLOAT StartAngle, FLOAT SweepAngle); +__declspec(dllimport) BOOL __stdcall PolyPolyline( HDC hdc, const POINT *apt, const DWORD *asz, DWORD csz); +__declspec(dllimport) BOOL __stdcall GetWorldTransform( HDC hdc, LPXFORM lpxf); +__declspec(dllimport) BOOL __stdcall SetWorldTransform( HDC hdc, const XFORM * lpxf); +__declspec(dllimport) BOOL __stdcall ModifyWorldTransform( HDC hdc, const XFORM * lpxf, DWORD mode); +__declspec(dllimport) BOOL __stdcall CombineTransform( LPXFORM lpxfOut, const XFORM *lpxf1, const XFORM *lpxf2); + + + + + + +__declspec(dllimport) HBITMAP __stdcall CreateDIBSection( + HDC hdc, + const BITMAPINFO *pbmi, + UINT usage, + + + void **ppvBits, + HANDLE hSection, + DWORD offset); + + + +__declspec(dllimport) UINT __stdcall GetDIBColorTable( HDC hdc, + UINT iStart, + UINT cEntries, + RGBQUAD *prgbq); +__declspec(dllimport) UINT __stdcall SetDIBColorTable( HDC hdc, + UINT iStart, + UINT cEntries, + const RGBQUAD *prgbq); +# 4910 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagCOLORADJUSTMENT { + WORD caSize; + WORD caFlags; + WORD caIlluminantIndex; + WORD caRedGamma; + WORD caGreenGamma; + WORD caBlueGamma; + WORD caReferenceBlack; + WORD caReferenceWhite; + SHORT caContrast; + SHORT caBrightness; + SHORT caColorfulness; + SHORT caRedGreenTint; +} COLORADJUSTMENT, *PCOLORADJUSTMENT, *LPCOLORADJUSTMENT; + +__declspec(dllimport) BOOL __stdcall SetColorAdjustment( HDC hdc, const COLORADJUSTMENT *lpca); +__declspec(dllimport) BOOL __stdcall GetColorAdjustment( HDC hdc, LPCOLORADJUSTMENT lpca); +__declspec(dllimport) HPALETTE __stdcall CreateHalftonePalette( HDC hdc); + + +typedef BOOL (__stdcall* ABORTPROC)( HDC, int); + + + + +typedef struct _DOCINFOA { + int cbSize; + LPCSTR lpszDocName; + LPCSTR lpszOutput; + + LPCSTR lpszDatatype; + DWORD fwType; + +} DOCINFOA, *LPDOCINFOA; +typedef struct _DOCINFOW { + int cbSize; + LPCWSTR lpszDocName; + LPCWSTR lpszOutput; + + LPCWSTR lpszDatatype; + DWORD fwType; + +} DOCINFOW, *LPDOCINFOW; + +typedef DOCINFOW DOCINFO; +typedef LPDOCINFOW LPDOCINFO; +# 4966 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" + __declspec(dllimport) int __stdcall StartDocA( HDC hdc, const DOCINFOA *lpdi); + __declspec(dllimport) int __stdcall StartDocW( HDC hdc, const DOCINFOW *lpdi); + + + + + + __declspec(dllimport) int __stdcall EndDoc( HDC hdc); + __declspec(dllimport) int __stdcall StartPage( HDC hdc); + __declspec(dllimport) int __stdcall EndPage( HDC hdc); + __declspec(dllimport) int __stdcall AbortDoc( HDC hdc); +__declspec(dllimport) int __stdcall SetAbortProc( HDC hdc, ABORTPROC proc); + +__declspec(dllimport) BOOL __stdcall AbortPath( HDC hdc); +__declspec(dllimport) BOOL __stdcall ArcTo( HDC hdc, int left, int top, int right, int bottom, int xr1, int yr1, int xr2, int yr2); +__declspec(dllimport) BOOL __stdcall BeginPath( HDC hdc); +__declspec(dllimport) BOOL __stdcall CloseFigure( HDC hdc); +__declspec(dllimport) BOOL __stdcall EndPath( HDC hdc); +__declspec(dllimport) BOOL __stdcall FillPath( HDC hdc); +__declspec(dllimport) BOOL __stdcall FlattenPath( HDC hdc); +__declspec(dllimport) int __stdcall GetPath( HDC hdc, LPPOINT apt, LPBYTE aj, int cpt); +__declspec(dllimport) HRGN __stdcall PathToRegion( HDC hdc); +__declspec(dllimport) BOOL __stdcall PolyDraw( HDC hdc, const POINT * apt, const BYTE * aj, int cpt); +__declspec(dllimport) BOOL __stdcall SelectClipPath( HDC hdc, int mode); +__declspec(dllimport) int __stdcall SetArcDirection( HDC hdc, int dir); +__declspec(dllimport) BOOL __stdcall SetMiterLimit( HDC hdc, FLOAT limit, PFLOAT old); +__declspec(dllimport) BOOL __stdcall StrokeAndFillPath( HDC hdc); +__declspec(dllimport) BOOL __stdcall StrokePath( HDC hdc); +__declspec(dllimport) BOOL __stdcall WidenPath( HDC hdc); +__declspec(dllimport) HPEN __stdcall ExtCreatePen( DWORD iPenStyle, + DWORD cWidth, + const LOGBRUSH *plbrush, + DWORD cStyle, + const DWORD *pstyle); +__declspec(dllimport) BOOL __stdcall GetMiterLimit( HDC hdc, PFLOAT plimit); +__declspec(dllimport) int __stdcall GetArcDirection( HDC hdc); + +__declspec(dllimport) int __stdcall GetObjectA( HANDLE h, int c, LPVOID pv); +__declspec(dllimport) int __stdcall GetObjectW( HANDLE h, int c, LPVOID pv); +# 5033 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" + __declspec(dllimport) BOOL __stdcall MoveToEx( HDC hdc, int x, int y, LPPOINT lppt); + __declspec(dllimport) BOOL __stdcall TextOutA( HDC hdc, int x, int y, LPCSTR lpString, int c); + __declspec(dllimport) BOOL __stdcall TextOutW( HDC hdc, int x, int y, LPCWSTR lpString, int c); + + + + + + __declspec(dllimport) BOOL __stdcall ExtTextOutA( HDC hdc, int x, int y, UINT options, const RECT * lprect, LPCSTR lpString, UINT c, const INT * lpDx); + __declspec(dllimport) BOOL __stdcall ExtTextOutW( HDC hdc, int x, int y, UINT options, const RECT * lprect, LPCWSTR lpString, UINT c, const INT * lpDx); + + + + + +__declspec(dllimport) BOOL __stdcall PolyTextOutA( HDC hdc, const POLYTEXTA * ppt, int nstrings); +__declspec(dllimport) BOOL __stdcall PolyTextOutW( HDC hdc, const POLYTEXTW * ppt, int nstrings); + + + + + + +__declspec(dllimport) HRGN __stdcall CreatePolygonRgn( const POINT *pptl, + int cPoint, + int iMode); +__declspec(dllimport) BOOL __stdcall DPtoLP( HDC hdc, LPPOINT lppt, int c); +__declspec(dllimport) BOOL __stdcall LPtoDP( HDC hdc, LPPOINT lppt, int c); + __declspec(dllimport) BOOL __stdcall Polygon( HDC hdc, const POINT *apt, int cpt); + __declspec(dllimport) BOOL __stdcall Polyline( HDC hdc, const POINT *apt, int cpt); + +__declspec(dllimport) BOOL __stdcall PolyBezier( HDC hdc, const POINT * apt, DWORD cpt); +__declspec(dllimport) BOOL __stdcall PolyBezierTo( HDC hdc, const POINT * apt, DWORD cpt); +__declspec(dllimport) BOOL __stdcall PolylineTo( HDC hdc, const POINT * apt, DWORD cpt); + + __declspec(dllimport) BOOL __stdcall SetViewportExtEx( HDC hdc, int x, int y, LPSIZE lpsz); + __declspec(dllimport) BOOL __stdcall SetViewportOrgEx( HDC hdc, int x, int y, LPPOINT lppt); + __declspec(dllimport) BOOL __stdcall SetWindowExtEx( HDC hdc, int x, int y, LPSIZE lpsz); + __declspec(dllimport) BOOL __stdcall SetWindowOrgEx( HDC hdc, int x, int y, LPPOINT lppt); + + __declspec(dllimport) BOOL __stdcall OffsetViewportOrgEx( HDC hdc, int x, int y, LPPOINT lppt); + __declspec(dllimport) BOOL __stdcall OffsetWindowOrgEx( HDC hdc, int x, int y, LPPOINT lppt); + __declspec(dllimport) BOOL __stdcall ScaleViewportExtEx( HDC hdc, int xn, int dx, int yn, int yd, LPSIZE lpsz); + __declspec(dllimport) BOOL __stdcall ScaleWindowExtEx( HDC hdc, int xn, int xd, int yn, int yd, LPSIZE lpsz); +__declspec(dllimport) BOOL __stdcall SetBitmapDimensionEx( HBITMAP hbm, int w, int h, LPSIZE lpsz); +__declspec(dllimport) BOOL __stdcall SetBrushOrgEx( HDC hdc, int x, int y, LPPOINT lppt); +# 5087 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +__declspec(dllimport) int __stdcall GetTextFaceA( HDC hdc, int c, LPSTR lpName); +__declspec(dllimport) int __stdcall GetTextFaceW( HDC hdc, int c, LPWSTR lpName); +# 5097 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagKERNINGPAIR { + WORD wFirst; + WORD wSecond; + int iKernAmount; +} KERNINGPAIR, *LPKERNINGPAIR; + +__declspec(dllimport) DWORD __stdcall GetKerningPairsA( HDC hdc, + DWORD nPairs, + LPKERNINGPAIR lpKernPair); +__declspec(dllimport) DWORD __stdcall GetKerningPairsW( HDC hdc, + DWORD nPairs, + LPKERNINGPAIR lpKernPair); + + + + + + + +__declspec(dllimport) BOOL __stdcall GetDCOrgEx( HDC hdc, LPPOINT lppt); +__declspec(dllimport) BOOL __stdcall FixBrushOrgEx( HDC hdc, int x, int y, LPPOINT ptl); +__declspec(dllimport) BOOL __stdcall UnrealizeObject( HGDIOBJ h); + +__declspec(dllimport) BOOL __stdcall GdiFlush(void); +__declspec(dllimport) DWORD __stdcall GdiSetBatchLimit( DWORD dw); +__declspec(dllimport) DWORD __stdcall GdiGetBatchLimit(void); +# 5131 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef int (__stdcall* ICMENUMPROCA)(LPSTR, LPARAM); +typedef int (__stdcall* ICMENUMPROCW)(LPWSTR, LPARAM); + + + + + + +__declspec(dllimport) int __stdcall SetICMMode( HDC hdc, int mode); +__declspec(dllimport) BOOL __stdcall CheckColorsInGamut( HDC hdc, + LPRGBTRIPLE lpRGBTriple, + LPVOID dlpBuffer, + DWORD nCount); + +__declspec(dllimport) HCOLORSPACE __stdcall GetColorSpace( HDC hdc); +__declspec(dllimport) BOOL __stdcall GetLogColorSpaceA( HCOLORSPACE hColorSpace, + LPLOGCOLORSPACEA lpBuffer, + DWORD nSize); +__declspec(dllimport) BOOL __stdcall GetLogColorSpaceW( HCOLORSPACE hColorSpace, + LPLOGCOLORSPACEW lpBuffer, + DWORD nSize); + + + + + + +__declspec(dllimport) HCOLORSPACE __stdcall CreateColorSpaceA( LPLOGCOLORSPACEA lplcs); +__declspec(dllimport) HCOLORSPACE __stdcall CreateColorSpaceW( LPLOGCOLORSPACEW lplcs); + + + + + +__declspec(dllimport) HCOLORSPACE __stdcall SetColorSpace( HDC hdc, HCOLORSPACE hcs); +__declspec(dllimport) BOOL __stdcall DeleteColorSpace( HCOLORSPACE hcs); +__declspec(dllimport) BOOL __stdcall GetICMProfileA( HDC hdc, + LPDWORD pBufSize, + LPSTR pszFilename); +__declspec(dllimport) BOOL __stdcall GetICMProfileW( HDC hdc, + LPDWORD pBufSize, + LPWSTR pszFilename); + + + + + + +__declspec(dllimport) BOOL __stdcall SetICMProfileA( HDC hdc, LPSTR lpFileName); +__declspec(dllimport) BOOL __stdcall SetICMProfileW( HDC hdc, LPWSTR lpFileName); + + + + + +__declspec(dllimport) BOOL __stdcall GetDeviceGammaRamp( HDC hdc, LPVOID lpRamp); +__declspec(dllimport) BOOL __stdcall SetDeviceGammaRamp( HDC hdc, LPVOID lpRamp); +__declspec(dllimport) BOOL __stdcall ColorMatchToTarget( HDC hdc, HDC hdcTarget, DWORD action); +__declspec(dllimport) int __stdcall EnumICMProfilesA( HDC hdc, ICMENUMPROCA proc, LPARAM param); +__declspec(dllimport) int __stdcall EnumICMProfilesW( HDC hdc, ICMENUMPROCW proc, LPARAM param); + + + + + + +__declspec(dllimport) BOOL __stdcall UpdateICMRegKeyA( DWORD reserved, LPSTR lpszCMID, LPSTR lpszFileName, UINT command); + +__declspec(dllimport) BOOL __stdcall UpdateICMRegKeyW( DWORD reserved, LPWSTR lpszCMID, LPWSTR lpszFileName, UINT command); + + + + + + + +#pragma deprecated (UpdateICMRegKeyW) +#pragma deprecated (UpdateICMRegKeyA) + + + + + +__declspec(dllimport) BOOL __stdcall ColorCorrectPalette( HDC hdc, HPALETTE hPal, DWORD deFirst, DWORD num); +# 5379 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +typedef struct tagEMR +{ + DWORD iType; + DWORD nSize; + +} EMR, *PEMR; + + + +typedef struct tagEMRTEXT +{ + POINTL ptlReference; + DWORD nChars; + DWORD offString; + DWORD fOptions; + RECTL rcl; + DWORD offDx; + +} EMRTEXT, *PEMRTEXT; + + + +typedef struct tagABORTPATH +{ + EMR emr; +} EMRABORTPATH, *PEMRABORTPATH, + EMRBEGINPATH, *PEMRBEGINPATH, + EMRENDPATH, *PEMRENDPATH, + EMRCLOSEFIGURE, *PEMRCLOSEFIGURE, + EMRFLATTENPATH, *PEMRFLATTENPATH, + EMRWIDENPATH, *PEMRWIDENPATH, + EMRSETMETARGN, *PEMRSETMETARGN, + EMRSAVEDC, *PEMRSAVEDC, + EMRREALIZEPALETTE, *PEMRREALIZEPALETTE; + +typedef struct tagEMRSELECTCLIPPATH +{ + EMR emr; + DWORD iMode; +} EMRSELECTCLIPPATH, *PEMRSELECTCLIPPATH, + EMRSETBKMODE, *PEMRSETBKMODE, + EMRSETMAPMODE, *PEMRSETMAPMODE, + + EMRSETLAYOUT, *PEMRSETLAYOUT, + + EMRSETPOLYFILLMODE, *PEMRSETPOLYFILLMODE, + EMRSETROP2, *PEMRSETROP2, + EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE, + EMRSETICMMODE, *PEMRSETICMMODE, + EMRSETTEXTALIGN, *PEMRSETTEXTALIGN; + +typedef struct tagEMRSETMITERLIMIT +{ + EMR emr; + FLOAT eMiterLimit; +} EMRSETMITERLIMIT, *PEMRSETMITERLIMIT; + +typedef struct tagEMRRESTOREDC +{ + EMR emr; + LONG iRelative; +} EMRRESTOREDC, *PEMRRESTOREDC; + +typedef struct tagEMRSETARCDIRECTION +{ + EMR emr; + DWORD iArcDirection; + +} EMRSETARCDIRECTION, *PEMRSETARCDIRECTION; + +typedef struct tagEMRSETMAPPERFLAGS +{ + EMR emr; + DWORD dwFlags; +} EMRSETMAPPERFLAGS, *PEMRSETMAPPERFLAGS; + +typedef struct tagEMRSETTEXTCOLOR +{ + EMR emr; + COLORREF crColor; +} EMRSETBKCOLOR, *PEMRSETBKCOLOR, + EMRSETTEXTCOLOR, *PEMRSETTEXTCOLOR; + +typedef struct tagEMRSELECTOBJECT +{ + EMR emr; + DWORD ihObject; +} EMRSELECTOBJECT, *PEMRSELECTOBJECT, + EMRDELETEOBJECT, *PEMRDELETEOBJECT; + +typedef struct tagEMRSELECTPALETTE +{ + EMR emr; + DWORD ihPal; +} EMRSELECTPALETTE, *PEMRSELECTPALETTE; + +typedef struct tagEMRRESIZEPALETTE +{ + EMR emr; + DWORD ihPal; + DWORD cEntries; +} EMRRESIZEPALETTE, *PEMRRESIZEPALETTE; + +typedef struct tagEMRSETPALETTEENTRIES +{ + EMR emr; + DWORD ihPal; + DWORD iStart; + DWORD cEntries; + PALETTEENTRY aPalEntries[1]; +} EMRSETPALETTEENTRIES, *PEMRSETPALETTEENTRIES; + +typedef struct tagEMRSETCOLORADJUSTMENT +{ + EMR emr; + COLORADJUSTMENT ColorAdjustment; +} EMRSETCOLORADJUSTMENT, *PEMRSETCOLORADJUSTMENT; + +typedef struct tagEMRGDICOMMENT +{ + EMR emr; + DWORD cbData; + BYTE Data[1]; +} EMRGDICOMMENT, *PEMRGDICOMMENT; + +typedef struct tagEMREOF +{ + EMR emr; + DWORD nPalEntries; + DWORD offPalEntries; + DWORD nSizeLast; + + +} EMREOF, *PEMREOF; + +typedef struct tagEMRLINETO +{ + EMR emr; + POINTL ptl; +} EMRLINETO, *PEMRLINETO, + EMRMOVETOEX, *PEMRMOVETOEX; + +typedef struct tagEMROFFSETCLIPRGN +{ + EMR emr; + POINTL ptlOffset; +} EMROFFSETCLIPRGN, *PEMROFFSETCLIPRGN; + +typedef struct tagEMRFILLPATH +{ + EMR emr; + RECTL rclBounds; +} EMRFILLPATH, *PEMRFILLPATH, + EMRSTROKEANDFILLPATH, *PEMRSTROKEANDFILLPATH, + EMRSTROKEPATH, *PEMRSTROKEPATH; + +typedef struct tagEMREXCLUDECLIPRECT +{ + EMR emr; + RECTL rclClip; +} EMREXCLUDECLIPRECT, *PEMREXCLUDECLIPRECT, + EMRINTERSECTCLIPRECT, *PEMRINTERSECTCLIPRECT; + +typedef struct tagEMRSETVIEWPORTORGEX +{ + EMR emr; + POINTL ptlOrigin; +} EMRSETVIEWPORTORGEX, *PEMRSETVIEWPORTORGEX, + EMRSETWINDOWORGEX, *PEMRSETWINDOWORGEX, + EMRSETBRUSHORGEX, *PEMRSETBRUSHORGEX; + +typedef struct tagEMRSETVIEWPORTEXTEX +{ + EMR emr; + SIZEL szlExtent; +} EMRSETVIEWPORTEXTEX, *PEMRSETVIEWPORTEXTEX, + EMRSETWINDOWEXTEX, *PEMRSETWINDOWEXTEX; + +typedef struct tagEMRSCALEVIEWPORTEXTEX +{ + EMR emr; + LONG xNum; + LONG xDenom; + LONG yNum; + LONG yDenom; +} EMRSCALEVIEWPORTEXTEX, *PEMRSCALEVIEWPORTEXTEX, + EMRSCALEWINDOWEXTEX, *PEMRSCALEWINDOWEXTEX; + +typedef struct tagEMRSETWORLDTRANSFORM +{ + EMR emr; + XFORM xform; +} EMRSETWORLDTRANSFORM, *PEMRSETWORLDTRANSFORM; + +typedef struct tagEMRMODIFYWORLDTRANSFORM +{ + EMR emr; + XFORM xform; + DWORD iMode; +} EMRMODIFYWORLDTRANSFORM, *PEMRMODIFYWORLDTRANSFORM; + +typedef struct tagEMRSETPIXELV +{ + EMR emr; + POINTL ptlPixel; + COLORREF crColor; +} EMRSETPIXELV, *PEMRSETPIXELV; + +typedef struct tagEMREXTFLOODFILL +{ + EMR emr; + POINTL ptlStart; + COLORREF crColor; + DWORD iMode; +} EMREXTFLOODFILL, *PEMREXTFLOODFILL; + +typedef struct tagEMRELLIPSE +{ + EMR emr; + RECTL rclBox; +} EMRELLIPSE, *PEMRELLIPSE, + EMRRECTANGLE, *PEMRRECTANGLE; + + +typedef struct tagEMRROUNDRECT +{ + EMR emr; + RECTL rclBox; + SIZEL szlCorner; +} EMRROUNDRECT, *PEMRROUNDRECT; + +typedef struct tagEMRARC +{ + EMR emr; + RECTL rclBox; + POINTL ptlStart; + POINTL ptlEnd; +} EMRARC, *PEMRARC, + EMRARCTO, *PEMRARCTO, + EMRCHORD, *PEMRCHORD, + EMRPIE, *PEMRPIE; + +typedef struct tagEMRANGLEARC +{ + EMR emr; + POINTL ptlCenter; + DWORD nRadius; + FLOAT eStartAngle; + FLOAT eSweepAngle; +} EMRANGLEARC, *PEMRANGLEARC; + +typedef struct tagEMRPOLYLINE +{ + EMR emr; + RECTL rclBounds; + DWORD cptl; + POINTL aptl[1]; +} EMRPOLYLINE, *PEMRPOLYLINE, + EMRPOLYBEZIER, *PEMRPOLYBEZIER, + EMRPOLYGON, *PEMRPOLYGON, + EMRPOLYBEZIERTO, *PEMRPOLYBEZIERTO, + EMRPOLYLINETO, *PEMRPOLYLINETO; + +typedef struct tagEMRPOLYLINE16 +{ + EMR emr; + RECTL rclBounds; + DWORD cpts; + POINTS apts[1]; +} EMRPOLYLINE16, *PEMRPOLYLINE16, + EMRPOLYBEZIER16, *PEMRPOLYBEZIER16, + EMRPOLYGON16, *PEMRPOLYGON16, + EMRPOLYBEZIERTO16, *PEMRPOLYBEZIERTO16, + EMRPOLYLINETO16, *PEMRPOLYLINETO16; + +typedef struct tagEMRPOLYDRAW +{ + EMR emr; + RECTL rclBounds; + DWORD cptl; + POINTL aptl[1]; + BYTE abTypes[1]; +} EMRPOLYDRAW, *PEMRPOLYDRAW; + +typedef struct tagEMRPOLYDRAW16 +{ + EMR emr; + RECTL rclBounds; + DWORD cpts; + POINTS apts[1]; + BYTE abTypes[1]; +} EMRPOLYDRAW16, *PEMRPOLYDRAW16; + +typedef struct tagEMRPOLYPOLYLINE +{ + EMR emr; + RECTL rclBounds; + DWORD nPolys; + DWORD cptl; + DWORD aPolyCounts[1]; + POINTL aptl[1]; +} EMRPOLYPOLYLINE, *PEMRPOLYPOLYLINE, + EMRPOLYPOLYGON, *PEMRPOLYPOLYGON; + +typedef struct tagEMRPOLYPOLYLINE16 +{ + EMR emr; + RECTL rclBounds; + DWORD nPolys; + DWORD cpts; + DWORD aPolyCounts[1]; + POINTS apts[1]; +} EMRPOLYPOLYLINE16, *PEMRPOLYPOLYLINE16, + EMRPOLYPOLYGON16, *PEMRPOLYPOLYGON16; + +typedef struct tagEMRINVERTRGN +{ + EMR emr; + RECTL rclBounds; + DWORD cbRgnData; + BYTE RgnData[1]; +} EMRINVERTRGN, *PEMRINVERTRGN, + EMRPAINTRGN, *PEMRPAINTRGN; + +typedef struct tagEMRFILLRGN +{ + EMR emr; + RECTL rclBounds; + DWORD cbRgnData; + DWORD ihBrush; + BYTE RgnData[1]; +} EMRFILLRGN, *PEMRFILLRGN; + +typedef struct tagEMRFRAMERGN +{ + EMR emr; + RECTL rclBounds; + DWORD cbRgnData; + DWORD ihBrush; + SIZEL szlStroke; + BYTE RgnData[1]; +} EMRFRAMERGN, *PEMRFRAMERGN; + +typedef struct tagEMREXTSELECTCLIPRGN +{ + EMR emr; + DWORD cbRgnData; + DWORD iMode; + BYTE RgnData[1]; +} EMREXTSELECTCLIPRGN, *PEMREXTSELECTCLIPRGN; + +typedef struct tagEMREXTTEXTOUTA +{ + EMR emr; + RECTL rclBounds; + DWORD iGraphicsMode; + FLOAT exScale; + FLOAT eyScale; + EMRTEXT emrtext; + +} EMREXTTEXTOUTA, *PEMREXTTEXTOUTA, + EMREXTTEXTOUTW, *PEMREXTTEXTOUTW; + +typedef struct tagEMRPOLYTEXTOUTA +{ + EMR emr; + RECTL rclBounds; + DWORD iGraphicsMode; + FLOAT exScale; + FLOAT eyScale; + LONG cStrings; + EMRTEXT aemrtext[1]; + +} EMRPOLYTEXTOUTA, *PEMRPOLYTEXTOUTA, + EMRPOLYTEXTOUTW, *PEMRPOLYTEXTOUTW; + +typedef struct tagEMRBITBLT +{ + EMR emr; + RECTL rclBounds; + LONG xDest; + LONG yDest; + LONG cxDest; + LONG cyDest; + DWORD dwRop; + LONG xSrc; + LONG ySrc; + XFORM xformSrc; + COLORREF crBkColorSrc; + DWORD iUsageSrc; + + DWORD offBmiSrc; + DWORD cbBmiSrc; + DWORD offBitsSrc; + DWORD cbBitsSrc; +} EMRBITBLT, *PEMRBITBLT; + +typedef struct tagEMRSTRETCHBLT +{ + EMR emr; + RECTL rclBounds; + LONG xDest; + LONG yDest; + LONG cxDest; + LONG cyDest; + DWORD dwRop; + LONG xSrc; + LONG ySrc; + XFORM xformSrc; + COLORREF crBkColorSrc; + DWORD iUsageSrc; + + DWORD offBmiSrc; + DWORD cbBmiSrc; + DWORD offBitsSrc; + DWORD cbBitsSrc; + LONG cxSrc; + LONG cySrc; +} EMRSTRETCHBLT, *PEMRSTRETCHBLT; + +typedef struct tagEMRMASKBLT +{ + EMR emr; + RECTL rclBounds; + LONG xDest; + LONG yDest; + LONG cxDest; + LONG cyDest; + DWORD dwRop; + LONG xSrc; + LONG ySrc; + XFORM xformSrc; + COLORREF crBkColorSrc; + DWORD iUsageSrc; + + DWORD offBmiSrc; + DWORD cbBmiSrc; + DWORD offBitsSrc; + DWORD cbBitsSrc; + LONG xMask; + LONG yMask; + DWORD iUsageMask; + DWORD offBmiMask; + DWORD cbBmiMask; + DWORD offBitsMask; + DWORD cbBitsMask; +} EMRMASKBLT, *PEMRMASKBLT; + +typedef struct tagEMRPLGBLT +{ + EMR emr; + RECTL rclBounds; + POINTL aptlDest[3]; + LONG xSrc; + LONG ySrc; + LONG cxSrc; + LONG cySrc; + XFORM xformSrc; + COLORREF crBkColorSrc; + DWORD iUsageSrc; + + DWORD offBmiSrc; + DWORD cbBmiSrc; + DWORD offBitsSrc; + DWORD cbBitsSrc; + LONG xMask; + LONG yMask; + DWORD iUsageMask; + DWORD offBmiMask; + DWORD cbBmiMask; + DWORD offBitsMask; + DWORD cbBitsMask; +} EMRPLGBLT, *PEMRPLGBLT; + +typedef struct tagEMRSETDIBITSTODEVICE +{ + EMR emr; + RECTL rclBounds; + LONG xDest; + LONG yDest; + LONG xSrc; + LONG ySrc; + LONG cxSrc; + LONG cySrc; + DWORD offBmiSrc; + DWORD cbBmiSrc; + DWORD offBitsSrc; + DWORD cbBitsSrc; + DWORD iUsageSrc; + DWORD iStartScan; + DWORD cScans; +} EMRSETDIBITSTODEVICE, *PEMRSETDIBITSTODEVICE; + +typedef struct tagEMRSTRETCHDIBITS +{ + EMR emr; + RECTL rclBounds; + LONG xDest; + LONG yDest; + LONG xSrc; + LONG ySrc; + LONG cxSrc; + LONG cySrc; + DWORD offBmiSrc; + DWORD cbBmiSrc; + DWORD offBitsSrc; + DWORD cbBitsSrc; + DWORD iUsageSrc; + DWORD dwRop; + LONG cxDest; + LONG cyDest; +} EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS; + +typedef struct tagEMREXTCREATEFONTINDIRECTW +{ + EMR emr; + DWORD ihFont; + EXTLOGFONTW elfw; +} EMREXTCREATEFONTINDIRECTW, *PEMREXTCREATEFONTINDIRECTW; + +typedef struct tagEMRCREATEPALETTE +{ + EMR emr; + DWORD ihPal; + LOGPALETTE lgpl; + +} EMRCREATEPALETTE, *PEMRCREATEPALETTE; + +typedef struct tagEMRCREATEPEN +{ + EMR emr; + DWORD ihPen; + LOGPEN lopn; +} EMRCREATEPEN, *PEMRCREATEPEN; + +typedef struct tagEMREXTCREATEPEN +{ + EMR emr; + DWORD ihPen; + DWORD offBmi; + DWORD cbBmi; + + + DWORD offBits; + DWORD cbBits; + EXTLOGPEN32 elp; +} EMREXTCREATEPEN, *PEMREXTCREATEPEN; + +typedef struct tagEMRCREATEBRUSHINDIRECT +{ + EMR emr; + DWORD ihBrush; + LOGBRUSH32 lb; + +} EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT; + +typedef struct tagEMRCREATEMONOBRUSH +{ + EMR emr; + DWORD ihBrush; + DWORD iUsage; + DWORD offBmi; + DWORD cbBmi; + DWORD offBits; + DWORD cbBits; +} EMRCREATEMONOBRUSH, *PEMRCREATEMONOBRUSH; + +typedef struct tagEMRCREATEDIBPATTERNBRUSHPT +{ + EMR emr; + DWORD ihBrush; + DWORD iUsage; + DWORD offBmi; + DWORD cbBmi; + + + DWORD offBits; + DWORD cbBits; +} EMRCREATEDIBPATTERNBRUSHPT, *PEMRCREATEDIBPATTERNBRUSHPT; + +typedef struct tagEMRFORMAT +{ + DWORD dSignature; + DWORD nVersion; + DWORD cbData; + DWORD offData; + +} EMRFORMAT, *PEMRFORMAT; + + + +typedef struct tagEMRGLSRECORD +{ + EMR emr; + DWORD cbData; + BYTE Data[1]; +} EMRGLSRECORD, *PEMRGLSRECORD; + +typedef struct tagEMRGLSBOUNDEDRECORD +{ + EMR emr; + RECTL rclBounds; + DWORD cbData; + BYTE Data[1]; +} EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD; + +typedef struct tagEMRPIXELFORMAT +{ + EMR emr; + PIXELFORMATDESCRIPTOR pfd; +} EMRPIXELFORMAT, *PEMRPIXELFORMAT; + +typedef struct tagEMRCREATECOLORSPACE +{ + EMR emr; + DWORD ihCS; + LOGCOLORSPACEA lcs; +} EMRCREATECOLORSPACE, *PEMRCREATECOLORSPACE; + +typedef struct tagEMRSETCOLORSPACE +{ + EMR emr; + DWORD ihCS; +} EMRSETCOLORSPACE, *PEMRSETCOLORSPACE, + EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE, + EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE; + + + + + +typedef struct tagEMREXTESCAPE +{ + EMR emr; + INT iEscape; + INT cbEscData; + BYTE EscData[1]; +} EMREXTESCAPE, *PEMREXTESCAPE, + EMRDRAWESCAPE, *PEMRDRAWESCAPE; + +typedef struct tagEMRNAMEDESCAPE +{ + EMR emr; + INT iEscape; + INT cbDriver; + INT cbEscData; + BYTE EscData[1]; +} EMRNAMEDESCAPE, *PEMRNAMEDESCAPE; + + + +typedef struct tagEMRSETICMPROFILE +{ + EMR emr; + DWORD dwFlags; + DWORD cbName; + DWORD cbData; + BYTE Data[1]; +} EMRSETICMPROFILE, *PEMRSETICMPROFILE, + EMRSETICMPROFILEA, *PEMRSETICMPROFILEA, + EMRSETICMPROFILEW, *PEMRSETICMPROFILEW; + + + +typedef struct tagEMRCREATECOLORSPACEW +{ + EMR emr; + DWORD ihCS; + LOGCOLORSPACEW lcs; + DWORD dwFlags; + DWORD cbData; + BYTE Data[1]; +} EMRCREATECOLORSPACEW, *PEMRCREATECOLORSPACEW; + + + +typedef struct tagCOLORMATCHTOTARGET +{ + EMR emr; + DWORD dwAction; + DWORD dwFlags; + DWORD cbName; + DWORD cbData; + BYTE Data[1]; +} EMRCOLORMATCHTOTARGET, *PEMRCOLORMATCHTOTARGET; + +typedef struct tagCOLORCORRECTPALETTE +{ + EMR emr; + DWORD ihPalette; + DWORD nFirstEntry; + DWORD nPalEntries; + DWORD nReserved; +} EMRCOLORCORRECTPALETTE, *PEMRCOLORCORRECTPALETTE; + +typedef struct tagEMRALPHABLEND +{ + EMR emr; + RECTL rclBounds; + LONG xDest; + LONG yDest; + LONG cxDest; + LONG cyDest; + DWORD dwRop; + LONG xSrc; + LONG ySrc; + XFORM xformSrc; + COLORREF crBkColorSrc; + DWORD iUsageSrc; + + DWORD offBmiSrc; + DWORD cbBmiSrc; + DWORD offBitsSrc; + DWORD cbBitsSrc; + LONG cxSrc; + LONG cySrc; +} EMRALPHABLEND, *PEMRALPHABLEND; + +typedef struct tagEMRGRADIENTFILL +{ + EMR emr; + RECTL rclBounds; + DWORD nVer; + DWORD nTri; + ULONG ulMode; + TRIVERTEX Ver[1]; +}EMRGRADIENTFILL,*PEMRGRADIENTFILL; + +typedef struct tagEMRTRANSPARENTBLT +{ + EMR emr; + RECTL rclBounds; + LONG xDest; + LONG yDest; + LONG cxDest; + LONG cyDest; + DWORD dwRop; + LONG xSrc; + LONG ySrc; + XFORM xformSrc; + COLORREF crBkColorSrc; + DWORD iUsageSrc; + + DWORD offBmiSrc; + DWORD cbBmiSrc; + DWORD offBitsSrc; + DWORD cbBitsSrc; + LONG cxSrc; + LONG cySrc; +} EMRTRANSPARENTBLT, *PEMRTRANSPARENTBLT; +# 6147 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +__declspec(dllimport) BOOL __stdcall wglCopyContext(HGLRC, HGLRC, UINT); +__declspec(dllimport) HGLRC __stdcall wglCreateContext(HDC); +__declspec(dllimport) HGLRC __stdcall wglCreateLayerContext(HDC, int); +__declspec(dllimport) BOOL __stdcall wglDeleteContext(HGLRC); +__declspec(dllimport) HGLRC __stdcall wglGetCurrentContext(void); +__declspec(dllimport) HDC __stdcall wglGetCurrentDC(void); +__declspec(dllimport) PROC __stdcall wglGetProcAddress(LPCSTR); +__declspec(dllimport) BOOL __stdcall wglMakeCurrent(HDC, HGLRC); +__declspec(dllimport) BOOL __stdcall wglShareLists(HGLRC, HGLRC); +__declspec(dllimport) BOOL __stdcall wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD); +__declspec(dllimport) BOOL __stdcall wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD); + + + + + +__declspec(dllimport) BOOL __stdcall SwapBuffers(HDC); + +typedef struct _POINTFLOAT { + FLOAT x; + FLOAT y; +} POINTFLOAT, *PPOINTFLOAT; + +typedef struct _GLYPHMETRICSFLOAT { + FLOAT gmfBlackBoxX; + FLOAT gmfBlackBoxY; + POINTFLOAT gmfptGlyphOrigin; + FLOAT gmfCellIncX; + FLOAT gmfCellIncY; +} GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT; + + + +__declspec(dllimport) BOOL __stdcall wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT, + FLOAT, int, LPGLYPHMETRICSFLOAT); +__declspec(dllimport) BOOL __stdcall wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT, + FLOAT, int, LPGLYPHMETRICSFLOAT); + + + + + + + +typedef struct tagLAYERPLANEDESCRIPTOR { + WORD nSize; + WORD nVersion; + DWORD dwFlags; + BYTE iPixelType; + BYTE cColorBits; + BYTE cRedBits; + BYTE cRedShift; + BYTE cGreenBits; + BYTE cGreenShift; + BYTE cBlueBits; + BYTE cBlueShift; + BYTE cAlphaBits; + BYTE cAlphaShift; + BYTE cAccumBits; + BYTE cAccumRedBits; + BYTE cAccumGreenBits; + BYTE cAccumBlueBits; + BYTE cAccumAlphaBits; + BYTE cDepthBits; + BYTE cStencilBits; + BYTE cAuxBuffers; + BYTE iLayerPlane; + BYTE bReserved; + COLORREF crTransparent; +} LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR; +# 6266 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +__declspec(dllimport) BOOL __stdcall wglDescribeLayerPlane(HDC, int, int, UINT, + LPLAYERPLANEDESCRIPTOR); +__declspec(dllimport) int __stdcall wglSetLayerPaletteEntries(HDC, int, int, int, + const COLORREF *); +__declspec(dllimport) int __stdcall wglGetLayerPaletteEntries(HDC, int, int, int, + COLORREF *); +__declspec(dllimport) BOOL __stdcall wglRealizeLayerPalette(HDC, int, BOOL); +__declspec(dllimport) BOOL __stdcall wglSwapLayerBuffers(HDC, UINT); + + + +typedef struct _WGLSWAP +{ + HDC hdc; + UINT uiFlags; +} WGLSWAP, *PWGLSWAP, *LPWGLSWAP; + + + +__declspec(dllimport) DWORD __stdcall wglSwapMultipleBuffers(UINT, const WGLSWAP *); +# 6302 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wingdi.h" +} + + + +#pragma warning(pop) +# 170 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\Windows.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +extern "C" { + + +#pragma warning(push) + + + +#pragma warning(disable: 4820) +# 69 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef HANDLE HDWP; +typedef void MENUTEMPLATEA; +typedef void MENUTEMPLATEW; + +typedef MENUTEMPLATEW MENUTEMPLATE; + + + +typedef PVOID LPMENUTEMPLATEA; +typedef PVOID LPMENUTEMPLATEW; + +typedef LPMENUTEMPLATEW LPMENUTEMPLATE; + + + + +typedef LRESULT (__stdcall* WNDPROC)(HWND, UINT, WPARAM, LPARAM); +# 95 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef INT_PTR (__stdcall* DLGPROC)(HWND, UINT, WPARAM, LPARAM); + + + + + + + +typedef void (__stdcall* TIMERPROC)(HWND, UINT, UINT_PTR, DWORD); +typedef BOOL (__stdcall* GRAYSTRINGPROC)(HDC, LPARAM, int); +typedef BOOL (__stdcall* WNDENUMPROC)(HWND, LPARAM); +typedef LRESULT (__stdcall* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam); +typedef void (__stdcall* SENDASYNCPROC)(HWND, UINT, ULONG_PTR, LRESULT); + +typedef BOOL (__stdcall* PROPENUMPROCA)(HWND, LPCSTR, HANDLE); +typedef BOOL (__stdcall* PROPENUMPROCW)(HWND, LPCWSTR, HANDLE); + +typedef BOOL (__stdcall* PROPENUMPROCEXA)(HWND, LPSTR, HANDLE, ULONG_PTR); +typedef BOOL (__stdcall* PROPENUMPROCEXW)(HWND, LPWSTR, HANDLE, ULONG_PTR); + +typedef int (__stdcall* EDITWORDBREAKPROCA)(LPSTR lpch, int ichCurrent, int cch, int code); +typedef int (__stdcall* EDITWORDBREAKPROCW)(LPWSTR lpch, int ichCurrent, int cch, int code); + + +typedef BOOL (__stdcall* DRAWSTATEPROC)(HDC hdc, LPARAM lData, WPARAM wData, int cx, int cy); +# 168 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef PROPENUMPROCW PROPENUMPROC; +typedef PROPENUMPROCEXW PROPENUMPROCEX; +typedef EDITWORDBREAKPROCW EDITWORDBREAKPROC; +# 179 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef BOOL (__stdcall* NAMEENUMPROCA)(LPSTR, LPARAM); +typedef BOOL (__stdcall* NAMEENUMPROCW)(LPWSTR, LPARAM); + +typedef NAMEENUMPROCA WINSTAENUMPROCA; +typedef NAMEENUMPROCA DESKTOPENUMPROCA; +typedef NAMEENUMPROCW WINSTAENUMPROCW; +typedef NAMEENUMPROCW DESKTOPENUMPROCW; +# 201 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef WINSTAENUMPROCW WINSTAENUMPROC; +typedef DESKTOPENUMPROCW DESKTOPENUMPROC; +# 272 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +#pragma warning(push) +#pragma warning(disable: 4995) + + + + + +__declspec(dllimport) +int +__stdcall +wvsprintfA( + LPSTR, + LPCSTR, + va_list arglist); +__declspec(dllimport) +int +__stdcall +wvsprintfW( + LPWSTR, + LPCWSTR, + va_list arglist); + + + + + + +__declspec(dllimport) +int +__cdecl +wsprintfA( + LPSTR, + LPCSTR, + ...); +__declspec(dllimport) +int +__cdecl +wsprintfW( + LPWSTR, + LPCWSTR, + ...); + + + + + + + +#pragma warning(pop) +# 836 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagCBT_CREATEWNDA +{ + struct tagCREATESTRUCTA *lpcs; + HWND hwndInsertAfter; +} CBT_CREATEWNDA, *LPCBT_CREATEWNDA; + + + +typedef struct tagCBT_CREATEWNDW +{ + struct tagCREATESTRUCTW *lpcs; + HWND hwndInsertAfter; +} CBT_CREATEWNDW, *LPCBT_CREATEWNDW; + +typedef CBT_CREATEWNDW CBT_CREATEWND; +typedef LPCBT_CREATEWNDW LPCBT_CREATEWND; +# 860 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagCBTACTIVATESTRUCT +{ + BOOL fMouse; + HWND hWndActive; +} CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT; +# 877 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagWTSSESSION_NOTIFICATION +{ + DWORD cbSize; + DWORD dwSessionId; + +} WTSSESSION_NOTIFICATION, *PWTSSESSION_NOTIFICATION; +# 1028 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct +{ + HWND hwnd; + RECT rc; +} SHELLHOOKINFO, *LPSHELLHOOKINFO; + + + + +typedef struct tagEVENTMSG { + UINT message; + UINT paramL; + UINT paramH; + DWORD time; + HWND hwnd; +} EVENTMSG, *PEVENTMSGMSG, *NPEVENTMSGMSG, *LPEVENTMSGMSG; + +typedef struct tagEVENTMSG *PEVENTMSG, *NPEVENTMSG, *LPEVENTMSG; + + + + +typedef struct tagCWPSTRUCT { + LPARAM lParam; + WPARAM wParam; + UINT message; + HWND hwnd; +} CWPSTRUCT, *PCWPSTRUCT, *NPCWPSTRUCT, *LPCWPSTRUCT; + + + + + +typedef struct tagCWPRETSTRUCT { + LRESULT lResult; + LPARAM lParam; + WPARAM wParam; + UINT message; + HWND hwnd; +} CWPRETSTRUCT, *PCWPRETSTRUCT, *NPCWPRETSTRUCT, *LPCWPRETSTRUCT; +# 1095 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagKBDLLHOOKSTRUCT { + DWORD vkCode; + DWORD scanCode; + DWORD flags; + DWORD time; + ULONG_PTR dwExtraInfo; +} KBDLLHOOKSTRUCT, *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT; + + + + +typedef struct tagMSLLHOOKSTRUCT { + POINT pt; + DWORD mouseData; + DWORD flags; + DWORD time; + ULONG_PTR dwExtraInfo; +} MSLLHOOKSTRUCT, *LPMSLLHOOKSTRUCT, *PMSLLHOOKSTRUCT; +# 1125 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagDEBUGHOOKINFO +{ + DWORD idThread; + DWORD idThreadInstaller; + LPARAM lParam; + WPARAM wParam; + int code; +} DEBUGHOOKINFO, *PDEBUGHOOKINFO, *NPDEBUGHOOKINFO, * LPDEBUGHOOKINFO; + + + + +typedef struct tagMOUSEHOOKSTRUCT { + POINT pt; + HWND hwnd; + UINT wHitTestCode; + ULONG_PTR dwExtraInfo; +} MOUSEHOOKSTRUCT, *LPMOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT; + + + +typedef struct tagMOUSEHOOKSTRUCTEX : public tagMOUSEHOOKSTRUCT +{ + DWORD mouseData; +} MOUSEHOOKSTRUCTEX, *LPMOUSEHOOKSTRUCTEX, *PMOUSEHOOKSTRUCTEX; +# 1163 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagHARDWAREHOOKSTRUCT { + HWND hwnd; + UINT message; + WPARAM wParam; + LPARAM lParam; +} HARDWAREHOOKSTRUCT, *LPHARDWAREHOOKSTRUCT, *PHARDWAREHOOKSTRUCT; +# 1214 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HKL +__stdcall +LoadKeyboardLayoutA( + LPCSTR pwszKLID, + UINT Flags); +__declspec(dllimport) +HKL +__stdcall +LoadKeyboardLayoutW( + LPCWSTR pwszKLID, + UINT Flags); +# 1234 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HKL +__stdcall +ActivateKeyboardLayout( + HKL hkl, + UINT Flags); +# 1250 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +int +__stdcall +ToUnicodeEx( + UINT wVirtKey, + UINT wScanCode, + const BYTE *lpKeyState, + LPWSTR pwszBuff, + int cchBuff, + UINT wFlags, + HKL dwhkl); + + +__declspec(dllimport) +BOOL +__stdcall +UnloadKeyboardLayout( + HKL hkl); + +__declspec(dllimport) +BOOL +__stdcall +GetKeyboardLayoutNameA( + LPSTR pwszKLID); +__declspec(dllimport) +BOOL +__stdcall +GetKeyboardLayoutNameW( + LPWSTR pwszKLID); + + + + + + + +__declspec(dllimport) +int +__stdcall +GetKeyboardLayoutList( + int nBuff, + HKL *lpList); + +__declspec(dllimport) +HKL +__stdcall +GetKeyboardLayout( + DWORD idThread); +# 1310 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagMOUSEMOVEPOINT { + int x; + int y; + DWORD time; + ULONG_PTR dwExtraInfo; +} MOUSEMOVEPOINT, *PMOUSEMOVEPOINT, * LPMOUSEMOVEPOINT; +# 1329 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +int +__stdcall +GetMouseMovePointsEx( + UINT cbSize, + LPMOUSEMOVEPOINT lppt, + LPMOUSEMOVEPOINT lpptBuf, + int nBufPoints, + DWORD resolution); +# 1369 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HDESK +__stdcall +CreateDesktopA( + LPCSTR lpszDesktop, + LPCSTR lpszDevice, + DEVMODEA* pDevmode, + DWORD dwFlags, + ACCESS_MASK dwDesiredAccess, + LPSECURITY_ATTRIBUTES lpsa); +__declspec(dllimport) +HDESK +__stdcall +CreateDesktopW( + LPCWSTR lpszDesktop, + LPCWSTR lpszDevice, + DEVMODEW* pDevmode, + DWORD dwFlags, + ACCESS_MASK dwDesiredAccess, + LPSECURITY_ATTRIBUTES lpsa); + + + + + + +__declspec(dllimport) +HDESK +__stdcall +CreateDesktopExA( + LPCSTR lpszDesktop, + LPCSTR lpszDevice, + DEVMODEA* pDevmode, + DWORD dwFlags, + ACCESS_MASK dwDesiredAccess, + LPSECURITY_ATTRIBUTES lpsa, + ULONG ulHeapSize, + PVOID pvoid); +__declspec(dllimport) +HDESK +__stdcall +CreateDesktopExW( + LPCWSTR lpszDesktop, + LPCWSTR lpszDevice, + DEVMODEW* pDevmode, + DWORD dwFlags, + ACCESS_MASK dwDesiredAccess, + LPSECURITY_ATTRIBUTES lpsa, + ULONG ulHeapSize, + PVOID pvoid); +# 1434 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HDESK +__stdcall +OpenDesktopA( + LPCSTR lpszDesktop, + DWORD dwFlags, + BOOL fInherit, + ACCESS_MASK dwDesiredAccess); +__declspec(dllimport) +HDESK +__stdcall +OpenDesktopW( + LPCWSTR lpszDesktop, + DWORD dwFlags, + BOOL fInherit, + ACCESS_MASK dwDesiredAccess); + + + + + + +__declspec(dllimport) +HDESK +__stdcall +OpenInputDesktop( + DWORD dwFlags, + BOOL fInherit, + ACCESS_MASK dwDesiredAccess); + + +__declspec(dllimport) +BOOL +__stdcall +EnumDesktopsA( + HWINSTA hwinsta, + DESKTOPENUMPROCA lpEnumFunc, + LPARAM lParam); +__declspec(dllimport) +BOOL +__stdcall +EnumDesktopsW( + HWINSTA hwinsta, + DESKTOPENUMPROCW lpEnumFunc, + LPARAM lParam); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +EnumDesktopWindows( + HDESK hDesktop, + WNDENUMPROC lpfn, + LPARAM lParam); + + +__declspec(dllimport) +BOOL +__stdcall +SwitchDesktop( + HDESK hDesktop); + + +__declspec(dllimport) +BOOL +__stdcall +SetThreadDesktop( + HDESK hDesktop); + +__declspec(dllimport) +BOOL +__stdcall +CloseDesktop( + HDESK hDesktop); + +__declspec(dllimport) +HDESK +__stdcall +GetThreadDesktop( + DWORD dwThreadId); +# 1555 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HWINSTA +__stdcall +CreateWindowStationA( + LPCSTR lpwinsta, + DWORD dwFlags, + ACCESS_MASK dwDesiredAccess, + LPSECURITY_ATTRIBUTES lpsa); +__declspec(dllimport) +HWINSTA +__stdcall +CreateWindowStationW( + LPCWSTR lpwinsta, + DWORD dwFlags, + ACCESS_MASK dwDesiredAccess, + LPSECURITY_ATTRIBUTES lpsa); + + + + + + +__declspec(dllimport) +HWINSTA +__stdcall +OpenWindowStationA( + LPCSTR lpszWinSta, + BOOL fInherit, + ACCESS_MASK dwDesiredAccess); +__declspec(dllimport) +HWINSTA +__stdcall +OpenWindowStationW( + LPCWSTR lpszWinSta, + BOOL fInherit, + ACCESS_MASK dwDesiredAccess); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +EnumWindowStationsA( + WINSTAENUMPROCA lpEnumFunc, + LPARAM lParam); +__declspec(dllimport) +BOOL +__stdcall +EnumWindowStationsW( + WINSTAENUMPROCW lpEnumFunc, + LPARAM lParam); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CloseWindowStation( + HWINSTA hWinSta); + +__declspec(dllimport) +BOOL +__stdcall +SetProcessWindowStation( + HWINSTA hWinSta); + +__declspec(dllimport) +HWINSTA +__stdcall +GetProcessWindowStation( + void); +# 1643 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +SetUserObjectSecurity( + HANDLE hObj, + PSECURITY_INFORMATION pSIRequested, + PSECURITY_DESCRIPTOR pSID); + +__declspec(dllimport) +BOOL +__stdcall +GetUserObjectSecurity( + HANDLE hObj, + PSECURITY_INFORMATION pSIRequested, + PSECURITY_DESCRIPTOR pSID, + DWORD nLength, + LPDWORD lpnLengthNeeded); +# 1677 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagUSEROBJECTFLAGS { + BOOL fInherit; + BOOL fReserved; + DWORD dwFlags; +} USEROBJECTFLAGS, *PUSEROBJECTFLAGS; + +__declspec(dllimport) +BOOL +__stdcall +GetUserObjectInformationA( + HANDLE hObj, + int nIndex, + PVOID pvInfo, + DWORD nLength, + LPDWORD lpnLengthNeeded); +__declspec(dllimport) +BOOL +__stdcall +GetUserObjectInformationW( + HANDLE hObj, + int nIndex, + PVOID pvInfo, + DWORD nLength, + LPDWORD lpnLengthNeeded); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetUserObjectInformationA( + HANDLE hObj, + int nIndex, + PVOID pvInfo, + DWORD nLength); +__declspec(dllimport) +BOOL +__stdcall +SetUserObjectInformationW( + HANDLE hObj, + int nIndex, + PVOID pvInfo, + DWORD nLength); +# 1738 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagWNDCLASSEXA { + UINT cbSize; + + UINT style; + WNDPROC lpfnWndProc; + int cbClsExtra; + int cbWndExtra; + HINSTANCE hInstance; + HICON hIcon; + HCURSOR hCursor; + HBRUSH hbrBackground; + LPCSTR lpszMenuName; + LPCSTR lpszClassName; + + HICON hIconSm; +} WNDCLASSEXA, *PWNDCLASSEXA, *NPWNDCLASSEXA, *LPWNDCLASSEXA; +typedef struct tagWNDCLASSEXW { + UINT cbSize; + + UINT style; + WNDPROC lpfnWndProc; + int cbClsExtra; + int cbWndExtra; + HINSTANCE hInstance; + HICON hIcon; + HCURSOR hCursor; + HBRUSH hbrBackground; + LPCWSTR lpszMenuName; + LPCWSTR lpszClassName; + + HICON hIconSm; +} WNDCLASSEXW, *PWNDCLASSEXW, *NPWNDCLASSEXW, *LPWNDCLASSEXW; + +typedef WNDCLASSEXW WNDCLASSEX; +typedef PWNDCLASSEXW PWNDCLASSEX; +typedef NPWNDCLASSEXW NPWNDCLASSEX; +typedef LPWNDCLASSEXW LPWNDCLASSEX; +# 1783 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagWNDCLASSA { + UINT style; + WNDPROC lpfnWndProc; + int cbClsExtra; + int cbWndExtra; + HINSTANCE hInstance; + HICON hIcon; + HCURSOR hCursor; + HBRUSH hbrBackground; + LPCSTR lpszMenuName; + LPCSTR lpszClassName; +} WNDCLASSA, *PWNDCLASSA, *NPWNDCLASSA, *LPWNDCLASSA; +typedef struct tagWNDCLASSW { + UINT style; + WNDPROC lpfnWndProc; + int cbClsExtra; + int cbWndExtra; + HINSTANCE hInstance; + HICON hIcon; + HCURSOR hCursor; + HBRUSH hbrBackground; + LPCWSTR lpszMenuName; + LPCWSTR lpszClassName; +} WNDCLASSW, *PWNDCLASSW, *NPWNDCLASSW, *LPWNDCLASSW; + +typedef WNDCLASSW WNDCLASS; +typedef PWNDCLASSW PWNDCLASS; +typedef NPWNDCLASSW NPWNDCLASS; +typedef LPWNDCLASSW LPWNDCLASS; + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +IsHungAppWindow( + HWND hwnd); + + + +__declspec(dllimport) +void +__stdcall +DisableProcessWindowsGhosting( + void); +# 1846 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagMSG { + HWND hwnd; + UINT message; + WPARAM wParam; + LPARAM lParam; + DWORD time; + POINT pt; + + + +} MSG, *PMSG, *NPMSG, *LPMSG; +# 2004 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagMINMAXINFO { + POINT ptReserved; + POINT ptMaxSize; + POINT ptMaxPosition; + POINT ptMinTrackSize; + POINT ptMaxTrackSize; +} MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO; +# 2060 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagCOPYDATASTRUCT { + ULONG_PTR dwData; + DWORD cbData; + PVOID lpData; +} COPYDATASTRUCT, *PCOPYDATASTRUCT; + + +typedef struct tagMDINEXTMENU +{ + HMENU hmenuIn; + HMENU hmenuNext; + HWND hwndNext; +} MDINEXTMENU, * PMDINEXTMENU, * LPMDINEXTMENU; +# 2322 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct { + GUID PowerSetting; + DWORD DataLength; + UCHAR Data[1]; +} POWERBROADCAST_SETTING, *PPOWERBROADCAST_SETTING; +# 2601 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +UINT +__stdcall +RegisterWindowMessageA( + LPCSTR lpString); +__declspec(dllimport) +UINT +__stdcall +RegisterWindowMessageW( + LPCWSTR lpString); +# 2646 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagWINDOWPOS { + HWND hwnd; + HWND hwndInsertAfter; + int x; + int y; + int cx; + int cy; + UINT flags; +} WINDOWPOS, *LPWINDOWPOS, *PWINDOWPOS; + + + + +typedef struct tagNCCALCSIZE_PARAMS { + RECT rgrc[3]; + PWINDOWPOS lppos; +} NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS; +# 2719 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagTRACKMOUSEEVENT { + DWORD cbSize; + DWORD dwFlags; + HWND hwndTrack; + DWORD dwHoverTime; +} TRACKMOUSEEVENT, *LPTRACKMOUSEEVENT; + +__declspec(dllimport) +BOOL +__stdcall +TrackMouseEvent( + LPTRACKMOUSEEVENT lpEventTrack); +# 2937 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +DrawEdge( + HDC hdc, + LPRECT qrc, + UINT edge, + UINT grfFlags); +# 3000 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +DrawFrameControl( + HDC, + LPRECT, + UINT, + UINT); +# 3030 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +DrawCaption( + HWND hwnd, + HDC hdc, + const RECT * lprect, + UINT flags); +# 3049 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +DrawAnimatedRects( + HWND hwnd, + int idAni, + const RECT *lprcFrom, + const RECT *lprcTo); +# 3132 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagACCEL { + + BYTE fVirt; + WORD key; + WORD cmd; + + + + + +} ACCEL, *LPACCEL; + +typedef struct tagPAINTSTRUCT { + HDC hdc; + BOOL fErase; + RECT rcPaint; + BOOL fRestore; + BOOL fIncUpdate; + BYTE rgbReserved[32]; +} PAINTSTRUCT, *PPAINTSTRUCT, *NPPAINTSTRUCT, *LPPAINTSTRUCT; + +typedef struct tagCREATESTRUCTA { + LPVOID lpCreateParams; + HINSTANCE hInstance; + HMENU hMenu; + HWND hwndParent; + int cy; + int cx; + int y; + int x; + LONG style; + LPCSTR lpszName; + LPCSTR lpszClass; + DWORD dwExStyle; +} CREATESTRUCTA, *LPCREATESTRUCTA; +typedef struct tagCREATESTRUCTW { + LPVOID lpCreateParams; + HINSTANCE hInstance; + HMENU hMenu; + HWND hwndParent; + int cy; + int cx; + int y; + int x; + LONG style; + LPCWSTR lpszName; + LPCWSTR lpszClass; + DWORD dwExStyle; +} CREATESTRUCTW, *LPCREATESTRUCTW; + +typedef CREATESTRUCTW CREATESTRUCT; +typedef LPCREATESTRUCTW LPCREATESTRUCT; + + + + + +typedef struct tagWINDOWPLACEMENT { + UINT length; + UINT flags; + UINT showCmd; + POINT ptMinPosition; + POINT ptMaxPosition; + RECT rcNormalPosition; + + + +} WINDOWPLACEMENT; +typedef WINDOWPLACEMENT *PWINDOWPLACEMENT, *LPWINDOWPLACEMENT; +# 3216 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagNMHDR +{ + HWND hwndFrom; + UINT_PTR idFrom; + UINT code; +} NMHDR; + + + + + + + +typedef NMHDR * LPNMHDR; + +typedef struct tagSTYLESTRUCT +{ + DWORD styleOld; + DWORD styleNew; +} STYLESTRUCT, * LPSTYLESTRUCT; +# 3287 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagMEASUREITEMSTRUCT { + UINT CtlType; + UINT CtlID; + UINT itemID; + UINT itemWidth; + UINT itemHeight; + ULONG_PTR itemData; +} MEASUREITEMSTRUCT, *PMEASUREITEMSTRUCT, *LPMEASUREITEMSTRUCT; + + + + +typedef struct tagDRAWITEMSTRUCT { + UINT CtlType; + UINT CtlID; + UINT itemID; + UINT itemAction; + UINT itemState; + HWND hwndItem; + HDC hDC; + RECT rcItem; + ULONG_PTR itemData; +} DRAWITEMSTRUCT, *PDRAWITEMSTRUCT, *LPDRAWITEMSTRUCT; + + + + +typedef struct tagDELETEITEMSTRUCT { + UINT CtlType; + UINT CtlID; + UINT itemID; + HWND hwndItem; + ULONG_PTR itemData; +} DELETEITEMSTRUCT, *PDELETEITEMSTRUCT, *LPDELETEITEMSTRUCT; + + + + +typedef struct tagCOMPAREITEMSTRUCT { + UINT CtlType; + UINT CtlID; + HWND hwndItem; + UINT itemID1; + ULONG_PTR itemData1; + UINT itemID2; + ULONG_PTR itemData2; + DWORD dwLocaleId; +} COMPAREITEMSTRUCT, *PCOMPAREITEMSTRUCT, *LPCOMPAREITEMSTRUCT; +# 3348 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +GetMessageA( + LPMSG lpMsg, + HWND hWnd, + UINT wMsgFilterMin, + UINT wMsgFilterMax); +__declspec(dllimport) +BOOL +__stdcall +GetMessageW( + LPMSG lpMsg, + HWND hWnd, + UINT wMsgFilterMin, + UINT wMsgFilterMax); +# 3395 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +TranslateMessage( + const MSG *lpMsg); + +__declspec(dllimport) +LRESULT +__stdcall +DispatchMessageA( + const MSG *lpMsg); +__declspec(dllimport) +LRESULT +__stdcall +DispatchMessageW( + const MSG *lpMsg); +# 3435 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +SetMessageQueue( + int cMessagesMax); + +__declspec(dllimport) +BOOL +__stdcall +PeekMessageA( + LPMSG lpMsg, + HWND hWnd, + UINT wMsgFilterMin, + UINT wMsgFilterMax, + UINT wRemoveMsg); +__declspec(dllimport) +BOOL +__stdcall +PeekMessageW( + LPMSG lpMsg, + HWND hWnd, + UINT wMsgFilterMin, + UINT wMsgFilterMax, + UINT wRemoveMsg); +# 3487 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +RegisterHotKey( + HWND hWnd, + int id, + UINT fsModifiers, + UINT vk); + +__declspec(dllimport) +BOOL +__stdcall +UnregisterHotKey( + HWND hWnd, + int id); +# 3563 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +ExitWindowsEx( + UINT uFlags, + DWORD dwReason); + +__declspec(dllimport) +BOOL +__stdcall +SwapMouseButton( + BOOL fSwap); + +__declspec(dllimport) +DWORD +__stdcall +GetMessagePos( + void); + +__declspec(dllimport) +LONG +__stdcall +GetMessageTime( + void); + +__declspec(dllimport) +LPARAM +__stdcall +GetMessageExtraInfo( + void); + + +__declspec(dllimport) +DWORD +__stdcall +GetUnpredictedMessagePos( + void); + + + +__declspec(dllimport) +BOOL +__stdcall +IsWow64Message( + void); + + + +__declspec(dllimport) +LPARAM +__stdcall +SetMessageExtraInfo( + LPARAM lParam); + + +__declspec(dllimport) +LRESULT +__stdcall +SendMessageA( + HWND hWnd, + UINT Msg, + WPARAM wParam, + LPARAM lParam); +__declspec(dllimport) +LRESULT +__stdcall +SendMessageW( + HWND hWnd, + UINT Msg, + WPARAM wParam, + LPARAM lParam); +# 3666 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +LRESULT +__stdcall +SendMessageTimeoutA( + HWND hWnd, + UINT Msg, + WPARAM wParam, + LPARAM lParam, + UINT fuFlags, + UINT uTimeout, + PDWORD_PTR lpdwResult); +__declspec(dllimport) +LRESULT +__stdcall +SendMessageTimeoutW( + HWND hWnd, + UINT Msg, + WPARAM wParam, + LPARAM lParam, + UINT fuFlags, + UINT uTimeout, + PDWORD_PTR lpdwResult); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SendNotifyMessageA( + HWND hWnd, + UINT Msg, + WPARAM wParam, + LPARAM lParam); +__declspec(dllimport) +BOOL +__stdcall +SendNotifyMessageW( + HWND hWnd, + UINT Msg, + WPARAM wParam, + LPARAM lParam); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SendMessageCallbackA( + HWND hWnd, + UINT Msg, + WPARAM wParam, + LPARAM lParam, + SENDASYNCPROC lpResultCallBack, + ULONG_PTR dwData); +__declspec(dllimport) +BOOL +__stdcall +SendMessageCallbackW( + HWND hWnd, + UINT Msg, + WPARAM wParam, + LPARAM lParam, + SENDASYNCPROC lpResultCallBack, + ULONG_PTR dwData); + + + + + + + +typedef struct { + UINT cbSize; + HDESK hdesk; + HWND hwnd; + LUID luid; +} BSMINFO, *PBSMINFO; + +__declspec(dllimport) +long +__stdcall +BroadcastSystemMessageExA( + DWORD flags, + LPDWORD lpInfo, + UINT Msg, + WPARAM wParam, + LPARAM lParam, + PBSMINFO pbsmInfo); +__declspec(dllimport) +long +__stdcall +BroadcastSystemMessageExW( + DWORD flags, + LPDWORD lpInfo, + UINT Msg, + WPARAM wParam, + LPARAM lParam, + PBSMINFO pbsmInfo); +# 3786 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +long +__stdcall +BroadcastSystemMessageA( + DWORD flags, + LPDWORD lpInfo, + UINT Msg, + WPARAM wParam, + LPARAM lParam); +__declspec(dllimport) +long +__stdcall +BroadcastSystemMessageW( + DWORD flags, + LPDWORD lpInfo, + UINT Msg, + WPARAM wParam, + LPARAM lParam); +# 3860 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef PVOID HDEVNOTIFY; +typedef HDEVNOTIFY *PHDEVNOTIFY; + + + + + + + +__declspec(dllimport) +HDEVNOTIFY +__stdcall +RegisterDeviceNotificationA( + HANDLE hRecipient, + LPVOID NotificationFilter, + DWORD Flags); +__declspec(dllimport) +HDEVNOTIFY +__stdcall +RegisterDeviceNotificationW( + HANDLE hRecipient, + LPVOID NotificationFilter, + DWORD Flags); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +UnregisterDeviceNotification( + HDEVNOTIFY Handle + ); + + + + + + + +typedef PVOID HPOWERNOTIFY; +typedef HPOWERNOTIFY *PHPOWERNOTIFY; + + + +__declspec(dllimport) +HPOWERNOTIFY +__stdcall +RegisterPowerSettingNotification( + HANDLE hRecipient, + LPCGUID PowerSettingGuid, + DWORD Flags + ); + +__declspec(dllimport) +BOOL +__stdcall +UnregisterPowerSettingNotification( + HPOWERNOTIFY Handle + ); + +__declspec(dllimport) +HPOWERNOTIFY +__stdcall +RegisterSuspendResumeNotification ( + HANDLE hRecipient, + DWORD Flags + ); + +__declspec(dllimport) +BOOL +__stdcall +UnregisterSuspendResumeNotification ( + HPOWERNOTIFY Handle + ); +# 3948 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +PostMessageA( + HWND hWnd, + UINT Msg, + WPARAM wParam, + LPARAM lParam); +__declspec(dllimport) +BOOL +__stdcall +PostMessageW( + HWND hWnd, + UINT Msg, + WPARAM wParam, + LPARAM lParam); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +PostThreadMessageA( + DWORD idThread, + UINT Msg, + WPARAM wParam, + LPARAM lParam); +__declspec(dllimport) +BOOL +__stdcall +PostThreadMessageW( + DWORD idThread, + UINT Msg, + WPARAM wParam, + LPARAM lParam); +# 4017 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +AttachThreadInput( + DWORD idAttach, + DWORD idAttachTo, + BOOL fAttach); + + +__declspec(dllimport) +BOOL +__stdcall +ReplyMessage( + LRESULT lResult); + +__declspec(dllimport) +BOOL +__stdcall +WaitMessage( + void); + + + + + +__declspec(dllimport) +DWORD +__stdcall +WaitForInputIdle( + HANDLE hProcess, + DWORD dwMilliseconds); + +__declspec(dllimport) + +LRESULT +__stdcall + + + + +DefWindowProcA( + HWND hWnd, + UINT Msg, + WPARAM wParam, + LPARAM lParam); +__declspec(dllimport) + +LRESULT +__stdcall + + + + +DefWindowProcW( + HWND hWnd, + UINT Msg, + WPARAM wParam, + LPARAM lParam); + + + + + + +__declspec(dllimport) +void +__stdcall +PostQuitMessage( + int nExitCode); + + + +__declspec(dllimport) +LRESULT +__stdcall +CallWindowProcA( + WNDPROC lpPrevWndFunc, + HWND hWnd, + UINT Msg, + WPARAM wParam, + LPARAM lParam); +__declspec(dllimport) +LRESULT +__stdcall +CallWindowProcW( + WNDPROC lpPrevWndFunc, + HWND hWnd, + UINT Msg, + WPARAM wParam, + LPARAM lParam); +# 4141 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +InSendMessage( + void); +# 4155 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +DWORD +__stdcall +InSendMessageEx( + LPVOID lpReserved); +# 4178 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +UINT +__stdcall +GetDoubleClickTime( + void); + +__declspec(dllimport) +BOOL +__stdcall +SetDoubleClickTime( + UINT); + +__declspec(dllimport) +ATOM +__stdcall +RegisterClassA( + const WNDCLASSA *lpWndClass); +__declspec(dllimport) +ATOM +__stdcall +RegisterClassW( + const WNDCLASSW *lpWndClass); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +UnregisterClassA( + LPCSTR lpClassName, + HINSTANCE hInstance); +__declspec(dllimport) +BOOL +__stdcall +UnregisterClassW( + LPCWSTR lpClassName, + HINSTANCE hInstance); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetClassInfoA( + HINSTANCE hInstance, + LPCSTR lpClassName, + LPWNDCLASSA lpWndClass); + +__declspec(dllimport) +BOOL +__stdcall +GetClassInfoW( + HINSTANCE hInstance, + LPCWSTR lpClassName, + LPWNDCLASSW lpWndClass); + + + + + + + +__declspec(dllimport) +ATOM +__stdcall +RegisterClassExA( + const WNDCLASSEXA *); +__declspec(dllimport) +ATOM +__stdcall +RegisterClassExW( + const WNDCLASSEXW *); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetClassInfoExA( + HINSTANCE hInstance, + LPCSTR lpszClass, + LPWNDCLASSEXA lpwcx); + +__declspec(dllimport) +BOOL +__stdcall +GetClassInfoExW( + HINSTANCE hInstance, + LPCWSTR lpszClass, + LPWNDCLASSEXW lpwcx); +# 4301 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef BOOLEAN (__stdcall * PREGISTERCLASSNAMEW)(LPCWSTR); + + +__declspec(dllimport) +HWND +__stdcall +CreateWindowExA( + DWORD dwExStyle, + LPCSTR lpClassName, + LPCSTR lpWindowName, + DWORD dwStyle, + int X, + int Y, + int nWidth, + int nHeight, + HWND hWndParent, + HMENU hMenu, + HINSTANCE hInstance, + LPVOID lpParam); +__declspec(dllimport) +HWND +__stdcall +CreateWindowExW( + DWORD dwExStyle, + LPCWSTR lpClassName, + LPCWSTR lpWindowName, + DWORD dwStyle, + int X, + int Y, + int nWidth, + int nHeight, + HWND hWndParent, + HMENU hMenu, + HINSTANCE hInstance, + LPVOID lpParam); +# 4363 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +IsWindow( + HWND hWnd); + + +__declspec(dllimport) +BOOL +__stdcall +IsMenu( + HMENU hMenu); + +__declspec(dllimport) +BOOL +__stdcall +IsChild( + HWND hWndParent, + HWND hWnd); + +__declspec(dllimport) +BOOL +__stdcall +DestroyWindow( + HWND hWnd); + +__declspec(dllimport) +BOOL +__stdcall +ShowWindow( + HWND hWnd, + int nCmdShow); + + +__declspec(dllimport) +BOOL +__stdcall +AnimateWindow( + HWND hWnd, + DWORD dwTime, + DWORD dwFlags); +# 4415 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +UpdateLayeredWindow( + HWND hWnd, + HDC hdcDst, + POINT* pptDst, + SIZE* psize, + HDC hdcSrc, + POINT* pptSrc, + COLORREF crKey, + BLENDFUNCTION* pblend, + DWORD dwFlags); + + + + +typedef struct tagUPDATELAYEREDWINDOWINFO +{ + DWORD cbSize; + HDC hdcDst; + const POINT* pptDst; + const SIZE* psize; + HDC hdcSrc; + const POINT* pptSrc; + COLORREF crKey; + const BLENDFUNCTION* pblend; + DWORD dwFlags; + const RECT* prcDirty; +} UPDATELAYEREDWINDOWINFO, *PUPDATELAYEREDWINDOWINFO; + + + + + +__declspec(dllimport) +BOOL +__stdcall +UpdateLayeredWindowIndirect( + HWND hWnd, + const UPDATELAYEREDWINDOWINFO* pULWInfo); +# 4467 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +GetLayeredWindowAttributes( + HWND hwnd, + COLORREF* pcrKey, + BYTE* pbAlpha, + DWORD* pdwFlags); +# 4483 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +PrintWindow( + HWND hwnd, + HDC hdcBlt, + UINT nFlags); +# 4499 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +SetLayeredWindowAttributes( + HWND hwnd, + COLORREF crKey, + BYTE bAlpha, + DWORD dwFlags); +# 4529 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +ShowWindowAsync( + HWND hWnd, + int nCmdShow); + + +__declspec(dllimport) +BOOL +__stdcall +FlashWindow( + HWND hWnd, + BOOL bInvert); + + +typedef struct { + UINT cbSize; + HWND hwnd; + DWORD dwFlags; + UINT uCount; + DWORD dwTimeout; +} FLASHWINFO, *PFLASHWINFO; + +__declspec(dllimport) +BOOL +__stdcall +FlashWindowEx( + PFLASHWINFO pfwi); +# 4568 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +ShowOwnedPopups( + HWND hWnd, + BOOL fShow); + +__declspec(dllimport) +BOOL +__stdcall +OpenIcon( + HWND hWnd); + +__declspec(dllimport) +BOOL +__stdcall +CloseWindow( + HWND hWnd); + +__declspec(dllimport) +BOOL +__stdcall +MoveWindow( + HWND hWnd, + int X, + int Y, + int nWidth, + int nHeight, + BOOL bRepaint); + +__declspec(dllimport) +BOOL +__stdcall +SetWindowPos( + HWND hWnd, + HWND hWndInsertAfter, + int X, + int Y, + int cx, + int cy, + UINT uFlags); + +__declspec(dllimport) +BOOL +__stdcall +GetWindowPlacement( + HWND hWnd, + WINDOWPLACEMENT *lpwndpl); + +__declspec(dllimport) +BOOL +__stdcall +SetWindowPlacement( + HWND hWnd, + const WINDOWPLACEMENT *lpwndpl); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetWindowDisplayAffinity( + HWND hWnd, + DWORD* pdwAffinity); + +__declspec(dllimport) +BOOL +__stdcall +SetWindowDisplayAffinity( + HWND hWnd, + DWORD dwAffinity); +# 4653 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HDWP +__stdcall +BeginDeferWindowPos( + int nNumWindows); + +__declspec(dllimport) +HDWP +__stdcall +DeferWindowPos( + HDWP hWinPosInfo, + HWND hWnd, + HWND hWndInsertAfter, + int x, + int y, + int cx, + int cy, + UINT uFlags); + + +__declspec(dllimport) +BOOL +__stdcall +EndDeferWindowPos( + HDWP hWinPosInfo); +# 4687 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +IsWindowVisible( + HWND hWnd); + +__declspec(dllimport) +BOOL +__stdcall +IsIconic( + HWND hWnd); + +__declspec(dllimport) +BOOL +__stdcall +AnyPopup( + void); + +__declspec(dllimport) +BOOL +__stdcall +BringWindowToTop( + HWND hWnd); + +__declspec(dllimport) +BOOL +__stdcall +IsZoomed( + HWND hWnd); +# 4756 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack2.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack2.h" +#pragma warning(disable: 4103) + +#pragma pack(push,2) +# 4756 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" 2 + + + + + + + + +typedef struct { + DWORD style; + DWORD dwExtendedStyle; + WORD cdit; + short x; + short y; + short cx; + short cy; +} DLGTEMPLATE; + + + + + + + +typedef DLGTEMPLATE *LPDLGTEMPLATEA; +typedef DLGTEMPLATE *LPDLGTEMPLATEW; + +typedef LPDLGTEMPLATEW LPDLGTEMPLATE; +# 4794 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef const DLGTEMPLATE *LPCDLGTEMPLATEA; +typedef const DLGTEMPLATE *LPCDLGTEMPLATEW; + +typedef LPCDLGTEMPLATEW LPCDLGTEMPLATE; +# 4812 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct { + DWORD style; + DWORD dwExtendedStyle; + short x; + short y; + short cx; + short cy; + WORD id; +} DLGITEMTEMPLATE; +typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEA; +typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEW; + +typedef PDLGITEMTEMPLATEW PDLGITEMTEMPLATE; + + + +typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA; +typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW; + +typedef LPDLGITEMTEMPLATEW LPDLGITEMTEMPLATE; +# 4840 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 4840 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" 2 + + + + + +__declspec(dllimport) +HWND +__stdcall +CreateDialogParamA( + HINSTANCE hInstance, + LPCSTR lpTemplateName, + HWND hWndParent, + DLGPROC lpDialogFunc, + LPARAM dwInitParam); +__declspec(dllimport) +HWND +__stdcall +CreateDialogParamW( + HINSTANCE hInstance, + LPCWSTR lpTemplateName, + HWND hWndParent, + DLGPROC lpDialogFunc, + LPARAM dwInitParam); + + + + + + +__declspec(dllimport) +HWND +__stdcall +CreateDialogIndirectParamA( + HINSTANCE hInstance, + LPCDLGTEMPLATEA lpTemplate, + HWND hWndParent, + DLGPROC lpDialogFunc, + LPARAM dwInitParam); +__declspec(dllimport) +HWND +__stdcall +CreateDialogIndirectParamW( + HINSTANCE hInstance, + LPCDLGTEMPLATEW lpTemplate, + HWND hWndParent, + DLGPROC lpDialogFunc, + LPARAM dwInitParam); +# 4913 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +INT_PTR +__stdcall +DialogBoxParamA( + HINSTANCE hInstance, + LPCSTR lpTemplateName, + HWND hWndParent, + DLGPROC lpDialogFunc, + LPARAM dwInitParam); +__declspec(dllimport) +INT_PTR +__stdcall +DialogBoxParamW( + HINSTANCE hInstance, + LPCWSTR lpTemplateName, + HWND hWndParent, + DLGPROC lpDialogFunc, + LPARAM dwInitParam); + + + + + + +__declspec(dllimport) +INT_PTR +__stdcall +DialogBoxIndirectParamA( + HINSTANCE hInstance, + LPCDLGTEMPLATEA hDialogTemplate, + HWND hWndParent, + DLGPROC lpDialogFunc, + LPARAM dwInitParam); +__declspec(dllimport) +INT_PTR +__stdcall +DialogBoxIndirectParamW( + HINSTANCE hInstance, + LPCDLGTEMPLATEW hDialogTemplate, + HWND hWndParent, + DLGPROC lpDialogFunc, + LPARAM dwInitParam); +# 4981 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +EndDialog( + HWND hDlg, + INT_PTR nResult); + +__declspec(dllimport) +HWND +__stdcall +GetDlgItem( + HWND hDlg, + int nIDDlgItem); + +__declspec(dllimport) +BOOL +__stdcall +SetDlgItemInt( + HWND hDlg, + int nIDDlgItem, + UINT uValue, + BOOL bSigned); + +__declspec(dllimport) +UINT +__stdcall +GetDlgItemInt( + HWND hDlg, + int nIDDlgItem, + BOOL *lpTranslated, + BOOL bSigned); + +__declspec(dllimport) +BOOL +__stdcall +SetDlgItemTextA( + HWND hDlg, + int nIDDlgItem, + LPCSTR lpString); +__declspec(dllimport) +BOOL +__stdcall +SetDlgItemTextW( + HWND hDlg, + int nIDDlgItem, + LPCWSTR lpString); + + + + + + + +__declspec(dllimport) +UINT +__stdcall +GetDlgItemTextA( + HWND hDlg, + int nIDDlgItem, + LPSTR lpString, + int cchMax); + +__declspec(dllimport) +UINT +__stdcall +GetDlgItemTextW( + HWND hDlg, + int nIDDlgItem, + LPWSTR lpString, + int cchMax); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CheckDlgButton( + HWND hDlg, + int nIDButton, + UINT uCheck); + +__declspec(dllimport) +BOOL +__stdcall +CheckRadioButton( + HWND hDlg, + int nIDFirstButton, + int nIDLastButton, + int nIDCheckButton); + +__declspec(dllimport) +UINT +__stdcall +IsDlgButtonChecked( + HWND hDlg, + int nIDButton); + +__declspec(dllimport) +LRESULT +__stdcall +SendDlgItemMessageA( + HWND hDlg, + int nIDDlgItem, + UINT Msg, + WPARAM wParam, + LPARAM lParam); +__declspec(dllimport) +LRESULT +__stdcall +SendDlgItemMessageW( + HWND hDlg, + int nIDDlgItem, + UINT Msg, + WPARAM wParam, + LPARAM lParam); + + + + + + +__declspec(dllimport) +HWND +__stdcall +GetNextDlgGroupItem( + HWND hDlg, + HWND hCtl, + BOOL bPrevious); + +__declspec(dllimport) +HWND +__stdcall +GetNextDlgTabItem( + HWND hDlg, + HWND hCtl, + BOOL bPrevious); + +__declspec(dllimport) +int +__stdcall +GetDlgCtrlID( + HWND hWnd); + +__declspec(dllimport) +long +__stdcall +GetDialogBaseUnits(void); + + +__declspec(dllimport) + +LRESULT +__stdcall + + + + +DefDlgProcA( + HWND hDlg, + UINT Msg, + WPARAM wParam, + LPARAM lParam); +__declspec(dllimport) + +LRESULT +__stdcall + + + + +DefDlgProcW( + HWND hDlg, + UINT Msg, + WPARAM wParam, + LPARAM lParam); +# 5185 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +CallMsgFilterA( + LPMSG lpMsg, + int nCode); +__declspec(dllimport) +BOOL +__stdcall +CallMsgFilterW( + LPMSG lpMsg, + int nCode); +# 5211 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +OpenClipboard( + HWND hWndNewOwner); + +__declspec(dllimport) +BOOL +__stdcall +CloseClipboard( + void); + + + + +__declspec(dllimport) +DWORD +__stdcall +GetClipboardSequenceNumber( + void); + + + +__declspec(dllimport) +HWND +__stdcall +GetClipboardOwner( + void); + +__declspec(dllimport) +HWND +__stdcall +SetClipboardViewer( + HWND hWndNewViewer); + +__declspec(dllimport) +HWND +__stdcall +GetClipboardViewer( + void); + +__declspec(dllimport) +BOOL +__stdcall +ChangeClipboardChain( + HWND hWndRemove, + HWND hWndNewNext); + +__declspec(dllimport) +HANDLE +__stdcall +SetClipboardData( + UINT uFormat, + HANDLE hMem); + +__declspec(dllimport) +HANDLE +__stdcall +GetClipboardData( + UINT uFormat); + +__declspec(dllimport) +UINT +__stdcall +RegisterClipboardFormatA( + LPCSTR lpszFormat); +__declspec(dllimport) +UINT +__stdcall +RegisterClipboardFormatW( + LPCWSTR lpszFormat); + + + + + + +__declspec(dllimport) +int +__stdcall +CountClipboardFormats( + void); + +__declspec(dllimport) +UINT +__stdcall +EnumClipboardFormats( + UINT format); + +__declspec(dllimport) +int +__stdcall +GetClipboardFormatNameA( + UINT format, + LPSTR lpszFormatName, + int cchMaxCount); +__declspec(dllimport) +int +__stdcall +GetClipboardFormatNameW( + UINT format, + LPWSTR lpszFormatName, + int cchMaxCount); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +EmptyClipboard( + void); + +__declspec(dllimport) +BOOL +__stdcall +IsClipboardFormatAvailable( + UINT format); + +__declspec(dllimport) +int +__stdcall +GetPriorityClipboardFormat( + UINT *paFormatPriorityList, + int cFormats); + +__declspec(dllimport) +HWND +__stdcall +GetOpenClipboardWindow( + void); + + +__declspec(dllimport) +BOOL +__stdcall +AddClipboardFormatListener( + HWND hwnd); + +__declspec(dllimport) +BOOL +__stdcall +RemoveClipboardFormatListener( + HWND hwnd); + +__declspec(dllimport) +BOOL +__stdcall +GetUpdatedClipboardFormats( + PUINT lpuiFormats, + UINT cFormats, + PUINT pcFormatsOut); +# 5373 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +CharToOemA( + LPCSTR pSrc, + LPSTR pDst); +__declspec(dllimport) +BOOL +__stdcall +CharToOemW( + LPCWSTR pSrc, + LPSTR pDst); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +OemToCharA( + LPCSTR pSrc, + LPSTR pDst); + +__declspec(dllimport) +BOOL +__stdcall +OemToCharW( + LPCSTR pSrc, + LPWSTR pDst); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CharToOemBuffA( + LPCSTR lpszSrc, + LPSTR lpszDst, + DWORD cchDstLength); +__declspec(dllimport) +BOOL +__stdcall +CharToOemBuffW( + LPCWSTR lpszSrc, + LPSTR lpszDst, + DWORD cchDstLength); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +OemToCharBuffA( + LPCSTR lpszSrc, + LPSTR lpszDst, + DWORD cchDstLength); +__declspec(dllimport) +BOOL +__stdcall +OemToCharBuffW( + LPCSTR lpszSrc, + LPWSTR lpszDst, + DWORD cchDstLength); +# 5457 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +LPSTR +__stdcall +CharUpperA( + LPSTR lpsz); +__declspec(dllimport) +LPWSTR +__stdcall +CharUpperW( + LPWSTR lpsz); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +CharUpperBuffA( + LPSTR lpsz, + DWORD cchLength); +__declspec(dllimport) +DWORD +__stdcall +CharUpperBuffW( + LPWSTR lpsz, + DWORD cchLength); + + + + + + +__declspec(dllimport) +LPSTR +__stdcall +CharLowerA( + LPSTR lpsz); +__declspec(dllimport) +LPWSTR +__stdcall +CharLowerW( + LPWSTR lpsz); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +CharLowerBuffA( + LPSTR lpsz, + DWORD cchLength); +__declspec(dllimport) +DWORD +__stdcall +CharLowerBuffW( + LPWSTR lpsz, + DWORD cchLength); + + + + + + +__declspec(dllimport) +LPSTR +__stdcall +CharNextA( + LPCSTR lpsz); +__declspec(dllimport) +LPWSTR +__stdcall +CharNextW( + LPCWSTR lpsz); + + + + + + +__declspec(dllimport) +LPSTR +__stdcall +CharPrevA( + LPCSTR lpszStart, + LPCSTR lpszCurrent); +__declspec(dllimport) +LPWSTR +__stdcall +CharPrevW( + LPCWSTR lpszStart, + LPCWSTR lpszCurrent); + + + + + + + +__declspec(dllimport) +LPSTR +__stdcall +CharNextExA( + WORD CodePage, + LPCSTR lpCurrentChar, + DWORD dwFlags); + +__declspec(dllimport) +LPSTR +__stdcall +CharPrevExA( + WORD CodePage, + LPCSTR lpStart, + LPCSTR lpCurrentChar, + DWORD dwFlags); +# 5603 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +IsCharAlphaA( + CHAR ch); +__declspec(dllimport) +BOOL +__stdcall +IsCharAlphaW( + WCHAR ch); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +IsCharAlphaNumericA( + CHAR ch); +__declspec(dllimport) +BOOL +__stdcall +IsCharAlphaNumericW( + WCHAR ch); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +IsCharUpperA( + CHAR ch); +__declspec(dllimport) +BOOL +__stdcall +IsCharUpperW( + WCHAR ch); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +IsCharLowerA( + CHAR ch); +__declspec(dllimport) +BOOL +__stdcall +IsCharLowerW( + WCHAR ch); +# 5675 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HWND +__stdcall +SetFocus( + HWND hWnd); + +__declspec(dllimport) +HWND +__stdcall +GetActiveWindow( + void); + +__declspec(dllimport) +HWND +__stdcall +GetFocus( + void); + +__declspec(dllimport) +UINT +__stdcall +GetKBCodePage( + void); + +__declspec(dllimport) +SHORT +__stdcall +GetKeyState( + int nVirtKey); + +__declspec(dllimport) +SHORT +__stdcall +GetAsyncKeyState( + int vKey); + +__declspec(dllimport) + +BOOL +__stdcall +GetKeyboardState( + PBYTE lpKeyState); + +__declspec(dllimport) +BOOL +__stdcall +SetKeyboardState( + LPBYTE lpKeyState); +# 5731 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +int +__stdcall +GetKeyNameTextA( + LONG lParam, + LPSTR lpString, + int cchSize); +__declspec(dllimport) +int +__stdcall +GetKeyNameTextW( + LONG lParam, + LPWSTR lpString, + int cchSize); +# 5758 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +int +__stdcall +GetKeyboardType( + int nTypeFlag); + +__declspec(dllimport) +int +__stdcall +ToAscii( + UINT uVirtKey, + UINT uScanCode, + const BYTE *lpKeyState, + LPWORD lpChar, + UINT uFlags); + + +__declspec(dllimport) +int +__stdcall +ToAsciiEx( + UINT uVirtKey, + UINT uScanCode, + const BYTE *lpKeyState, + LPWORD lpChar, + UINT uFlags, + HKL dwhkl); + + +__declspec(dllimport) +int +__stdcall +ToUnicode( + UINT wVirtKey, + UINT wScanCode, + const BYTE *lpKeyState, + LPWSTR pwszBuff, + int cchBuff, + UINT wFlags); + +__declspec(dllimport) +DWORD +__stdcall +OemKeyScan( + WORD wOemChar); + +__declspec(dllimport) +SHORT +__stdcall +VkKeyScanA( + CHAR ch); +__declspec(dllimport) +SHORT +__stdcall +VkKeyScanW( + WCHAR ch); + + + + + + + +__declspec(dllimport) +SHORT +__stdcall +VkKeyScanExA( + CHAR ch, + HKL dwhkl); +__declspec(dllimport) +SHORT +__stdcall +VkKeyScanExW( + WCHAR ch, + HKL dwhkl); +# 5846 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +void +__stdcall +keybd_event( + BYTE bVk, + BYTE bScan, + DWORD dwFlags, + ULONG_PTR dwExtraInfo); +# 5880 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +void +__stdcall +mouse_event( + DWORD dwFlags, + DWORD dx, + DWORD dy, + DWORD dwData, + ULONG_PTR dwExtraInfo); + + + + + + +typedef struct tagMOUSEINPUT { + LONG dx; + LONG dy; + DWORD mouseData; + DWORD dwFlags; + DWORD time; + ULONG_PTR dwExtraInfo; +} MOUSEINPUT, *PMOUSEINPUT, * LPMOUSEINPUT; + +typedef struct tagKEYBDINPUT { + WORD wVk; + WORD wScan; + DWORD dwFlags; + DWORD time; + ULONG_PTR dwExtraInfo; +} KEYBDINPUT, *PKEYBDINPUT, * LPKEYBDINPUT; + + + + +typedef struct tagHARDWAREINPUT { + DWORD uMsg; + WORD wParamL; + WORD wParamH; +} HARDWAREINPUT, *PHARDWAREINPUT, * LPHARDWAREINPUT; + + + + + +typedef struct tagINPUT { + DWORD type; + + union + { + MOUSEINPUT mi; + KEYBDINPUT ki; + HARDWAREINPUT hi; + } ; +} INPUT, *PINPUT, * LPINPUT; + +__declspec(dllimport) +UINT +__stdcall +SendInput( + UINT cInputs, + LPINPUT pInputs, + int cbSize); +# 5961 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +struct HTOUCHINPUT__{int unused;}; typedef struct HTOUCHINPUT__ *HTOUCHINPUT; + +typedef struct tagTOUCHINPUT { + LONG x; + LONG y; + HANDLE hSource; + DWORD dwID; + DWORD dwFlags; + DWORD dwMask; + DWORD dwTime; + ULONG_PTR dwExtraInfo; + DWORD cxContact; + DWORD cyContact; +} TOUCHINPUT, *PTOUCHINPUT; +typedef TOUCHINPUT const * PCTOUCHINPUT; +# 6008 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +GetTouchInputInfo( + HTOUCHINPUT hTouchInput, + UINT cInputs, + PTOUCHINPUT pInputs, + int cbSize); + +__declspec(dllimport) +BOOL +__stdcall +CloseTouchInputHandle( + HTOUCHINPUT hTouchInput); +# 6037 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +RegisterTouchWindow( + HWND hwnd, + ULONG ulFlags); + +__declspec(dllimport) +BOOL +__stdcall +UnregisterTouchWindow( + HWND hwnd); + +__declspec(dllimport) +BOOL +__stdcall +IsTouchWindow( + HWND hwnd, + PULONG pulFlags); +# 6069 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +enum tagPOINTER_INPUT_TYPE { + PT_POINTER = 0x00000001, + PT_TOUCH = 0x00000002, + PT_PEN = 0x00000003, + PT_MOUSE = 0x00000004, + + PT_TOUCHPAD = 0x00000005, + +}; + + +typedef DWORD POINTER_INPUT_TYPE; + +typedef UINT32 POINTER_FLAGS; +# 6117 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef enum tagPOINTER_BUTTON_CHANGE_TYPE { + POINTER_CHANGE_NONE, + POINTER_CHANGE_FIRSTBUTTON_DOWN, + POINTER_CHANGE_FIRSTBUTTON_UP, + POINTER_CHANGE_SECONDBUTTON_DOWN, + POINTER_CHANGE_SECONDBUTTON_UP, + POINTER_CHANGE_THIRDBUTTON_DOWN, + POINTER_CHANGE_THIRDBUTTON_UP, + POINTER_CHANGE_FOURTHBUTTON_DOWN, + POINTER_CHANGE_FOURTHBUTTON_UP, + POINTER_CHANGE_FIFTHBUTTON_DOWN, + POINTER_CHANGE_FIFTHBUTTON_UP, +} POINTER_BUTTON_CHANGE_TYPE; + +typedef struct tagPOINTER_INFO { + POINTER_INPUT_TYPE pointerType; + UINT32 pointerId; + UINT32 frameId; + POINTER_FLAGS pointerFlags; + HANDLE sourceDevice; + HWND hwndTarget; + POINT ptPixelLocation; + POINT ptHimetricLocation; + POINT ptPixelLocationRaw; + POINT ptHimetricLocationRaw; + DWORD dwTime; + UINT32 historyCount; + INT32 InputData; + DWORD dwKeyStates; + UINT64 PerformanceCount; + POINTER_BUTTON_CHANGE_TYPE ButtonChangeType; +} POINTER_INFO; + + +typedef UINT32 TOUCH_FLAGS; + + +typedef UINT32 TOUCH_MASK; + + + + + +typedef struct tagPOINTER_TOUCH_INFO { + POINTER_INFO pointerInfo; + TOUCH_FLAGS touchFlags; + TOUCH_MASK touchMask; + RECT rcContact; + RECT rcContactRaw; + UINT32 orientation; + UINT32 pressure; +} POINTER_TOUCH_INFO; + +typedef UINT32 PEN_FLAGS; + + + + + +typedef UINT32 PEN_MASK; + + + + + + +typedef struct tagPOINTER_PEN_INFO { + POINTER_INFO pointerInfo; + PEN_FLAGS penFlags; + PEN_MASK penMask; + UINT32 pressure; + UINT32 rotation; + INT32 tiltX; + INT32 tiltY; +} POINTER_PEN_INFO; +# 6244 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +InitializeTouchInjection( + UINT32 maxCount, + DWORD dwMode); + +__declspec(dllimport) +BOOL +__stdcall +InjectTouchInput( + UINT32 count, + const POINTER_TOUCH_INFO *contacts); + +typedef struct tagUSAGE_PROPERTIES { + USHORT level; + USHORT page; + USHORT usage; + INT32 logicalMinimum; + INT32 logicalMaximum; + USHORT unit; + USHORT exponent; + BYTE count; + INT32 physicalMinimum; + INT32 physicalMaximum; +}USAGE_PROPERTIES, *PUSAGE_PROPERTIES; + +typedef struct tagPOINTER_TYPE_INFO { + POINTER_INPUT_TYPE type; + union{ + POINTER_TOUCH_INFO touchInfo; + POINTER_PEN_INFO penInfo; + } ; +}POINTER_TYPE_INFO, *PPOINTER_TYPE_INFO; + +typedef struct tagINPUT_INJECTION_VALUE { + USHORT page; + USHORT usage; + INT32 value; + USHORT index; +}INPUT_INJECTION_VALUE, *PINPUT_INJECTION_VALUE; + +__declspec(dllimport) +BOOL +__stdcall +GetPointerType( + UINT32 pointerId, + POINTER_INPUT_TYPE *pointerType); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerCursorId( + UINT32 pointerId, + UINT32 *cursorId); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerInfo( + UINT32 pointerId, + POINTER_INFO *pointerInfo); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerInfoHistory( + UINT32 pointerId, + UINT32 *entriesCount, + POINTER_INFO *pointerInfo); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerFrameInfo( + UINT32 pointerId, + UINT32 *pointerCount, + POINTER_INFO *pointerInfo); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerFrameInfoHistory( + UINT32 pointerId, + UINT32 *entriesCount, + UINT32 *pointerCount, + POINTER_INFO *pointerInfo); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerTouchInfo( + UINT32 pointerId, + POINTER_TOUCH_INFO *touchInfo); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerTouchInfoHistory( + UINT32 pointerId, + UINT32 *entriesCount, + POINTER_TOUCH_INFO *touchInfo); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerFrameTouchInfo( + UINT32 pointerId, + UINT32 *pointerCount, + POINTER_TOUCH_INFO *touchInfo); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerFrameTouchInfoHistory( + UINT32 pointerId, + UINT32 *entriesCount, + UINT32 *pointerCount, + POINTER_TOUCH_INFO *touchInfo); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerPenInfo( + UINT32 pointerId, + POINTER_PEN_INFO *penInfo); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerPenInfoHistory( + UINT32 pointerId, + UINT32 *entriesCount, + POINTER_PEN_INFO *penInfo); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerFramePenInfo( + UINT32 pointerId, + UINT32 *pointerCount, + POINTER_PEN_INFO *penInfo); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerFramePenInfoHistory( + UINT32 pointerId, + UINT32 *entriesCount, + UINT32 *pointerCount, + POINTER_PEN_INFO *penInfo); + +__declspec(dllimport) +BOOL +__stdcall +SkipPointerFrameMessages( + UINT32 pointerId); + +__declspec(dllimport) +BOOL +__stdcall +RegisterPointerInputTarget( + HWND hwnd, + POINTER_INPUT_TYPE pointerType); + +__declspec(dllimport) +BOOL +__stdcall +UnregisterPointerInputTarget( + HWND hwnd, + POINTER_INPUT_TYPE pointerType); + +__declspec(dllimport) +BOOL +__stdcall +RegisterPointerInputTargetEx( + HWND hwnd, + POINTER_INPUT_TYPE pointerType, + BOOL fObserve); + +__declspec(dllimport) +BOOL +__stdcall +UnregisterPointerInputTargetEx( + HWND hwnd, + POINTER_INPUT_TYPE pointerType); + + +__declspec(dllimport) +BOOL +__stdcall +EnableMouseInPointer( + BOOL fEnable); + +__declspec(dllimport) +BOOL +__stdcall +IsMouseInPointerEnabled( + void); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +RegisterTouchHitTestingWindow( + HWND hwnd, + ULONG value); + +typedef struct tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION +{ + UINT16 score; + POINT adjustedPoint; +} TOUCH_HIT_TESTING_PROXIMITY_EVALUATION, *PTOUCH_HIT_TESTING_PROXIMITY_EVALUATION; + + + + + +typedef struct tagTOUCH_HIT_TESTING_INPUT +{ + UINT32 pointerId; + POINT point; + RECT boundingBox; + RECT nonOccludedBoundingBox; + UINT32 orientation; +} TOUCH_HIT_TESTING_INPUT, *PTOUCH_HIT_TESTING_INPUT; + + + + + +__declspec(dllimport) +BOOL +__stdcall +EvaluateProximityToRect( + const RECT *controlBoundingBox, + const TOUCH_HIT_TESTING_INPUT *pHitTestingInput, + TOUCH_HIT_TESTING_PROXIMITY_EVALUATION *pProximityEval); + +__declspec(dllimport) +BOOL +__stdcall +EvaluateProximityToPolygon( + UINT32 numVertices, + const POINT *controlPolygon, + const TOUCH_HIT_TESTING_INPUT *pHitTestingInput, + TOUCH_HIT_TESTING_PROXIMITY_EVALUATION *pProximityEval); + +__declspec(dllimport) +LRESULT +__stdcall +PackTouchHitTestingProximityEvaluation( + const TOUCH_HIT_TESTING_INPUT *pHitTestingInput, + const TOUCH_HIT_TESTING_PROXIMITY_EVALUATION *pProximityEval); + + +typedef enum tagFEEDBACK_TYPE { + FEEDBACK_TOUCH_CONTACTVISUALIZATION = 1, + FEEDBACK_PEN_BARRELVISUALIZATION = 2, + FEEDBACK_PEN_TAP = 3, + FEEDBACK_PEN_DOUBLETAP = 4, + FEEDBACK_PEN_PRESSANDHOLD = 5, + FEEDBACK_PEN_RIGHTTAP = 6, + FEEDBACK_TOUCH_TAP = 7, + FEEDBACK_TOUCH_DOUBLETAP = 8, + FEEDBACK_TOUCH_PRESSANDHOLD = 9, + FEEDBACK_TOUCH_RIGHTTAP = 10, + FEEDBACK_GESTURE_PRESSANDTAP = 11, + FEEDBACK_MAX = 0xFFFFFFFF +} FEEDBACK_TYPE; + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetWindowFeedbackSetting( + HWND hwnd, + FEEDBACK_TYPE feedback, + DWORD dwFlags, + UINT32* pSize, + void* config); + +__declspec(dllimport) +BOOL +__stdcall +SetWindowFeedbackSetting( + HWND hwnd, + FEEDBACK_TYPE feedback, + DWORD dwFlags, + UINT32 size, + const void* configuration); +# 6556 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +#pragma warning(push) + +#pragma warning(disable: 4201) + +typedef struct tagINPUT_TRANSFORM { + union { + struct { + float _11, _12, _13, _14; + float _21, _22, _23, _24; + float _31, _32, _33, _34; + float _41, _42, _43, _44; + } ; + float m[4][4]; + } ; +} INPUT_TRANSFORM; + + +#pragma warning(pop) + + + +__declspec(dllimport) +BOOL +__stdcall +GetPointerInputTransform( + UINT32 pointerId, + UINT32 historyCount, + INPUT_TRANSFORM *inputTransform); +# 6600 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagLASTINPUTINFO { + UINT cbSize; + DWORD dwTime; +} LASTINPUTINFO, * PLASTINPUTINFO; + +__declspec(dllimport) +BOOL +__stdcall +GetLastInputInfo( + PLASTINPUTINFO plii); +# 6618 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +UINT +__stdcall +MapVirtualKeyA( + UINT uCode, + UINT uMapType); +__declspec(dllimport) +UINT +__stdcall +MapVirtualKeyW( + UINT uCode, + UINT uMapType); + + + + + + + +__declspec(dllimport) +UINT +__stdcall +MapVirtualKeyExA( + UINT uCode, + UINT uMapType, + HKL dwhkl); +__declspec(dllimport) +UINT +__stdcall +MapVirtualKeyExW( + UINT uCode, + UINT uMapType, + HKL dwhkl); +# 6672 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +GetInputState( + void); + +__declspec(dllimport) +DWORD +__stdcall +GetQueueStatus( + UINT flags); + + +__declspec(dllimport) +HWND +__stdcall +GetCapture( + void); + +__declspec(dllimport) +HWND +__stdcall +SetCapture( + HWND hWnd); + +__declspec(dllimport) +BOOL +__stdcall +ReleaseCapture( + void); + +__declspec(dllimport) +DWORD +__stdcall +MsgWaitForMultipleObjects( + DWORD nCount, + const HANDLE *pHandles, + BOOL fWaitAll, + DWORD dwMilliseconds, + DWORD dwWakeMask); + +__declspec(dllimport) +DWORD +__stdcall +MsgWaitForMultipleObjectsEx( + DWORD nCount, + const HANDLE *pHandles, + DWORD dwMilliseconds, + DWORD dwWakeMask, + DWORD dwFlags); +# 6800 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +UINT_PTR +__stdcall +SetTimer( + HWND hWnd, + UINT_PTR nIDEvent, + UINT uElapse, + TIMERPROC lpTimerFunc); +# 6817 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +UINT_PTR +__stdcall +SetCoalescableTimer( + HWND hWnd, + UINT_PTR nIDEvent, + UINT uElapse, + TIMERPROC lpTimerFunc, + ULONG uToleranceDelay); + + + +__declspec(dllimport) +BOOL +__stdcall +KillTimer( + HWND hWnd, + UINT_PTR uIDEvent); + +__declspec(dllimport) +BOOL +__stdcall +IsWindowUnicode( + HWND hWnd); + +__declspec(dllimport) +BOOL +__stdcall +EnableWindow( + HWND hWnd, + BOOL bEnable); + +__declspec(dllimport) +BOOL +__stdcall +IsWindowEnabled( + HWND hWnd); + +__declspec(dllimport) +HACCEL +__stdcall +LoadAcceleratorsA( + HINSTANCE hInstance, + LPCSTR lpTableName); +__declspec(dllimport) +HACCEL +__stdcall +LoadAcceleratorsW( + HINSTANCE hInstance, + LPCWSTR lpTableName); + + + + + + +__declspec(dllimport) +HACCEL +__stdcall +CreateAcceleratorTableA( + LPACCEL paccel, + int cAccel); +__declspec(dllimport) +HACCEL +__stdcall +CreateAcceleratorTableW( + LPACCEL paccel, + int cAccel); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +DestroyAcceleratorTable( + HACCEL hAccel); + +__declspec(dllimport) +int +__stdcall +CopyAcceleratorTableA( + HACCEL hAccelSrc, + LPACCEL lpAccelDst, + int cAccelEntries); +__declspec(dllimport) +int +__stdcall +CopyAcceleratorTableW( + HACCEL hAccelSrc, + LPACCEL lpAccelDst, + int cAccelEntries); +# 6919 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +int +__stdcall +TranslateAcceleratorA( + HWND hWnd, + HACCEL hAccTable, + LPMSG lpMsg); +__declspec(dllimport) +int +__stdcall +TranslateAcceleratorW( + HWND hWnd, + HACCEL hAccTable, + LPMSG lpMsg); +# 7110 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +int +__stdcall +GetSystemMetrics( + int nIndex); + + + +__declspec(dllimport) +int +__stdcall +GetSystemMetricsForDpi( + int nIndex, + UINT dpi); +# 7138 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HMENU +__stdcall +LoadMenuA( + HINSTANCE hInstance, + LPCSTR lpMenuName); +__declspec(dllimport) +HMENU +__stdcall +LoadMenuW( + HINSTANCE hInstance, + LPCWSTR lpMenuName); + + + + + + +__declspec(dllimport) +HMENU +__stdcall +LoadMenuIndirectA( + const MENUTEMPLATEA *lpMenuTemplate); +__declspec(dllimport) +HMENU +__stdcall +LoadMenuIndirectW( + const MENUTEMPLATEW *lpMenuTemplate); + + + + + + +__declspec(dllimport) +HMENU +__stdcall +GetMenu( + HWND hWnd); + +__declspec(dllimport) +BOOL +__stdcall +SetMenu( + HWND hWnd, + HMENU hMenu); + +__declspec(dllimport) +BOOL +__stdcall +ChangeMenuA( + HMENU hMenu, + UINT cmd, + LPCSTR lpszNewItem, + UINT cmdInsert, + UINT flags); +__declspec(dllimport) +BOOL +__stdcall +ChangeMenuW( + HMENU hMenu, + UINT cmd, + LPCWSTR lpszNewItem, + UINT cmdInsert, + UINT flags); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +HiliteMenuItem( + HWND hWnd, + HMENU hMenu, + UINT uIDHiliteItem, + UINT uHilite); + +__declspec(dllimport) +int +__stdcall +GetMenuStringA( + HMENU hMenu, + UINT uIDItem, + LPSTR lpString, + int cchMax, + UINT flags); +__declspec(dllimport) +int +__stdcall +GetMenuStringW( + HMENU hMenu, + UINT uIDItem, + LPWSTR lpString, + int cchMax, + UINT flags); + + + + + + +__declspec(dllimport) +UINT +__stdcall +GetMenuState( + HMENU hMenu, + UINT uId, + UINT uFlags); + +__declspec(dllimport) +BOOL +__stdcall +DrawMenuBar( + HWND hWnd); + + + + + + + +__declspec(dllimport) +HMENU +__stdcall +GetSystemMenu( + HWND hWnd, + BOOL bRevert); + + +__declspec(dllimport) +HMENU +__stdcall +CreateMenu( + void); + +__declspec(dllimport) +HMENU +__stdcall +CreatePopupMenu( + void); + +__declspec(dllimport) +BOOL +__stdcall +DestroyMenu( + HMENU hMenu); + +__declspec(dllimport) +DWORD +__stdcall +CheckMenuItem( + HMENU hMenu, + UINT uIDCheckItem, + UINT uCheck); + +__declspec(dllimport) +BOOL +__stdcall +EnableMenuItem( + HMENU hMenu, + UINT uIDEnableItem, + UINT uEnable); + +__declspec(dllimport) +HMENU +__stdcall +GetSubMenu( + HMENU hMenu, + int nPos); + +__declspec(dllimport) +UINT +__stdcall +GetMenuItemID( + HMENU hMenu, + int nPos); + +__declspec(dllimport) +int +__stdcall +GetMenuItemCount( + HMENU hMenu); + +__declspec(dllimport) +BOOL +__stdcall +InsertMenuA( + HMENU hMenu, + UINT uPosition, + UINT uFlags, + UINT_PTR uIDNewItem, + LPCSTR lpNewItem); +__declspec(dllimport) +BOOL +__stdcall +InsertMenuW( + HMENU hMenu, + UINT uPosition, + UINT uFlags, + UINT_PTR uIDNewItem, + LPCWSTR lpNewItem); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +AppendMenuA( + HMENU hMenu, + UINT uFlags, + UINT_PTR uIDNewItem, + LPCSTR lpNewItem); +__declspec(dllimport) +BOOL +__stdcall +AppendMenuW( + HMENU hMenu, + UINT uFlags, + UINT_PTR uIDNewItem, + LPCWSTR lpNewItem); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +ModifyMenuA( + HMENU hMnu, + UINT uPosition, + UINT uFlags, + UINT_PTR uIDNewItem, + LPCSTR lpNewItem); +__declspec(dllimport) +BOOL +__stdcall +ModifyMenuW( + HMENU hMnu, + UINT uPosition, + UINT uFlags, + UINT_PTR uIDNewItem, + LPCWSTR lpNewItem); + + + + + + +__declspec(dllimport) +BOOL +__stdcall RemoveMenu( + HMENU hMenu, + UINT uPosition, + UINT uFlags); + +__declspec(dllimport) +BOOL +__stdcall +DeleteMenu( + HMENU hMenu, + UINT uPosition, + UINT uFlags); + +__declspec(dllimport) +BOOL +__stdcall +SetMenuItemBitmaps( + HMENU hMenu, + UINT uPosition, + UINT uFlags, + HBITMAP hBitmapUnchecked, + HBITMAP hBitmapChecked); + +__declspec(dllimport) +LONG +__stdcall +GetMenuCheckMarkDimensions( + void); + +__declspec(dllimport) +BOOL +__stdcall +TrackPopupMenu( + HMENU hMenu, + UINT uFlags, + int x, + int y, + int nReserved, + HWND hWnd, + const RECT *prcRect); +# 7444 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagTPMPARAMS +{ + UINT cbSize; + RECT rcExclude; +} TPMPARAMS; +typedef TPMPARAMS *LPTPMPARAMS; + +__declspec(dllimport) +BOOL +__stdcall +TrackPopupMenuEx( + HMENU hMenu, + UINT uFlags, + int x, + int y, + HWND hwnd, + LPTPMPARAMS lptpm); + + + +__declspec(dllimport) +BOOL +__stdcall +CalculatePopupWindowPosition( + const POINT *anchorPoint, + const SIZE *windowSize, + UINT flags, + RECT *excludeRect, + RECT *popupWindowPosition); +# 7492 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagMENUINFO +{ + DWORD cbSize; + DWORD fMask; + DWORD dwStyle; + UINT cyMax; + HBRUSH hbrBack; + DWORD dwContextHelpID; + ULONG_PTR dwMenuData; +} MENUINFO, *LPMENUINFO; +typedef MENUINFO const *LPCMENUINFO; + +__declspec(dllimport) +BOOL +__stdcall +GetMenuInfo( + HMENU, + LPMENUINFO); + +__declspec(dllimport) +BOOL +__stdcall +SetMenuInfo( + HMENU, + LPCMENUINFO); + +__declspec(dllimport) +BOOL +__stdcall +EndMenu( + void); + + + + + + + +typedef struct tagMENUGETOBJECTINFO +{ + DWORD dwFlags; + UINT uPos; + HMENU hmenu; + PVOID riid; + PVOID pvObj; +} MENUGETOBJECTINFO, * PMENUGETOBJECTINFO; +# 7580 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagMENUITEMINFOA +{ + UINT cbSize; + UINT fMask; + UINT fType; + UINT fState; + UINT wID; + HMENU hSubMenu; + HBITMAP hbmpChecked; + HBITMAP hbmpUnchecked; + ULONG_PTR dwItemData; + LPSTR dwTypeData; + UINT cch; + + HBITMAP hbmpItem; + +} MENUITEMINFOA, *LPMENUITEMINFOA; +typedef struct tagMENUITEMINFOW +{ + UINT cbSize; + UINT fMask; + UINT fType; + UINT fState; + UINT wID; + HMENU hSubMenu; + HBITMAP hbmpChecked; + HBITMAP hbmpUnchecked; + ULONG_PTR dwItemData; + LPWSTR dwTypeData; + UINT cch; + + HBITMAP hbmpItem; + +} MENUITEMINFOW, *LPMENUITEMINFOW; + +typedef MENUITEMINFOW MENUITEMINFO; +typedef LPMENUITEMINFOW LPMENUITEMINFO; + + + + +typedef MENUITEMINFOA const *LPCMENUITEMINFOA; +typedef MENUITEMINFOW const *LPCMENUITEMINFOW; + +typedef LPCMENUITEMINFOW LPCMENUITEMINFO; + + + + + +__declspec(dllimport) +BOOL +__stdcall +InsertMenuItemA( + HMENU hmenu, + UINT item, + BOOL fByPosition, + LPCMENUITEMINFOA lpmi); +__declspec(dllimport) +BOOL +__stdcall +InsertMenuItemW( + HMENU hmenu, + UINT item, + BOOL fByPosition, + LPCMENUITEMINFOW lpmi); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetMenuItemInfoA( + HMENU hmenu, + UINT item, + BOOL fByPosition, + LPMENUITEMINFOA lpmii); +__declspec(dllimport) +BOOL +__stdcall +GetMenuItemInfoW( + HMENU hmenu, + UINT item, + BOOL fByPosition, + LPMENUITEMINFOW lpmii); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetMenuItemInfoA( + HMENU hmenu, + UINT item, + BOOL fByPositon, + LPCMENUITEMINFOA lpmii); +__declspec(dllimport) +BOOL +__stdcall +SetMenuItemInfoW( + HMENU hmenu, + UINT item, + BOOL fByPositon, + LPCMENUITEMINFOW lpmii); +# 7700 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +UINT +__stdcall +GetMenuDefaultItem( + HMENU hMenu, + UINT fByPos, + UINT gmdiFlags); + +__declspec(dllimport) +BOOL +__stdcall +SetMenuDefaultItem( + HMENU hMenu, + UINT uItem, + UINT fByPos); + +__declspec(dllimport) +BOOL +__stdcall +GetMenuItemRect( + HWND hWnd, + HMENU hMenu, + UINT uItem, + LPRECT lprcItem); + +__declspec(dllimport) +int +__stdcall +MenuItemFromPoint( + HWND hWnd, + HMENU hMenu, + POINT ptScreen); +# 7785 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagDROPSTRUCT +{ + HWND hwndSource; + HWND hwndSink; + DWORD wFmt; + ULONG_PTR dwData; + POINT ptDrop; + DWORD dwControlData; +} DROPSTRUCT, *PDROPSTRUCT, *LPDROPSTRUCT; +# 7811 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +DWORD +__stdcall +DragObject( + HWND hwndParent, + HWND hwndFrom, + UINT fmt, + ULONG_PTR data, + HCURSOR hcur); + +__declspec(dllimport) +BOOL +__stdcall +DragDetect( + HWND hwnd, + POINT pt); +# 7836 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +DrawIcon( + HDC hDC, + int X, + int Y, + HICON hIcon); +# 7887 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagDRAWTEXTPARAMS +{ + UINT cbSize; + int iTabLength; + int iLeftMargin; + int iRightMargin; + UINT uiLengthDrawn; +} DRAWTEXTPARAMS, *LPDRAWTEXTPARAMS; +# 7913 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) + +int +__stdcall +DrawTextA( + HDC hdc, + + + LPCSTR lpchText, + int cchText, + LPRECT lprc, + UINT format); +__declspec(dllimport) + +int +__stdcall +DrawTextW( + HDC hdc, + + + LPCWSTR lpchText, + int cchText, + LPRECT lprc, + UINT format); +# 7971 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) + +int +__stdcall +DrawTextExA( + HDC hdc, + + + + LPSTR lpchText, + int cchText, + LPRECT lprc, + UINT format, + LPDRAWTEXTPARAMS lpdtp); +__declspec(dllimport) + +int +__stdcall +DrawTextExW( + HDC hdc, + + + + LPWSTR lpchText, + int cchText, + LPRECT lprc, + UINT format, + LPDRAWTEXTPARAMS lpdtp); +# 8014 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +GrayStringA( + HDC hDC, + HBRUSH hBrush, + GRAYSTRINGPROC lpOutputFunc, + LPARAM lpData, + int nCount, + int X, + int Y, + int nWidth, + int nHeight); +__declspec(dllimport) +BOOL +__stdcall +GrayStringW( + HDC hDC, + HBRUSH hBrush, + GRAYSTRINGPROC lpOutputFunc, + LPARAM lpData, + int nCount, + int X, + int Y, + int nWidth, + int nHeight); +# 8072 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +DrawStateA( + HDC hdc, + HBRUSH hbrFore, + DRAWSTATEPROC qfnCallBack, + LPARAM lData, + WPARAM wData, + int x, + int y, + int cx, + int cy, + UINT uFlags); +__declspec(dllimport) +BOOL +__stdcall +DrawStateW( + HDC hdc, + HBRUSH hbrFore, + DRAWSTATEPROC qfnCallBack, + LPARAM lData, + WPARAM wData, + int x, + int y, + int cx, + int cy, + UINT uFlags); +# 8114 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +LONG +__stdcall +TabbedTextOutA( + HDC hdc, + int x, + int y, + LPCSTR lpString, + int chCount, + int nTabPositions, + const INT *lpnTabStopPositions, + int nTabOrigin); +__declspec(dllimport) +LONG +__stdcall +TabbedTextOutW( + HDC hdc, + int x, + int y, + LPCWSTR lpString, + int chCount, + int nTabPositions, + const INT *lpnTabStopPositions, + int nTabOrigin); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +GetTabbedTextExtentA( + HDC hdc, + LPCSTR lpString, + int chCount, + int nTabPositions, + const INT *lpnTabStopPositions); +__declspec(dllimport) +DWORD +__stdcall +GetTabbedTextExtentW( + HDC hdc, + LPCWSTR lpString, + int chCount, + int nTabPositions, + const INT *lpnTabStopPositions); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +UpdateWindow( + HWND hWnd); + +__declspec(dllimport) +HWND +__stdcall +SetActiveWindow( + HWND hWnd); + + +__declspec(dllimport) +HWND +__stdcall +GetForegroundWindow( + void); + + +__declspec(dllimport) +BOOL +__stdcall +PaintDesktop( + HDC hdc); + +__declspec(dllimport) +void +__stdcall +SwitchToThisWindow( + HWND hwnd, + BOOL fUnknown); + + + +__declspec(dllimport) +BOOL +__stdcall +SetForegroundWindow( + HWND hWnd); + + +__declspec(dllimport) +BOOL +__stdcall +AllowSetForegroundWindow( + DWORD dwProcessId); + + + +__declspec(dllimport) +BOOL +__stdcall +LockSetForegroundWindow( + UINT uLockCode); + + + + + + +__declspec(dllimport) +HWND +__stdcall +WindowFromDC( + HDC hDC); + +__declspec(dllimport) +HDC +__stdcall +GetDC( + HWND hWnd); + +__declspec(dllimport) +HDC +__stdcall +GetDCEx( + HWND hWnd, + HRGN hrgnClip, + DWORD flags); +# 8272 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HDC +__stdcall +GetWindowDC( + HWND hWnd); + +__declspec(dllimport) +int +__stdcall +ReleaseDC( + HWND hWnd, + HDC hDC); + +__declspec(dllimport) +HDC +__stdcall +BeginPaint( + HWND hWnd, + LPPAINTSTRUCT lpPaint); + +__declspec(dllimport) +BOOL +__stdcall +EndPaint( + HWND hWnd, + const PAINTSTRUCT *lpPaint); + +__declspec(dllimport) +BOOL +__stdcall +GetUpdateRect( + HWND hWnd, + LPRECT lpRect, + BOOL bErase); + +__declspec(dllimport) +int +__stdcall +GetUpdateRgn( + HWND hWnd, + HRGN hRgn, + BOOL bErase); + +__declspec(dllimport) +int +__stdcall +SetWindowRgn( + HWND hWnd, + HRGN hRgn, + BOOL bRedraw); +# 8330 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +int +__stdcall +GetWindowRgn( + HWND hWnd, + HRGN hRgn); + + + +__declspec(dllimport) +int +__stdcall +GetWindowRgnBox( + HWND hWnd, + LPRECT lprc); + + + +__declspec(dllimport) +int +__stdcall +ExcludeUpdateRgn( + HDC hDC, + HWND hWnd); + +__declspec(dllimport) +BOOL +__stdcall +InvalidateRect( + HWND hWnd, + const RECT *lpRect, + BOOL bErase); + +__declspec(dllimport) +BOOL +__stdcall +ValidateRect( + HWND hWnd, + const RECT *lpRect); + +__declspec(dllimport) +BOOL +__stdcall +InvalidateRgn( + HWND hWnd, + HRGN hRgn, + BOOL bErase); + +__declspec(dllimport) +BOOL +__stdcall +ValidateRgn( + HWND hWnd, + HRGN hRgn); + + +__declspec(dllimport) +BOOL +__stdcall +RedrawWindow( + HWND hWnd, + const RECT *lprcUpdate, + HRGN hrgnUpdate, + UINT flags); +# 8426 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +LockWindowUpdate( + HWND hWndLock); + +__declspec(dllimport) +BOOL +__stdcall +ScrollWindow( + HWND hWnd, + int XAmount, + int YAmount, + const RECT *lpRect, + const RECT *lpClipRect); + +__declspec(dllimport) +BOOL +__stdcall +ScrollDC( + HDC hDC, + int dx, + int dy, + const RECT *lprcScroll, + const RECT *lprcClip, + HRGN hrgnUpdate, + LPRECT lprcUpdate); + +__declspec(dllimport) +int +__stdcall +ScrollWindowEx( + HWND hWnd, + int dx, + int dy, + const RECT *prcScroll, + const RECT *prcClip, + HRGN hrgnUpdate, + LPRECT prcUpdate, + UINT flags); +# 8482 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +int +__stdcall +SetScrollPos( + HWND hWnd, + int nBar, + int nPos, + BOOL bRedraw); + +__declspec(dllimport) +int +__stdcall +GetScrollPos( + HWND hWnd, + int nBar); + +__declspec(dllimport) +BOOL +__stdcall +SetScrollRange( + HWND hWnd, + int nBar, + int nMinPos, + int nMaxPos, + BOOL bRedraw); + +__declspec(dllimport) +BOOL +__stdcall +GetScrollRange( + HWND hWnd, + int nBar, + LPINT lpMinPos, + LPINT lpMaxPos); + +__declspec(dllimport) +BOOL +__stdcall +ShowScrollBar( + HWND hWnd, + int wBar, + BOOL bShow); + +__declspec(dllimport) +BOOL +__stdcall +EnableScrollBar( + HWND hWnd, + UINT wSBflags, + UINT wArrows); +# 8552 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +SetPropA( + HWND hWnd, + LPCSTR lpString, + HANDLE hData); +__declspec(dllimport) +BOOL +__stdcall +SetPropW( + HWND hWnd, + LPCWSTR lpString, + HANDLE hData); + + + + + + +__declspec(dllimport) +HANDLE +__stdcall +GetPropA( + HWND hWnd, + LPCSTR lpString); +__declspec(dllimport) +HANDLE +__stdcall +GetPropW( + HWND hWnd, + LPCWSTR lpString); + + + + + + +__declspec(dllimport) +HANDLE +__stdcall +RemovePropA( + HWND hWnd, + LPCSTR lpString); +__declspec(dllimport) +HANDLE +__stdcall +RemovePropW( + HWND hWnd, + LPCWSTR lpString); + + + + + + +__declspec(dllimport) +int +__stdcall +EnumPropsExA( + HWND hWnd, + PROPENUMPROCEXA lpEnumFunc, + LPARAM lParam); +__declspec(dllimport) +int +__stdcall +EnumPropsExW( + HWND hWnd, + PROPENUMPROCEXW lpEnumFunc, + LPARAM lParam); + + + + + + +__declspec(dllimport) +int +__stdcall +EnumPropsA( + HWND hWnd, + PROPENUMPROCA lpEnumFunc); +__declspec(dllimport) +int +__stdcall +EnumPropsW( + HWND hWnd, + PROPENUMPROCW lpEnumFunc); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetWindowTextA( + HWND hWnd, + LPCSTR lpString); +__declspec(dllimport) +BOOL +__stdcall +SetWindowTextW( + HWND hWnd, + LPCWSTR lpString); + + + + + + + +__declspec(dllimport) +int +__stdcall +GetWindowTextA( + HWND hWnd, + LPSTR lpString, + int nMaxCount); + +__declspec(dllimport) +int +__stdcall +GetWindowTextW( + HWND hWnd, + LPWSTR lpString, + int nMaxCount); + + + + + + +__declspec(dllimport) +int +__stdcall +GetWindowTextLengthA( + HWND hWnd); +__declspec(dllimport) +int +__stdcall +GetWindowTextLengthW( + HWND hWnd); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetClientRect( + HWND hWnd, + LPRECT lpRect); + +__declspec(dllimport) +BOOL +__stdcall +GetWindowRect( + HWND hWnd, + LPRECT lpRect); + +__declspec(dllimport) +BOOL +__stdcall +AdjustWindowRect( + LPRECT lpRect, + DWORD dwStyle, + BOOL bMenu); + +__declspec(dllimport) +BOOL +__stdcall +AdjustWindowRectEx( + LPRECT lpRect, + DWORD dwStyle, + BOOL bMenu, + DWORD dwExStyle); + + +__declspec(dllimport) +BOOL +__stdcall +AdjustWindowRectExForDpi( + LPRECT lpRect, + DWORD dwStyle, + BOOL bMenu, + DWORD dwExStyle, + UINT dpi); +# 8756 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagHELPINFO +{ + UINT cbSize; + int iContextType; + int iCtrlId; + HANDLE hItemHandle; + DWORD_PTR dwContextId; + POINT MousePos; +} HELPINFO, *LPHELPINFO; + +__declspec(dllimport) +BOOL +__stdcall +SetWindowContextHelpId( + HWND, + DWORD); + +__declspec(dllimport) +DWORD +__stdcall +GetWindowContextHelpId( + HWND); + +__declspec(dllimport) +BOOL +__stdcall +SetMenuContextHelpId( + HMENU, + DWORD); + +__declspec(dllimport) +DWORD +__stdcall +GetMenuContextHelpId( + HMENU); +# 8871 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +int +__stdcall +MessageBoxA( + HWND hWnd, + LPCSTR lpText, + LPCSTR lpCaption, + UINT uType); +__declspec(dllimport) +int +__stdcall +MessageBoxW( + HWND hWnd, + LPCWSTR lpText, + LPCWSTR lpCaption, + UINT uType); +# 8917 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +int +__stdcall +MessageBoxExA( + HWND hWnd, + LPCSTR lpText, + LPCSTR lpCaption, + UINT uType, + WORD wLanguageId); +__declspec(dllimport) +int +__stdcall +MessageBoxExW( + HWND hWnd, + LPCWSTR lpText, + LPCWSTR lpCaption, + UINT uType, + WORD wLanguageId); +# 8943 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef void (__stdcall *MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo); + +typedef struct tagMSGBOXPARAMSA +{ + UINT cbSize; + HWND hwndOwner; + HINSTANCE hInstance; + LPCSTR lpszText; + LPCSTR lpszCaption; + DWORD dwStyle; + LPCSTR lpszIcon; + DWORD_PTR dwContextHelpId; + MSGBOXCALLBACK lpfnMsgBoxCallback; + DWORD dwLanguageId; +} MSGBOXPARAMSA, *PMSGBOXPARAMSA, *LPMSGBOXPARAMSA; +typedef struct tagMSGBOXPARAMSW +{ + UINT cbSize; + HWND hwndOwner; + HINSTANCE hInstance; + LPCWSTR lpszText; + LPCWSTR lpszCaption; + DWORD dwStyle; + LPCWSTR lpszIcon; + DWORD_PTR dwContextHelpId; + MSGBOXCALLBACK lpfnMsgBoxCallback; + DWORD dwLanguageId; +} MSGBOXPARAMSW, *PMSGBOXPARAMSW, *LPMSGBOXPARAMSW; + +typedef MSGBOXPARAMSW MSGBOXPARAMS; +typedef PMSGBOXPARAMSW PMSGBOXPARAMS; +typedef LPMSGBOXPARAMSW LPMSGBOXPARAMS; + + + + + + +__declspec(dllimport) +int +__stdcall +MessageBoxIndirectA( + const MSGBOXPARAMSA * lpmbp); +__declspec(dllimport) +int +__stdcall +MessageBoxIndirectW( + const MSGBOXPARAMSW * lpmbp); +# 9006 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +MessageBeep( + UINT uType); +# 9021 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +int +__stdcall +ShowCursor( + BOOL bShow); + +__declspec(dllimport) +BOOL +__stdcall +SetCursorPos( + int X, + int Y); + + +__declspec(dllimport) +BOOL +__stdcall +SetPhysicalCursorPos( + int X, + int Y); + + +__declspec(dllimport) +HCURSOR +__stdcall +SetCursor( + HCURSOR hCursor); + +__declspec(dllimport) +BOOL +__stdcall +GetCursorPos( + LPPOINT lpPoint); + + +__declspec(dllimport) +BOOL +__stdcall +GetPhysicalCursorPos( + LPPOINT lpPoint); + + +__declspec(dllimport) +BOOL +__stdcall +ClipCursor( + const RECT *lpRect); + + +__declspec(dllimport) +BOOL +__stdcall +GetClipCursor( + LPRECT lpRect); + +__declspec(dllimport) +HCURSOR +__stdcall +GetCursor( + void); + +__declspec(dllimport) +BOOL +__stdcall +CreateCaret( + HWND hWnd, + HBITMAP hBitmap, + int nWidth, + int nHeight); + +__declspec(dllimport) +UINT +__stdcall +GetCaretBlinkTime( + void); + +__declspec(dllimport) +BOOL +__stdcall +SetCaretBlinkTime( + UINT uMSeconds); + +__declspec(dllimport) +BOOL +__stdcall +DestroyCaret( + void); + +__declspec(dllimport) +BOOL +__stdcall +HideCaret( + HWND hWnd); + +__declspec(dllimport) +BOOL +__stdcall +ShowCaret( + HWND hWnd); + +__declspec(dllimport) +BOOL +__stdcall +SetCaretPos( + int X, + int Y); + +__declspec(dllimport) +BOOL +__stdcall +GetCaretPos( + LPPOINT lpPoint); + +__declspec(dllimport) +BOOL +__stdcall +ClientToScreen( + HWND hWnd, + LPPOINT lpPoint); + +__declspec(dllimport) +BOOL +__stdcall +ScreenToClient( + HWND hWnd, + LPPOINT lpPoint); + + +__declspec(dllimport) +BOOL +__stdcall +LogicalToPhysicalPoint( + HWND hWnd, + LPPOINT lpPoint); + +__declspec(dllimport) +BOOL +__stdcall +PhysicalToLogicalPoint( + HWND hWnd, + LPPOINT lpPoint); + + + + +__declspec(dllimport) +BOOL +__stdcall +LogicalToPhysicalPointForPerMonitorDPI( + HWND hWnd, + LPPOINT lpPoint); + +__declspec(dllimport) +BOOL +__stdcall +PhysicalToLogicalPointForPerMonitorDPI( + HWND hWnd, + LPPOINT lpPoint); + + + +__declspec(dllimport) +int +__stdcall +MapWindowPoints( + HWND hWndFrom, + HWND hWndTo, + LPPOINT lpPoints, + UINT cPoints); + +__declspec(dllimport) +HWND +__stdcall +WindowFromPoint( + POINT Point); + + +__declspec(dllimport) +HWND +__stdcall +WindowFromPhysicalPoint( + POINT Point); + + +__declspec(dllimport) +HWND +__stdcall +ChildWindowFromPoint( + HWND hWndParent, + POINT Point); +# 9224 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HWND +__stdcall +ChildWindowFromPointEx( + HWND hwnd, + POINT pt, + UINT flags); +# 9303 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +DWORD +__stdcall +GetSysColor( + int nIndex); + + +__declspec(dllimport) +HBRUSH +__stdcall +GetSysColorBrush( + int nIndex); + + + + +__declspec(dllimport) +BOOL +__stdcall +SetSysColors( + int cElements, + const INT * lpaElements, + const COLORREF * lpaRgbValues); +# 9335 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +DrawFocusRect( + HDC hDC, + const RECT * lprc); + +__declspec(dllimport) +int +__stdcall +FillRect( + HDC hDC, + const RECT *lprc, + HBRUSH hbr); + +__declspec(dllimport) +int +__stdcall +FrameRect( + HDC hDC, + const RECT *lprc, + HBRUSH hbr); + +__declspec(dllimport) +BOOL +__stdcall +InvertRect( + HDC hDC, + const RECT *lprc); + +__declspec(dllimport) +BOOL +__stdcall +SetRect( + LPRECT lprc, + int xLeft, + int yTop, + int xRight, + int yBottom); + +__declspec(dllimport) +BOOL +__stdcall +SetRectEmpty( + LPRECT lprc); + +__declspec(dllimport) +BOOL +__stdcall +CopyRect( + LPRECT lprcDst, + const RECT *lprcSrc); + +__declspec(dllimport) +BOOL +__stdcall +InflateRect( + LPRECT lprc, + int dx, + int dy); + +__declspec(dllimport) +BOOL +__stdcall +IntersectRect( + LPRECT lprcDst, + const RECT *lprcSrc1, + const RECT *lprcSrc2); + +__declspec(dllimport) +BOOL +__stdcall +UnionRect( + LPRECT lprcDst, + const RECT *lprcSrc1, + const RECT *lprcSrc2); + +__declspec(dllimport) +BOOL +__stdcall +SubtractRect( + LPRECT lprcDst, + const RECT *lprcSrc1, + const RECT *lprcSrc2); + +__declspec(dllimport) +BOOL +__stdcall +OffsetRect( + LPRECT lprc, + int dx, + int dy); + +__declspec(dllimport) +BOOL +__stdcall +IsRectEmpty( + const RECT *lprc); + +__declspec(dllimport) +BOOL +__stdcall +EqualRect( + const RECT *lprc1, + const RECT *lprc2); + +__declspec(dllimport) +BOOL +__stdcall +PtInRect( + const RECT *lprc, + POINT pt); + + + +__declspec(dllimport) +WORD +__stdcall +GetWindowWord( + HWND hWnd, + int nIndex); + +__declspec(dllimport) +WORD +__stdcall +SetWindowWord( + HWND hWnd, + int nIndex, + WORD wNewWord); + +__declspec(dllimport) +LONG +__stdcall +GetWindowLongA( + HWND hWnd, + int nIndex); +__declspec(dllimport) +LONG +__stdcall +GetWindowLongW( + HWND hWnd, + int nIndex); + + + + + + +__declspec(dllimport) +LONG +__stdcall +SetWindowLongA( + HWND hWnd, + int nIndex, + LONG dwNewLong); +__declspec(dllimport) +LONG +__stdcall +SetWindowLongW( + HWND hWnd, + int nIndex, + LONG dwNewLong); +# 9563 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +WORD +__stdcall +GetClassWord( + HWND hWnd, + int nIndex); + +__declspec(dllimport) +WORD +__stdcall +SetClassWord( + HWND hWnd, + int nIndex, + WORD wNewWord); + +__declspec(dllimport) +DWORD +__stdcall +GetClassLongA( + HWND hWnd, + int nIndex); +__declspec(dllimport) +DWORD +__stdcall +GetClassLongW( + HWND hWnd, + int nIndex); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +SetClassLongA( + HWND hWnd, + int nIndex, + LONG dwNewLong); +__declspec(dllimport) +DWORD +__stdcall +SetClassLongW( + HWND hWnd, + int nIndex, + LONG dwNewLong); +# 9679 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +GetProcessDefaultLayout( + DWORD *pdwDefaultLayout); + +__declspec(dllimport) +BOOL +__stdcall +SetProcessDefaultLayout( + DWORD dwDefaultLayout); + + +__declspec(dllimport) +HWND +__stdcall +GetDesktopWindow( + void); + + +__declspec(dllimport) +HWND +__stdcall +GetParent( + HWND hWnd); + +__declspec(dllimport) +HWND +__stdcall +SetParent( + HWND hWndChild, + HWND hWndNewParent); + +__declspec(dllimport) +BOOL +__stdcall +EnumChildWindows( + HWND hWndParent, + WNDENUMPROC lpEnumFunc, + LPARAM lParam); + + +__declspec(dllimport) +HWND +__stdcall +FindWindowA( + LPCSTR lpClassName, + LPCSTR lpWindowName); +__declspec(dllimport) +HWND +__stdcall +FindWindowW( + LPCWSTR lpClassName, + LPCWSTR lpWindowName); + + + + + + + +__declspec(dllimport) +HWND +__stdcall +FindWindowExA( + HWND hWndParent, + HWND hWndChildAfter, + LPCSTR lpszClass, + LPCSTR lpszWindow); +__declspec(dllimport) +HWND +__stdcall +FindWindowExW( + HWND hWndParent, + HWND hWndChildAfter, + LPCWSTR lpszClass, + LPCWSTR lpszWindow); + + + + + + +__declspec(dllimport) +HWND +__stdcall +GetShellWindow( + void); + + + + +__declspec(dllimport) +BOOL +__stdcall +RegisterShellHookWindow( + HWND hwnd); + +__declspec(dllimport) +BOOL +__stdcall +DeregisterShellHookWindow( + HWND hwnd); + +__declspec(dllimport) +BOOL +__stdcall +EnumWindows( + WNDENUMPROC lpEnumFunc, + LPARAM lParam); + +__declspec(dllimport) +BOOL +__stdcall +EnumThreadWindows( + DWORD dwThreadId, + WNDENUMPROC lpfn, + LPARAM lParam); + + + + +__declspec(dllimport) +int +__stdcall +GetClassNameA( + HWND hWnd, + LPSTR lpClassName, + int nMaxCount + ); +__declspec(dllimport) +int +__stdcall +GetClassNameW( + HWND hWnd, + LPWSTR lpClassName, + int nMaxCount + ); +# 9847 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HWND +__stdcall +GetTopWindow( + HWND hWnd); + + + + + +__declspec(dllimport) +DWORD +__stdcall +GetWindowThreadProcessId( + HWND hWnd, + LPDWORD lpdwProcessId); + + +__declspec(dllimport) +BOOL +__stdcall +IsGUIThread( + BOOL bConvert); + + + + + + + +__declspec(dllimport) +HWND +__stdcall +GetLastActivePopup( + HWND hWnd); +# 9899 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HWND +__stdcall +GetWindow( + HWND hWnd, + UINT uCmd); + + + + + + +__declspec(dllimport) +HHOOK +__stdcall +SetWindowsHookA( + int nFilterType, + HOOKPROC pfnFilterProc); +__declspec(dllimport) +HHOOK +__stdcall +SetWindowsHookW( + int nFilterType, + HOOKPROC pfnFilterProc); +# 9951 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +UnhookWindowsHook( + int nCode, + HOOKPROC pfnFilterProc); + +__declspec(dllimport) +HHOOK +__stdcall +SetWindowsHookExA( + int idHook, + HOOKPROC lpfn, + HINSTANCE hmod, + DWORD dwThreadId); +__declspec(dllimport) +HHOOK +__stdcall +SetWindowsHookExW( + int idHook, + HOOKPROC lpfn, + HINSTANCE hmod, + DWORD dwThreadId); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +UnhookWindowsHookEx( + HHOOK hhk); + +__declspec(dllimport) +LRESULT +__stdcall +CallNextHookEx( + HHOOK hhk, + int nCode, + WPARAM wParam, + LPARAM lParam); +# 10090 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +CheckMenuRadioItem( + HMENU hmenu, + UINT first, + UINT last, + UINT check, + UINT flags); + + + + + +typedef struct { + WORD versionNumber; + WORD offset; +} MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER; + +typedef struct { + WORD mtOption; + WORD mtID; + WCHAR mtString[1]; +} MENUITEMTEMPLATE, *PMENUITEMTEMPLATE; +# 10170 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HBITMAP +__stdcall +LoadBitmapA( + HINSTANCE hInstance, + LPCSTR lpBitmapName); +__declspec(dllimport) +HBITMAP +__stdcall +LoadBitmapW( + HINSTANCE hInstance, + LPCWSTR lpBitmapName); + + + + + + +__declspec(dllimport) +HCURSOR +__stdcall +LoadCursorA( + HINSTANCE hInstance, + LPCSTR lpCursorName); +__declspec(dllimport) +HCURSOR +__stdcall +LoadCursorW( + HINSTANCE hInstance, + LPCWSTR lpCursorName); + + + + + + +__declspec(dllimport) +HCURSOR +__stdcall +LoadCursorFromFileA( + LPCSTR lpFileName); +__declspec(dllimport) +HCURSOR +__stdcall +LoadCursorFromFileW( + LPCWSTR lpFileName); + + + + + + +__declspec(dllimport) +HCURSOR +__stdcall +CreateCursor( + HINSTANCE hInst, + int xHotSpot, + int yHotSpot, + int nWidth, + int nHeight, + const void *pvANDPlane, + const void *pvXORPlane); + +__declspec(dllimport) +BOOL +__stdcall +DestroyCursor( + HCURSOR hCursor); +# 10280 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +SetSystemCursor( + HCURSOR hcur, + DWORD id); + +typedef struct _ICONINFO { + BOOL fIcon; + DWORD xHotspot; + DWORD yHotspot; + HBITMAP hbmMask; + HBITMAP hbmColor; +} ICONINFO; +typedef ICONINFO *PICONINFO; + +__declspec(dllimport) +HICON +__stdcall +LoadIconA( + HINSTANCE hInstance, + LPCSTR lpIconName); +__declspec(dllimport) +HICON +__stdcall +LoadIconW( + HINSTANCE hInstance, + LPCWSTR lpIconName); + + + + + + + +__declspec(dllimport) +UINT +__stdcall +PrivateExtractIconsA( + LPCSTR szFileName, + int nIconIndex, + int cxIcon, + int cyIcon, + HICON *phicon, + UINT *piconid, + UINT nIcons, + UINT flags); +__declspec(dllimport) +UINT +__stdcall +PrivateExtractIconsW( + LPCWSTR szFileName, + int nIconIndex, + int cxIcon, + int cyIcon, + HICON *phicon, + UINT *piconid, + UINT nIcons, + UINT flags); + + + + + + +__declspec(dllimport) +HICON +__stdcall +CreateIcon( + HINSTANCE hInstance, + int nWidth, + int nHeight, + BYTE cPlanes, + BYTE cBitsPixel, + const BYTE *lpbANDbits, + const BYTE *lpbXORbits); + +__declspec(dllimport) +BOOL +__stdcall +DestroyIcon( + HICON hIcon); + +__declspec(dllimport) +int +__stdcall +LookupIconIdFromDirectory( + PBYTE presbits, + BOOL fIcon); + + +__declspec(dllimport) +int +__stdcall +LookupIconIdFromDirectoryEx( + PBYTE presbits, + BOOL fIcon, + int cxDesired, + int cyDesired, + UINT Flags); + + +__declspec(dllimport) +HICON +__stdcall +CreateIconFromResource( + PBYTE presbits, + DWORD dwResSize, + BOOL fIcon, + DWORD dwVer); + + +__declspec(dllimport) +HICON +__stdcall +CreateIconFromResourceEx( + PBYTE presbits, + DWORD dwResSize, + BOOL fIcon, + DWORD dwVer, + int cxDesired, + int cyDesired, + UINT Flags); + + +typedef struct tagCURSORSHAPE +{ + int xHotSpot; + int yHotSpot; + int cx; + int cy; + int cbWidth; + BYTE Planes; + BYTE BitsPixel; +} CURSORSHAPE, *LPCURSORSHAPE; +# 10443 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HANDLE +__stdcall +LoadImageA( + HINSTANCE hInst, + LPCSTR name, + UINT type, + int cx, + int cy, + UINT fuLoad); +__declspec(dllimport) +HANDLE +__stdcall +LoadImageW( + HINSTANCE hInst, + LPCWSTR name, + UINT type, + int cx, + int cy, + UINT fuLoad); + + + + + + +__declspec(dllimport) +HANDLE +__stdcall +CopyImage( + HANDLE h, + UINT type, + int cx, + int cy, + UINT flags); +# 10488 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) BOOL __stdcall DrawIconEx( + HDC hdc, + int xLeft, + int yTop, + HICON hIcon, + int cxWidth, + int cyWidth, + UINT istepIfAniCur, + HBRUSH hbrFlickerFreeDraw, + UINT diFlags); +# 10507 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HICON +__stdcall +CreateIconIndirect( + PICONINFO piconinfo); + +__declspec(dllimport) +HICON +__stdcall +CopyIcon( + HICON hIcon); + +__declspec(dllimport) +BOOL +__stdcall +GetIconInfo( + HICON hIcon, + PICONINFO piconinfo); + + +typedef struct _ICONINFOEXA { + DWORD cbSize; + BOOL fIcon; + DWORD xHotspot; + DWORD yHotspot; + HBITMAP hbmMask; + HBITMAP hbmColor; + WORD wResID; + CHAR szModName[260]; + CHAR szResName[260]; +} ICONINFOEXA, *PICONINFOEXA; +typedef struct _ICONINFOEXW { + DWORD cbSize; + BOOL fIcon; + DWORD xHotspot; + DWORD yHotspot; + HBITMAP hbmMask; + HBITMAP hbmColor; + WORD wResID; + WCHAR szModName[260]; + WCHAR szResName[260]; +} ICONINFOEXW, *PICONINFOEXW; + +typedef ICONINFOEXW ICONINFOEX; +typedef PICONINFOEXW PICONINFOEX; + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetIconInfoExA( + HICON hicon, + PICONINFOEXA piconinfo); +__declspec(dllimport) +BOOL +__stdcall +GetIconInfoExW( + HICON hicon, + PICONINFOEXW piconinfo); +# 10906 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef enum { + EDIT_CONTROL_FEATURE_ENTERPRISE_DATA_PROTECTION_PASTE_SUPPORT = 0, + EDIT_CONTROL_FEATURE_PASTE_NOTIFICATIONS = 1, +} EDIT_CONTROL_FEATURE; +# 11090 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +IsDialogMessageA( + HWND hDlg, + LPMSG lpMsg); +__declspec(dllimport) +BOOL +__stdcall +IsDialogMessageW( + HWND hDlg, + LPMSG lpMsg); +# 11110 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +MapDialogRect( + HWND hDlg, + LPRECT lpRect); + +__declspec(dllimport) +int +__stdcall +DlgDirListA( + HWND hDlg, + LPSTR lpPathSpec, + int nIDListBox, + int nIDStaticPath, + UINT uFileType); +__declspec(dllimport) +int +__stdcall +DlgDirListW( + HWND hDlg, + LPWSTR lpPathSpec, + int nIDListBox, + int nIDStaticPath, + UINT uFileType); +# 11161 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +DlgDirSelectExA( + HWND hwndDlg, + LPSTR lpString, + int chCount, + int idListBox); +__declspec(dllimport) +BOOL +__stdcall +DlgDirSelectExW( + HWND hwndDlg, + LPWSTR lpString, + int chCount, + int idListBox); + + + + + + +__declspec(dllimport) +int +__stdcall +DlgDirListComboBoxA( + HWND hDlg, + LPSTR lpPathSpec, + int nIDComboBox, + int nIDStaticPath, + UINT uFiletype); +__declspec(dllimport) +int +__stdcall +DlgDirListComboBoxW( + HWND hDlg, + LPWSTR lpPathSpec, + int nIDComboBox, + int nIDStaticPath, + UINT uFiletype); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +DlgDirSelectComboBoxExA( + HWND hwndDlg, + LPSTR lpString, + int cchOut, + int idComboBox); +__declspec(dllimport) +BOOL +__stdcall +DlgDirSelectComboBoxExW( + HWND hwndDlg, + LPWSTR lpString, + int cchOut, + int idComboBox); +# 11577 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagSCROLLINFO +{ + UINT cbSize; + UINT fMask; + int nMin; + int nMax; + UINT nPage; + int nPos; + int nTrackPos; +} SCROLLINFO, *LPSCROLLINFO; +typedef SCROLLINFO const *LPCSCROLLINFO; + +__declspec(dllimport) +int +__stdcall +SetScrollInfo( + HWND hwnd, + int nBar, + LPCSCROLLINFO lpsi, + BOOL redraw); + +__declspec(dllimport) +BOOL +__stdcall +GetScrollInfo( + HWND hwnd, + int nBar, + LPSCROLLINFO lpsi); +# 11634 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagMDICREATESTRUCTA { + LPCSTR szClass; + LPCSTR szTitle; + HANDLE hOwner; + int x; + int y; + int cx; + int cy; + DWORD style; + LPARAM lParam; +} MDICREATESTRUCTA, *LPMDICREATESTRUCTA; +typedef struct tagMDICREATESTRUCTW { + LPCWSTR szClass; + LPCWSTR szTitle; + HANDLE hOwner; + int x; + int y; + int cx; + int cy; + DWORD style; + LPARAM lParam; +} MDICREATESTRUCTW, *LPMDICREATESTRUCTW; + +typedef MDICREATESTRUCTW MDICREATESTRUCT; +typedef LPMDICREATESTRUCTW LPMDICREATESTRUCT; + + + + + +typedef struct tagCLIENTCREATESTRUCT { + HANDLE hWindowMenu; + UINT idFirstChild; +} CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT; + +__declspec(dllimport) +LRESULT +__stdcall +DefFrameProcA( + HWND hWnd, + HWND hWndMDIClient, + UINT uMsg, + WPARAM wParam, + LPARAM lParam); +__declspec(dllimport) +LRESULT +__stdcall +DefFrameProcW( + HWND hWnd, + HWND hWndMDIClient, + UINT uMsg, + WPARAM wParam, + LPARAM lParam); + + + + + + +__declspec(dllimport) + +LRESULT +__stdcall + + + + +DefMDIChildProcA( + HWND hWnd, + UINT uMsg, + WPARAM wParam, + LPARAM lParam); +__declspec(dllimport) + +LRESULT +__stdcall + + + + +DefMDIChildProcW( + HWND hWnd, + UINT uMsg, + WPARAM wParam, + LPARAM lParam); +# 11727 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +TranslateMDISysAccel( + HWND hWndClient, + LPMSG lpMsg); + + + +__declspec(dllimport) +UINT +__stdcall +ArrangeIconicWindows( + HWND hWnd); + +__declspec(dllimport) +HWND +__stdcall +CreateMDIWindowA( + LPCSTR lpClassName, + LPCSTR lpWindowName, + DWORD dwStyle, + int X, + int Y, + int nWidth, + int nHeight, + HWND hWndParent, + HINSTANCE hInstance, + LPARAM lParam); +__declspec(dllimport) +HWND +__stdcall +CreateMDIWindowW( + LPCWSTR lpClassName, + LPCWSTR lpWindowName, + DWORD dwStyle, + int X, + int Y, + int nWidth, + int nHeight, + HWND hWndParent, + HINSTANCE hInstance, + LPARAM lParam); + + + + + + + +__declspec(dllimport) +WORD +__stdcall +TileWindows( + HWND hwndParent, + UINT wHow, + const RECT * lpRect, + UINT cKids, + const HWND * lpKids); + +__declspec(dllimport) +WORD +__stdcall CascadeWindows( + HWND hwndParent, + UINT wHow, + const RECT * lpRect, + UINT cKids, + const HWND * lpKids); +# 11812 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef DWORD HELPPOLY; +typedef struct tagMULTIKEYHELPA { + + DWORD mkSize; + + + + CHAR mkKeylist; + CHAR szKeyphrase[1]; +} MULTIKEYHELPA, *PMULTIKEYHELPA, *LPMULTIKEYHELPA; +typedef struct tagMULTIKEYHELPW { + + DWORD mkSize; + + + + WCHAR mkKeylist; + WCHAR szKeyphrase[1]; +} MULTIKEYHELPW, *PMULTIKEYHELPW, *LPMULTIKEYHELPW; + +typedef MULTIKEYHELPW MULTIKEYHELP; +typedef PMULTIKEYHELPW PMULTIKEYHELP; +typedef LPMULTIKEYHELPW LPMULTIKEYHELP; + + + + + + +typedef struct tagHELPWININFOA { + int wStructSize; + int x; + int y; + int dx; + int dy; + int wMax; + CHAR rgchMember[2]; +} HELPWININFOA, *PHELPWININFOA, *LPHELPWININFOA; +typedef struct tagHELPWININFOW { + int wStructSize; + int x; + int y; + int dx; + int dy; + int wMax; + WCHAR rgchMember[2]; +} HELPWININFOW, *PHELPWININFOW, *LPHELPWININFOW; + +typedef HELPWININFOW HELPWININFO; +typedef PHELPWININFOW PHELPWININFO; +typedef LPHELPWININFOW LPHELPWININFO; +# 11909 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +WinHelpA( + HWND hWndMain, + LPCSTR lpszHelp, + UINT uCommand, + ULONG_PTR dwData); +__declspec(dllimport) +BOOL +__stdcall +WinHelpW( + HWND hWndMain, + LPCWSTR lpszHelp, + UINT uCommand, + ULONG_PTR dwData); +# 11954 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +DWORD +__stdcall +GetGuiResources( + HANDLE hProcess, + DWORD uiFlags); +# 12152 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagTouchPredictionParameters +{ + UINT cbSize; + UINT dwLatency; + UINT dwSampleTime; + UINT bUseHWTimeStamp; +} TOUCHPREDICTIONPARAMETERS, *PTOUCHPREDICTIONPARAMETERS; +# 12365 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagNONCLIENTMETRICSA +{ + UINT cbSize; + int iBorderWidth; + int iScrollWidth; + int iScrollHeight; + int iCaptionWidth; + int iCaptionHeight; + LOGFONTA lfCaptionFont; + int iSmCaptionWidth; + int iSmCaptionHeight; + LOGFONTA lfSmCaptionFont; + int iMenuWidth; + int iMenuHeight; + LOGFONTA lfMenuFont; + LOGFONTA lfStatusFont; + LOGFONTA lfMessageFont; + + int iPaddedBorderWidth; + +} NONCLIENTMETRICSA, *PNONCLIENTMETRICSA, * LPNONCLIENTMETRICSA; +typedef struct tagNONCLIENTMETRICSW +{ + UINT cbSize; + int iBorderWidth; + int iScrollWidth; + int iScrollHeight; + int iCaptionWidth; + int iCaptionHeight; + LOGFONTW lfCaptionFont; + int iSmCaptionWidth; + int iSmCaptionHeight; + LOGFONTW lfSmCaptionFont; + int iMenuWidth; + int iMenuHeight; + LOGFONTW lfMenuFont; + LOGFONTW lfStatusFont; + LOGFONTW lfMessageFont; + + int iPaddedBorderWidth; + +} NONCLIENTMETRICSW, *PNONCLIENTMETRICSW, * LPNONCLIENTMETRICSW; + +typedef NONCLIENTMETRICSW NONCLIENTMETRICS; +typedef PNONCLIENTMETRICSW PNONCLIENTMETRICS; +typedef LPNONCLIENTMETRICSW LPNONCLIENTMETRICS; +# 12440 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagMINIMIZEDMETRICS +{ + UINT cbSize; + int iWidth; + int iHorzGap; + int iVertGap; + int iArrange; +} MINIMIZEDMETRICS, *PMINIMIZEDMETRICS, *LPMINIMIZEDMETRICS; + + + +typedef struct tagICONMETRICSA +{ + UINT cbSize; + int iHorzSpacing; + int iVertSpacing; + int iTitleWrap; + LOGFONTA lfFont; +} ICONMETRICSA, *PICONMETRICSA, *LPICONMETRICSA; +typedef struct tagICONMETRICSW +{ + UINT cbSize; + int iHorzSpacing; + int iVertSpacing; + int iTitleWrap; + LOGFONTW lfFont; +} ICONMETRICSW, *PICONMETRICSW, *LPICONMETRICSW; + +typedef ICONMETRICSW ICONMETRICS; +typedef PICONMETRICSW PICONMETRICS; +typedef LPICONMETRICSW LPICONMETRICS; +# 12479 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagANIMATIONINFO +{ + UINT cbSize; + int iMinAnimate; +} ANIMATIONINFO, *LPANIMATIONINFO; + +typedef struct tagSERIALKEYSA +{ + UINT cbSize; + DWORD dwFlags; + LPSTR lpszActivePort; + LPSTR lpszPort; + UINT iBaudRate; + UINT iPortState; + UINT iActive; +} SERIALKEYSA, *LPSERIALKEYSA; +typedef struct tagSERIALKEYSW +{ + UINT cbSize; + DWORD dwFlags; + LPWSTR lpszActivePort; + LPWSTR lpszPort; + UINT iBaudRate; + UINT iPortState; + UINT iActive; +} SERIALKEYSW, *LPSERIALKEYSW; + +typedef SERIALKEYSW SERIALKEYS; +typedef LPSERIALKEYSW LPSERIALKEYS; +# 12519 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagHIGHCONTRASTA +{ + UINT cbSize; + DWORD dwFlags; + LPSTR lpszDefaultScheme; +} HIGHCONTRASTA, *LPHIGHCONTRASTA; +typedef struct tagHIGHCONTRASTW +{ + UINT cbSize; + DWORD dwFlags; + LPWSTR lpszDefaultScheme; +} HIGHCONTRASTW, *LPHIGHCONTRASTW; + +typedef HIGHCONTRASTW HIGHCONTRAST; +typedef LPHIGHCONTRASTW LPHIGHCONTRAST; +# 12568 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\tvout.h" 1 +# 22 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\tvout.h" +typedef struct _VIDEOPARAMETERS { + GUID Guid; + ULONG dwOffset; + ULONG dwCommand; + ULONG dwFlags; + ULONG dwMode; + ULONG dwTVStandard; + ULONG dwAvailableModes; + ULONG dwAvailableTVStandard; + ULONG dwFlickerFilter; + ULONG dwOverScanX; + ULONG dwOverScanY; + ULONG dwMaxUnscaledX; + ULONG dwMaxUnscaledY; + ULONG dwPositionX; + ULONG dwPositionY; + ULONG dwBrightness; + ULONG dwContrast; + ULONG dwCPType; + ULONG dwCPCommand; + ULONG dwCPStandard; + ULONG dwCPKey; + ULONG bCP_APSTriggerBits; + UCHAR bOEMCopyProtection[256]; +} VIDEOPARAMETERS, *PVIDEOPARAMETERS, *LPVIDEOPARAMETERS; +# 12568 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" 2 +# 12588 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +LONG +__stdcall +ChangeDisplaySettingsA( + DEVMODEA* lpDevMode, + DWORD dwFlags); +__declspec(dllimport) +LONG +__stdcall +ChangeDisplaySettingsW( + DEVMODEW* lpDevMode, + DWORD dwFlags); + + + + + + +__declspec(dllimport) +LONG +__stdcall +ChangeDisplaySettingsExA( + LPCSTR lpszDeviceName, + DEVMODEA* lpDevMode, + HWND hwnd, + DWORD dwflags, + LPVOID lParam); +__declspec(dllimport) +LONG +__stdcall +ChangeDisplaySettingsExW( + LPCWSTR lpszDeviceName, + DEVMODEW* lpDevMode, + HWND hwnd, + DWORD dwflags, + LPVOID lParam); +# 12634 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +EnumDisplaySettingsA( + LPCSTR lpszDeviceName, + DWORD iModeNum, + DEVMODEA* lpDevMode); +__declspec(dllimport) +BOOL +__stdcall +EnumDisplaySettingsW( + LPCWSTR lpszDeviceName, + DWORD iModeNum, + DEVMODEW* lpDevMode); +# 12656 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +EnumDisplaySettingsExA( + LPCSTR lpszDeviceName, + DWORD iModeNum, + DEVMODEA* lpDevMode, + DWORD dwFlags); +__declspec(dllimport) +BOOL +__stdcall +EnumDisplaySettingsExW( + LPCWSTR lpszDeviceName, + DWORD iModeNum, + DEVMODEW* lpDevMode, + DWORD dwFlags); +# 12682 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +EnumDisplayDevicesA( + LPCSTR lpDevice, + DWORD iDevNum, + PDISPLAY_DEVICEA lpDisplayDevice, + DWORD dwFlags); +__declspec(dllimport) +BOOL +__stdcall +EnumDisplayDevicesW( + LPCWSTR lpDevice, + DWORD iDevNum, + PDISPLAY_DEVICEW lpDisplayDevice, + DWORD dwFlags); +# 12711 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +LONG +__stdcall +GetDisplayConfigBufferSizes( + UINT32 flags, + UINT32* numPathArrayElements, + UINT32* numModeInfoArrayElements); + +__declspec(dllimport) +LONG +__stdcall +SetDisplayConfig( + UINT32 numPathArrayElements, + DISPLAYCONFIG_PATH_INFO* pathArray, + UINT32 numModeInfoArrayElements, + DISPLAYCONFIG_MODE_INFO* modeInfoArray, + UINT32 flags); + +__declspec(dllimport) + LONG +__stdcall +QueryDisplayConfig( + UINT32 flags, + UINT32* numPathArrayElements, + DISPLAYCONFIG_PATH_INFO* pathArray, + UINT32* numModeInfoArrayElements, + DISPLAYCONFIG_MODE_INFO* modeInfoArray, + + + DISPLAYCONFIG_TOPOLOGY_ID* currentTopologyId); + +__declspec(dllimport) +LONG +__stdcall +DisplayConfigGetDeviceInfo( + DISPLAYCONFIG_DEVICE_INFO_HEADER* requestPacket); + +__declspec(dllimport) +LONG +__stdcall +DisplayConfigSetDeviceInfo( + DISPLAYCONFIG_DEVICE_INFO_HEADER* setPacket); + + + + + + + +__declspec(dllimport) + +BOOL +__stdcall +SystemParametersInfoA( + UINT uiAction, + UINT uiParam, + PVOID pvParam, + UINT fWinIni); +__declspec(dllimport) + +BOOL +__stdcall +SystemParametersInfoW( + UINT uiAction, + UINT uiParam, + PVOID pvParam, + UINT fWinIni); +# 12786 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) + +BOOL +__stdcall +SystemParametersInfoForDpi( + UINT uiAction, + UINT uiParam, + PVOID pvParam, + UINT fWinIni, + UINT dpi); +# 12810 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagFILTERKEYS +{ + UINT cbSize; + DWORD dwFlags; + DWORD iWaitMSec; + DWORD iDelayMSec; + DWORD iRepeatMSec; + DWORD iBounceMSec; +} FILTERKEYS, *LPFILTERKEYS; +# 12837 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagSTICKYKEYS +{ + UINT cbSize; + DWORD dwFlags; +} STICKYKEYS, *LPSTICKYKEYS; +# 12880 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagMOUSEKEYS +{ + UINT cbSize; + DWORD dwFlags; + DWORD iMaxSpeed; + DWORD iTimeToMaxSpeed; + DWORD iCtrlSpeed; + DWORD dwReserved1; + DWORD dwReserved2; +} MOUSEKEYS, *LPMOUSEKEYS; +# 12916 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagACCESSTIMEOUT +{ + UINT cbSize; + DWORD dwFlags; + DWORD iTimeOutMSec; +} ACCESSTIMEOUT, *LPACCESSTIMEOUT; +# 12952 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagSOUNDSENTRYA +{ + UINT cbSize; + DWORD dwFlags; + DWORD iFSTextEffect; + DWORD iFSTextEffectMSec; + DWORD iFSTextEffectColorBits; + DWORD iFSGrafEffect; + DWORD iFSGrafEffectMSec; + DWORD iFSGrafEffectColor; + DWORD iWindowsEffect; + DWORD iWindowsEffectMSec; + LPSTR lpszWindowsEffectDLL; + DWORD iWindowsEffectOrdinal; +} SOUNDSENTRYA, *LPSOUNDSENTRYA; +typedef struct tagSOUNDSENTRYW +{ + UINT cbSize; + DWORD dwFlags; + DWORD iFSTextEffect; + DWORD iFSTextEffectMSec; + DWORD iFSTextEffectColorBits; + DWORD iFSGrafEffect; + DWORD iFSGrafEffectMSec; + DWORD iFSGrafEffectColor; + DWORD iWindowsEffect; + DWORD iWindowsEffectMSec; + LPWSTR lpszWindowsEffectDLL; + DWORD iWindowsEffectOrdinal; +} SOUNDSENTRYW, *LPSOUNDSENTRYW; + +typedef SOUNDSENTRYW SOUNDSENTRY; +typedef LPSOUNDSENTRYW LPSOUNDSENTRY; +# 13003 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +SoundSentry(void); + + + + + + +typedef struct tagTOGGLEKEYS +{ + UINT cbSize; + DWORD dwFlags; +} TOGGLEKEYS, *LPTOGGLEKEYS; +# 13036 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagAUDIODESCRIPTION { + UINT cbSize; + BOOL Enabled; + LCID Locale; +} AUDIODESCRIPTION, *LPAUDIODESCRIPTION; + + + + + + + +__declspec(dllimport) +void +__stdcall +SetDebugErrorLevel( + DWORD dwLevel); +# 13068 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +void +__stdcall +SetLastErrorEx( + DWORD dwErrCode, + DWORD dwType); + +__declspec(dllimport) +int +__stdcall +InternalGetWindowText( + HWND hWnd, + LPWSTR pString, + int cchMaxCount); +# 13094 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +CancelShutdown( + void); +# 13117 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HMONITOR +__stdcall +MonitorFromPoint( + POINT pt, + DWORD dwFlags); + +__declspec(dllimport) +HMONITOR +__stdcall +MonitorFromRect( + LPCRECT lprc, + DWORD dwFlags); + +__declspec(dllimport) +HMONITOR +__stdcall +MonitorFromWindow( + HWND hwnd, + DWORD dwFlags); +# 13150 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagMONITORINFO +{ + DWORD cbSize; + RECT rcMonitor; + RECT rcWork; + DWORD dwFlags; +} MONITORINFO, *LPMONITORINFO; + + +typedef struct tagMONITORINFOEXA : public tagMONITORINFO +{ + CHAR szDevice[32]; +} MONITORINFOEXA, *LPMONITORINFOEXA; +typedef struct tagMONITORINFOEXW : public tagMONITORINFO +{ + WCHAR szDevice[32]; +} MONITORINFOEXW, *LPMONITORINFOEXW; + +typedef MONITORINFOEXW MONITORINFOEX; +typedef LPMONITORINFOEXW LPMONITORINFOEX; +# 13194 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +GetMonitorInfoA( + HMONITOR hMonitor, + LPMONITORINFO lpmi); +__declspec(dllimport) +BOOL +__stdcall +GetMonitorInfoW( + HMONITOR hMonitor, + LPMONITORINFO lpmi); + + + + + + +typedef BOOL (__stdcall* MONITORENUMPROC)(HMONITOR, HDC, LPRECT, LPARAM); + +__declspec(dllimport) +BOOL +__stdcall +EnumDisplayMonitors( + HDC hdc, + LPCRECT lprcClip, + MONITORENUMPROC lpfnEnum, + LPARAM dwData); +# 13236 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +void +__stdcall +NotifyWinEvent( + DWORD event, + HWND hwnd, + LONG idObject, + LONG idChild); + +typedef void (__stdcall* WINEVENTPROC)( + HWINEVENTHOOK hWinEventHook, + DWORD event, + HWND hwnd, + LONG idObject, + LONG idChild, + DWORD idEventThread, + DWORD dwmsEventTime); + +__declspec(dllimport) +HWINEVENTHOOK +__stdcall +SetWinEventHook( + DWORD eventMin, + DWORD eventMax, + HMODULE hmodWinEventProc, + WINEVENTPROC pfnWinEventProc, + DWORD idProcess, + DWORD idThread, + DWORD dwFlags); + + +__declspec(dllimport) +BOOL +__stdcall +IsWinEventHookInstalled( + DWORD event); +# 13288 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +UnhookWinEvent( + HWINEVENTHOOK hWinEventHook); +# 13906 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagGUITHREADINFO +{ + DWORD cbSize; + DWORD flags; + HWND hwndActive; + HWND hwndFocus; + HWND hwndCapture; + HWND hwndMenuOwner; + HWND hwndMoveSize; + HWND hwndCaret; + RECT rcCaret; +} GUITHREADINFO, *PGUITHREADINFO, * LPGUITHREADINFO; +# 13938 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +GetGUIThreadInfo( + DWORD idThread, + PGUITHREADINFO pgui); + +__declspec(dllimport) +BOOL +__stdcall +BlockInput( + BOOL fBlockIt); + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetProcessDPIAware( + void); + +__declspec(dllimport) +BOOL +__stdcall +IsProcessDPIAware( + void); + + + + +__declspec(dllimport) +DPI_AWARENESS_CONTEXT +__stdcall +SetThreadDpiAwarenessContext( + DPI_AWARENESS_CONTEXT dpiContext); + +__declspec(dllimport) +DPI_AWARENESS_CONTEXT +__stdcall +GetThreadDpiAwarenessContext(); + +__declspec(dllimport) +DPI_AWARENESS_CONTEXT +__stdcall +GetWindowDpiAwarenessContext( + HWND hwnd); + +__declspec(dllimport) +DPI_AWARENESS +__stdcall +GetAwarenessFromDpiAwarenessContext( + DPI_AWARENESS_CONTEXT value); + +__declspec(dllimport) +BOOL +__stdcall +AreDpiAwarenessContextsEqual( + DPI_AWARENESS_CONTEXT dpiContextA, + DPI_AWARENESS_CONTEXT dpiContextB); + +__declspec(dllimport) +BOOL +__stdcall +IsValidDpiAwarenessContext( + DPI_AWARENESS_CONTEXT value); + +__declspec(dllimport) +UINT +__stdcall +GetDpiForWindow( + HWND hwnd); + +__declspec(dllimport) +UINT +__stdcall +GetDpiForSystem(); + +__declspec(dllimport) +BOOL +__stdcall +EnableNonClientDpiScaling( + HWND hwnd); + +__declspec(dllimport) +BOOL +__stdcall +InheritWindowMonitor( + HWND hwnd, + HWND hwndInherit); + + + + +__declspec(dllimport) +UINT +__stdcall +GetWindowModuleFileNameA( + HWND hwnd, + LPSTR pszFileName, + UINT cchFileNameMax); +__declspec(dllimport) +UINT +__stdcall +GetWindowModuleFileNameW( + HWND hwnd, + LPWSTR pszFileName, + UINT cchFileNameMax); +# 14100 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagCURSORINFO +{ + DWORD cbSize; + DWORD flags; + HCURSOR hCursor; + POINT ptScreenPos; +} CURSORINFO, *PCURSORINFO, *LPCURSORINFO; + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetCursorInfo( + PCURSORINFO pci); + + + + +typedef struct tagWINDOWINFO +{ + DWORD cbSize; + RECT rcWindow; + RECT rcClient; + DWORD dwStyle; + DWORD dwExStyle; + DWORD dwWindowStatus; + UINT cxWindowBorders; + UINT cyWindowBorders; + ATOM atomWindowType; + WORD wCreatorVersion; +} WINDOWINFO, *PWINDOWINFO, *LPWINDOWINFO; + + + +__declspec(dllimport) +BOOL +__stdcall +GetWindowInfo( + HWND hwnd, + PWINDOWINFO pwi); + + + + +typedef struct tagTITLEBARINFO +{ + DWORD cbSize; + RECT rcTitleBar; + DWORD rgstate[5 + 1]; +} TITLEBARINFO, *PTITLEBARINFO, *LPTITLEBARINFO; + +__declspec(dllimport) +BOOL +__stdcall +GetTitleBarInfo( + HWND hwnd, + PTITLEBARINFO pti); + + +typedef struct tagTITLEBARINFOEX +{ + DWORD cbSize; + RECT rcTitleBar; + DWORD rgstate[5 + 1]; + RECT rgrect[5 + 1]; +} TITLEBARINFOEX, *PTITLEBARINFOEX, *LPTITLEBARINFOEX; + + + + + +typedef struct tagMENUBARINFO +{ + DWORD cbSize; + RECT rcBar; + HMENU hMenu; + HWND hwndMenu; + BOOL fBarFocused:1; + BOOL fFocused:1; +} MENUBARINFO, *PMENUBARINFO, *LPMENUBARINFO; + +__declspec(dllimport) +BOOL +__stdcall +GetMenuBarInfo( + HWND hwnd, + LONG idObject, + LONG idItem, + PMENUBARINFO pmbi); + + + + +typedef struct tagSCROLLBARINFO +{ + DWORD cbSize; + RECT rcScrollBar; + int dxyLineButton; + int xyThumbTop; + int xyThumbBottom; + int reserved; + DWORD rgstate[5 + 1]; +} SCROLLBARINFO, *PSCROLLBARINFO, *LPSCROLLBARINFO; + +__declspec(dllimport) +BOOL +__stdcall +GetScrollBarInfo( + HWND hwnd, + LONG idObject, + PSCROLLBARINFO psbi); + + + + +typedef struct tagCOMBOBOXINFO +{ + DWORD cbSize; + RECT rcItem; + RECT rcButton; + DWORD stateButton; + HWND hwndCombo; + HWND hwndItem; + HWND hwndList; +} COMBOBOXINFO, *PCOMBOBOXINFO, *LPCOMBOBOXINFO; + +__declspec(dllimport) +BOOL +__stdcall +GetComboBoxInfo( + HWND hwndCombo, + PCOMBOBOXINFO pcbi); +# 14250 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HWND +__stdcall +GetAncestor( + HWND hwnd, + UINT gaFlags); +# 14264 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +HWND +__stdcall +RealChildWindowFromPoint( + HWND hwndParent, + POINT ptParentClientCoords); + + + + + + +__declspec(dllimport) +UINT +__stdcall +RealGetWindowClassA( + HWND hwnd, + LPSTR ptszClassName, + UINT cchClassNameMax); + + + + +__declspec(dllimport) +UINT +__stdcall +RealGetWindowClassW( + HWND hwnd, + LPWSTR ptszClassName, + UINT cchClassNameMax); +# 14303 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagALTTABINFO +{ + DWORD cbSize; + int cItems; + int cColumns; + int cRows; + int iColFocus; + int iRowFocus; + int cxItem; + int cyItem; + POINT ptStart; +} ALTTABINFO, *PALTTABINFO, *LPALTTABINFO; + +__declspec(dllimport) +BOOL +__stdcall +GetAltTabInfoA( + HWND hwnd, + int iItem, + PALTTABINFO pati, + LPSTR pszItemText, + UINT cchItemText); +__declspec(dllimport) +BOOL +__stdcall +GetAltTabInfoW( + HWND hwnd, + int iItem, + PALTTABINFO pati, + LPWSTR pszItemText, + UINT cchItemText); +# 14344 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +DWORD +__stdcall +GetListBoxInfo( + HWND hwnd); +# 14361 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +LockWorkStation( + void); + + + + +__declspec(dllimport) +BOOL +__stdcall +UserHandleGrantAccess( + HANDLE hUserHandle, + HANDLE hJob, + BOOL bGrant); +# 14392 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +struct HRAWINPUT__{int unused;}; typedef struct HRAWINPUT__ *HRAWINPUT; +# 14425 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagRAWINPUTHEADER { + DWORD dwType; + DWORD dwSize; + HANDLE hDevice; + WPARAM wParam; +} RAWINPUTHEADER, *PRAWINPUTHEADER, *LPRAWINPUTHEADER; +# 14448 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +#pragma warning(push) + +#pragma warning(disable: 4201) + + + + +typedef struct tagRAWMOUSE { + + + + USHORT usFlags; + + + + + union { + ULONG ulButtons; + struct { + USHORT usButtonFlags; + USHORT usButtonData; + } ; + } ; + + + + + + ULONG ulRawButtons; + + + + + LONG lLastX; + + + + + LONG lLastY; + + + + + ULONG ulExtraInformation; + +} RAWMOUSE, *PRAWMOUSE, *LPRAWMOUSE; + + +#pragma warning(pop) +# 14551 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagRAWKEYBOARD { + + + + USHORT MakeCode; + + + + + + USHORT Flags; + + USHORT Reserved; + + + + + USHORT VKey; + UINT Message; + + + + + ULONG ExtraInformation; + + +} RAWKEYBOARD, *PRAWKEYBOARD, *LPRAWKEYBOARD; +# 14604 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagRAWHID { + DWORD dwSizeHid; + DWORD dwCount; + BYTE bRawData[1]; +} RAWHID, *PRAWHID, *LPRAWHID; +# 14620 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagRAWINPUT { + RAWINPUTHEADER header; + union { + RAWMOUSE mouse; + RAWKEYBOARD keyboard; + RAWHID hid; + } data; +} RAWINPUT, *PRAWINPUT, *LPRAWINPUT; +# 14650 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +UINT +__stdcall +GetRawInputData( + HRAWINPUT hRawInput, + UINT uiCommand, + LPVOID pData, + PUINT pcbSize, + UINT cbSizeHeader); +# 14673 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagRID_DEVICE_INFO_MOUSE { + DWORD dwId; + DWORD dwNumberOfButtons; + DWORD dwSampleRate; + BOOL fHasHorizontalWheel; +} RID_DEVICE_INFO_MOUSE, *PRID_DEVICE_INFO_MOUSE; + +typedef struct tagRID_DEVICE_INFO_KEYBOARD { + DWORD dwType; + DWORD dwSubType; + DWORD dwKeyboardMode; + DWORD dwNumberOfFunctionKeys; + DWORD dwNumberOfIndicators; + DWORD dwNumberOfKeysTotal; +} RID_DEVICE_INFO_KEYBOARD, *PRID_DEVICE_INFO_KEYBOARD; + +typedef struct tagRID_DEVICE_INFO_HID { + DWORD dwVendorId; + DWORD dwProductId; + DWORD dwVersionNumber; + + + + + USHORT usUsagePage; + USHORT usUsage; +} RID_DEVICE_INFO_HID, *PRID_DEVICE_INFO_HID; + +typedef struct tagRID_DEVICE_INFO { + DWORD cbSize; + DWORD dwType; + union { + RID_DEVICE_INFO_MOUSE mouse; + RID_DEVICE_INFO_KEYBOARD keyboard; + RID_DEVICE_INFO_HID hid; + } ; +} RID_DEVICE_INFO, *PRID_DEVICE_INFO, *LPRID_DEVICE_INFO; + +__declspec(dllimport) +UINT +__stdcall +GetRawInputDeviceInfoA( + HANDLE hDevice, + UINT uiCommand, + LPVOID pData, + PUINT pcbSize); +__declspec(dllimport) +UINT +__stdcall +GetRawInputDeviceInfoW( + HANDLE hDevice, + UINT uiCommand, + LPVOID pData, + PUINT pcbSize); +# 14737 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +UINT +__stdcall +GetRawInputBuffer( + PRAWINPUT pData, + PUINT pcbSize, + UINT cbSizeHeader); + + + + +typedef struct tagRAWINPUTDEVICE { + USHORT usUsagePage; + USHORT usUsage; + DWORD dwFlags; + HWND hwndTarget; +} RAWINPUTDEVICE, *PRAWINPUTDEVICE, *LPRAWINPUTDEVICE; + +typedef const RAWINPUTDEVICE* PCRAWINPUTDEVICE; +# 14793 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +RegisterRawInputDevices( + PCRAWINPUTDEVICE pRawInputDevices, + UINT uiNumDevices, + UINT cbSize); + +__declspec(dllimport) +UINT +__stdcall +GetRegisteredRawInputDevices( + PRAWINPUTDEVICE pRawInputDevices, + PUINT puiNumDevices, + UINT cbSize); + + +typedef struct tagRAWINPUTDEVICELIST { + HANDLE hDevice; + DWORD dwType; +} RAWINPUTDEVICELIST, *PRAWINPUTDEVICELIST; + +__declspec(dllimport) +UINT +__stdcall +GetRawInputDeviceList( + PRAWINPUTDEVICELIST pRawInputDeviceList, + PUINT puiNumDevices, + UINT cbSize); + +__declspec(dllimport) +LRESULT +__stdcall +DefRawInputProc( + PRAWINPUT* paRawInput, + INT nInput, + UINT cbSizeHeader); +# 14859 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef enum tagPOINTER_DEVICE_TYPE { + POINTER_DEVICE_TYPE_INTEGRATED_PEN = 0x00000001, + POINTER_DEVICE_TYPE_EXTERNAL_PEN = 0x00000002, + POINTER_DEVICE_TYPE_TOUCH = 0x00000003, + + POINTER_DEVICE_TYPE_TOUCH_PAD = 0x00000004, + + POINTER_DEVICE_TYPE_MAX = 0xFFFFFFFF +} POINTER_DEVICE_TYPE; + +typedef struct tagPOINTER_DEVICE_INFO { + DWORD displayOrientation; + HANDLE device; + POINTER_DEVICE_TYPE pointerDeviceType; + HMONITOR monitor; + ULONG startingCursorId; + USHORT maxActiveContacts; + WCHAR productString[520]; +} POINTER_DEVICE_INFO; + +typedef struct tagPOINTER_DEVICE_PROPERTY { + INT32 logicalMin; + INT32 logicalMax; + INT32 physicalMin; + INT32 physicalMax; + UINT32 unit; + UINT32 unitExponent; + USHORT usagePageId; + USHORT usageId; +} POINTER_DEVICE_PROPERTY; + +typedef enum tagPOINTER_DEVICE_CURSOR_TYPE { + POINTER_DEVICE_CURSOR_TYPE_UNKNOWN = 0x00000000, + POINTER_DEVICE_CURSOR_TYPE_TIP = 0x00000001, + POINTER_DEVICE_CURSOR_TYPE_ERASER = 0x00000002, + POINTER_DEVICE_CURSOR_TYPE_MAX = 0xFFFFFFFF +} POINTER_DEVICE_CURSOR_TYPE; + +typedef struct tagPOINTER_DEVICE_CURSOR_INFO { + UINT32 cursorId; + POINTER_DEVICE_CURSOR_TYPE cursor; +} POINTER_DEVICE_CURSOR_INFO; + +__declspec(dllimport) +BOOL +__stdcall +GetPointerDevices( + UINT32* deviceCount, + POINTER_DEVICE_INFO *pointerDevices); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerDevice( + HANDLE device, + POINTER_DEVICE_INFO *pointerDevice); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerDeviceProperties( + HANDLE device, + UINT32* propertyCount, + POINTER_DEVICE_PROPERTY *pointerProperties); + +__declspec(dllimport) +BOOL +__stdcall +RegisterPointerDeviceNotifications( + HWND window, + BOOL notifyRange); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerDeviceRects( + HANDLE device, + RECT* pointerDeviceRect, + RECT* displayRect); + +__declspec(dllimport) +BOOL +__stdcall +GetPointerDeviceCursors( + HANDLE device, + UINT32* cursorCount, + POINTER_DEVICE_CURSOR_INFO *deviceCursors); + +__declspec(dllimport) +BOOL +__stdcall +GetRawPointerDeviceData( + UINT32 pointerId, + UINT32 historyCount, + UINT32 propertiesCount, + POINTER_DEVICE_PROPERTY* pProperties, + LONG* pValues); +# 14976 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +ChangeWindowMessageFilter( + UINT message, + DWORD dwFlag); +# 15001 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagCHANGEFILTERSTRUCT { + DWORD cbSize; + DWORD ExtStatus; +} CHANGEFILTERSTRUCT, *PCHANGEFILTERSTRUCT; +# 15019 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +ChangeWindowMessageFilterEx( + HWND hwnd, + UINT message, + DWORD action, + PCHANGEFILTERSTRUCT pChangeFilterStruct); +# 15048 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +struct HGESTUREINFO__{int unused;}; typedef struct HGESTUREINFO__ *HGESTUREINFO; +# 15083 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagGESTUREINFO { + UINT cbSize; + DWORD dwFlags; + DWORD dwID; + HWND hwndTarget; + POINTS ptsLocation; + DWORD dwInstanceID; + DWORD dwSequenceID; + ULONGLONG ullArguments; + UINT cbExtraArgs; +} GESTUREINFO, *PGESTUREINFO; +typedef GESTUREINFO const * PCGESTUREINFO; +# 15104 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagGESTURENOTIFYSTRUCT { + UINT cbSize; + DWORD dwFlags; + HWND hwndTarget; + POINTS ptsLocation; + DWORD dwInstanceID; +} GESTURENOTIFYSTRUCT, *PGESTURENOTIFYSTRUCT; +# 15124 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +GetGestureInfo( + HGESTUREINFO hGestureInfo, + PGESTUREINFO pGestureInfo); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetGestureExtraArgs( + HGESTUREINFO hGestureInfo, + UINT cbExtraArgs, + PBYTE pExtraArgs); +# 15155 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +CloseGestureInfoHandle( + HGESTUREINFO hGestureInfo); +# 15169 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef struct tagGESTURECONFIG { + DWORD dwID; + DWORD dwWant; + DWORD dwBlock; +} GESTURECONFIG, *PGESTURECONFIG; +# 15223 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +SetGestureConfig( + HWND hwnd, + DWORD dwReserved, + UINT cIDs, + PGESTURECONFIG pGestureConfig, + + UINT cbSize); + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetGestureConfig( + HWND hwnd, + DWORD dwReserved, + DWORD dwFlags, + PUINT pcIDs, + + PGESTURECONFIG pGestureConfig, + + UINT cbSize); +# 15278 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +ShutdownBlockReasonCreate( + HWND hWnd, + LPCWSTR pwszReason); + +__declspec(dllimport) +BOOL +__stdcall +ShutdownBlockReasonQuery( + HWND hWnd, + LPWSTR pwszBuff, + DWORD *pcchBuff); + +__declspec(dllimport) +BOOL +__stdcall +ShutdownBlockReasonDestroy( + HWND hWnd); +# 15311 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef enum tagINPUT_MESSAGE_DEVICE_TYPE { + IMDT_UNAVAILABLE = 0x00000000, + IMDT_KEYBOARD = 0x00000001, + IMDT_MOUSE = 0x00000002, + IMDT_TOUCH = 0x00000004, + IMDT_PEN = 0x00000008, + + IMDT_TOUCHPAD = 0x00000010, + + } INPUT_MESSAGE_DEVICE_TYPE; + +typedef enum tagINPUT_MESSAGE_ORIGIN_ID { + IMO_UNAVAILABLE = 0x00000000, + IMO_HARDWARE = 0x00000001, + IMO_INJECTED = 0x00000002, + IMO_SYSTEM = 0x00000004, +} INPUT_MESSAGE_ORIGIN_ID; + + + + + typedef struct tagINPUT_MESSAGE_SOURCE { + INPUT_MESSAGE_DEVICE_TYPE deviceType; + INPUT_MESSAGE_ORIGIN_ID originId; + } INPUT_MESSAGE_SOURCE; + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetCurrentInputMessageSource( + INPUT_MESSAGE_SOURCE *inputMessageSource); + +__declspec(dllimport) +BOOL +__stdcall +GetCIMSSM( + INPUT_MESSAGE_SOURCE *inputMessageSource); +# 15366 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef enum tagAR_STATE { + AR_ENABLED = 0x0, + AR_DISABLED = 0x1, + AR_SUPPRESSED = 0x2, + AR_REMOTESESSION = 0x4, + AR_MULTIMON = 0x8, + AR_NOSENSOR = 0x10, + AR_NOT_SUPPORTED = 0x20, + AR_DOCKED = 0x40, + AR_LAPTOP = 0x80 +} AR_STATE, *PAR_STATE; +# 15385 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +extern "C++" { inline constexpr AR_STATE operator | (AR_STATE a, AR_STATE b) throw() { return AR_STATE(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline AR_STATE &operator |= (AR_STATE &a, AR_STATE b) throw() { return (AR_STATE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr AR_STATE operator & (AR_STATE a, AR_STATE b) throw() { return AR_STATE(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline AR_STATE &operator &= (AR_STATE &a, AR_STATE b) throw() { return (AR_STATE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr AR_STATE operator ~ (AR_STATE a) throw() { return AR_STATE(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr AR_STATE operator ^ (AR_STATE a, AR_STATE b) throw() { return AR_STATE(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline AR_STATE &operator ^= (AR_STATE &a, AR_STATE b) throw() { return (AR_STATE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } } +# 15395 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +typedef enum ORIENTATION_PREFERENCE { + ORIENTATION_PREFERENCE_NONE = 0x0, + ORIENTATION_PREFERENCE_LANDSCAPE = 0x1, + ORIENTATION_PREFERENCE_PORTRAIT = 0x2, + ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED = 0x4, + ORIENTATION_PREFERENCE_PORTRAIT_FLIPPED = 0x8 +} ORIENTATION_PREFERENCE; + + + + + + +extern "C++" { inline constexpr ORIENTATION_PREFERENCE operator | (ORIENTATION_PREFERENCE a, ORIENTATION_PREFERENCE b) throw() { return ORIENTATION_PREFERENCE(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline ORIENTATION_PREFERENCE &operator |= (ORIENTATION_PREFERENCE &a, ORIENTATION_PREFERENCE b) throw() { return (ORIENTATION_PREFERENCE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr ORIENTATION_PREFERENCE operator & (ORIENTATION_PREFERENCE a, ORIENTATION_PREFERENCE b) throw() { return ORIENTATION_PREFERENCE(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline ORIENTATION_PREFERENCE &operator &= (ORIENTATION_PREFERENCE &a, ORIENTATION_PREFERENCE b) throw() { return (ORIENTATION_PREFERENCE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr ORIENTATION_PREFERENCE operator ~ (ORIENTATION_PREFERENCE a) throw() { return ORIENTATION_PREFERENCE(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr ORIENTATION_PREFERENCE operator ^ (ORIENTATION_PREFERENCE a, ORIENTATION_PREFERENCE b) throw() { return ORIENTATION_PREFERENCE(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline ORIENTATION_PREFERENCE &operator ^= (ORIENTATION_PREFERENCE &a, ORIENTATION_PREFERENCE b) throw() { return (ORIENTATION_PREFERENCE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } } + + +__declspec(dllimport) +BOOL +__stdcall +GetAutoRotationState( + PAR_STATE pState); + +__declspec(dllimport) +BOOL +__stdcall +GetDisplayAutoRotationPreferences( + ORIENTATION_PREFERENCE *pOrientation); + +__declspec(dllimport) +BOOL +__stdcall +GetDisplayAutoRotationPreferencesByProcessId( + DWORD dwProcessId, + ORIENTATION_PREFERENCE *pOrientation, + BOOL *fRotateScreen); + +__declspec(dllimport) +BOOL +__stdcall +SetDisplayAutoRotationPreferences( + ORIENTATION_PREFERENCE orientation); +# 15448 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +__declspec(dllimport) +BOOL +__stdcall +IsImmersiveProcess( + HANDLE hProcess); + +__declspec(dllimport) +BOOL +__stdcall +SetProcessRestrictionExemption( + BOOL fEnableExemption); +# 15474 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +#pragma warning(pop) +# 15485 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winuser.h" +} +# 171 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\Windows.h" 2 + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +extern "C" { + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\datetimeapi.h" 1 +# 45 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\datetimeapi.h" +extern "C" { +# 59 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\datetimeapi.h" +__declspec(dllimport) +int +__stdcall +GetDateFormatA( + LCID Locale, + DWORD dwFlags, + const SYSTEMTIME * lpDate, + LPCSTR lpFormat, + LPSTR lpDateStr, + int cchDate + ); + + +__declspec(dllimport) +int +__stdcall +GetDateFormatW( + LCID Locale, + DWORD dwFlags, + const SYSTEMTIME * lpDate, + LPCWSTR lpFormat, + LPWSTR lpDateStr, + int cchDate + ); +# 92 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\datetimeapi.h" +__declspec(dllimport) +int +__stdcall +GetTimeFormatA( + LCID Locale, + DWORD dwFlags, + const SYSTEMTIME * lpTime, + LPCSTR lpFormat, + LPSTR lpTimeStr, + int cchTime + ); + + +__declspec(dllimport) +int +__stdcall +GetTimeFormatW( + LCID Locale, + DWORD dwFlags, + const SYSTEMTIME * lpTime, + LPCWSTR lpFormat, + LPWSTR lpTimeStr, + int cchTime + ); +# 137 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\datetimeapi.h" +__declspec(dllimport) +int +__stdcall +GetTimeFormatEx( + LPCWSTR lpLocaleName, + DWORD dwFlags, + const SYSTEMTIME * lpTime, + LPCWSTR lpFormat, + LPWSTR lpTimeStr, + int cchTime + ); + + +__declspec(dllimport) +int +__stdcall +GetDateFormatEx( + LPCWSTR lpLocaleName, + DWORD dwFlags, + const SYSTEMTIME * lpDate, + LPCWSTR lpFormat, + LPWSTR lpDateStr, + int cchDate, + LPCWSTR lpCalendar + ); +# 181 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\datetimeapi.h" +__declspec(dllimport) +int +__stdcall +GetDurationFormatEx( + LPCWSTR lpLocaleName, + DWORD dwFlags, + const SYSTEMTIME * lpDuration, + ULONGLONG ullDuration, + LPCWSTR lpFormat, + LPWSTR lpDurationStr, + int cchDuration + ); +# 207 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\datetimeapi.h" +} +# 30 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" 2 + + + + + + +#pragma warning(push) +#pragma warning(disable: 4820) +# 952 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +typedef DWORD LGRPID; + + + + +typedef DWORD LCTYPE; + + + + +typedef DWORD CALTYPE; + + + + + +typedef DWORD CALID; + + + + + + +typedef struct _cpinfo { + UINT MaxCharSize; + BYTE DefaultChar[2]; + BYTE LeadByte[12]; +} CPINFO, *LPCPINFO; + +typedef struct _cpinfoexA { + UINT MaxCharSize; + BYTE DefaultChar[2]; + BYTE LeadByte[12]; + WCHAR UnicodeDefaultChar; + UINT CodePage; + CHAR CodePageName[260]; +} CPINFOEXA, *LPCPINFOEXA; +typedef struct _cpinfoexW { + UINT MaxCharSize; + BYTE DefaultChar[2]; + BYTE LeadByte[12]; + WCHAR UnicodeDefaultChar; + UINT CodePage; + WCHAR CodePageName[260]; +} CPINFOEXW, *LPCPINFOEXW; + +typedef CPINFOEXW CPINFOEX; +typedef LPCPINFOEXW LPCPINFOEX; +# 1010 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +typedef struct _numberfmtA { + UINT NumDigits; + UINT LeadingZero; + UINT Grouping; + LPSTR lpDecimalSep; + LPSTR lpThousandSep; + UINT NegativeOrder; +} NUMBERFMTA, *LPNUMBERFMTA; +typedef struct _numberfmtW { + UINT NumDigits; + UINT LeadingZero; + UINT Grouping; + LPWSTR lpDecimalSep; + LPWSTR lpThousandSep; + UINT NegativeOrder; +} NUMBERFMTW, *LPNUMBERFMTW; + +typedef NUMBERFMTW NUMBERFMT; +typedef LPNUMBERFMTW LPNUMBERFMT; +# 1039 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +typedef struct _currencyfmtA { + UINT NumDigits; + UINT LeadingZero; + UINT Grouping; + LPSTR lpDecimalSep; + LPSTR lpThousandSep; + UINT NegativeOrder; + UINT PositiveOrder; + LPSTR lpCurrencySymbol; +} CURRENCYFMTA, *LPCURRENCYFMTA; +typedef struct _currencyfmtW { + UINT NumDigits; + UINT LeadingZero; + UINT Grouping; + LPWSTR lpDecimalSep; + LPWSTR lpThousandSep; + UINT NegativeOrder; + UINT PositiveOrder; + LPWSTR lpCurrencySymbol; +} CURRENCYFMTW, *LPCURRENCYFMTW; + +typedef CURRENCYFMTW CURRENCYFMT; +typedef LPCURRENCYFMTW LPCURRENCYFMT; +# 1071 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +enum SYSNLS_FUNCTION{ + COMPARE_STRING = 0x0001, +}; +typedef DWORD NLS_FUNCTION; +# 1089 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +typedef struct _nlsversioninfo{ + DWORD dwNLSVersionInfoSize; + DWORD dwNLSVersion; + DWORD dwDefinedVersion; + DWORD dwEffectiveId; + GUID guidCustomVersion; +} NLSVERSIONINFO, *LPNLSVERSIONINFO; +# 1114 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +typedef struct _nlsversioninfoex{ + DWORD dwNLSVersionInfoSize; + DWORD dwNLSVersion; + DWORD dwDefinedVersion; + DWORD dwEffectiveId; + GUID guidCustomVersion; +} NLSVERSIONINFOEX, *LPNLSVERSIONINFOEX; + + + + + +typedef LONG GEOID; +typedef DWORD GEOTYPE; +typedef DWORD GEOCLASS; + + + + + + + +enum SYSGEOTYPE { + GEO_NATION = 0x0001, + GEO_LATITUDE = 0x0002, + GEO_LONGITUDE = 0x0003, + GEO_ISO2 = 0x0004, + GEO_ISO3 = 0x0005, + GEO_RFC1766 = 0x0006, + GEO_LCID = 0x0007, + GEO_FRIENDLYNAME= 0x0008, + GEO_OFFICIALNAME= 0x0009, + GEO_TIMEZONES = 0x000A, + GEO_OFFICIALLANGUAGES = 0x000B, + GEO_ISO_UN_NUMBER = 0x000C, + GEO_PARENT = 0x000D, + GEO_DIALINGCODE = 0x000E, + GEO_CURRENCYCODE= 0x000F, + GEO_CURRENCYSYMBOL= 0x0010 +}; + + + + + +enum SYSGEOCLASS { + GEOCLASS_NATION = 16, + GEOCLASS_REGION = 14, + GEOCLASS_ALL = 0 +}; + + + + + + +typedef enum _NORM_FORM { + NormalizationOther = 0, + NormalizationC = 0x1, + NormalizationD = 0x2, + NormalizationKC = 0x5, + + NormalizationKD = 0x6 + +} NORM_FORM; +# 1200 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +typedef BOOL (__stdcall* LANGUAGEGROUP_ENUMPROCA)(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR); +typedef BOOL (__stdcall* LANGGROUPLOCALE_ENUMPROCA)(LGRPID, LCID, LPSTR, LONG_PTR); +typedef BOOL (__stdcall* UILANGUAGE_ENUMPROCA)(LPSTR, LONG_PTR); +typedef BOOL (__stdcall* CODEPAGE_ENUMPROCA)(LPSTR); +typedef BOOL (__stdcall* DATEFMT_ENUMPROCA)(LPSTR); +typedef BOOL (__stdcall* DATEFMT_ENUMPROCEXA)(LPSTR, CALID); +typedef BOOL (__stdcall* TIMEFMT_ENUMPROCA)(LPSTR); +typedef BOOL (__stdcall* CALINFO_ENUMPROCA)(LPSTR); +typedef BOOL (__stdcall* CALINFO_ENUMPROCEXA)(LPSTR, CALID); +typedef BOOL (__stdcall* LOCALE_ENUMPROCA)(LPSTR); +typedef BOOL (__stdcall* LOCALE_ENUMPROCW)(LPWSTR); + +typedef BOOL (__stdcall* LANGUAGEGROUP_ENUMPROCW)(LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR); +typedef BOOL (__stdcall* LANGGROUPLOCALE_ENUMPROCW)(LGRPID, LCID, LPWSTR, LONG_PTR); +typedef BOOL (__stdcall* UILANGUAGE_ENUMPROCW)(LPWSTR, LONG_PTR); +typedef BOOL (__stdcall* CODEPAGE_ENUMPROCW)(LPWSTR); +typedef BOOL (__stdcall* DATEFMT_ENUMPROCW)(LPWSTR); +typedef BOOL (__stdcall* DATEFMT_ENUMPROCEXW)(LPWSTR, CALID); +typedef BOOL (__stdcall* TIMEFMT_ENUMPROCW)(LPWSTR); +typedef BOOL (__stdcall* CALINFO_ENUMPROCW)(LPWSTR); +typedef BOOL (__stdcall* CALINFO_ENUMPROCEXW)(LPWSTR, CALID); +typedef BOOL (__stdcall* GEO_ENUMPROC)(GEOID); +# 1283 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +typedef struct _FILEMUIINFO { + DWORD dwSize; + DWORD dwVersion; + DWORD dwFileType; + BYTE pChecksum[16]; + BYTE pServiceChecksum[16]; + DWORD dwLanguageNameOffset; + DWORD dwTypeIDMainSize; + DWORD dwTypeIDMainOffset; + DWORD dwTypeNameMainOffset; + DWORD dwTypeIDMUISize; + DWORD dwTypeIDMUIOffset; + DWORD dwTypeNameMUIOffset; + BYTE abBuffer[8]; +} FILEMUIINFO, *PFILEMUIINFO; + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\stringapiset.h" 1 +# 20 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\stringapiset.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" 1 +# 20 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\stringapiset.h" 2 +# 38 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\stringapiset.h" +extern "C" { +# 48 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\stringapiset.h" +__declspec(dllimport) +int +__stdcall +CompareStringEx( + LPCWSTR lpLocaleName, + DWORD dwCmpFlags, + LPCWCH lpString1, + int cchCount1, + LPCWCH lpString2, + int cchCount2, + LPNLSVERSIONINFO lpVersionInformation, + LPVOID lpReserved, + LPARAM lParam + ); + + +__declspec(dllimport) +int +__stdcall +CompareStringOrdinal( + LPCWCH lpString1, + int cchCount1, + LPCWCH lpString2, + int cchCount2, + BOOL bIgnoreCase + ); +# 85 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\stringapiset.h" +__declspec(dllimport) +int +__stdcall +CompareStringW( + LCID Locale, + DWORD dwCmpFlags, + PCNZWCH lpString1, + int cchCount1, + PCNZWCH lpString2, + int cchCount2 + ); + + + + + +__declspec(dllimport) +int +__stdcall +FoldStringW( + DWORD dwMapFlags, + LPCWCH lpSrcStr, + int cchSrc, + LPWSTR lpDestStr, + int cchDest + ); +# 123 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\stringapiset.h" +__declspec(dllimport) +BOOL +__stdcall +GetStringTypeExW( + LCID Locale, + DWORD dwInfoType, + LPCWCH lpSrcStr, + int cchSrc, + LPWORD lpCharType + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetStringTypeW( + DWORD dwInfoType, + LPCWCH lpSrcStr, + int cchSrc, + LPWORD lpCharType + ); + + + + + + + +__declspec(dllimport) + + +int +__stdcall +MultiByteToWideChar( + UINT CodePage, + DWORD dwFlags, + LPCCH lpMultiByteStr, + int cbMultiByte, + LPWSTR lpWideCharStr, + int cchWideChar + ); + + +__declspec(dllimport) + + +int +__stdcall +WideCharToMultiByte( + UINT CodePage, + DWORD dwFlags, + LPCWCH lpWideCharStr, + int cchWideChar, + LPSTR lpMultiByteStr, + int cbMultiByte, + LPCCH lpDefaultChar, + LPBOOL lpUsedDefaultChar + ); + + + + + + +} +# 1300 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" 2 +# 1366 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +BOOL +__stdcall +IsValidCodePage( + UINT CodePage); + + + + + + + +__declspec(dllimport) +UINT +__stdcall +GetACP(void); + +__declspec(dllimport) +UINT +__stdcall +GetOEMCP(void); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetCPInfo( + UINT CodePage, + LPCPINFO lpCPInfo); + +__declspec(dllimport) +BOOL +__stdcall +GetCPInfoExA( + UINT CodePage, + DWORD dwFlags, + LPCPINFOEXA lpCPInfoEx); +__declspec(dllimport) +BOOL +__stdcall +GetCPInfoExW( + UINT CodePage, + DWORD dwFlags, + LPCPINFOEXW lpCPInfoEx); +# 1432 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +int +__stdcall +CompareStringA( + LCID Locale, + DWORD dwCmpFlags, + PCNZCH lpString1, + int cchCount1, + PCNZCH lpString2, + int cchCount2); +# 1478 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +int +__stdcall +FindNLSString( + LCID Locale, + DWORD dwFindNLSStringFlags, + LPCWSTR lpStringSource, + int cchSource, + LPCWSTR lpStringValue, + int cchValue, + LPINT pcchFound); + + + + +__declspec(dllimport) +int +__stdcall +LCMapStringW( + LCID Locale, + DWORD dwMapFlags, + LPCWSTR lpSrcStr, + int cchSrc, + LPWSTR lpDestStr, + int cchDest); + + + + +__declspec(dllimport) +int +__stdcall +LCMapStringA( + LCID Locale, + DWORD dwMapFlags, + LPCSTR lpSrcStr, + int cchSrc, + LPSTR lpDestStr, + int cchDest); + + + + + + +__declspec(dllimport) +int +__stdcall +GetLocaleInfoW( + LCID Locale, + LCTYPE LCType, + LPWSTR lpLCData, + int cchData); + + + + + +__declspec(dllimport) +int +__stdcall +GetLocaleInfoA( + LCID Locale, + LCTYPE LCType, + LPSTR lpLCData, + int cchData + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetLocaleInfoA( + LCID Locale, + LCTYPE LCType, + LPCSTR lpLCData); +__declspec(dllimport) +BOOL +__stdcall +SetLocaleInfoW( + LCID Locale, + LCTYPE LCType, + LPCWSTR lpLCData); +# 1573 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +int +__stdcall +GetCalendarInfoA( + LCID Locale, + CALID Calendar, + CALTYPE CalType, + LPSTR lpCalData, + int cchData, + LPDWORD lpValue); + +__declspec(dllimport) +int +__stdcall +GetCalendarInfoW( + LCID Locale, + CALID Calendar, + CALTYPE CalType, + LPWSTR lpCalData, + int cchData, + LPDWORD lpValue); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetCalendarInfoA( + LCID Locale, + CALID Calendar, + CALTYPE CalType, + LPCSTR lpCalData); +__declspec(dllimport) +BOOL +__stdcall +SetCalendarInfoW( + LCID Locale, + CALID Calendar, + CALTYPE CalType, + LPCWSTR lpCalData); +# 1639 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +BOOL +__stdcall +LoadStringByReference( + DWORD Flags, + PCWSTR Language, + PCWSTR SourceString, + PWSTR Buffer, + ULONG cchBuffer, + PCWSTR Directory, + PULONG pcchBufferOut + ); +# 1660 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +BOOL +__stdcall +IsDBCSLeadByte( + BYTE TestChar + ); + +__declspec(dllimport) +BOOL +__stdcall +IsDBCSLeadByteEx( + UINT CodePage, + BYTE TestChar + ); +# 1682 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +int +__stdcall +LCIDToLocaleName( + LCID Locale, + LPWSTR lpName, + int cchName, + DWORD dwFlags); + +__declspec(dllimport) +LCID +__stdcall +LocaleNameToLCID( + LPCWSTR lpName, + DWORD dwFlags); +# 1708 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +int +__stdcall +GetDurationFormat( + LCID Locale, + DWORD dwFlags, + const SYSTEMTIME *lpDuration, + ULONGLONG ullDuration, + LPCWSTR lpFormat, + LPWSTR lpDurationStr, + int cchDuration); +# 1728 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +int +__stdcall +GetNumberFormatA( + LCID Locale, + DWORD dwFlags, + LPCSTR lpValue, + const NUMBERFMTA *lpFormat, + LPSTR lpNumberStr, + int cchNumber); + +__declspec(dllimport) +int +__stdcall +GetNumberFormatW( + LCID Locale, + DWORD dwFlags, + LPCWSTR lpValue, + const NUMBERFMTW *lpFormat, + LPWSTR lpNumberStr, + int cchNumber); + + + + + + + +__declspec(dllimport) +int +__stdcall +GetCurrencyFormatA( + LCID Locale, + DWORD dwFlags, + LPCSTR lpValue, + const CURRENCYFMTA *lpFormat, + LPSTR lpCurrencyStr, + int cchCurrency); + +__declspec(dllimport) +int +__stdcall +GetCurrencyFormatW( + LCID Locale, + DWORD dwFlags, + LPCWSTR lpValue, + const CURRENCYFMTW *lpFormat, + LPWSTR lpCurrencyStr, + int cchCurrency); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +EnumCalendarInfoA( + CALINFO_ENUMPROCA lpCalInfoEnumProc, + LCID Locale, + CALID Calendar, + CALTYPE CalType); + +__declspec(dllimport) +BOOL +__stdcall +EnumCalendarInfoW( + CALINFO_ENUMPROCW lpCalInfoEnumProc, + LCID Locale, + CALID Calendar, + CALTYPE CalType); +# 1809 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +BOOL +__stdcall +EnumCalendarInfoExA( + CALINFO_ENUMPROCEXA lpCalInfoEnumProcEx, + LCID Locale, + CALID Calendar, + CALTYPE CalType); + +__declspec(dllimport) +BOOL +__stdcall +EnumCalendarInfoExW( + CALINFO_ENUMPROCEXW lpCalInfoEnumProcEx, + LCID Locale, + CALID Calendar, + CALTYPE CalType); +# 1834 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +BOOL +__stdcall +EnumTimeFormatsA( + TIMEFMT_ENUMPROCA lpTimeFmtEnumProc, + LCID Locale, + DWORD dwFlags); + +__declspec(dllimport) +BOOL +__stdcall +EnumTimeFormatsW( + TIMEFMT_ENUMPROCW lpTimeFmtEnumProc, + LCID Locale, + DWORD dwFlags); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +EnumDateFormatsA( + DATEFMT_ENUMPROCA lpDateFmtEnumProc, + LCID Locale, + DWORD dwFlags); + +__declspec(dllimport) +BOOL +__stdcall +EnumDateFormatsW( + DATEFMT_ENUMPROCW lpDateFmtEnumProc, + LCID Locale, + DWORD dwFlags); +# 1879 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +BOOL +__stdcall +EnumDateFormatsExA( + DATEFMT_ENUMPROCEXA lpDateFmtEnumProcEx, + LCID Locale, + DWORD dwFlags); + +__declspec(dllimport) +BOOL +__stdcall +EnumDateFormatsExW( + DATEFMT_ENUMPROCEXW lpDateFmtEnumProcEx, + LCID Locale, + DWORD dwFlags); +# 1902 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +BOOL +__stdcall +IsValidLanguageGroup( + LGRPID LanguageGroup, + DWORD dwFlags); + + + +__declspec(dllimport) +BOOL +__stdcall +GetNLSVersion( + NLS_FUNCTION Function, + LCID Locale, + LPNLSVERSIONINFO lpVersionInformation); + +__declspec(dllimport) +BOOL +__stdcall +IsNLSDefinedString( + NLS_FUNCTION Function, + DWORD dwFlags, + LPNLSVERSIONINFO lpVersionInformation, + LPCWSTR lpString, + INT cchStr); + + +__declspec(dllimport) +BOOL +__stdcall +IsValidLocale( + LCID Locale, + DWORD dwFlags); + + + + + + + +__declspec(dllimport) +int +__stdcall +GetGeoInfoA( + GEOID Location, + GEOTYPE GeoType, + LPSTR lpGeoData, + int cchData, + LANGID LangId); +__declspec(dllimport) +int +__stdcall +GetGeoInfoW( + GEOID Location, + GEOTYPE GeoType, + LPWSTR lpGeoData, + int cchData, + LANGID LangId); +# 1972 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +BOOL +__stdcall +EnumSystemGeoID( + GEOCLASS GeoClass, + GEOID ParentGeoId, + GEO_ENUMPROC lpGeoEnumProc); +# 1987 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +GEOID +__stdcall +GetUserGeoID( + GEOCLASS GeoClass); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetUserGeoID( + GEOID GeoId); + +__declspec(dllimport) +LCID +__stdcall +ConvertDefaultLocale( + LCID Locale); + +__declspec(dllimport) +LCID +__stdcall +GetThreadLocale(void); + +__declspec(dllimport) +BOOL +__stdcall +SetThreadLocale( + LCID Locale + ); + + +__declspec(dllimport) +LANGID +__stdcall +GetSystemDefaultUILanguage(void); + +__declspec(dllimport) +LANGID +__stdcall +GetUserDefaultUILanguage(void); + + +__declspec(dllimport) +LANGID +__stdcall +GetSystemDefaultLangID(void); + +__declspec(dllimport) +LANGID +__stdcall +GetUserDefaultLangID(void); + +__declspec(dllimport) +LCID +__stdcall +GetSystemDefaultLCID(void); + +__declspec(dllimport) +LCID +__stdcall +GetUserDefaultLCID(void); +# 2068 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +LANGID +__stdcall +SetThreadUILanguage( LANGID LangId); + + + + +__declspec(dllimport) +LANGID +__stdcall +GetThreadUILanguage(void); + +__declspec(dllimport) +BOOL +__stdcall +GetProcessPreferredUILanguages( + DWORD dwFlags, + PULONG pulNumLanguages, + PZZWSTR pwszLanguagesBuffer, + PULONG pcchLanguagesBuffer +); + + +__declspec(dllimport) +BOOL +__stdcall +SetProcessPreferredUILanguages( + DWORD dwFlags, + PCZZWSTR pwszLanguagesBuffer, + PULONG pulNumLanguages +); +# 2109 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +BOOL +__stdcall +GetUserPreferredUILanguages ( + DWORD dwFlags, + PULONG pulNumLanguages, + PZZWSTR pwszLanguagesBuffer, + PULONG pcchLanguagesBuffer +); +# 2129 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +BOOL +__stdcall +GetSystemPreferredUILanguages ( + DWORD dwFlags, + PULONG pulNumLanguages, + PZZWSTR pwszLanguagesBuffer, + PULONG pcchLanguagesBuffer +); + + +__declspec(dllimport) +BOOL +__stdcall +GetThreadPreferredUILanguages( + DWORD dwFlags, + PULONG pulNumLanguages, + PZZWSTR pwszLanguagesBuffer, + PULONG pcchLanguagesBuffer +); + + +__declspec(dllimport) +BOOL +__stdcall +SetThreadPreferredUILanguages( + DWORD dwFlags, + PCZZWSTR pwszLanguagesBuffer, + PULONG pulNumLanguages +); + +__declspec(dllimport) + +BOOL +__stdcall +GetFileMUIInfo( + DWORD dwFlags, + PCWSTR pcwszFilePath, + PFILEMUIINFO pFileMUIInfo, + DWORD* pcbFileMUIInfo); + +__declspec(dllimport) +BOOL +__stdcall +GetFileMUIPath( + DWORD dwFlags, + PCWSTR pcwszFilePath , + PWSTR pwszLanguage, + PULONG pcchLanguage, + PWSTR pwszFileMUIPath, + PULONG pcchFileMUIPath, + PULONGLONG pululEnumerator +); + + +__declspec(dllimport) +BOOL +__stdcall +GetUILanguageInfo( + DWORD dwFlags, + PCZZWSTR pwmszLanguage, + PZZWSTR pwszFallbackLanguages, + PDWORD pcchFallbackLanguages, + PDWORD pAttributes +); +# 2205 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +BOOL +__stdcall +NotifyUILanguageChange( + DWORD dwFlags, + PCWSTR pcwstrNewLanguage, + PCWSTR pcwstrPreviousLanguage, + DWORD dwReserved, + PDWORD pdwStatusRtrn +); +# 2229 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +BOOL +__stdcall +GetStringTypeExA( + LCID Locale, + DWORD dwInfoType, + LPCSTR lpSrcStr, + int cchSrc, + LPWORD lpCharType); +# 2259 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +BOOL +__stdcall +GetStringTypeA( + LCID Locale, + DWORD dwInfoType, + LPCSTR lpSrcStr, + int cchSrc, + LPWORD lpCharType); + +__declspec(dllimport) +int +__stdcall +FoldStringA( + DWORD dwMapFlags, + LPCSTR lpSrcStr, + int cchSrc, + LPSTR lpDestStr, + int cchDest); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +EnumSystemLocalesA( + LOCALE_ENUMPROCA lpLocaleEnumProc, + DWORD dwFlags); +__declspec(dllimport) +BOOL +__stdcall +EnumSystemLocalesW( + LOCALE_ENUMPROCW lpLocaleEnumProc, + DWORD dwFlags); +# 2306 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +BOOL +__stdcall +EnumSystemLanguageGroupsA( + LANGUAGEGROUP_ENUMPROCA lpLanguageGroupEnumProc, + DWORD dwFlags, + LONG_PTR lParam); +__declspec(dllimport) +BOOL +__stdcall +EnumSystemLanguageGroupsW( + LANGUAGEGROUP_ENUMPROCW lpLanguageGroupEnumProc, + DWORD dwFlags, + LONG_PTR lParam); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +EnumLanguageGroupLocalesA( + LANGGROUPLOCALE_ENUMPROCA lpLangGroupLocaleEnumProc, + LGRPID LanguageGroup, + DWORD dwFlags, + LONG_PTR lParam); +__declspec(dllimport) +BOOL +__stdcall +EnumLanguageGroupLocalesW( + LANGGROUPLOCALE_ENUMPROCW lpLangGroupLocaleEnumProc, + LGRPID LanguageGroup, + DWORD dwFlags, + LONG_PTR lParam); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +EnumUILanguagesA( + UILANGUAGE_ENUMPROCA lpUILanguageEnumProc, + DWORD dwFlags, + LONG_PTR lParam); +__declspec(dllimport) +BOOL +__stdcall +EnumUILanguagesW( + UILANGUAGE_ENUMPROCW lpUILanguageEnumProc, + DWORD dwFlags, + LONG_PTR lParam); +# 2375 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +BOOL +__stdcall +EnumSystemCodePagesA( + CODEPAGE_ENUMPROCA lpCodePageEnumProc, + DWORD dwFlags); +__declspec(dllimport) +BOOL +__stdcall +EnumSystemCodePagesW( + CODEPAGE_ENUMPROCW lpCodePageEnumProc, + DWORD dwFlags); +# 2405 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +int +__stdcall NormalizeString( NORM_FORM NormForm, + LPCWSTR lpSrcString, + int cwSrcLength, + LPWSTR lpDstString, + int cwDstLength ); + +__declspec(dllimport) +BOOL +__stdcall IsNormalizedString( NORM_FORM NormForm, + LPCWSTR lpString, + int cwLength ); +# 2427 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +int +__stdcall IdnToAscii( DWORD dwFlags, + LPCWSTR lpUnicodeCharStr, + int cchUnicodeChar, + LPWSTR lpASCIICharStr, + int cchASCIIChar); + + + + + +__declspec(dllimport) +int +__stdcall IdnToNameprepUnicode( DWORD dwFlags, + LPCWSTR lpUnicodeCharStr, + int cchUnicodeChar, + LPWSTR lpNameprepCharStr, + int cchNameprepChar); + + + + + +__declspec(dllimport) +int +__stdcall IdnToUnicode( DWORD dwFlags, + LPCWSTR lpASCIICharStr, + int cchASCIIChar, + LPWSTR lpUnicodeCharStr, + int cchUnicodeChar); + + + + + +__declspec(dllimport) +BOOL +__stdcall VerifyScripts( + DWORD dwFlags, + LPCWSTR lpLocaleScripts, + int cchLocaleScripts, + LPCWSTR lpTestScripts, + int cchTestScripts); + +__declspec(dllimport) +int +__stdcall GetStringScripts( + DWORD dwFlags, + LPCWSTR lpString, + int cchString, + LPWSTR lpScripts, + int cchScripts); +# 2499 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +int +__stdcall +GetLocaleInfoEx( + LPCWSTR lpLocaleName, + LCTYPE LCType, + LPWSTR lpLCData, + int cchData +); + + + + + + + +__declspec(dllimport) +int +__stdcall +GetCalendarInfoEx( + LPCWSTR lpLocaleName, + CALID Calendar, + LPCWSTR lpReserved, + CALTYPE CalType, + LPWSTR lpCalData, + int cchData, + LPDWORD lpValue +); +# 2555 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +int +__stdcall +GetNumberFormatEx( + LPCWSTR lpLocaleName, + DWORD dwFlags, + LPCWSTR lpValue, + const NUMBERFMTW *lpFormat, + LPWSTR lpNumberStr, + int cchNumber +); + +__declspec(dllimport) +int +__stdcall +GetCurrencyFormatEx( + LPCWSTR lpLocaleName, + DWORD dwFlags, + LPCWSTR lpValue, + const CURRENCYFMTW *lpFormat, + LPWSTR lpCurrencyStr, + int cchCurrency +); + +__declspec(dllimport) +int +__stdcall +GetUserDefaultLocaleName( + LPWSTR lpLocaleName, + int cchLocaleName +); + + + + + + + +__declspec(dllimport) +int +__stdcall +GetSystemDefaultLocaleName( + LPWSTR lpLocaleName, + int cchLocaleName +); + +__declspec(dllimport) +BOOL +__stdcall +GetNLSVersionEx( + NLS_FUNCTION function, + LPCWSTR lpLocaleName, + LPNLSVERSIONINFOEX lpVersionInformation +); + + +__declspec(dllimport) +DWORD +__stdcall +IsValidNLSVersion( + NLS_FUNCTION function, + LPCWSTR lpLocaleName, + LPNLSVERSIONINFOEX lpVersionInformation +); +# 2627 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +int +__stdcall +FindNLSStringEx( + LPCWSTR lpLocaleName, + DWORD dwFindNLSStringFlags, + LPCWSTR lpStringSource, + int cchSource, + LPCWSTR lpStringValue, + int cchValue, + LPINT pcchFound, + LPNLSVERSIONINFO lpVersionInformation, + LPVOID lpReserved, + LPARAM sortHandle +); +# 2650 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +int +__stdcall +LCMapStringEx( + LPCWSTR lpLocaleName, + DWORD dwMapFlags, + LPCWSTR lpSrcStr, + int cchSrc, + LPWSTR lpDestStr, + int cchDest, + LPNLSVERSIONINFO lpVersionInformation, + LPVOID lpReserved, + LPARAM sortHandle +); + +__declspec(dllimport) +BOOL +__stdcall +IsValidLocaleName( + LPCWSTR lpLocaleName +); + + + + + + +typedef BOOL (__stdcall* CALINFO_ENUMPROCEXEX)(LPWSTR, CALID, LPWSTR, LPARAM); + +__declspec(dllimport) +BOOL +__stdcall +EnumCalendarInfoExEx( + CALINFO_ENUMPROCEXEX pCalInfoEnumProcExEx, + LPCWSTR lpLocaleName, + CALID Calendar, + LPCWSTR lpReserved, + CALTYPE CalType, + LPARAM lParam +); + +typedef BOOL (__stdcall* DATEFMT_ENUMPROCEXEX)(LPWSTR, CALID, LPARAM); + +__declspec(dllimport) +BOOL +__stdcall +EnumDateFormatsExEx( + DATEFMT_ENUMPROCEXEX lpDateFmtEnumProcExEx, + LPCWSTR lpLocaleName, + DWORD dwFlags, + LPARAM lParam +); + +typedef BOOL (__stdcall* TIMEFMT_ENUMPROCEX)(LPWSTR, LPARAM); + +__declspec(dllimport) +BOOL +__stdcall +EnumTimeFormatsEx( + TIMEFMT_ENUMPROCEX lpTimeFmtEnumProcEx, + LPCWSTR lpLocaleName, + DWORD dwFlags, + LPARAM lParam +); + +typedef BOOL (__stdcall* LOCALE_ENUMPROCEX)(LPWSTR, DWORD, LPARAM); + +__declspec(dllimport) +BOOL +__stdcall +EnumSystemLocalesEx( + LOCALE_ENUMPROCEX lpLocaleEnumProcEx, + DWORD dwFlags, + LPARAM lParam, + LPVOID lpReserved +); +# 2737 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +__declspec(dllimport) +int +__stdcall +ResolveLocaleName( + LPCWSTR lpNameToResolve, + LPWSTR lpLocaleName, + int cchLocaleName +); +# 2762 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnls.h" +#pragma warning(pop) + + + +} +# 173 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\Windows.h" 2 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" 1 +# 30 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" +extern "C" { + + + +#pragma warning(push) +#pragma warning(disable: 4820) +# 45 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" +typedef struct _COORD { + SHORT X; + SHORT Y; +} COORD, *PCOORD; + + + + + + + +typedef struct _SMALL_RECT { + SHORT Left; + SHORT Top; + SHORT Right; + SHORT Bottom; +} SMALL_RECT, *PSMALL_RECT; + + + + + + + +typedef struct _KEY_EVENT_RECORD { + BOOL bKeyDown; + WORD wRepeatCount; + WORD wVirtualKeyCode; + WORD wVirtualScanCode; + union { + WCHAR UnicodeChar; + CHAR AsciiChar; + } uChar; + DWORD dwControlKeyState; +} KEY_EVENT_RECORD, *PKEY_EVENT_RECORD; +# 102 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" +typedef struct _MOUSE_EVENT_RECORD { + COORD dwMousePosition; + DWORD dwButtonState; + DWORD dwControlKeyState; + DWORD dwEventFlags; +} MOUSE_EVENT_RECORD, *PMOUSE_EVENT_RECORD; +# 130 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" +typedef struct _WINDOW_BUFFER_SIZE_RECORD { + COORD dwSize; +} WINDOW_BUFFER_SIZE_RECORD, *PWINDOW_BUFFER_SIZE_RECORD; + +typedef struct _MENU_EVENT_RECORD { + UINT dwCommandId; +} MENU_EVENT_RECORD, *PMENU_EVENT_RECORD; + +typedef struct _FOCUS_EVENT_RECORD { + BOOL bSetFocus; +} FOCUS_EVENT_RECORD, *PFOCUS_EVENT_RECORD; + +typedef struct _INPUT_RECORD { + WORD EventType; + union { + KEY_EVENT_RECORD KeyEvent; + MOUSE_EVENT_RECORD MouseEvent; + WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; + MENU_EVENT_RECORD MenuEvent; + FOCUS_EVENT_RECORD FocusEvent; + } Event; +} INPUT_RECORD, *PINPUT_RECORD; +# 169 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" +typedef struct _CHAR_INFO { + union { + WCHAR UnicodeChar; + CHAR AsciiChar; + } Char; + WORD Attributes; +} CHAR_INFO, *PCHAR_INFO; +# 205 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" +typedef struct _CONSOLE_SCREEN_BUFFER_INFO { + COORD dwSize; + COORD dwCursorPosition; + WORD wAttributes; + SMALL_RECT srWindow; + COORD dwMaximumWindowSize; +} CONSOLE_SCREEN_BUFFER_INFO, *PCONSOLE_SCREEN_BUFFER_INFO; + +typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX { + ULONG cbSize; + COORD dwSize; + COORD dwCursorPosition; + WORD wAttributes; + SMALL_RECT srWindow; + COORD dwMaximumWindowSize; + WORD wPopupAttributes; + BOOL bFullscreenSupported; + COLORREF ColorTable[16]; +} CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX; + +typedef struct _CONSOLE_CURSOR_INFO { + DWORD dwSize; + BOOL bVisible; +} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO; + +typedef struct _CONSOLE_FONT_INFO { + DWORD nFont; + COORD dwFontSize; +} CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO; + + +typedef struct _CONSOLE_FONT_INFOEX { + ULONG cbSize; + DWORD nFont; + COORD dwFontSize; + UINT FontFamily; + UINT FontWeight; + WCHAR FaceName[32]; +} CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX; + + + + +typedef struct _CONSOLE_HISTORY_INFO { + UINT cbSize; + UINT HistoryBufferSize; + UINT NumberOfHistoryBuffers; + DWORD dwFlags; +} CONSOLE_HISTORY_INFO, *PCONSOLE_HISTORY_INFO; +# 263 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" +typedef struct _CONSOLE_SELECTION_INFO { + DWORD dwFlags; + COORD dwSelectionAnchor; + SMALL_RECT srSelection; +} CONSOLE_SELECTION_INFO, *PCONSOLE_SELECTION_INFO; +# 290 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" +typedef +BOOL +(__stdcall *PHANDLER_ROUTINE)( + DWORD CtrlType + ); +# 339 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" +__declspec(dllimport) +BOOL +__stdcall +PeekConsoleInputW( + HANDLE hConsoleInput, + PINPUT_RECORD lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsRead + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +WriteConsoleInputA( + HANDLE hConsoleInput, + const INPUT_RECORD *lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsWritten + ); +__declspec(dllimport) +BOOL +__stdcall +WriteConsoleInputW( + HANDLE hConsoleInput, + const INPUT_RECORD *lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsWritten + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +ReadConsoleOutputA( + HANDLE hConsoleOutput, + PCHAR_INFO lpBuffer, + COORD dwBufferSize, + COORD dwBufferCoord, + PSMALL_RECT lpReadRegion + ); +__declspec(dllimport) +BOOL +__stdcall +ReadConsoleOutputW( + HANDLE hConsoleOutput, + PCHAR_INFO lpBuffer, + COORD dwBufferSize, + COORD dwBufferCoord, + PSMALL_RECT lpReadRegion + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +WriteConsoleOutputA( + HANDLE hConsoleOutput, + const CHAR_INFO *lpBuffer, + COORD dwBufferSize, + COORD dwBufferCoord, + PSMALL_RECT lpWriteRegion + ); +__declspec(dllimport) +BOOL +__stdcall +WriteConsoleOutputW( + HANDLE hConsoleOutput, + const CHAR_INFO *lpBuffer, + COORD dwBufferSize, + COORD dwBufferCoord, + PSMALL_RECT lpWriteRegion + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +ReadConsoleOutputCharacterA( + HANDLE hConsoleOutput, + LPSTR lpCharacter, + DWORD nLength, + COORD dwReadCoord, + LPDWORD lpNumberOfCharsRead + ); +__declspec(dllimport) +BOOL +__stdcall +ReadConsoleOutputCharacterW( + HANDLE hConsoleOutput, + LPWSTR lpCharacter, + DWORD nLength, + COORD dwReadCoord, + LPDWORD lpNumberOfCharsRead + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +ReadConsoleOutputAttribute( + HANDLE hConsoleOutput, + LPWORD lpAttribute, + DWORD nLength, + COORD dwReadCoord, + LPDWORD lpNumberOfAttrsRead + ); + +__declspec(dllimport) +BOOL +__stdcall +WriteConsoleOutputCharacterA( + HANDLE hConsoleOutput, + LPCSTR lpCharacter, + DWORD nLength, + COORD dwWriteCoord, + LPDWORD lpNumberOfCharsWritten + ); +__declspec(dllimport) +BOOL +__stdcall +WriteConsoleOutputCharacterW( + HANDLE hConsoleOutput, + LPCWSTR lpCharacter, + DWORD nLength, + COORD dwWriteCoord, + LPDWORD lpNumberOfCharsWritten + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +WriteConsoleOutputAttribute( + HANDLE hConsoleOutput, + const WORD *lpAttribute, + DWORD nLength, + COORD dwWriteCoord, + LPDWORD lpNumberOfAttrsWritten + ); + +__declspec(dllimport) +BOOL +__stdcall +FillConsoleOutputCharacterA( + HANDLE hConsoleOutput, + CHAR cCharacter, + DWORD nLength, + COORD dwWriteCoord, + LPDWORD lpNumberOfCharsWritten + ); +__declspec(dllimport) +BOOL +__stdcall +FillConsoleOutputCharacterW( + HANDLE hConsoleOutput, + WCHAR cCharacter, + DWORD nLength, + COORD dwWriteCoord, + LPDWORD lpNumberOfCharsWritten + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +FillConsoleOutputAttribute( + HANDLE hConsoleOutput, + WORD wAttribute, + DWORD nLength, + COORD dwWriteCoord, + LPDWORD lpNumberOfAttrsWritten + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +GetConsoleScreenBufferInfo( + HANDLE hConsoleOutput, + PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo + ); + +__declspec(dllimport) +BOOL +__stdcall +GetConsoleScreenBufferInfoEx( + HANDLE hConsoleOutput, + PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx); + +__declspec(dllimport) +BOOL +__stdcall +SetConsoleScreenBufferInfoEx( + HANDLE hConsoleOutput, + PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx); + +__declspec(dllimport) +COORD +__stdcall +GetLargestConsoleWindowSize( + HANDLE hConsoleOutput + ); + +__declspec(dllimport) +BOOL +__stdcall +GetConsoleCursorInfo( + HANDLE hConsoleOutput, + PCONSOLE_CURSOR_INFO lpConsoleCursorInfo + ); +# 587 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" +__declspec(dllimport) +BOOL +__stdcall +GetCurrentConsoleFont( + HANDLE hConsoleOutput, + BOOL bMaximumWindow, + PCONSOLE_FONT_INFO lpConsoleCurrentFont + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetCurrentConsoleFontEx( + HANDLE hConsoleOutput, + BOOL bMaximumWindow, + PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx); + +__declspec(dllimport) +BOOL +__stdcall +SetCurrentConsoleFontEx( + HANDLE hConsoleOutput, + BOOL bMaximumWindow, + PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx); + + +__declspec(dllimport) +BOOL +__stdcall +GetConsoleHistoryInfo( + PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo); + +__declspec(dllimport) +BOOL +__stdcall +SetConsoleHistoryInfo( + PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo); + +__declspec(dllimport) +COORD +__stdcall +GetConsoleFontSize( + HANDLE hConsoleOutput, + DWORD nFont + ); + +__declspec(dllimport) +BOOL +__stdcall +GetConsoleSelectionInfo( + PCONSOLE_SELECTION_INFO lpConsoleSelectionInfo + ); + + + +__declspec(dllimport) +BOOL +__stdcall +GetNumberOfConsoleMouseButtons( + LPDWORD lpNumberOfMouseButtons + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetConsoleActiveScreenBuffer( + HANDLE hConsoleOutput + ); + +__declspec(dllimport) +BOOL +__stdcall +FlushConsoleInputBuffer( + HANDLE hConsoleInput + ); + +__declspec(dllimport) +BOOL +__stdcall +SetConsoleScreenBufferSize( + HANDLE hConsoleOutput, + COORD dwSize + ); + +__declspec(dllimport) +BOOL +__stdcall +SetConsoleCursorPosition( + HANDLE hConsoleOutput, + COORD dwCursorPosition + ); + +__declspec(dllimport) +BOOL +__stdcall +SetConsoleCursorInfo( + HANDLE hConsoleOutput, + const CONSOLE_CURSOR_INFO *lpConsoleCursorInfo + ); + +__declspec(dllimport) +BOOL +__stdcall +ScrollConsoleScreenBufferA( + HANDLE hConsoleOutput, + const SMALL_RECT *lpScrollRectangle, + const SMALL_RECT *lpClipRectangle, + COORD dwDestinationOrigin, + const CHAR_INFO *lpFill + ); +__declspec(dllimport) +BOOL +__stdcall +ScrollConsoleScreenBufferW( + HANDLE hConsoleOutput, + const SMALL_RECT *lpScrollRectangle, + const SMALL_RECT *lpClipRectangle, + COORD dwDestinationOrigin, + const CHAR_INFO *lpFill + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetConsoleWindowInfo( + HANDLE hConsoleOutput, + BOOL bAbsolute, + const SMALL_RECT *lpConsoleWindow + ); + +__declspec(dllimport) +BOOL +__stdcall +SetConsoleTextAttribute( + HANDLE hConsoleOutput, + WORD wAttributes + ); + +__declspec(dllimport) +BOOL +__stdcall +GenerateConsoleCtrlEvent( + DWORD dwCtrlEvent, + DWORD dwProcessGroupId); + +__declspec(dllimport) +BOOL +__stdcall +FreeConsole( + void); + + +__declspec(dllimport) +BOOL +__stdcall +AttachConsole( + DWORD dwProcessId); + + + + + +__declspec(dllimport) +DWORD +__stdcall +GetConsoleTitleA( + LPSTR lpConsoleTitle, + DWORD nSize + ); +__declspec(dllimport) +DWORD +__stdcall +GetConsoleTitleW( + LPWSTR lpConsoleTitle, + DWORD nSize + ); +# 788 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" +__declspec(dllimport) +DWORD +__stdcall +GetConsoleOriginalTitleA( + LPSTR lpConsoleTitle, + DWORD nSize); +__declspec(dllimport) +DWORD +__stdcall +GetConsoleOriginalTitleW( + LPWSTR lpConsoleTitle, + DWORD nSize); +# 813 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" +__declspec(dllimport) +BOOL +__stdcall +SetConsoleTitleA( + LPCSTR lpConsoleTitle + ); +__declspec(dllimport) +BOOL +__stdcall +SetConsoleTitleW( + LPCWSTR lpConsoleTitle + ); +# 837 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" +typedef struct _CONSOLE_READCONSOLE_CONTROL { + ULONG nLength; + ULONG nInitialChars; + ULONG dwCtrlWakeupMask; + ULONG dwControlKeyState; +} CONSOLE_READCONSOLE_CONTROL, *PCONSOLE_READCONSOLE_CONTROL; + + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\consoleapi.h" 1 +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\consoleapi.h" +extern "C" { + + + + + + +__declspec(dllimport) +BOOL +__stdcall +AllocConsole( + void + ); + + +__declspec(dllimport) +UINT +__stdcall +GetConsoleCP( + void + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetConsoleMode( + HANDLE hConsoleHandle, + LPDWORD lpMode + ); + + +__declspec(dllimport) +UINT +__stdcall +GetConsoleOutputCP( + void + ); + + +__declspec(dllimport) +BOOL +__stdcall +GetNumberOfConsoleInputEvents( + HANDLE hConsoleInput, + LPDWORD lpNumberOfEvents + ); + + +__declspec(dllimport) +BOOL +__stdcall +PeekConsoleInputA( + HANDLE hConsoleInput, + PINPUT_RECORD lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsRead + ); + + + + + + +__declspec(dllimport) + +BOOL +__stdcall +ReadConsoleA( + HANDLE hConsoleInput, + LPVOID lpBuffer, + DWORD nNumberOfCharsToRead, + LPDWORD lpNumberOfCharsRead, + PCONSOLE_READCONSOLE_CONTROL pInputControl + ); + +__declspec(dllimport) + +BOOL +__stdcall +ReadConsoleW( + HANDLE hConsoleInput, + LPVOID lpBuffer, + DWORD nNumberOfCharsToRead, + LPDWORD lpNumberOfCharsRead, + PCONSOLE_READCONSOLE_CONTROL pInputControl + ); + + + + + + + +__declspec(dllimport) + +BOOL +__stdcall +ReadConsoleInputA( + HANDLE hConsoleInput, + PINPUT_RECORD lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsRead + ); + +__declspec(dllimport) + +BOOL +__stdcall +ReadConsoleInputW( + HANDLE hConsoleInput, + PINPUT_RECORD lpBuffer, + DWORD nLength, + LPDWORD lpNumberOfEventsRead + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetConsoleCtrlHandler( + PHANDLER_ROUTINE HandlerRoutine, + BOOL Add + ); + + +__declspec(dllimport) +BOOL +__stdcall +SetConsoleMode( + HANDLE hConsoleHandle, + DWORD dwMode + ); + + +__declspec(dllimport) +BOOL +__stdcall +WriteConsoleA( + HANDLE hConsoleOutput, + const void * lpBuffer, + DWORD nNumberOfCharsToWrite, + LPDWORD lpNumberOfCharsWritten, + LPVOID lpReserved + ); + +__declspec(dllimport) +BOOL +__stdcall +WriteConsoleW( + HANDLE hConsoleOutput, + const void * lpBuffer, + DWORD nNumberOfCharsToWrite, + LPDWORD lpNumberOfCharsWritten, + LPVOID lpReserved + ); +# 211 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\consoleapi.h" +} +# 850 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" 2 + + + + + + +__declspec(dllimport) +HANDLE +__stdcall +CreateConsoleScreenBuffer( + DWORD dwDesiredAccess, + DWORD dwShareMode, + const SECURITY_ATTRIBUTES *lpSecurityAttributes, + DWORD dwFlags, + LPVOID lpScreenBufferData + ); + +__declspec(dllimport) +BOOL +__stdcall +SetConsoleCP( + UINT wCodePageID + ); + +__declspec(dllimport) +BOOL +__stdcall +SetConsoleOutputCP( + UINT wCodePageID + ); +# 892 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" +__declspec(dllimport) +BOOL +__stdcall +GetConsoleDisplayMode( + LPDWORD lpModeFlags); + + + + +BOOL +__stdcall +SetConsoleDisplayMode( + HANDLE hConsoleOutput, + DWORD dwFlags, + PCOORD lpNewScreenBufferDimensions); + +__declspec(dllimport) +HWND +__stdcall +GetConsoleWindow( + void + ); + + + + + +__declspec(dllimport) +DWORD +__stdcall +GetConsoleProcessList( + LPDWORD lpdwProcessList, + DWORD dwProcessCount); + + + + + +__declspec(dllimport) +BOOL +__stdcall +AddConsoleAliasA( + LPSTR Source, + LPSTR Target, + LPSTR ExeName); +__declspec(dllimport) +BOOL +__stdcall +AddConsoleAliasW( + LPWSTR Source, + LPWSTR Target, + LPWSTR ExeName); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +GetConsoleAliasA( + LPSTR Source, + LPSTR TargetBuffer, + DWORD TargetBufferLength, + LPSTR ExeName); +__declspec(dllimport) +DWORD +__stdcall +GetConsoleAliasW( + LPWSTR Source, + LPWSTR TargetBuffer, + DWORD TargetBufferLength, + LPWSTR ExeName); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +GetConsoleAliasesLengthA( + LPSTR ExeName); +__declspec(dllimport) +DWORD +__stdcall +GetConsoleAliasesLengthW( + LPWSTR ExeName); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +GetConsoleAliasExesLengthA( + void); +__declspec(dllimport) +DWORD +__stdcall +GetConsoleAliasExesLengthW( + void); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +GetConsoleAliasesA( + LPSTR AliasBuffer, + DWORD AliasBufferLength, + LPSTR ExeName); +__declspec(dllimport) +DWORD +__stdcall +GetConsoleAliasesW( + LPWSTR AliasBuffer, + DWORD AliasBufferLength, + LPWSTR ExeName); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +GetConsoleAliasExesA( + LPSTR ExeNameBuffer, + DWORD ExeNameBufferLength); +__declspec(dllimport) +DWORD +__stdcall +GetConsoleAliasExesW( + LPWSTR ExeNameBuffer, + DWORD ExeNameBufferLength); +# 1049 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincon.h" +#pragma warning(pop) + + + +} +# 176 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winver.h" 1 +# 19 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winver.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\verrsrc.h" 1 +# 133 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\verrsrc.h" +extern "C" { +# 147 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\verrsrc.h" +typedef struct tagVS_FIXEDFILEINFO +{ + DWORD dwSignature; + DWORD dwStrucVersion; + DWORD dwFileVersionMS; + DWORD dwFileVersionLS; + DWORD dwProductVersionMS; + DWORD dwProductVersionLS; + DWORD dwFileFlagsMask; + DWORD dwFileFlags; + DWORD dwFileOS; + DWORD dwFileType; + DWORD dwFileSubtype; + DWORD dwFileDateMS; + DWORD dwFileDateLS; +} VS_FIXEDFILEINFO; + + +} +# 19 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winver.h" 2 + + + + +extern "C" { +# 34 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winver.h" +DWORD +__stdcall +VerFindFileA( + DWORD uFlags, + LPCSTR szFileName, + LPCSTR szWinDir, + LPCSTR szAppDir, + LPSTR szCurDir, + PUINT puCurDirLen, + LPSTR szDestDir, + PUINT puDestDirLen + ); +DWORD +__stdcall +VerFindFileW( + DWORD uFlags, + LPCWSTR szFileName, + LPCWSTR szWinDir, + LPCWSTR szAppDir, + LPWSTR szCurDir, + PUINT puCurDirLen, + LPWSTR szDestDir, + PUINT puDestDirLen + ); +# 74 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winver.h" +DWORD +__stdcall +VerInstallFileA( + DWORD uFlags, + LPCSTR szSrcFileName, + LPCSTR szDestFileName, + LPCSTR szSrcDir, + LPCSTR szDestDir, + LPCSTR szCurDir, + LPSTR szTmpFile, + PUINT puTmpFileLen + ); +DWORD +__stdcall +VerInstallFileW( + DWORD uFlags, + LPCWSTR szSrcFileName, + LPCWSTR szDestFileName, + LPCWSTR szSrcDir, + LPCWSTR szDestDir, + LPCWSTR szCurDir, + LPWSTR szTmpFile, + PUINT puTmpFileLen + ); +# 115 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winver.h" +DWORD +__stdcall +GetFileVersionInfoSizeA( + LPCSTR lptstrFilename, + LPDWORD lpdwHandle + ); + +DWORD +__stdcall +GetFileVersionInfoSizeW( + LPCWSTR lptstrFilename, + LPDWORD lpdwHandle + ); + + + + + + + +BOOL +__stdcall +GetFileVersionInfoA( + LPCSTR lptstrFilename, + DWORD dwHandle, + DWORD dwLen, + LPVOID lpData + ); + +BOOL +__stdcall +GetFileVersionInfoW( + LPCWSTR lptstrFilename, + DWORD dwHandle, + DWORD dwLen, + LPVOID lpData + ); + + + + + + +DWORD __stdcall GetFileVersionInfoSizeExA( DWORD dwFlags, LPCSTR lpwstrFilename, LPDWORD lpdwHandle); +DWORD __stdcall GetFileVersionInfoSizeExW( DWORD dwFlags, LPCWSTR lpwstrFilename, LPDWORD lpdwHandle); + + + + + + +BOOL __stdcall GetFileVersionInfoExA( DWORD dwFlags, + LPCSTR lpwstrFilename, + DWORD dwHandle, + DWORD dwLen, + LPVOID lpData); +BOOL __stdcall GetFileVersionInfoExW( DWORD dwFlags, + LPCWSTR lpwstrFilename, + DWORD dwHandle, + DWORD dwLen, + LPVOID lpData); +# 203 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winver.h" +DWORD +__stdcall +VerLanguageNameA( + DWORD wLang, + LPSTR szLang, + DWORD cchLang + ); +DWORD +__stdcall +VerLanguageNameW( + DWORD wLang, + LPWSTR szLang, + DWORD cchLang + ); + + + + + + +BOOL +__stdcall +VerQueryValueA( + LPCVOID pBlock, + LPCSTR lpSubBlock, + LPVOID * lplpBuffer, + PUINT puLen + ); +BOOL +__stdcall +VerQueryValueW( + LPCVOID pBlock, + LPCWSTR lpSubBlock, + LPVOID * lplpBuffer, + PUINT puLen + ); +# 252 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winver.h" +} +# 177 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" 1 +# 51 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" +extern "C" { + + + + +#pragma warning(push) +#pragma warning(disable: 4820) +# 109 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" +typedef ACCESS_MASK REGSAM; +# 139 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" +struct val_context { + int valuelen; + LPVOID value_context; + LPVOID val_buff_ptr; +}; + +typedef struct val_context *PVALCONTEXT; + +typedef struct pvalueA { + LPSTR pv_valuename; + int pv_valuelen; + LPVOID pv_value_context; + DWORD pv_type; +}PVALUEA, *PPVALUEA; +typedef struct pvalueW { + LPWSTR pv_valuename; + int pv_valuelen; + LPVOID pv_value_context; + DWORD pv_type; +}PVALUEW, *PPVALUEW; + +typedef PVALUEW PVALUE; +typedef PPVALUEW PPVALUE; + + + + + +typedef +DWORD __cdecl +QUERYHANDLER (LPVOID keycontext, PVALCONTEXT val_list, DWORD num_vals, + LPVOID outputbuffer, DWORD *total_outlen, DWORD input_blen); + +typedef QUERYHANDLER *PQUERYHANDLER; + +typedef struct provider_info { + PQUERYHANDLER pi_R0_1val; + PQUERYHANDLER pi_R0_allvals; + PQUERYHANDLER pi_R3_1val; + PQUERYHANDLER pi_R3_allvals; + DWORD pi_flags; + LPVOID pi_key_context; +}REG_PROVIDER; + +typedef struct provider_info *PPROVIDER; + +typedef struct value_entA { + LPSTR ve_valuename; + DWORD ve_valuelen; + DWORD_PTR ve_valueptr; + DWORD ve_type; +}VALENTA, *PVALENTA; +typedef struct value_entW { + LPWSTR ve_valuename; + DWORD ve_valuelen; + DWORD_PTR ve_valueptr; + DWORD ve_type; +}VALENTW, *PVALENTW; + +typedef VALENTW VALENT; +typedef PVALENTW PVALENT; +# 221 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" +typedef LONG LSTATUS; + +__declspec(dllimport) +LSTATUS +__stdcall +RegCloseKey( + HKEY hKey + ); + + +__declspec(dllimport) +LSTATUS +__stdcall +RegOverridePredefKey ( + HKEY hKey, + HKEY hNewHKey + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegOpenUserClassesRoot( + HANDLE hToken, + DWORD dwOptions, + REGSAM samDesired, + PHKEY phkResult + ); + + +__declspec(dllimport) +LSTATUS +__stdcall +RegOpenCurrentUser( + REGSAM samDesired, + PHKEY phkResult + ); + + +__declspec(dllimport) +LSTATUS +__stdcall +RegDisablePredefinedCache( + void + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegDisablePredefinedCacheEx( + void + ); + + +__declspec(dllimport) +LSTATUS +__stdcall +RegConnectRegistryA ( + LPCSTR lpMachineName, + HKEY hKey, + PHKEY phkResult + ); +__declspec(dllimport) +LSTATUS +__stdcall +RegConnectRegistryW ( + LPCWSTR lpMachineName, + HKEY hKey, + PHKEY phkResult + ); + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegConnectRegistryExA ( + LPCSTR lpMachineName, + HKEY hKey, + ULONG Flags, + PHKEY phkResult + ); +__declspec(dllimport) +LSTATUS +__stdcall +RegConnectRegistryExW ( + LPCWSTR lpMachineName, + HKEY hKey, + ULONG Flags, + PHKEY phkResult + ); + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegCreateKeyA ( + HKEY hKey, + LPCSTR lpSubKey, + PHKEY phkResult + ); +__declspec(dllimport) +LSTATUS +__stdcall +RegCreateKeyW ( + HKEY hKey, + LPCWSTR lpSubKey, + PHKEY phkResult + ); + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegCreateKeyExA( + HKEY hKey, + LPCSTR lpSubKey, + DWORD Reserved, + LPSTR lpClass, + DWORD dwOptions, + REGSAM samDesired, + const LPSECURITY_ATTRIBUTES lpSecurityAttributes, + PHKEY phkResult, + LPDWORD lpdwDisposition + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegCreateKeyExW( + HKEY hKey, + LPCWSTR lpSubKey, + DWORD Reserved, + LPWSTR lpClass, + DWORD dwOptions, + REGSAM samDesired, + const LPSECURITY_ATTRIBUTES lpSecurityAttributes, + PHKEY phkResult, + LPDWORD lpdwDisposition + ); + + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegCreateKeyTransactedA ( + HKEY hKey, + LPCSTR lpSubKey, + DWORD Reserved, + LPSTR lpClass, + DWORD dwOptions, + REGSAM samDesired, + const LPSECURITY_ATTRIBUTES lpSecurityAttributes, + PHKEY phkResult, + LPDWORD lpdwDisposition, + HANDLE hTransaction, + PVOID pExtendedParemeter + ); +__declspec(dllimport) +LSTATUS +__stdcall +RegCreateKeyTransactedW ( + HKEY hKey, + LPCWSTR lpSubKey, + DWORD Reserved, + LPWSTR lpClass, + DWORD dwOptions, + REGSAM samDesired, + const LPSECURITY_ATTRIBUTES lpSecurityAttributes, + PHKEY phkResult, + LPDWORD lpdwDisposition, + HANDLE hTransaction, + PVOID pExtendedParemeter + ); + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegDeleteKeyA ( + HKEY hKey, + LPCSTR lpSubKey + ); +__declspec(dllimport) +LSTATUS +__stdcall +RegDeleteKeyW ( + HKEY hKey, + LPCWSTR lpSubKey + ); + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegDeleteKeyExA( + HKEY hKey, + LPCSTR lpSubKey, + REGSAM samDesired, + DWORD Reserved + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegDeleteKeyExW( + HKEY hKey, + LPCWSTR lpSubKey, + REGSAM samDesired, + DWORD Reserved + ); + + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegDeleteKeyTransactedA ( + HKEY hKey, + LPCSTR lpSubKey, + REGSAM samDesired, + DWORD Reserved, + HANDLE hTransaction, + PVOID pExtendedParameter + ); +__declspec(dllimport) +LSTATUS +__stdcall +RegDeleteKeyTransactedW ( + HKEY hKey, + LPCWSTR lpSubKey, + REGSAM samDesired, + DWORD Reserved, + HANDLE hTransaction, + PVOID pExtendedParameter + ); + + + + + + +__declspec(dllimport) +LONG +__stdcall +RegDisableReflectionKey ( + HKEY hBase + ); + +__declspec(dllimport) +LONG +__stdcall +RegEnableReflectionKey ( + HKEY hBase + ); + +__declspec(dllimport) +LONG +__stdcall +RegQueryReflectionKey ( + HKEY hBase, + BOOL *bIsReflectionDisabled + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegDeleteValueA( + HKEY hKey, + LPCSTR lpValueName + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegDeleteValueW( + HKEY hKey, + LPCWSTR lpValueName + ); + + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegEnumKeyA ( + HKEY hKey, + DWORD dwIndex, + LPSTR lpName, + DWORD cchName + ); +__declspec(dllimport) +LSTATUS +__stdcall +RegEnumKeyW ( + HKEY hKey, + DWORD dwIndex, + LPWSTR lpName, + DWORD cchName + ); + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegEnumKeyExA( + HKEY hKey, + DWORD dwIndex, + LPSTR lpName, + LPDWORD lpcchName, + LPDWORD lpReserved, + LPSTR lpClass, + LPDWORD lpcchClass, + PFILETIME lpftLastWriteTime + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegEnumKeyExW( + HKEY hKey, + DWORD dwIndex, + LPWSTR lpName, + LPDWORD lpcchName, + LPDWORD lpReserved, + LPWSTR lpClass, + LPDWORD lpcchClass, + PFILETIME lpftLastWriteTime + ); + + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegEnumValueA( + HKEY hKey, + DWORD dwIndex, + LPSTR lpValueName, + LPDWORD lpcchValueName, + LPDWORD lpReserved, + LPDWORD lpType, + LPBYTE lpData, + LPDWORD lpcbData + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegEnumValueW( + HKEY hKey, + DWORD dwIndex, + LPWSTR lpValueName, + LPDWORD lpcchValueName, + LPDWORD lpReserved, + LPDWORD lpType, + LPBYTE lpData, + LPDWORD lpcbData + ); + + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegFlushKey( + HKEY hKey + ); + + +__declspec(dllimport) +LSTATUS +__stdcall +RegGetKeySecurity( + HKEY hKey, + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR pSecurityDescriptor, + LPDWORD lpcbSecurityDescriptor + ); + + +__declspec(dllimport) +LSTATUS +__stdcall +RegLoadKeyA( + HKEY hKey, + LPCSTR lpSubKey, + LPCSTR lpFile + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegLoadKeyW( + HKEY hKey, + LPCWSTR lpSubKey, + LPCWSTR lpFile + ); + + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegNotifyChangeKeyValue( + HKEY hKey, + BOOL bWatchSubtree, + DWORD dwNotifyFilter, + HANDLE hEvent, + BOOL fAsynchronous + ); + + +__declspec(dllimport) +LSTATUS +__stdcall +RegOpenKeyA ( + HKEY hKey, + LPCSTR lpSubKey, + PHKEY phkResult + ); +__declspec(dllimport) +LSTATUS +__stdcall +RegOpenKeyW ( + HKEY hKey, + LPCWSTR lpSubKey, + PHKEY phkResult + ); + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegOpenKeyExA( + HKEY hKey, + LPCSTR lpSubKey, + DWORD ulOptions, + REGSAM samDesired, + PHKEY phkResult + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegOpenKeyExW( + HKEY hKey, + LPCWSTR lpSubKey, + DWORD ulOptions, + REGSAM samDesired, + PHKEY phkResult + ); + + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegOpenKeyTransactedA ( + HKEY hKey, + LPCSTR lpSubKey, + DWORD ulOptions, + REGSAM samDesired, + PHKEY phkResult, + HANDLE hTransaction, + PVOID pExtendedParemeter + ); +__declspec(dllimport) +LSTATUS +__stdcall +RegOpenKeyTransactedW ( + HKEY hKey, + LPCWSTR lpSubKey, + DWORD ulOptions, + REGSAM samDesired, + PHKEY phkResult, + HANDLE hTransaction, + PVOID pExtendedParemeter + ); + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegQueryInfoKeyA( + HKEY hKey, + LPSTR lpClass, + LPDWORD lpcchClass, + LPDWORD lpReserved, + LPDWORD lpcSubKeys, + LPDWORD lpcbMaxSubKeyLen, + LPDWORD lpcbMaxClassLen, + LPDWORD lpcValues, + LPDWORD lpcbMaxValueNameLen, + LPDWORD lpcbMaxValueLen, + LPDWORD lpcbSecurityDescriptor, + PFILETIME lpftLastWriteTime + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegQueryInfoKeyW( + HKEY hKey, + LPWSTR lpClass, + LPDWORD lpcchClass, + LPDWORD lpReserved, + LPDWORD lpcSubKeys, + LPDWORD lpcbMaxSubKeyLen, + LPDWORD lpcbMaxClassLen, + LPDWORD lpcValues, + LPDWORD lpcbMaxValueNameLen, + LPDWORD lpcbMaxValueLen, + LPDWORD lpcbSecurityDescriptor, + PFILETIME lpftLastWriteTime + ); + + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegQueryValueA ( + HKEY hKey, + LPCSTR lpSubKey, + LPSTR lpData, + PLONG lpcbData + ); +__declspec(dllimport) +LSTATUS +__stdcall +RegQueryValueW ( + HKEY hKey, + LPCWSTR lpSubKey, + LPWSTR lpData, + PLONG lpcbData + ); +# 830 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" +__declspec(dllimport) +LSTATUS +__stdcall +RegQueryMultipleValuesA ( + HKEY hKey, + PVALENTA val_list, + DWORD num_vals, + LPSTR lpValueBuf, + LPDWORD ldwTotsize + ); +__declspec(dllimport) +LSTATUS +__stdcall +RegQueryMultipleValuesW ( + HKEY hKey, + PVALENTW val_list, + DWORD num_vals, + LPWSTR lpValueBuf, + LPDWORD ldwTotsize + ); + + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegQueryValueExA( + HKEY hKey, + LPCSTR lpValueName, + LPDWORD lpReserved, + LPDWORD lpType, + LPBYTE lpData, + + LPDWORD lpcbData + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegQueryValueExW( + HKEY hKey, + LPCWSTR lpValueName, + LPDWORD lpReserved, + LPDWORD lpType, + LPBYTE lpData, + + LPDWORD lpcbData + ); + + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegReplaceKeyA ( + HKEY hKey, + LPCSTR lpSubKey, + LPCSTR lpNewFile, + LPCSTR lpOldFile + ); +__declspec(dllimport) +LSTATUS +__stdcall +RegReplaceKeyW ( + HKEY hKey, + LPCWSTR lpSubKey, + LPCWSTR lpNewFile, + LPCWSTR lpOldFile + ); + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegRestoreKeyA( + HKEY hKey, + LPCSTR lpFile, + DWORD dwFlags + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegRestoreKeyW( + HKEY hKey, + LPCWSTR lpFile, + DWORD dwFlags + ); +# 940 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" +__declspec(dllimport) +LSTATUS +__stdcall +RegRenameKey( + HKEY hKey, + LPCWSTR lpSubKeyName, + LPCWSTR lpNewKeyName + ); + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegSaveKeyA ( + HKEY hKey, + LPCSTR lpFile, + const LPSECURITY_ATTRIBUTES lpSecurityAttributes + ); +__declspec(dllimport) +LSTATUS +__stdcall +RegSaveKeyW ( + HKEY hKey, + LPCWSTR lpFile, + const LPSECURITY_ATTRIBUTES lpSecurityAttributes + ); + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegSetKeySecurity( + HKEY hKey, + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR pSecurityDescriptor + ); + + +__declspec(dllimport) +LSTATUS +__stdcall +RegSetValueA ( + HKEY hKey, + LPCSTR lpSubKey, + DWORD dwType, + LPCSTR lpData, + DWORD cbData + ); +__declspec(dllimport) +LSTATUS +__stdcall +RegSetValueW ( + HKEY hKey, + LPCWSTR lpSubKey, + DWORD dwType, + LPCWSTR lpData, + DWORD cbData + ); + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegSetValueExA( + HKEY hKey, + LPCSTR lpValueName, + DWORD Reserved, + DWORD dwType, + const BYTE * lpData, + DWORD cbData + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegSetValueExW( + HKEY hKey, + LPCWSTR lpValueName, + DWORD Reserved, + DWORD dwType, + const BYTE * lpData, + DWORD cbData + ); + + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegUnLoadKeyA( + HKEY hKey, + LPCSTR lpSubKey + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegUnLoadKeyW( + HKEY hKey, + LPCWSTR lpSubKey + ); +# 1070 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" +__declspec(dllimport) +LSTATUS +__stdcall +RegDeleteKeyValueA( + HKEY hKey, + LPCSTR lpSubKey, + LPCSTR lpValueName + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegDeleteKeyValueW( + HKEY hKey, + LPCWSTR lpSubKey, + LPCWSTR lpValueName + ); + + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegSetKeyValueA( + HKEY hKey, + LPCSTR lpSubKey, + LPCSTR lpValueName, + DWORD dwType, + LPCVOID lpData, + DWORD cbData + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegSetKeyValueW( + HKEY hKey, + LPCWSTR lpSubKey, + LPCWSTR lpValueName, + DWORD dwType, + LPCVOID lpData, + DWORD cbData + ); +# 1126 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" +__declspec(dllimport) +LSTATUS +__stdcall +RegDeleteTreeA( + HKEY hKey, + LPCSTR lpSubKey + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegDeleteTreeW( + HKEY hKey, + LPCWSTR lpSubKey + ); + + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegCopyTreeA ( + HKEY hKeySrc, + LPCSTR lpSubKey, + HKEY hKeyDest + ); +# 1165 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" +__declspec(dllimport) +LSTATUS +__stdcall +RegGetValueA( + HKEY hkey, + LPCSTR lpSubKey, + LPCSTR lpValue, + DWORD dwFlags, + LPDWORD pdwType, + + + + + + + + PVOID pvData, + LPDWORD pcbData + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegGetValueW( + HKEY hkey, + LPCWSTR lpSubKey, + LPCWSTR lpValue, + DWORD dwFlags, + LPDWORD pdwType, + + + + + + + + PVOID pvData, + LPDWORD pcbData + ); +# 1216 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" +__declspec(dllimport) +LSTATUS +__stdcall +RegCopyTreeW( + HKEY hKeySrc, + LPCWSTR lpSubKey, + HKEY hKeyDest + ); + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegLoadMUIStringA( + HKEY hKey, + LPCSTR pszValue, + LPSTR pszOutBuf, + DWORD cbOutBuf, + LPDWORD pcbData, + DWORD Flags, + LPCSTR pszDirectory + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegLoadMUIStringW( + HKEY hKey, + LPCWSTR pszValue, + LPWSTR pszOutBuf, + DWORD cbOutBuf, + LPDWORD pcbData, + DWORD Flags, + LPCWSTR pszDirectory + ); + + + + + + + +__declspec(dllimport) +LSTATUS +__stdcall +RegLoadAppKeyA( + LPCSTR lpFile, + PHKEY phkResult, + REGSAM samDesired, + DWORD dwOptions, + DWORD Reserved + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegLoadAppKeyW( + LPCWSTR lpFile, + PHKEY phkResult, + REGSAM samDesired, + DWORD dwOptions, + DWORD Reserved + ); +# 1296 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" +__declspec(dllimport) +BOOL +__stdcall +InitiateSystemShutdownA( + LPSTR lpMachineName, + LPSTR lpMessage, + DWORD dwTimeout, + BOOL bForceAppsClosed, + BOOL bRebootAfterShutdown + ); + +__declspec(dllimport) +BOOL +__stdcall +InitiateSystemShutdownW( + LPWSTR lpMachineName, + LPWSTR lpMessage, + DWORD dwTimeout, + BOOL bForceAppsClosed, + BOOL bRebootAfterShutdown + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +AbortSystemShutdownA( + LPSTR lpMachineName + ); +__declspec(dllimport) +BOOL +__stdcall +AbortSystemShutdownW( + LPWSTR lpMachineName + ); +# 1346 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\reason.h" 1 +# 1346 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" 2 +# 1368 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" +__declspec(dllimport) +BOOL +__stdcall +InitiateSystemShutdownExA( + LPSTR lpMachineName, + LPSTR lpMessage, + DWORD dwTimeout, + BOOL bForceAppsClosed, + BOOL bRebootAfterShutdown, + DWORD dwReason + ); + + + +__declspec(dllimport) +BOOL +__stdcall +InitiateSystemShutdownExW( + LPWSTR lpMachineName, + LPWSTR lpMessage, + DWORD dwTimeout, + BOOL bForceAppsClosed, + BOOL bRebootAfterShutdown, + DWORD dwReason + ); +# 1417 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" +__declspec(dllimport) +DWORD +__stdcall +InitiateShutdownA( + LPSTR lpMachineName, + LPSTR lpMessage, + DWORD dwGracePeriod, + DWORD dwShutdownFlags, + DWORD dwReason + ); +__declspec(dllimport) +DWORD +__stdcall +InitiateShutdownW( + LPWSTR lpMachineName, + LPWSTR lpMessage, + DWORD dwGracePeriod, + DWORD dwShutdownFlags, + DWORD dwReason + ); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +CheckForHiberboot( + PBOOLEAN pHiberboot, + BOOLEAN bClearFlag + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegSaveKeyExA( + HKEY hKey, + LPCSTR lpFile, + const LPSECURITY_ATTRIBUTES lpSecurityAttributes, + DWORD Flags + ); + +__declspec(dllimport) +LSTATUS +__stdcall +RegSaveKeyExW( + HKEY hKey, + LPCWSTR lpFile, + const LPSECURITY_ATTRIBUTES lpSecurityAttributes, + DWORD Flags + ); +# 1483 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winreg.h" +#pragma warning(pop) + + + +} +# 180 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" 1 +# 33 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" +extern "C" { + + + +#pragma warning(push) +#pragma warning(disable: 4820) +# 51 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\wnnc.h" 1 +# 51 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" 2 +# 100 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" +typedef struct _NETRESOURCEA { + DWORD dwScope; + DWORD dwType; + DWORD dwDisplayType; + DWORD dwUsage; + LPSTR lpLocalName; + LPSTR lpRemoteName; + LPSTR lpComment ; + LPSTR lpProvider; +}NETRESOURCEA, *LPNETRESOURCEA; +typedef struct _NETRESOURCEW { + DWORD dwScope; + DWORD dwType; + DWORD dwDisplayType; + DWORD dwUsage; + LPWSTR lpLocalName; + LPWSTR lpRemoteName; + LPWSTR lpComment ; + LPWSTR lpProvider; +}NETRESOURCEW, *LPNETRESOURCEW; + +typedef NETRESOURCEW NETRESOURCE; +typedef LPNETRESOURCEW LPNETRESOURCE; +# 158 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" +DWORD __stdcall +WNetAddConnectionA( + LPCSTR lpRemoteName, + LPCSTR lpPassword, + LPCSTR lpLocalName + ); + +DWORD __stdcall +WNetAddConnectionW( + LPCWSTR lpRemoteName, + LPCWSTR lpPassword, + LPCWSTR lpLocalName + ); + + + + + + + +DWORD __stdcall +WNetAddConnection2A( + LPNETRESOURCEA lpNetResource, + LPCSTR lpPassword, + LPCSTR lpUserName, + DWORD dwFlags + ); + +DWORD __stdcall +WNetAddConnection2W( + LPNETRESOURCEW lpNetResource, + LPCWSTR lpPassword, + LPCWSTR lpUserName, + DWORD dwFlags + ); + + + + + + + +DWORD __stdcall +WNetAddConnection3A( + HWND hwndOwner, + LPNETRESOURCEA lpNetResource, + LPCSTR lpPassword, + LPCSTR lpUserName, + DWORD dwFlags + ); + +DWORD __stdcall +WNetAddConnection3W( + HWND hwndOwner, + LPNETRESOURCEW lpNetResource, + LPCWSTR lpPassword, + LPCWSTR lpUserName, + DWORD dwFlags + ); + + + + + + + +DWORD __stdcall +WNetCancelConnectionA( + LPCSTR lpName, + BOOL fForce + ); + +DWORD __stdcall +WNetCancelConnectionW( + LPCWSTR lpName, + BOOL fForce + ); + + + + + + + +DWORD __stdcall +WNetCancelConnection2A( + LPCSTR lpName, + DWORD dwFlags, + BOOL fForce + ); + +DWORD __stdcall +WNetCancelConnection2W( + LPCWSTR lpName, + DWORD dwFlags, + BOOL fForce + ); + + + + + + + +DWORD __stdcall +WNetGetConnectionA( + LPCSTR lpLocalName, + LPSTR lpRemoteName, + LPDWORD lpnLength + ); + +DWORD __stdcall +WNetGetConnectionW( + LPCWSTR lpLocalName, + LPWSTR lpRemoteName, + LPDWORD lpnLength + ); +# 290 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" +DWORD __stdcall +WNetRestoreSingleConnectionW( + HWND hwndParent, + LPCWSTR lpDevice, + BOOL fUseUI + ); +# 315 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" +DWORD __stdcall +WNetUseConnectionA( + HWND hwndOwner, + LPNETRESOURCEA lpNetResource, + LPCSTR lpPassword, + LPCSTR lpUserId, + DWORD dwFlags, + LPSTR lpAccessName, + LPDWORD lpBufferSize, + LPDWORD lpResult + ); + +DWORD __stdcall +WNetUseConnectionW( + HWND hwndOwner, + LPNETRESOURCEW lpNetResource, + LPCWSTR lpPassword, + LPCWSTR lpUserId, + DWORD dwFlags, + LPWSTR lpAccessName, + LPDWORD lpBufferSize, + LPDWORD lpResult + ); +# 350 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" +DWORD __stdcall +WNetConnectionDialog( + HWND hwnd, + DWORD dwType + ); + + +DWORD __stdcall +WNetDisconnectDialog( + HWND hwnd, + DWORD dwType + ); + + +typedef struct _CONNECTDLGSTRUCTA{ + DWORD cbStructure; + HWND hwndOwner; + LPNETRESOURCEA lpConnRes; + DWORD dwFlags; + DWORD dwDevNum; +} CONNECTDLGSTRUCTA, *LPCONNECTDLGSTRUCTA; +typedef struct _CONNECTDLGSTRUCTW{ + DWORD cbStructure; + HWND hwndOwner; + LPNETRESOURCEW lpConnRes; + DWORD dwFlags; + DWORD dwDevNum; +} CONNECTDLGSTRUCTW, *LPCONNECTDLGSTRUCTW; + +typedef CONNECTDLGSTRUCTW CONNECTDLGSTRUCT; +typedef LPCONNECTDLGSTRUCTW LPCONNECTDLGSTRUCT; +# 400 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" +DWORD __stdcall +WNetConnectionDialog1A( + LPCONNECTDLGSTRUCTA lpConnDlgStruct + ); + +DWORD __stdcall +WNetConnectionDialog1W( + LPCONNECTDLGSTRUCTW lpConnDlgStruct + ); + + + + + + +typedef struct _DISCDLGSTRUCTA{ + DWORD cbStructure; + HWND hwndOwner; + LPSTR lpLocalName; + LPSTR lpRemoteName; + DWORD dwFlags; +} DISCDLGSTRUCTA, *LPDISCDLGSTRUCTA; +typedef struct _DISCDLGSTRUCTW{ + DWORD cbStructure; + HWND hwndOwner; + LPWSTR lpLocalName; + LPWSTR lpRemoteName; + DWORD dwFlags; +} DISCDLGSTRUCTW, *LPDISCDLGSTRUCTW; + +typedef DISCDLGSTRUCTW DISCDLGSTRUCT; +typedef LPDISCDLGSTRUCTW LPDISCDLGSTRUCT; +# 441 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" +DWORD __stdcall +WNetDisconnectDialog1A( + LPDISCDLGSTRUCTA lpConnDlgStruct + ); + +DWORD __stdcall +WNetDisconnectDialog1W( + LPDISCDLGSTRUCTW lpConnDlgStruct + ); +# 462 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" +DWORD __stdcall +WNetOpenEnumA( + DWORD dwScope, + DWORD dwType, + DWORD dwUsage, + LPNETRESOURCEA lpNetResource, + LPHANDLE lphEnum + ); + +DWORD __stdcall +WNetOpenEnumW( + DWORD dwScope, + DWORD dwType, + DWORD dwUsage, + LPNETRESOURCEW lpNetResource, + LPHANDLE lphEnum + ); + + + + + + + +DWORD __stdcall +WNetEnumResourceA( + HANDLE hEnum, + LPDWORD lpcCount, + LPVOID lpBuffer, + LPDWORD lpBufferSize + ); + +DWORD __stdcall +WNetEnumResourceW( + HANDLE hEnum, + LPDWORD lpcCount, + LPVOID lpBuffer, + LPDWORD lpBufferSize + ); + + + + + + + +DWORD __stdcall +WNetCloseEnum( + HANDLE hEnum + ); + + + +DWORD __stdcall +WNetGetResourceParentA( + LPNETRESOURCEA lpNetResource, + LPVOID lpBuffer, + LPDWORD lpcbBuffer + ); + +DWORD __stdcall +WNetGetResourceParentW( + LPNETRESOURCEW lpNetResource, + LPVOID lpBuffer, + LPDWORD lpcbBuffer + ); + + + + + + + +DWORD __stdcall +WNetGetResourceInformationA( + LPNETRESOURCEA lpNetResource, + LPVOID lpBuffer, + LPDWORD lpcbBuffer, + LPSTR *lplpSystem + ); + +DWORD __stdcall +WNetGetResourceInformationW( + LPNETRESOURCEW lpNetResource, + LPVOID lpBuffer, + LPDWORD lpcbBuffer, + LPWSTR *lplpSystem + ); +# 564 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" +typedef struct _UNIVERSAL_NAME_INFOA { + LPSTR lpUniversalName; +}UNIVERSAL_NAME_INFOA, *LPUNIVERSAL_NAME_INFOA; +typedef struct _UNIVERSAL_NAME_INFOW { + LPWSTR lpUniversalName; +}UNIVERSAL_NAME_INFOW, *LPUNIVERSAL_NAME_INFOW; + +typedef UNIVERSAL_NAME_INFOW UNIVERSAL_NAME_INFO; +typedef LPUNIVERSAL_NAME_INFOW LPUNIVERSAL_NAME_INFO; + + + + + +typedef struct _REMOTE_NAME_INFOA { + LPSTR lpUniversalName; + LPSTR lpConnectionName; + LPSTR lpRemainingPath; +}REMOTE_NAME_INFOA, *LPREMOTE_NAME_INFOA; +typedef struct _REMOTE_NAME_INFOW { + LPWSTR lpUniversalName; + LPWSTR lpConnectionName; + LPWSTR lpRemainingPath; +}REMOTE_NAME_INFOW, *LPREMOTE_NAME_INFOW; + +typedef REMOTE_NAME_INFOW REMOTE_NAME_INFO; +typedef LPREMOTE_NAME_INFOW LPREMOTE_NAME_INFO; + + + + + + +DWORD __stdcall +WNetGetUniversalNameA( + LPCSTR lpLocalPath, + DWORD dwInfoLevel, + LPVOID lpBuffer, + LPDWORD lpBufferSize + ); + +DWORD __stdcall +WNetGetUniversalNameW( + LPCWSTR lpLocalPath, + DWORD dwInfoLevel, + LPVOID lpBuffer, + LPDWORD lpBufferSize + ); +# 622 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" +DWORD __stdcall +WNetGetUserA( + LPCSTR lpName, + LPSTR lpUserName, + LPDWORD lpnLength + ); + + + + +DWORD __stdcall +WNetGetUserW( + LPCWSTR lpName, + LPWSTR lpUserName, + LPDWORD lpnLength + ); +# 660 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" +DWORD __stdcall +WNetGetProviderNameA( + DWORD dwNetType, + LPSTR lpProviderName, + LPDWORD lpBufferSize + ); + +DWORD __stdcall +WNetGetProviderNameW( + DWORD dwNetType, + LPWSTR lpProviderName, + LPDWORD lpBufferSize + ); + + + + + + +typedef struct _NETINFOSTRUCT{ + DWORD cbStructure; + DWORD dwProviderVersion; + DWORD dwStatus; + DWORD dwCharacteristics; + ULONG_PTR dwHandle; + WORD wNetType; + DWORD dwPrinters; + DWORD dwDrives; +} NETINFOSTRUCT, *LPNETINFOSTRUCT; + + + + + + +DWORD __stdcall +WNetGetNetworkInformationA( + LPCSTR lpProvider, + LPNETINFOSTRUCT lpNetInfoStruct + ); + +DWORD __stdcall +WNetGetNetworkInformationW( + LPCWSTR lpProvider, + LPNETINFOSTRUCT lpNetInfoStruct + ); +# 719 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" +DWORD __stdcall +WNetGetLastErrorA( + LPDWORD lpError, + LPSTR lpErrorBuf, + DWORD nErrorBufSize, + LPSTR lpNameBuf, + DWORD nNameBufSize + ); + +DWORD __stdcall +WNetGetLastErrorW( + LPDWORD lpError, + LPWSTR lpErrorBuf, + DWORD nErrorBufSize, + LPWSTR lpNameBuf, + DWORD nNameBufSize + ); +# 811 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" +typedef struct _NETCONNECTINFOSTRUCT{ + DWORD cbStructure; + DWORD dwFlags; + DWORD dwSpeed; + DWORD dwDelay; + DWORD dwOptDataSize; +} NETCONNECTINFOSTRUCT, *LPNETCONNECTINFOSTRUCT; + + + + + + + +DWORD __stdcall +MultinetGetConnectionPerformanceA( + LPNETRESOURCEA lpNetResource, + LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct + ); + +DWORD __stdcall +MultinetGetConnectionPerformanceW( + LPNETRESOURCEW lpNetResource, + LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct + ); +# 849 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winnetwk.h" +#pragma warning(pop) + + + +} +# 183 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\cderr.h" 1 +# 187 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dde.h" 1 +# 22 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dde.h" +#pragma warning(push) +#pragma warning(disable: 4820) + + + +extern "C" { +# 60 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dde.h" +typedef struct { + + unsigned short bAppReturnCode:8, + reserved:6, + fBusy:1, + fAck:1; + + + +} DDEACK; +# 79 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dde.h" +typedef struct { + + unsigned short reserved:14, + fDeferUpd:1, + fAckReq:1; + + + + short cfFormat; +} DDEADVISE; +# 100 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dde.h" +typedef struct { + + unsigned short unused:12, + fResponse:1, + fRelease:1, + reserved:1, + fAckReq:1; + + + + short cfFormat; + BYTE Value[1]; +} DDEDATA; +# 124 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dde.h" +typedef struct { + + unsigned short unused:13, + + fRelease:1, + fReserved:2; + + + + short cfFormat; + BYTE Value[1]; + + +} DDEPOKE; +# 149 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dde.h" +typedef struct { + + unsigned short unused:13, + fRelease:1, + fDeferUpd:1, + fAckReq:1; + + + + short cfFormat; +} DDELN; + +typedef struct { + + unsigned short unused:12, + fAck:1, + fRelease:1, + fReserved:1, + fAckReq:1; + + + + short cfFormat; + BYTE rgb[1]; +} DDEUP; + + + + + + +BOOL +__stdcall +DdeSetQualityOfService( + HWND hwndClient, + const SECURITY_QUALITY_OF_SERVICE *pqosNew, + PSECURITY_QUALITY_OF_SERVICE pqosPrev); + +BOOL +__stdcall +ImpersonateDdeClientWindow( + HWND hWndClient, + HWND hWndServer); + + + + +LPARAM __stdcall PackDDElParam( UINT msg, UINT_PTR uiLo, UINT_PTR uiHi); +BOOL __stdcall UnpackDDElParam( UINT msg, LPARAM lParam, PUINT_PTR puiLo, PUINT_PTR puiHi); +BOOL __stdcall FreeDDElParam( UINT msg, LPARAM lParam); +LPARAM __stdcall ReuseDDElParam(LPARAM lParam, UINT msgIn, UINT msgOut, UINT_PTR uiLo, UINT_PTR uiHi); + + + + + +} + + + +#pragma warning(pop) +# 188 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ddeml.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ddeml.h" +#pragma warning(push) +#pragma warning(disable: 4820) + + + +extern "C" { +# 35 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ddeml.h" +struct HCONVLIST__{int unused;}; typedef struct HCONVLIST__ *HCONVLIST; +struct HCONV__{int unused;}; typedef struct HCONV__ *HCONV; +struct HSZ__{int unused;}; typedef struct HSZ__ *HSZ; +struct HDDEDATA__{int unused;}; typedef struct HDDEDATA__ *HDDEDATA; + + + + +typedef struct tagHSZPAIR { + HSZ hszSvc; + HSZ hszTopic; +} HSZPAIR, *PHSZPAIR; + + + + +typedef struct tagCONVCONTEXT { + UINT cb; + UINT wFlags; + UINT wCountryID; + int iCodePage; + DWORD dwLangID; + DWORD dwSecurity; + SECURITY_QUALITY_OF_SERVICE qos; +} CONVCONTEXT, *PCONVCONTEXT; + + + + +typedef struct tagCONVINFO { + DWORD cb; + DWORD_PTR hUser; + HCONV hConvPartner; + HSZ hszSvcPartner; + HSZ hszServiceReq; + HSZ hszTopic; + HSZ hszItem; + UINT wFmt; + UINT wType; + UINT wStatus; + UINT wConvst; + UINT wLastError; + HCONVLIST hConvList; + CONVCONTEXT ConvCtxt; + HWND hwnd; + HWND hwndPartner; +} CONVINFO, *PCONVINFO; +# 212 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ddeml.h" +typedef HDDEDATA __stdcall FNCALLBACK(UINT wType, UINT wFmt, HCONV hConv, + HSZ hsz1, HSZ hsz2, HDDEDATA hData, ULONG_PTR dwData1, ULONG_PTR dwData2); +typedef HDDEDATA (__stdcall *PFNCALLBACK)(UINT wType, UINT wFmt, HCONV hConv, + HSZ hsz1, HSZ hsz2, HDDEDATA hData, ULONG_PTR dwData1, ULONG_PTR dwData2); + + + + + +UINT +__stdcall +DdeInitializeA( + LPDWORD pidInst, + PFNCALLBACK pfnCallback, + DWORD afCmd, + DWORD ulRes); +UINT +__stdcall +DdeInitializeW( + LPDWORD pidInst, + PFNCALLBACK pfnCallback, + DWORD afCmd, + DWORD ulRes); +# 272 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ddeml.h" +BOOL +__stdcall +DdeUninitialize( + DWORD idInst); + + + + +HCONVLIST +__stdcall +DdeConnectList( + DWORD idInst, + HSZ hszService, + HSZ hszTopic, + HCONVLIST hConvList, + PCONVCONTEXT pCC); + +HCONV +__stdcall +DdeQueryNextServer( + HCONVLIST hConvList, + HCONV hConvPrev); +BOOL +__stdcall +DdeDisconnectList( + HCONVLIST hConvList); + + + + +HCONV +__stdcall +DdeConnect( + DWORD idInst, + HSZ hszService, + HSZ hszTopic, + PCONVCONTEXT pCC); + +BOOL +__stdcall +DdeDisconnect( + HCONV hConv); + +HCONV +__stdcall +DdeReconnect( + HCONV hConv); + +UINT +__stdcall +DdeQueryConvInfo( + HCONV hConv, + DWORD idTransaction, + PCONVINFO pConvInfo); + +BOOL +__stdcall +DdeSetUserHandle( + HCONV hConv, + DWORD id, + DWORD_PTR hUser); + +BOOL +__stdcall +DdeAbandonTransaction( + DWORD idInst, + HCONV hConv, + DWORD idTransaction); + + + + + +BOOL +__stdcall +DdePostAdvise( + DWORD idInst, + HSZ hszTopic, + HSZ hszItem); + +BOOL +__stdcall +DdeEnableCallback( + DWORD idInst, + HCONV hConv, + UINT wCmd); + +BOOL +__stdcall +DdeImpersonateClient( + HCONV hConv); + + + + + + + +HDDEDATA +__stdcall +DdeNameService( + DWORD idInst, + HSZ hsz1, + HSZ hsz2, + UINT afCmd); +# 386 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ddeml.h" +HDDEDATA +__stdcall +DdeClientTransaction( + LPBYTE pData, + DWORD cbData, + HCONV hConv, + HSZ hszItem, + UINT wFmt, + UINT wType, + DWORD dwTimeout, + LPDWORD pdwResult); + + + + + + +HDDEDATA +__stdcall +DdeCreateDataHandle( + DWORD idInst, + LPBYTE pSrc, + DWORD cb, + DWORD cbOff, + HSZ hszItem, + UINT wFmt, + UINT afCmd); + +HDDEDATA +__stdcall +DdeAddData( + HDDEDATA hData, + LPBYTE pSrc, + DWORD cb, + DWORD cbOff); + +DWORD +__stdcall +DdeGetData( + HDDEDATA hData, + LPBYTE pDst, + DWORD cbMax, + DWORD cbOff); + +LPBYTE +__stdcall +DdeAccessData( + HDDEDATA hData, + LPDWORD pcbDataSize); + +BOOL +__stdcall +DdeUnaccessData( + HDDEDATA hData); + +BOOL +__stdcall +DdeFreeDataHandle( + HDDEDATA hData); + + + + +UINT +__stdcall +DdeGetLastError( + DWORD idInst); +# 480 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ddeml.h" +HSZ +__stdcall +DdeCreateStringHandleA( + DWORD idInst, + LPCSTR psz, + int iCodePage); +HSZ +__stdcall +DdeCreateStringHandleW( + DWORD idInst, + LPCWSTR psz, + int iCodePage); + + + + + + +DWORD +__stdcall +DdeQueryStringA( + DWORD idInst, + HSZ hsz, + LPSTR psz, + DWORD cchMax, + int iCodePage); +DWORD +__stdcall +DdeQueryStringW( + DWORD idInst, + HSZ hsz, + LPWSTR psz, + DWORD cchMax, + int iCodePage); + + + + + + +BOOL +__stdcall +DdeFreeStringHandle( + DWORD idInst, + HSZ hsz); + +BOOL +__stdcall +DdeKeepStringHandle( + DWORD idInst, + HSZ hsz); + +int +__stdcall +DdeCmpStringHandles( + HSZ hsz1, + HSZ hsz2); + + + + + + +typedef struct tagDDEML_MSG_HOOK_DATA { + UINT_PTR uiLo; + UINT_PTR uiHi; + DWORD cbData; + DWORD Data[8]; +} DDEML_MSG_HOOK_DATA, *PDDEML_MSG_HOOK_DATA; + + +typedef struct tagMONMSGSTRUCT { + UINT cb; + HWND hwndTo; + DWORD dwTime; + HANDLE hTask; + UINT wMsg; + WPARAM wParam; + LPARAM lParam; + DDEML_MSG_HOOK_DATA dmhd; +} MONMSGSTRUCT, *PMONMSGSTRUCT; + +typedef struct tagMONCBSTRUCT { + UINT cb; + DWORD dwTime; + HANDLE hTask; + DWORD dwRet; + UINT wType; + UINT wFmt; + HCONV hConv; + HSZ hsz1; + HSZ hsz2; + HDDEDATA hData; + ULONG_PTR dwData1; + ULONG_PTR dwData2; + CONVCONTEXT cc; + DWORD cbData; + DWORD Data[8]; +} MONCBSTRUCT, *PMONCBSTRUCT; + +typedef struct tagMONHSZSTRUCTA { + UINT cb; + BOOL fsAction; + DWORD dwTime; + HSZ hsz; + HANDLE hTask; + CHAR str[1]; +} MONHSZSTRUCTA, *PMONHSZSTRUCTA; +typedef struct tagMONHSZSTRUCTW { + UINT cb; + BOOL fsAction; + DWORD dwTime; + HSZ hsz; + HANDLE hTask; + WCHAR str[1]; +} MONHSZSTRUCTW, *PMONHSZSTRUCTW; + +typedef MONHSZSTRUCTW MONHSZSTRUCT; +typedef PMONHSZSTRUCTW PMONHSZSTRUCT; +# 609 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ddeml.h" +typedef struct tagMONERRSTRUCT { + UINT cb; + UINT wLastError; + DWORD dwTime; + HANDLE hTask; +} MONERRSTRUCT, *PMONERRSTRUCT; + +typedef struct tagMONLINKSTRUCT { + UINT cb; + DWORD dwTime; + HANDLE hTask; + BOOL fEstablished; + BOOL fNoData; + HSZ hszSvc; + HSZ hszTopic; + HSZ hszItem; + UINT wFmt; + BOOL fServer; + HCONV hConvServer; + HCONV hConvClient; +} MONLINKSTRUCT, *PMONLINKSTRUCT; + +typedef struct tagMONCONVSTRUCT { + UINT cb; + BOOL fConnect; + DWORD dwTime; + HANDLE hTask; + HSZ hszSvc; + HSZ hszTopic; + HCONV hConvClient; + HCONV hConvServer; +} MONCONVSTRUCT, *PMONCONVSTRUCT; +# 666 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ddeml.h" +} + + + +#pragma warning(pop) +# 189 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dlgs.h" 1 +# 262 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dlgs.h" +typedef struct tagCRGB +{ + BYTE bRed; + BYTE bGreen; + BYTE bBlue; + BYTE bExtra; +} CRGB; +# 190 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\lzexpand.h" 1 +# 26 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\lzexpand.h" +extern "C" { +# 52 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\lzexpand.h" +INT +__stdcall +LZStart( + void + ); + +void +__stdcall +LZDone( + void + ); + + + + +LONG +__stdcall +CopyLZFile( + INT hfSource, + INT hfDest + ); + + + +LONG +__stdcall +LZCopy( + INT hfSource, + INT hfDest + ); + + + +INT +__stdcall +LZInit( + INT hfSource + ); + + + +INT +__stdcall +GetExpandedNameA( + LPSTR lpszSource, + LPSTR lpszBuffer + ); + + +INT +__stdcall +GetExpandedNameW( + LPWSTR lpszSource, + LPWSTR lpszBuffer + ); +# 115 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\lzexpand.h" +INT +__stdcall +LZOpenFileA( + LPSTR lpFileName, + LPOFSTRUCT lpReOpenBuf, + WORD wStyle + ); + + +INT +__stdcall +LZOpenFileW( + LPWSTR lpFileName, + LPOFSTRUCT lpReOpenBuf, + WORD wStyle + ); +# 139 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\lzexpand.h" +LONG +__stdcall +LZSeek( + INT hFile, + LONG lOffset, + INT iOrigin + ); + + + +INT +__stdcall +LZRead( + INT hFile, + CHAR* lpBuffer, + INT cbRead + ); + +void +__stdcall +LZClose( + INT hFile + ); + + + + + +} +# 192 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsystem.h" 1 +# 34 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsystem.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsyscom.h" 1 +# 18 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsyscom.h" +#pragma warning(disable: 4201) + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" +#pragma warning(disable: 4103) + +#pragma pack(push,1) +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsyscom.h" 2 + + + + + + + + +extern "C" { +# 94 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsyscom.h" +typedef UINT MMVERSION; + + + +typedef UINT MMRESULT; + + + +typedef UINT *LPUINT; + + + + +typedef struct mmtime_tag +{ + UINT wType; + union + { + DWORD ms; + DWORD sample; + DWORD cb; + DWORD ticks; + + + struct + { + BYTE hour; + BYTE min; + BYTE sec; + BYTE frame; + BYTE fps; + BYTE dummy; + + BYTE pad[2]; + + } smpte; + + + struct + { + DWORD songptrpos; + } midi; + } u; +} MMTIME, *PMMTIME, *NPMMTIME, *LPMMTIME; +# 275 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsyscom.h" +struct HDRVR__{int unused;}; typedef struct HDRVR__ *HDRVR; +# 297 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsyscom.h" +typedef void (__stdcall DRVCALLBACK)(HDRVR hdrvr, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2); + +typedef DRVCALLBACK *LPDRVCALLBACK; + +typedef DRVCALLBACK *PDRVCALLBACK; + + + + + + +} + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 312 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsyscom.h" 2 +# 34 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsystem.h" 2 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" +#pragma warning(disable: 4103) + +#pragma pack(push,1) +# 37 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsystem.h" 2 + + + + + + + + +extern "C" { +# 61 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsystem.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsyscom.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" 2 +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +extern "C" { +# 54 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef DWORD MCIERROR; + + + + +typedef UINT MCIDEVICEID; + + + +typedef UINT (__stdcall *YIELDPROC)(MCIDEVICEID mciId, DWORD dwYieldData); + + + + +__declspec(dllimport) +MCIERROR +__stdcall +mciSendCommandA( + MCIDEVICEID mciId, + UINT uMsg, + DWORD_PTR dwParam1, + DWORD_PTR dwParam2 + ); + +__declspec(dllimport) +MCIERROR +__stdcall +mciSendCommandW( + MCIDEVICEID mciId, + UINT uMsg, + DWORD_PTR dwParam1, + DWORD_PTR dwParam2 + ); + + + + + + +__declspec(dllimport) +MCIERROR +__stdcall +mciSendStringA( + LPCSTR lpstrCommand, + LPSTR lpstrReturnString, + UINT uReturnLength, + HWND hwndCallback + ); + +__declspec(dllimport) +MCIERROR +__stdcall +mciSendStringW( + LPCWSTR lpstrCommand, + LPWSTR lpstrReturnString, + UINT uReturnLength, + HWND hwndCallback + ); + + + + + + +__declspec(dllimport) +MCIDEVICEID +__stdcall +mciGetDeviceIDA( + LPCSTR pszDevice + ); + +__declspec(dllimport) +MCIDEVICEID +__stdcall +mciGetDeviceIDW( + LPCWSTR pszDevice + ); + + + + + + +__declspec(dllimport) +MCIDEVICEID +__stdcall +mciGetDeviceIDFromElementIDA( + DWORD dwElementID, + LPCSTR lpstrType + ); + +__declspec(dllimport) +MCIDEVICEID +__stdcall +mciGetDeviceIDFromElementIDW( + DWORD dwElementID, + LPCWSTR lpstrType + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +mciGetErrorStringA( + MCIERROR mcierr, + LPSTR pszText, + UINT cchText + ); + +__declspec(dllimport) +BOOL +__stdcall +mciGetErrorStringW( + MCIERROR mcierr, + LPWSTR pszText, + UINT cchText + ); +# 189 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +__declspec(dllimport) +BOOL +__stdcall +mciSetYieldProc( + MCIDEVICEID mciId, + YIELDPROC fpYieldProc, + DWORD dwYieldData + ); + + + + +__declspec(dllimport) +HTASK +__stdcall +mciGetCreatorTask( + MCIDEVICEID mciId + ); + +__declspec(dllimport) +YIELDPROC +__stdcall +mciGetYieldProc( + MCIDEVICEID mciId, + LPDWORD pdwYieldData + ); +# 521 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_GENERIC_PARMS { + DWORD_PTR dwCallback; +} MCI_GENERIC_PARMS, *PMCI_GENERIC_PARMS, *LPMCI_GENERIC_PARMS; + + + + + +typedef struct tagMCI_OPEN_PARMSA { + DWORD_PTR dwCallback; + MCIDEVICEID wDeviceID; + LPCSTR lpstrDeviceType; + LPCSTR lpstrElementName; + LPCSTR lpstrAlias; +} MCI_OPEN_PARMSA, *PMCI_OPEN_PARMSA, *LPMCI_OPEN_PARMSA; +typedef struct tagMCI_OPEN_PARMSW { + DWORD_PTR dwCallback; + MCIDEVICEID wDeviceID; + LPCWSTR lpstrDeviceType; + LPCWSTR lpstrElementName; + LPCWSTR lpstrAlias; +} MCI_OPEN_PARMSW, *PMCI_OPEN_PARMSW, *LPMCI_OPEN_PARMSW; + +typedef MCI_OPEN_PARMSW MCI_OPEN_PARMS; +typedef PMCI_OPEN_PARMSW PMCI_OPEN_PARMS; +typedef LPMCI_OPEN_PARMSW LPMCI_OPEN_PARMS; +# 566 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_PLAY_PARMS { + DWORD_PTR dwCallback; + DWORD dwFrom; + DWORD dwTo; +} MCI_PLAY_PARMS, *PMCI_PLAY_PARMS, *LPMCI_PLAY_PARMS; + + + +typedef struct tagMCI_SEEK_PARMS { + DWORD_PTR dwCallback; + DWORD dwTo; +} MCI_SEEK_PARMS, *PMCI_SEEK_PARMS, *LPMCI_SEEK_PARMS; + + + +typedef struct tagMCI_STATUS_PARMS { + DWORD_PTR dwCallback; + DWORD_PTR dwReturn; + DWORD dwItem; + DWORD dwTrack; +} MCI_STATUS_PARMS, *PMCI_STATUS_PARMS, * LPMCI_STATUS_PARMS; + + + + + +typedef struct tagMCI_INFO_PARMSA { + DWORD_PTR dwCallback; + LPSTR lpstrReturn; + DWORD dwRetSize; +} MCI_INFO_PARMSA, * LPMCI_INFO_PARMSA; +typedef struct tagMCI_INFO_PARMSW { + DWORD_PTR dwCallback; + LPWSTR lpstrReturn; + DWORD dwRetSize; +} MCI_INFO_PARMSW, * LPMCI_INFO_PARMSW; + +typedef MCI_INFO_PARMSW MCI_INFO_PARMS; +typedef LPMCI_INFO_PARMSW LPMCI_INFO_PARMS; +# 620 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_GETDEVCAPS_PARMS { + DWORD_PTR dwCallback; + DWORD dwReturn; + DWORD dwItem; +} MCI_GETDEVCAPS_PARMS, *PMCI_GETDEVCAPS_PARMS, * LPMCI_GETDEVCAPS_PARMS; + + + + + +typedef struct tagMCI_SYSINFO_PARMSA { + DWORD_PTR dwCallback; + LPSTR lpstrReturn; + DWORD dwRetSize; + DWORD dwNumber; + UINT wDeviceType; +} MCI_SYSINFO_PARMSA, *PMCI_SYSINFO_PARMSA, * LPMCI_SYSINFO_PARMSA; +typedef struct tagMCI_SYSINFO_PARMSW { + DWORD_PTR dwCallback; + LPWSTR lpstrReturn; + DWORD dwRetSize; + DWORD dwNumber; + UINT wDeviceType; +} MCI_SYSINFO_PARMSW, *PMCI_SYSINFO_PARMSW, * LPMCI_SYSINFO_PARMSW; + +typedef MCI_SYSINFO_PARMSW MCI_SYSINFO_PARMS; +typedef PMCI_SYSINFO_PARMSW PMCI_SYSINFO_PARMS; +typedef LPMCI_SYSINFO_PARMSW LPMCI_SYSINFO_PARMS; +# 666 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_SET_PARMS { + DWORD_PTR dwCallback; + DWORD dwTimeFormat; + DWORD dwAudio; +} MCI_SET_PARMS, *PMCI_SET_PARMS, *LPMCI_SET_PARMS; + + + +typedef struct tagMCI_BREAK_PARMS { + DWORD_PTR dwCallback; + + int nVirtKey; + HWND hwndBreak; + + + + + + +} MCI_BREAK_PARMS, *PMCI_BREAK_PARMS, * LPMCI_BREAK_PARMS; + + + + + + +typedef struct tagMCI_SAVE_PARMSA { + DWORD_PTR dwCallback; + LPCSTR lpfilename; +} MCI_SAVE_PARMSA, *PMCI_SAVE_PARMSA, * LPMCI_SAVE_PARMSA; +typedef struct tagMCI_SAVE_PARMSW { + DWORD_PTR dwCallback; + LPCWSTR lpfilename; +} MCI_SAVE_PARMSW, *PMCI_SAVE_PARMSW, * LPMCI_SAVE_PARMSW; + +typedef MCI_SAVE_PARMSW MCI_SAVE_PARMS; +typedef PMCI_SAVE_PARMSW PMCI_SAVE_PARMS; +typedef LPMCI_SAVE_PARMSW LPMCI_SAVE_PARMS; +# 721 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_LOAD_PARMSA { + DWORD_PTR dwCallback; + LPCSTR lpfilename; +} MCI_LOAD_PARMSA, *PMCI_LOAD_PARMSA, * LPMCI_LOAD_PARMSA; +typedef struct tagMCI_LOAD_PARMSW { + DWORD_PTR dwCallback; + LPCWSTR lpfilename; +} MCI_LOAD_PARMSW, *PMCI_LOAD_PARMSW, * LPMCI_LOAD_PARMSW; + +typedef MCI_LOAD_PARMSW MCI_LOAD_PARMS; +typedef PMCI_LOAD_PARMSW PMCI_LOAD_PARMS; +typedef LPMCI_LOAD_PARMSW LPMCI_LOAD_PARMS; +# 748 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_RECORD_PARMS { + DWORD_PTR dwCallback; + DWORD dwFrom; + DWORD dwTo; +} MCI_RECORD_PARMS, *LPMCI_RECORD_PARMS; +# 808 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_VD_PLAY_PARMS { + DWORD_PTR dwCallback; + DWORD dwFrom; + DWORD dwTo; + DWORD dwSpeed; +} MCI_VD_PLAY_PARMS, *PMCI_VD_PLAY_PARMS, *LPMCI_VD_PLAY_PARMS; + + + +typedef struct tagMCI_VD_STEP_PARMS { + DWORD_PTR dwCallback; + DWORD dwFrames; +} MCI_VD_STEP_PARMS, *PMCI_VD_STEP_PARMS, *LPMCI_VD_STEP_PARMS; + + + + + +typedef struct tagMCI_VD_ESCAPE_PARMSA { + DWORD_PTR dwCallback; + LPCSTR lpstrCommand; +} MCI_VD_ESCAPE_PARMSA, *PMCI_VD_ESCAPE_PARMSA, *LPMCI_VD_ESCAPE_PARMSA; +typedef struct tagMCI_VD_ESCAPE_PARMSW { + DWORD_PTR dwCallback; + LPCWSTR lpstrCommand; +} MCI_VD_ESCAPE_PARMSW, *PMCI_VD_ESCAPE_PARMSW, *LPMCI_VD_ESCAPE_PARMSW; + +typedef MCI_VD_ESCAPE_PARMSW MCI_VD_ESCAPE_PARMS; +typedef PMCI_VD_ESCAPE_PARMSW PMCI_VD_ESCAPE_PARMS; +typedef LPMCI_VD_ESCAPE_PARMSW LPMCI_VD_ESCAPE_PARMS; +# 902 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_WAVE_OPEN_PARMSA { + DWORD_PTR dwCallback; + MCIDEVICEID wDeviceID; + LPCSTR lpstrDeviceType; + LPCSTR lpstrElementName; + LPCSTR lpstrAlias; + DWORD dwBufferSeconds; +} MCI_WAVE_OPEN_PARMSA, *PMCI_WAVE_OPEN_PARMSA, *LPMCI_WAVE_OPEN_PARMSA; +typedef struct tagMCI_WAVE_OPEN_PARMSW { + DWORD_PTR dwCallback; + MCIDEVICEID wDeviceID; + LPCWSTR lpstrDeviceType; + LPCWSTR lpstrElementName; + LPCWSTR lpstrAlias; + DWORD dwBufferSeconds; +} MCI_WAVE_OPEN_PARMSW, *PMCI_WAVE_OPEN_PARMSW, *LPMCI_WAVE_OPEN_PARMSW; + +typedef MCI_WAVE_OPEN_PARMSW MCI_WAVE_OPEN_PARMS; +typedef PMCI_WAVE_OPEN_PARMSW PMCI_WAVE_OPEN_PARMS; +typedef LPMCI_WAVE_OPEN_PARMSW LPMCI_WAVE_OPEN_PARMS; +# 942 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_WAVE_DELETE_PARMS { + DWORD_PTR dwCallback; + DWORD dwFrom; + DWORD dwTo; +} MCI_WAVE_DELETE_PARMS, *PMCI_WAVE_DELETE_PARMS, *LPMCI_WAVE_DELETE_PARMS; + + + +typedef struct tagMCI_WAVE_SET_PARMS { + DWORD_PTR dwCallback; + DWORD dwTimeFormat; + DWORD dwAudio; + + UINT wInput; + UINT wOutput; + + + + + + + WORD wFormatTag; + WORD wReserved2; + WORD nChannels; + WORD wReserved3; + DWORD nSamplesPerSec; + DWORD nAvgBytesPerSec; + WORD nBlockAlign; + WORD wReserved4; + WORD wBitsPerSample; + WORD wReserved5; +} MCI_WAVE_SET_PARMS, *PMCI_WAVE_SET_PARMS, * LPMCI_WAVE_SET_PARMS; +# 1014 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_SEQ_SET_PARMS { + DWORD_PTR dwCallback; + DWORD dwTimeFormat; + DWORD dwAudio; + DWORD dwTempo; + DWORD dwPort; + DWORD dwSlave; + DWORD dwMaster; + DWORD dwOffset; +} MCI_SEQ_SET_PARMS, *PMCI_SEQ_SET_PARMS, * LPMCI_SEQ_SET_PARMS; +# 1094 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_ANIM_OPEN_PARMSA { + DWORD_PTR dwCallback; + MCIDEVICEID wDeviceID; + LPCSTR lpstrDeviceType; + LPCSTR lpstrElementName; + LPCSTR lpstrAlias; + DWORD dwStyle; + HWND hWndParent; +} MCI_ANIM_OPEN_PARMSA, *PMCI_ANIM_OPEN_PARMSA, *LPMCI_ANIM_OPEN_PARMSA; +typedef struct tagMCI_ANIM_OPEN_PARMSW { + DWORD_PTR dwCallback; + MCIDEVICEID wDeviceID; + LPCWSTR lpstrDeviceType; + LPCWSTR lpstrElementName; + LPCWSTR lpstrAlias; + DWORD dwStyle; + HWND hWndParent; +} MCI_ANIM_OPEN_PARMSW, *PMCI_ANIM_OPEN_PARMSW, *LPMCI_ANIM_OPEN_PARMSW; + +typedef MCI_ANIM_OPEN_PARMSW MCI_ANIM_OPEN_PARMS; +typedef PMCI_ANIM_OPEN_PARMSW PMCI_ANIM_OPEN_PARMS; +typedef LPMCI_ANIM_OPEN_PARMSW LPMCI_ANIM_OPEN_PARMS; +# 1138 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_ANIM_PLAY_PARMS { + DWORD_PTR dwCallback; + DWORD dwFrom; + DWORD dwTo; + DWORD dwSpeed; +} MCI_ANIM_PLAY_PARMS, *PMCI_ANIM_PLAY_PARMS, *LPMCI_ANIM_PLAY_PARMS; + + + +typedef struct tagMCI_ANIM_STEP_PARMS { + DWORD_PTR dwCallback; + DWORD dwFrames; +} MCI_ANIM_STEP_PARMS, *PMCI_ANIM_STEP_PARMS, *LPMCI_ANIM_STEP_PARMS; + + + + + +typedef struct tagMCI_ANIM_WINDOW_PARMSA { + DWORD_PTR dwCallback; + HWND hWnd; + UINT nCmdShow; + LPCSTR lpstrText; +} MCI_ANIM_WINDOW_PARMSA, *PMCI_ANIM_WINDOW_PARMSA, * LPMCI_ANIM_WINDOW_PARMSA; +typedef struct tagMCI_ANIM_WINDOW_PARMSW { + DWORD_PTR dwCallback; + HWND hWnd; + UINT nCmdShow; + LPCWSTR lpstrText; +} MCI_ANIM_WINDOW_PARMSW, *PMCI_ANIM_WINDOW_PARMSW, * LPMCI_ANIM_WINDOW_PARMSW; + +typedef MCI_ANIM_WINDOW_PARMSW MCI_ANIM_WINDOW_PARMS; +typedef PMCI_ANIM_WINDOW_PARMSW PMCI_ANIM_WINDOW_PARMS; +typedef LPMCI_ANIM_WINDOW_PARMSW LPMCI_ANIM_WINDOW_PARMS; +# 1191 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_ANIM_RECT_PARMS { + DWORD_PTR dwCallback; + + + + + RECT rc; + +} MCI_ANIM_RECT_PARMS; +typedef MCI_ANIM_RECT_PARMS * PMCI_ANIM_RECT_PARMS; +typedef MCI_ANIM_RECT_PARMS * LPMCI_ANIM_RECT_PARMS; + + + +typedef struct tagMCI_ANIM_UPDATE_PARMS { + DWORD_PTR dwCallback; + RECT rc; + HDC hDC; +} MCI_ANIM_UPDATE_PARMS, *PMCI_ANIM_UPDATE_PARMS, * LPMCI_ANIM_UPDATE_PARMS; +# 1257 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_OVLY_OPEN_PARMSA { + DWORD_PTR dwCallback; + MCIDEVICEID wDeviceID; + LPCSTR lpstrDeviceType; + LPCSTR lpstrElementName; + LPCSTR lpstrAlias; + DWORD dwStyle; + HWND hWndParent; +} MCI_OVLY_OPEN_PARMSA, *PMCI_OVLY_OPEN_PARMSA, *LPMCI_OVLY_OPEN_PARMSA; +typedef struct tagMCI_OVLY_OPEN_PARMSW { + DWORD_PTR dwCallback; + MCIDEVICEID wDeviceID; + LPCWSTR lpstrDeviceType; + LPCWSTR lpstrElementName; + LPCWSTR lpstrAlias; + DWORD dwStyle; + HWND hWndParent; +} MCI_OVLY_OPEN_PARMSW, *PMCI_OVLY_OPEN_PARMSW, *LPMCI_OVLY_OPEN_PARMSW; + +typedef MCI_OVLY_OPEN_PARMSW MCI_OVLY_OPEN_PARMS; +typedef PMCI_OVLY_OPEN_PARMSW PMCI_OVLY_OPEN_PARMS; +typedef LPMCI_OVLY_OPEN_PARMSW LPMCI_OVLY_OPEN_PARMS; +# 1303 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_OVLY_WINDOW_PARMSA { + DWORD_PTR dwCallback; + HWND hWnd; + UINT nCmdShow; + LPCSTR lpstrText; +} MCI_OVLY_WINDOW_PARMSA, *PMCI_OVLY_WINDOW_PARMSA, * LPMCI_OVLY_WINDOW_PARMSA; +typedef struct tagMCI_OVLY_WINDOW_PARMSW { + DWORD_PTR dwCallback; + HWND hWnd; + UINT nCmdShow; + LPCWSTR lpstrText; +} MCI_OVLY_WINDOW_PARMSW, *PMCI_OVLY_WINDOW_PARMSW, * LPMCI_OVLY_WINDOW_PARMSW; + +typedef MCI_OVLY_WINDOW_PARMSW MCI_OVLY_WINDOW_PARMS; +typedef PMCI_OVLY_WINDOW_PARMSW PMCI_OVLY_WINDOW_PARMS; +typedef LPMCI_OVLY_WINDOW_PARMSW LPMCI_OVLY_WINDOW_PARMS; +# 1337 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_OVLY_RECT_PARMS { + DWORD_PTR dwCallback; + + + + + RECT rc; + +} MCI_OVLY_RECT_PARMS, *PMCI_OVLY_RECT_PARMS, * LPMCI_OVLY_RECT_PARMS; + + + + + +typedef struct tagMCI_OVLY_SAVE_PARMSA { + DWORD_PTR dwCallback; + LPCSTR lpfilename; + RECT rc; +} MCI_OVLY_SAVE_PARMSA, *PMCI_OVLY_SAVE_PARMSA, * LPMCI_OVLY_SAVE_PARMSA; +typedef struct tagMCI_OVLY_SAVE_PARMSW { + DWORD_PTR dwCallback; + LPCWSTR lpfilename; + RECT rc; +} MCI_OVLY_SAVE_PARMSW, *PMCI_OVLY_SAVE_PARMSW, * LPMCI_OVLY_SAVE_PARMSW; + +typedef MCI_OVLY_SAVE_PARMSW MCI_OVLY_SAVE_PARMS; +typedef PMCI_OVLY_SAVE_PARMSW PMCI_OVLY_SAVE_PARMS; +typedef LPMCI_OVLY_SAVE_PARMSW LPMCI_OVLY_SAVE_PARMS; +# 1382 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +typedef struct tagMCI_OVLY_LOAD_PARMSA { + DWORD_PTR dwCallback; + LPCSTR lpfilename; + RECT rc; +} MCI_OVLY_LOAD_PARMSA, *PMCI_OVLY_LOAD_PARMSA, * LPMCI_OVLY_LOAD_PARMSA; +typedef struct tagMCI_OVLY_LOAD_PARMSW { + DWORD_PTR dwCallback; + LPCWSTR lpfilename; + RECT rc; +} MCI_OVLY_LOAD_PARMSW, *PMCI_OVLY_LOAD_PARMSW, * LPMCI_OVLY_LOAD_PARMSW; + +typedef MCI_OVLY_LOAD_PARMSW MCI_OVLY_LOAD_PARMS; +typedef PMCI_OVLY_LOAD_PARMSW PMCI_OVLY_LOAD_PARMS; +typedef LPMCI_OVLY_LOAD_PARMSW LPMCI_OVLY_LOAD_PARMS; +# 1412 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mciapi.h" +DWORD_PTR +__stdcall +mciGetDriverData( + MCIDEVICEID wDeviceID + ); + +UINT +__stdcall +mciLoadCommandResource( + HANDLE hInstance, + LPCWSTR lpResName, + UINT wType + ); + +BOOL +__stdcall +mciSetDriverData( + MCIDEVICEID wDeviceID, + DWORD_PTR dwData + ); + +UINT +__stdcall +mciDriverYield( + MCIDEVICEID wDeviceID + ); + +BOOL +__stdcall +mciDriverNotify( + HANDLE hwndCallback, + MCIDEVICEID wDeviceID, + UINT uStatus + ); + +BOOL +__stdcall +mciFreeCommandResource( + UINT wTable + ); + + + + + + +} +# 61 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsystem.h" 2 + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsyscom.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi.h" 2 +# 41 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi.h" +extern "C" { +# 58 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi.h" +typedef struct DRVCONFIGINFOEX { + DWORD dwDCISize; + LPCWSTR lpszDCISectionName; + LPCWSTR lpszDCIAliasName; + DWORD dnDevNode; +} DRVCONFIGINFOEX, *PDRVCONFIGINFOEX, *NPDRVCONFIGINFOEX, *LPDRVCONFIGINFOEX; +# 97 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi.h" +typedef struct tagDRVCONFIGINFO { + DWORD dwDCISize; + LPCWSTR lpszDCISectionName; + LPCWSTR lpszDCIAliasName; +} DRVCONFIGINFO, *PDRVCONFIGINFO, *NPDRVCONFIGINFO, *LPDRVCONFIGINFO; +# 118 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi.h" +typedef LRESULT (__stdcall* DRIVERPROC)(DWORD_PTR, HDRVR, UINT, LPARAM, LPARAM); + +__declspec(dllimport) +LRESULT +__stdcall +CloseDriver( + HDRVR hDriver, + LPARAM lParam1, + LPARAM lParam2 + ); + +__declspec(dllimport) +HDRVR +__stdcall +OpenDriver( + LPCWSTR szDriverName, + LPCWSTR szSectionName, + LPARAM lParam2 + ); + +__declspec(dllimport) +LRESULT +__stdcall +SendDriverMessage( + HDRVR hDriver, + UINT message, + LPARAM lParam1, + LPARAM lParam2 + ); + +__declspec(dllimport) +HMODULE +__stdcall +DrvGetModuleHandle( + HDRVR hDriver + ); + +__declspec(dllimport) +HMODULE +__stdcall +GetDriverModuleHandle( + HDRVR hDriver + ); + +__declspec(dllimport) +LRESULT +__stdcall +DefDriverProc( + DWORD_PTR dwDriverIdentifier, + HDRVR hdrvr, + UINT uMsg, + LPARAM lParam1, + LPARAM lParam2 + ); +# 201 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi.h" +BOOL +__stdcall +DriverCallback( + DWORD_PTR dwCallback, + DWORD dwFlags, + HDRVR hDevice, + DWORD dwMsg, + DWORD_PTR dwUser, + DWORD_PTR dwParam1, + DWORD_PTR dwParam2 + ); +# 221 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi.h" +LONG +__stdcall +sndOpenSound( + LPCWSTR EventName, + LPCWSTR AppName, + INT32 Flags, + PHANDLE FileHandle + ); +# 245 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi.h" +typedef DWORD (__stdcall *DRIVERMSGPROC)(DWORD, DWORD, DWORD_PTR, DWORD_PTR, DWORD_PTR); + +UINT +__stdcall +mmDrvInstall( + HDRVR hDriver, + LPCWSTR wszDrvEntry, + DRIVERMSGPROC drvMessage, + UINT wFlags + ); +# 291 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi.h" +typedef DWORD FOURCC; +typedef char * HPSTR; +struct HMMIO__{int unused;}; typedef struct HMMIO__ *HMMIO; +typedef LRESULT (__stdcall MMIOPROC)(LPSTR lpmmioinfo, UINT uMsg, + LPARAM lParam1, LPARAM lParam2); +typedef MMIOPROC *LPMMIOPROC; + + + +typedef struct _MMIOINFO +{ + + DWORD dwFlags; + FOURCC fccIOProc; + LPMMIOPROC pIOProc; + UINT wErrorRet; + HTASK htask; + + + LONG cchBuffer; + HPSTR pchBuffer; + HPSTR pchNext; + HPSTR pchEndRead; + HPSTR pchEndWrite; + LONG lBufOffset; + + + LONG lDiskOffset; + DWORD adwInfo[3]; + + + DWORD dwReserved1; + DWORD dwReserved2; + HMMIO hmmio; +} MMIOINFO, *PMMIOINFO, *NPMMIOINFO, *LPMMIOINFO; +typedef const MMIOINFO *LPCMMIOINFO; + + +typedef struct _MMCKINFO +{ + FOURCC ckid; + DWORD cksize; + FOURCC fccType; + DWORD dwDataOffset; + DWORD dwFlags; +} MMCKINFO, *PMMCKINFO, *NPMMCKINFO, *LPMMCKINFO; +typedef const MMCKINFO *LPCMMCKINFO; +# 421 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi.h" +__declspec(dllimport) +FOURCC +__stdcall +mmioStringToFOURCCA( + LPCSTR sz, + UINT uFlags + ); + +__declspec(dllimport) +FOURCC +__stdcall +mmioStringToFOURCCW( + LPCWSTR sz, + UINT uFlags + ); + + + + + + +__declspec(dllimport) +LPMMIOPROC +__stdcall +mmioInstallIOProcA( + FOURCC fccIOProc, + LPMMIOPROC pIOProc, + DWORD dwFlags + ); + +__declspec(dllimport) +LPMMIOPROC +__stdcall +mmioInstallIOProcW( + FOURCC fccIOProc, + LPMMIOPROC pIOProc, + DWORD dwFlags + ); + + + + + + +__declspec(dllimport) +HMMIO +__stdcall +mmioOpenA( + LPSTR pszFileName, + LPMMIOINFO pmmioinfo, + DWORD fdwOpen + ); + +__declspec(dllimport) +HMMIO +__stdcall +mmioOpenW( + LPWSTR pszFileName, + LPMMIOINFO pmmioinfo, + DWORD fdwOpen + ); + + + + + + +__declspec(dllimport) +MMRESULT +__stdcall +mmioRenameA( + LPCSTR pszFileName, + LPCSTR pszNewFileName, + LPCMMIOINFO pmmioinfo, + DWORD fdwRename + ); + +__declspec(dllimport) +MMRESULT +__stdcall +mmioRenameW( + LPCWSTR pszFileName, + LPCWSTR pszNewFileName, + LPCMMIOINFO pmmioinfo, + DWORD fdwRename + ); +# 523 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +mmioClose( + HMMIO hmmio, + UINT fuClose + ); + +__declspec(dllimport) +LONG +__stdcall +mmioRead( + HMMIO hmmio, + HPSTR pch, + LONG cch + ); + +__declspec(dllimport) +LONG +__stdcall +mmioWrite( + HMMIO hmmio, + const char * pch, + LONG cch + ); + +__declspec(dllimport) +LONG +__stdcall +mmioSeek( + HMMIO hmmio, + LONG lOffset, + int iOrigin + ); + +__declspec(dllimport) +MMRESULT +__stdcall +mmioGetInfo( + HMMIO hmmio, + LPMMIOINFO pmmioinfo, + UINT fuInfo + ); + +__declspec(dllimport) +MMRESULT +__stdcall +mmioSetInfo( + HMMIO hmmio, + LPCMMIOINFO pmmioinfo, + UINT fuInfo + ); + +__declspec(dllimport) +MMRESULT +__stdcall +mmioSetBuffer( + HMMIO hmmio, + LPSTR pchBuffer, + LONG cchBuffer, + UINT fuBuffer + ); + +__declspec(dllimport) +MMRESULT +__stdcall +mmioFlush( + HMMIO hmmio, + UINT fuFlush + ); + +__declspec(dllimport) +MMRESULT +__stdcall +mmioAdvance( + HMMIO hmmio, + LPMMIOINFO pmmioinfo, + UINT fuAdvance + ); + +__declspec(dllimport) +LRESULT +__stdcall +mmioSendMessage( + HMMIO hmmio, + UINT uMsg, + LPARAM lParam1, + LPARAM lParam2 + ); + +__declspec(dllimport) +MMRESULT +__stdcall +mmioDescend( + HMMIO hmmio, + LPMMCKINFO pmmcki, + const MMCKINFO * pmmckiParent, + UINT fuDescend + ); + +__declspec(dllimport) +MMRESULT +__stdcall +mmioAscend( + HMMIO hmmio, + LPMMCKINFO pmmcki, + UINT fuAscend + ); + +__declspec(dllimport) +MMRESULT +__stdcall +mmioCreateChunk( + HMMIO hmmio, + LPMMCKINFO pmmcki, + UINT fuCreate + ); +# 648 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi.h" +} +# 66 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsystem.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi2.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi2.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsyscom.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi2.h" 2 +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi2.h" +extern "C" { + + + + + + +typedef void (__stdcall TIMECALLBACK)(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2); +typedef TIMECALLBACK *LPTIMECALLBACK; +# 67 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmiscapi2.h" +__declspec(dllimport) +MMRESULT +__stdcall +timeSetEvent( + UINT uDelay, + UINT uResolution, + LPTIMECALLBACK fptc, + DWORD_PTR dwUser, + UINT fuEvent + ); + +__declspec(dllimport) +MMRESULT +__stdcall +timeKillEvent( + UINT uTimerID + ); + + + + + + +} +# 67 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsystem.h" 2 + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\playsoundapi.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\playsoundapi.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsyscom.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\playsoundapi.h" 2 +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\playsoundapi.h" +extern "C" { +# 55 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\playsoundapi.h" +__declspec(dllimport) +BOOL +__stdcall +sndPlaySoundA( + LPCSTR pszSound, + UINT fuSound + ); + +__declspec(dllimport) +BOOL +__stdcall +sndPlaySoundW( + LPCWSTR pszSound, + UINT fuSound + ); +# 121 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\playsoundapi.h" +__declspec(dllimport) +BOOL +__stdcall +PlaySoundA( + LPCSTR pszSound, + HMODULE hmod, + DWORD fdwSound + ); + +__declspec(dllimport) +BOOL +__stdcall +PlaySoundW( + LPCWSTR pszSound, + HMODULE hmod, + DWORD fdwSound + ); +# 156 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\playsoundapi.h" +} +# 71 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsystem.h" 2 + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsyscom.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" 2 +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +extern "C" { +# 61 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +struct HWAVE__{int unused;}; typedef struct HWAVE__ *HWAVE; +struct HWAVEIN__{int unused;}; typedef struct HWAVEIN__ *HWAVEIN; +struct HWAVEOUT__{int unused;}; typedef struct HWAVEOUT__ *HWAVEOUT; +typedef HWAVEIN *LPHWAVEIN; +typedef HWAVEOUT *LPHWAVEOUT; +typedef DRVCALLBACK WAVECALLBACK; +typedef WAVECALLBACK *LPWAVECALLBACK; +# 93 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +typedef struct wavehdr_tag { + LPSTR lpData; + DWORD dwBufferLength; + DWORD dwBytesRecorded; + DWORD_PTR dwUser; + DWORD dwFlags; + DWORD dwLoops; + struct wavehdr_tag *lpNext; + DWORD_PTR reserved; +} WAVEHDR, *PWAVEHDR, *NPWAVEHDR, *LPWAVEHDR; +# 115 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +typedef struct tagWAVEOUTCAPSA { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[32]; + DWORD dwFormats; + WORD wChannels; + WORD wReserved1; + DWORD dwSupport; +} WAVEOUTCAPSA, *PWAVEOUTCAPSA, *NPWAVEOUTCAPSA, *LPWAVEOUTCAPSA; +typedef struct tagWAVEOUTCAPSW { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[32]; + DWORD dwFormats; + WORD wChannels; + WORD wReserved1; + DWORD dwSupport; +} WAVEOUTCAPSW, *PWAVEOUTCAPSW, *NPWAVEOUTCAPSW, *LPWAVEOUTCAPSW; + +typedef WAVEOUTCAPSW WAVEOUTCAPS; +typedef PWAVEOUTCAPSW PWAVEOUTCAPS; +typedef NPWAVEOUTCAPSW NPWAVEOUTCAPS; +typedef LPWAVEOUTCAPSW LPWAVEOUTCAPS; + + + + + + +typedef struct tagWAVEOUTCAPS2A { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[32]; + DWORD dwFormats; + WORD wChannels; + WORD wReserved1; + DWORD dwSupport; + GUID ManufacturerGuid; + GUID ProductGuid; + GUID NameGuid; +} WAVEOUTCAPS2A, *PWAVEOUTCAPS2A, *NPWAVEOUTCAPS2A, *LPWAVEOUTCAPS2A; +typedef struct tagWAVEOUTCAPS2W { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[32]; + DWORD dwFormats; + WORD wChannels; + WORD wReserved1; + DWORD dwSupport; + GUID ManufacturerGuid; + GUID ProductGuid; + GUID NameGuid; +} WAVEOUTCAPS2W, *PWAVEOUTCAPS2W, *NPWAVEOUTCAPS2W, *LPWAVEOUTCAPS2W; + +typedef WAVEOUTCAPS2W WAVEOUTCAPS2; +typedef PWAVEOUTCAPS2W PWAVEOUTCAPS2; +typedef NPWAVEOUTCAPS2W NPWAVEOUTCAPS2; +typedef LPWAVEOUTCAPS2W LPWAVEOUTCAPS2; +# 208 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +typedef struct tagWAVEINCAPSA { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[32]; + DWORD dwFormats; + WORD wChannels; + WORD wReserved1; +} WAVEINCAPSA, *PWAVEINCAPSA, *NPWAVEINCAPSA, *LPWAVEINCAPSA; +typedef struct tagWAVEINCAPSW { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[32]; + DWORD dwFormats; + WORD wChannels; + WORD wReserved1; +} WAVEINCAPSW, *PWAVEINCAPSW, *NPWAVEINCAPSW, *LPWAVEINCAPSW; + +typedef WAVEINCAPSW WAVEINCAPS; +typedef PWAVEINCAPSW PWAVEINCAPS; +typedef NPWAVEINCAPSW NPWAVEINCAPS; +typedef LPWAVEINCAPSW LPWAVEINCAPS; + + + + + + +typedef struct tagWAVEINCAPS2A { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[32]; + DWORD dwFormats; + WORD wChannels; + WORD wReserved1; + GUID ManufacturerGuid; + GUID ProductGuid; + GUID NameGuid; +} WAVEINCAPS2A, *PWAVEINCAPS2A, *NPWAVEINCAPS2A, *LPWAVEINCAPS2A; +typedef struct tagWAVEINCAPS2W { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[32]; + DWORD dwFormats; + WORD wChannels; + WORD wReserved1; + GUID ManufacturerGuid; + GUID ProductGuid; + GUID NameGuid; +} WAVEINCAPS2W, *PWAVEINCAPS2W, *NPWAVEINCAPS2W, *LPWAVEINCAPS2W; + +typedef WAVEINCAPS2W WAVEINCAPS2; +typedef PWAVEINCAPS2W PWAVEINCAPS2; +typedef NPWAVEINCAPS2W NPWAVEINCAPS2; +typedef LPWAVEINCAPS2W LPWAVEINCAPS2; +# 316 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +typedef struct waveformat_tag { + WORD wFormatTag; + WORD nChannels; + DWORD nSamplesPerSec; + DWORD nAvgBytesPerSec; + WORD nBlockAlign; +} WAVEFORMAT, *PWAVEFORMAT, *NPWAVEFORMAT, *LPWAVEFORMAT; + + + + + + +typedef struct pcmwaveformat_tag { + WAVEFORMAT wf; + WORD wBitsPerSample; +} PCMWAVEFORMAT, *PPCMWAVEFORMAT, *NPPCMWAVEFORMAT, *LPPCMWAVEFORMAT; +# 342 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +typedef struct tWAVEFORMATEX +{ + WORD wFormatTag; + WORD nChannels; + DWORD nSamplesPerSec; + DWORD nAvgBytesPerSec; + WORD nBlockAlign; + WORD wBitsPerSample; + WORD cbSize; + +} WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX; + + +typedef const WAVEFORMATEX *LPCWAVEFORMATEX; + + +__declspec(dllimport) +UINT +__stdcall +waveOutGetNumDevs( + void + ); + + + + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutGetDevCapsA( + UINT_PTR uDeviceID, + LPWAVEOUTCAPSA pwoc, + UINT cbwoc + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutGetDevCapsW( + UINT_PTR uDeviceID, + LPWAVEOUTCAPSW pwoc, + UINT cbwoc + ); +# 398 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +waveOutGetVolume( + HWAVEOUT hwo, + LPDWORD pdwVolume + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutSetVolume( + HWAVEOUT hwo, + DWORD dwVolume + ); +# 421 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +waveOutGetErrorTextA( + MMRESULT mmrError, + LPSTR pszText, + UINT cchText + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutGetErrorTextW( + MMRESULT mmrError, + LPWSTR pszText, + UINT cchText + ); +# 449 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +waveOutOpen( + LPHWAVEOUT phwo, + UINT uDeviceID, + LPCWAVEFORMATEX pwfx, + DWORD_PTR dwCallback, + DWORD_PTR dwInstance, + DWORD fdwOpen + ); + + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutClose( + HWAVEOUT hwo + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutPrepareHeader( + HWAVEOUT hwo, + LPWAVEHDR pwh, + UINT cbwh + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutUnprepareHeader( + HWAVEOUT hwo, + LPWAVEHDR pwh, + UINT cbwh + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutWrite( + HWAVEOUT hwo, + LPWAVEHDR pwh, + UINT cbwh + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutPause( + HWAVEOUT hwo + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutRestart( + HWAVEOUT hwo + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutReset( + HWAVEOUT hwo + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutBreakLoop( + HWAVEOUT hwo + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutGetPosition( + HWAVEOUT hwo, + LPMMTIME pmmt, + UINT cbmmt + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutGetPitch( + HWAVEOUT hwo, + LPDWORD pdwPitch + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutSetPitch( + HWAVEOUT hwo, + DWORD dwPitch + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutGetPlaybackRate( + HWAVEOUT hwo, + LPDWORD pdwRate + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutSetPlaybackRate( + HWAVEOUT hwo, + DWORD dwRate + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutGetID( + HWAVEOUT hwo, + LPUINT puDeviceID + ); + + + + + +__declspec(dllimport) +MMRESULT +__stdcall +waveOutMessage( + HWAVEOUT hwo, + UINT uMsg, + DWORD_PTR dw1, + DWORD_PTR dw2 + ); + + + + + + +__declspec(dllimport) +UINT +__stdcall +waveInGetNumDevs( + void + ); + + + + +__declspec(dllimport) +MMRESULT +__stdcall +waveInGetDevCapsA( + UINT_PTR uDeviceID, + LPWAVEINCAPSA pwic, + UINT cbwic + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveInGetDevCapsW( + UINT_PTR uDeviceID, + LPWAVEINCAPSW pwic, + UINT cbwic + ); +# 632 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +waveInGetErrorTextA( + MMRESULT mmrError, + LPSTR pszText, + UINT cchText + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveInGetErrorTextW( + MMRESULT mmrError, + LPWSTR pszText, + UINT cchText + ); +# 660 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +waveInOpen( + LPHWAVEIN phwi, + UINT uDeviceID, + LPCWAVEFORMATEX pwfx, + DWORD_PTR dwCallback, + DWORD_PTR dwInstance, + DWORD fdwOpen + ); + + +__declspec(dllimport) +MMRESULT +__stdcall +waveInClose( + HWAVEIN hwi + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveInPrepareHeader( + HWAVEIN hwi, + LPWAVEHDR pwh, + UINT cbwh + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveInUnprepareHeader( + HWAVEIN hwi, + LPWAVEHDR pwh, + UINT cbwh + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveInAddBuffer( + HWAVEIN hwi, + LPWAVEHDR pwh, + UINT cbwh + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveInStart( + HWAVEIN hwi + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveInStop( + HWAVEIN hwi + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveInReset( + HWAVEIN hwi + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveInGetPosition( + HWAVEIN hwi, + LPMMTIME pmmt, + UINT cbmmt + ); + +__declspec(dllimport) +MMRESULT +__stdcall +waveInGetID( + HWAVEIN hwi, + LPUINT puDeviceID + ); + + + + + +__declspec(dllimport) +MMRESULT +__stdcall +waveInMessage( + HWAVEIN hwi, + UINT uMsg, + DWORD_PTR dw1, + DWORD_PTR dw2 + ); +# 785 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +struct HMIDI__{int unused;}; typedef struct HMIDI__ *HMIDI; +struct HMIDIIN__{int unused;}; typedef struct HMIDIIN__ *HMIDIIN; +struct HMIDIOUT__{int unused;}; typedef struct HMIDIOUT__ *HMIDIOUT; +struct HMIDISTRM__{int unused;}; typedef struct HMIDISTRM__ *HMIDISTRM; +typedef HMIDI *LPHMIDI; +typedef HMIDIIN *LPHMIDIIN; +typedef HMIDIOUT *LPHMIDIOUT; +typedef HMIDISTRM *LPHMIDISTRM; +typedef DRVCALLBACK MIDICALLBACK; +typedef MIDICALLBACK *LPMIDICALLBACK; + +typedef WORD PATCHARRAY[128]; +typedef WORD *LPPATCHARRAY; +typedef WORD KEYARRAY[128]; +typedef WORD *LPKEYARRAY; +# 838 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +typedef struct tagMIDIOUTCAPSA { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[32]; + WORD wTechnology; + WORD wVoices; + WORD wNotes; + WORD wChannelMask; + DWORD dwSupport; +} MIDIOUTCAPSA, *PMIDIOUTCAPSA, *NPMIDIOUTCAPSA, *LPMIDIOUTCAPSA; +typedef struct tagMIDIOUTCAPSW { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[32]; + WORD wTechnology; + WORD wVoices; + WORD wNotes; + WORD wChannelMask; + DWORD dwSupport; +} MIDIOUTCAPSW, *PMIDIOUTCAPSW, *NPMIDIOUTCAPSW, *LPMIDIOUTCAPSW; + +typedef MIDIOUTCAPSW MIDIOUTCAPS; +typedef PMIDIOUTCAPSW PMIDIOUTCAPS; +typedef NPMIDIOUTCAPSW NPMIDIOUTCAPS; +typedef LPMIDIOUTCAPSW LPMIDIOUTCAPS; + + + + + + +typedef struct tagMIDIOUTCAPS2A { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[32]; + WORD wTechnology; + WORD wVoices; + WORD wNotes; + WORD wChannelMask; + DWORD dwSupport; + GUID ManufacturerGuid; + GUID ProductGuid; + GUID NameGuid; +} MIDIOUTCAPS2A, *PMIDIOUTCAPS2A, *NPMIDIOUTCAPS2A, *LPMIDIOUTCAPS2A; +typedef struct tagMIDIOUTCAPS2W { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[32]; + WORD wTechnology; + WORD wVoices; + WORD wNotes; + WORD wChannelMask; + DWORD dwSupport; + GUID ManufacturerGuid; + GUID ProductGuid; + GUID NameGuid; +} MIDIOUTCAPS2W, *PMIDIOUTCAPS2W, *NPMIDIOUTCAPS2W, *LPMIDIOUTCAPS2W; + +typedef MIDIOUTCAPS2W MIDIOUTCAPS2; +typedef PMIDIOUTCAPS2W PMIDIOUTCAPS2; +typedef NPMIDIOUTCAPS2W NPMIDIOUTCAPS2; +typedef LPMIDIOUTCAPS2W LPMIDIOUTCAPS2; +# 946 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +typedef struct tagMIDIINCAPSA { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[32]; + + + DWORD dwSupport; + +} MIDIINCAPSA, *PMIDIINCAPSA, *NPMIDIINCAPSA, *LPMIDIINCAPSA; +typedef struct tagMIDIINCAPSW { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[32]; + + + DWORD dwSupport; + +} MIDIINCAPSW, *PMIDIINCAPSW, *NPMIDIINCAPSW, *LPMIDIINCAPSW; + +typedef MIDIINCAPSW MIDIINCAPS; +typedef PMIDIINCAPSW PMIDIINCAPS; +typedef NPMIDIINCAPSW NPMIDIINCAPS; +typedef LPMIDIINCAPSW LPMIDIINCAPS; + + + + + + +typedef struct tagMIDIINCAPS2A { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[32]; + + + DWORD dwSupport; + + GUID ManufacturerGuid; + GUID ProductGuid; + GUID NameGuid; +} MIDIINCAPS2A, *PMIDIINCAPS2A, *NPMIDIINCAPS2A, *LPMIDIINCAPS2A; +typedef struct tagMIDIINCAPS2W { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[32]; + + + DWORD dwSupport; + + GUID ManufacturerGuid; + GUID ProductGuid; + GUID NameGuid; +} MIDIINCAPS2W, *PMIDIINCAPS2W, *NPMIDIINCAPS2W, *LPMIDIINCAPS2W; + +typedef MIDIINCAPS2W MIDIINCAPS2; +typedef PMIDIINCAPS2W PMIDIINCAPS2; +typedef NPMIDIINCAPS2W NPMIDIINCAPS2; +typedef LPMIDIINCAPS2W LPMIDIINCAPS2; +# 1029 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +typedef struct midihdr_tag { + LPSTR lpData; + DWORD dwBufferLength; + DWORD dwBytesRecorded; + DWORD_PTR dwUser; + DWORD dwFlags; + struct midihdr_tag *lpNext; + DWORD_PTR reserved; + + + DWORD dwOffset; + DWORD_PTR dwReserved[8]; + +} MIDIHDR, *PMIDIHDR, *NPMIDIHDR, *LPMIDIHDR; + + + +typedef struct midievent_tag +{ + DWORD dwDeltaTime; + DWORD dwStreamID; + DWORD dwEvent; + DWORD dwParms[1]; +} MIDIEVENT; + +typedef struct midistrmbuffver_tag +{ + DWORD dwVersion; + DWORD dwMid; + DWORD dwOEMVersion; +} MIDISTRMBUFFVER; +# 1113 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +typedef struct midiproptimediv_tag +{ + DWORD cbStruct; + DWORD dwTimeDiv; +} MIDIPROPTIMEDIV, *LPMIDIPROPTIMEDIV; + +typedef struct midiproptempo_tag +{ + DWORD cbStruct; + DWORD dwTempo; +} MIDIPROPTEMPO, *LPMIDIPROPTEMPO; + + + + +__declspec(dllimport) +UINT +__stdcall +midiOutGetNumDevs( + void + ); + + + +__declspec(dllimport) +MMRESULT +__stdcall +midiStreamOpen( + LPHMIDISTRM phms, + LPUINT puDeviceID, + DWORD cMidi, + DWORD_PTR dwCallback, + DWORD_PTR dwInstance, + DWORD fdwOpen + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiStreamClose( + HMIDISTRM hms + ); + + +__declspec(dllimport) +MMRESULT +__stdcall +midiStreamProperty( + HMIDISTRM hms, + LPBYTE lppropdata, + DWORD dwProperty + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiStreamPosition( + HMIDISTRM hms, + LPMMTIME lpmmt, + UINT cbmmt + ); + + +__declspec(dllimport) +MMRESULT +__stdcall +midiStreamOut( + HMIDISTRM hms, + LPMIDIHDR pmh, + UINT cbmh + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiStreamPause( + HMIDISTRM hms + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiStreamRestart( + HMIDISTRM hms + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiStreamStop( + HMIDISTRM hms + ); + + + +__declspec(dllimport) +MMRESULT +__stdcall +midiConnect( + HMIDI hmi, + HMIDIOUT hmo, + LPVOID pReserved + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiDisconnect( + HMIDI hmi, + HMIDIOUT hmo, + LPVOID pReserved + ); + + + + + + +__declspec(dllimport) +MMRESULT +__stdcall +midiOutGetDevCapsA( + UINT_PTR uDeviceID, + LPMIDIOUTCAPSA pmoc, + UINT cbmoc + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiOutGetDevCapsW( + UINT_PTR uDeviceID, + LPMIDIOUTCAPSW pmoc, + UINT cbmoc + ); +# 1261 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +midiOutGetVolume( + HMIDIOUT hmo, + LPDWORD pdwVolume + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiOutSetVolume( + HMIDIOUT hmo, + DWORD dwVolume + ); +# 1284 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +midiOutGetErrorTextA( + MMRESULT mmrError, + LPSTR pszText, + UINT cchText + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiOutGetErrorTextW( + MMRESULT mmrError, + LPWSTR pszText, + UINT cchText + ); +# 1312 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +midiOutOpen( + LPHMIDIOUT phmo, + UINT uDeviceID, + DWORD_PTR dwCallback, + DWORD_PTR dwInstance, + DWORD fdwOpen + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiOutClose( + HMIDIOUT hmo + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiOutPrepareHeader( + HMIDIOUT hmo, + LPMIDIHDR pmh, + UINT cbmh + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiOutUnprepareHeader( + HMIDIOUT hmo, + LPMIDIHDR pmh, + UINT cbmh + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiOutShortMsg( + HMIDIOUT hmo, + DWORD dwMsg + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiOutLongMsg( + HMIDIOUT hmo, + LPMIDIHDR pmh, + UINT cbmh + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiOutReset( + HMIDIOUT hmo + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiOutCachePatches( + HMIDIOUT hmo, + UINT uBank, + LPWORD pwpa, + UINT fuCache + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiOutCacheDrumPatches( + HMIDIOUT hmo, + UINT uPatch, + LPWORD pwkya, + UINT fuCache + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiOutGetID( + HMIDIOUT hmo, + LPUINT puDeviceID + ); + + + + + +__declspec(dllimport) +MMRESULT +__stdcall +midiOutMessage( + HMIDIOUT hmo, + UINT uMsg, + DWORD_PTR dw1, + DWORD_PTR dw2 + ); + + + + + + +__declspec(dllimport) +UINT +__stdcall +midiInGetNumDevs( + void + ); + + + + +__declspec(dllimport) +MMRESULT +__stdcall +midiInGetDevCapsA( + UINT_PTR uDeviceID, + LPMIDIINCAPSA pmic, + UINT cbmic + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiInGetDevCapsW( + UINT_PTR uDeviceID, + LPMIDIINCAPSW pmic, + UINT cbmic + ); + + + + + + +__declspec(dllimport) +MMRESULT +__stdcall +midiInGetErrorTextA( + MMRESULT mmrError, + LPSTR pszText, + UINT cchText + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiInGetErrorTextW( + MMRESULT mmrError, + LPWSTR pszText, + UINT cchText + ); +# 1481 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +midiInOpen( + LPHMIDIIN phmi, + UINT uDeviceID, + DWORD_PTR dwCallback, + DWORD_PTR dwInstance, + DWORD fdwOpen + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiInClose( + HMIDIIN hmi + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiInPrepareHeader( + HMIDIIN hmi, + LPMIDIHDR pmh, + UINT cbmh + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiInUnprepareHeader( + HMIDIIN hmi, + LPMIDIHDR pmh, + UINT cbmh + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiInAddBuffer( + HMIDIIN hmi, + LPMIDIHDR pmh, + UINT cbmh + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiInStart( + HMIDIIN hmi + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiInStop( + HMIDIIN hmi + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiInReset( + HMIDIIN hmi + ); + +__declspec(dllimport) +MMRESULT +__stdcall +midiInGetID( + HMIDIIN hmi, + LPUINT puDeviceID + ); + + + + + +__declspec(dllimport) +MMRESULT +__stdcall +midiInMessage( + HMIDIIN hmi, + UINT uMsg, + DWORD_PTR dw1, + DWORD_PTR dw2 + ); +# 1591 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +typedef struct tagAUXCAPSA { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[32]; + WORD wTechnology; + WORD wReserved1; + DWORD dwSupport; +} AUXCAPSA, *PAUXCAPSA, *NPAUXCAPSA, *LPAUXCAPSA; +typedef struct tagAUXCAPSW { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[32]; + WORD wTechnology; + WORD wReserved1; + DWORD dwSupport; +} AUXCAPSW, *PAUXCAPSW, *NPAUXCAPSW, *LPAUXCAPSW; + +typedef AUXCAPSW AUXCAPS; +typedef PAUXCAPSW PAUXCAPS; +typedef NPAUXCAPSW NPAUXCAPS; +typedef LPAUXCAPSW LPAUXCAPS; + + + + + + +typedef struct tagAUXCAPS2A { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[32]; + WORD wTechnology; + WORD wReserved1; + DWORD dwSupport; + GUID ManufacturerGuid; + GUID ProductGuid; + GUID NameGuid; +} AUXCAPS2A, *PAUXCAPS2A, *NPAUXCAPS2A, *LPAUXCAPS2A; +typedef struct tagAUXCAPS2W { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[32]; + WORD wTechnology; + WORD wReserved1; + DWORD dwSupport; + GUID ManufacturerGuid; + GUID ProductGuid; + GUID NameGuid; +} AUXCAPS2W, *PAUXCAPS2W, *NPAUXCAPS2W, *LPAUXCAPS2W; + +typedef AUXCAPS2W AUXCAPS2; +typedef PAUXCAPS2W PAUXCAPS2; +typedef NPAUXCAPS2W NPAUXCAPS2; +typedef LPAUXCAPS2W LPAUXCAPS2; +# 1676 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +UINT +__stdcall +auxGetNumDevs( + void + ); + + + +__declspec(dllimport) +MMRESULT +__stdcall +auxGetDevCapsA( + UINT_PTR uDeviceID, + LPAUXCAPSA pac, + UINT cbac + ); + +__declspec(dllimport) +MMRESULT +__stdcall +auxGetDevCapsW( + UINT_PTR uDeviceID, + LPAUXCAPSW pac, + UINT cbac + ); +# 1712 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +auxSetVolume( + UINT uDeviceID, + DWORD dwVolume + ); + +__declspec(dllimport) +MMRESULT +__stdcall +auxGetVolume( + UINT uDeviceID, + LPDWORD pdwVolume + ); + + + + + +__declspec(dllimport) +MMRESULT +__stdcall +auxOutMessage( + UINT uDeviceID, + UINT uMsg, + DWORD_PTR dw1, + DWORD_PTR dw2 + ); +# 1756 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +struct HMIXEROBJ__{int unused;}; typedef struct HMIXEROBJ__ *HMIXEROBJ; +typedef HMIXEROBJ *LPHMIXEROBJ; + +struct HMIXER__{int unused;}; typedef struct HMIXER__ *HMIXER; +typedef HMIXER *LPHMIXER; +# 1788 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +UINT +__stdcall +mixerGetNumDevs( + void + ); + + + + +typedef struct tagMIXERCAPSA { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[32]; + DWORD fdwSupport; + DWORD cDestinations; +} MIXERCAPSA, *PMIXERCAPSA, *LPMIXERCAPSA; +typedef struct tagMIXERCAPSW { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[32]; + DWORD fdwSupport; + DWORD cDestinations; +} MIXERCAPSW, *PMIXERCAPSW, *LPMIXERCAPSW; + +typedef MIXERCAPSW MIXERCAPS; +typedef PMIXERCAPSW PMIXERCAPS; +typedef LPMIXERCAPSW LPMIXERCAPS; + + + + + +typedef struct tagMIXERCAPS2A { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[32]; + DWORD fdwSupport; + DWORD cDestinations; + GUID ManufacturerGuid; + GUID ProductGuid; + GUID NameGuid; +} MIXERCAPS2A, *PMIXERCAPS2A, *LPMIXERCAPS2A; +typedef struct tagMIXERCAPS2W { + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[32]; + DWORD fdwSupport; + DWORD cDestinations; + GUID ManufacturerGuid; + GUID ProductGuid; + GUID NameGuid; +} MIXERCAPS2W, *PMIXERCAPS2W, *LPMIXERCAPS2W; + +typedef MIXERCAPS2W MIXERCAPS2; +typedef PMIXERCAPS2W PMIXERCAPS2; +typedef LPMIXERCAPS2W LPMIXERCAPS2; +# 1869 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +mixerGetDevCapsA( + UINT_PTR uMxId, + LPMIXERCAPSA pmxcaps, + UINT cbmxcaps + ); + +__declspec(dllimport) +MMRESULT +__stdcall +mixerGetDevCapsW( + UINT_PTR uMxId, + LPMIXERCAPSW pmxcaps, + UINT cbmxcaps + ); +# 1897 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +mixerOpen( + LPHMIXER phmx, + UINT uMxId, + DWORD_PTR dwCallback, + DWORD_PTR dwInstance, + DWORD fdwOpen + ); + + +__declspec(dllimport) +MMRESULT +__stdcall +mixerClose( + HMIXER hmx + ); + + +__declspec(dllimport) +DWORD +__stdcall +mixerMessage( + HMIXER hmx, + UINT uMsg, + DWORD_PTR dwParam1, + DWORD_PTR dwParam2 + ); + + + + +typedef struct tagMIXERLINEA { + DWORD cbStruct; + DWORD dwDestination; + DWORD dwSource; + DWORD dwLineID; + DWORD fdwLine; + DWORD_PTR dwUser; + DWORD dwComponentType; + DWORD cChannels; + DWORD cConnections; + DWORD cControls; + CHAR szShortName[16]; + CHAR szName[64]; + struct { + DWORD dwType; + DWORD dwDeviceID; + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + CHAR szPname[32]; + } Target; +} MIXERLINEA, *PMIXERLINEA, *LPMIXERLINEA; +typedef struct tagMIXERLINEW { + DWORD cbStruct; + DWORD dwDestination; + DWORD dwSource; + DWORD dwLineID; + DWORD fdwLine; + DWORD_PTR dwUser; + DWORD dwComponentType; + DWORD cChannels; + DWORD cConnections; + DWORD cControls; + WCHAR szShortName[16]; + WCHAR szName[64]; + struct { + DWORD dwType; + DWORD dwDeviceID; + WORD wMid; + WORD wPid; + MMVERSION vDriverVersion; + WCHAR szPname[32]; + } Target; +} MIXERLINEW, *PMIXERLINEW, *LPMIXERLINEW; + +typedef MIXERLINEW MIXERLINE; +typedef PMIXERLINEW PMIXERLINE; +typedef LPMIXERLINEW LPMIXERLINE; +# 2064 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +mixerGetLineInfoA( + HMIXEROBJ hmxobj, + LPMIXERLINEA pmxl, + DWORD fdwInfo + ); + +__declspec(dllimport) +MMRESULT +__stdcall +mixerGetLineInfoW( + HMIXEROBJ hmxobj, + LPMIXERLINEW pmxl, + DWORD fdwInfo + ); +# 2100 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +mixerGetID( + HMIXEROBJ hmxobj, + UINT * puMxId, + DWORD fdwId + ); +# 2117 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +typedef struct tagMIXERCONTROLA { + DWORD cbStruct; + DWORD dwControlID; + DWORD dwControlType; + DWORD fdwControl; + DWORD cMultipleItems; + CHAR szShortName[16]; + CHAR szName[64]; + union { + struct { + LONG lMinimum; + LONG lMaximum; + } ; + struct { + DWORD dwMinimum; + DWORD dwMaximum; + } ; + DWORD dwReserved[6]; + } Bounds; + union { + DWORD cSteps; + DWORD cbCustomData; + DWORD dwReserved[6]; + } Metrics; +} MIXERCONTROLA, *PMIXERCONTROLA, *LPMIXERCONTROLA; +typedef struct tagMIXERCONTROLW { + DWORD cbStruct; + DWORD dwControlID; + DWORD dwControlType; + DWORD fdwControl; + DWORD cMultipleItems; + WCHAR szShortName[16]; + WCHAR szName[64]; + union { + struct { + LONG lMinimum; + LONG lMaximum; + } ; + struct { + DWORD dwMinimum; + DWORD dwMaximum; + } ; + DWORD dwReserved[6]; + } Bounds; + union { + DWORD cSteps; + DWORD cbCustomData; + DWORD dwReserved[6]; + } Metrics; +} MIXERCONTROLW, *PMIXERCONTROLW, *LPMIXERCONTROLW; + +typedef MIXERCONTROLW MIXERCONTROL; +typedef PMIXERCONTROLW PMIXERCONTROL; +typedef LPMIXERCONTROLW LPMIXERCONTROL; +# 2293 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +typedef struct tagMIXERLINECONTROLSA { + DWORD cbStruct; + DWORD dwLineID; + union { + DWORD dwControlID; + DWORD dwControlType; + } ; + DWORD cControls; + DWORD cbmxctrl; + LPMIXERCONTROLA pamxctrl; +} MIXERLINECONTROLSA, *PMIXERLINECONTROLSA, *LPMIXERLINECONTROLSA; +typedef struct tagMIXERLINECONTROLSW { + DWORD cbStruct; + DWORD dwLineID; + union { + DWORD dwControlID; + DWORD dwControlType; + } ; + DWORD cControls; + DWORD cbmxctrl; + LPMIXERCONTROLW pamxctrl; +} MIXERLINECONTROLSW, *PMIXERLINECONTROLSW, *LPMIXERLINECONTROLSW; + +typedef MIXERLINECONTROLSW MIXERLINECONTROLS; +typedef PMIXERLINECONTROLSW PMIXERLINECONTROLS; +typedef LPMIXERLINECONTROLSW LPMIXERLINECONTROLS; +# 2345 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +mixerGetLineControlsA( + HMIXEROBJ hmxobj, + LPMIXERLINECONTROLSA pmxlc, + DWORD fdwControls + ); + +__declspec(dllimport) +MMRESULT +__stdcall +mixerGetLineControlsW( + HMIXEROBJ hmxobj, + LPMIXERLINECONTROLSW pmxlc, + DWORD fdwControls + ); +# 2380 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +typedef struct tMIXERCONTROLDETAILS { + DWORD cbStruct; + DWORD dwControlID; + DWORD cChannels; + union { + HWND hwndOwner; + DWORD cMultipleItems; + } ; + DWORD cbDetails; + LPVOID paDetails; +} MIXERCONTROLDETAILS, *PMIXERCONTROLDETAILS, *LPMIXERCONTROLDETAILS; +# 2399 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +typedef struct tagMIXERCONTROLDETAILS_LISTTEXTA { + DWORD dwParam1; + DWORD dwParam2; + CHAR szName[64]; +} MIXERCONTROLDETAILS_LISTTEXTA, *PMIXERCONTROLDETAILS_LISTTEXTA, *LPMIXERCONTROLDETAILS_LISTTEXTA; +typedef struct tagMIXERCONTROLDETAILS_LISTTEXTW { + DWORD dwParam1; + DWORD dwParam2; + WCHAR szName[64]; +} MIXERCONTROLDETAILS_LISTTEXTW, *PMIXERCONTROLDETAILS_LISTTEXTW, *LPMIXERCONTROLDETAILS_LISTTEXTW; + +typedef MIXERCONTROLDETAILS_LISTTEXTW MIXERCONTROLDETAILS_LISTTEXT; +typedef PMIXERCONTROLDETAILS_LISTTEXTW PMIXERCONTROLDETAILS_LISTTEXT; +typedef LPMIXERCONTROLDETAILS_LISTTEXTW LPMIXERCONTROLDETAILS_LISTTEXT; +# 2431 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +typedef struct tMIXERCONTROLDETAILS_BOOLEAN { + LONG fValue; +} MIXERCONTROLDETAILS_BOOLEAN, + *PMIXERCONTROLDETAILS_BOOLEAN, + *LPMIXERCONTROLDETAILS_BOOLEAN; + +typedef struct tMIXERCONTROLDETAILS_SIGNED { + LONG lValue; +} MIXERCONTROLDETAILS_SIGNED, + *PMIXERCONTROLDETAILS_SIGNED, + *LPMIXERCONTROLDETAILS_SIGNED; + + +typedef struct tMIXERCONTROLDETAILS_UNSIGNED { + DWORD dwValue; +} MIXERCONTROLDETAILS_UNSIGNED, + *PMIXERCONTROLDETAILS_UNSIGNED, + *LPMIXERCONTROLDETAILS_UNSIGNED; + + + + +__declspec(dllimport) +MMRESULT +__stdcall +mixerGetControlDetailsA( + HMIXEROBJ hmxobj, + LPMIXERCONTROLDETAILS pmxcd, + DWORD fdwDetails + ); + +__declspec(dllimport) +MMRESULT +__stdcall +mixerGetControlDetailsW( + HMIXEROBJ hmxobj, + LPMIXERCONTROLDETAILS pmxcd, + DWORD fdwDetails + ); +# 2486 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +mixerSetControlDetails( + HMIXEROBJ hmxobj, + LPMIXERCONTROLDETAILS pmxcd, + DWORD fdwDetails + ); +# 2507 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmeapi.h" +} +# 73 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsystem.h" 2 +# 88 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsystem.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\timeapi.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\timeapi.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsyscom.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\timeapi.h" 2 +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\timeapi.h" +extern "C" { +# 60 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\timeapi.h" +typedef struct timecaps_tag { + UINT wPeriodMin; + UINT wPeriodMax; +} TIMECAPS, *PTIMECAPS, *NPTIMECAPS, *LPTIMECAPS; + + +__declspec(dllimport) +MMRESULT +__stdcall +timeGetSystemTime( + LPMMTIME pmmt, + UINT cbmmt + ); + +__declspec(dllimport) +DWORD +__stdcall +timeGetTime( + void + ); + +__declspec(dllimport) +MMRESULT +__stdcall +timeGetDevCaps( + LPTIMECAPS ptc, + UINT cbtc + ); + +__declspec(dllimport) +MMRESULT +__stdcall +timeBeginPeriod( + UINT uPeriod + ); + +__declspec(dllimport) +MMRESULT +__stdcall +timeEndPeriod( + UINT uPeriod + ); +# 110 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\timeapi.h" +} +# 88 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsystem.h" 2 +# 104 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsystem.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\joystickapi.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\joystickapi.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsyscom.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\joystickapi.h" 2 +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\joystickapi.h" +extern "C" { +# 153 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\joystickapi.h" +typedef struct tagJOYCAPSA { + WORD wMid; + WORD wPid; + CHAR szPname[32]; + UINT wXmin; + UINT wXmax; + UINT wYmin; + UINT wYmax; + UINT wZmin; + UINT wZmax; + UINT wNumButtons; + UINT wPeriodMin; + UINT wPeriodMax; + + + UINT wRmin; + UINT wRmax; + UINT wUmin; + UINT wUmax; + UINT wVmin; + UINT wVmax; + UINT wCaps; + UINT wMaxAxes; + UINT wNumAxes; + UINT wMaxButtons; + CHAR szRegKey[32]; + CHAR szOEMVxD[260]; + +} JOYCAPSA, *PJOYCAPSA, *NPJOYCAPSA, *LPJOYCAPSA; +typedef struct tagJOYCAPSW { + WORD wMid; + WORD wPid; + WCHAR szPname[32]; + UINT wXmin; + UINT wXmax; + UINT wYmin; + UINT wYmax; + UINT wZmin; + UINT wZmax; + UINT wNumButtons; + UINT wPeriodMin; + UINT wPeriodMax; + + + UINT wRmin; + UINT wRmax; + UINT wUmin; + UINT wUmax; + UINT wVmin; + UINT wVmax; + UINT wCaps; + UINT wMaxAxes; + UINT wNumAxes; + UINT wMaxButtons; + WCHAR szRegKey[32]; + WCHAR szOEMVxD[260]; + +} JOYCAPSW, *PJOYCAPSW, *NPJOYCAPSW, *LPJOYCAPSW; + +typedef JOYCAPSW JOYCAPS; +typedef PJOYCAPSW PJOYCAPS; +typedef NPJOYCAPSW NPJOYCAPS; +typedef LPJOYCAPSW LPJOYCAPS; + + + + + + +typedef struct tagJOYCAPS2A { + WORD wMid; + WORD wPid; + CHAR szPname[32]; + UINT wXmin; + UINT wXmax; + UINT wYmin; + UINT wYmax; + UINT wZmin; + UINT wZmax; + UINT wNumButtons; + UINT wPeriodMin; + UINT wPeriodMax; + UINT wRmin; + UINT wRmax; + UINT wUmin; + UINT wUmax; + UINT wVmin; + UINT wVmax; + UINT wCaps; + UINT wMaxAxes; + UINT wNumAxes; + UINT wMaxButtons; + CHAR szRegKey[32]; + CHAR szOEMVxD[260]; + GUID ManufacturerGuid; + GUID ProductGuid; + GUID NameGuid; +} JOYCAPS2A, *PJOYCAPS2A, *NPJOYCAPS2A, *LPJOYCAPS2A; +typedef struct tagJOYCAPS2W { + WORD wMid; + WORD wPid; + WCHAR szPname[32]; + UINT wXmin; + UINT wXmax; + UINT wYmin; + UINT wYmax; + UINT wZmin; + UINT wZmax; + UINT wNumButtons; + UINT wPeriodMin; + UINT wPeriodMax; + UINT wRmin; + UINT wRmax; + UINT wUmin; + UINT wUmax; + UINT wVmin; + UINT wVmax; + UINT wCaps; + UINT wMaxAxes; + UINT wNumAxes; + UINT wMaxButtons; + WCHAR szRegKey[32]; + WCHAR szOEMVxD[260]; + GUID ManufacturerGuid; + GUID ProductGuid; + GUID NameGuid; +} JOYCAPS2W, *PJOYCAPS2W, *NPJOYCAPS2W, *LPJOYCAPS2W; + +typedef JOYCAPS2W JOYCAPS2; +typedef PJOYCAPS2W PJOYCAPS2; +typedef NPJOYCAPS2W NPJOYCAPS2; +typedef LPJOYCAPS2W LPJOYCAPS2; +# 326 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\joystickapi.h" +typedef struct joyinfo_tag { + UINT wXpos; + UINT wYpos; + UINT wZpos; + UINT wButtons; +} JOYINFO, *PJOYINFO, *NPJOYINFO, *LPJOYINFO; + + + +typedef struct joyinfoex_tag { + DWORD dwSize; + DWORD dwFlags; + DWORD dwXpos; + DWORD dwYpos; + DWORD dwZpos; + DWORD dwRpos; + DWORD dwUpos; + DWORD dwVpos; + DWORD dwButtons; + DWORD dwButtonNumber; + DWORD dwPOV; + DWORD dwReserved1; + DWORD dwReserved2; +} JOYINFOEX, *PJOYINFOEX, *NPJOYINFOEX, *LPJOYINFOEX; + + + + + + +__declspec(dllimport) +MMRESULT +__stdcall +joyGetPosEx( + UINT uJoyID, + LPJOYINFOEX pji + ); + + + +__declspec(dllimport) +UINT +__stdcall +joyGetNumDevs( + void + ); + + + +__declspec(dllimport) +MMRESULT +__stdcall +joyGetDevCapsA( + UINT_PTR uJoyID, + LPJOYCAPSA pjc, + UINT cbjc + ); + +__declspec(dllimport) +MMRESULT +__stdcall +joyGetDevCapsW( + UINT_PTR uJoyID, + LPJOYCAPSW pjc, + UINT cbjc + ); +# 403 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\joystickapi.h" +__declspec(dllimport) +MMRESULT +__stdcall +joyGetPos( + UINT uJoyID, + LPJOYINFO pji + ); + + +__declspec(dllimport) +MMRESULT +__stdcall +joyGetThreshold( + UINT uJoyID, + LPUINT puThreshold + ); + + +__declspec(dllimport) +MMRESULT +__stdcall +joyReleaseCapture( + UINT uJoyID + ); + + +__declspec(dllimport) +MMRESULT +__stdcall +joySetCapture( + HWND hwnd, + UINT uJoyID, + UINT uPeriod, + BOOL fChanged + ); + + +__declspec(dllimport) +MMRESULT +__stdcall +joySetThreshold( + UINT uJoyID, + UINT uThreshold + ); + + + + +__declspec(dllimport) +MMRESULT +__stdcall +joyConfigChanged( + DWORD dwFlags + ); +# 466 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\joystickapi.h" +} +# 104 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsystem.h" 2 +# 151 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsystem.h" +} + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 155 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mmsystem.h" 2 +# 193 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\nb30.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\nb30.h" +extern "C" { + + + +#pragma warning(push) +#pragma warning(disable: 4820) +# 48 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\nb30.h" +typedef struct _NCB { + UCHAR ncb_command; + UCHAR ncb_retcode; + UCHAR ncb_lsn; + UCHAR ncb_num; + PUCHAR ncb_buffer; + WORD ncb_length; + UCHAR ncb_callname[16]; + UCHAR ncb_name[16]; + UCHAR ncb_rto; + UCHAR ncb_sto; + void (__stdcall *ncb_post)( struct _NCB * ); + UCHAR ncb_lana_num; + UCHAR ncb_cmd_cplt; + + + + UCHAR ncb_reserve[10]; + + HANDLE ncb_event; + + + +} NCB, *PNCB; + + + + + + +typedef struct _ADAPTER_STATUS { + UCHAR adapter_address[6]; + UCHAR rev_major; + UCHAR reserved0; + UCHAR adapter_type; + UCHAR rev_minor; + WORD duration; + WORD frmr_recv; + WORD frmr_xmit; + + WORD iframe_recv_err; + + WORD xmit_aborts; + DWORD xmit_success; + DWORD recv_success; + + WORD iframe_xmit_err; + + WORD recv_buff_unavail; + WORD t1_timeouts; + WORD ti_timeouts; + DWORD reserved1; + WORD free_ncbs; + WORD max_cfg_ncbs; + WORD max_ncbs; + WORD xmit_buf_unavail; + WORD max_dgram_size; + WORD pending_sess; + WORD max_cfg_sess; + WORD max_sess; + WORD max_sess_pkt_size; + WORD name_count; +} ADAPTER_STATUS, *PADAPTER_STATUS; + +typedef struct _NAME_BUFFER { + UCHAR name[16]; + UCHAR name_num; + UCHAR name_flags; +} NAME_BUFFER, *PNAME_BUFFER; +# 138 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\nb30.h" +typedef struct _SESSION_HEADER { + UCHAR sess_name; + UCHAR num_sess; + UCHAR rcv_dg_outstanding; + UCHAR rcv_any_outstanding; +} SESSION_HEADER, *PSESSION_HEADER; + +typedef struct _SESSION_BUFFER { + UCHAR lsn; + UCHAR state; + UCHAR local_name[16]; + UCHAR remote_name[16]; + UCHAR rcvs_outstanding; + UCHAR sends_outstanding; +} SESSION_BUFFER, *PSESSION_BUFFER; +# 170 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\nb30.h" +typedef struct _LANA_ENUM { + UCHAR length; + UCHAR lana[254 +1]; +} LANA_ENUM, *PLANA_ENUM; + + + + + + +typedef struct _FIND_NAME_HEADER { + WORD node_count; + UCHAR reserved; + UCHAR unique_group; +} FIND_NAME_HEADER, *PFIND_NAME_HEADER; + +typedef struct _FIND_NAME_BUFFER { + UCHAR length; + UCHAR access_control; + UCHAR frame_control; + UCHAR destination_addr[6]; + UCHAR source_addr[6]; + UCHAR routing_info[18]; +} FIND_NAME_BUFFER, *PFIND_NAME_BUFFER; + + + + + + +typedef struct _ACTION_HEADER { + ULONG transport_id; + USHORT action_code; + USHORT reserved; +} ACTION_HEADER, *PACTION_HEADER; +# 305 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\nb30.h" +UCHAR +__stdcall +Netbios( + PNCB pncb + ); +# 324 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\nb30.h" +#pragma warning(pop) + + + +} +# 194 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpc.h" 1 +# 32 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpc.h" +extern "C" { +# 74 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpc.h" +typedef void * I_RPC_HANDLE; + + + + +typedef long RPC_STATUS; +# 156 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpc.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" 1 +# 25 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +extern "C" { + + + +#pragma warning(push) +#pragma warning(disable: 4668) +#pragma warning(disable: 4820) +# 63 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef unsigned char * RPC_CSTR; + + + + + +typedef unsigned short * RPC_WSTR; +typedef const unsigned short * RPC_CWSTR; + + +typedef I_RPC_HANDLE RPC_BINDING_HANDLE; +typedef RPC_BINDING_HANDLE handle_t; +# 83 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef GUID UUID; +# 95 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef struct _RPC_BINDING_VECTOR +{ + unsigned long Count; + RPC_BINDING_HANDLE BindingH[1]; +} RPC_BINDING_VECTOR; + + + + +typedef struct _UUID_VECTOR +{ + unsigned long Count; + UUID *Uuid[1]; +} UUID_VECTOR; +# 119 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef void * RPC_IF_HANDLE; +# 129 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef struct _RPC_IF_ID +{ + UUID Uuid; + unsigned short VersMajor; + unsigned short VersMinor; +} RPC_IF_ID; +# 214 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef struct _RPC_PROTSEQ_VECTORA +{ + unsigned int Count; + unsigned char * Protseq[1]; +} RPC_PROTSEQ_VECTORA; + +typedef struct _RPC_PROTSEQ_VECTORW +{ + unsigned int Count; + unsigned short * Protseq[1]; +} RPC_PROTSEQ_VECTORW; +# 241 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef struct _RPC_POLICY { + unsigned int Length ; + unsigned long EndpointFlags ; + unsigned long NICFlags ; + } RPC_POLICY, *PRPC_POLICY ; + +typedef void __stdcall +RPC_OBJECT_INQ_FN ( + UUID * ObjectUuid, + UUID * TypeUuid, + RPC_STATUS * Status + ); + + +typedef RPC_STATUS __stdcall +RPC_IF_CALLBACK_FN ( + RPC_IF_HANDLE InterfaceUuid, + void *Context + ) ; + +typedef void __stdcall +RPC_SECURITY_CALLBACK_FN ( + void *Context + ) ; +# 280 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef struct +{ + unsigned int Count; + unsigned long Stats[1]; +} RPC_STATS_VECTOR; + + + + + + +typedef struct +{ + unsigned long Count; + RPC_IF_ID * IfId[1]; +} RPC_IF_ID_VECTOR; + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingCopy ( + RPC_BINDING_HANDLE SourceBinding, + RPC_BINDING_HANDLE * DestinationBinding + ); + + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcBindingFree ( + RPC_BINDING_HANDLE * Binding + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingSetOption ( + RPC_BINDING_HANDLE hBinding, + unsigned long option, + ULONG_PTR optionValue + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingInqOption ( + RPC_BINDING_HANDLE hBinding, + unsigned long option, + ULONG_PTR *pOptionValue + ); + + + + + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingFromStringBindingA ( + RPC_CSTR StringBinding, + RPC_BINDING_HANDLE * Binding + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingFromStringBindingW ( + RPC_WSTR StringBinding, + RPC_BINDING_HANDLE * Binding + ); +# 382 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcSsGetContextBinding ( + void *ContextHandle, + RPC_BINDING_HANDLE * Binding + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingInqObject ( + RPC_BINDING_HANDLE Binding, + UUID * ObjectUuid + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingReset ( + RPC_BINDING_HANDLE Binding + ); + + + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingSetObject ( + RPC_BINDING_HANDLE Binding, + UUID * ObjectUuid + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtInqDefaultProtectLevel ( + unsigned long AuthnSvc, + unsigned long *AuthnLevel + ); + + + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingToStringBindingA ( + RPC_BINDING_HANDLE Binding, + RPC_CSTR * StringBinding + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingToStringBindingW ( + RPC_BINDING_HANDLE Binding, + RPC_WSTR * StringBinding + ); +# 473 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcBindingVectorFree ( + RPC_BINDING_VECTOR * * BindingVector + ); + + + + + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcStringBindingComposeA ( + RPC_CSTR ObjUuid, + RPC_CSTR ProtSeq, + RPC_CSTR NetworkAddr, + RPC_CSTR Endpoint, + RPC_CSTR Options, + RPC_CSTR * StringBinding + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcStringBindingComposeW ( + RPC_WSTR ObjUuid, + RPC_WSTR ProtSeq, + RPC_WSTR NetworkAddr, + RPC_WSTR Endpoint, + RPC_WSTR Options, + RPC_WSTR * StringBinding + ); +# 538 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcStringBindingParseA ( + RPC_CSTR StringBinding, + RPC_CSTR * ObjUuid, + RPC_CSTR * Protseq, + RPC_CSTR * NetworkAddr, + RPC_CSTR * Endpoint, + RPC_CSTR * NetworkOptions + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcStringBindingParseW ( + RPC_WSTR StringBinding, + RPC_WSTR * ObjUuid, + RPC_WSTR * Protseq, + RPC_WSTR * NetworkAddr, + RPC_WSTR * Endpoint, + RPC_WSTR * NetworkOptions + ); +# 592 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcStringFreeA ( + RPC_CSTR * String + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcStringFreeW ( + RPC_WSTR * String + ); +# 625 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcIfInqId ( + RPC_IF_HANDLE RpcIfHandle, + RPC_IF_ID * RpcIfId + ); + + + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcNetworkIsProtseqValidA ( + RPC_CSTR Protseq + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcNetworkIsProtseqValidW ( + RPC_WSTR Protseq + ); +# 672 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtInqComTimeout ( + RPC_BINDING_HANDLE Binding, + unsigned int * Timeout + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtSetComTimeout ( + RPC_BINDING_HANDLE Binding, + unsigned int Timeout + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtSetCancelTimeout( + long Timeout + ); + + + + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcNetworkInqProtseqsA ( + RPC_PROTSEQ_VECTORA * * ProtseqVector + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcNetworkInqProtseqsW ( + RPC_PROTSEQ_VECTORW * * ProtseqVector + ); +# 739 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcObjectInqType ( + UUID * ObjUuid, + UUID * TypeUuid + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcObjectSetInqFn ( + RPC_OBJECT_INQ_FN * InquiryFn + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcObjectSetType ( + UUID * ObjUuid, + UUID * TypeUuid + ); + + + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcProtseqVectorFreeA ( + RPC_PROTSEQ_VECTORA * * ProtseqVector + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcProtseqVectorFreeW ( + RPC_PROTSEQ_VECTORW * * ProtseqVector + ); +# 803 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerInqBindings ( + RPC_BINDING_VECTOR * * BindingVector + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerInqIf ( + RPC_IF_HANDLE IfSpec, + UUID * MgrTypeUuid, + void * * MgrEpv + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerListen ( + unsigned int MinimumCallThreads, + unsigned int MaxCalls, + unsigned int DontWait + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerRegisterIf ( + RPC_IF_HANDLE IfSpec, + UUID * MgrTypeUuid, + void * MgrEpv + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerRegisterIfEx ( + RPC_IF_HANDLE IfSpec, + UUID * MgrTypeUuid, + void * MgrEpv, + unsigned int Flags, + unsigned int MaxCalls, + RPC_IF_CALLBACK_FN *IfCallback + ); + + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcServerRegisterIf2 ( + RPC_IF_HANDLE IfSpec, + UUID * MgrTypeUuid, + void * MgrEpv, + unsigned int Flags, + unsigned int MaxCalls, + unsigned int MaxRpcSize, + RPC_IF_CALLBACK_FN *IfCallbackFn + ); + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcServerRegisterIf3 ( + RPC_IF_HANDLE IfSpec, + UUID * MgrTypeUuid, + void * MgrEpv, + unsigned int Flags, + unsigned int MaxCalls, + unsigned int MaxRpcSize, + RPC_IF_CALLBACK_FN *IfCallback, + void * SecurityDescriptor + ); + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUnregisterIf ( + RPC_IF_HANDLE IfSpec, + UUID * MgrTypeUuid, + unsigned int WaitForCallsToComplete + ); + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcServerUnregisterIfEx ( + RPC_IF_HANDLE IfSpec, + UUID * MgrTypeUuid, + int RundownContextHandles + ); + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUseAllProtseqs ( + unsigned int MaxCalls, + void * SecurityDescriptor + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUseAllProtseqsEx ( + unsigned int MaxCalls, + void * SecurityDescriptor, + PRPC_POLICY Policy + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUseAllProtseqsIf ( + unsigned int MaxCalls, + RPC_IF_HANDLE IfSpec, + void * SecurityDescriptor + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUseAllProtseqsIfEx ( + unsigned int MaxCalls, + RPC_IF_HANDLE IfSpec, + void * SecurityDescriptor, + PRPC_POLICY Policy + ); + + + + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUseProtseqA ( + RPC_CSTR Protseq, + unsigned int MaxCalls, + void * SecurityDescriptor + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUseProtseqExA ( + RPC_CSTR Protseq, + unsigned int MaxCalls, + void * SecurityDescriptor, + PRPC_POLICY Policy + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUseProtseqW ( + RPC_WSTR Protseq, + unsigned int MaxCalls, + void * SecurityDescriptor + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUseProtseqExW ( + RPC_WSTR Protseq, + unsigned int MaxCalls, + void * SecurityDescriptor, + PRPC_POLICY Policy + ); +# 1038 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUseProtseqEpA ( + RPC_CSTR Protseq, + unsigned int MaxCalls, + RPC_CSTR Endpoint, + void * SecurityDescriptor + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUseProtseqEpExA ( + RPC_CSTR Protseq, + unsigned int MaxCalls, + RPC_CSTR Endpoint, + void * SecurityDescriptor, + PRPC_POLICY Policy + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUseProtseqEpW ( + RPC_WSTR Protseq, + unsigned int MaxCalls, + RPC_WSTR Endpoint, + void * SecurityDescriptor + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUseProtseqEpExW ( + RPC_WSTR Protseq, + unsigned int MaxCalls, + RPC_WSTR Endpoint, + void * SecurityDescriptor, + PRPC_POLICY Policy + ); +# 1121 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUseProtseqIfA ( + RPC_CSTR Protseq, + unsigned int MaxCalls, + RPC_IF_HANDLE IfSpec, + void * SecurityDescriptor + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUseProtseqIfExA ( + RPC_CSTR Protseq, + unsigned int MaxCalls, + RPC_IF_HANDLE IfSpec, + void * SecurityDescriptor, + PRPC_POLICY Policy + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUseProtseqIfW ( + RPC_WSTR Protseq, + unsigned int MaxCalls, + RPC_IF_HANDLE IfSpec, + void * SecurityDescriptor + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerUseProtseqIfExW ( + RPC_WSTR Protseq, + unsigned int MaxCalls, + RPC_IF_HANDLE IfSpec, + void * SecurityDescriptor, + PRPC_POLICY Policy + ); +# 1200 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) +void +__stdcall +RpcServerYield ( + void + ); + + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcMgmtStatsVectorFree ( + RPC_STATS_VECTOR ** StatsVector + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtInqStats ( + RPC_BINDING_HANDLE Binding, + RPC_STATS_VECTOR ** Statistics + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtIsServerListening ( + RPC_BINDING_HANDLE Binding + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtStopServerListening ( + RPC_BINDING_HANDLE Binding + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtWaitServerListen ( + void + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtSetServerStackSize ( + unsigned long ThreadStackSize + ); + + +__declspec(dllimport) +void +__stdcall +RpcSsDontSerializeContext ( + void + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtEnableIdleCleanup ( + void + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtInqIfIds ( + RPC_BINDING_HANDLE Binding, + RPC_IF_ID_VECTOR * * IfIdVector + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcIfIdVectorFree ( + RPC_IF_ID_VECTOR * * IfIdVector + ); + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtInqServerPrincNameA ( + RPC_BINDING_HANDLE Binding, + unsigned long AuthnSvc, + RPC_CSTR * ServerPrincName + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtInqServerPrincNameW ( + RPC_BINDING_HANDLE Binding, + unsigned long AuthnSvc, + RPC_WSTR * ServerPrincName + ); +# 1337 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerInqDefaultPrincNameA ( + unsigned long AuthnSvc, + RPC_CSTR * PrincName + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerInqDefaultPrincNameW ( + unsigned long AuthnSvc, + RPC_WSTR * PrincName + ); +# 1374 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcEpResolveBinding ( + RPC_BINDING_HANDLE Binding, + RPC_IF_HANDLE IfSpec + ); + + + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcNsBindingInqEntryNameA ( + RPC_BINDING_HANDLE Binding, + unsigned long EntryNameSyntax, + RPC_CSTR * EntryName + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcNsBindingInqEntryNameW ( + RPC_BINDING_HANDLE Binding, + unsigned long EntryNameSyntax, + RPC_WSTR * EntryName + ); +# 1432 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef void * RPC_AUTH_IDENTITY_HANDLE; +typedef void * RPC_AUTHZ_HANDLE; +# 1507 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef struct _RPC_SECURITY_QOS { + unsigned long Version; + unsigned long Capabilities; + unsigned long IdentityTracking; + unsigned long ImpersonationType; +} RPC_SECURITY_QOS, *PRPC_SECURITY_QOS; + + + + + + + +typedef struct _SEC_WINNT_AUTH_IDENTITY_W { + unsigned short *User; + unsigned long UserLength; + unsigned short *Domain; + unsigned long DomainLength; + unsigned short *Password; + unsigned long PasswordLength; + unsigned long Flags; +} SEC_WINNT_AUTH_IDENTITY_W, *PSEC_WINNT_AUTH_IDENTITY_W; + + + + + +typedef struct _SEC_WINNT_AUTH_IDENTITY_A { + unsigned char *User; + unsigned long UserLength; + unsigned char *Domain; + unsigned long DomainLength; + unsigned char *Password; + unsigned long PasswordLength; + unsigned long Flags; +} SEC_WINNT_AUTH_IDENTITY_A, *PSEC_WINNT_AUTH_IDENTITY_A; +# 1585 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_W +{ + SEC_WINNT_AUTH_IDENTITY_W *TransportCredentials; + unsigned long Flags; + unsigned long AuthenticationTarget; + unsigned long NumberOfAuthnSchemes; + unsigned long *AuthnSchemes; + unsigned short *ServerCertificateSubject; +} RPC_HTTP_TRANSPORT_CREDENTIALS_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_W; + +typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_A +{ + SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials; + unsigned long Flags; + unsigned long AuthenticationTarget; + unsigned long NumberOfAuthnSchemes; + unsigned long *AuthnSchemes; + unsigned char *ServerCertificateSubject; +} RPC_HTTP_TRANSPORT_CREDENTIALS_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_A; + + + +typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W +{ + SEC_WINNT_AUTH_IDENTITY_W *TransportCredentials; + unsigned long Flags; + unsigned long AuthenticationTarget; + unsigned long NumberOfAuthnSchemes; + unsigned long *AuthnSchemes; + unsigned short *ServerCertificateSubject; + SEC_WINNT_AUTH_IDENTITY_W *ProxyCredentials; + unsigned long NumberOfProxyAuthnSchemes; + unsigned long *ProxyAuthnSchemes; +} RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_W; + +typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A +{ + SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials; + unsigned long Flags; + unsigned long AuthenticationTarget; + unsigned long NumberOfAuthnSchemes; + unsigned long *AuthnSchemes; + unsigned char *ServerCertificateSubject; + SEC_WINNT_AUTH_IDENTITY_A *ProxyCredentials; + unsigned long NumberOfProxyAuthnSchemes; + unsigned long *ProxyAuthnSchemes; +} RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_A; + + + + + +typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W +{ + RPC_AUTH_IDENTITY_HANDLE TransportCredentials; + unsigned long Flags; + unsigned long AuthenticationTarget; + unsigned long NumberOfAuthnSchemes; + unsigned long *AuthnSchemes; + unsigned short *ServerCertificateSubject; + RPC_AUTH_IDENTITY_HANDLE ProxyCredentials; + unsigned long NumberOfProxyAuthnSchemes; + unsigned long *ProxyAuthnSchemes; +} RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_W; + +typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A +{ + RPC_AUTH_IDENTITY_HANDLE TransportCredentials; + unsigned long Flags; + unsigned long AuthenticationTarget; + unsigned long NumberOfAuthnSchemes; + unsigned long *AuthnSchemes; + unsigned char *ServerCertificateSubject; + RPC_AUTH_IDENTITY_HANDLE ProxyCredentials; + unsigned long NumberOfProxyAuthnSchemes; + unsigned long *ProxyAuthnSchemes; +} RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_A; + + + +typedef struct _RPC_SECURITY_QOS_V2_W { + unsigned long Version; + unsigned long Capabilities; + unsigned long IdentityTracking; + unsigned long ImpersonationType; + unsigned long AdditionalSecurityInfoType; + union + { + RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials; + } u; +} RPC_SECURITY_QOS_V2_W, *PRPC_SECURITY_QOS_V2_W; + +typedef struct _RPC_SECURITY_QOS_V2_A { + unsigned long Version; + unsigned long Capabilities; + unsigned long IdentityTracking; + unsigned long ImpersonationType; + unsigned long AdditionalSecurityInfoType; + union + { + RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials; + } u; +} RPC_SECURITY_QOS_V2_A, *PRPC_SECURITY_QOS_V2_A; + + + + +typedef struct _RPC_SECURITY_QOS_V3_W { + unsigned long Version; + unsigned long Capabilities; + unsigned long IdentityTracking; + unsigned long ImpersonationType; + unsigned long AdditionalSecurityInfoType; + union + { + RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials; + } u; + void *Sid; +} RPC_SECURITY_QOS_V3_W, *PRPC_SECURITY_QOS_V3_W; + +typedef struct _RPC_SECURITY_QOS_V3_A { + unsigned long Version; + unsigned long Capabilities; + unsigned long IdentityTracking; + unsigned long ImpersonationType; + unsigned long AdditionalSecurityInfoType; + union + { + RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials; + } u; + void *Sid; +} RPC_SECURITY_QOS_V3_A, *PRPC_SECURITY_QOS_V3_A; + + + + + + +typedef struct _RPC_SECURITY_QOS_V4_W { + unsigned long Version; + unsigned long Capabilities; + unsigned long IdentityTracking; + unsigned long ImpersonationType; + unsigned long AdditionalSecurityInfoType; + union + { + RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials; + } u; + void *Sid; + unsigned int EffectiveOnly; +} RPC_SECURITY_QOS_V4_W, *PRPC_SECURITY_QOS_V4_W; + +typedef struct _RPC_SECURITY_QOS_V4_A { + unsigned long Version; + unsigned long Capabilities; + unsigned long IdentityTracking; + unsigned long ImpersonationType; + unsigned long AdditionalSecurityInfoType; + union + { + RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials; + } u; + void *Sid; + unsigned int EffectiveOnly; +} RPC_SECURITY_QOS_V4_A, *PRPC_SECURITY_QOS_V4_A; + + + + + + +typedef struct _RPC_SECURITY_QOS_V5_W { + unsigned long Version; + unsigned long Capabilities; + unsigned long IdentityTracking; + unsigned long ImpersonationType; + unsigned long AdditionalSecurityInfoType; + union + { + RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials; + } u; + void *Sid; + unsigned int EffectiveOnly; + void *ServerSecurityDescriptor; +} RPC_SECURITY_QOS_V5_W, *PRPC_SECURITY_QOS_V5_W; + +typedef struct _RPC_SECURITY_QOS_V5_A { + unsigned long Version; + unsigned long Capabilities; + unsigned long IdentityTracking; + unsigned long ImpersonationType; + unsigned long AdditionalSecurityInfoType; + union + { + RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials; + } u; + void *Sid; + unsigned int EffectiveOnly; + void *ServerSecurityDescriptor; +} RPC_SECURITY_QOS_V5_A, *PRPC_SECURITY_QOS_V5_A; +# 1895 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef struct _RPC_BINDING_HANDLE_TEMPLATE_V1_W { + unsigned long Version; + unsigned long Flags; + unsigned long ProtocolSequence; + unsigned short *NetworkAddress; + unsigned short *StringEndpoint; + union + { + unsigned short *Reserved; + } u1; + UUID ObjectUuid; +} RPC_BINDING_HANDLE_TEMPLATE_V1_W, *PRPC_BINDING_HANDLE_TEMPLATE_V1_W; + +typedef struct _RPC_BINDING_HANDLE_TEMPLATE_V1_A { + unsigned long Version; + unsigned long Flags; + unsigned long ProtocolSequence; + unsigned char *NetworkAddress; + unsigned char *StringEndpoint; + union + { + unsigned char *Reserved; + } u1; + UUID ObjectUuid; +} RPC_BINDING_HANDLE_TEMPLATE_V1_A, *PRPC_BINDING_HANDLE_TEMPLATE_V1_A; + +typedef struct _RPC_BINDING_HANDLE_SECURITY_V1_W { + unsigned long Version; + unsigned short *ServerPrincName; + unsigned long AuthnLevel; + unsigned long AuthnSvc; + SEC_WINNT_AUTH_IDENTITY_W *AuthIdentity; + RPC_SECURITY_QOS *SecurityQos; +} RPC_BINDING_HANDLE_SECURITY_V1_W, *PRPC_BINDING_HANDLE_SECURITY_V1_W; + + + +typedef struct _RPC_BINDING_HANDLE_SECURITY_V1_A { + unsigned long Version; + unsigned char *ServerPrincName; + unsigned long AuthnLevel; + unsigned long AuthnSvc; + SEC_WINNT_AUTH_IDENTITY_A *AuthIdentity; + RPC_SECURITY_QOS *SecurityQos; +} RPC_BINDING_HANDLE_SECURITY_V1_A, *PRPC_BINDING_HANDLE_SECURITY_V1_A; + + + +typedef struct _RPC_BINDING_HANDLE_OPTIONS_V1 { + unsigned long Version; + unsigned long Flags; + unsigned long ComTimeout; + unsigned long CallTimeout; +} RPC_BINDING_HANDLE_OPTIONS_V1, *PRPC_BINDING_HANDLE_OPTIONS_V1; +# 1974 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcBindingCreateA ( + RPC_BINDING_HANDLE_TEMPLATE_V1_A * Template, + RPC_BINDING_HANDLE_SECURITY_V1_A * Security, + RPC_BINDING_HANDLE_OPTIONS_V1 * Options, + RPC_BINDING_HANDLE * Binding + ); + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcBindingCreateW ( + RPC_BINDING_HANDLE_TEMPLATE_V1_W * Template, + RPC_BINDING_HANDLE_SECURITY_V1_W * Security, + RPC_BINDING_HANDLE_OPTIONS_V1 * Options, + RPC_BINDING_HANDLE * Binding + ); + + + + + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcBindingGetTrainingContextHandle ( + RPC_BINDING_HANDLE Binding, + void ** ContextHandle + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcServerInqBindingHandle ( + RPC_BINDING_HANDLE * Binding + ); +# 2026 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef enum _RPC_HTTP_REDIRECTOR_STAGE +{ + RPCHTTP_RS_REDIRECT = 1, + RPCHTTP_RS_ACCESS_1, + RPCHTTP_RS_SESSION, + RPCHTTP_RS_ACCESS_2, + RPCHTTP_RS_INTERFACE +} RPC_HTTP_REDIRECTOR_STAGE; +# 2044 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef RPC_STATUS +(__stdcall * RPC_NEW_HTTP_PROXY_CHANNEL) ( + RPC_HTTP_REDIRECTOR_STAGE RedirectorStage, + RPC_WSTR ServerName, + RPC_WSTR ServerPort, + RPC_WSTR RemoteUser, + RPC_WSTR AuthType, + void * ResourceUuid, + void * SessionId, + void * Interface, + void * Reserved, + unsigned long Flags, + RPC_WSTR * NewServerName, + RPC_WSTR * NewServerPort + ); +# 2071 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef void +(__stdcall * RPC_HTTP_PROXY_FREE_STRING) ( + RPC_WSTR String + ); +# 2095 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcImpersonateClient ( + RPC_BINDING_HANDLE BindingHandle + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcImpersonateClient2 ( + RPC_BINDING_HANDLE BindingHandle + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcRevertToSelfEx ( + RPC_BINDING_HANDLE BindingHandle + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcRevertToSelf ( + void + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcImpersonateClientContainer ( + RPC_BINDING_HANDLE BindingHandle + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcRevertContainerImpersonation ( + void + ); + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingInqAuthClientA ( + RPC_BINDING_HANDLE ClientBinding, + RPC_AUTHZ_HANDLE * Privs, + RPC_CSTR * ServerPrincName, + unsigned long * AuthnLevel, + unsigned long * AuthnSvc, + unsigned long * AuthzSvc + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingInqAuthClientW ( + RPC_BINDING_HANDLE ClientBinding, + RPC_AUTHZ_HANDLE * Privs, + RPC_WSTR * ServerPrincName, + unsigned long * AuthnLevel, + unsigned long * AuthnSvc, + unsigned long * AuthzSvc + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcBindingInqAuthClientExA ( + RPC_BINDING_HANDLE ClientBinding, + RPC_AUTHZ_HANDLE * Privs, + RPC_CSTR * ServerPrincName, + unsigned long * AuthnLevel, + unsigned long * AuthnSvc, + unsigned long * AuthzSvc, + unsigned long Flags + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcBindingInqAuthClientExW ( + RPC_BINDING_HANDLE ClientBinding, + RPC_AUTHZ_HANDLE * Privs, + RPC_WSTR * ServerPrincName, + unsigned long * AuthnLevel, + unsigned long * AuthnSvc, + unsigned long * AuthzSvc, + unsigned long Flags + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingInqAuthInfoA ( + RPC_BINDING_HANDLE Binding, + RPC_CSTR * ServerPrincName, + unsigned long * AuthnLevel, + unsigned long * AuthnSvc, + RPC_AUTH_IDENTITY_HANDLE * AuthIdentity, + unsigned long * AuthzSvc + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingInqAuthInfoW ( + RPC_BINDING_HANDLE Binding, + RPC_WSTR * ServerPrincName, + unsigned long * AuthnLevel, + unsigned long * AuthnSvc, + RPC_AUTH_IDENTITY_HANDLE * AuthIdentity, + unsigned long * AuthzSvc + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingSetAuthInfoA ( + RPC_BINDING_HANDLE Binding, + RPC_CSTR ServerPrincName, + unsigned long AuthnLevel, + unsigned long AuthnSvc, + RPC_AUTH_IDENTITY_HANDLE AuthIdentity, + unsigned long AuthzSvc + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingSetAuthInfoExA ( + RPC_BINDING_HANDLE Binding, + RPC_CSTR ServerPrincName, + unsigned long AuthnLevel, + unsigned long AuthnSvc, + RPC_AUTH_IDENTITY_HANDLE AuthIdentity, + unsigned long AuthzSvc, + RPC_SECURITY_QOS * SecurityQos + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingSetAuthInfoW ( + RPC_BINDING_HANDLE Binding, + RPC_WSTR ServerPrincName, + unsigned long AuthnLevel, + unsigned long AuthnSvc, + RPC_AUTH_IDENTITY_HANDLE AuthIdentity, + unsigned long AuthzSvc + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingSetAuthInfoExW ( + RPC_BINDING_HANDLE Binding, + RPC_WSTR ServerPrincName, + unsigned long AuthnLevel, + unsigned long AuthnSvc, + RPC_AUTH_IDENTITY_HANDLE AuthIdentity, + unsigned long AuthzSvc, + RPC_SECURITY_QOS * SecurityQOS + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingInqAuthInfoExA ( + RPC_BINDING_HANDLE Binding, + RPC_CSTR * ServerPrincName, + unsigned long * AuthnLevel, + unsigned long * AuthnSvc, + RPC_AUTH_IDENTITY_HANDLE * AuthIdentity, + unsigned long * AuthzSvc, + unsigned long RpcQosVersion, + RPC_SECURITY_QOS *SecurityQOS + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingInqAuthInfoExW ( + RPC_BINDING_HANDLE Binding, + RPC_WSTR * ServerPrincName, + unsigned long * AuthnLevel, + unsigned long * AuthnSvc, + RPC_AUTH_IDENTITY_HANDLE * AuthIdentity, + unsigned long * AuthzSvc, + unsigned long RpcQosVersion, + RPC_SECURITY_QOS * SecurityQOS + ); + +typedef void +(__stdcall * RPC_AUTH_KEY_RETRIEVAL_FN) ( + void * Arg, + RPC_WSTR ServerPrincName, + unsigned long KeyVer, + void * * Key, + RPC_STATUS * Status + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcServerCompleteSecurityCallback( + RPC_BINDING_HANDLE BindingHandle, + RPC_STATUS Status + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerRegisterAuthInfoA ( + RPC_CSTR ServerPrincName, + unsigned long AuthnSvc, + RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn, + void * Arg + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerRegisterAuthInfoW ( + RPC_WSTR ServerPrincName, + unsigned long AuthnSvc, + RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn, + void * Arg + ); +# 2437 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef struct { + unsigned char * UserName; + unsigned char * ComputerName; + unsigned short Privilege; + unsigned long AuthFlags; +} RPC_CLIENT_INFORMATION1, * PRPC_CLIENT_INFORMATION1; + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcBindingServerFromClient ( + RPC_BINDING_HANDLE ClientBinding, + RPC_BINDING_HANDLE * ServerBinding + ); + +__declspec(dllimport) +__declspec(noreturn) +void +__stdcall +RpcRaiseException ( + RPC_STATUS exception + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcTestCancel( + void + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcServerTestCancel ( + RPC_BINDING_HANDLE BindingHandle + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcCancelThread( + void * Thread + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcCancelThreadEx( + void * Thread, + long Timeout + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +UuidCreate ( + UUID * Uuid + ); + + +__declspec(dllimport) +RPC_STATUS +__stdcall +UuidCreateSequential ( + UUID * Uuid + ); + + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +UuidToStringA ( + const UUID * Uuid, + RPC_CSTR * StringUuid + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +UuidFromStringA ( + RPC_CSTR StringUuid, + UUID * Uuid + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +UuidToStringW ( + const UUID * Uuid, + RPC_WSTR * StringUuid + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +UuidFromStringW ( + RPC_WSTR StringUuid, + UUID * Uuid + ); +# 2584 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) +signed int +__stdcall +UuidCompare ( + UUID * Uuid1, + UUID * Uuid2, + RPC_STATUS * Status + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +UuidCreateNil ( + UUID * NilUuid + ); + +__declspec(dllimport) +int +__stdcall +UuidEqual ( + UUID * Uuid1, + UUID * Uuid2, + RPC_STATUS * Status + ); + +__declspec(dllimport) +unsigned short +__stdcall +UuidHash ( + UUID * Uuid, + RPC_STATUS * Status + ); + +__declspec(dllimport) +int +__stdcall +UuidIsNil ( + UUID * Uuid, + RPC_STATUS * Status + ); + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcEpRegisterNoReplaceA ( + RPC_IF_HANDLE IfSpec, + RPC_BINDING_VECTOR * BindingVector, + UUID_VECTOR * UuidVector, + RPC_CSTR Annotation + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcEpRegisterNoReplaceW ( + RPC_IF_HANDLE IfSpec, + RPC_BINDING_VECTOR * BindingVector, + UUID_VECTOR * UuidVector, + RPC_WSTR Annotation + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcEpRegisterA ( + RPC_IF_HANDLE IfSpec, + RPC_BINDING_VECTOR * BindingVector, + UUID_VECTOR * UuidVector, + RPC_CSTR Annotation + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcEpRegisterW ( + RPC_IF_HANDLE IfSpec, + RPC_BINDING_VECTOR * BindingVector, + UUID_VECTOR * UuidVector, + RPC_WSTR Annotation + ); +# 2705 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcEpUnregister( + RPC_IF_HANDLE IfSpec, + RPC_BINDING_VECTOR * BindingVector, + UUID_VECTOR * UuidVector + ); + + + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +DceErrorInqTextA ( + RPC_STATUS RpcStatus, + RPC_CSTR ErrorText + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +DceErrorInqTextW ( + RPC_STATUS RpcStatus, + RPC_WSTR ErrorText + ); +# 2755 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef I_RPC_HANDLE * RPC_EP_INQ_HANDLE; +# 2768 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtEpEltInqBegin ( + RPC_BINDING_HANDLE EpBinding, + unsigned long InquiryType, + RPC_IF_ID * IfId, + unsigned long VersOption, + UUID * ObjectUuid, + RPC_EP_INQ_HANDLE * InquiryContext + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtEpEltInqDone ( + RPC_EP_INQ_HANDLE * InquiryContext + ); + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtEpEltInqNextA ( + RPC_EP_INQ_HANDLE InquiryContext, + RPC_IF_ID * IfId, + RPC_BINDING_HANDLE * Binding, + UUID * ObjectUuid, + RPC_CSTR * Annotation + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtEpEltInqNextW ( + RPC_EP_INQ_HANDLE InquiryContext, + RPC_IF_ID * IfId, + RPC_BINDING_HANDLE * Binding, + UUID * ObjectUuid, + RPC_WSTR * Annotation + ); +# 2835 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtEpUnregister ( + RPC_BINDING_HANDLE EpBinding, + RPC_IF_ID * IfId, + RPC_BINDING_HANDLE Binding, + UUID * ObjectUuid + ); + +typedef int +(__stdcall * RPC_MGMT_AUTHORIZATION_FN) ( + RPC_BINDING_HANDLE ClientBinding, + unsigned long RequestedMgmtOperation, + RPC_STATUS * Status + ); + + + + + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcMgmtSetAuthorizationFn ( + RPC_MGMT_AUTHORIZATION_FN AuthorizationFn + ); + + +__declspec(dllimport) +int +__stdcall +RpcExceptionFilter ( + unsigned long ExceptionCode + ); +# 2897 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef void *RPC_INTERFACE_GROUP, **PRPC_INTERFACE_GROUP; + + +typedef struct +{ + unsigned long Version; + RPC_WSTR ProtSeq; + RPC_WSTR Endpoint; + void * SecurityDescriptor; + unsigned long Backlog; +} RPC_ENDPOINT_TEMPLATEW, *PRPC_ENDPOINT_TEMPLATEW; + +typedef struct +{ + unsigned long Version; + RPC_CSTR ProtSeq; + RPC_CSTR Endpoint; + void * SecurityDescriptor; + unsigned long Backlog; +} RPC_ENDPOINT_TEMPLATEA, *PRPC_ENDPOINT_TEMPLATEA; +# 2938 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef struct +{ + unsigned long Version; + RPC_IF_HANDLE IfSpec; + UUID * MgrTypeUuid; + void * MgrEpv; + unsigned int Flags; + unsigned int MaxCalls; + unsigned int MaxRpcSize; + RPC_IF_CALLBACK_FN *IfCallback; + UUID_VECTOR *UuidVector; + RPC_CSTR Annotation; + void * SecurityDescriptor; +} RPC_INTERFACE_TEMPLATEA, *PRPC_INTERFACE_TEMPLATEA; + +typedef struct +{ + unsigned long Version; + RPC_IF_HANDLE IfSpec; + UUID * MgrTypeUuid; + void * MgrEpv; + unsigned int Flags; + unsigned int MaxCalls; + unsigned int MaxRpcSize; + RPC_IF_CALLBACK_FN *IfCallback; + UUID_VECTOR *UuidVector; + RPC_WSTR Annotation; + void * SecurityDescriptor; +} RPC_INTERFACE_TEMPLATEW, *PRPC_INTERFACE_TEMPLATEW; +# 2997 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +typedef void __stdcall +RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN ( + RPC_INTERFACE_GROUP IfGroup, + void* IdleCallbackContext, + unsigned long IsGroupIdle + ); + + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcServerInterfaceGroupCreateW ( + RPC_INTERFACE_TEMPLATEW *Interfaces, + unsigned long NumIfs, + RPC_ENDPOINT_TEMPLATEW *Endpoints, + unsigned long NumEndpoints, + unsigned long IdlePeriod, + RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN IdleCallbackFn, + void* IdleCallbackContext, + PRPC_INTERFACE_GROUP IfGroup + ); + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcServerInterfaceGroupCreateA ( + RPC_INTERFACE_TEMPLATEA *Interfaces, + unsigned long NumIfs, + RPC_ENDPOINT_TEMPLATEA *Endpoints, + unsigned long NumEndpoints, + unsigned long IdlePeriod, + RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN IdleCallbackFn, + void* IdleCallbackContext, + PRPC_INTERFACE_GROUP IfGroup + ); +# 3062 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcServerInterfaceGroupClose ( + RPC_INTERFACE_GROUP IfGroup + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcServerInterfaceGroupActivate ( + RPC_INTERFACE_GROUP IfGroup + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcServerInterfaceGroupDeactivate ( + RPC_INTERFACE_GROUP IfGroup, + unsigned long ForceDeactivation + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcServerInterfaceGroupInqBindings ( + RPC_INTERFACE_GROUP IfGroup, + RPC_BINDING_VECTOR * * BindingVector + ); + + + + + + + + +#pragma warning(pop) + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdcep.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdcep.h" +extern "C" { + + + +#pragma warning(push) +#pragma warning(disable: 4668) +#pragma warning(disable: 4820) + + + + + +typedef struct _RPC_VERSION { + unsigned short MajorVersion; + unsigned short MinorVersion; +} RPC_VERSION; + +typedef struct _RPC_SYNTAX_IDENTIFIER { + GUID SyntaxGUID; + RPC_VERSION SyntaxVersion; +} RPC_SYNTAX_IDENTIFIER, * PRPC_SYNTAX_IDENTIFIER; + +typedef struct _RPC_MESSAGE +{ + RPC_BINDING_HANDLE Handle; + unsigned long DataRepresentation; + void * Buffer; + unsigned int BufferLength; + unsigned int ProcNum; + PRPC_SYNTAX_IDENTIFIER TransferSyntax; + void * RpcInterfaceInformation; + void * ReservedForRuntime; + void * ManagerEpv; + void * ImportContext; + unsigned long RpcFlags; +} RPC_MESSAGE, * PRPC_MESSAGE; + + + + + + + +typedef RPC_STATUS +__stdcall RPC_FORWARD_FUNCTION( + UUID * InterfaceId, + RPC_VERSION * InterfaceVersion, + UUID * ObjectId, + unsigned char * Rpcpro, + void * * ppDestEndpoint); + +enum RPC_ADDRESS_CHANGE_TYPE +{ + PROTOCOL_NOT_LOADED = 1, + PROTOCOL_LOADED, + PROTOCOL_ADDRESS_CHANGE +}; + +typedef void +__stdcall RPC_ADDRESS_CHANGE_FN( + void * arg + ); +# 176 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdcep.h" +typedef +void +(__stdcall * RPC_DISPATCH_FUNCTION) ( + PRPC_MESSAGE Message + ); + +typedef struct { + unsigned int DispatchTableCount; + RPC_DISPATCH_FUNCTION * DispatchTable; + LONG_PTR Reserved; +} RPC_DISPATCH_TABLE, * PRPC_DISPATCH_TABLE; + +typedef struct _RPC_PROTSEQ_ENDPOINT +{ + unsigned char * RpcProtocolSequence; + unsigned char * Endpoint; +} RPC_PROTSEQ_ENDPOINT, * PRPC_PROTSEQ_ENDPOINT; +# 201 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdcep.h" +typedef struct _RPC_SERVER_INTERFACE +{ + unsigned int Length; + RPC_SYNTAX_IDENTIFIER InterfaceId; + RPC_SYNTAX_IDENTIFIER TransferSyntax; + PRPC_DISPATCH_TABLE DispatchTable; + unsigned int RpcProtseqEndpointCount; + PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; + void *DefaultManagerEpv; + void const *InterpreterInfo; + unsigned int Flags ; +} RPC_SERVER_INTERFACE, * PRPC_SERVER_INTERFACE; + +typedef struct _RPC_CLIENT_INTERFACE +{ + unsigned int Length; + RPC_SYNTAX_IDENTIFIER InterfaceId; + RPC_SYNTAX_IDENTIFIER TransferSyntax; + PRPC_DISPATCH_TABLE DispatchTable; + unsigned int RpcProtseqEndpointCount; + PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; + ULONG_PTR Reserved; + void const * InterpreterInfo; + unsigned int Flags ; +} RPC_CLIENT_INTERFACE, * PRPC_CLIENT_INTERFACE; +# 234 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdcep.h" +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcNegotiateTransferSyntax ( + RPC_MESSAGE * Message + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcGetBuffer ( + RPC_MESSAGE * Message + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcGetBufferWithObject ( + RPC_MESSAGE * Message, + UUID * ObjectUuid + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcSendReceive ( + RPC_MESSAGE * Message + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcFreeBuffer ( + RPC_MESSAGE * Message + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcSend ( + PRPC_MESSAGE Message + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcReceive ( + PRPC_MESSAGE Message, + unsigned int Size + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcFreePipeBuffer ( + RPC_MESSAGE * Message + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcReallocPipeBuffer ( + PRPC_MESSAGE Message, + unsigned int NewSize + ); + +typedef void * I_RPC_MUTEX; + +__declspec(dllimport) +void +__stdcall +I_RpcRequestMutex ( + I_RPC_MUTEX * Mutex + ); + +__declspec(dllimport) +void +__stdcall +I_RpcClearMutex ( + I_RPC_MUTEX Mutex + ); + +__declspec(dllimport) +void +__stdcall +I_RpcDeleteMutex ( + I_RPC_MUTEX Mutex + ); + +__declspec(dllimport) +void * +__stdcall +I_RpcAllocate ( + unsigned int Size + ); + +__declspec(dllimport) +void +__stdcall +I_RpcFree ( + void * Object + ); + + + + + + +__declspec(dllimport) +unsigned long +__stdcall +I_RpcFreeSystemHandleCollection ( + void * CallObj, + unsigned long FreeFlags + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcSetSystemHandle ( + void * Handle, + unsigned char Type, + unsigned long AccessMask, + void * CallObj, + unsigned long * HandleIndex + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcGetSystemHandle ( + unsigned char* pMemory, + unsigned char Type, + unsigned long AccessMask, + unsigned long HandleIndex, + void * CallObj + ); + +__declspec(dllimport) +void +__stdcall +I_RpcFreeSystemHandle ( + unsigned char Type, + void * Handle + ); + +__declspec(dllimport) +void +__stdcall +I_RpcPauseExecution ( + unsigned long Milliseconds + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcGetExtendedError ( + void + ); + + +typedef enum _LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION +{ + MarshalDirectionMarshal, + MarshalDirectionUnmarshal +}LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION; + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcSystemHandleTypeSpecificWork ( + void * Handle, + unsigned char ActualType, + unsigned char IdlType, + LRPC_SYSTEM_HANDLE_MARSHAL_DIRECTION MarshalDirection + ); + +typedef +void +(__stdcall * PRPC_RUNDOWN) ( + void * AssociationContext + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcMonitorAssociation ( + RPC_BINDING_HANDLE Handle, + PRPC_RUNDOWN RundownRoutine, + void * Context + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcStopMonitorAssociation ( + RPC_BINDING_HANDLE Handle + ); + +__declspec(dllimport) +RPC_BINDING_HANDLE +__stdcall +I_RpcGetCurrentCallHandle( + void + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcGetAssociationContext ( + RPC_BINDING_HANDLE BindingHandle, + void * * AssociationContext + ); + +__declspec(dllimport) +void * +__stdcall +I_RpcGetServerContextList ( + RPC_BINDING_HANDLE BindingHandle + ); + +__declspec(dllimport) +void +__stdcall +I_RpcSetServerContextList ( + RPC_BINDING_HANDLE BindingHandle, + void * ServerContextList + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcNsInterfaceExported ( + unsigned long EntryNameSyntax, + unsigned short *EntryName, + RPC_SERVER_INTERFACE * RpcInterfaceInformation + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcNsInterfaceUnexported ( + unsigned long EntryNameSyntax, + unsigned short *EntryName, + RPC_SERVER_INTERFACE * RpcInterfaceInformation + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcBindingToStaticStringBindingW ( + RPC_BINDING_HANDLE Binding, + unsigned short **StringBinding + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcBindingInqSecurityContext ( + RPC_BINDING_HANDLE Binding, + void **SecurityContextHandle + ); + + +typedef struct _RPC_SEC_CONTEXT_KEY_INFO +{ + unsigned long EncryptAlgorithm; + unsigned long KeySize; + unsigned long SignatureAlgorithm; +} +RPC_SEC_CONTEXT_KEY_INFO, *PRPC_SEC_CONTEXT_KEY_INFO; + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcBindingInqSecurityContextKeyInfo ( + RPC_BINDING_HANDLE Binding, + void *KeyInfo + ); + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcBindingInqWireIdForSnego ( + RPC_BINDING_HANDLE Binding, + unsigned char * WireId + ); + + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcBindingInqMarshalledTargetInfo ( + RPC_BINDING_HANDLE Binding, + unsigned long * MarshalledTargetInfoSize, + RPC_CSTR * MarshalledTargetInfo + ); + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcBindingInqLocalClientPID ( + RPC_BINDING_HANDLE Binding, + unsigned long *Pid + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcBindingHandleToAsyncHandle ( + RPC_BINDING_HANDLE Binding, + void **AsyncHandle + ); + + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcNsBindingSetEntryNameW ( + RPC_BINDING_HANDLE Binding, + unsigned long EntryNameSyntax, + RPC_WSTR EntryName + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcNsBindingSetEntryNameA ( + RPC_BINDING_HANDLE Binding, + unsigned long EntryNameSyntax, + RPC_CSTR EntryName + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcServerUseProtseqEp2A ( + RPC_CSTR NetworkAddress, + RPC_CSTR Protseq, + unsigned int MaxCalls, + RPC_CSTR Endpoint, + void * SecurityDescriptor, + void * Policy + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcServerUseProtseqEp2W ( + RPC_WSTR NetworkAddress, + RPC_WSTR Protseq, + unsigned int MaxCalls, + RPC_WSTR Endpoint, + void * SecurityDescriptor, + void * Policy + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcServerUseProtseq2W ( + RPC_WSTR NetworkAddress, + RPC_WSTR Protseq, + unsigned int MaxCalls, + void * SecurityDescriptor, + void * Policy + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcServerUseProtseq2A ( + RPC_CSTR NetworkAddress, + RPC_CSTR Protseq, + unsigned int MaxCalls, + void * SecurityDescriptor, + void * Policy + ); +# 678 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdcep.h" +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcServerStartService ( + RPC_WSTR Protseq, + RPC_WSTR Endpoint, + RPC_IF_HANDLE IfSpec + ); + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcBindingInqDynamicEndpointW ( + RPC_BINDING_HANDLE Binding, + RPC_WSTR *DynamicEndpoint + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcBindingInqDynamicEndpointA ( + RPC_BINDING_HANDLE Binding, + RPC_CSTR *DynamicEndpoint + ); +# 727 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdcep.h" +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcServerCheckClientRestriction ( + RPC_BINDING_HANDLE Context + ); + + + + + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcBindingInqTransportType ( + RPC_BINDING_HANDLE Binding, + unsigned int * Type + ); + +typedef struct _RPC_TRANSFER_SYNTAX +{ + UUID Uuid; + unsigned short VersMajor; + unsigned short VersMinor; +} RPC_TRANSFER_SYNTAX; + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcIfInqTransferSyntaxes ( + RPC_IF_HANDLE RpcIfHandle, + RPC_TRANSFER_SYNTAX * TransferSyntaxes, + unsigned int TransferSyntaxSize, + unsigned int * TransferSyntaxCount + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_UuidCreate ( + UUID * Uuid + ); + +__declspec(dllimport) +void +__stdcall +I_RpcUninitializeNdrOle ( + void + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcBindingCopy ( + RPC_BINDING_HANDLE SourceBinding, + RPC_BINDING_HANDLE * DestinationBinding + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcBindingIsClientLocal ( + RPC_BINDING_HANDLE BindingHandle, + unsigned int * ClientLocalFlag + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcBindingInqConnId ( + RPC_BINDING_HANDLE Binding, + void **ConnId, + int *pfFirstCall + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcBindingCreateNP ( + RPC_WSTR ServerName, + RPC_WSTR ServiceName, + RPC_WSTR NetworkOptions, + RPC_BINDING_HANDLE *Binding + ); + +__declspec(dllimport) +void +__stdcall +I_RpcSsDontSerializeContext ( + void + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcLaunchDatagramReceiveThread( + void * pAddress + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcServerRegisterForwardFunction ( + RPC_FORWARD_FUNCTION * pForwardFunction + ); + +RPC_ADDRESS_CHANGE_FN * __stdcall +I_RpcServerInqAddressChangeFn( + void + ); + +RPC_STATUS __stdcall +I_RpcServerSetAddressChangeFn( + RPC_ADDRESS_CHANGE_FN * pAddressChangeFn + ); +# 858 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdcep.h" +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcServerInqLocalConnAddress ( + RPC_BINDING_HANDLE Binding, + void *Buffer, + unsigned long *BufferSize, + unsigned long *AddressFormat + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcServerInqRemoteConnAddress ( + RPC_BINDING_HANDLE Binding, + void *Buffer, + unsigned long *BufferSize, + unsigned long *AddressFormat + ); + +__declspec(dllimport) +void +__stdcall +I_RpcSessionStrictContextHandle ( + void + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcTurnOnEEInfoPropagation ( + void + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcConnectionInqSockBuffSize( + unsigned long * RecvBuffSize, + unsigned long * SendBuffSize + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcConnectionSetSockBuffSize( + unsigned long RecvBuffSize, + unsigned long SendBuffSize + ); + +typedef +void +(*RPCLT_PDU_FILTER_FUNC) ( + void *Buffer, + unsigned int BufferLength, + int fDatagram + ); + +typedef +void +(__cdecl *RPC_SETFILTER_FUNC) ( + RPCLT_PDU_FILTER_FUNC pfnFilter + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcServerStartListening( + void * hWnd + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcServerStopListening( + void + ); + +typedef RPC_STATUS (*RPC_BLOCKING_FN) ( + void * hWnd, + void * Context, + void * hSyncEvent + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcBindingSetAsync( + RPC_BINDING_HANDLE Binding, + RPC_BLOCKING_FN BlockingFn, + unsigned long ServerTid + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcSetThreadParams( + int fClientFree, + void *Context, + void * hWndClient + ); + +__declspec(dllimport) +unsigned int +__stdcall +I_RpcWindowProc( + void * hWnd, + unsigned int Message, + unsigned int wParam, + unsigned long lParam + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcServerUnregisterEndpointA ( + RPC_CSTR Protseq, + RPC_CSTR Endpoint + ); + +__declspec(dllimport) + +RPC_STATUS +__stdcall +I_RpcServerUnregisterEndpointW ( + RPC_WSTR Protseq, + RPC_WSTR Endpoint + ); +# 1003 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdcep.h" +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcServerInqTransportType( + unsigned int * Type + ); + +__declspec(dllimport) +long +__stdcall +I_RpcMapWin32Status ( + RPC_STATUS Status + ); + + + + + + + +typedef struct _RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR +{ + unsigned long BufferSize; + char *Buffer; +} RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR; + +typedef struct _RDR_CALLOUT_STATE +{ + + RPC_STATUS LastError; + void *LastEEInfo; + + RPC_HTTP_REDIRECTOR_STAGE LastCalledStage; + + + unsigned short *ServerName; + unsigned short *ServerPort; + unsigned short *RemoteUser; + unsigned short *AuthType; + unsigned char ResourceTypePresent; + unsigned char SessionIdPresent; + unsigned char InterfacePresent; + UUID ResourceType; + UUID SessionId; + RPC_SYNTAX_IDENTIFIER Interface; + void *CertContext; + + +} RDR_CALLOUT_STATE; + + + +typedef RPC_STATUS +(__stdcall *I_RpcProxyIsValidMachineFn) + ( + RPC_WSTR Machine, + RPC_WSTR DotMachine, + unsigned long PortNumber + ); + +typedef RPC_STATUS +(__stdcall *I_RpcProxyGetClientAddressFn) + ( + void *Context, + char *Buffer, + unsigned long *BufferLength + ); + +typedef RPC_STATUS +(__stdcall *I_RpcProxyGetConnectionTimeoutFn) + ( + unsigned long *ConnectionTimeout + ); + + +typedef RPC_STATUS +(__stdcall *I_RpcPerformCalloutFn) + ( + void *Context, + RDR_CALLOUT_STATE *CallOutState, + RPC_HTTP_REDIRECTOR_STAGE Stage + ); + +typedef void +(__stdcall *I_RpcFreeCalloutStateFn) + ( + RDR_CALLOUT_STATE *CallOutState + ); + +typedef RPC_STATUS +(__stdcall *I_RpcProxyGetClientSessionAndResourceUUID) + ( + void *Context, + int *SessionIdPresent, + UUID *SessionId, + int *ResourceIdPresent, + UUID *ResourceId + ); + + + + +typedef RPC_STATUS +(__stdcall *I_RpcProxyFilterIfFn) + ( + void *Context, + UUID *IfUuid, + unsigned short IfMajorVersion, + int *fAllow + ); + +typedef enum RpcProxyPerfCounters +{ + RpcCurrentUniqueUser = 1, + RpcBackEndConnectionAttempts, + RpcBackEndConnectionFailed, + RpcRequestsPerSecond, + RpcIncomingConnections, + RpcIncomingBandwidth, + RpcOutgoingBandwidth, + RpcAttemptedLbsDecisions, + RpcFailedLbsDecisions, + RpcAttemptedLbsMessages, + RpcFailedLbsMessages, + RpcLastCounter +} RpcPerfCounters; + +typedef void +(__stdcall *I_RpcProxyUpdatePerfCounterFn) + ( + RpcPerfCounters Counter, + int ModifyTrend, + unsigned long Size + ); + + typedef void +(__stdcall *I_RpcProxyUpdatePerfCounterBackendServerFn) + ( + unsigned short* MachineName, + int IsConnectEvent + ); + + + + + + + +typedef struct tagI_RpcProxyCallbackInterface +{ + I_RpcProxyIsValidMachineFn IsValidMachineFn; + I_RpcProxyGetClientAddressFn GetClientAddressFn; + I_RpcProxyGetConnectionTimeoutFn GetConnectionTimeoutFn; + I_RpcPerformCalloutFn PerformCalloutFn; + I_RpcFreeCalloutStateFn FreeCalloutStateFn; + I_RpcProxyGetClientSessionAndResourceUUID GetClientSessionAndResourceUUIDFn; + + I_RpcProxyFilterIfFn ProxyFilterIfFn; + I_RpcProxyUpdatePerfCounterFn RpcProxyUpdatePerfCounterFn; + I_RpcProxyUpdatePerfCounterBackendServerFn RpcProxyUpdatePerfCounterBackendServerFn; + +} I_RpcProxyCallbackInterface; + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcProxyNewConnection ( + unsigned long ConnectionType, + unsigned short *ServerAddress, + unsigned short *ServerPort, + unsigned short *MinConnTimeout, + void *ConnectionParameter, + RDR_CALLOUT_STATE *CallOutState, + I_RpcProxyCallbackInterface *ProxyCallbackInterface + ); +# 1203 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdcep.h" +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcReplyToClientWithStatus ( + void *ConnectionParameter, + RPC_STATUS RpcStatus + ); + +__declspec(dllimport) +void +__stdcall +I_RpcRecordCalloutFailure ( + RPC_STATUS RpcStatus, + RDR_CALLOUT_STATE *CallOutState, + unsigned short *DllName + ); + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcMgmtEnableDedicatedThreadPool ( + void + ); + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcGetDefaultSD( + void ** ppSecurityDescriptor + ); + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcOpenClientProcess( + RPC_BINDING_HANDLE Binding, + unsigned long DesiredAccess, + void** ClientProcess + ); + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcBindingIsServerLocal( + RPC_BINDING_HANDLE Binding, + unsigned int * ServerLocalFlag + ); + +RPC_STATUS __stdcall +I_RpcBindingSetPrivateOption ( + RPC_BINDING_HANDLE hBinding, + unsigned long option, + ULONG_PTR optionValue + ); + + + + + + + +RPC_STATUS +__stdcall +I_RpcServerSubscribeForDisconnectNotification ( + RPC_BINDING_HANDLE Binding, + void * hEvent + ); + +RPC_STATUS +__stdcall +I_RpcServerGetAssociationID ( + RPC_BINDING_HANDLE Binding, + unsigned long * AssociationID + ); + +__declspec(dllimport) +long +__stdcall +I_RpcServerDisableExceptionFilter ( + void + ); + + + + + + + +#pragma warning(pop) + + + +} +# 3102 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcdce.h" 2 + + + +} +# 156 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpc.h" 2 + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\rpcnsi.h" 1 +# 28 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\rpcnsi.h" +typedef void * RPC_NS_HANDLE; +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\rpcnsi.h" +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsBindingExportA( + unsigned long EntryNameSyntax, + RPC_CSTR EntryName, + RPC_IF_HANDLE IfSpec, + RPC_BINDING_VECTOR *BindingVec, + UUID_VECTOR *ObjectUuidVec + ); + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsBindingUnexportA( + unsigned long EntryNameSyntax, + RPC_CSTR EntryName, + RPC_IF_HANDLE IfSpec, + UUID_VECTOR *ObjectUuidVec + ); + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsBindingExportW( + unsigned long EntryNameSyntax, + RPC_WSTR EntryName, + RPC_IF_HANDLE IfSpec, + RPC_BINDING_VECTOR *BindingVec, + UUID_VECTOR *ObjectUuidVec + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsBindingUnexportW( + unsigned long EntryNameSyntax, + RPC_WSTR EntryName, + RPC_IF_HANDLE IfSpec, + UUID_VECTOR *ObjectUuidVec + ); + + + + + +RPC_STATUS __stdcall +RpcNsBindingExportPnPA( + unsigned long EntryNameSyntax, + RPC_CSTR EntryName, + RPC_IF_HANDLE IfSpec, + UUID_VECTOR *ObjectVector + ); + +RPC_STATUS __stdcall +RpcNsBindingUnexportPnPA( + unsigned long EntryNameSyntax, + RPC_CSTR EntryName, + RPC_IF_HANDLE IfSpec, + UUID_VECTOR *ObjectVector + ); + + + +RPC_STATUS __stdcall +RpcNsBindingExportPnPW( + unsigned long EntryNameSyntax, + RPC_WSTR EntryName, + RPC_IF_HANDLE IfSpec, + UUID_VECTOR *ObjectVector + ); + +RPC_STATUS __stdcall +RpcNsBindingUnexportPnPW( + unsigned long EntryNameSyntax, + RPC_WSTR EntryName, + RPC_IF_HANDLE IfSpec, + UUID_VECTOR *ObjectVector + ); + + + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsBindingLookupBeginA( + unsigned long EntryNameSyntax, + RPC_CSTR EntryName, + RPC_IF_HANDLE IfSpec, + UUID *ObjUuid, + unsigned long BindingMaxCount, + RPC_NS_HANDLE *LookupContext + ); + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsBindingLookupBeginW( + unsigned long EntryNameSyntax, + RPC_WSTR EntryName, + RPC_IF_HANDLE IfSpec, + UUID *ObjUuid, + unsigned long BindingMaxCount, + RPC_NS_HANDLE *LookupContext + ); + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsBindingLookupNext( + RPC_NS_HANDLE LookupContext, + RPC_BINDING_VECTOR * * BindingVec + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsBindingLookupDone( + RPC_NS_HANDLE * LookupContext + ); + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsGroupDeleteA( + unsigned long GroupNameSyntax, + RPC_CSTR GroupName + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsGroupMbrAddA( + unsigned long GroupNameSyntax, + RPC_CSTR GroupName, + unsigned long MemberNameSyntax, + RPC_CSTR MemberName + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsGroupMbrRemoveA( + unsigned long GroupNameSyntax, + RPC_CSTR GroupName, + unsigned long MemberNameSyntax, + RPC_CSTR MemberName + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsGroupMbrInqBeginA( + unsigned long GroupNameSyntax, + RPC_CSTR GroupName, + unsigned long MemberNameSyntax, + RPC_NS_HANDLE *InquiryContext + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsGroupMbrInqNextA( + RPC_NS_HANDLE InquiryContext, + RPC_CSTR *MemberName + ); + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsGroupDeleteW( + unsigned long GroupNameSyntax, + RPC_WSTR GroupName + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsGroupMbrAddW( + unsigned long GroupNameSyntax, + RPC_WSTR GroupName, + unsigned long MemberNameSyntax, + RPC_WSTR MemberName + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsGroupMbrRemoveW( + unsigned long GroupNameSyntax, + RPC_WSTR GroupName, + unsigned long MemberNameSyntax, + RPC_WSTR MemberName + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsGroupMbrInqBeginW( + unsigned long GroupNameSyntax, + RPC_WSTR GroupName, + unsigned long MemberNameSyntax, + RPC_NS_HANDLE *InquiryContext + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsGroupMbrInqNextW( + RPC_NS_HANDLE InquiryContext, + RPC_WSTR *MemberName + ); + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsGroupMbrInqDone( + RPC_NS_HANDLE * InquiryContext + ); + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsProfileDeleteA( + unsigned long ProfileNameSyntax, + RPC_CSTR ProfileName + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsProfileEltAddA( + unsigned long ProfileNameSyntax, + RPC_CSTR ProfileName, + RPC_IF_ID *IfId, + unsigned long MemberNameSyntax, + RPC_CSTR MemberName, + unsigned long Priority, + RPC_CSTR Annotation + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsProfileEltRemoveA( + unsigned long ProfileNameSyntax, + RPC_CSTR ProfileName, + RPC_IF_ID *IfId, + unsigned long MemberNameSyntax, + RPC_CSTR MemberName + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsProfileEltInqBeginA( + unsigned long ProfileNameSyntax, + RPC_CSTR ProfileName, + unsigned long InquiryType, + RPC_IF_ID *IfId, + unsigned long VersOption, + unsigned long MemberNameSyntax, + RPC_CSTR MemberName, + RPC_NS_HANDLE *InquiryContext + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsProfileEltInqNextA( + RPC_NS_HANDLE InquiryContext, + RPC_IF_ID *IfId, + RPC_CSTR *MemberName, + unsigned long *Priority, + RPC_CSTR *Annotation + ); + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsProfileDeleteW( + unsigned long ProfileNameSyntax, + RPC_WSTR ProfileName + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsProfileEltAddW( + unsigned long ProfileNameSyntax, + RPC_WSTR ProfileName, + RPC_IF_ID *IfId, + unsigned long MemberNameSyntax, + RPC_WSTR MemberName, + unsigned long Priority, + RPC_WSTR Annotation + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsProfileEltRemoveW( + unsigned long ProfileNameSyntax, + RPC_WSTR ProfileName, + RPC_IF_ID *IfId, + unsigned long MemberNameSyntax, + RPC_WSTR MemberName + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsProfileEltInqBeginW( + unsigned long ProfileNameSyntax, + RPC_WSTR ProfileName, + unsigned long InquiryType, + RPC_IF_ID *IfId, + unsigned long VersOption, + unsigned long MemberNameSyntax, + RPC_WSTR MemberName, + RPC_NS_HANDLE *InquiryContext + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsProfileEltInqNextW( + RPC_NS_HANDLE InquiryContext, + RPC_IF_ID *IfId, + RPC_WSTR *MemberName, + unsigned long *Priority, + RPC_WSTR *Annotation + ); + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsProfileEltInqDone( + RPC_NS_HANDLE * InquiryContext + ); + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsEntryObjectInqBeginA( + unsigned long EntryNameSyntax, + RPC_CSTR EntryName, + RPC_NS_HANDLE *InquiryContext + ); + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsEntryObjectInqBeginW( + unsigned long EntryNameSyntax, + RPC_WSTR EntryName, + RPC_NS_HANDLE *InquiryContext + ); + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsEntryObjectInqNext( + RPC_NS_HANDLE InquiryContext, + UUID * ObjUuid + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsEntryObjectInqDone( + RPC_NS_HANDLE * InquiryContext + ); + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsEntryExpandNameA( + unsigned long EntryNameSyntax, + RPC_CSTR EntryName, + RPC_CSTR *ExpandedName + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsMgmtBindingUnexportA( + unsigned long EntryNameSyntax, + RPC_CSTR EntryName, + RPC_IF_ID *IfId, + unsigned long VersOption, + UUID_VECTOR *ObjectUuidVec + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsMgmtEntryCreateA( + unsigned long EntryNameSyntax, + RPC_CSTR EntryName + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsMgmtEntryDeleteA( + unsigned long EntryNameSyntax, + RPC_CSTR EntryName + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsMgmtEntryInqIfIdsA( + unsigned long EntryNameSyntax, + RPC_CSTR EntryName, + RPC_IF_ID_VECTOR * *IfIdVec + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsMgmtHandleSetExpAge( + RPC_NS_HANDLE NsHandle, + unsigned long ExpirationAge + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsMgmtInqExpAge( + unsigned long * ExpirationAge + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsMgmtSetExpAge( + unsigned long ExpirationAge + ); + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsEntryExpandNameW( + unsigned long EntryNameSyntax, + RPC_WSTR EntryName, + RPC_WSTR *ExpandedName + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsMgmtBindingUnexportW( + unsigned long EntryNameSyntax, + RPC_WSTR EntryName, + RPC_IF_ID *IfId, + unsigned long VersOption, + UUID_VECTOR *ObjectUuidVec + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsMgmtEntryCreateW( + unsigned long EntryNameSyntax, + RPC_WSTR EntryName + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsMgmtEntryDeleteW( + unsigned long EntryNameSyntax, + RPC_WSTR EntryName + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsMgmtEntryInqIfIdsW( + unsigned long EntryNameSyntax, + RPC_WSTR EntryName, + RPC_IF_ID_VECTOR * *IfIdVec + ); + + + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsBindingImportBeginA( + unsigned long EntryNameSyntax, + RPC_CSTR EntryName, + RPC_IF_HANDLE IfSpec, + UUID *ObjUuid, + RPC_NS_HANDLE *ImportContext + ); + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsBindingImportBeginW( + unsigned long EntryNameSyntax, + RPC_WSTR EntryName, + RPC_IF_HANDLE IfSpec, + UUID *ObjUuid, + RPC_NS_HANDLE *ImportContext + ); + + + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsBindingImportNext( + RPC_NS_HANDLE ImportContext, + RPC_BINDING_HANDLE * Binding + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsBindingImportDone( + RPC_NS_HANDLE * ImportContext + ); + +__declspec(dllimport) RPC_STATUS __stdcall +RpcNsBindingSelect( + RPC_BINDING_VECTOR * BindingVec, + RPC_BINDING_HANDLE * Binding + ); +# 158 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpc.h" 2 + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcnterr.h" 1 +# 25 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcnterr.h" +#pragma warning(push) +#pragma warning(disable: 4668) +# 557 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcnterr.h" +#pragma warning(pop) +# 160 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpc.h" 2 +# 212 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpc.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcasync.h" 1 +# 30 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcasync.h" +extern "C" { +# 51 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcasync.h" +#pragma warning(push) +#pragma warning(disable: 4820) + + + + +typedef +enum _RPC_NOTIFICATION_TYPES +{ + RpcNotificationTypeNone, + RpcNotificationTypeEvent, + + RpcNotificationTypeApc, + RpcNotificationTypeIoc, + RpcNotificationTypeHwnd, + + RpcNotificationTypeCallback +} RPC_NOTIFICATION_TYPES; + + +typedef +enum _RPC_ASYNC_EVENT { + RpcCallComplete, + RpcSendComplete, + RpcReceiveComplete, + RpcClientDisconnect, + RpcClientCancel + } RPC_ASYNC_EVENT; +# 91 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcasync.h" +struct _RPC_ASYNC_STATE; + +typedef void __stdcall +RPCNOTIFICATION_ROUTINE ( + struct _RPC_ASYNC_STATE *pAsync, + void *Context, + RPC_ASYNC_EVENT Event); +typedef RPCNOTIFICATION_ROUTINE *PFN_RPCNOTIFICATION_ROUTINE; + +typedef union _RPC_ASYNC_NOTIFICATION_INFO { + + + + + struct { + PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine; + HANDLE hThread; + } APC; + + + + + + + + struct { + HANDLE hIOPort; + DWORD dwNumberOfBytesTransferred; + DWORD_PTR dwCompletionKey; + LPOVERLAPPED lpOverlapped; + } IOC; + + + + + + + struct { + HWND hWnd; + UINT Msg; + } HWND; +# 141 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcasync.h" + HANDLE hEvent; +# 154 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcasync.h" + PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine; +} RPC_ASYNC_NOTIFICATION_INFO, *PRPC_ASYNC_NOTIFICATION_INFO; + +typedef struct _RPC_ASYNC_STATE { + unsigned int Size; + unsigned long Signature; + long Lock; + unsigned long Flags; + void *StubInfo; + void *UserInfo; + void *RuntimeInfo; + RPC_ASYNC_EVENT Event; + + RPC_NOTIFICATION_TYPES NotificationType; + RPC_ASYNC_NOTIFICATION_INFO u; + + LONG_PTR Reserved[4]; + } RPC_ASYNC_STATE, *PRPC_ASYNC_STATE; + + + + + + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcAsyncInitializeHandle ( + PRPC_ASYNC_STATE pAsync, + unsigned int Size + ); + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcAsyncRegisterInfo ( + PRPC_ASYNC_STATE pAsync + ) ; + + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcAsyncGetCallStatus ( + PRPC_ASYNC_STATE pAsync + ) ; + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcAsyncCompleteCall ( + PRPC_ASYNC_STATE pAsync, + void *Reply + ) ; + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcAsyncAbortCall ( + PRPC_ASYNC_STATE pAsync, + unsigned long ExceptionCode + ) ; + +__declspec(dllimport) + +RPC_STATUS +__stdcall +RpcAsyncCancelCall ( + PRPC_ASYNC_STATE pAsync, + BOOL fAbort + ) ; + + + + + + +typedef enum tagExtendedErrorParamTypes +{ + eeptAnsiString = 1, + eeptUnicodeString, + eeptLongVal, + eeptShortVal, + eeptPointerVal, + eeptNone, + eeptBinary +} ExtendedErrorParamTypes; + + + + +typedef struct tagBinaryParam +{ + void *Buffer; + short Size; +} BinaryParam; + +typedef struct tagRPC_EE_INFO_PARAM +{ + ExtendedErrorParamTypes ParameterType; + union + { + LPSTR AnsiString; + LPWSTR UnicodeString; + long LVal; + short SVal; + ULONGLONG PVal; + BinaryParam BVal; + } u; +} RPC_EE_INFO_PARAM; +# 281 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcasync.h" +typedef struct tagRPC_EXTENDED_ERROR_INFO +{ + ULONG Version; + LPWSTR ComputerName; + ULONG ProcessID; + union + { + + SYSTEMTIME SystemTime; + FILETIME FileTime; + + + + } u; + ULONG GeneratingComponent; + ULONG Status; + USHORT DetectionLocation; + USHORT Flags; + int NumberOfParameters; + RPC_EE_INFO_PARAM Parameters[4]; +} RPC_EXTENDED_ERROR_INFO; + +typedef struct tagRPC_ERROR_ENUM_HANDLE +{ + ULONG Signature; + void *CurrentPos; + void *Head; +} RPC_ERROR_ENUM_HANDLE; + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcErrorStartEnumeration ( + RPC_ERROR_ENUM_HANDLE *EnumHandle + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcErrorGetNextRecord ( + RPC_ERROR_ENUM_HANDLE *EnumHandle, + BOOL CopyStrings, + RPC_EXTENDED_ERROR_INFO *ErrorInfo + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcErrorEndEnumeration ( + RPC_ERROR_ENUM_HANDLE *EnumHandle + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcErrorResetEnumeration ( + RPC_ERROR_ENUM_HANDLE *EnumHandle + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcErrorGetNumberOfRecords ( + RPC_ERROR_ENUM_HANDLE *EnumHandle, + int *Records + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcErrorSaveErrorInfo ( + RPC_ERROR_ENUM_HANDLE *EnumHandle, + PVOID *ErrorBlob, + size_t *BlobSize + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcErrorLoadErrorInfo ( + PVOID ErrorBlob, + size_t BlobSize, + RPC_ERROR_ENUM_HANDLE *EnumHandle + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcErrorAddRecord ( + RPC_EXTENDED_ERROR_INFO *ErrorInfo + ); + +__declspec(dllimport) +void +__stdcall +RpcErrorClearInformation ( + void + ); + + + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcAsyncCleanupThread ( + DWORD dwTimeout + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcGetAuthorizationContextForClient ( + RPC_BINDING_HANDLE ClientBinding, + BOOL ImpersonateOnReturn, + PVOID Reserved1, + PLARGE_INTEGER pExpirationTime, + LUID Reserved2, + DWORD Reserved3, + PVOID Reserved4, + PVOID *pAuthzClientContext + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcFreeAuthorizationContext ( + PVOID *pAuthzClientContext + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcSsContextLockExclusive ( + RPC_BINDING_HANDLE ServerBindingHandle, + PVOID UserContext + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcSsContextLockShared ( + RPC_BINDING_HANDLE ServerBindingHandle, + PVOID UserContext + ); + + +typedef enum tagRpcLocalAddressFormat +{ + rlafInvalid = 0, + rlafIPv4, + rlafIPv6 +} RpcLocalAddressFormat; + +typedef struct _RPC_CALL_LOCAL_ADDRESS_V1 +{ + unsigned int Version; + void *Buffer; + unsigned long BufferSize; + RpcLocalAddressFormat AddressFormat; +} RPC_CALL_LOCAL_ADDRESS_V1, *PRPC_CALL_LOCAL_ADDRESS_V1; +# 467 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcasync.h" +typedef struct tagRPC_CALL_ATTRIBUTES_V1_W +{ + unsigned int Version; + unsigned long Flags; + unsigned long ServerPrincipalNameBufferLength; + unsigned short *ServerPrincipalName; + unsigned long ClientPrincipalNameBufferLength; + unsigned short *ClientPrincipalName; + unsigned long AuthenticationLevel; + unsigned long AuthenticationService; + BOOL NullSession; +} RPC_CALL_ATTRIBUTES_V1_W; + +typedef struct tagRPC_CALL_ATTRIBUTES_V1_A +{ + unsigned int Version; + unsigned long Flags; + unsigned long ServerPrincipalNameBufferLength; + unsigned char *ServerPrincipalName; + unsigned long ClientPrincipalNameBufferLength; + unsigned char *ClientPrincipalName; + unsigned long AuthenticationLevel; + unsigned long AuthenticationService; + BOOL NullSession; +} RPC_CALL_ATTRIBUTES_V1_A; + + + + + + +typedef enum tagRpcCallType +{ + rctInvalid = 0, + rctNormal, + rctTraining, + rctGuaranteed +} RpcCallType; + +typedef enum tagRpcCallClientLocality +{ + rcclInvalid = 0, + rcclLocal, + rcclRemote, + rcclClientUnknownLocality +} RpcCallClientLocality; + + +typedef struct tagRPC_CALL_ATTRIBUTES_V2_W +{ + unsigned int Version; + unsigned long Flags; + unsigned long ServerPrincipalNameBufferLength; + unsigned short *ServerPrincipalName; + unsigned long ClientPrincipalNameBufferLength; + unsigned short *ClientPrincipalName; + unsigned long AuthenticationLevel; + unsigned long AuthenticationService; + BOOL NullSession; + BOOL KernelModeCaller; + unsigned long ProtocolSequence; + RpcCallClientLocality IsClientLocal; + HANDLE ClientPID; + unsigned long CallStatus; + RpcCallType CallType; + RPC_CALL_LOCAL_ADDRESS_V1 *CallLocalAddress; + unsigned short OpNum; + UUID InterfaceUuid; +} RPC_CALL_ATTRIBUTES_V2_W; + +typedef struct tagRPC_CALL_ATTRIBUTES_V2_A +{ + unsigned int Version; + unsigned long Flags; + unsigned long ServerPrincipalNameBufferLength; + unsigned char *ServerPrincipalName; + unsigned long ClientPrincipalNameBufferLength; + unsigned char *ClientPrincipalName; + unsigned long AuthenticationLevel; + unsigned long AuthenticationService; + BOOL NullSession; + BOOL KernelModeCaller; + unsigned long ProtocolSequence; + unsigned long IsClientLocal; + HANDLE ClientPID; + unsigned long CallStatus; + RpcCallType CallType; + RPC_CALL_LOCAL_ADDRESS_V1 *CallLocalAddress; + unsigned short OpNum; + UUID InterfaceUuid; +} RPC_CALL_ATTRIBUTES_V2_A; + + + +typedef struct tagRPC_CALL_ATTRIBUTES_V3_W +{ + unsigned int Version; + unsigned long Flags; + unsigned long ServerPrincipalNameBufferLength; + unsigned short *ServerPrincipalName; + unsigned long ClientPrincipalNameBufferLength; + unsigned short *ClientPrincipalName; + unsigned long AuthenticationLevel; + unsigned long AuthenticationService; + BOOL NullSession; + BOOL KernelModeCaller; + unsigned long ProtocolSequence; + RpcCallClientLocality IsClientLocal; + HANDLE ClientPID; + unsigned long CallStatus; + RpcCallType CallType; + RPC_CALL_LOCAL_ADDRESS_V1 *CallLocalAddress; + unsigned short OpNum; + UUID InterfaceUuid; + unsigned long ClientIdentifierBufferLength; + unsigned char *ClientIdentifier; +} RPC_CALL_ATTRIBUTES_V3_W; + +typedef struct tagRPC_CALL_ATTRIBUTES_V3_A +{ + unsigned int Version; + unsigned long Flags; + unsigned long ServerPrincipalNameBufferLength; + unsigned char *ServerPrincipalName; + unsigned long ClientPrincipalNameBufferLength; + unsigned char *ClientPrincipalName; + unsigned long AuthenticationLevel; + unsigned long AuthenticationService; + BOOL NullSession; + BOOL KernelModeCaller; + unsigned long ProtocolSequence; + unsigned long IsClientLocal; + HANDLE ClientPID; + unsigned long CallStatus; + RpcCallType CallType; + RPC_CALL_LOCAL_ADDRESS_V1 *CallLocalAddress; + unsigned short OpNum; + UUID InterfaceUuid; + unsigned long ClientIdentifierBufferLength; + unsigned char *ClientIdentifier; +} RPC_CALL_ATTRIBUTES_V3_A; + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcServerInqCallAttributesW ( + RPC_BINDING_HANDLE ClientBinding, + void *RpcCallAttributes + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcServerInqCallAttributesA ( + RPC_BINDING_HANDLE ClientBinding, + void *RpcCallAttributes + ); +# 648 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcasync.h" +typedef RPC_CALL_ATTRIBUTES_V3_W RPC_CALL_ATTRIBUTES; +# 657 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcasync.h" +typedef enum _RPC_NOTIFICATIONS +{ + RpcNotificationCallNone = 0, + RpcNotificationClientDisconnect = 1, + RpcNotificationCallCancel = 2 +} RPC_NOTIFICATIONS; + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcServerSubscribeForNotification ( + RPC_BINDING_HANDLE Binding, + RPC_NOTIFICATIONS Notification, + RPC_NOTIFICATION_TYPES NotificationType, + RPC_ASYNC_NOTIFICATION_INFO *NotificationInfo + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcServerUnsubscribeForNotification ( + RPC_BINDING_HANDLE Binding, + RPC_NOTIFICATIONS Notification, + unsigned long *NotificationsQueued + ); + + + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcBindingBind ( + PRPC_ASYNC_STATE pAsync, + RPC_BINDING_HANDLE Binding, + RPC_IF_HANDLE IfSpec + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcBindingUnbind ( + RPC_BINDING_HANDLE Binding + ); + + + + + + + +RPC_STATUS __stdcall +I_RpcAsyncSetHandle ( + PRPC_MESSAGE Message, + PRPC_ASYNC_STATE pAsync + ); + + +RPC_STATUS __stdcall +I_RpcAsyncAbortCall ( + PRPC_ASYNC_STATE pAsync, + unsigned long ExceptionCode + ) ; + + +int +__stdcall +I_RpcExceptionFilter ( + unsigned long ExceptionCode + ); + + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcBindingInqClientTokenAttributes ( + RPC_BINDING_HANDLE Binding, + LUID * TokenId, + LUID * AuthenticationId, + LUID * ModifiedId + ); + + + + +#pragma warning(pop) + + + + + + +} +# 212 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpc.h" 2 +# 221 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpc.h" +} +# 195 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" 1 +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +#pragma warning(push) +#pragma warning(disable: 4001) +#pragma warning(disable: 4201) +#pragma warning(disable: 4820) +# 57 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" +#pragma warning(disable: 4103) + +#pragma pack(push,1) +# 57 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" 2 + + + + +extern "C" { +# 70 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +struct HDROP__{int unused;}; typedef struct HDROP__ *HDROP; + + +extern "C" __declspec(dllimport) UINT __stdcall DragQueryFileA( HDROP hDrop, UINT iFile, LPSTR lpszFile, UINT cch); + +extern "C" __declspec(dllimport) UINT __stdcall DragQueryFileW( HDROP hDrop, UINT iFile, LPWSTR lpszFile, UINT cch); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall DragQueryPoint( HDROP hDrop, POINT *ppt); +extern "C" __declspec(dllimport) void __stdcall DragFinish( HDROP hDrop); +extern "C" __declspec(dllimport) void __stdcall DragAcceptFiles( HWND hWnd, BOOL fAccept); + +extern "C" __declspec(dllimport) HINSTANCE __stdcall ShellExecuteA( HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, + LPCSTR lpDirectory, INT nShowCmd); +extern "C" __declspec(dllimport) HINSTANCE __stdcall ShellExecuteW( HWND hwnd, LPCWSTR lpOperation, LPCWSTR lpFile, LPCWSTR lpParameters, + LPCWSTR lpDirectory, INT nShowCmd); + + + + + + +extern "C" __declspec(dllimport) HINSTANCE __stdcall FindExecutableA( LPCSTR lpFile, LPCSTR lpDirectory, LPSTR lpResult); + +extern "C" __declspec(dllimport) HINSTANCE __stdcall FindExecutableW( LPCWSTR lpFile, LPCWSTR lpDirectory, LPWSTR lpResult); + + + + + +extern "C" __declspec(dllimport) LPWSTR * __stdcall CommandLineToArgvW( LPCWSTR lpCmdLine, int* pNumArgs); + +extern "C" __declspec(dllimport) INT __stdcall ShellAboutA( HWND hWnd, LPCSTR szApp, LPCSTR szOtherStuff, HICON hIcon); +extern "C" __declspec(dllimport) INT __stdcall ShellAboutW( HWND hWnd, LPCWSTR szApp, LPCWSTR szOtherStuff, HICON hIcon); + + + + + +extern "C" __declspec(dllimport) HICON __stdcall DuplicateIcon( HINSTANCE hInst, HICON hIcon); +extern "C" __declspec(dllimport) HICON __stdcall ExtractAssociatedIconA( HINSTANCE hInst, LPSTR pszIconPath, WORD *piIcon); +extern "C" __declspec(dllimport) HICON __stdcall ExtractAssociatedIconW( HINSTANCE hInst, LPWSTR pszIconPath, WORD *piIcon); + + + + + +extern "C" __declspec(dllimport) HICON __stdcall ExtractAssociatedIconExA( HINSTANCE hInst, LPSTR pszIconPath, WORD *piIconIndex, WORD *piIconId); +extern "C" __declspec(dllimport) HICON __stdcall ExtractAssociatedIconExW( HINSTANCE hInst, LPWSTR pszIconPath, WORD *piIconIndex, WORD *piIconId); + + + + + +extern "C" __declspec(dllimport) HICON __stdcall ExtractIconA( HINSTANCE hInst, LPCSTR pszExeFileName, UINT nIconIndex); +extern "C" __declspec(dllimport) HICON __stdcall ExtractIconW( HINSTANCE hInst, LPCWSTR pszExeFileName, UINT nIconIndex); +# 137 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +typedef struct _DRAGINFOA { + UINT uSize; + POINT pt; + BOOL fNC; + PZZSTR lpFileList; + DWORD grfKeyState; +} DRAGINFOA, *LPDRAGINFOA; +typedef struct _DRAGINFOW { + UINT uSize; + POINT pt; + BOOL fNC; + PZZWSTR lpFileList; + DWORD grfKeyState; +} DRAGINFOW, *LPDRAGINFOW; + +typedef DRAGINFOW DRAGINFO; +typedef LPDRAGINFOW LPDRAGINFO; +# 199 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +typedef struct _AppBarData +{ + DWORD cbSize; + HWND hWnd; + UINT uCallbackMessage; + UINT uEdge; + RECT rc; + LPARAM lParam; +} APPBARDATA, *PAPPBARDATA; + + +extern "C" __declspec(dllimport) UINT_PTR __stdcall SHAppBarMessage( DWORD dwMessage, PAPPBARDATA pData); + + + + + +extern "C" __declspec(dllimport) DWORD __stdcall DoEnvironmentSubstA( LPSTR pszSrc, UINT cchSrc); +extern "C" __declspec(dllimport) DWORD __stdcall DoEnvironmentSubstW( LPWSTR pszSrc, UINT cchSrc); + + + + + + + +extern "C" __declspec(dllimport) UINT __stdcall ExtractIconExA( LPCSTR lpszFile, int nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIcons); +extern "C" __declspec(dllimport) UINT __stdcall ExtractIconExW( LPCWSTR lpszFile, int nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIcons); +# 263 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +typedef WORD FILEOP_FLAGS; +# 276 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +typedef WORD PRINTEROP_FLAGS; +# 285 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +typedef struct _SHFILEOPSTRUCTA +{ + HWND hwnd; + UINT wFunc; + PCZZSTR pFrom; + PCZZSTR pTo; + FILEOP_FLAGS fFlags; + BOOL fAnyOperationsAborted; + LPVOID hNameMappings; + PCSTR lpszProgressTitle; +} SHFILEOPSTRUCTA, *LPSHFILEOPSTRUCTA; +typedef struct _SHFILEOPSTRUCTW +{ + HWND hwnd; + UINT wFunc; + PCZZWSTR pFrom; + PCZZWSTR pTo; + FILEOP_FLAGS fFlags; + BOOL fAnyOperationsAborted; + LPVOID hNameMappings; + PCWSTR lpszProgressTitle; +} SHFILEOPSTRUCTW, *LPSHFILEOPSTRUCTW; + +typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT; +typedef LPSHFILEOPSTRUCTW LPSHFILEOPSTRUCT; + + + + + +extern "C" __declspec(dllimport) int __stdcall SHFileOperationA( LPSHFILEOPSTRUCTA lpFileOp); +extern "C" __declspec(dllimport) int __stdcall SHFileOperationW( LPSHFILEOPSTRUCTW lpFileOp); + + + + + +extern "C" __declspec(dllimport) void __stdcall SHFreeNameMappings( HANDLE hNameMappings); + +typedef struct _SHNAMEMAPPINGA +{ + LPSTR pszOldPath; + LPSTR pszNewPath; + int cchOldPath; + int cchNewPath; +} SHNAMEMAPPINGA, *LPSHNAMEMAPPINGA; +typedef struct _SHNAMEMAPPINGW +{ + LPWSTR pszOldPath; + LPWSTR pszNewPath; + int cchOldPath; + int cchNewPath; +} SHNAMEMAPPINGW, *LPSHNAMEMAPPINGW; + +typedef SHNAMEMAPPINGW SHNAMEMAPPING; +typedef LPSHNAMEMAPPINGW LPSHNAMEMAPPING; +# 437 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +typedef struct _SHELLEXECUTEINFOA +{ + DWORD cbSize; + ULONG fMask; + HWND hwnd; + LPCSTR lpVerb; + LPCSTR lpFile; + LPCSTR lpParameters; + LPCSTR lpDirectory; + int nShow; + HINSTANCE hInstApp; + void *lpIDList; + LPCSTR lpClass; + HKEY hkeyClass; + DWORD dwHotKey; + union + { + HANDLE hIcon; + + HANDLE hMonitor; + + } ; + HANDLE hProcess; +} SHELLEXECUTEINFOA, *LPSHELLEXECUTEINFOA; +typedef struct _SHELLEXECUTEINFOW +{ + DWORD cbSize; + ULONG fMask; + HWND hwnd; + LPCWSTR lpVerb; + LPCWSTR lpFile; + LPCWSTR lpParameters; + LPCWSTR lpDirectory; + int nShow; + HINSTANCE hInstApp; + void *lpIDList; + LPCWSTR lpClass; + HKEY hkeyClass; + DWORD dwHotKey; + union + { + HANDLE hIcon; + + HANDLE hMonitor; + + } ; + HANDLE hProcess; +} SHELLEXECUTEINFOW, *LPSHELLEXECUTEINFOW; + +typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO; +typedef LPSHELLEXECUTEINFOW LPSHELLEXECUTEINFO; + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall ShellExecuteExA( SHELLEXECUTEINFOA *pExecInfo); +extern "C" __declspec(dllimport) BOOL __stdcall ShellExecuteExW( SHELLEXECUTEINFOW *pExecInfo); +# 503 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +typedef struct _SHCREATEPROCESSINFOW +{ + DWORD cbSize; + ULONG fMask; + HWND hwnd; + LPCWSTR pszFile; + LPCWSTR pszParameters; + LPCWSTR pszCurrentDirectory; + HANDLE hUserToken; + LPSECURITY_ATTRIBUTES lpProcessAttributes; + LPSECURITY_ATTRIBUTES lpThreadAttributes; + BOOL bInheritHandles; + DWORD dwCreationFlags; + LPSTARTUPINFOW lpStartupInfo; + LPPROCESS_INFORMATION lpProcessInformation; +} SHCREATEPROCESSINFOW, *PSHCREATEPROCESSINFOW; + +extern "C" __declspec(dllimport) BOOL __stdcall SHCreateProcessAsUserW( PSHCREATEPROCESSINFOW pscpi); + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall SHEvaluateSystemCommandTemplate( PCWSTR pszCmdTemplate, PWSTR *ppszApplication, PWSTR *ppszCommandLine, PWSTR *ppszParameters); +# 861 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +typedef enum ASSOCCLASS +{ + ASSOCCLASS_SHELL_KEY = 0, + ASSOCCLASS_PROGID_KEY, + ASSOCCLASS_PROGID_STR, + ASSOCCLASS_CLSID_KEY, + ASSOCCLASS_CLSID_STR, + ASSOCCLASS_APP_KEY, + ASSOCCLASS_APP_STR, + ASSOCCLASS_SYSTEM_STR, + ASSOCCLASS_FOLDER, + ASSOCCLASS_STAR, + + ASSOCCLASS_FIXED_PROGID_STR, + ASSOCCLASS_PROTOCOL_STR, + +} ASSOCCLASS; + +typedef struct ASSOCIATIONELEMENT +{ + ASSOCCLASS ac; + HKEY hkClass; + PCWSTR pszClass; +} ASSOCIATIONELEMENT; + + + +extern "C" __declspec(dllimport) HRESULT __stdcall AssocCreateForClasses( const ASSOCIATIONELEMENT *rgClasses, ULONG cClasses, const IID & riid, void **ppv); +# 934 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +typedef struct _SHQUERYRBINFO { + DWORD cbSize; + + __int64 i64Size; + __int64 i64NumItems; + + + + +} SHQUERYRBINFO, *LPSHQUERYRBINFO; +# 953 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +extern "C" __declspec(dllimport) HRESULT __stdcall SHQueryRecycleBinA( LPCSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo); +extern "C" __declspec(dllimport) HRESULT __stdcall SHQueryRecycleBinW( LPCWSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall SHEmptyRecycleBinA( HWND hwnd, LPCSTR pszRootPath, DWORD dwFlags); +extern "C" __declspec(dllimport) HRESULT __stdcall SHEmptyRecycleBinW( HWND hwnd, LPCWSTR pszRootPath, DWORD dwFlags); +# 978 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +typedef enum +{ + QUNS_NOT_PRESENT = 1, + QUNS_BUSY = 2, + QUNS_RUNNING_D3D_FULL_SCREEN = 3, + QUNS_PRESENTATION_MODE = 4, + QUNS_ACCEPTS_NOTIFICATIONS = 5, + + QUNS_QUIET_TIME = 6, + + + QUNS_APP = 7, + +} QUERY_USER_NOTIFICATION_STATE; + +extern "C" __declspec(dllimport) HRESULT __stdcall SHQueryUserNotificationState( QUERY_USER_NOTIFICATION_STATE *pquns); + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall SHGetPropertyStoreForWindow( HWND hwnd, const IID & riid, void** ppv); + + + +typedef struct _NOTIFYICONDATAA { + DWORD cbSize; + HWND hWnd; + UINT uID; + UINT uFlags; + UINT uCallbackMessage; + HICON hIcon; + + + + + CHAR szTip[128]; + DWORD dwState; + DWORD dwStateMask; + CHAR szInfo[256]; + + union { + UINT uTimeout; + UINT uVersion; + } ; + + CHAR szInfoTitle[64]; + DWORD dwInfoFlags; + + + GUID guidItem; + + + HICON hBalloonIcon; + +} NOTIFYICONDATAA, *PNOTIFYICONDATAA; +typedef struct _NOTIFYICONDATAW { + DWORD cbSize; + HWND hWnd; + UINT uID; + UINT uFlags; + UINT uCallbackMessage; + HICON hIcon; + + + + + WCHAR szTip[128]; + DWORD dwState; + DWORD dwStateMask; + WCHAR szInfo[256]; + + union { + UINT uTimeout; + UINT uVersion; + } ; + + WCHAR szInfoTitle[64]; + DWORD dwInfoFlags; + + + GUID guidItem; + + + HICON hBalloonIcon; + +} NOTIFYICONDATAW, *PNOTIFYICONDATAW; + +typedef NOTIFYICONDATAW NOTIFYICONDATA; +typedef PNOTIFYICONDATAW PNOTIFYICONDATA; +# 1169 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +typedef struct _NOTIFYICONIDENTIFIER { + DWORD cbSize; + HWND hWnd; + UINT uID; + GUID guidItem; +} NOTIFYICONIDENTIFIER, *PNOTIFYICONIDENTIFIER; + + +extern "C" __declspec(dllimport) BOOL __stdcall Shell_NotifyIconA(DWORD dwMessage, PNOTIFYICONDATAA lpData); +extern "C" __declspec(dllimport) BOOL __stdcall Shell_NotifyIconW(DWORD dwMessage, PNOTIFYICONDATAW lpData); + + + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall Shell_NotifyIconGetRect( const NOTIFYICONIDENTIFIER* identifier, RECT* iconLocation); +# 1215 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +typedef struct _SHFILEINFOA +{ + HICON hIcon; + int iIcon; + DWORD dwAttributes; + CHAR szDisplayName[260]; + CHAR szTypeName[80]; +} SHFILEINFOA; +typedef struct _SHFILEINFOW +{ + HICON hIcon; + int iIcon; + DWORD dwAttributes; + WCHAR szDisplayName[260]; + WCHAR szTypeName[80]; +} SHFILEINFOW; + +typedef SHFILEINFOW SHFILEINFO; +# 1264 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +extern "C" __declspec(dllimport) DWORD_PTR __stdcall SHGetFileInfoA( LPCSTR pszPath, DWORD dwFileAttributes, SHFILEINFOA *psfi, + UINT cbFileInfo, UINT uFlags); +extern "C" __declspec(dllimport) DWORD_PTR __stdcall SHGetFileInfoW( LPCWSTR pszPath, DWORD dwFileAttributes, SHFILEINFOW *psfi, + UINT cbFileInfo, UINT uFlags); + + + + + + + +typedef struct _SHSTOCKICONINFO +{ + DWORD cbSize; + HICON hIcon; + int iSysImageIndex; + int iIcon; + WCHAR szPath[260]; +} SHSTOCKICONINFO; +# 1296 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +typedef enum SHSTOCKICONID +{ + SIID_DOCNOASSOC = 0, + SIID_DOCASSOC = 1, + SIID_APPLICATION = 2, + SIID_FOLDER = 3, + SIID_FOLDEROPEN = 4, + SIID_DRIVE525 = 5, + SIID_DRIVE35 = 6, + SIID_DRIVEREMOVE = 7, + SIID_DRIVEFIXED = 8, + SIID_DRIVENET = 9, + SIID_DRIVENETDISABLED = 10, + SIID_DRIVECD = 11, + SIID_DRIVERAM = 12, + SIID_WORLD = 13, + SIID_SERVER = 15, + SIID_PRINTER = 16, + SIID_MYNETWORK = 17, + SIID_FIND = 22, + SIID_HELP = 23, + SIID_SHARE = 28, + SIID_LINK = 29, + SIID_SLOWFILE = 30, + SIID_RECYCLER = 31, + SIID_RECYCLERFULL = 32, + SIID_MEDIACDAUDIO = 40, + SIID_LOCK = 47, + SIID_AUTOLIST = 49, + SIID_PRINTERNET = 50, + SIID_SERVERSHARE = 51, + SIID_PRINTERFAX = 52, + SIID_PRINTERFAXNET = 53, + SIID_PRINTERFILE = 54, + SIID_STACK = 55, + SIID_MEDIASVCD = 56, + SIID_STUFFEDFOLDER = 57, + SIID_DRIVEUNKNOWN = 58, + SIID_DRIVEDVD = 59, + SIID_MEDIADVD = 60, + SIID_MEDIADVDRAM = 61, + SIID_MEDIADVDRW = 62, + SIID_MEDIADVDR = 63, + SIID_MEDIADVDROM = 64, + SIID_MEDIACDAUDIOPLUS = 65, + SIID_MEDIACDRW = 66, + SIID_MEDIACDR = 67, + SIID_MEDIACDBURN = 68, + SIID_MEDIABLANKCD = 69, + SIID_MEDIACDROM = 70, + SIID_AUDIOFILES = 71, + SIID_IMAGEFILES = 72, + SIID_VIDEOFILES = 73, + SIID_MIXEDFILES = 74, + SIID_FOLDERBACK = 75, + SIID_FOLDERFRONT = 76, + SIID_SHIELD = 77, + SIID_WARNING = 78, + SIID_INFO = 79, + SIID_ERROR = 80, + SIID_KEY = 81, + SIID_SOFTWARE = 82, + SIID_RENAME = 83, + SIID_DELETE = 84, + SIID_MEDIAAUDIODVD = 85, + SIID_MEDIAMOVIEDVD = 86, + SIID_MEDIAENHANCEDCD = 87, + SIID_MEDIAENHANCEDDVD = 88, + SIID_MEDIAHDDVD = 89, + SIID_MEDIABLURAY = 90, + SIID_MEDIAVCD = 91, + SIID_MEDIADVDPLUSR = 92, + SIID_MEDIADVDPLUSRW = 93, + SIID_DESKTOPPC = 94, + SIID_MOBILEPC = 95, + SIID_USERS = 96, + SIID_MEDIASMARTMEDIA = 97, + SIID_MEDIACOMPACTFLASH = 98, + SIID_DEVICECELLPHONE = 99, + SIID_DEVICECAMERA = 100, + SIID_DEVICEVIDEOCAMERA = 101, + SIID_DEVICEAUDIOPLAYER = 102, + SIID_NETWORKCONNECT = 103, + SIID_INTERNET = 104, + SIID_ZIPFILE = 105, + SIID_SETTINGS = 106, + + + SIID_DRIVEHDDVD = 132, + SIID_DRIVEBD = 133, + SIID_MEDIAHDDVDROM = 134, + SIID_MEDIAHDDVDR = 135, + SIID_MEDIAHDDVDRAM = 136, + SIID_MEDIABDROM = 137, + SIID_MEDIABDR = 138, + SIID_MEDIABDRE = 139, + SIID_CLUSTEREDDRIVE = 140, + + SIID_MAX_ICONS = 181, +} SHSTOCKICONID; + + + +extern "C" __declspec(dllimport) HRESULT __stdcall SHGetStockIconInfo(SHSTOCKICONID siid, UINT uFlags, SHSTOCKICONINFO *psii); + + + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall SHGetDiskFreeSpaceExA( LPCSTR pszDirectoryName, ULARGE_INTEGER* pulFreeBytesAvailableToCaller, + ULARGE_INTEGER* pulTotalNumberOfBytes, ULARGE_INTEGER* pulTotalNumberOfFreeBytes); +extern "C" __declspec(dllimport) BOOL __stdcall SHGetDiskFreeSpaceExW( LPCWSTR pszDirectoryName, ULARGE_INTEGER* pulFreeBytesAvailableToCaller, + ULARGE_INTEGER* pulTotalNumberOfBytes, ULARGE_INTEGER* pulTotalNumberOfFreeBytes); + + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall SHGetNewLinkInfoA( LPCSTR pszLinkTo, LPCSTR pszDir, LPSTR pszName, BOOL *pfMustCopy, UINT uFlags); + +extern "C" __declspec(dllimport) BOOL __stdcall SHGetNewLinkInfoW( LPCWSTR pszLinkTo, LPCWSTR pszDir, LPWSTR pszName, BOOL *pfMustCopy, UINT uFlags); +# 1451 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +extern "C" __declspec(dllimport) BOOL __stdcall SHInvokePrinterCommandA( HWND hwnd, UINT uAction, LPCSTR lpBuf1, LPCSTR lpBuf2, BOOL fModal); +extern "C" __declspec(dllimport) BOOL __stdcall SHInvokePrinterCommandW( HWND hwnd, UINT uAction, LPCWSTR lpBuf1, LPCWSTR lpBuf2, BOOL fModal); +# 1461 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +typedef struct _OPEN_PRINTER_PROPS_INFOA +{ + DWORD dwSize; + LPSTR pszSheetName; + UINT uSheetIndex; + DWORD dwFlags; + BOOL bModal; +} OPEN_PRINTER_PROPS_INFOA, *POPEN_PRINTER_PROPS_INFOA; +typedef struct _OPEN_PRINTER_PROPS_INFOW +{ + DWORD dwSize; + LPWSTR pszSheetName; + UINT uSheetIndex; + DWORD dwFlags; + BOOL bModal; +} OPEN_PRINTER_PROPS_INFOW, *POPEN_PRINTER_PROPS_INFOW; + +typedef OPEN_PRINTER_PROPS_INFOW OPEN_PRINTER_PROPS_INFO; +typedef POPEN_PRINTER_PROPS_INFOW POPEN_PRINTER_PROPS_INFO; +# 1504 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +extern "C" __declspec(dllimport) HRESULT __stdcall SHLoadNonloadedIconOverlayIdentifiers(void); +# 1525 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +extern "C" __declspec(dllimport) HRESULT __stdcall SHIsFileAvailableOffline( PCWSTR pwszPath, DWORD *pdwStatus); +# 1538 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +extern "C" __declspec(dllimport) HRESULT __stdcall SHSetLocalizedName( PCWSTR pszPath, PCWSTR pszResModule, int idsRes); + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall SHRemoveLocalizedName( PCWSTR pszPath); + +extern "C" __declspec(dllimport) HRESULT __stdcall SHGetLocalizedName( PCWSTR pszPath, PWSTR pszResModule, UINT cch, int *pidsRes); +# 1574 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +extern "C" __declspec(dllimport) int __cdecl ShellMessageBoxA( + HINSTANCE hAppInst, + HWND hWnd, + LPCSTR lpcText, + LPCSTR lpcTitle, + UINT fuStyle, ...); +extern "C" __declspec(dllimport) int __cdecl ShellMessageBoxW( + HINSTANCE hAppInst, + HWND hWnd, + LPCWSTR lpcText, + LPCWSTR lpcTitle, + UINT fuStyle, ...); + + + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall IsLFNDriveA( LPCSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall IsLFNDriveW( LPCWSTR pszPath); +# 1605 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +extern "C" HRESULT __stdcall SHEnumerateUnreadMailAccountsA( HKEY hKeyUser, DWORD dwIndex, LPSTR pszMailAddress, int cchMailAddress); +extern "C" HRESULT __stdcall SHEnumerateUnreadMailAccountsW( HKEY hKeyUser, DWORD dwIndex, LPWSTR pszMailAddress, int cchMailAddress); + + + + + +extern "C" HRESULT __stdcall SHGetUnreadMailCountA( HKEY hKeyUser, LPCSTR pszMailAddress, DWORD *pdwCount, FILETIME *pFileTime, LPSTR pszShellExecuteCommand, int cchShellExecuteCommand); +extern "C" HRESULT __stdcall SHGetUnreadMailCountW( HKEY hKeyUser, LPCWSTR pszMailAddress, DWORD *pdwCount, FILETIME *pFileTime, LPWSTR pszShellExecuteCommand, int cchShellExecuteCommand); + + + + + +extern "C" HRESULT __stdcall SHSetUnreadMailCountA( LPCSTR pszMailAddress, DWORD dwCount, LPCSTR pszShellExecuteCommand); +extern "C" HRESULT __stdcall SHSetUnreadMailCountW( LPCWSTR pszMailAddress, DWORD dwCount, LPCWSTR pszShellExecuteCommand); +# 1630 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +extern "C" BOOL __stdcall SHTestTokenMembership( HANDLE hToken, ULONG ulRID); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall SHGetImageList( int iImageList, const IID & riid, void **ppvObj); +# 1654 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +typedef HRESULT (__stdcall *PFNCANSHAREFOLDERW)( PCWSTR pszPath); +typedef HRESULT (__stdcall *PFNSHOWSHAREFOLDERUIW)( HWND hwndParent, PCWSTR pszPath); +# 1664 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +} + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 1668 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" 2 +# 1680 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +extern "C" __declspec(dllimport) BOOL __stdcall InitNetworkAddressControl(void); +# 1693 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +typedef struct tagNC_ADDRESS +{ + struct NET_ADDRESS_INFO_ *pAddrInfo; + USHORT PortNumber; + BYTE PrefixLength; +} NC_ADDRESS, *PNC_ADDRESS; +# 1721 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +extern "C" HRESULT __stdcall SHGetDriveMedia( PCWSTR pszDrive, DWORD *pdwMediaContent); +# 1735 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shellapi.h" +#pragma warning(pop) +# 197 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winperf.h" 1 +# 43 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winperf.h" +#pragma warning(push) +#pragma warning(disable: 4820) + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" +#pragma warning(disable: 4103) + +#pragma pack(push,8) +# 50 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winperf.h" 2 +# 68 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winperf.h" +typedef struct _PERF_DATA_BLOCK { + WCHAR Signature[4]; + DWORD LittleEndian; + DWORD Version; + + DWORD Revision; + + DWORD TotalByteLength; + DWORD HeaderLength; + DWORD NumObjectTypes; + + LONG DefaultObject; + + + + + SYSTEMTIME SystemTime; + + LARGE_INTEGER PerfTime; + + LARGE_INTEGER PerfFreq; + + LARGE_INTEGER PerfTime100nSec; + + DWORD SystemNameLength; + DWORD SystemNameOffset; + + +} PERF_DATA_BLOCK, *PPERF_DATA_BLOCK; +# 106 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winperf.h" +typedef struct _PERF_OBJECT_TYPE { + DWORD TotalByteLength; + + + + + + + + DWORD DefinitionLength; + + + + + + + + DWORD HeaderLength; + + + + DWORD ObjectNameTitleIndex; + + + + + LPWSTR ObjectNameTitle; + + + + DWORD ObjectHelpTitleIndex; + + + + + LPWSTR ObjectHelpTitle; + + + + DWORD DetailLevel; + + + + DWORD NumCounters; + + + LONG DefaultCounter; + + + + LONG NumInstances; +# 168 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winperf.h" + DWORD CodePage; + + + LARGE_INTEGER PerfTime; + + LARGE_INTEGER PerfFreq; + +} PERF_OBJECT_TYPE, *PPERF_OBJECT_TYPE; +# 553 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winperf.h" +typedef struct _PERF_COUNTER_DEFINITION { + DWORD ByteLength; + DWORD CounterNameTitleIndex; + + + + + + LPWSTR CounterNameTitle; + + + + DWORD CounterHelpTitleIndex; + + + + + + LPWSTR CounterHelpTitle; + + + + LONG DefaultScale; + + + DWORD DetailLevel; + + DWORD CounterType; + DWORD CounterSize; + DWORD CounterOffset; + + +} PERF_COUNTER_DEFINITION, *PPERF_COUNTER_DEFINITION; +# 600 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winperf.h" +typedef struct _PERF_INSTANCE_DEFINITION { + DWORD ByteLength; + + DWORD ParentObjectTitleIndex; + + + + + + DWORD ParentObjectInstance; + + + + LONG UniqueID; + + + DWORD NameOffset; + + + DWORD NameLength; + + + + + +} PERF_INSTANCE_DEFINITION, *PPERF_INSTANCE_DEFINITION; +# 639 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winperf.h" +typedef struct _PERF_COUNTER_BLOCK { + DWORD ByteLength; + +} PERF_COUNTER_BLOCK, *PPERF_COUNTER_BLOCK; +# 659 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winperf.h" +typedef DWORD (__stdcall PM_OPEN_PROC) ( LPWSTR); +typedef DWORD (__stdcall PM_COLLECT_PROC) ( LPWSTR lpValueName, + + + + LPVOID *lppData, + LPDWORD lpcbTotalBytes, + LPDWORD lpNumObjectTypes); +typedef DWORD (__stdcall PM_CLOSE_PROC) (void); +typedef DWORD (__stdcall PM_QUERY_PROC) (LPDWORD, LPVOID *, LPDWORD, LPDWORD); +# 689 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winperf.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 689 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winperf.h" 2 + + + + + + +#pragma warning(pop) +# 199 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsock.h" 1 +# 34 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsock.h" +#pragma warning(push) +#pragma warning(disable: 4820) + + + + + +typedef unsigned char u_char; +typedef unsigned short u_short; +typedef unsigned int u_int; +typedef unsigned long u_long; + + + + + + +typedef UINT_PTR SOCKET; +# 65 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsock.h" +typedef struct fd_set { + u_int fd_count; + SOCKET fd_array[64]; +} fd_set; + + +extern "C" { + + +extern int __stdcall __WSAFDIsSet(SOCKET, fd_set *); + + +} +# 108 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsock.h" +struct timeval { + long tv_sec; + long tv_usec; +}; +# 164 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsock.h" +struct hostent { + char * h_name; + char * * h_aliases; + short h_addrtype; + short h_length; + char * * h_addr_list; + +}; + + + + + +struct netent { + char * n_name; + char * * n_aliases; + short n_addrtype; + u_long n_net; +}; + +struct servent { + char * s_name; + char * * s_aliases; + + + + + short s_port; + char * s_proto; + +}; + +struct protoent { + char * p_name; + char * * p_aliases; + short p_proto; +}; +# 277 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsock.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\inaddr.h" 1 +# 25 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\inaddr.h" +typedef struct in_addr { + union { + struct { UCHAR s_b1,s_b2,s_b3,s_b4; } S_un_b; + struct { USHORT s_w1,s_w2; } S_un_w; + ULONG S_addr; + } S_un; + + + + + + +} IN_ADDR, *PIN_ADDR, *LPIN_ADDR; +# 277 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsock.h" 2 +# 309 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsock.h" +struct sockaddr_in { + short sin_family; + u_short sin_port; + struct in_addr sin_addr; + char sin_zero[8]; +}; + + + + +typedef struct WSAData { + WORD wVersion; + WORD wHighVersion; + + + + + + + + char szDescription[256 +1]; + char szSystemStatus[128 +1]; + unsigned short iMaxSockets; + unsigned short iMaxUdpDg; + char * lpVendorInfo; + +} WSADATA; + +typedef WSADATA *LPWSADATA; +# 360 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsock.h" +struct ip_mreq { + struct in_addr imr_multiaddr; + struct in_addr imr_interface; +}; +# 482 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsock.h" +struct sockaddr { + u_short sa_family; + char sa_data[14]; +}; + + + + + +struct sockproto { + u_short sp_family; + u_short sp_protocol; +}; +# 528 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsock.h" +struct linger { + u_short l_onoff; + u_short l_linger; +}; +# 736 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsock.h" +extern "C" { + + +SOCKET __stdcall accept ( + SOCKET s, + struct sockaddr *addr, + int *addrlen); + +int __stdcall bind ( + SOCKET s, + const struct sockaddr *addr, + int namelen); + +int __stdcall closesocket ( SOCKET s); + +int __stdcall connect ( + SOCKET s, + const struct sockaddr *name, + int namelen); + +int __stdcall ioctlsocket ( + SOCKET s, + long cmd, + u_long *argp); + +int __stdcall getpeername ( + SOCKET s, + struct sockaddr *name, + int * namelen); + +int __stdcall getsockname ( + SOCKET s, + struct sockaddr *name, + int * namelen); + +int __stdcall getsockopt ( + SOCKET s, + int level, + int optname, + char * optval, + int *optlen); + +u_long __stdcall htonl ( u_long hostlong); + +u_short __stdcall htons ( u_short hostshort); + +unsigned long __stdcall inet_addr ( const char * cp); + +char * __stdcall inet_ntoa ( struct in_addr in); + +int __stdcall listen ( + SOCKET s, + int backlog); + +u_long __stdcall ntohl ( u_long netlong); + +u_short __stdcall ntohs ( u_short netshort); + +int __stdcall recv ( + SOCKET s, + char * buf, + int len, + int flags); + +int __stdcall recvfrom ( + SOCKET s, + char * buf, + int len, + int flags, + struct sockaddr * from, + int * fromlen); + +int __stdcall select ( + int nfds, + fd_set *readfds, + fd_set *writefds, + fd_set *exceptfds, + const struct timeval *timeout); + +int __stdcall send ( + SOCKET s, + const char * buf, + int len, + int flags); + +int __stdcall sendto ( + SOCKET s, + const char * buf, + int len, + int flags, + const struct sockaddr *to, + int tolen); + +int __stdcall setsockopt ( + SOCKET s, + int level, + int optname, + const char * optval, + int optlen); + +int __stdcall shutdown ( + SOCKET s, + int how); + +SOCKET __stdcall socket ( + int af, + int type, + int protocol); + + + +struct hostent * __stdcall gethostbyaddr( + const char * addr, + int len, + int type); + +struct hostent * __stdcall gethostbyname( const char * name); + +int __stdcall gethostname ( + char * name, + int namelen); + +struct servent * __stdcall getservbyport( + int port, + const char * proto); + +struct servent * __stdcall getservbyname( + const char * name, + const char * proto); + +struct protoent * __stdcall getprotobynumber( int proto); + +struct protoent * __stdcall getprotobyname( const char * name); + + + +int __stdcall WSAStartup( + WORD wVersionRequired, + LPWSADATA lpWSAData); + +int __stdcall WSACleanup(void); + +void __stdcall WSASetLastError( int iError); + +int __stdcall WSAGetLastError(void); + +BOOL __stdcall WSAIsBlocking(void); + +int __stdcall WSAUnhookBlockingHook(void); + +FARPROC __stdcall WSASetBlockingHook( FARPROC lpBlockFunc); + +int __stdcall WSACancelBlockingCall(void); + +HANDLE __stdcall WSAAsyncGetServByName( + HWND hWnd, + u_int wMsg, + const char * name, + const char * proto, + char * buf, + int buflen); + +HANDLE __stdcall WSAAsyncGetServByPort( + HWND hWnd, + u_int wMsg, + int port, + const char * proto, + char * buf, + int buflen); + +HANDLE __stdcall WSAAsyncGetProtoByName( + HWND hWnd, + u_int wMsg, + const char * name, + char * buf, + int buflen); + +HANDLE __stdcall WSAAsyncGetProtoByNumber( + HWND hWnd, + u_int wMsg, + int number, + char * buf, + int buflen); + +HANDLE __stdcall WSAAsyncGetHostByName( + HWND hWnd, + u_int wMsg, + const char * name, + char * buf, + int buflen); + +HANDLE __stdcall WSAAsyncGetHostByAddr( + HWND hWnd, + u_int wMsg, + const char * addr, + int len, + int type, + char * buf, + int buflen); + +int __stdcall WSACancelAsyncRequest( HANDLE hAsyncTaskHandle); + +int __stdcall WSAAsyncSelect( + SOCKET s, + HWND hWnd, + u_int wMsg, + long lEvent); + +int __stdcall WSARecvEx ( + SOCKET s, + char * buf, + int len, + int *flags); + +typedef struct _TRANSMIT_FILE_BUFFERS { + PVOID Head; + DWORD HeadLength; + PVOID Tail; + DWORD TailLength; +} TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, *LPTRANSMIT_FILE_BUFFERS; + + + + + +BOOL +__stdcall +TransmitFile ( + SOCKET hSocket, + HANDLE hFile, + DWORD nNumberOfBytesToWrite, + DWORD nNumberOfBytesPerSend, + LPOVERLAPPED lpOverlapped, + LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers, + DWORD dwReserved + ); + +BOOL +__stdcall +AcceptEx ( + SOCKET sListenSocket, + SOCKET sAcceptSocket, + + PVOID lpOutputBuffer, + DWORD dwReceiveDataLength, + DWORD dwLocalAddressLength, + DWORD dwRemoteAddressLength, + LPDWORD lpdwBytesReceived, + LPOVERLAPPED lpOverlapped + ); + +void +__stdcall +GetAcceptExSockaddrs ( + PVOID lpOutputBuffer, + DWORD dwReceiveDataLength, + DWORD dwLocalAddressLength, + DWORD dwRemoteAddressLength, + struct sockaddr **LocalSockaddr, + LPINT LocalSockaddrLength, + struct sockaddr **RemoteSockaddr, + LPINT RemoteSockaddrLength + ); + + +} + + + +typedef struct sockaddr SOCKADDR; +typedef struct sockaddr *PSOCKADDR; +typedef struct sockaddr *LPSOCKADDR; + +typedef struct sockaddr_in SOCKADDR_IN; +typedef struct sockaddr_in *PSOCKADDR_IN; +typedef struct sockaddr_in *LPSOCKADDR_IN; + +typedef struct linger LINGER; +typedef struct linger *PLINGER; +typedef struct linger *LPLINGER; + +typedef struct fd_set FD_SET; +typedef struct fd_set *PFD_SET; +typedef struct fd_set *LPFD_SET; + +typedef struct hostent HOSTENT; +typedef struct hostent *PHOSTENT; +typedef struct hostent *LPHOSTENT; + +typedef struct servent SERVENT; +typedef struct servent *PSERVENT; +typedef struct servent *LPSERVENT; + +typedef struct protoent PROTOENT; +typedef struct protoent *PPROTOENT; +typedef struct protoent *LPPROTOENT; + +typedef struct timeval TIMEVAL; +typedef struct timeval *PTIMEVAL; +typedef struct timeval *LPTIMEVAL; +# 1082 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsock.h" +#pragma warning(pop) +# 200 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +#pragma warning(push) +#pragma warning(disable: 4668) +#pragma warning(disable: 4820) + +#pragma warning(disable: 4201) +# 37 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +extern "C" { +# 291 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef unsigned int ALG_ID; +# 380 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef ULONG_PTR HCRYPTPROV; +typedef ULONG_PTR HCRYPTKEY; +typedef ULONG_PTR HCRYPTHASH; +# 895 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMS_KEY_INFO { + DWORD dwVersion; + ALG_ID Algid; + BYTE *pbOID; + DWORD cbOID; +} CMS_KEY_INFO, *PCMS_KEY_INFO; + + +typedef struct _HMAC_Info { + ALG_ID HashAlgid; + BYTE *pbInnerString; + DWORD cbInnerString; + BYTE *pbOuterString; + DWORD cbOuterString; +} HMAC_INFO, *PHMAC_INFO; + + +typedef struct _SCHANNEL_ALG { + DWORD dwUse; + ALG_ID Algid; + DWORD cBits; + DWORD dwFlags; + DWORD dwReserved; +} SCHANNEL_ALG, *PSCHANNEL_ALG; +# 927 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _PROV_ENUMALGS { + ALG_ID aiAlgid; + DWORD dwBitLen; + DWORD dwNameLen; + CHAR szName[20]; +} PROV_ENUMALGS; + + +typedef struct _PROV_ENUMALGS_EX { + ALG_ID aiAlgid; + DWORD dwDefaultLen; + DWORD dwMinLen; + DWORD dwMaxLen; + DWORD dwProtocols; + DWORD dwNameLen; + CHAR szName[20]; + DWORD dwLongNameLen; + CHAR szLongName[40]; +} PROV_ENUMALGS_EX; + + +typedef struct _PUBLICKEYSTRUC { + BYTE bType; + BYTE bVersion; + WORD reserved; + ALG_ID aiKeyAlg; +} BLOBHEADER, PUBLICKEYSTRUC; + +typedef struct _RSAPUBKEY { + DWORD magic; + DWORD bitlen; + DWORD pubexp; + +} RSAPUBKEY; + +typedef struct _PUBKEY { + DWORD magic; + DWORD bitlen; +} DHPUBKEY, DSSPUBKEY, KEAPUBKEY, TEKPUBKEY; + +typedef struct _DSSSEED { + DWORD counter; + BYTE seed[20]; +} DSSSEED; + +typedef struct _PUBKEYVER3 { + DWORD magic; + DWORD bitlenP; + DWORD bitlenQ; + DWORD bitlenJ; + DSSSEED DSSSeed; +} DHPUBKEY_VER3, DSSPUBKEY_VER3; + +typedef struct _PRIVKEYVER3 { + DWORD magic; + DWORD bitlenP; + DWORD bitlenQ; + DWORD bitlenJ; + DWORD bitlenX; + DSSSEED DSSSeed; +} DHPRIVKEY_VER3, DSSPRIVKEY_VER3; + +typedef struct _KEY_TYPE_SUBTYPE { + DWORD dwKeySpec; + GUID Type; + GUID Subtype; +} KEY_TYPE_SUBTYPE, *PKEY_TYPE_SUBTYPE; + +typedef struct _CERT_FORTEZZA_DATA_PROP { + unsigned char SerialNumber[8]; + int CertIndex; + unsigned char CertLabel[36]; +} CERT_FORTEZZA_DATA_PROP; + + +typedef struct _CRYPT_RC4_KEY_STATE { + unsigned char Key[16]; + unsigned char SBox[256]; + unsigned char i; + unsigned char j; +} CRYPT_RC4_KEY_STATE, *PCRYPT_RC4_KEY_STATE; + +typedef struct _CRYPT_DES_KEY_STATE { + unsigned char Key[8]; + unsigned char IV[8]; + unsigned char Feedback[8]; +} CRYPT_DES_KEY_STATE, *PCRYPT_DES_KEY_STATE; + +typedef struct _CRYPT_3DES_KEY_STATE { + unsigned char Key[24]; + unsigned char IV[8]; + unsigned char Feedback[8]; +} CRYPT_3DES_KEY_STATE, *PCRYPT_3DES_KEY_STATE; + + + +typedef struct _CRYPT_AES_128_KEY_STATE { + unsigned char Key[16]; + unsigned char IV[16]; + unsigned char EncryptionState[11][16]; + unsigned char DecryptionState[11][16]; + unsigned char Feedback[16]; +} CRYPT_AES_128_KEY_STATE, *PCRYPT_AES_128_KEY_STATE; + +typedef struct _CRYPT_AES_256_KEY_STATE { + unsigned char Key[32]; + unsigned char IV[16]; + unsigned char EncryptionState[15][16]; + unsigned char DecryptionState[15][16]; + unsigned char Feedback[16]; +} CRYPT_AES_256_KEY_STATE, *PCRYPT_AES_256_KEY_STATE; +# 1046 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPTOAPI_BLOB { + DWORD cbData; + BYTE *pbData; +} CRYPT_INTEGER_BLOB, *PCRYPT_INTEGER_BLOB, +CRYPT_UINT_BLOB, *PCRYPT_UINT_BLOB, +CRYPT_OBJID_BLOB, *PCRYPT_OBJID_BLOB, +CERT_NAME_BLOB, *PCERT_NAME_BLOB, +CERT_RDN_VALUE_BLOB, *PCERT_RDN_VALUE_BLOB, +CERT_BLOB, *PCERT_BLOB, +CRL_BLOB, *PCRL_BLOB, +DATA_BLOB, *PDATA_BLOB, +CRYPT_DATA_BLOB, *PCRYPT_DATA_BLOB, +CRYPT_HASH_BLOB, *PCRYPT_HASH_BLOB, +CRYPT_DIGEST_BLOB, *PCRYPT_DIGEST_BLOB, +CRYPT_DER_BLOB, *PCRYPT_DER_BLOB, +CRYPT_ATTR_BLOB, *PCRYPT_ATTR_BLOB; + + + + +typedef struct _CMS_DH_KEY_INFO { + DWORD dwVersion; + ALG_ID Algid; + LPSTR pszContentEncObjId; + CRYPT_DATA_BLOB PubInfo; + void *pReserved; +} CMS_DH_KEY_INFO, *PCMS_DH_KEY_INFO; +# 1081 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptAcquireContextA( + HCRYPTPROV *phProv, + LPCSTR szContainer, + LPCSTR szProvider, + DWORD dwProvType, + DWORD dwFlags + ); +__declspec(dllimport) +BOOL +__stdcall +CryptAcquireContextW( + HCRYPTPROV *phProv, + LPCWSTR szContainer, + LPCWSTR szProvider, + DWORD dwProvType, + DWORD dwFlags + ); +# 1170 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptReleaseContext( + HCRYPTPROV hProv, + DWORD dwFlags + ); +# 1196 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptGenKey( + HCRYPTPROV hProv, + ALG_ID Algid, + DWORD dwFlags, + HCRYPTKEY *phKey + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptDeriveKey( + HCRYPTPROV hProv, + ALG_ID Algid, + HCRYPTHASH hBaseData, + DWORD dwFlags, + HCRYPTKEY *phKey + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptDestroyKey( + HCRYPTKEY hKey + ); + + +__declspec(dllimport) +BOOL +__stdcall +CryptSetKeyParam( + HCRYPTKEY hKey, + DWORD dwParam, + const BYTE *pbData, + DWORD dwFlags + ); +# 1248 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptGetKeyParam( + HCRYPTKEY hKey, + DWORD dwParam, + BYTE *pbData, + DWORD *pdwDataLen, + DWORD dwFlags + ); + + +__declspec(dllimport) +BOOL +__stdcall +CryptSetHashParam( + HCRYPTHASH hHash, + DWORD dwParam, + const BYTE *pbData, + DWORD dwFlags + ); +# 1283 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptGetHashParam( + HCRYPTHASH hHash, + DWORD dwParam, + BYTE *pbData, + DWORD *pdwDataLen, + DWORD dwFlags + ); + + +__declspec(dllimport) +BOOL +__stdcall +CryptSetProvParam( + HCRYPTPROV hProv, + DWORD dwParam, + const BYTE *pbData, + DWORD dwFlags + ); +# 1318 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptGetProvParam( + HCRYPTPROV hProv, + DWORD dwParam, + BYTE *pbData, + DWORD *pdwDataLen, + DWORD dwFlags + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptGenRandom( + HCRYPTPROV hProv, + DWORD dwLen, + BYTE *pbBuffer + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptGetUserKey( + HCRYPTPROV hProv, + DWORD dwKeySpec, + HCRYPTKEY *phUserKey + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptExportKey( + HCRYPTKEY hKey, + HCRYPTKEY hExpKey, + DWORD dwBlobType, + DWORD dwFlags, + BYTE *pbData, + DWORD *pdwDataLen + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptImportKey( + HCRYPTPROV hProv, + const BYTE *pbData, + DWORD dwDataLen, + HCRYPTKEY hPubKey, + DWORD dwFlags, + HCRYPTKEY *phKey + ); + +__declspec(dllimport) + BOOL +__stdcall +CryptEncrypt( + HCRYPTKEY hKey, + HCRYPTHASH hHash, + BOOL Final, + DWORD dwFlags, + BYTE *pbData, + DWORD *pdwDataLen, + DWORD dwBufLen + ); + +__declspec(dllimport) + BOOL +__stdcall +CryptDecrypt( + HCRYPTKEY hKey, + HCRYPTHASH hHash, + BOOL Final, + DWORD dwFlags, + BYTE *pbData, + DWORD *pdwDataLen + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptCreateHash( + HCRYPTPROV hProv, + ALG_ID Algid, + HCRYPTKEY hKey, + DWORD dwFlags, + HCRYPTHASH *phHash + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptHashData( + HCRYPTHASH hHash, + const BYTE *pbData, + DWORD dwDataLen, + DWORD dwFlags + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptHashSessionKey( + HCRYPTHASH hHash, + HCRYPTKEY hKey, + DWORD dwFlags + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptDestroyHash( + HCRYPTHASH hHash + ); + + +__declspec(dllimport) +BOOL +__stdcall +CryptSignHashA( + HCRYPTHASH hHash, + DWORD dwKeySpec, + LPCSTR szDescription, + DWORD dwFlags, + BYTE *pbSignature, + DWORD *pdwSigLen + ); +__declspec(dllimport) +BOOL +__stdcall +CryptSignHashW( + HCRYPTHASH hHash, + DWORD dwKeySpec, + LPCWSTR szDescription, + DWORD dwFlags, + BYTE *pbSignature, + DWORD *pdwSigLen + ); +# 1522 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptVerifySignatureA( + HCRYPTHASH hHash, + const BYTE *pbSignature, + DWORD dwSigLen, + HCRYPTKEY hPubKey, + LPCSTR szDescription, + DWORD dwFlags + ); +__declspec(dllimport) +BOOL +__stdcall +CryptVerifySignatureW( + HCRYPTHASH hHash, + const BYTE *pbSignature, + DWORD dwSigLen, + HCRYPTKEY hPubKey, + LPCWSTR szDescription, + DWORD dwFlags + ); +# 1610 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptSetProviderA( + LPCSTR pszProvName, + DWORD dwProvType + ); +__declspec(dllimport) +BOOL +__stdcall +CryptSetProviderW( + LPCWSTR pszProvName, + DWORD dwProvType + ); +# 1654 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptSetProviderExA( + LPCSTR pszProvName, + DWORD dwProvType, + DWORD *pdwReserved, + DWORD dwFlags + ); +__declspec(dllimport) +BOOL +__stdcall +CryptSetProviderExW( + LPCWSTR pszProvName, + DWORD dwProvType, + DWORD *pdwReserved, + DWORD dwFlags + ); +# 1706 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + BOOL +__stdcall +CryptGetDefaultProviderA( + DWORD dwProvType, + DWORD *pdwReserved, + DWORD dwFlags, + LPSTR pszProvName, + DWORD *pcbProvName + ); +__declspec(dllimport) + BOOL +__stdcall +CryptGetDefaultProviderW( + DWORD dwProvType, + DWORD *pdwReserved, + DWORD dwFlags, + LPWSTR pszProvName, + DWORD *pcbProvName + ); +# 1762 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + BOOL +__stdcall +CryptEnumProviderTypesA( + DWORD dwIndex, + DWORD *pdwReserved, + DWORD dwFlags, + DWORD *pdwProvType, + LPSTR szTypeName, + DWORD *pcbTypeName + ); +__declspec(dllimport) + BOOL +__stdcall +CryptEnumProviderTypesW( + DWORD dwIndex, + DWORD *pdwReserved, + DWORD dwFlags, + DWORD *pdwProvType, + LPWSTR szTypeName, + DWORD *pcbTypeName + ); +# 1850 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + BOOL +__stdcall +CryptEnumProvidersA( + DWORD dwIndex, + DWORD *pdwReserved, + DWORD dwFlags, + DWORD *pdwProvType, + LPSTR szProvName, + DWORD *pcbProvName + ); +__declspec(dllimport) + BOOL +__stdcall +CryptEnumProvidersW( + DWORD dwIndex, + DWORD *pdwReserved, + DWORD dwFlags, + DWORD *pdwProvType, + LPWSTR szProvName, + DWORD *pcbProvName + ); +# 1937 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptContextAddRef( + HCRYPTPROV hProv, + DWORD *pdwReserved, + DWORD dwFlags + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptDuplicateKey( + HCRYPTKEY hKey, + DWORD *pdwReserved, + DWORD dwFlags, + HCRYPTKEY *phKey + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptDuplicateHash( + HCRYPTHASH hHash, + DWORD *pdwReserved, + DWORD dwFlags, + HCRYPTHASH *phHash + ); +# 1979 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +BOOL +__cdecl +GetEncSChannel( + BYTE **pData, + DWORD *dwDecSize + ); +# 2000 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" 1 +# 23 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +#pragma warning(push) +#pragma warning(disable: 4820) + + + +extern "C" { +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +typedef LONG NTSTATUS; +typedef NTSTATUS *PNTSTATUS; +# 183 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +typedef struct __BCRYPT_KEY_LENGTHS_STRUCT +{ + ULONG dwMinLength; + ULONG dwMaxLength; + ULONG dwIncrement; +} BCRYPT_KEY_LENGTHS_STRUCT; + +typedef BCRYPT_KEY_LENGTHS_STRUCT BCRYPT_AUTH_TAG_LENGTHS_STRUCT; + +typedef struct _BCRYPT_OID +{ + ULONG cbOID; + PUCHAR pbOID; +} BCRYPT_OID; + +typedef struct _BCRYPT_OID_LIST +{ + ULONG dwOIDCount; + BCRYPT_OID *pOIDs; +} BCRYPT_OID_LIST; + +typedef struct _BCRYPT_PKCS1_PADDING_INFO +{ + LPCWSTR pszAlgId; +} BCRYPT_PKCS1_PADDING_INFO; + +typedef struct _BCRYPT_PSS_PADDING_INFO +{ + LPCWSTR pszAlgId; + ULONG cbSalt; +} BCRYPT_PSS_PADDING_INFO; + +typedef struct _BCRYPT_OAEP_PADDING_INFO +{ + LPCWSTR pszAlgId; + PUCHAR pbLabel; + ULONG cbLabel; +} BCRYPT_OAEP_PADDING_INFO; + + + + + + +typedef struct _BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO +{ + ULONG cbSize; + ULONG dwInfoVersion; + PUCHAR pbNonce; + ULONG cbNonce; + PUCHAR pbAuthData; + ULONG cbAuthData; + PUCHAR pbTag; + ULONG cbTag; + PUCHAR pbMacContext; + ULONG cbMacContext; + ULONG cbAAD; + ULONGLONG cbData; + ULONG dwFlags; +} BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO, *PBCRYPT_AUTHENTICATED_CIPHER_MODE_INFO; +# 339 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +typedef struct _BCryptBuffer { + ULONG cbBuffer; + ULONG BufferType; + PVOID pvBuffer; +} BCryptBuffer, * PBCryptBuffer; + +typedef struct _BCryptBufferDesc { + ULONG ulVersion; + ULONG cBuffers; + PBCryptBuffer pBuffers; +} BCryptBufferDesc, * PBCryptBufferDesc; + + + + + +typedef PVOID BCRYPT_HANDLE; +typedef PVOID BCRYPT_ALG_HANDLE; +typedef PVOID BCRYPT_KEY_HANDLE; +typedef PVOID BCRYPT_HASH_HANDLE; +typedef PVOID BCRYPT_SECRET_HANDLE; +# 368 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +typedef struct _BCRYPT_KEY_BLOB +{ + ULONG Magic; +} BCRYPT_KEY_BLOB; +# 390 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +typedef struct _BCRYPT_RSAKEY_BLOB +{ + ULONG Magic; + ULONG BitLength; + ULONG cbPublicExp; + ULONG cbModulus; + ULONG cbPrime1; + ULONG cbPrime2; +} BCRYPT_RSAKEY_BLOB; +# 456 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +typedef struct _BCRYPT_ECCKEY_BLOB +{ + ULONG dwMagic; + ULONG cbKey; +} BCRYPT_ECCKEY_BLOB, *PBCRYPT_ECCKEY_BLOB; + + + +typedef struct _SSL_ECCKEY_BLOB +{ + ULONG dwCurveType; + ULONG cbKey; +} SSL_ECCKEY_BLOB, *PSSL_ECCKEY_BLOB; + + + + +typedef enum +{ + BCRYPT_ECC_PRIME_SHORT_WEIERSTRASS_CURVE = 0x1, + BCRYPT_ECC_PRIME_TWISTED_EDWARDS_CURVE = 0x2, + BCRYPT_ECC_PRIME_MONTGOMERY_CURVE = 0x3 +} ECC_CURVE_TYPE_ENUM; + +typedef enum +{ + BCRYPT_NO_CURVE_GENERATION_ALG_ID = 0x0 +} ECC_CURVE_ALG_ID_ENUM; + + + +typedef struct _BCRYPT_ECCFULLKEY_BLOB +{ + ULONG dwMagic; + ULONG dwVersion; + ECC_CURVE_TYPE_ENUM dwCurveType; + ECC_CURVE_ALG_ID_ENUM dwCurveGenerationAlgId; + ULONG cbFieldLength; + ULONG cbSubgroupOrder; + ULONG cbCofactor; + ULONG cbSeed; +# 508 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +} BCRYPT_ECCFULLKEY_BLOB, *PBCRYPT_ECCFULLKEY_BLOB; +# 522 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +typedef struct _BCRYPT_DH_KEY_BLOB +{ + ULONG dwMagic; + ULONG cbKey; +} BCRYPT_DH_KEY_BLOB, *PBCRYPT_DH_KEY_BLOB; + + + + + + +typedef struct _BCRYPT_DH_PARAMETER_HEADER +{ + ULONG cbLength; + ULONG dwMagic; + ULONG cbKeyLength; +} BCRYPT_DH_PARAMETER_HEADER; +# 559 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +typedef struct _BCRYPT_DSA_KEY_BLOB +{ + ULONG dwMagic; + ULONG cbKey; + UCHAR Count[4]; + UCHAR Seed[20]; + UCHAR q[20]; +} BCRYPT_DSA_KEY_BLOB, *PBCRYPT_DSA_KEY_BLOB; + + +typedef enum +{ + DSA_HASH_ALGORITHM_SHA1, + DSA_HASH_ALGORITHM_SHA256, + DSA_HASH_ALGORITHM_SHA512 +} HASHALGORITHM_ENUM; + +typedef enum +{ + DSA_FIPS186_2, + DSA_FIPS186_3 +} DSAFIPSVERSION_ENUM; + +typedef struct _BCRYPT_DSA_KEY_BLOB_V2 +{ + ULONG dwMagic; + ULONG cbKey; + HASHALGORITHM_ENUM hashAlgorithm; + DSAFIPSVERSION_ENUM standardVersion; + ULONG cbSeedLength; + ULONG cbGroupSize; + UCHAR Count[4]; +} BCRYPT_DSA_KEY_BLOB_V2, *PBCRYPT_DSA_KEY_BLOB_V2; + + +typedef struct _BCRYPT_KEY_DATA_BLOB_HEADER +{ + ULONG dwMagic; + ULONG dwVersion; + ULONG cbKeyData; +} BCRYPT_KEY_DATA_BLOB_HEADER, *PBCRYPT_KEY_DATA_BLOB_HEADER; +# 614 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +typedef struct _BCRYPT_DSA_PARAMETER_HEADER +{ + ULONG cbLength; + ULONG dwMagic; + ULONG cbKeyLength; + UCHAR Count[4]; + UCHAR Seed[20]; + UCHAR q[20]; +} BCRYPT_DSA_PARAMETER_HEADER; + + +typedef struct _BCRYPT_DSA_PARAMETER_HEADER_V2 +{ + ULONG cbLength; + ULONG dwMagic; + ULONG cbKeyLength; + HASHALGORITHM_ENUM hashAlgorithm; + DSAFIPSVERSION_ENUM standardVersion; + ULONG cbSeedLength; + ULONG cbGroupSize; + UCHAR Count[4]; +} BCRYPT_DSA_PARAMETER_HEADER_V2; +# 646 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +typedef struct _BCRYPT_ECC_CURVE_NAMES +{ + ULONG dwEccCurveNames; + LPWSTR *pEccCurveNames; +} BCRYPT_ECC_CURVE_NAMES; +# 713 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +typedef enum { + BCRYPT_HASH_OPERATION_HASH_DATA = 1, + BCRYPT_HASH_OPERATION_FINISH_HASH = 2, +} BCRYPT_HASH_OPERATION_TYPE; + +typedef struct _BCRYPT_MULTI_HASH_OPERATION { + ULONG iHash; + BCRYPT_HASH_OPERATION_TYPE hashOperation; + PUCHAR pbBuffer; + ULONG cbBuffer; +} BCRYPT_MULTI_HASH_OPERATION; + + +typedef enum{ + BCRYPT_OPERATION_TYPE_HASH = 1, +} BCRYPT_MULTI_OPERATION_TYPE; + +typedef struct _BCRYPT_MULTI_OBJECT_LENGTH_STRUCT +{ + ULONG cbPerObject; + ULONG cbPerElement; +} BCRYPT_MULTI_OBJECT_LENGTH_STRUCT; +# 942 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +NTSTATUS +__stdcall +BCryptOpenAlgorithmProvider( + BCRYPT_ALG_HANDLE *phAlgorithm, + LPCWSTR pszAlgId, + LPCWSTR pszImplementation, + ULONG dwFlags); +# 967 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +typedef struct _BCRYPT_ALGORITHM_IDENTIFIER +{ + LPWSTR pszName; + ULONG dwClass; + ULONG dwFlags; + +} BCRYPT_ALGORITHM_IDENTIFIER; + + + +NTSTATUS +__stdcall +BCryptEnumAlgorithms( + ULONG dwAlgOperations, + ULONG *pAlgCount, + BCRYPT_ALGORITHM_IDENTIFIER **ppAlgList, + ULONG dwFlags); + +typedef struct _BCRYPT_PROVIDER_NAME +{ + LPWSTR pszProviderName; +} BCRYPT_PROVIDER_NAME; + + +NTSTATUS +__stdcall +BCryptEnumProviders( + LPCWSTR pszAlgId, + ULONG *pImplCount, + BCRYPT_PROVIDER_NAME **ppImplList, + ULONG dwFlags); +# 1006 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +NTSTATUS +__stdcall +BCryptGetProperty( + BCRYPT_HANDLE hObject, + LPCWSTR pszProperty, + PUCHAR pbOutput, + ULONG cbOutput, + ULONG *pcbResult, + ULONG dwFlags); + + + +NTSTATUS +__stdcall +BCryptSetProperty( + BCRYPT_HANDLE hObject, + LPCWSTR pszProperty, + PUCHAR pbInput, + ULONG cbInput, + ULONG dwFlags); + + +NTSTATUS +__stdcall +BCryptCloseAlgorithmProvider( + BCRYPT_ALG_HANDLE hAlgorithm, + ULONG dwFlags); + + +void +__stdcall +BCryptFreeBuffer( + PVOID pvBuffer); + + + + + + +NTSTATUS +__stdcall +BCryptGenerateSymmetricKey( + BCRYPT_ALG_HANDLE hAlgorithm, + BCRYPT_KEY_HANDLE *phKey, + PUCHAR pbKeyObject, + ULONG cbKeyObject, + PUCHAR pbSecret, + ULONG cbSecret, + ULONG dwFlags); + + + +NTSTATUS +__stdcall +BCryptGenerateKeyPair( + BCRYPT_ALG_HANDLE hAlgorithm, + BCRYPT_KEY_HANDLE *phKey, + ULONG dwLength, + ULONG dwFlags); + + + +NTSTATUS +__stdcall +BCryptEncrypt( + BCRYPT_KEY_HANDLE hKey, + PUCHAR pbInput, + ULONG cbInput, + void *pPaddingInfo, + PUCHAR pbIV, + ULONG cbIV, + PUCHAR pbOutput, + ULONG cbOutput, + ULONG *pcbResult, + ULONG dwFlags); + + + +NTSTATUS +__stdcall +BCryptDecrypt( + BCRYPT_KEY_HANDLE hKey, + PUCHAR pbInput, + ULONG cbInput, + void *pPaddingInfo, + PUCHAR pbIV, + ULONG cbIV, + PUCHAR pbOutput, + ULONG cbOutput, + ULONG *pcbResult, + ULONG dwFlags); + + + +NTSTATUS +__stdcall +BCryptExportKey( + BCRYPT_KEY_HANDLE hKey, + BCRYPT_KEY_HANDLE hExportKey, + LPCWSTR pszBlobType, + PUCHAR pbOutput, + ULONG cbOutput, + ULONG *pcbResult, + ULONG dwFlags); + + + +NTSTATUS +__stdcall +BCryptImportKey( + BCRYPT_ALG_HANDLE hAlgorithm, + BCRYPT_KEY_HANDLE hImportKey, + LPCWSTR pszBlobType, + BCRYPT_KEY_HANDLE *phKey, + PUCHAR pbKeyObject, + ULONG cbKeyObject, + PUCHAR pbInput, + ULONG cbInput, + ULONG dwFlags); + + + + +NTSTATUS +__stdcall +BCryptImportKeyPair( + BCRYPT_ALG_HANDLE hAlgorithm, + BCRYPT_KEY_HANDLE hImportKey, + LPCWSTR pszBlobType, + BCRYPT_KEY_HANDLE *phKey, + PUCHAR pbInput, + ULONG cbInput, + ULONG dwFlags); + + + +NTSTATUS +__stdcall +BCryptDuplicateKey( + BCRYPT_KEY_HANDLE hKey, + BCRYPT_KEY_HANDLE *phNewKey, + PUCHAR pbKeyObject, + ULONG cbKeyObject, + ULONG dwFlags); + + + +NTSTATUS +__stdcall +BCryptFinalizeKeyPair( + BCRYPT_KEY_HANDLE hKey, + ULONG dwFlags); + + +NTSTATUS +__stdcall +BCryptDestroyKey( + BCRYPT_KEY_HANDLE hKey); + + +NTSTATUS +__stdcall +BCryptDestroySecret( + BCRYPT_SECRET_HANDLE hSecret); + + + +NTSTATUS +__stdcall +BCryptSignHash( + BCRYPT_KEY_HANDLE hKey, + void *pPaddingInfo, + PUCHAR pbInput, + ULONG cbInput, + PUCHAR pbOutput, + ULONG cbOutput, + ULONG *pcbResult, + ULONG dwFlags); + + + +NTSTATUS +__stdcall +BCryptVerifySignature( + BCRYPT_KEY_HANDLE hKey, + void *pPaddingInfo, + PUCHAR pbHash, + ULONG cbHash, + PUCHAR pbSignature, + ULONG cbSignature, + ULONG dwFlags); + + + +NTSTATUS +__stdcall +BCryptSecretAgreement( + BCRYPT_KEY_HANDLE hPrivKey, + BCRYPT_KEY_HANDLE hPubKey, + BCRYPT_SECRET_HANDLE *phAgreedSecret, + ULONG dwFlags); + + + +NTSTATUS +__stdcall +BCryptDeriveKey( + BCRYPT_SECRET_HANDLE hSharedSecret, + LPCWSTR pwszKDF, + BCryptBufferDesc *pParameterList, + PUCHAR pbDerivedKey, + ULONG cbDerivedKey, + ULONG *pcbResult, + ULONG dwFlags); + + + + +NTSTATUS +__stdcall +BCryptKeyDerivation( + BCRYPT_KEY_HANDLE hKey, + BCryptBufferDesc *pParameterList, + PUCHAR pbDerivedKey, + ULONG cbDerivedKey, + ULONG *pcbResult, + ULONG dwFlags); + + + + + + + +NTSTATUS +__stdcall +BCryptCreateHash( + BCRYPT_ALG_HANDLE hAlgorithm, + BCRYPT_HASH_HANDLE *phHash, + PUCHAR pbHashObject, + ULONG cbHashObject, + PUCHAR pbSecret, + ULONG cbSecret, + ULONG dwFlags); + + + +NTSTATUS +__stdcall +BCryptHashData( + BCRYPT_HASH_HANDLE hHash, + PUCHAR pbInput, + ULONG cbInput, + ULONG dwFlags); + + + +NTSTATUS +__stdcall +BCryptFinishHash( + BCRYPT_HASH_HANDLE hHash, + PUCHAR pbOutput, + ULONG cbOutput, + ULONG dwFlags); + + + + +NTSTATUS +__stdcall +BCryptCreateMultiHash( + BCRYPT_ALG_HANDLE hAlgorithm, + BCRYPT_HASH_HANDLE *phHash, + ULONG nHashes, + PUCHAR pbHashObject, + ULONG cbHashObject, + PUCHAR pbSecret, + ULONG cbSecret, + ULONG dwFlags); + + +NTSTATUS +__stdcall +BCryptProcessMultiOperations( + BCRYPT_HANDLE hObject, + BCRYPT_MULTI_OPERATION_TYPE operationType, + PVOID pOperations, + ULONG cbOperations, + ULONG dwFlags ); + + + + +NTSTATUS +__stdcall +BCryptDuplicateHash( + BCRYPT_HASH_HANDLE hHash, + BCRYPT_HASH_HANDLE *phNewHash, + PUCHAR pbHashObject, + ULONG cbHashObject, + ULONG dwFlags); + + +NTSTATUS +__stdcall +BCryptDestroyHash( + BCRYPT_HASH_HANDLE hHash); + + + +NTSTATUS +__stdcall +BCryptHash( + BCRYPT_ALG_HANDLE hAlgorithm, + PUCHAR pbSecret, + ULONG cbSecret, + PUCHAR pbInput, + ULONG cbInput, + PUCHAR pbOutput, + ULONG cbOutput ); +# 1339 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +NTSTATUS +__stdcall +BCryptGenRandom( + BCRYPT_ALG_HANDLE hAlgorithm, + PUCHAR pbBuffer, + ULONG cbBuffer, + ULONG dwFlags); + + + + + + + +NTSTATUS +__stdcall +BCryptDeriveKeyCapi( + BCRYPT_HASH_HANDLE hHash, + BCRYPT_ALG_HANDLE hTargetAlg, + PUCHAR pbDerivedKey, + ULONG cbDerivedKey, + ULONG dwFlags); + + + + + +NTSTATUS +__stdcall +BCryptDeriveKeyPBKDF2( + BCRYPT_ALG_HANDLE hPrf, + PUCHAR pbPassword, + ULONG cbPassword, + PUCHAR pbSalt, + ULONG cbSalt, + ULONGLONG cIterations, + PUCHAR pbDerivedKey, + ULONG cbDerivedKey, + ULONG dwFlags); + + + + + + +typedef struct _BCRYPT_INTERFACE_VERSION +{ + USHORT MajorVersion; + USHORT MinorVersion; + +} BCRYPT_INTERFACE_VERSION, *PBCRYPT_INTERFACE_VERSION; +# 1474 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +typedef struct _CRYPT_INTERFACE_REG +{ + ULONG dwInterface; + ULONG dwFlags; + + ULONG cFunctions; + PWSTR *rgpszFunctions; +} +CRYPT_INTERFACE_REG, *PCRYPT_INTERFACE_REG; + +typedef struct _CRYPT_IMAGE_REG +{ + PWSTR pszImage; + + ULONG cInterfaces; + PCRYPT_INTERFACE_REG *rgpInterfaces; +} +CRYPT_IMAGE_REG, *PCRYPT_IMAGE_REG; + +typedef struct _CRYPT_PROVIDER_REG +{ + ULONG cAliases; + PWSTR *rgpszAliases; + + PCRYPT_IMAGE_REG pUM; + PCRYPT_IMAGE_REG pKM; +} +CRYPT_PROVIDER_REG, *PCRYPT_PROVIDER_REG; + +typedef struct _CRYPT_PROVIDERS +{ + ULONG cProviders; + PWSTR *rgpszProviders; +} +CRYPT_PROVIDERS, *PCRYPT_PROVIDERS; + + + + + +typedef struct _CRYPT_CONTEXT_CONFIG +{ + ULONG dwFlags; + ULONG dwReserved; +} +CRYPT_CONTEXT_CONFIG, *PCRYPT_CONTEXT_CONFIG; + +typedef struct _CRYPT_CONTEXT_FUNCTION_CONFIG +{ + ULONG dwFlags; + ULONG dwReserved; +} +CRYPT_CONTEXT_FUNCTION_CONFIG, *PCRYPT_CONTEXT_FUNCTION_CONFIG; + +typedef struct _CRYPT_CONTEXTS +{ + ULONG cContexts; + PWSTR *rgpszContexts; +} +CRYPT_CONTEXTS, *PCRYPT_CONTEXTS; + +typedef struct _CRYPT_CONTEXT_FUNCTIONS +{ + ULONG cFunctions; + PWSTR *rgpszFunctions; +} +CRYPT_CONTEXT_FUNCTIONS, *PCRYPT_CONTEXT_FUNCTIONS; + +typedef struct _CRYPT_CONTEXT_FUNCTION_PROVIDERS +{ + ULONG cProviders; + PWSTR *rgpszProviders; +} +CRYPT_CONTEXT_FUNCTION_PROVIDERS, *PCRYPT_CONTEXT_FUNCTION_PROVIDERS; + + + + + +typedef struct _CRYPT_PROPERTY_REF +{ + PWSTR pszProperty; + + ULONG cbValue; + PUCHAR pbValue; +} +CRYPT_PROPERTY_REF, *PCRYPT_PROPERTY_REF; + +typedef struct _CRYPT_IMAGE_REF +{ + PWSTR pszImage; + ULONG dwFlags; +} +CRYPT_IMAGE_REF, *PCRYPT_IMAGE_REF; + +typedef struct _CRYPT_PROVIDER_REF +{ + ULONG dwInterface; + PWSTR pszFunction; + PWSTR pszProvider; + + ULONG cProperties; + PCRYPT_PROPERTY_REF *rgpProperties; + + PCRYPT_IMAGE_REF pUM; + PCRYPT_IMAGE_REF pKM; +} +CRYPT_PROVIDER_REF, *PCRYPT_PROVIDER_REF; + +typedef struct _CRYPT_PROVIDER_REFS +{ + ULONG cProviders; + PCRYPT_PROVIDER_REF *rgpProviders; +} +CRYPT_PROVIDER_REFS, *PCRYPT_PROVIDER_REFS; +# 1604 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +NTSTATUS +__stdcall +BCryptQueryProviderRegistration( + LPCWSTR pszProvider, + ULONG dwMode, + ULONG dwInterface, + ULONG* pcbBuffer, + + + + PCRYPT_PROVIDER_REG *ppBuffer); + + +NTSTATUS +__stdcall +BCryptEnumRegisteredProviders( + ULONG* pcbBuffer, + + + + PCRYPT_PROVIDERS *ppBuffer); + + + + + +NTSTATUS +__stdcall +BCryptCreateContext( + ULONG dwTable, + LPCWSTR pszContext, + PCRYPT_CONTEXT_CONFIG pConfig); + + +NTSTATUS +__stdcall +BCryptDeleteContext( + ULONG dwTable, + LPCWSTR pszContext); + + +NTSTATUS +__stdcall +BCryptEnumContexts( + ULONG dwTable, + ULONG* pcbBuffer, + + + + PCRYPT_CONTEXTS *ppBuffer); + + +NTSTATUS +__stdcall +BCryptConfigureContext( + ULONG dwTable, + LPCWSTR pszContext, + PCRYPT_CONTEXT_CONFIG pConfig); + + +NTSTATUS +__stdcall +BCryptQueryContextConfiguration( + ULONG dwTable, + LPCWSTR pszContext, + ULONG* pcbBuffer, + + + + PCRYPT_CONTEXT_CONFIG *ppBuffer); + + +NTSTATUS +__stdcall +BCryptAddContextFunction( + ULONG dwTable, + LPCWSTR pszContext, + ULONG dwInterface, + LPCWSTR pszFunction, + ULONG dwPosition); + + +NTSTATUS +__stdcall +BCryptRemoveContextFunction( + ULONG dwTable, + LPCWSTR pszContext, + ULONG dwInterface, + LPCWSTR pszFunction); + + +NTSTATUS +__stdcall +BCryptEnumContextFunctions( + ULONG dwTable, + LPCWSTR pszContext, + ULONG dwInterface, + ULONG* pcbBuffer, + + + + PCRYPT_CONTEXT_FUNCTIONS *ppBuffer); + + +NTSTATUS +__stdcall +BCryptConfigureContextFunction( + ULONG dwTable, + LPCWSTR pszContext, + ULONG dwInterface, + LPCWSTR pszFunction, + PCRYPT_CONTEXT_FUNCTION_CONFIG pConfig); + + +NTSTATUS +__stdcall +BCryptQueryContextFunctionConfiguration( + ULONG dwTable, + LPCWSTR pszContext, + ULONG dwInterface, + LPCWSTR pszFunction, + ULONG* pcbBuffer, + + + + PCRYPT_CONTEXT_FUNCTION_CONFIG *ppBuffer); + + + +NTSTATUS +__stdcall +BCryptEnumContextFunctionProviders( + ULONG dwTable, + LPCWSTR pszContext, + ULONG dwInterface, + LPCWSTR pszFunction, + ULONG* pcbBuffer, + + + + PCRYPT_CONTEXT_FUNCTION_PROVIDERS *ppBuffer); + + +NTSTATUS +__stdcall +BCryptSetContextFunctionProperty( + ULONG dwTable, + LPCWSTR pszContext, + ULONG dwInterface, + LPCWSTR pszFunction, + LPCWSTR pszProperty, + ULONG cbValue, + PUCHAR pbValue); + + +NTSTATUS +__stdcall +BCryptQueryContextFunctionProperty( + ULONG dwTable, + LPCWSTR pszContext, + ULONG dwInterface, + LPCWSTR pszFunction, + LPCWSTR pszProperty, + ULONG* pcbValue, + + + + PUCHAR *ppbValue); +# 1788 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +NTSTATUS +__stdcall +BCryptRegisterConfigChangeNotify( + HANDLE *phEvent); +# 1801 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\bcrypt.h" +NTSTATUS +__stdcall +BCryptUnregisterConfigChangeNotify( + HANDLE hEvent); + + + + + + +NTSTATUS __stdcall +BCryptResolveProviders( + LPCWSTR pszContext, + ULONG dwInterface, + LPCWSTR pszFunction, + LPCWSTR pszProvider, + ULONG dwMode, + ULONG dwFlags, + ULONG* pcbBuffer, + + + + PCRYPT_PROVIDER_REFS *ppBuffer); + + + + +NTSTATUS +__stdcall +BCryptGetFipsAlgorithmMode( + BOOLEAN *pfEnabled + ); + + + + + + + +BOOLEAN +CngGetFipsAlgorithmMode( + void + ); + + + + + + +} + + + +#pragma warning(pop) +# 2000 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" 2 + + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ncrypt.h" 1 +# 18 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ncrypt.h" +#pragma warning(push) +#pragma warning(disable: 4820) + + + +extern "C" { + + + + + + + +typedef LONG SECURITY_STATUS; +# 61 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ncrypt.h" +typedef LPVOID (__stdcall *PFN_NCRYPT_ALLOC)( + SIZE_T cbSize + ); + +typedef void (__stdcall *PFN_NCRYPT_FREE)( + LPVOID pv + ); + +typedef struct NCRYPT_ALLOC_PARA { + DWORD cbSize; + PFN_NCRYPT_ALLOC pfnAlloc; + PFN_NCRYPT_FREE pfnFree; +} NCRYPT_ALLOC_PARA; +# 240 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ncrypt.h" +typedef BCryptBuffer NCryptBuffer; +typedef BCryptBuffer* PNCryptBuffer; +typedef BCryptBufferDesc NCryptBufferDesc; +typedef BCryptBufferDesc* PNCryptBufferDesc; + + + + + +typedef ULONG_PTR NCRYPT_HANDLE; +typedef ULONG_PTR NCRYPT_PROV_HANDLE; +typedef ULONG_PTR NCRYPT_KEY_HANDLE; +typedef ULONG_PTR NCRYPT_HASH_HANDLE; +typedef ULONG_PTR NCRYPT_SECRET_HANDLE; + + + +typedef +struct _NCRYPT_CIPHER_PADDING_INFO +{ + + ULONG cbSize; + + + DWORD dwFlags; + + + + + + + PUCHAR pbIV; + ULONG cbIV; +# 285 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ncrypt.h" + PUCHAR pbOtherInfo; + ULONG cbOtherInfo; + +} NCRYPT_CIPHER_PADDING_INFO, *PNCRYPT_CIPHER_PADDING_INFO; +# 303 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ncrypt.h" +typedef struct _NCRYPT_PLATFORM_ATTEST_PADDING_INFO { + ULONG magic; + ULONG pcrMask; +} NCRYPT_PLATFORM_ATTEST_PADDING_INFO; + + + +typedef struct _NCRYPT_KEY_ATTEST_PADDING_INFO { + ULONG magic; + PUCHAR pbKeyBlob; + ULONG cbKeyBlob; + PUCHAR pbKeyAuth; + ULONG cbKeyAuth; +} NCRYPT_KEY_ATTEST_PADDING_INFO; +# 383 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ncrypt.h" +SECURITY_STATUS +__stdcall +NCryptOpenStorageProvider( + NCRYPT_PROV_HANDLE *phProvider, + LPCWSTR pszProviderName, + DWORD dwFlags); +# 405 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ncrypt.h" +typedef struct _NCryptAlgorithmName +{ + LPWSTR pszName; + DWORD dwClass; + DWORD dwAlgOperations; + DWORD dwFlags; +} NCryptAlgorithmName; + + + +SECURITY_STATUS +__stdcall +NCryptEnumAlgorithms( + NCRYPT_PROV_HANDLE hProvider, + DWORD dwAlgOperations, + DWORD * pdwAlgCount, + NCryptAlgorithmName **ppAlgList, + DWORD dwFlags); + + + + +SECURITY_STATUS +__stdcall +NCryptIsAlgSupported( + NCRYPT_PROV_HANDLE hProvider, + LPCWSTR pszAlgId, + DWORD dwFlags); + + + + + + +typedef struct NCryptKeyName +{ + LPWSTR pszName; + LPWSTR pszAlgid; + DWORD dwLegacyKeySpec; + DWORD dwFlags; +} NCryptKeyName; + + +SECURITY_STATUS +__stdcall +NCryptEnumKeys( + NCRYPT_PROV_HANDLE hProvider, + LPCWSTR pszScope, + NCryptKeyName **ppKeyName, + PVOID * ppEnumState, + DWORD dwFlags); + + + +typedef struct NCryptProviderName +{ + LPWSTR pszName; + LPWSTR pszComment; +} NCryptProviderName; + + + + + +SECURITY_STATUS +__stdcall +NCryptEnumStorageProviders( + DWORD * pdwProviderCount, + NCryptProviderName **ppProviderList, + DWORD dwFlags); + + + + + + +SECURITY_STATUS +__stdcall +NCryptFreeBuffer( + PVOID pvInput); +# 496 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ncrypt.h" +SECURITY_STATUS +__stdcall +NCryptOpenKey( + NCRYPT_PROV_HANDLE hProvider, + NCRYPT_KEY_HANDLE *phKey, + LPCWSTR pszKeyName, + DWORD dwLegacyKeySpec, + DWORD dwFlags); +# 512 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ncrypt.h" +SECURITY_STATUS +__stdcall +NCryptCreatePersistedKey( + NCRYPT_PROV_HANDLE hProvider, + NCRYPT_KEY_HANDLE *phKey, + LPCWSTR pszAlgId, + LPCWSTR pszKeyName, + DWORD dwLegacyKeySpec, + DWORD dwFlags); +# 749 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ncrypt.h" +typedef struct __NCRYPT_UI_POLICY +{ + DWORD dwVersion; + DWORD dwFlags; + LPCWSTR pszCreationTitle; + LPCWSTR pszFriendlyName; + LPCWSTR pszDescription; +} NCRYPT_UI_POLICY; + + + + +typedef struct __NCRYPT_KEY_ACCESS_POLICY_BLOB +{ + DWORD dwVersion; + DWORD dwPolicyFlags; + DWORD cbUserSid; + DWORD cbApplicationSid; + + +}NCRYPT_KEY_ACCESS_POLICY_BLOB; + + + +typedef struct __NCRYPT_SUPPORTED_LENGTHS +{ + DWORD dwMinLength; + DWORD dwMaxLength; + DWORD dwIncrement; + DWORD dwDefaultLength; +} NCRYPT_SUPPORTED_LENGTHS; +# 798 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ncrypt.h" +SECURITY_STATUS +__stdcall +NCryptGetProperty( + NCRYPT_HANDLE hObject, + LPCWSTR pszProperty, + PBYTE pbOutput, + DWORD cbOutput, + DWORD * pcbResult, + DWORD dwFlags); +# 815 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ncrypt.h" +SECURITY_STATUS +__stdcall +NCryptSetProperty( + NCRYPT_HANDLE hObject, + LPCWSTR pszProperty, + PBYTE pbInput, + DWORD cbInput, + DWORD dwFlags); + + + + + + + +SECURITY_STATUS +__stdcall +NCryptFinalizeKey( + NCRYPT_KEY_HANDLE hKey, + DWORD dwFlags); + + + + +SECURITY_STATUS +__stdcall +NCryptEncrypt( + NCRYPT_KEY_HANDLE hKey, + PBYTE pbInput, + DWORD cbInput, + void *pPaddingInfo, + PBYTE pbOutput, + DWORD cbOutput, + DWORD * pcbResult, + DWORD dwFlags); + + + + +SECURITY_STATUS +__stdcall +NCryptDecrypt( + NCRYPT_KEY_HANDLE hKey, + PBYTE pbInput, + DWORD cbInput, + void *pPaddingInfo, + PBYTE pbOutput, + DWORD cbOutput, + DWORD * pcbResult, + DWORD dwFlags); + + + + + +typedef struct _NCRYPT_KEY_BLOB_HEADER +{ + ULONG cbSize; + ULONG dwMagic; + ULONG cbAlgName; + ULONG cbKeyData; +} NCRYPT_KEY_BLOB_HEADER, *PNCRYPT_KEY_BLOB_HEADER; +# 899 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ncrypt.h" +SECURITY_STATUS +__stdcall +NCryptImportKey( + NCRYPT_PROV_HANDLE hProvider, + NCRYPT_KEY_HANDLE hImportKey, + LPCWSTR pszBlobType, + NCryptBufferDesc *pParameterList, + NCRYPT_KEY_HANDLE *phKey, + PBYTE pbData, + DWORD cbData, + DWORD dwFlags); + + + + +SECURITY_STATUS +__stdcall +NCryptExportKey( + NCRYPT_KEY_HANDLE hKey, + NCRYPT_KEY_HANDLE hExportKey, + LPCWSTR pszBlobType, + NCryptBufferDesc *pParameterList, + PBYTE pbOutput, + DWORD cbOutput, + DWORD * pcbResult, + DWORD dwFlags); + + + + +SECURITY_STATUS +__stdcall +NCryptSignHash( + NCRYPT_KEY_HANDLE hKey, + void *pPaddingInfo, + PBYTE pbHashValue, + DWORD cbHashValue, + PBYTE pbSignature, + DWORD cbSignature, + DWORD * pcbResult, + DWORD dwFlags); + + + + +SECURITY_STATUS +__stdcall +NCryptVerifySignature( + NCRYPT_KEY_HANDLE hKey, + void *pPaddingInfo, + PBYTE pbHashValue, + DWORD cbHashValue, + PBYTE pbSignature, + DWORD cbSignature, + DWORD dwFlags); + + + +SECURITY_STATUS +__stdcall +NCryptDeleteKey( + NCRYPT_KEY_HANDLE hKey, + DWORD dwFlags); + + + +SECURITY_STATUS +__stdcall +NCryptFreeObject( + NCRYPT_HANDLE hObject); + + + + + +BOOL +__stdcall +NCryptIsKeyHandle( + NCRYPT_KEY_HANDLE hKey); + + +SECURITY_STATUS +__stdcall +NCryptTranslateHandle( + NCRYPT_PROV_HANDLE *phProvider, + NCRYPT_KEY_HANDLE *phKey, + HCRYPTPROV hLegacyProv, + HCRYPTKEY hLegacyKey, + DWORD dwLegacyKeySpec, + DWORD dwFlags); +# 1003 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ncrypt.h" +SECURITY_STATUS +__stdcall +NCryptNotifyChangeKey( + NCRYPT_PROV_HANDLE hProvider, + HANDLE *phEvent, + DWORD dwFlags); + + + + + + + +SECURITY_STATUS +__stdcall +NCryptSecretAgreement( + NCRYPT_KEY_HANDLE hPrivKey, + NCRYPT_KEY_HANDLE hPubKey, + NCRYPT_SECRET_HANDLE *phAgreedSecret, + DWORD dwFlags); + + + + +SECURITY_STATUS +__stdcall +NCryptDeriveKey( + NCRYPT_SECRET_HANDLE hSharedSecret, + LPCWSTR pwszKDF, + NCryptBufferDesc *pParameterList, + PBYTE pbDerivedKey, + DWORD cbDerivedKey, + DWORD *pcbResult, + ULONG dwFlags); + + + + + + +SECURITY_STATUS +__stdcall +NCryptKeyDerivation( + NCRYPT_KEY_HANDLE hKey, + NCryptBufferDesc *pParameterList, + PUCHAR pbDerivedKey, + DWORD cbDerivedKey, + DWORD *pcbResult, + ULONG dwFlags); + + + + + + + +SECURITY_STATUS +__stdcall +NCryptCreateClaim( + NCRYPT_KEY_HANDLE hSubjectKey, + NCRYPT_KEY_HANDLE hAuthorityKey, + DWORD dwClaimType, + NCryptBufferDesc *pParameterList, + PBYTE pbClaimBlob, + DWORD cbClaimBlob, + DWORD *pcbResult, + DWORD dwFlags); + + + + + + + +SECURITY_STATUS +__stdcall +NCryptVerifyClaim( + NCRYPT_KEY_HANDLE hSubjectKey, + NCRYPT_KEY_HANDLE hAuthorityKey, + DWORD dwClaimType, + NCryptBufferDesc *pParameterList, + PBYTE pbClaimBlob, + DWORD cbClaimBlob, + NCryptBufferDesc *pOutput, + DWORD dwFlags); +# 1098 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ncrypt.h" +} + + + +#pragma warning(pop) +# 2008 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" 2 + + + + + +typedef ULONG_PTR HCRYPTPROV_OR_NCRYPT_KEY_HANDLE; + + + +typedef ULONG_PTR HCRYPTPROV_LEGACY; + + + + + + +typedef struct _CRYPT_BIT_BLOB { + DWORD cbData; + BYTE *pbData; + DWORD cUnusedBits; +} CRYPT_BIT_BLOB, *PCRYPT_BIT_BLOB; + + + + + + + +typedef struct _CRYPT_ALGORITHM_IDENTIFIER { + LPSTR pszObjId; + CRYPT_OBJID_BLOB Parameters; +} CRYPT_ALGORITHM_IDENTIFIER, *PCRYPT_ALGORITHM_IDENTIFIER; +# 2325 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_OBJID_TABLE { + DWORD dwAlgId; + LPCSTR pszObjId; +} CRYPT_OBJID_TABLE, *PCRYPT_OBJID_TABLE; + + + + + +typedef struct _CRYPT_HASH_INFO { + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; + CRYPT_HASH_BLOB Hash; +} CRYPT_HASH_INFO, *PCRYPT_HASH_INFO; + + + + + + + +typedef struct _CERT_EXTENSION { + LPSTR pszObjId; + BOOL fCritical; + CRYPT_OBJID_BLOB Value; +} CERT_EXTENSION, *PCERT_EXTENSION; +typedef const CERT_EXTENSION* PCCERT_EXTENSION; +# 2359 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_ATTRIBUTE_TYPE_VALUE { + LPSTR pszObjId; + CRYPT_OBJID_BLOB Value; +} CRYPT_ATTRIBUTE_TYPE_VALUE, *PCRYPT_ATTRIBUTE_TYPE_VALUE; +# 2371 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_ATTRIBUTE { + LPSTR pszObjId; + DWORD cValue; + PCRYPT_ATTR_BLOB rgValue; +} CRYPT_ATTRIBUTE, *PCRYPT_ATTRIBUTE; + +typedef struct _CRYPT_ATTRIBUTES { + DWORD cAttr; + PCRYPT_ATTRIBUTE rgAttr; +} CRYPT_ATTRIBUTES, *PCRYPT_ATTRIBUTES; +# 2389 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_RDN_ATTR { + LPSTR pszObjId; + DWORD dwValueType; + CERT_RDN_VALUE_BLOB Value; +} CERT_RDN_ATTR, *PCERT_RDN_ATTR; +# 2577 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_RDN { + DWORD cRDNAttr; + PCERT_RDN_ATTR rgRDNAttr; +} CERT_RDN, *PCERT_RDN; + + + + + +typedef struct _CERT_NAME_INFO { + DWORD cRDN; + PCERT_RDN rgRDN; +} CERT_NAME_INFO, *PCERT_NAME_INFO; + + + + + + + +typedef struct _CERT_NAME_VALUE { + DWORD dwValueType; + CERT_RDN_VALUE_BLOB Value; +} CERT_NAME_VALUE, *PCERT_NAME_VALUE; +# 2609 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_PUBLIC_KEY_INFO { + CRYPT_ALGORITHM_IDENTIFIER Algorithm; + CRYPT_BIT_BLOB PublicKey; +} CERT_PUBLIC_KEY_INFO, *PCERT_PUBLIC_KEY_INFO; +# 2622 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_ECC_PRIVATE_KEY_INFO{ + DWORD dwVersion; + CRYPT_DER_BLOB PrivateKey; + LPSTR szCurveOid; + CRYPT_BIT_BLOB PublicKey; +} CRYPT_ECC_PRIVATE_KEY_INFO, *PCRYPT_ECC_PRIVATE_KEY_INFO; + + + + + + +typedef struct _CRYPT_PRIVATE_KEY_INFO{ + DWORD Version; + CRYPT_ALGORITHM_IDENTIFIER Algorithm; + CRYPT_DER_BLOB PrivateKey; + PCRYPT_ATTRIBUTES pAttributes; +} CRYPT_PRIVATE_KEY_INFO, *PCRYPT_PRIVATE_KEY_INFO; + + + + + +typedef struct _CRYPT_ENCRYPTED_PRIVATE_KEY_INFO{ + CRYPT_ALGORITHM_IDENTIFIER EncryptionAlgorithm; + CRYPT_DATA_BLOB EncryptedPrivateKey; +} CRYPT_ENCRYPTED_PRIVATE_KEY_INFO, *PCRYPT_ENCRYPTED_PRIVATE_KEY_INFO; +# 2666 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PCRYPT_DECRYPT_PRIVATE_KEY_FUNC)( + CRYPT_ALGORITHM_IDENTIFIER Algorithm, + CRYPT_DATA_BLOB EncryptedPrivateKey, + BYTE* pbClearTextKey, + DWORD* pcbClearTextKey, + LPVOID pVoidDecryptFunc); +# 2689 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC)( + CRYPT_ALGORITHM_IDENTIFIER* pAlgorithm, + CRYPT_DATA_BLOB* pClearTextPrivateKey, + BYTE* pbEncryptedKey, + DWORD* pcbEncryptedKey, + LPVOID pVoidEncryptFunc); +# 2708 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PCRYPT_RESOLVE_HCRYPTPROV_FUNC)( + CRYPT_PRIVATE_KEY_INFO *pPrivateKeyInfo, + HCRYPTPROV *phCryptProv, + LPVOID pVoidResolveFunc); +# 2722 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_PKCS8_IMPORT_PARAMS{ + CRYPT_DIGEST_BLOB PrivateKey; + PCRYPT_RESOLVE_HCRYPTPROV_FUNC pResolvehCryptProvFunc; + LPVOID pVoidResolveFunc; + PCRYPT_DECRYPT_PRIVATE_KEY_FUNC pDecryptPrivateKeyFunc; + LPVOID pVoidDecryptFunc; +} CRYPT_PKCS8_IMPORT_PARAMS, *PCRYPT_PKCS8_IMPORT_PARAMS, CRYPT_PRIVATE_KEY_BLOB_AND_PARAMS, *PCRYPT_PRIVATE_KEY_BLOB_AND_PARAMS; +# 2738 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_PKCS8_EXPORT_PARAMS{ + HCRYPTPROV hCryptProv; + DWORD dwKeySpec; + LPSTR pszPrivateKeyObjId; + + PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC pEncryptPrivateKeyFunc; + LPVOID pVoidEncryptFunc; +} CRYPT_PKCS8_EXPORT_PARAMS, *PCRYPT_PKCS8_EXPORT_PARAMS; +# 2754 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_INFO { + DWORD dwVersion; + CRYPT_INTEGER_BLOB SerialNumber; + CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm; + CERT_NAME_BLOB Issuer; + FILETIME NotBefore; + FILETIME NotAfter; + CERT_NAME_BLOB Subject; + CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo; + CRYPT_BIT_BLOB IssuerUniqueId; + CRYPT_BIT_BLOB SubjectUniqueId; + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} CERT_INFO, *PCERT_INFO; +# 2797 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRL_ENTRY { + CRYPT_INTEGER_BLOB SerialNumber; + FILETIME RevocationDate; + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} CRL_ENTRY, *PCRL_ENTRY; + + + + + + + +typedef struct _CRL_INFO { + DWORD dwVersion; + CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm; + CERT_NAME_BLOB Issuer; + FILETIME ThisUpdate; + FILETIME NextUpdate; + DWORD cCRLEntry; + PCRL_ENTRY rgCRLEntry; + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} CRL_INFO, *PCRL_INFO; +# 2834 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_OR_CRL_BLOB { + DWORD dwChoice; + DWORD cbEncoded; + + BYTE *pbEncoded; +} CERT_OR_CRL_BLOB, * PCERT_OR_CRL_BLOB; + +typedef struct _CERT_OR_CRL_BUNDLE { + DWORD cItem; + + PCERT_OR_CRL_BLOB rgItem; +} CERT_OR_CRL_BUNDLE, *PCERT_OR_CRL_BUNDLE; + + + + + + + +typedef struct _CERT_REQUEST_INFO { + DWORD dwVersion; + CERT_NAME_BLOB Subject; + CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo; + DWORD cAttribute; + PCRYPT_ATTRIBUTE rgAttribute; +} CERT_REQUEST_INFO, *PCERT_REQUEST_INFO; +# 2869 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_KEYGEN_REQUEST_INFO { + DWORD dwVersion; + CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo; + LPWSTR pwszChallengeString; +} CERT_KEYGEN_REQUEST_INFO, *PCERT_KEYGEN_REQUEST_INFO; +# 2885 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_SIGNED_CONTENT_INFO { + CRYPT_DER_BLOB ToBeSigned; + CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm; + CRYPT_BIT_BLOB Signature; +} CERT_SIGNED_CONTENT_INFO, *PCERT_SIGNED_CONTENT_INFO; +# 2899 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CTL_USAGE { + DWORD cUsageIdentifier; + LPSTR *rgpszUsageIdentifier; +} CTL_USAGE, *PCTL_USAGE, +CERT_ENHKEY_USAGE, *PCERT_ENHKEY_USAGE; +typedef const CTL_USAGE* PCCTL_USAGE; +typedef const CERT_ENHKEY_USAGE* PCCERT_ENHKEY_USAGE; + + + + + +typedef struct _CTL_ENTRY { + CRYPT_DATA_BLOB SubjectIdentifier; + DWORD cAttribute; + PCRYPT_ATTRIBUTE rgAttribute; +} CTL_ENTRY, *PCTL_ENTRY; + + + + +typedef struct _CTL_INFO { + DWORD dwVersion; + CTL_USAGE SubjectUsage; + CRYPT_DATA_BLOB ListIdentifier; + CRYPT_INTEGER_BLOB SequenceNumber; + FILETIME ThisUpdate; + FILETIME NextUpdate; + CRYPT_ALGORITHM_IDENTIFIER SubjectAlgorithm; + DWORD cCTLEntry; + PCTL_ENTRY rgCTLEntry; + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} CTL_INFO, *PCTL_INFO; +# 2947 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_TIME_STAMP_REQUEST_INFO { + LPSTR pszTimeStampAlgorithm; + LPSTR pszContentType; + CRYPT_OBJID_BLOB Content; + DWORD cAttribute; + PCRYPT_ATTRIBUTE rgAttribute; +} CRYPT_TIME_STAMP_REQUEST_INFO, *PCRYPT_TIME_STAMP_REQUEST_INFO; + + + + +typedef struct _CRYPT_ENROLLMENT_NAME_VALUE_PAIR { + LPWSTR pwszName; + LPWSTR pwszValue; +} CRYPT_ENROLLMENT_NAME_VALUE_PAIR, * PCRYPT_ENROLLMENT_NAME_VALUE_PAIR; + + + + +typedef struct _CRYPT_CSP_PROVIDER { + DWORD dwKeySpec; + LPWSTR pwszProviderName; + CRYPT_BIT_BLOB Signature; +} CRYPT_CSP_PROVIDER, * PCRYPT_CSP_PROVIDER; +# 3014 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptFormatObject( + DWORD dwCertEncodingType, + DWORD dwFormatType, + DWORD dwFormatStrType, + void *pFormatStruct, + LPCSTR lpszStructType, + const BYTE *pbEncoded, + DWORD cbEncoded, + void *pbFormat, + DWORD *pcbFormat + ); +# 3097 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef LPVOID (__stdcall *PFN_CRYPT_ALLOC)( + size_t cbSize + ); + +typedef void (__stdcall *PFN_CRYPT_FREE)( + LPVOID pv + ); + + +typedef struct _CRYPT_ENCODE_PARA { + DWORD cbSize; + PFN_CRYPT_ALLOC pfnAlloc; + PFN_CRYPT_FREE pfnFree; +} CRYPT_ENCODE_PARA, *PCRYPT_ENCODE_PARA; + + +__declspec(dllimport) +BOOL +__stdcall +CryptEncodeObjectEx( + DWORD dwCertEncodingType, + LPCSTR lpszStructType, + const void *pvStructInfo, + DWORD dwFlags, + PCRYPT_ENCODE_PARA pEncodePara, + void *pvEncoded, + DWORD *pcbEncoded + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptEncodeObject( + DWORD dwCertEncodingType, + LPCSTR lpszStructType, + const void *pvStructInfo, + BYTE *pbEncoded, + DWORD *pcbEncoded + ); +# 3212 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_DECODE_PARA { + DWORD cbSize; + PFN_CRYPT_ALLOC pfnAlloc; + PFN_CRYPT_FREE pfnFree; +} CRYPT_DECODE_PARA, *PCRYPT_DECODE_PARA; + +__declspec(dllimport) +BOOL +__stdcall +CryptDecodeObjectEx( + DWORD dwCertEncodingType, + LPCSTR lpszStructType, + const BYTE *pbEncoded, + DWORD cbEncoded, + DWORD dwFlags, + PCRYPT_DECODE_PARA pDecodePara, + void *pvStructInfo, + DWORD *pcbStructInfo + ); + + +__declspec(dllimport) +BOOL +__stdcall +CryptDecodeObject( + DWORD dwCertEncodingType, + LPCSTR lpszStructType, + const BYTE *pbEncoded, + DWORD cbEncoded, + DWORD dwFlags, + void *pvStructInfo, + DWORD *pcbStructInfo + ); +# 4125 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_EXTENSIONS { + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} CERT_EXTENSIONS, *PCERT_EXTENSIONS; +# 4292 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_AUTHORITY_KEY_ID_INFO { + CRYPT_DATA_BLOB KeyId; + CERT_NAME_BLOB CertIssuer; + CRYPT_INTEGER_BLOB CertSerialNumber; +} CERT_AUTHORITY_KEY_ID_INFO, *PCERT_AUTHORITY_KEY_ID_INFO; + + + + + + + +typedef struct _CERT_PRIVATE_KEY_VALIDITY { + FILETIME NotBefore; + FILETIME NotAfter; +} CERT_PRIVATE_KEY_VALIDITY, *PCERT_PRIVATE_KEY_VALIDITY; + +typedef struct _CERT_KEY_ATTRIBUTES_INFO { + CRYPT_DATA_BLOB KeyId; + CRYPT_BIT_BLOB IntendedKeyUsage; + PCERT_PRIVATE_KEY_VALIDITY pPrivateKeyUsagePeriod; +} CERT_KEY_ATTRIBUTES_INFO, *PCERT_KEY_ATTRIBUTES_INFO; +# 4336 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_POLICY_ID { + DWORD cCertPolicyElementId; + LPSTR *rgpszCertPolicyElementId; +} CERT_POLICY_ID, *PCERT_POLICY_ID; + +typedef struct _CERT_KEY_USAGE_RESTRICTION_INFO { + DWORD cCertPolicyId; + PCERT_POLICY_ID rgCertPolicyId; + CRYPT_BIT_BLOB RestrictedKeyUsage; +} CERT_KEY_USAGE_RESTRICTION_INFO, *PCERT_KEY_USAGE_RESTRICTION_INFO; +# 4360 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_OTHER_NAME { + LPSTR pszObjId; + CRYPT_OBJID_BLOB Value; +} CERT_OTHER_NAME, *PCERT_OTHER_NAME; + +typedef struct _CERT_ALT_NAME_ENTRY { + DWORD dwAltNameChoice; + union { + PCERT_OTHER_NAME pOtherName; + LPWSTR pwszRfc822Name; + LPWSTR pwszDNSName; + + CERT_NAME_BLOB DirectoryName; + + LPWSTR pwszURL; + CRYPT_DATA_BLOB IPAddress; + LPSTR pszRegisteredID; + } ; +} CERT_ALT_NAME_ENTRY, *PCERT_ALT_NAME_ENTRY; +# 4394 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_ALT_NAME_INFO { + DWORD cAltEntry; + PCERT_ALT_NAME_ENTRY rgAltEntry; +} CERT_ALT_NAME_INFO, *PCERT_ALT_NAME_INFO; +# 4429 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_BASIC_CONSTRAINTS_INFO { + CRYPT_BIT_BLOB SubjectType; + BOOL fPathLenConstraint; + DWORD dwPathLenConstraint; + DWORD cSubtreesConstraint; + CERT_NAME_BLOB *rgSubtreesConstraint; +} CERT_BASIC_CONSTRAINTS_INFO, *PCERT_BASIC_CONSTRAINTS_INFO; +# 4446 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_BASIC_CONSTRAINTS2_INFO { + BOOL fCA; + BOOL fPathLenConstraint; + DWORD dwPathLenConstraint; +} CERT_BASIC_CONSTRAINTS2_INFO, *PCERT_BASIC_CONSTRAINTS2_INFO; +# 4471 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_POLICY_QUALIFIER_INFO { + LPSTR pszPolicyQualifierId; + CRYPT_OBJID_BLOB Qualifier; +} CERT_POLICY_QUALIFIER_INFO, *PCERT_POLICY_QUALIFIER_INFO; + +typedef struct _CERT_POLICY_INFO { + LPSTR pszPolicyIdentifier; + DWORD cPolicyQualifier; + CERT_POLICY_QUALIFIER_INFO *rgPolicyQualifier; +} CERT_POLICY_INFO, *PCERT_POLICY_INFO; + +typedef struct _CERT_POLICIES_INFO { + DWORD cPolicyInfo; + CERT_POLICY_INFO *rgPolicyInfo; +} CERT_POLICIES_INFO, *PCERT_POLICIES_INFO; +# 4495 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_POLICY_QUALIFIER_NOTICE_REFERENCE { + LPSTR pszOrganization; + DWORD cNoticeNumbers; + int *rgNoticeNumbers; +} CERT_POLICY_QUALIFIER_NOTICE_REFERENCE, *PCERT_POLICY_QUALIFIER_NOTICE_REFERENCE; + +typedef struct _CERT_POLICY_QUALIFIER_USER_NOTICE { + CERT_POLICY_QUALIFIER_NOTICE_REFERENCE *pNoticeReference; + LPWSTR pszDisplayText; +} CERT_POLICY_QUALIFIER_USER_NOTICE, *PCERT_POLICY_QUALIFIER_USER_NOTICE; + + + + + + + +typedef struct _CPS_URLS { + LPWSTR pszURL; + CRYPT_ALGORITHM_IDENTIFIER *pAlgorithm; + CRYPT_DATA_BLOB *pDigest; +} CPS_URLS, *PCPS_URLS; + +typedef struct _CERT_POLICY95_QUALIFIER1 { + LPWSTR pszPracticesReference; + LPSTR pszNoticeIdentifier; + LPSTR pszNSINoticeIdentifier; + DWORD cCPSURLs; + CPS_URLS *rgCPSURLs; +} CERT_POLICY95_QUALIFIER1, *PCERT_POLICY95_QUALIFIER1; +# 4540 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_POLICY_MAPPING { + LPSTR pszIssuerDomainPolicy; + LPSTR pszSubjectDomainPolicy; +} CERT_POLICY_MAPPING, *PCERT_POLICY_MAPPING; + +typedef struct _CERT_POLICY_MAPPINGS_INFO { + DWORD cPolicyMapping; + PCERT_POLICY_MAPPING rgPolicyMapping; +} CERT_POLICY_MAPPINGS_INFO, *PCERT_POLICY_MAPPINGS_INFO; + + + + + + + +typedef struct _CERT_POLICY_CONSTRAINTS_INFO { + BOOL fRequireExplicitPolicy; + DWORD dwRequireExplicitPolicySkipCerts; + + BOOL fInhibitPolicyMapping; + DWORD dwInhibitPolicyMappingSkipCerts; +} CERT_POLICY_CONSTRAINTS_INFO, *PCERT_POLICY_CONSTRAINTS_INFO; +# 4648 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY { + LPSTR pszObjId; + DWORD cValue; + PCRYPT_DER_BLOB rgValue; +} CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY, *PCRYPT_CONTENT_INFO_SEQUENCE_OF_ANY; +# 4662 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_CONTENT_INFO { + LPSTR pszObjId; + CRYPT_DER_BLOB Content; +} CRYPT_CONTENT_INFO, *PCRYPT_CONTENT_INFO; +# 4720 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_SEQUENCE_OF_ANY { + DWORD cValue; + PCRYPT_DER_BLOB rgValue; +} CRYPT_SEQUENCE_OF_ANY, *PCRYPT_SEQUENCE_OF_ANY; +# 4737 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_AUTHORITY_KEY_ID2_INFO { + CRYPT_DATA_BLOB KeyId; + CERT_ALT_NAME_INFO AuthorityCertIssuer; + + CRYPT_INTEGER_BLOB AuthorityCertSerialNumber; +} CERT_AUTHORITY_KEY_ID2_INFO, *PCERT_AUTHORITY_KEY_ID2_INFO; +# 4773 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_ACCESS_DESCRIPTION { + LPSTR pszAccessMethod; + CERT_ALT_NAME_ENTRY AccessLocation; +} CERT_ACCESS_DESCRIPTION, *PCERT_ACCESS_DESCRIPTION; + + +typedef struct _CERT_AUTHORITY_INFO_ACCESS { + DWORD cAccDescr; + PCERT_ACCESS_DESCRIPTION rgAccDescr; +} CERT_AUTHORITY_INFO_ACCESS, *PCERT_AUTHORITY_INFO_ACCESS, + CERT_SUBJECT_INFO_ACCESS, *PCERT_SUBJECT_INFO_ACCESS; +# 4837 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRL_DIST_POINT_NAME { + DWORD dwDistPointNameChoice; + union { + CERT_ALT_NAME_INFO FullName; + + } ; +} CRL_DIST_POINT_NAME, *PCRL_DIST_POINT_NAME; + + + + + +typedef struct _CRL_DIST_POINT { + CRL_DIST_POINT_NAME DistPointName; + CRYPT_BIT_BLOB ReasonFlags; + CERT_ALT_NAME_INFO CRLIssuer; +} CRL_DIST_POINT, *PCRL_DIST_POINT; +# 4867 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRL_DIST_POINTS_INFO { + DWORD cDistPoint; + PCRL_DIST_POINT rgDistPoint; +} CRL_DIST_POINTS_INFO, *PCRL_DIST_POINTS_INFO; +# 4898 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CROSS_CERT_DIST_POINTS_INFO { + + DWORD dwSyncDeltaTime; + + DWORD cDistPoint; + PCERT_ALT_NAME_INFO rgDistPoint; +} CROSS_CERT_DIST_POINTS_INFO, *PCROSS_CERT_DIST_POINTS_INFO; +# 4926 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_PAIR { + CERT_BLOB Forward; + CERT_BLOB Reverse; +} CERT_PAIR, *PCERT_PAIR; +# 4959 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRL_ISSUING_DIST_POINT { + CRL_DIST_POINT_NAME DistPointName; + BOOL fOnlyContainsUserCerts; + BOOL fOnlyContainsCACerts; + CRYPT_BIT_BLOB OnlySomeReasonFlags; + BOOL fIndirectCRL; +} CRL_ISSUING_DIST_POINT, *PCRL_ISSUING_DIST_POINT; +# 4990 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_GENERAL_SUBTREE { + CERT_ALT_NAME_ENTRY Base; + DWORD dwMinimum; + BOOL fMaximum; + DWORD dwMaximum; +} CERT_GENERAL_SUBTREE, *PCERT_GENERAL_SUBTREE; + +typedef struct _CERT_NAME_CONSTRAINTS_INFO { + DWORD cPermittedSubtree; + PCERT_GENERAL_SUBTREE rgPermittedSubtree; + DWORD cExcludedSubtree; + PCERT_GENERAL_SUBTREE rgExcludedSubtree; +} CERT_NAME_CONSTRAINTS_INFO, *PCERT_NAME_CONSTRAINTS_INFO; +# 5091 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_DSS_PARAMETERS { + CRYPT_UINT_BLOB p; + CRYPT_UINT_BLOB q; + CRYPT_UINT_BLOB g; +} CERT_DSS_PARAMETERS, *PCERT_DSS_PARAMETERS; +# 5122 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_DH_PARAMETERS { + CRYPT_UINT_BLOB p; + CRYPT_UINT_BLOB g; +} CERT_DH_PARAMETERS, *PCERT_DH_PARAMETERS; +# 5135 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_ECC_SIGNATURE { + CRYPT_UINT_BLOB r; + CRYPT_UINT_BLOB s; +} CERT_ECC_SIGNATURE, *PCERT_ECC_SIGNATURE; +# 5147 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_X942_DH_VALIDATION_PARAMS { + CRYPT_BIT_BLOB seed; + DWORD pgenCounter; +} CERT_X942_DH_VALIDATION_PARAMS, *PCERT_X942_DH_VALIDATION_PARAMS; + +typedef struct _CERT_X942_DH_PARAMETERS { + CRYPT_UINT_BLOB p; + CRYPT_UINT_BLOB g; + CRYPT_UINT_BLOB q; + CRYPT_UINT_BLOB j; + PCERT_X942_DH_VALIDATION_PARAMS pValidationParams; +} CERT_X942_DH_PARAMETERS, *PCERT_X942_DH_PARAMETERS; +# 5170 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_X942_OTHER_INFO { + LPSTR pszContentEncryptionObjId; + BYTE rgbCounter[4]; + BYTE rgbKeyLength[4]; + CRYPT_DATA_BLOB PubInfo; +} CRYPT_X942_OTHER_INFO, *PCRYPT_X942_OTHER_INFO; +# 5186 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_ECC_CMS_SHARED_INFO { + CRYPT_ALGORITHM_IDENTIFIER Algorithm; + CRYPT_DATA_BLOB EntityUInfo; + BYTE rgbSuppPubInfo[4]; +} CRYPT_ECC_CMS_SHARED_INFO, *PCRYPT_ECC_CMS_SHARED_INFO; +# 5199 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_RC2_CBC_PARAMETERS { + DWORD dwVersion; + BOOL fIV; + BYTE rgbIV[8]; +} CRYPT_RC2_CBC_PARAMETERS, *PCRYPT_RC2_CBC_PARAMETERS; +# 5223 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_SMIME_CAPABILITY { + LPSTR pszObjId; + CRYPT_OBJID_BLOB Parameters; +} CRYPT_SMIME_CAPABILITY, *PCRYPT_SMIME_CAPABILITY; + +typedef struct _CRYPT_SMIME_CAPABILITIES { + DWORD cCapability; + PCRYPT_SMIME_CAPABILITY rgCapability; +} CRYPT_SMIME_CAPABILITIES, *PCRYPT_SMIME_CAPABILITIES; +# 5248 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_QC_STATEMENT { + LPSTR pszStatementId; + CRYPT_OBJID_BLOB StatementInfo; +} CERT_QC_STATEMENT, *PCERT_QC_STATEMENT; + +typedef struct _CERT_QC_STATEMENTS_EXT_INFO { + DWORD cStatement; + PCERT_QC_STATEMENT rgStatement; +} CERT_QC_STATEMENTS_EXT_INFO, *PCERT_QC_STATEMENTS_EXT_INFO; +# 5300 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_MASK_GEN_ALGORITHM { + LPSTR pszObjId; + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; +} CRYPT_MASK_GEN_ALGORITHM, *PCRYPT_MASK_GEN_ALGORITHM; + +typedef struct _CRYPT_RSA_SSA_PSS_PARAMETERS { + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; + CRYPT_MASK_GEN_ALGORITHM MaskGenAlgorithm; + DWORD dwSaltLength; + DWORD dwTrailerField; +} CRYPT_RSA_SSA_PSS_PARAMETERS, *PCRYPT_RSA_SSA_PSS_PARAMETERS; +# 5335 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_PSOURCE_ALGORITHM { + LPSTR pszObjId; + CRYPT_DATA_BLOB EncodingParameters; +} CRYPT_PSOURCE_ALGORITHM, *PCRYPT_PSOURCE_ALGORITHM; + +typedef struct _CRYPT_RSAES_OAEP_PARAMETERS { + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; + CRYPT_MASK_GEN_ALGORITHM MaskGenAlgorithm; + CRYPT_PSOURCE_ALGORITHM PSourceAlgorithm; +} CRYPT_RSAES_OAEP_PARAMETERS, *PCRYPT_RSAES_OAEP_PARAMETERS; +# 5629 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMC_TAGGED_ATTRIBUTE { + DWORD dwBodyPartID; + CRYPT_ATTRIBUTE Attribute; +} CMC_TAGGED_ATTRIBUTE, *PCMC_TAGGED_ATTRIBUTE; + +typedef struct _CMC_TAGGED_CERT_REQUEST { + DWORD dwBodyPartID; + CRYPT_DER_BLOB SignedCertRequest; +} CMC_TAGGED_CERT_REQUEST, *PCMC_TAGGED_CERT_REQUEST; + +typedef struct _CMC_TAGGED_REQUEST { + DWORD dwTaggedRequestChoice; + union { + + PCMC_TAGGED_CERT_REQUEST pTaggedCertRequest; + } ; +} CMC_TAGGED_REQUEST, *PCMC_TAGGED_REQUEST; + + + +typedef struct _CMC_TAGGED_CONTENT_INFO { + DWORD dwBodyPartID; + CRYPT_DER_BLOB EncodedContentInfo; +} CMC_TAGGED_CONTENT_INFO, *PCMC_TAGGED_CONTENT_INFO; + +typedef struct _CMC_TAGGED_OTHER_MSG { + DWORD dwBodyPartID; + LPSTR pszObjId; + CRYPT_OBJID_BLOB Value; +} CMC_TAGGED_OTHER_MSG, *PCMC_TAGGED_OTHER_MSG; + + + +typedef struct _CMC_DATA_INFO { + DWORD cTaggedAttribute; + PCMC_TAGGED_ATTRIBUTE rgTaggedAttribute; + DWORD cTaggedRequest; + PCMC_TAGGED_REQUEST rgTaggedRequest; + DWORD cTaggedContentInfo; + PCMC_TAGGED_CONTENT_INFO rgTaggedContentInfo; + DWORD cTaggedOtherMsg; + PCMC_TAGGED_OTHER_MSG rgTaggedOtherMsg; +} CMC_DATA_INFO, *PCMC_DATA_INFO; + + + +typedef struct _CMC_RESPONSE_INFO { + DWORD cTaggedAttribute; + PCMC_TAGGED_ATTRIBUTE rgTaggedAttribute; + DWORD cTaggedContentInfo; + PCMC_TAGGED_CONTENT_INFO rgTaggedContentInfo; + DWORD cTaggedOtherMsg; + PCMC_TAGGED_OTHER_MSG rgTaggedOtherMsg; +} CMC_RESPONSE_INFO, *PCMC_RESPONSE_INFO; +# 5692 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMC_PEND_INFO { + CRYPT_DATA_BLOB PendToken; + FILETIME PendTime; +} CMC_PEND_INFO, *PCMC_PEND_INFO; + +typedef struct _CMC_STATUS_INFO { + DWORD dwStatus; + DWORD cBodyList; + DWORD *rgdwBodyList; + LPWSTR pwszStatusString; + DWORD dwOtherInfoChoice; + union { + + + + DWORD dwFailInfo; + + PCMC_PEND_INFO pPendInfo; + } ; +} CMC_STATUS_INFO, *PCMC_STATUS_INFO; +# 5789 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMC_ADD_EXTENSIONS_INFO { + DWORD dwCmcDataReference; + DWORD cCertReference; + DWORD *rgdwCertReference; + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} CMC_ADD_EXTENSIONS_INFO, *PCMC_ADD_EXTENSIONS_INFO; +# 5806 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMC_ADD_ATTRIBUTES_INFO { + DWORD dwCmcDataReference; + DWORD cCertReference; + DWORD *rgdwCertReference; + DWORD cAttribute; + PCRYPT_ATTRIBUTE rgAttribute; +} CMC_ADD_ATTRIBUTES_INFO, *PCMC_ADD_ATTRIBUTES_INFO; +# 5822 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_TEMPLATE_EXT { + LPSTR pszObjId; + DWORD dwMajorVersion; + BOOL fMinorVersion; + DWORD dwMinorVersion; +} CERT_TEMPLATE_EXT, *PCERT_TEMPLATE_EXT; +# 5838 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_HASHED_URL { + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; + CRYPT_HASH_BLOB Hash; + LPWSTR pwszUrl; + +} CERT_HASHED_URL, *PCERT_HASHED_URL; + +typedef struct _CERT_LOGOTYPE_DETAILS { + LPWSTR pwszMimeType; + DWORD cHashedUrl; + PCERT_HASHED_URL rgHashedUrl; +} CERT_LOGOTYPE_DETAILS, *PCERT_LOGOTYPE_DETAILS; + +typedef struct _CERT_LOGOTYPE_REFERENCE { + DWORD cHashedUrl; + PCERT_HASHED_URL rgHashedUrl; +} CERT_LOGOTYPE_REFERENCE, *PCERT_LOGOTYPE_REFERENCE; + +typedef struct _CERT_LOGOTYPE_IMAGE_INFO { + + + DWORD dwLogotypeImageInfoChoice; + + DWORD dwFileSize; + DWORD dwXSize; + DWORD dwYSize; + + DWORD dwLogotypeImageResolutionChoice; + union { + + + + + DWORD dwNumBits; + + + DWORD dwTableSize; + } ; + LPWSTR pwszLanguage; + +} CERT_LOGOTYPE_IMAGE_INFO, *PCERT_LOGOTYPE_IMAGE_INFO; +# 5887 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_LOGOTYPE_IMAGE { + CERT_LOGOTYPE_DETAILS LogotypeDetails; + + PCERT_LOGOTYPE_IMAGE_INFO pLogotypeImageInfo; +} CERT_LOGOTYPE_IMAGE, *PCERT_LOGOTYPE_IMAGE; + + +typedef struct _CERT_LOGOTYPE_AUDIO_INFO { + DWORD dwFileSize; + DWORD dwPlayTime; + DWORD dwChannels; + DWORD dwSampleRate; + + LPWSTR pwszLanguage; + +} CERT_LOGOTYPE_AUDIO_INFO, *PCERT_LOGOTYPE_AUDIO_INFO; + +typedef struct _CERT_LOGOTYPE_AUDIO { + CERT_LOGOTYPE_DETAILS LogotypeDetails; + + PCERT_LOGOTYPE_AUDIO_INFO pLogotypeAudioInfo; +} CERT_LOGOTYPE_AUDIO, *PCERT_LOGOTYPE_AUDIO; + + +typedef struct _CERT_LOGOTYPE_DATA { + DWORD cLogotypeImage; + PCERT_LOGOTYPE_IMAGE rgLogotypeImage; + + DWORD cLogotypeAudio; + PCERT_LOGOTYPE_AUDIO rgLogotypeAudio; +} CERT_LOGOTYPE_DATA, *PCERT_LOGOTYPE_DATA; + + +typedef struct _CERT_LOGOTYPE_INFO { + DWORD dwLogotypeInfoChoice; + union { + + PCERT_LOGOTYPE_DATA pLogotypeDirectInfo; + + + PCERT_LOGOTYPE_REFERENCE pLogotypeIndirectInfo; + } ; +} CERT_LOGOTYPE_INFO, *PCERT_LOGOTYPE_INFO; + + + + +typedef struct _CERT_OTHER_LOGOTYPE_INFO { + LPSTR pszObjId; + CERT_LOGOTYPE_INFO LogotypeInfo; +} CERT_OTHER_LOGOTYPE_INFO, *PCERT_OTHER_LOGOTYPE_INFO; + + + + +typedef struct _CERT_LOGOTYPE_EXT_INFO { + DWORD cCommunityLogo; + PCERT_LOGOTYPE_INFO rgCommunityLogo; + PCERT_LOGOTYPE_INFO pIssuerLogo; + PCERT_LOGOTYPE_INFO pSubjectLogo; + DWORD cOtherLogo; + PCERT_OTHER_LOGOTYPE_INFO rgOtherLogo; +} CERT_LOGOTYPE_EXT_INFO, *PCERT_LOGOTYPE_EXT_INFO; +# 5961 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_BIOMETRIC_DATA { + DWORD dwTypeOfBiometricDataChoice; + union { + + DWORD dwPredefined; + + + LPSTR pszObjId; + } ; + + CERT_HASHED_URL HashedUrl; +} CERT_BIOMETRIC_DATA, *PCERT_BIOMETRIC_DATA; +# 5981 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_BIOMETRIC_EXT_INFO { + DWORD cBiometricData; + PCERT_BIOMETRIC_DATA rgBiometricData; +} CERT_BIOMETRIC_EXT_INFO, *PCERT_BIOMETRIC_EXT_INFO; +# 6001 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _OCSP_SIGNATURE_INFO { + CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm; + CRYPT_BIT_BLOB Signature; + DWORD cCertEncoded; + PCERT_BLOB rgCertEncoded; +} OCSP_SIGNATURE_INFO, *POCSP_SIGNATURE_INFO; + +typedef struct _OCSP_SIGNED_REQUEST_INFO { + CRYPT_DER_BLOB ToBeSigned; + POCSP_SIGNATURE_INFO pOptionalSignatureInfo; +} OCSP_SIGNED_REQUEST_INFO, *POCSP_SIGNED_REQUEST_INFO; + + + + + + + +typedef struct _OCSP_CERT_ID { + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; + CRYPT_HASH_BLOB IssuerNameHash; + CRYPT_HASH_BLOB IssuerKeyHash; + CRYPT_INTEGER_BLOB SerialNumber; +} OCSP_CERT_ID, *POCSP_CERT_ID; + +typedef struct _OCSP_REQUEST_ENTRY { + OCSP_CERT_ID CertId; + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} OCSP_REQUEST_ENTRY, *POCSP_REQUEST_ENTRY; + +typedef struct _OCSP_REQUEST_INFO { + DWORD dwVersion; + PCERT_ALT_NAME_ENTRY pRequestorName; + DWORD cRequestEntry; + POCSP_REQUEST_ENTRY rgRequestEntry; + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} OCSP_REQUEST_INFO, *POCSP_REQUEST_INFO; +# 6048 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _OCSP_RESPONSE_INFO { + DWORD dwStatus; + LPSTR pszObjId; + CRYPT_OBJID_BLOB Value; +} OCSP_RESPONSE_INFO, *POCSP_RESPONSE_INFO; +# 6071 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _OCSP_BASIC_SIGNED_RESPONSE_INFO { + CRYPT_DER_BLOB ToBeSigned; + OCSP_SIGNATURE_INFO SignatureInfo; +} OCSP_BASIC_SIGNED_RESPONSE_INFO, *POCSP_BASIC_SIGNED_RESPONSE_INFO; + + + + + + + +typedef struct _OCSP_BASIC_REVOKED_INFO { + FILETIME RevocationDate; + + + DWORD dwCrlReasonCode; +} OCSP_BASIC_REVOKED_INFO, *POCSP_BASIC_REVOKED_INFO; + +typedef struct _OCSP_BASIC_RESPONSE_ENTRY { + OCSP_CERT_ID CertId; + DWORD dwCertStatus; + union { + + + + + + POCSP_BASIC_REVOKED_INFO pRevokedInfo; + + } ; + FILETIME ThisUpdate; + FILETIME NextUpdate; + + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} OCSP_BASIC_RESPONSE_ENTRY, *POCSP_BASIC_RESPONSE_ENTRY; + + + + + + +typedef struct _OCSP_BASIC_RESPONSE_INFO { + DWORD dwVersion; + DWORD dwResponderIdChoice; + union { + + CERT_NAME_BLOB ByNameResponderId; + + CRYPT_HASH_BLOB ByKeyResponderId; + } ; + FILETIME ProducedAt; + DWORD cResponseEntry; + POCSP_BASIC_RESPONSE_ENTRY rgResponseEntry; + DWORD cExtension; + PCERT_EXTENSION rgExtension; +} OCSP_BASIC_RESPONSE_INFO, *POCSP_BASIC_RESPONSE_INFO; +# 6144 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_SUPPORTED_ALGORITHM_INFO { + CRYPT_ALGORITHM_IDENTIFIER Algorithm; + CRYPT_BIT_BLOB IntendedKeyUsage; + CERT_POLICIES_INFO IntendedCertPolicies; +} CERT_SUPPORTED_ALGORITHM_INFO, *PCERT_SUPPORTED_ALGORITHM_INFO; + + + + + + +typedef struct _CERT_TPM_SPECIFICATION_INFO { + LPWSTR pwszFamily; + DWORD dwLevel; + DWORD dwRevision; +} CERT_TPM_SPECIFICATION_INFO, *PCERT_TPM_SPECIFICATION_INFO; +# 6173 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef void *HCRYPTOIDFUNCSET; +typedef void *HCRYPTOIDFUNCADDR; +# 6250 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_OID_FUNC_ENTRY { + LPCSTR pszOID; + void *pvFuncAddr; +} CRYPT_OID_FUNC_ENTRY, *PCRYPT_OID_FUNC_ENTRY; +# 6272 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptInstallOIDFunctionAddress( + HMODULE hModule, + DWORD dwEncodingType, + LPCSTR pszFuncName, + DWORD cFuncEntry, + const CRYPT_OID_FUNC_ENTRY rgFuncEntry[], + DWORD dwFlags + ); + + + + + + + +__declspec(dllimport) +HCRYPTOIDFUNCSET +__stdcall +CryptInitOIDFunctionSet( + LPCSTR pszFuncName, + DWORD dwFlags + ); +# 6316 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CryptGetOIDFunctionAddress( + HCRYPTOIDFUNCSET hFuncSet, + DWORD dwEncodingType, + LPCSTR pszOID, + DWORD dwFlags, + void **ppvFuncAddr, + HCRYPTOIDFUNCADDR *phFuncAddr + ); +# 6339 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CryptGetDefaultOIDDllList( + HCRYPTOIDFUNCSET hFuncSet, + DWORD dwEncodingType, + WCHAR *pwszDllList, + DWORD *pcchDllList + ); +# 6373 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CryptGetDefaultOIDFunctionAddress( + HCRYPTOIDFUNCSET hFuncSet, + DWORD dwEncodingType, + LPCWSTR pwszDll, + DWORD dwFlags, + void **ppvFuncAddr, + HCRYPTOIDFUNCADDR *phFuncAddr + ); +# 6399 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptFreeOIDFunctionAddress( + HCRYPTOIDFUNCADDR hFuncAddr, + DWORD dwFlags + ); +# 6427 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptRegisterOIDFunction( + DWORD dwEncodingType, + LPCSTR pszFuncName, + LPCSTR pszOID, + LPCWSTR pwszDll, + LPCSTR pszOverrideFuncName + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +CryptUnregisterOIDFunction( + DWORD dwEncodingType, + LPCSTR pszFuncName, + LPCSTR pszOID + ); +# 6465 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptRegisterDefaultOIDFunction( + DWORD dwEncodingType, + LPCSTR pszFuncName, + DWORD dwIndex, + LPCWSTR pwszDll + ); +# 6482 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptUnregisterDefaultOIDFunction( + DWORD dwEncodingType, + LPCSTR pszFuncName, + LPCWSTR pwszDll + ); +# 6499 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptSetOIDFunctionValue( + DWORD dwEncodingType, + LPCSTR pszFuncName, + LPCSTR pszOID, + LPCWSTR pwszValueName, + DWORD dwValueType, + const BYTE *pbValueData, + DWORD cbValueData + ); +# 6527 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptGetOIDFunctionValue( + DWORD dwEncodingType, + LPCSTR pszFuncName, + LPCSTR pszOID, + LPCWSTR pwszValueName, + DWORD *pdwValueType, + BYTE *pbValueData, + DWORD *pcbValueData + ); + +typedef BOOL (__stdcall *PFN_CRYPT_ENUM_OID_FUNC)( + DWORD dwEncodingType, + LPCSTR pszFuncName, + LPCSTR pszOID, + DWORD cValue, + const DWORD rgdwValueType[], + LPCWSTR const rgpwszValueName[], + const BYTE * const rgpbValueData[], + const DWORD rgcbValueData[], + void *pvArg + ); +# 6565 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptEnumOIDFunction( + DWORD dwEncodingType, + LPCSTR pszFuncName, + LPCSTR pszOID, + DWORD dwFlags, + void *pvArg, + PFN_CRYPT_ENUM_OID_FUNC pfnEnumOIDFunc + ); +# 6611 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_OID_INFO { + DWORD cbSize; + LPCSTR pszOID; + LPCWSTR pwszName; + DWORD dwGroupId; + union { + DWORD dwValue; + ALG_ID Algid; + DWORD dwLength; + } ; + CRYPT_DATA_BLOB ExtraInfo; +# 6649 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +} CRYPT_OID_INFO, *PCRYPT_OID_INFO; +typedef const CRYPT_OID_INFO CCRYPT_OID_INFO, *PCCRYPT_OID_INFO; +# 6745 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCRYPT_OID_INFO +__stdcall +CryptFindOIDInfo( + DWORD dwKeyType, + void *pvKey, + DWORD dwGroupId + ); +# 6821 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptRegisterOIDInfo( + PCCRYPT_OID_INFO pInfo, + DWORD dwFlags + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CryptUnregisterOIDInfo( + PCCRYPT_OID_INFO pInfo + ); +# 6849 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CRYPT_ENUM_OID_INFO)( + PCCRYPT_OID_INFO pInfo, + void *pvArg + ); +# 6864 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptEnumOIDInfo( + DWORD dwGroupId, + DWORD dwFlags, + void *pvArg, + PFN_CRYPT_ENUM_OID_INFO pfnEnumOIDInfo + ); +# 6897 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +LPCWSTR +__stdcall +CryptFindLocalizedName( + LPCWSTR pwszCryptName + ); +# 6911 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_STRONG_SIGN_SERIALIZED_INFO { + DWORD dwFlags; + LPWSTR pwszCNGSignHashAlgids; + LPWSTR pwszCNGPubKeyMinBitLengths; +} CERT_STRONG_SIGN_SERIALIZED_INFO, *PCERT_STRONG_SIGN_SERIALIZED_INFO; +# 6939 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_STRONG_SIGN_PARA { + DWORD cbSize; + + DWORD dwInfoChoice; + union { + void *pvInfo; + + + PCERT_STRONG_SIGN_SERIALIZED_INFO pSerializedInfo; + + + LPSTR pszOID; + + } ; +} CERT_STRONG_SIGN_PARA, *PCERT_STRONG_SIGN_PARA; + +typedef const CERT_STRONG_SIGN_PARA *PCCERT_STRONG_SIGN_PARA; +# 7028 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef void *HCRYPTMSG; +# 7065 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_ISSUER_SERIAL_NUMBER { + CERT_NAME_BLOB Issuer; + CRYPT_INTEGER_BLOB SerialNumber; +} CERT_ISSUER_SERIAL_NUMBER, *PCERT_ISSUER_SERIAL_NUMBER; + + + + +typedef struct _CERT_ID { + DWORD dwIdChoice; + union { + + CERT_ISSUER_SERIAL_NUMBER IssuerSerialNumber; + + CRYPT_HASH_BLOB KeyId; + + CRYPT_HASH_BLOB HashId; + } ; +} CERT_ID, *PCERT_ID; +# 7137 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_SIGNER_ENCODE_INFO { + DWORD cbSize; + PCERT_INFO pCertInfo; + + + union { + HCRYPTPROV hCryptProv; + NCRYPT_KEY_HANDLE hNCryptKey; + + + + } ; + + + DWORD dwKeySpec; + + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; + void *pvHashAuxInfo; + DWORD cAuthAttr; + PCRYPT_ATTRIBUTE rgAuthAttr; + DWORD cUnauthAttr; + PCRYPT_ATTRIBUTE rgUnauthAttr; +# 7167 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +} CMSG_SIGNER_ENCODE_INFO, *PCMSG_SIGNER_ENCODE_INFO; + +typedef struct _CMSG_SIGNED_ENCODE_INFO { + DWORD cbSize; + DWORD cSigners; + PCMSG_SIGNER_ENCODE_INFO rgSigners; + DWORD cCertEncoded; + PCERT_BLOB rgCertEncoded; + DWORD cCrlEncoded; + PCRL_BLOB rgCrlEncoded; + + + + + +} CMSG_SIGNED_ENCODE_INFO, *PCMSG_SIGNED_ENCODE_INFO; +# 7227 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_RECIPIENT_ENCODE_INFO CMSG_RECIPIENT_ENCODE_INFO, + *PCMSG_RECIPIENT_ENCODE_INFO; + +typedef struct _CMSG_ENVELOPED_ENCODE_INFO { + DWORD cbSize; + HCRYPTPROV_LEGACY hCryptProv; + CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm; + void *pvEncryptionAuxInfo; + DWORD cRecipients; + + + + + PCERT_INFO *rgpRecipients; +# 7255 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +} CMSG_ENVELOPED_ENCODE_INFO, *PCMSG_ENVELOPED_ENCODE_INFO; +# 7278 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO { + DWORD cbSize; + CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm; + void *pvKeyEncryptionAuxInfo; + HCRYPTPROV_LEGACY hCryptProv; + CRYPT_BIT_BLOB RecipientPublicKey; + CERT_ID RecipientId; +} CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO, *PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO; +# 7327 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO { + DWORD cbSize; + CRYPT_BIT_BLOB RecipientPublicKey; + CERT_ID RecipientId; + + + + FILETIME Date; + PCRYPT_ATTRIBUTE_TYPE_VALUE pOtherAttr; +} CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO, + *PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO; + +typedef struct _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO { + DWORD cbSize; + CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm; + void *pvKeyEncryptionAuxInfo; + CRYPT_ALGORITHM_IDENTIFIER KeyWrapAlgorithm; + void *pvKeyWrapAuxInfo; + + + + + + + + HCRYPTPROV_LEGACY hCryptProv; + DWORD dwKeySpec; + + DWORD dwKeyChoice; + union { + + + + PCRYPT_ALGORITHM_IDENTIFIER pEphemeralAlgorithm; + + + + + PCERT_ID pSenderId; + } ; + CRYPT_DATA_BLOB UserKeyingMaterial; + + DWORD cRecipientEncryptedKeys; + PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO *rgpRecipientEncryptedKeys; +} CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, *PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO; +# 7395 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO { + DWORD cbSize; + CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm; + void *pvKeyEncryptionAuxInfo; + HCRYPTPROV hCryptProv; + DWORD dwKeyChoice; + union { + + HCRYPTKEY hKeyEncryptionKey; + + void *pvKeyEncryptionKey; + } ; + CRYPT_DATA_BLOB KeyId; + + + FILETIME Date; + PCRYPT_ATTRIBUTE_TYPE_VALUE pOtherAttr; +} CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO, *PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO; +# 7421 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +struct _CMSG_RECIPIENT_ENCODE_INFO { + DWORD dwRecipientChoice; + union { + + PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyTrans; + + PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO pKeyAgree; + + PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO pMailList; + } ; +}; +# 7453 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_RC2_AUX_INFO { + DWORD cbSize; + DWORD dwBitLen; +} CMSG_RC2_AUX_INFO, *PCMSG_RC2_AUX_INFO; +# 7471 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_SP3_COMPATIBLE_AUX_INFO { + DWORD cbSize; + DWORD dwFlags; +} CMSG_SP3_COMPATIBLE_AUX_INFO, *PCMSG_SP3_COMPATIBLE_AUX_INFO; +# 7493 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_RC4_AUX_INFO { + DWORD cbSize; + DWORD dwBitLen; +} CMSG_RC4_AUX_INFO, *PCMSG_RC4_AUX_INFO; +# 7507 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO { + DWORD cbSize; + CMSG_SIGNED_ENCODE_INFO SignedInfo; + CMSG_ENVELOPED_ENCODE_INFO EnvelopedInfo; +} CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO, *PCMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO; +# 7529 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_HASHED_ENCODE_INFO { + DWORD cbSize; + HCRYPTPROV_LEGACY hCryptProv; + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; + void *pvHashAuxInfo; +} CMSG_HASHED_ENCODE_INFO, *PCMSG_HASHED_ENCODE_INFO; +# 7546 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_ENCRYPTED_ENCODE_INFO { + DWORD cbSize; + CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm; + void *pvEncryptionAuxInfo; +} CMSG_ENCRYPTED_ENCODE_INFO, *PCMSG_ENCRYPTED_ENCODE_INFO; +# 7567 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CMSG_STREAM_OUTPUT)( + const void *pvArg, + BYTE *pbData, + DWORD cbData, + BOOL fFinal + ); + + + +typedef struct _CMSG_STREAM_INFO { + DWORD cbContent; + PFN_CMSG_STREAM_OUTPUT pfnStreamOutput; + void *pvArg; +} CMSG_STREAM_INFO, *PCMSG_STREAM_INFO; +# 7620 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +HCRYPTMSG +__stdcall +CryptMsgOpenToEncode( + DWORD dwMsgEncodingType, + DWORD dwFlags, + DWORD dwMsgType, + void const *pvMsgEncodeInfo, + LPSTR pszInnerContentObjID, + PCMSG_STREAM_INFO pStreamInfo + ); +# 7640 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +DWORD +__stdcall +CryptMsgCalculateEncodedLength( + DWORD dwMsgEncodingType, + DWORD dwFlags, + DWORD dwMsgType, + void const *pvMsgEncodeInfo, + LPSTR pszInnerContentObjID, + DWORD cbData + ); +# 7664 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +HCRYPTMSG +__stdcall +CryptMsgOpenToDecode( + DWORD dwMsgEncodingType, + DWORD dwFlags, + DWORD dwMsgType, + HCRYPTPROV_LEGACY hCryptProv, + PCERT_INFO pRecipientInfo, + PCMSG_STREAM_INFO pStreamInfo + ); + + + + +__declspec(dllimport) +HCRYPTMSG +__stdcall +CryptMsgDuplicate( + HCRYPTMSG hCryptMsg + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CryptMsgClose( + HCRYPTMSG hCryptMsg + ); +# 7707 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptMsgUpdate( + HCRYPTMSG hCryptMsg, + const BYTE *pbData, + DWORD cbData, + BOOL fFinal + ); +# 7741 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptMsgGetParam( + HCRYPTMSG hCryptMsg, + DWORD dwParamType, + DWORD dwIndex, + void *pvData, + DWORD *pcbData + ); +# 7876 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_SIGNER_INFO { + DWORD dwVersion; + CERT_NAME_BLOB Issuer; + CRYPT_INTEGER_BLOB SerialNumber; + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; + + + CRYPT_ALGORITHM_IDENTIFIER HashEncryptionAlgorithm; + + CRYPT_DATA_BLOB EncryptedHash; + CRYPT_ATTRIBUTES AuthAttrs; + CRYPT_ATTRIBUTES UnauthAttrs; +} CMSG_SIGNER_INFO, *PCMSG_SIGNER_INFO; +# 7911 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_CMS_SIGNER_INFO { + DWORD dwVersion; + CERT_ID SignerId; + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; + + + CRYPT_ALGORITHM_IDENTIFIER HashEncryptionAlgorithm; + + CRYPT_DATA_BLOB EncryptedHash; + CRYPT_ATTRIBUTES AuthAttrs; + CRYPT_ATTRIBUTES UnauthAttrs; +} CMSG_CMS_SIGNER_INFO, *PCMSG_CMS_SIGNER_INFO; +# 7944 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef CRYPT_ATTRIBUTES CMSG_ATTR; +typedef CRYPT_ATTRIBUTES *PCMSG_ATTR; +# 8185 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_KEY_TRANS_RECIPIENT_INFO { + DWORD dwVersion; + + + CERT_ID RecipientId; + + CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm; + CRYPT_DATA_BLOB EncryptedKey; +} CMSG_KEY_TRANS_RECIPIENT_INFO, *PCMSG_KEY_TRANS_RECIPIENT_INFO; + +typedef struct _CMSG_RECIPIENT_ENCRYPTED_KEY_INFO { + + CERT_ID RecipientId; + + CRYPT_DATA_BLOB EncryptedKey; + + + FILETIME Date; + PCRYPT_ATTRIBUTE_TYPE_VALUE pOtherAttr; +} CMSG_RECIPIENT_ENCRYPTED_KEY_INFO, *PCMSG_RECIPIENT_ENCRYPTED_KEY_INFO; + +typedef struct _CMSG_KEY_AGREE_RECIPIENT_INFO { + DWORD dwVersion; + DWORD dwOriginatorChoice; + union { + + CERT_ID OriginatorCertId; + + CERT_PUBLIC_KEY_INFO OriginatorPublicKeyInfo; + } ; + CRYPT_DATA_BLOB UserKeyingMaterial; + CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm; + + DWORD cRecipientEncryptedKeys; + PCMSG_RECIPIENT_ENCRYPTED_KEY_INFO *rgpRecipientEncryptedKeys; +} CMSG_KEY_AGREE_RECIPIENT_INFO, *PCMSG_KEY_AGREE_RECIPIENT_INFO; + + + + + +typedef struct _CMSG_MAIL_LIST_RECIPIENT_INFO { + DWORD dwVersion; + CRYPT_DATA_BLOB KeyId; + CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm; + CRYPT_DATA_BLOB EncryptedKey; + + + FILETIME Date; + PCRYPT_ATTRIBUTE_TYPE_VALUE pOtherAttr; +} CMSG_MAIL_LIST_RECIPIENT_INFO, *PCMSG_MAIL_LIST_RECIPIENT_INFO; + +typedef struct _CMSG_CMS_RECIPIENT_INFO { + DWORD dwRecipientChoice; + union { + + PCMSG_KEY_TRANS_RECIPIENT_INFO pKeyTrans; + + PCMSG_KEY_AGREE_RECIPIENT_INFO pKeyAgree; + + PCMSG_MAIL_LIST_RECIPIENT_INFO pMailList; + } ; +} CMSG_CMS_RECIPIENT_INFO, *PCMSG_CMS_RECIPIENT_INFO; +# 8279 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptMsgControl( + HCRYPTMSG hCryptMsg, + DWORD dwFlags, + DWORD dwCtrlType, + void const *pvCtrlPara + ); +# 8358 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA { + DWORD cbSize; + HCRYPTPROV_LEGACY hCryptProv; + DWORD dwSignerIndex; + DWORD dwSignerType; + void *pvSigner; +} CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA, *PCMSG_CTRL_VERIFY_SIGNATURE_EX_PARA; +# 8411 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_CTRL_DECRYPT_PARA { + DWORD cbSize; + + + union { + HCRYPTPROV hCryptProv; + NCRYPT_KEY_HANDLE hNCryptKey; + } ; + + + DWORD dwKeySpec; + + DWORD dwRecipientIndex; +} CMSG_CTRL_DECRYPT_PARA, *PCMSG_CTRL_DECRYPT_PARA; +# 8451 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_CTRL_KEY_TRANS_DECRYPT_PARA { + DWORD cbSize; + + union { + HCRYPTPROV hCryptProv; + NCRYPT_KEY_HANDLE hNCryptKey; + } ; + + + DWORD dwKeySpec; + + PCMSG_KEY_TRANS_RECIPIENT_INFO pKeyTrans; + DWORD dwRecipientIndex; +} CMSG_CTRL_KEY_TRANS_DECRYPT_PARA, *PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA; +# 8495 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_CTRL_KEY_AGREE_DECRYPT_PARA { + DWORD cbSize; + + + union { + HCRYPTPROV hCryptProv; + NCRYPT_KEY_HANDLE hNCryptKey; + } ; + + + DWORD dwKeySpec; + + PCMSG_KEY_AGREE_RECIPIENT_INFO pKeyAgree; + DWORD dwRecipientIndex; + DWORD dwRecipientEncryptedKeyIndex; + CRYPT_BIT_BLOB OriginatorPublicKey; +} CMSG_CTRL_KEY_AGREE_DECRYPT_PARA, *PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA; +# 8539 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_CTRL_MAIL_LIST_DECRYPT_PARA { + DWORD cbSize; + HCRYPTPROV hCryptProv; + PCMSG_MAIL_LIST_RECIPIENT_INFO pMailList; + DWORD dwRecipientIndex; + DWORD dwKeyChoice; + union { + + HCRYPTKEY hKeyEncryptionKey; + + void *pvKeyEncryptionKey; + } ; +} CMSG_CTRL_MAIL_LIST_DECRYPT_PARA, *PCMSG_CTRL_MAIL_LIST_DECRYPT_PARA; +# 8601 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA { + DWORD cbSize; + DWORD dwSignerIndex; + CRYPT_DATA_BLOB blob; +} CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA, *PCMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA; +# 8617 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA { + DWORD cbSize; + DWORD dwSignerIndex; + DWORD dwUnauthAttrIndex; +} CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA, *PCMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA; +# 8687 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +BOOL +__stdcall +CryptMsgVerifyCountersignatureEncoded( + HCRYPTPROV_LEGACY hCryptProv, + DWORD dwEncodingType, + PBYTE pbSignerInfo, + DWORD cbSignerInfo, + PBYTE pbSignerInfoCountersignature, + DWORD cbSignerInfoCountersignature, + PCERT_INFO pciCountersigner + ); +# 8710 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +BOOL +__stdcall +CryptMsgVerifyCountersignatureEncodedEx( + HCRYPTPROV_LEGACY hCryptProv, + DWORD dwEncodingType, + PBYTE pbSignerInfo, + DWORD cbSignerInfo, + PBYTE pbSignerInfoCountersignature, + DWORD cbSignerInfoCountersignature, + DWORD dwSignerType, + void *pvSigner, + DWORD dwFlags, + void *pvExtra + ); +# 8736 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +BOOL +__stdcall +CryptMsgCountersign( + HCRYPTMSG hCryptMsg, + DWORD dwIndex, + DWORD cCountersigners, + PCMSG_SIGNER_ENCODE_INFO rgCountersigners + ); + + + + + + + +BOOL +__stdcall +CryptMsgCountersignEncoded( + DWORD dwEncodingType, + PBYTE pbSignerInfo, + DWORD cbSignerInfo, + DWORD cCountersigners, + PCMSG_SIGNER_ENCODE_INFO rgCountersigners, + PBYTE pbCountersignature, + PDWORD pcbCountersignature + ); + + + + + +typedef void * (__stdcall *PFN_CMSG_ALLOC) ( + size_t cb + ); + +typedef void (__stdcall *PFN_CMSG_FREE)( + void *pv + ); +# 8788 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CMSG_GEN_ENCRYPT_KEY) ( + HCRYPTPROV *phCryptProv, + PCRYPT_ALGORITHM_IDENTIFIER paiEncrypt, + PVOID pvEncryptAuxInfo, + PCERT_PUBLIC_KEY_INFO pPublicKeyInfo, + PFN_CMSG_ALLOC pfnAlloc, + HCRYPTKEY *phEncryptKey, + PBYTE *ppbEncryptParameters, + PDWORD pcbEncryptParameters + ); + + +typedef BOOL (__stdcall *PFN_CMSG_EXPORT_ENCRYPT_KEY) ( + HCRYPTPROV hCryptProv, + HCRYPTKEY hEncryptKey, + PCERT_PUBLIC_KEY_INFO pPublicKeyInfo, + PBYTE pbData, + PDWORD pcbData + ); + + +typedef BOOL (__stdcall *PFN_CMSG_IMPORT_ENCRYPT_KEY) ( + HCRYPTPROV hCryptProv, + DWORD dwKeySpec, + PCRYPT_ALGORITHM_IDENTIFIER paiEncrypt, + PCRYPT_ALGORITHM_IDENTIFIER paiPubKey, + PBYTE pbEncodedKey, + DWORD cbEncodedKey, + HCRYPTKEY *phEncryptKey + ); +# 8842 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_CONTENT_ENCRYPT_INFO { + DWORD cbSize; + HCRYPTPROV_LEGACY hCryptProv; + CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm; + void *pvEncryptionAuxInfo; + DWORD cRecipients; + PCMSG_RECIPIENT_ENCODE_INFO rgCmsRecipients; + PFN_CMSG_ALLOC pfnAlloc; + PFN_CMSG_FREE pfnFree; + DWORD dwEncryptFlags; + union { + + HCRYPTKEY hContentEncryptKey; + + BCRYPT_KEY_HANDLE hCNGContentEncryptKey; + } ; + DWORD dwFlags; + + BOOL fCNG; + + BYTE *pbCNGContentEncryptKeyObject; + BYTE *pbContentEncryptKey; + DWORD cbContentEncryptKey; +} CMSG_CONTENT_ENCRYPT_INFO, *PCMSG_CONTENT_ENCRYPT_INFO; +# 8930 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY) ( + PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo, + DWORD dwFlags, + void *pvReserved + ); +# 8947 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_KEY_TRANS_ENCRYPT_INFO { + DWORD cbSize; + DWORD dwRecipientIndex; + CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm; + CRYPT_DATA_BLOB EncryptedKey; + DWORD dwFlags; +} CMSG_KEY_TRANS_ENCRYPT_INFO, *PCMSG_KEY_TRANS_ENCRYPT_INFO; +# 8988 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CMSG_EXPORT_KEY_TRANS) ( + PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo, + PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyTransEncodeInfo, + PCMSG_KEY_TRANS_ENCRYPT_INFO pKeyTransEncryptInfo, + DWORD dwFlags, + void *pvReserved + ); +# 9008 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_KEY_AGREE_KEY_ENCRYPT_INFO { + DWORD cbSize; + CRYPT_DATA_BLOB EncryptedKey; +} CMSG_KEY_AGREE_KEY_ENCRYPT_INFO, *PCMSG_KEY_AGREE_KEY_ENCRYPT_INFO; + + + + + + + +typedef struct _CMSG_KEY_AGREE_ENCRYPT_INFO { + DWORD cbSize; + DWORD dwRecipientIndex; + CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm; + CRYPT_DATA_BLOB UserKeyingMaterial; + DWORD dwOriginatorChoice; + union { + + CERT_ID OriginatorCertId; + + CERT_PUBLIC_KEY_INFO OriginatorPublicKeyInfo; + } ; + DWORD cKeyAgreeKeyEncryptInfo; + PCMSG_KEY_AGREE_KEY_ENCRYPT_INFO *rgpKeyAgreeKeyEncryptInfo; + DWORD dwFlags; +} CMSG_KEY_AGREE_ENCRYPT_INFO, *PCMSG_KEY_AGREE_ENCRYPT_INFO; +# 9095 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CMSG_EXPORT_KEY_AGREE) ( + PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo, + PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO pKeyAgreeEncodeInfo, + PCMSG_KEY_AGREE_ENCRYPT_INFO pKeyAgreeEncryptInfo, + DWORD dwFlags, + void *pvReserved + ); +# 9114 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_MAIL_LIST_ENCRYPT_INFO { + DWORD cbSize; + DWORD dwRecipientIndex; + CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm; + CRYPT_DATA_BLOB EncryptedKey; + DWORD dwFlags; +} CMSG_MAIL_LIST_ENCRYPT_INFO, *PCMSG_MAIL_LIST_ENCRYPT_INFO; +# 9156 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CMSG_EXPORT_MAIL_LIST) ( + PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo, + PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO pMailListEncodeInfo, + PCMSG_MAIL_LIST_ENCRYPT_INFO pMailListEncryptInfo, + DWORD dwFlags, + void *pvReserved + ); +# 9185 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CMSG_IMPORT_KEY_TRANS) ( + PCRYPT_ALGORITHM_IDENTIFIER pContentEncryptionAlgorithm, + PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA pKeyTransDecryptPara, + DWORD dwFlags, + void *pvReserved, + HCRYPTKEY *phContentEncryptKey + ); + + + +typedef BOOL (__stdcall *PFN_CMSG_IMPORT_KEY_AGREE) ( + PCRYPT_ALGORITHM_IDENTIFIER pContentEncryptionAlgorithm, + PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA pKeyAgreeDecryptPara, + DWORD dwFlags, + void *pvReserved, + HCRYPTKEY *phContentEncryptKey + ); + + + +typedef BOOL (__stdcall *PFN_CMSG_IMPORT_MAIL_LIST) ( + PCRYPT_ALGORITHM_IDENTIFIER pContentEncryptionAlgorithm, + PCMSG_CTRL_MAIL_LIST_DECRYPT_PARA pMailListDecryptPara, + DWORD dwFlags, + void *pvReserved, + HCRYPTKEY *phContentEncryptKey + ); +# 9223 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CMSG_CNG_CONTENT_DECRYPT_INFO { + DWORD cbSize; + CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm; + PFN_CMSG_ALLOC pfnAlloc; + PFN_CMSG_FREE pfnFree; + + + + + NCRYPT_KEY_HANDLE hNCryptKey; + + BYTE *pbContentEncryptKey; + DWORD cbContentEncryptKey; + + BCRYPT_KEY_HANDLE hCNGContentEncryptKey; + BYTE *pbCNGContentEncryptKeyObject; +} CMSG_CNG_CONTENT_DECRYPT_INFO, *PCMSG_CNG_CONTENT_DECRYPT_INFO; +# 9259 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CMSG_CNG_IMPORT_KEY_TRANS) ( + PCMSG_CNG_CONTENT_DECRYPT_INFO pCNGContentDecryptInfo, + PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA pKeyTransDecryptPara, + DWORD dwFlags, + void *pvReserved + ); +# 9284 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CMSG_CNG_IMPORT_KEY_AGREE) ( + PCMSG_CNG_CONTENT_DECRYPT_INFO pCNGContentDecryptInfo, + PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA pKeyAgreeDecryptPara, + DWORD dwFlags, + void *pvReserved + ); +# 9309 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY) ( + PCMSG_CNG_CONTENT_DECRYPT_INFO pCNGContentDecryptInfo, + DWORD dwFlags, + void *pvReserved + ); +# 9389 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef void *HCERTSTORE; +# 9401 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_CONTEXT { + DWORD dwCertEncodingType; + BYTE *pbCertEncoded; + DWORD cbCertEncoded; + PCERT_INFO pCertInfo; + HCERTSTORE hCertStore; +} CERT_CONTEXT, *PCERT_CONTEXT; +typedef const CERT_CONTEXT *PCCERT_CONTEXT; +# 9420 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRL_CONTEXT { + DWORD dwCertEncodingType; + BYTE *pbCrlEncoded; + DWORD cbCrlEncoded; + PCRL_INFO pCrlInfo; + HCERTSTORE hCertStore; +} CRL_CONTEXT, *PCRL_CONTEXT; +typedef const CRL_CONTEXT *PCCRL_CONTEXT; +# 9439 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CTL_CONTEXT { + DWORD dwMsgAndCertEncodingType; + BYTE *pbCtlEncoded; + DWORD cbCtlEncoded; + PCTL_INFO pCtlInfo; + HCERTSTORE hCertStore; + HCRYPTMSG hCryptMsg; + BYTE *pbCtlContent; + DWORD cbCtlContent; +} CTL_CONTEXT, *PCTL_CONTEXT; +typedef const CTL_CONTEXT *PCCTL_CONTEXT; +# 9600 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef enum CertKeyType : DWORD +{ + KeyTypeOther = 0, + KeyTypeVirtualSmartCard = 1, + KeyTypePhysicalSmartCard = 2, + KeyTypePassport = 3, + KeyTypePassportRemote = 4, + KeyTypePassportSmartCard = 5, + KeyTypeHardware = 6, + KeyTypeSoftware = 7, + KeyTypeSelfSigned = 8, +} CertKeyType; +# 9720 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_KEY_PROV_PARAM { + DWORD dwParam; + BYTE *pbData; + DWORD cbData; + DWORD dwFlags; +} CRYPT_KEY_PROV_PARAM, *PCRYPT_KEY_PROV_PARAM; + +typedef struct _CRYPT_KEY_PROV_INFO { + LPWSTR pwszContainerName; + LPWSTR pwszProvName; + DWORD dwProvType; + DWORD dwFlags; + DWORD cProvParam; + PCRYPT_KEY_PROV_PARAM rgProvParam; + DWORD dwKeySpec; +} CRYPT_KEY_PROV_INFO, *PCRYPT_KEY_PROV_INFO; +# 9760 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_KEY_CONTEXT { + DWORD cbSize; + union { + HCRYPTPROV hCryptProv; + + + NCRYPT_KEY_HANDLE hNCryptKey; + } ; + DWORD dwKeySpec; +} CERT_KEY_CONTEXT, *PCERT_KEY_CONTEXT; + + + + + + + +typedef struct _ROOT_INFO_LUID { + DWORD LowPart; + LONG HighPart; +} ROOT_INFO_LUID, *PROOT_INFO_LUID; + +typedef struct _CRYPT_SMART_CARD_ROOT_INFO { + BYTE rgbCardID [16]; + ROOT_INFO_LUID luid; +} CRYPT_SMART_CARD_ROOT_INFO, *PCRYPT_SMART_CARD_ROOT_INFO; +# 9886 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_SYSTEM_STORE_RELOCATE_PARA { + union { + HKEY hKeyBase; + void *pvBase; + } ; + union { + void *pvSystemStore; + LPCSTR pszSystemStore; + LPCWSTR pwszSystemStore; + } ; +} CERT_SYSTEM_STORE_RELOCATE_PARA, *PCERT_SYSTEM_STORE_RELOCATE_PARA; +# 10303 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_REGISTRY_STORE_CLIENT_GPT_PARA { + HKEY hKeyBase; + LPWSTR pwszRegPath; +} CERT_REGISTRY_STORE_CLIENT_GPT_PARA, *PCERT_REGISTRY_STORE_CLIENT_GPT_PARA; +# 10316 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_REGISTRY_STORE_ROAMING_PARA { + HKEY hKey; + LPWSTR pwszStoreDirectory; +} CERT_REGISTRY_STORE_ROAMING_PARA, *PCERT_REGISTRY_STORE_ROAMING_PARA; +# 10398 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_LDAP_STORE_OPENED_PARA { + void *pvLdapSessionHandle; + + LPCWSTR pwszLdapUrl; +} CERT_LDAP_STORE_OPENED_PARA, *PCERT_LDAP_STORE_OPENED_PARA; +# 10766 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +HCERTSTORE +__stdcall +CertOpenStore( + LPCSTR lpszStoreProvider, + DWORD dwEncodingType, + HCRYPTPROV_LEGACY hCryptProv, + DWORD dwFlags, + const void *pvPara + ); + + + + + + +typedef void *HCERTSTOREPROV; +# 10794 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_STORE_PROV_INFO { + DWORD cbSize; + DWORD cStoreProvFunc; + void **rgpvStoreProvFunc; + HCERTSTOREPROV hStoreProv; + DWORD dwStoreProvFlags; + HCRYPTOIDFUNCADDR hStoreProvFuncAddr2; +} CERT_STORE_PROV_INFO, *PCERT_STORE_PROV_INFO; +# 10810 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CERT_DLL_OPEN_STORE_PROV_FUNC)( + LPCSTR lpszStoreProvider, + DWORD dwEncodingType, + HCRYPTPROV_LEGACY hCryptProv, + DWORD dwFlags, + const void *pvPara, + HCERTSTORE hCertStore, + PCERT_STORE_PROV_INFO pStoreProvInfo + ); +# 10880 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef void (__stdcall *PFN_CERT_STORE_PROV_CLOSE)( + HCERTSTOREPROV hStoreProv, + DWORD dwFlags + ); + + + + + + +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_READ_CERT)( + HCERTSTOREPROV hStoreProv, + PCCERT_CONTEXT pStoreCertContext, + DWORD dwFlags, + PCCERT_CONTEXT *ppProvCertContext + ); +# 10906 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_WRITE_CERT)( + HCERTSTOREPROV hStoreProv, + PCCERT_CONTEXT pCertContext, + DWORD dwFlags + ); + + + + + +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_DELETE_CERT)( + HCERTSTOREPROV hStoreProv, + PCCERT_CONTEXT pCertContext, + DWORD dwFlags + ); +# 10930 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_SET_CERT_PROPERTY)( + HCERTSTOREPROV hStoreProv, + PCCERT_CONTEXT pCertContext, + DWORD dwPropId, + DWORD dwFlags, + const void *pvData + ); + + + + + + +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_READ_CRL)( + HCERTSTOREPROV hStoreProv, + PCCRL_CONTEXT pStoreCrlContext, + DWORD dwFlags, + PCCRL_CONTEXT *ppProvCrlContext + ); +# 10957 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_WRITE_CRL)( + HCERTSTOREPROV hStoreProv, + PCCRL_CONTEXT pCrlContext, + DWORD dwFlags + ); + + + + +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_DELETE_CRL)( + HCERTSTOREPROV hStoreProv, + PCCRL_CONTEXT pCrlContext, + DWORD dwFlags + ); +# 10980 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_SET_CRL_PROPERTY)( + HCERTSTOREPROV hStoreProv, + PCCRL_CONTEXT pCrlContext, + DWORD dwPropId, + DWORD dwFlags, + const void *pvData + ); + + + + + + +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_READ_CTL)( + HCERTSTOREPROV hStoreProv, + PCCTL_CONTEXT pStoreCtlContext, + DWORD dwFlags, + PCCTL_CONTEXT *ppProvCtlContext + ); +# 11007 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_WRITE_CTL)( + HCERTSTOREPROV hStoreProv, + PCCTL_CONTEXT pCtlContext, + DWORD dwFlags + ); + + + + +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_DELETE_CTL)( + HCERTSTOREPROV hStoreProv, + PCCTL_CONTEXT pCtlContext, + DWORD dwFlags + ); +# 11030 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_SET_CTL_PROPERTY)( + HCERTSTOREPROV hStoreProv, + PCCTL_CONTEXT pCtlContext, + DWORD dwPropId, + DWORD dwFlags, + const void *pvData + ); + +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_CONTROL)( + HCERTSTOREPROV hStoreProv, + DWORD dwFlags, + DWORD dwCtrlType, + void const *pvCtrlPara + ); + +typedef struct _CERT_STORE_PROV_FIND_INFO { + DWORD cbSize; + DWORD dwMsgAndCertEncodingType; + DWORD dwFindFlags; + DWORD dwFindType; + const void *pvFindPara; +} CERT_STORE_PROV_FIND_INFO, *PCERT_STORE_PROV_FIND_INFO; +typedef const CERT_STORE_PROV_FIND_INFO CCERT_STORE_PROV_FIND_INFO, +*PCCERT_STORE_PROV_FIND_INFO; + +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_FIND_CERT)( + HCERTSTOREPROV hStoreProv, + PCCERT_STORE_PROV_FIND_INFO pFindInfo, + PCCERT_CONTEXT pPrevCertContext, + DWORD dwFlags, + void **ppvStoreProvFindInfo, + PCCERT_CONTEXT *ppProvCertContext + ); + +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_FREE_FIND_CERT)( + HCERTSTOREPROV hStoreProv, + PCCERT_CONTEXT pCertContext, + void *pvStoreProvFindInfo, + DWORD dwFlags + ); + +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_GET_CERT_PROPERTY)( + HCERTSTOREPROV hStoreProv, + PCCERT_CONTEXT pCertContext, + DWORD dwPropId, + DWORD dwFlags, + void *pvData, + DWORD *pcbData + ); + + +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_FIND_CRL)( + HCERTSTOREPROV hStoreProv, + PCCERT_STORE_PROV_FIND_INFO pFindInfo, + PCCRL_CONTEXT pPrevCrlContext, + DWORD dwFlags, + void **ppvStoreProvFindInfo, + PCCRL_CONTEXT *ppProvCrlContext + ); + +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_FREE_FIND_CRL)( + HCERTSTOREPROV hStoreProv, + PCCRL_CONTEXT pCrlContext, + void *pvStoreProvFindInfo, + DWORD dwFlags + ); + +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_GET_CRL_PROPERTY)( + HCERTSTOREPROV hStoreProv, + PCCRL_CONTEXT pCrlContext, + DWORD dwPropId, + DWORD dwFlags, + void *pvData, + DWORD *pcbData + ); + +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_FIND_CTL)( + HCERTSTOREPROV hStoreProv, + PCCERT_STORE_PROV_FIND_INFO pFindInfo, + PCCTL_CONTEXT pPrevCtlContext, + DWORD dwFlags, + void **ppvStoreProvFindInfo, + PCCTL_CONTEXT *ppProvCtlContext + ); + +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_FREE_FIND_CTL)( + HCERTSTOREPROV hStoreProv, + PCCTL_CONTEXT pCtlContext, + void *pvStoreProvFindInfo, + DWORD dwFlags + ); + +typedef BOOL (__stdcall *PFN_CERT_STORE_PROV_GET_CTL_PROPERTY)( + HCERTSTOREPROV hStoreProv, + PCCTL_CONTEXT pCtlContext, + DWORD dwPropId, + DWORD dwFlags, + void *pvData, + DWORD *pcbData + ); + + + + + +__declspec(dllimport) +HCERTSTORE +__stdcall +CertDuplicateStore( + HCERTSTORE hCertStore + ); +# 11204 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertSaveStore( + HCERTSTORE hCertStore, + DWORD dwEncodingType, + DWORD dwSaveAs, + DWORD dwSaveTo, + void *pvSaveToPara, + DWORD dwFlags + ); +# 11246 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertCloseStore( + HCERTSTORE hCertStore, + DWORD dwFlags + ); +# 11266 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCERT_CONTEXT +__stdcall +CertGetSubjectCertificateFromStore( + HCERTSTORE hCertStore, + DWORD dwCertEncodingType, + PCERT_INFO pCertId + + ); +# 11292 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCERT_CONTEXT +__stdcall +CertEnumCertificatesInStore( + HCERTSTORE hCertStore, + PCCERT_CONTEXT pPrevCertContext + ); +# 11324 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCERT_CONTEXT +__stdcall +CertFindCertificateInStore( + HCERTSTORE hCertStore, + DWORD dwCertEncodingType, + DWORD dwFindFlags, + DWORD dwFindType, + const void *pvFindPara, + PCCERT_CONTEXT pPrevCertContext + ); +# 11685 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCERT_CONTEXT +__stdcall +CertGetIssuerCertificateFromStore( + HCERTSTORE hCertStore, + PCCERT_CONTEXT pSubjectContext, + PCCERT_CONTEXT pPrevIssuerContext, + DWORD *pdwFlags + ); +# 11705 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertVerifySubjectCertificateContext( + PCCERT_CONTEXT pSubject, + PCCERT_CONTEXT pIssuer, + DWORD *pdwFlags + ); + + + + +__declspec(dllimport) +PCCERT_CONTEXT +__stdcall +CertDuplicateCertificateContext( + PCCERT_CONTEXT pCertContext + ); +# 11738 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCERT_CONTEXT +__stdcall +CertCreateCertificateContext( + DWORD dwCertEncodingType, + const BYTE *pbCertEncoded, + DWORD cbCertEncoded + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CertFreeCertificateContext( + PCCERT_CONTEXT pCertContext + ); +# 11901 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertSetCertificateContextProperty( + PCCERT_CONTEXT pCertContext, + DWORD dwPropId, + DWORD dwFlags, + const void *pvData + ); +# 11978 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertGetCertificateContextProperty( + PCCERT_CONTEXT pCertContext, + DWORD dwPropId, + void *pvData, + DWORD *pcbData + ); +# 12002 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +DWORD +__stdcall +CertEnumCertificateContextProperties( + PCCERT_CONTEXT pCertContext, + DWORD dwPropId + ); +# 12032 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CertCreateCTLEntryFromCertificateContextProperties( + PCCERT_CONTEXT pCertContext, + DWORD cOptAttr, + PCRYPT_ATTRIBUTE rgOptAttr, + DWORD dwFlags, + void *pvReserved, + PCTL_ENTRY pCtlEntry, + DWORD *pcbCtlEntry + ); +# 12061 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertSetCertificateContextPropertiesFromCTLEntry( + PCCERT_CONTEXT pCertContext, + PCTL_ENTRY pCtlEntry, + DWORD dwFlags + ); +# 12128 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCRL_CONTEXT +__stdcall +CertGetCRLFromStore( + HCERTSTORE hCertStore, + PCCERT_CONTEXT pIssuerContext, + PCCRL_CONTEXT pPrevCrlContext, + DWORD *pdwFlags + ); +# 12154 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCRL_CONTEXT +__stdcall +CertEnumCRLsInStore( + HCERTSTORE hCertStore, + PCCRL_CONTEXT pPrevCrlContext + ); +# 12185 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCRL_CONTEXT +__stdcall +CertFindCRLInStore( + HCERTSTORE hCertStore, + DWORD dwCertEncodingType, + DWORD dwFindFlags, + DWORD dwFindType, + const void *pvFindPara, + PCCRL_CONTEXT pPrevCrlContext + ); +# 12271 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRL_FIND_ISSUED_FOR_PARA { + PCCERT_CONTEXT pSubjectCert; + PCCERT_CONTEXT pIssuerCert; +} CRL_FIND_ISSUED_FOR_PARA, *PCRL_FIND_ISSUED_FOR_PARA; +# 12289 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCRL_CONTEXT +__stdcall +CertDuplicateCRLContext( + PCCRL_CONTEXT pCrlContext + ); +# 12310 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCRL_CONTEXT +__stdcall +CertCreateCRLContext( + DWORD dwCertEncodingType, + const BYTE *pbCrlEncoded, + DWORD cbCrlEncoded + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CertFreeCRLContext( + PCCRL_CONTEXT pCrlContext + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CertSetCRLContextProperty( + PCCRL_CONTEXT pCrlContext, + DWORD dwPropId, + DWORD dwFlags, + const void *pvData + ); +# 12355 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertGetCRLContextProperty( + PCCRL_CONTEXT pCrlContext, + DWORD dwPropId, + void *pvData, + DWORD *pcbData + ); +# 12375 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +DWORD +__stdcall +CertEnumCRLContextProperties( + PCCRL_CONTEXT pCrlContext, + DWORD dwPropId + ); +# 12396 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertFindCertificateInCRL( + PCCERT_CONTEXT pCert, + PCCRL_CONTEXT pCrlContext, + DWORD dwFlags, + void *pvReserved, + PCRL_ENTRY *ppCrlEntry + ); +# 12419 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertIsValidCRLForCertificate( + PCCERT_CONTEXT pCert, + PCCRL_CONTEXT pCrl, + DWORD dwFlags, + void *pvReserved + ); +# 12487 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CertAddEncodedCertificateToStore( + HCERTSTORE hCertStore, + DWORD dwCertEncodingType, + const BYTE *pbCertEncoded, + DWORD cbCertEncoded, + DWORD dwAddDisposition, + PCCERT_CONTEXT *ppCertContext + ); +# 12557 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CertAddCertificateContextToStore( + HCERTSTORE hCertStore, + PCCERT_CONTEXT pCertContext, + DWORD dwAddDisposition, + PCCERT_CONTEXT *ppStoreContext + ); +# 12611 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CertAddSerializedElementToStore( + HCERTSTORE hCertStore, + const BYTE *pbElement, + DWORD cbElement, + DWORD dwAddDisposition, + DWORD dwFlags, + DWORD dwContextTypeFlags, + DWORD *pdwContextType, + const void **ppvContext + ); +# 12641 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertDeleteCertificateFromStore( + PCCERT_CONTEXT pCertContext + ); +# 12664 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CertAddEncodedCRLToStore( + HCERTSTORE hCertStore, + DWORD dwCertEncodingType, + const BYTE *pbCrlEncoded, + DWORD cbCrlEncoded, + DWORD dwAddDisposition, + PCCRL_CONTEXT *ppCrlContext + ); +# 12697 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CertAddCRLContextToStore( + HCERTSTORE hCertStore, + PCCRL_CONTEXT pCrlContext, + DWORD dwAddDisposition, + PCCRL_CONTEXT *ppStoreContext + ); +# 12720 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertDeleteCRLFromStore( + PCCRL_CONTEXT pCrlContext + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +CertSerializeCertificateStoreElement( + PCCERT_CONTEXT pCertContext, + DWORD dwFlags, + BYTE *pbElement, + DWORD *pcbElement + ); + + + + + +__declspec(dllimport) +BOOL +__stdcall +CertSerializeCRLStoreElement( + PCCRL_CONTEXT pCrlContext, + DWORD dwFlags, + BYTE *pbElement, + DWORD *pcbElement + ); +# 12764 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCTL_CONTEXT +__stdcall +CertDuplicateCTLContext( + PCCTL_CONTEXT pCtlContext + ); +# 12785 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCTL_CONTEXT +__stdcall +CertCreateCTLContext( + DWORD dwMsgAndCertEncodingType, + const BYTE *pbCtlEncoded, + DWORD cbCtlEncoded + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CertFreeCTLContext( + PCCTL_CONTEXT pCtlContext + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CertSetCTLContextProperty( + PCCTL_CONTEXT pCtlContext, + DWORD dwPropId, + DWORD dwFlags, + const void *pvData + ); +# 12830 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertGetCTLContextProperty( + PCCTL_CONTEXT pCtlContext, + DWORD dwPropId, + void *pvData, + DWORD *pcbData + ); + + + + +__declspec(dllimport) +DWORD +__stdcall +CertEnumCTLContextProperties( + PCCTL_CONTEXT pCtlContext, + DWORD dwPropId + ); +# 12867 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCTL_CONTEXT +__stdcall +CertEnumCTLsInStore( + HCERTSTORE hCertStore, + PCCTL_CONTEXT pPrevCtlContext + ); +# 12893 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCTL_ENTRY +__stdcall +CertFindSubjectInCTL( + DWORD dwEncodingType, + DWORD dwSubjectType, + void *pvSubject, + PCCTL_CONTEXT pCtlContext, + DWORD dwFlags + ); + + + + + + + +typedef struct _CTL_ANY_SUBJECT_INFO { + CRYPT_ALGORITHM_IDENTIFIER SubjectAlgorithm; + CRYPT_DATA_BLOB SubjectIdentifier; +} CTL_ANY_SUBJECT_INFO, *PCTL_ANY_SUBJECT_INFO; +# 12938 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCTL_CONTEXT +__stdcall +CertFindCTLInStore( + HCERTSTORE hCertStore, + DWORD dwMsgAndCertEncodingType, + DWORD dwFindFlags, + DWORD dwFindType, + const void *pvFindPara, + PCCTL_CONTEXT pPrevCtlContext + ); +# 12957 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CTL_FIND_USAGE_PARA { + DWORD cbSize; + CTL_USAGE SubjectUsage; + CRYPT_DATA_BLOB ListIdentifier; + PCERT_INFO pSigner; +} CTL_FIND_USAGE_PARA, *PCTL_FIND_USAGE_PARA; + + + + + + + +typedef struct _CTL_FIND_SUBJECT_PARA { + DWORD cbSize; + PCTL_FIND_USAGE_PARA pUsagePara; + DWORD dwSubjectType; + void *pvSubject; +} CTL_FIND_SUBJECT_PARA, *PCTL_FIND_SUBJECT_PARA; +# 13043 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CertAddEncodedCTLToStore( + HCERTSTORE hCertStore, + DWORD dwMsgAndCertEncodingType, + const BYTE *pbCtlEncoded, + DWORD cbCtlEncoded, + DWORD dwAddDisposition, + PCCTL_CONTEXT *ppCtlContext + ); +# 13076 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CertAddCTLContextToStore( + HCERTSTORE hCertStore, + PCCTL_CONTEXT pCtlContext, + DWORD dwAddDisposition, + PCCTL_CONTEXT *ppStoreContext + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +CertSerializeCTLStoreElement( + PCCTL_CONTEXT pCtlContext, + DWORD dwFlags, + BYTE *pbElement, + DWORD *pcbElement + ); +# 13112 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertDeleteCTLFromStore( + PCCTL_CONTEXT pCtlContext + ); + + +__declspec(dllimport) + +BOOL +__stdcall +CertAddCertificateLinkToStore( + HCERTSTORE hCertStore, + PCCERT_CONTEXT pCertContext, + DWORD dwAddDisposition, + PCCERT_CONTEXT *ppStoreContext + ); + +__declspec(dllimport) + +BOOL +__stdcall +CertAddCRLLinkToStore( + HCERTSTORE hCertStore, + PCCRL_CONTEXT pCrlContext, + DWORD dwAddDisposition, + PCCRL_CONTEXT *ppStoreContext + ); + +__declspec(dllimport) + +BOOL +__stdcall +CertAddCTLLinkToStore( + HCERTSTORE hCertStore, + PCCTL_CONTEXT pCtlContext, + DWORD dwAddDisposition, + PCCTL_CONTEXT *ppStoreContext + ); + +__declspec(dllimport) +BOOL +__stdcall +CertAddStoreToCollection( + HCERTSTORE hCollectionStore, + HCERTSTORE hSiblingStore, + DWORD dwUpdateFlags, + DWORD dwPriority + ); + +__declspec(dllimport) +void +__stdcall +CertRemoveStoreFromCollection( + HCERTSTORE hCollectionStore, + HCERTSTORE hSiblingStore + ); + + +__declspec(dllimport) +BOOL +__stdcall +CertControlStore( + HCERTSTORE hCertStore, + DWORD dwFlags, + DWORD dwCtrlType, + void const *pvCtrlPara + ); +# 13308 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertSetStoreProperty( + HCERTSTORE hCertStore, + DWORD dwPropId, + DWORD dwFlags, + const void *pvData + ); +# 13331 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CertGetStoreProperty( + HCERTSTORE hCertStore, + DWORD dwPropId, + void *pvData, + DWORD *pcbData + ); +# 13353 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CERT_CREATE_CONTEXT_SORT_FUNC)( + DWORD cbTotalEncoded, + DWORD cbRemainEncoded, + DWORD cEntry, + void *pvSort + ); + +typedef struct _CERT_CREATE_CONTEXT_PARA { + DWORD cbSize; + PFN_CRYPT_FREE pfnFree; + void *pvFree; + + + + PFN_CERT_CREATE_CONTEXT_SORT_FUNC pfnSort; + void *pvSort; +} CERT_CREATE_CONTEXT_PARA, *PCERT_CREATE_CONTEXT_PARA; +# 13404 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +const void * +__stdcall +CertCreateContext( + DWORD dwContextType, + DWORD dwEncodingType, + const BYTE *pbEncoded, + DWORD cbEncoded, + DWORD dwFlags, + PCERT_CREATE_CONTEXT_PARA pCreatePara + ); +# 13464 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_SYSTEM_STORE_INFO { + DWORD cbSize; +} CERT_SYSTEM_STORE_INFO, *PCERT_SYSTEM_STORE_INFO; +# 13510 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_PHYSICAL_STORE_INFO { + DWORD cbSize; + LPSTR pszOpenStoreProvider; + DWORD dwOpenEncodingType; + DWORD dwOpenFlags; + CRYPT_DATA_BLOB OpenParameters; + DWORD dwFlags; + DWORD dwPriority; +} CERT_PHYSICAL_STORE_INFO, *PCERT_PHYSICAL_STORE_INFO; +# 13562 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertRegisterSystemStore( + const void *pvSystemStore, + DWORD dwFlags, + PCERT_SYSTEM_STORE_INFO pStoreInfo, + void *pvReserved + ); +# 13588 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertRegisterPhysicalStore( + const void *pvSystemStore, + DWORD dwFlags, + LPCWSTR pwszStoreName, + PCERT_PHYSICAL_STORE_INFO pStoreInfo, + void *pvReserved + ); +# 13614 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertUnregisterSystemStore( + const void *pvSystemStore, + DWORD dwFlags + ); +# 13637 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertUnregisterPhysicalStore( + const void *pvSystemStore, + DWORD dwFlags, + LPCWSTR pwszStoreName + ); +# 13669 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CERT_ENUM_SYSTEM_STORE_LOCATION)( + LPCWSTR pwszStoreLocation, + DWORD dwFlags, + void *pvReserved, + void *pvArg + ); + +typedef BOOL (__stdcall *PFN_CERT_ENUM_SYSTEM_STORE)( + const void *pvSystemStore, + DWORD dwFlags, + PCERT_SYSTEM_STORE_INFO pStoreInfo, + void *pvReserved, + void *pvArg + ); + +typedef BOOL (__stdcall *PFN_CERT_ENUM_PHYSICAL_STORE)( + const void *pvSystemStore, + DWORD dwFlags, + LPCWSTR pwszStoreName, + PCERT_PHYSICAL_STORE_INFO pStoreInfo, + void *pvReserved, + void *pvArg + ); +# 13712 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertEnumSystemStoreLocation( + DWORD dwFlags, + void *pvArg, + PFN_CERT_ENUM_SYSTEM_STORE_LOCATION pfnEnum + ); +# 13752 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertEnumSystemStore( + DWORD dwFlags, + void *pvSystemStoreLocationPara, + void *pvArg, + PFN_CERT_ENUM_SYSTEM_STORE pfnEnum + ); +# 13778 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertEnumPhysicalStore( + const void *pvSystemStore, + DWORD dwFlags, + void *pvArg, + PFN_CERT_ENUM_PHYSICAL_STORE pfnEnum + ); +# 13840 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertGetEnhancedKeyUsage( + PCCERT_CONTEXT pCertContext, + DWORD dwFlags, + PCERT_ENHKEY_USAGE pUsage, + DWORD *pcbUsage + ); +# 13859 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertSetEnhancedKeyUsage( + PCCERT_CONTEXT pCertContext, + PCERT_ENHKEY_USAGE pUsage + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +CertAddEnhancedKeyUsageIdentifier( + PCCERT_CONTEXT pCertContext, + LPCSTR pszUsageIdentifier + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CertRemoveEnhancedKeyUsageIdentifier( + PCCERT_CONTEXT pCertContext, + LPCSTR pszUsageIdentifier + ); +# 13905 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CertGetValidUsages( + DWORD cCerts, + PCCERT_CONTEXT *rghCerts, + int *cNumOIDs, + LPSTR *rghOIDs, + DWORD *pcbOIDs); +# 13945 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CryptMsgGetAndVerifySigner( + HCRYPTMSG hCryptMsg, + DWORD cSignerStore, + HCERTSTORE *rghSignerStore, + DWORD dwFlags, + PCCERT_CONTEXT *ppSigner, + DWORD *pdwSignerIndex + ); +# 13977 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptMsgSignCTL( + DWORD dwMsgEncodingType, + BYTE *pbCtlContent, + DWORD cbCtlContent, + PCMSG_SIGNED_ENCODE_INFO pSignInfo, + DWORD dwFlags, + BYTE *pbEncoded, + DWORD *pcbEncoded + ); +# 14006 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptMsgEncodeAndSignCTL( + DWORD dwMsgEncodingType, + PCTL_INFO pCtlInfo, + PCMSG_SIGNED_ENCODE_INFO pSignInfo, + DWORD dwFlags, + BYTE *pbEncoded, + DWORD *pcbEncoded + ); +# 14033 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertFindSubjectInSortedCTL( + PCRYPT_DATA_BLOB pSubjectIdentifier, + PCCTL_CONTEXT pCtlContext, + DWORD dwFlags, + void *pvReserved, + PCRYPT_DER_BLOB pEncodedAttributes + ); +# 14057 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertEnumSubjectInSortedCTL( + PCCTL_CONTEXT pCtlContext, + void **ppvNextSubject, + PCRYPT_DER_BLOB pSubjectIdentifier, + PCRYPT_DER_BLOB pEncodedAttributes + ); +# 14078 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CTL_VERIFY_USAGE_PARA { + DWORD cbSize; + CRYPT_DATA_BLOB ListIdentifier; + DWORD cCtlStore; + HCERTSTORE *rghCtlStore; + DWORD cSignerStore; + HCERTSTORE *rghSignerStore; +} CTL_VERIFY_USAGE_PARA, *PCTL_VERIFY_USAGE_PARA; + +typedef struct _CTL_VERIFY_USAGE_STATUS { + DWORD cbSize; + DWORD dwError; + DWORD dwFlags; + PCCTL_CONTEXT *ppCtl; + DWORD dwCtlEntryIndex; + PCCERT_CONTEXT *ppSigner; + DWORD dwSignerIndex; +} CTL_VERIFY_USAGE_STATUS, *PCTL_VERIFY_USAGE_STATUS; +# 14159 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertVerifyCTLUsage( + DWORD dwEncodingType, + DWORD dwSubjectType, + void *pvSubject, + PCTL_USAGE pSubjectUsage, + DWORD dwFlags, + PCTL_VERIFY_USAGE_PARA pVerifyUsagePara, + PCTL_VERIFY_USAGE_STATUS pVerifyUsageStatus + ); +# 14187 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_REVOCATION_CRL_INFO { + DWORD cbSize; + PCCRL_CONTEXT pBaseCrlContext; + PCCRL_CONTEXT pDeltaCrlContext; + + + + PCRL_ENTRY pCrlEntry; + BOOL fDeltaCrlEntry; +} CERT_REVOCATION_CRL_INFO, *PCERT_REVOCATION_CRL_INFO; +# 14207 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_REVOCATION_CHAIN_PARA + CERT_REVOCATION_CHAIN_PARA, + *PCERT_REVOCATION_CHAIN_PARA; +# 14228 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_REVOCATION_PARA { + DWORD cbSize; + PCCERT_CONTEXT pIssuerCert; + DWORD cCertStore; + HCERTSTORE *rgCertStore; + HCERTSTORE hCrlStore; + LPFILETIME pftTimeToUse; +# 14271 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +} CERT_REVOCATION_PARA, *PCERT_REVOCATION_PARA; +# 14289 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_REVOCATION_STATUS { + DWORD cbSize; + DWORD dwIndex; + DWORD dwError; + DWORD dwReason; +# 14303 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" + BOOL fHasFreshnessTime; + DWORD dwFreshnessTime; +} CERT_REVOCATION_STATUS, *PCERT_REVOCATION_STATUS; +# 14390 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertVerifyRevocation( + DWORD dwEncodingType, + DWORD dwRevType, + DWORD cContext, + PVOID rgpvContext[], + DWORD dwFlags, + PCERT_REVOCATION_PARA pRevPara, + PCERT_REVOCATION_STATUS pRevStatus + ); +# 14473 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +BOOL +__stdcall +CertCompareIntegerBlob( + PCRYPT_INTEGER_BLOB pInt1, + PCRYPT_INTEGER_BLOB pInt2 + ); +# 14488 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertCompareCertificate( + DWORD dwCertEncodingType, + PCERT_INFO pCertId1, + PCERT_INFO pCertId2 + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CertCompareCertificateName( + DWORD dwCertEncodingType, + PCERT_NAME_BLOB pCertName1, + PCERT_NAME_BLOB pCertName2 + ); +# 14535 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertIsRDNAttrsInCertificateName( + DWORD dwCertEncodingType, + DWORD dwFlags, + PCERT_NAME_BLOB pCertName, + PCERT_RDN pRDN + ); +# 14553 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertComparePublicKeyInfo( + DWORD dwCertEncodingType, + PCERT_PUBLIC_KEY_INFO pPublicKey1, + PCERT_PUBLIC_KEY_INFO pPublicKey2 + ); +# 14573 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +DWORD +__stdcall +CertGetPublicKeyLength( + DWORD dwCertEncodingType, + PCERT_PUBLIC_KEY_INFO pPublicKey + ); +# 14596 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CryptVerifyCertificateSignature( + HCRYPTPROV_LEGACY hCryptProv, + DWORD dwCertEncodingType, + const BYTE *pbEncoded, + DWORD cbEncoded, + PCERT_PUBLIC_KEY_INFO pPublicKey + ); +# 14633 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CryptVerifyCertificateSignatureEx( + HCRYPTPROV_LEGACY hCryptProv, + DWORD dwCertEncodingType, + DWORD dwSubjectType, + void *pvSubject, + DWORD dwIssuerType, + void *pvIssuer, + DWORD dwFlags, + void *pvExtra + ); +# 14713 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO { + + CRYPT_DATA_BLOB CertSignHashCNGAlgPropData; + + + CRYPT_DATA_BLOB CertIssuerPubKeyBitLengthPropData; +} CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO, + *PCRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO; + + +typedef struct _CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO { + DWORD cCNGHashAlgid; + PCWSTR *rgpwszCNGHashAlgid; + + + + DWORD dwWeakIndex; +} CRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO, + *PCRYPT_VERIFY_CERT_SIGN_WEAK_HASH_INFO; +# 14755 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertIsStrongHashToSign( + PCCERT_STRONG_SIGN_PARA pStrongSignPara, + LPCWSTR pwszCNGHashAlgid, + PCCERT_CONTEXT pSigningCert + ); +# 14771 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptHashToBeSigned( + HCRYPTPROV_LEGACY hCryptProv, + DWORD dwCertEncodingType, + const BYTE *pbEncoded, + DWORD cbEncoded, + BYTE *pbComputedHash, + DWORD *pcbComputedHash + ); +# 14792 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptHashCertificate( + HCRYPTPROV_LEGACY hCryptProv, + ALG_ID Algid, + DWORD dwFlags, + const BYTE *pbEncoded, + DWORD cbEncoded, + BYTE *pbComputedHash, + DWORD *pcbComputedHash + ); + + + + + + +__declspec(dllimport) + +BOOL +__stdcall +CryptHashCertificate2( + LPCWSTR pwszCNGHashAlgid, + DWORD dwFlags, + void *pvReserved, + const BYTE *pbEncoded, + DWORD cbEncoded, + BYTE *pbComputedHash, + DWORD *pcbComputedHash + ); +# 14837 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptSignCertificate( + + + + HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey, + + DWORD dwKeySpec, + DWORD dwCertEncodingType, + const BYTE *pbEncodedToBeSigned, + DWORD cbEncodedToBeSigned, + PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, + const void *pvHashAuxInfo, + BYTE *pbSignature, + DWORD *pcbSignature + ); +# 14868 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptSignAndEncodeCertificate( + + + + HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey, + + DWORD dwKeySpec, + DWORD dwCertEncodingType, + LPCSTR lpszStructType, + const void *pvStructInfo, + PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, + const void *pvHashAuxInfo, + BYTE *pbEncoded, + DWORD *pcbEncoded + ); +# 14912 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC)( + DWORD dwCertEncodingType, + PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, + void **ppvDecodedSignPara, + LPWSTR *ppwszCNGHashAlgid + ); + + + + +typedef BOOL (__stdcall *PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC)( + NCRYPT_KEY_HANDLE hKey, + DWORD dwCertEncodingType, + PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, + void *pvDecodedSignPara, + LPCWSTR pwszCNGPubKeyAlgid, + LPCWSTR pwszCNGHashAlgid, + BYTE *pbComputedHash, + DWORD cbComputedHash, + BYTE *pbSignature, + DWORD *pcbSignature + ); + + + + + +typedef BOOL (__stdcall *PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC)( + DWORD dwCertEncodingType, + PCERT_PUBLIC_KEY_INFO pPubKeyInfo, + PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, + void *pvDecodedSignPara, + LPCWSTR pwszCNGPubKeyAlgid, + LPCWSTR pwszCNGHashAlgid, + BYTE *pbComputedHash, + DWORD cbComputedHash, + BYTE *pbSignature, + DWORD cbSignature + ); +# 14961 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +LONG +__stdcall +CertVerifyTimeValidity( + LPFILETIME pTimeToVerify, + PCERT_INFO pCertInfo + ); +# 14983 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +LONG +__stdcall +CertVerifyCRLTimeValidity( + LPFILETIME pTimeToVerify, + PCRL_INFO pCrlInfo + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CertVerifyValidityNesting( + PCERT_INFO pSubjectInfo, + PCERT_INFO pIssuerInfo + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CertVerifyCRLRevocation( + DWORD dwCertEncodingType, + PCERT_INFO pCertId, + + DWORD cCrlInfo, + PCRL_INFO rgpCrlInfo[] + ); + + + + + + +__declspec(dllimport) +LPCSTR +__stdcall +CertAlgIdToOID( + DWORD dwAlgId + ); + + + + + + +__declspec(dllimport) +DWORD +__stdcall +CertOIDToAlgId( + LPCSTR pszObjId + ); +# 15056 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCERT_EXTENSION +__stdcall +CertFindExtension( + LPCSTR pszObjId, + DWORD cExtensions, + CERT_EXTENSION rgExtensions[] + ); + + + + + + +__declspec(dllimport) +PCRYPT_ATTRIBUTE +__stdcall +CertFindAttribute( + LPCSTR pszObjId, + DWORD cAttr, + CRYPT_ATTRIBUTE rgAttr[] + ); + + + + + + + +__declspec(dllimport) +PCERT_RDN_ATTR +__stdcall +CertFindRDNAttr( + LPCSTR pszObjId, + PCERT_NAME_INFO pName + ); +# 15101 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertGetIntendedKeyUsage( + DWORD dwCertEncodingType, + PCERT_INFO pCertInfo, + BYTE *pbKeyUsage, + DWORD cbKeyUsage + ); + +typedef void *HCRYPTDEFAULTCONTEXT; +# 15146 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptInstallDefaultContext( + HCRYPTPROV hCryptProv, + DWORD dwDefaultType, + const void *pvDefaultPara, + DWORD dwFlags, + void *pvReserved, + HCRYPTDEFAULTCONTEXT *phDefaultContext + ); +# 15186 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA { + DWORD cOID; + LPSTR *rgpszOID; +} CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA, *PCRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA; +# 15199 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptUninstallDefaultContext( + HCRYPTDEFAULTCONTEXT hDefaultContext, + DWORD dwFlags, + void *pvReserved + ); +# 15215 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptExportPublicKeyInfo( + HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey, + DWORD dwKeySpec, + DWORD dwCertEncodingType, + PCERT_PUBLIC_KEY_INFO pInfo, + DWORD *pcbInfo + ); +# 15250 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptExportPublicKeyInfoEx( + HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey, + DWORD dwKeySpec, + DWORD dwCertEncodingType, + LPSTR pszPublicKeyObjId, + DWORD dwFlags, + void *pvAuxInfo, + PCERT_PUBLIC_KEY_INFO pInfo, + DWORD *pcbInfo + ); +# 15273 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC) ( + NCRYPT_KEY_HANDLE hNCryptKey, + DWORD dwCertEncodingType, + LPSTR pszPublicKeyObjId, + DWORD dwFlags, + void *pvAuxInfo, + PCERT_PUBLIC_KEY_INFO pInfo, + DWORD *pcbInfo + ); +# 15305 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptExportPublicKeyInfoFromBCryptKeyHandle( + BCRYPT_KEY_HANDLE hBCryptKey, + DWORD dwCertEncodingType, + LPSTR pszPublicKeyObjId, + DWORD dwFlags, + void *pvAuxInfo, + PCERT_PUBLIC_KEY_INFO pInfo, + DWORD *pcbInfo + ); +# 15325 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_FROM_BCRYPT_HANDLE_FUNC) ( + BCRYPT_KEY_HANDLE hBCryptKey, + DWORD dwCertEncodingType, + LPSTR pszPublicKeyObjId, + DWORD dwFlags, + void *pvAuxInfo, + PCERT_PUBLIC_KEY_INFO pInfo, + DWORD *pcbInfo + ); +# 15344 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptImportPublicKeyInfo( + HCRYPTPROV hCryptProv, + DWORD dwCertEncodingType, + PCERT_PUBLIC_KEY_INFO pInfo, + HCRYPTKEY *phKey + ); +# 15370 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptImportPublicKeyInfoEx( + HCRYPTPROV hCryptProv, + DWORD dwCertEncodingType, + PCERT_PUBLIC_KEY_INFO pInfo, + ALG_ID aiKeyAlg, + DWORD dwFlags, + void *pvAuxInfo, + HCRYPTKEY *phKey + ); +# 15400 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptImportPublicKeyInfoEx2( + DWORD dwCertEncodingType, + PCERT_PUBLIC_KEY_INFO pInfo, + DWORD dwFlags, + void *pvAuxInfo, + BCRYPT_KEY_HANDLE *phKey + ); + + + + + + +typedef BOOL (__stdcall *PFN_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC) ( + DWORD dwCertEncodingType, + PCERT_PUBLIC_KEY_INFO pInfo, + DWORD dwFlags, + void *pvAuxInfo, + BCRYPT_KEY_HANDLE *phKey + ); +# 15510 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptAcquireCertificatePrivateKey( + PCCERT_CONTEXT pCert, + DWORD dwFlags, + void *pvParameters, + HCRYPTPROV_OR_NCRYPT_KEY_HANDLE *phCryptProvOrNCryptKey, + DWORD *pdwKeySpec, + BOOL *pfCallerFreeProvOrNCryptKey + ); +# 15564 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptFindCertificateKeyProvInfo( + PCCERT_CONTEXT pCert, + DWORD dwFlags, + void *pvReserved + ); +# 15592 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_IMPORT_PRIV_KEY_FUNC) ( + HCRYPTPROV hCryptProv, + CRYPT_PRIVATE_KEY_INFO* pPrivateKeyInfo, + DWORD dwFlags, + void* pvAuxInfo + ); +# 15619 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptImportPKCS8( + CRYPT_PKCS8_IMPORT_PARAMS sPrivateKeyAndParams, + DWORD dwFlags, + HCRYPTPROV *phCryptProv, + void* pvAuxInfo + ); + + + + +typedef BOOL (__stdcall *PFN_EXPORT_PRIV_KEY_FUNC) ( + HCRYPTPROV hCryptProv, + DWORD dwKeySpec, + LPSTR pszPrivateKeyObjId, + DWORD dwFlags, + void* pvAuxInfo, + CRYPT_PRIVATE_KEY_INFO* pPrivateKeyInfo, + DWORD* pcbPrivateKeyInfo + ); +# 15650 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptExportPKCS8( + HCRYPTPROV hCryptProv, + DWORD dwKeySpec, + LPSTR pszPrivateKeyObjId, + DWORD dwFlags, + void* pvAuxInfo, + BYTE* pbPrivateKeyBlob, + DWORD *pcbPrivateKeyBlob + ); +# 15691 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptExportPKCS8Ex( + CRYPT_PKCS8_EXPORT_PARAMS* psExportParams, + DWORD dwFlags, + void* pvAuxInfo, + BYTE* pbPrivateKeyBlob, + DWORD* pcbPrivateKeyBlob + ); +# 15713 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptHashPublicKeyInfo( + HCRYPTPROV_LEGACY hCryptProv, + ALG_ID Algid, + DWORD dwFlags, + DWORD dwCertEncodingType, + PCERT_PUBLIC_KEY_INFO pInfo, + BYTE *pbComputedHash, + DWORD *pcbComputedHash + ); +# 15737 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +DWORD +__stdcall +CertRDNValueToStrA( + DWORD dwValueType, + PCERT_RDN_VALUE_BLOB pValue, + LPSTR psz, + DWORD csz + ); +# 15757 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +DWORD +__stdcall +CertRDNValueToStrW( + DWORD dwValueType, + PCERT_RDN_VALUE_BLOB pValue, + LPWSTR psz, + DWORD csz + ); +# 15869 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +DWORD +__stdcall +CertNameToStrA( + DWORD dwCertEncodingType, + PCERT_NAME_BLOB pName, + DWORD dwStrType, + LPSTR psz, + DWORD csz + ); +__declspec(dllimport) +DWORD +__stdcall +CertNameToStrW( + DWORD dwCertEncodingType, + PCERT_NAME_BLOB pName, + DWORD dwStrType, + LPWSTR psz, + DWORD csz + ); +# 16034 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertStrToNameA( + DWORD dwCertEncodingType, + LPCSTR pszX500, + DWORD dwStrType, + void *pvReserved, + BYTE *pbEncoded, + DWORD *pcbEncoded, + LPCSTR *ppszError + ); + + +__declspec(dllimport) +BOOL +__stdcall +CertStrToNameW( + DWORD dwCertEncodingType, + LPCWSTR pszX500, + DWORD dwStrType, + void *pvReserved, + BYTE *pbEncoded, + DWORD *pcbEncoded, + LPCWSTR *ppszError + ); +# 16159 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +DWORD +__stdcall +CertGetNameStringA( + PCCERT_CONTEXT pCertContext, + DWORD dwType, + DWORD dwFlags, + void *pvTypePara, + LPSTR pszNameString, + DWORD cchNameString + ); + + +__declspec(dllimport) +DWORD +__stdcall +CertGetNameStringW( + PCCERT_CONTEXT pCertContext, + DWORD dwType, + DWORD dwFlags, + void *pvTypePara, + LPWSTR pszNameString, + DWORD cchNameString + ); +# 16267 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef PCCERT_CONTEXT (__stdcall *PFN_CRYPT_GET_SIGNER_CERTIFICATE)( + void *pvGetArg, + DWORD dwCertEncodingType, + PCERT_INFO pSignerId, + + HCERTSTORE hMsgCertStore + ); +# 16326 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_SIGN_MESSAGE_PARA { + DWORD cbSize; + DWORD dwMsgEncodingType; + PCCERT_CONTEXT pSigningCert; + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; + void *pvHashAuxInfo; + DWORD cMsgCert; + PCCERT_CONTEXT *rgpMsgCert; + DWORD cMsgCrl; + PCCRL_CONTEXT *rgpMsgCrl; + DWORD cAuthAttr; + PCRYPT_ATTRIBUTE rgAuthAttr; + DWORD cUnauthAttr; + PCRYPT_ATTRIBUTE rgUnauthAttr; + DWORD dwFlags; + DWORD dwInnerContentType; + + + + + + +} CRYPT_SIGN_MESSAGE_PARA, *PCRYPT_SIGN_MESSAGE_PARA; +# 16378 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_VERIFY_MESSAGE_PARA { + DWORD cbSize; + DWORD dwMsgAndCertEncodingType; + HCRYPTPROV_LEGACY hCryptProv; + PFN_CRYPT_GET_SIGNER_CERTIFICATE pfnGetSignerCertificate; + void *pvGetArg; +# 16397 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +} CRYPT_VERIFY_MESSAGE_PARA, *PCRYPT_VERIFY_MESSAGE_PARA; +# 16438 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_ENCRYPT_MESSAGE_PARA { + DWORD cbSize; + DWORD dwMsgEncodingType; + HCRYPTPROV_LEGACY hCryptProv; + CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm; + void *pvEncryptionAuxInfo; + DWORD dwFlags; + DWORD dwInnerContentType; +} CRYPT_ENCRYPT_MESSAGE_PARA, *PCRYPT_ENCRYPT_MESSAGE_PARA; +# 16472 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_DECRYPT_MESSAGE_PARA { + DWORD cbSize; + DWORD dwMsgAndCertEncodingType; + DWORD cCertStore; + HCERTSTORE *rghCertStore; +# 16486 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +} CRYPT_DECRYPT_MESSAGE_PARA, *PCRYPT_DECRYPT_MESSAGE_PARA; +# 16499 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_HASH_MESSAGE_PARA { + DWORD cbSize; + DWORD dwMsgEncodingType; + HCRYPTPROV_LEGACY hCryptProv; + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; + void *pvHashAuxInfo; +} CRYPT_HASH_MESSAGE_PARA, *PCRYPT_HASH_MESSAGE_PARA; +# 16519 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_KEY_SIGN_MESSAGE_PARA { + DWORD cbSize; + DWORD dwMsgAndCertEncodingType; + + + union { + HCRYPTPROV hCryptProv; + NCRYPT_KEY_HANDLE hNCryptKey; + } ; + + + DWORD dwKeySpec; + + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; + void *pvHashAuxInfo; + + CRYPT_ALGORITHM_IDENTIFIER PubKeyAlgorithm; +} CRYPT_KEY_SIGN_MESSAGE_PARA, *PCRYPT_KEY_SIGN_MESSAGE_PARA; +# 16549 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_KEY_VERIFY_MESSAGE_PARA { + DWORD cbSize; + DWORD dwMsgEncodingType; + HCRYPTPROV_LEGACY hCryptProv; +} CRYPT_KEY_VERIFY_MESSAGE_PARA, *PCRYPT_KEY_VERIFY_MESSAGE_PARA; +# 16567 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptSignMessage( + PCRYPT_SIGN_MESSAGE_PARA pSignPara, + BOOL fDetachedSignature, + DWORD cToBeSigned, + const BYTE *rgpbToBeSigned[], + DWORD rgcbToBeSigned[], + BYTE *pbSignedBlob, + DWORD *pcbSignedBlob + ); +# 16616 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptVerifyMessageSignature( + PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, + DWORD dwSignerIndex, + const BYTE *pbSignedBlob, + DWORD cbSignedBlob, + BYTE *pbDecoded, + DWORD *pcbDecoded, + PCCERT_CONTEXT *ppSignerCert + ); + + + + + +__declspec(dllimport) +LONG +__stdcall +CryptGetMessageSignerCount( + DWORD dwMsgEncodingType, + const BYTE *pbSignedBlob, + DWORD cbSignedBlob + ); + + + + + +__declspec(dllimport) +HCERTSTORE +__stdcall +CryptGetMessageCertificates( + DWORD dwMsgAndCertEncodingType, + HCRYPTPROV_LEGACY hCryptProv, + DWORD dwFlags, + const BYTE *pbSignedBlob, + DWORD cbSignedBlob + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CryptVerifyDetachedMessageSignature( + PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, + DWORD dwSignerIndex, + const BYTE *pbDetachedSignBlob, + DWORD cbDetachedSignBlob, + DWORD cToBeSigned, + const BYTE *rgpbToBeSigned[], + DWORD rgcbToBeSigned[], + PCCERT_CONTEXT *ppSignerCert + ); + + + + +__declspec(dllimport) +BOOL +__stdcall +CryptEncryptMessage( + PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara, + DWORD cRecipientCert, + PCCERT_CONTEXT rgpRecipientCert[], + const BYTE *pbToBeEncrypted, + DWORD cbToBeEncrypted, + BYTE *pbEncryptedBlob, + DWORD *pcbEncryptedBlob + ); +# 16706 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptDecryptMessage( + PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara, + const BYTE *pbEncryptedBlob, + DWORD cbEncryptedBlob, + BYTE *pbDecrypted, + DWORD *pcbDecrypted, + PCCERT_CONTEXT *ppXchgCert + ); +# 16725 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptSignAndEncryptMessage( + PCRYPT_SIGN_MESSAGE_PARA pSignPara, + PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara, + DWORD cRecipientCert, + PCCERT_CONTEXT rgpRecipientCert[], + const BYTE *pbToBeSignedAndEncrypted, + DWORD cbToBeSignedAndEncrypted, + BYTE *pbSignedAndEncryptedBlob, + DWORD *pcbSignedAndEncryptedBlob + ); +# 16766 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptDecryptAndVerifyMessageSignature( + PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara, + PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, + DWORD dwSignerIndex, + const BYTE *pbEncryptedBlob, + DWORD cbEncryptedBlob, + BYTE *pbDecrypted, + DWORD *pcbDecrypted, + PCCERT_CONTEXT *ppXchgCert, + PCCERT_CONTEXT *ppSignerCert + ); +# 16813 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptDecodeMessage( + DWORD dwMsgTypeFlags, + PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara, + PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, + DWORD dwSignerIndex, + const BYTE *pbEncodedBlob, + DWORD cbEncodedBlob, + DWORD dwPrevInnerContentType, + DWORD *pdwMsgType, + DWORD *pdwInnerContentType, + BYTE *pbDecoded, + DWORD *pcbDecoded, + PCCERT_CONTEXT *ppXchgCert, + PCCERT_CONTEXT *ppSignerCert + ); +# 16842 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptHashMessage( + PCRYPT_HASH_MESSAGE_PARA pHashPara, + BOOL fDetachedHash, + DWORD cToBeHashed, + const BYTE *rgpbToBeHashed[], + DWORD rgcbToBeHashed[], + BYTE *pbHashedBlob, + DWORD *pcbHashedBlob, + BYTE *pbComputedHash, + DWORD *pcbComputedHash + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CryptVerifyMessageHash( + PCRYPT_HASH_MESSAGE_PARA pHashPara, + BYTE *pbHashedBlob, + DWORD cbHashedBlob, + BYTE *pbToBeHashed, + DWORD *pcbToBeHashed, + BYTE *pbComputedHash, + DWORD *pcbComputedHash + ); +# 16884 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptVerifyDetachedMessageHash( + PCRYPT_HASH_MESSAGE_PARA pHashPara, + BYTE *pbDetachedHashBlob, + DWORD cbDetachedHashBlob, + DWORD cToBeHashed, + const BYTE *rgpbToBeHashed[], + DWORD rgcbToBeHashed[], + BYTE *pbComputedHash, + DWORD *pcbComputedHash + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CryptSignMessageWithKey( + PCRYPT_KEY_SIGN_MESSAGE_PARA pSignPara, + const BYTE *pbToBeSigned, + DWORD cbToBeSigned, + BYTE *pbSignedBlob, + DWORD *pcbSignedBlob + ); +# 16928 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptVerifyMessageSignatureWithKey( + PCRYPT_KEY_VERIFY_MESSAGE_PARA pVerifyPara, + PCERT_PUBLIC_KEY_INFO pPublicKeyInfo, + const BYTE *pbSignedBlob, + DWORD cbSignedBlob, + BYTE *pbDecoded, + DWORD *pcbDecoded + ); +# 16967 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +HCERTSTORE +__stdcall +CertOpenSystemStoreA( + HCRYPTPROV_LEGACY hProv, + LPCSTR szSubsystemProtocol + ); +__declspec(dllimport) +HCERTSTORE +__stdcall +CertOpenSystemStoreW( + HCRYPTPROV_LEGACY hProv, + LPCWSTR szSubsystemProtocol + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CertAddEncodedCertificateToSystemStoreA( + LPCSTR szCertStoreName, + const BYTE * pbCertEncoded, + DWORD cbCertEncoded + ); +__declspec(dllimport) +BOOL +__stdcall +CertAddEncodedCertificateToSystemStoreW( + LPCWSTR szCertStoreName, + const BYTE * pbCertEncoded, + DWORD cbCertEncoded + ); +# 17026 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_CHAIN { + DWORD cCerts; + PCERT_BLOB certs; + + CRYPT_KEY_PROV_INFO keyLocatorInfo; +} CERT_CHAIN, *PCERT_CHAIN; + + + +HRESULT +__stdcall +FindCertsByIssuer( + PCERT_CHAIN pCertChains, + DWORD *pcbCertChains, + DWORD *pcCertChains, + BYTE* pbEncodedIssuerName, + DWORD cbEncodedIssuerName, + LPCWSTR pwszPurpose, + DWORD dwKeySpec + + ); +# 17184 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptQueryObject( + DWORD dwObjectType, + const void *pvObject, + DWORD dwExpectedContentTypeFlags, + DWORD dwExpectedFormatTypeFlags, + DWORD dwFlags, + DWORD *pdwMsgAndCertEncodingType, + DWORD *pdwContentType, + DWORD *pdwFormatType, + HCERTSTORE *phCertStore, + HCRYPTMSG *phMsg, + const void **ppvContext + ); +# 17371 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +LPVOID +__stdcall +CryptMemAlloc ( + ULONG cbSize + ); + +__declspec(dllimport) +LPVOID +__stdcall +CryptMemRealloc ( + LPVOID pv, + ULONG cbSize + ); + +__declspec(dllimport) +void +__stdcall +CryptMemFree ( + LPVOID pv + ); +# 17403 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef HANDLE HCRYPTASYNC, *PHCRYPTASYNC; + +typedef void (__stdcall *PFN_CRYPT_ASYNC_PARAM_FREE_FUNC) ( + LPSTR pszParamOid, + LPVOID pvParam + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptCreateAsyncHandle ( + DWORD dwFlags, + PHCRYPTASYNC phAsync + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptSetAsyncParam ( + HCRYPTASYNC hAsync, + LPSTR pszParamOid, + LPVOID pvParam, + PFN_CRYPT_ASYNC_PARAM_FREE_FUNC pfnFree + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptGetAsyncParam ( + HCRYPTASYNC hAsync, + LPSTR pszParamOid, + LPVOID* ppvParam, + PFN_CRYPT_ASYNC_PARAM_FREE_FUNC* ppfnFree + ); + +__declspec(dllimport) +BOOL +__stdcall +CryptCloseAsyncHandle ( + HCRYPTASYNC hAsync + ); +# 17465 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_BLOB_ARRAY { + DWORD cBlob; + PCRYPT_DATA_BLOB rgBlob; +} CRYPT_BLOB_ARRAY, *PCRYPT_BLOB_ARRAY; + +typedef struct _CRYPT_CREDENTIALS { + DWORD cbSize; + LPCSTR pszCredentialsOid; + LPVOID pvCredentials; +} CRYPT_CREDENTIALS, *PCRYPT_CREDENTIALS; +# 17485 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_PASSWORD_CREDENTIALSA { + DWORD cbSize; + LPSTR pszUsername; + LPSTR pszPassword; +} CRYPT_PASSWORD_CREDENTIALSA, *PCRYPT_PASSWORD_CREDENTIALSA; +typedef struct _CRYPT_PASSWORD_CREDENTIALSW { + DWORD cbSize; + LPWSTR pszUsername; + LPWSTR pszPassword; +} CRYPT_PASSWORD_CREDENTIALSW, *PCRYPT_PASSWORD_CREDENTIALSW; + +typedef CRYPT_PASSWORD_CREDENTIALSW CRYPT_PASSWORD_CREDENTIALS; +typedef PCRYPT_PASSWORD_CREDENTIALSW PCRYPT_PASSWORD_CREDENTIALS; +# 17514 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef void (__stdcall *PFN_FREE_ENCODED_OBJECT_FUNC) ( + LPCSTR pszObjectOid, + PCRYPT_BLOB_ARRAY pObject, + LPVOID pvFreeContext + ); +# 17718 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPTNET_URL_CACHE_PRE_FETCH_INFO { + DWORD cbSize; + DWORD dwObjectType; + + + + + + + + DWORD dwError; + DWORD dwReserved; + + FILETIME ThisUpdateTime; + FILETIME NextUpdateTime; + FILETIME PublishTime; +} CRYPTNET_URL_CACHE_PRE_FETCH_INFO, *PCRYPTNET_URL_CACHE_PRE_FETCH_INFO; +# 17748 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPTNET_URL_CACHE_FLUSH_INFO { + DWORD cbSize; + + + + + DWORD dwExemptSeconds; + + + + + FILETIME ExpireTime; +} CRYPTNET_URL_CACHE_FLUSH_INFO, *PCRYPTNET_URL_CACHE_FLUSH_INFO; +# 17769 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPTNET_URL_CACHE_RESPONSE_INFO { + DWORD cbSize; + WORD wResponseType; + WORD wResponseFlags; + + + FILETIME LastModifiedTime; + DWORD dwMaxAge; + LPCWSTR pwszETag; + DWORD dwProxyId; +} CRYPTNET_URL_CACHE_RESPONSE_INFO, *PCRYPTNET_URL_CACHE_RESPONSE_INFO; +# 17796 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_RETRIEVE_AUX_INFO { + DWORD cbSize; + FILETIME *pLastSyncTime; + + + DWORD dwMaxUrlRetrievalByteCount; + + + + + + PCRYPTNET_URL_CACHE_PRE_FETCH_INFO pPreFetchInfo; + + + + + + PCRYPTNET_URL_CACHE_FLUSH_INFO pFlushInfo; + + + + + + PCRYPTNET_URL_CACHE_RESPONSE_INFO *ppResponseInfo; + + + + LPWSTR pwszCacheFileNamePrefix; + + + + + + LPFILETIME pftCacheResync; + + + + + + BOOL fProxyCacheRetrieval; +# 17845 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" + DWORD dwHttpStatusCode; + + + + + + LPWSTR *ppwszErrorResponseHeaders; + + + + + PCRYPT_DATA_BLOB *ppErrorContentBlob; +} CRYPT_RETRIEVE_AUX_INFO, *PCRYPT_RETRIEVE_AUX_INFO; +# 17868 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CryptRetrieveObjectByUrlA ( + LPCSTR pszUrl, + LPCSTR pszObjectOid, + DWORD dwRetrievalFlags, + DWORD dwTimeout, + LPVOID* ppvObject, + HCRYPTASYNC hAsyncRetrieve, + PCRYPT_CREDENTIALS pCredentials, + LPVOID pvVerify, + PCRYPT_RETRIEVE_AUX_INFO pAuxInfo + ); +__declspec(dllimport) + +BOOL +__stdcall +CryptRetrieveObjectByUrlW ( + LPCWSTR pszUrl, + LPCSTR pszObjectOid, + DWORD dwRetrievalFlags, + DWORD dwTimeout, + LPVOID* ppvObject, + HCRYPTASYNC hAsyncRetrieve, + PCRYPT_CREDENTIALS pCredentials, + LPVOID pvVerify, + PCRYPT_RETRIEVE_AUX_INFO pAuxInfo + ); +# 17915 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CRYPT_CANCEL_RETRIEVAL)( + DWORD dwFlags, + void *pvArg + ); +# 17928 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptInstallCancelRetrieval( + PFN_CRYPT_CANCEL_RETRIEVAL pfnCancel, + const void *pvArg, + DWORD dwFlags, + void *pvReserved +); + + +__declspec(dllimport) +BOOL +__stdcall +CryptUninstallCancelRetrieval( + DWORD dwFlags, + void *pvReserved + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CryptCancelAsyncRetrieval ( + HCRYPTASYNC hAsyncRetrieval + ); +# 17971 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef void (__stdcall *PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC) ( + LPVOID pvCompletion, + DWORD dwCompletionCode, + LPCSTR pszUrl, + LPSTR pszObjectOid, + LPVOID pvObject + ); + +typedef struct _CRYPT_ASYNC_RETRIEVAL_COMPLETION { + PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC pfnCompletion; + LPVOID pvCompletion; +} CRYPT_ASYNC_RETRIEVAL_COMPLETION, *PCRYPT_ASYNC_RETRIEVAL_COMPLETION; +# 17991 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CANCEL_ASYNC_RETRIEVAL_FUNC) ( + HCRYPTASYNC hAsyncRetrieve + ); +# 18009 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_URL_ARRAY { + DWORD cUrl; + LPWSTR* rgwszUrl; +} CRYPT_URL_ARRAY, *PCRYPT_URL_ARRAY; + +typedef struct _CRYPT_URL_INFO { + DWORD cbSize; + + + DWORD dwSyncDeltaTime; + + + + + DWORD cGroup; + DWORD *rgcGroupEntry; +} CRYPT_URL_INFO, *PCRYPT_URL_INFO; + +__declspec(dllimport) +BOOL +__stdcall +CryptGetObjectUrl ( + LPCSTR pszUrlOid, + LPVOID pvPara, + DWORD dwFlags, + PCRYPT_URL_ARRAY pUrlArray, + DWORD* pcbUrlArray, + PCRYPT_URL_INFO pUrlInfo, + DWORD* pcbUrlInfo, + LPVOID pvReserved + ); +# 18163 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_CRL_CONTEXT_PAIR { + PCCERT_CONTEXT pCertContext; + PCCRL_CONTEXT pCrlContext; +} CERT_CRL_CONTEXT_PAIR, *PCERT_CRL_CONTEXT_PAIR; +typedef const CERT_CRL_CONTEXT_PAIR *PCCERT_CRL_CONTEXT_PAIR; +# 18186 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO { + DWORD cbSize; + + + + int iDeltaCrlIndicator; + + + + LPFILETIME pftCacheResync; + + + LPFILETIME pLastSyncTime; + + + + + LPFILETIME pMaxAgeTime; + + + + PCERT_REVOCATION_CHAIN_PARA pChainPara; + + + + PCRYPT_INTEGER_BLOB pDeltaCrlIndicator; + +} CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO, + *PCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO; + +__declspec(dllimport) + +BOOL +__stdcall +CryptGetTimeValidObject ( + LPCSTR pszTimeValidOid, + LPVOID pvPara, + PCCERT_CONTEXT pIssuer, + LPFILETIME pftValidFor, + DWORD dwFlags, + DWORD dwTimeout, + LPVOID* ppvObject, + PCRYPT_CREDENTIALS pCredentials, + PCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO pExtraInfo + ); +# 18267 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptFlushTimeValidObject ( + LPCSTR pszFlushTimeValidOid, + LPVOID pvPara, + PCCERT_CONTEXT pIssuer, + DWORD dwFlags, + LPVOID pvReserved + ); +# 18360 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCERT_CONTEXT +__stdcall +CertCreateSelfSignCertificate( + HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey, + PCERT_NAME_BLOB pSubjectIssuerBlob, + DWORD dwFlags, + PCRYPT_KEY_PROV_INFO pKeyProvInfo, + PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, + PSYSTEMTIME pStartTime, + PSYSTEMTIME pEndTime, + PCERT_EXTENSIONS pExtensions + ); +# 18412 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptGetKeyIdentifierProperty( + const CRYPT_HASH_BLOB *pKeyIdentifier, + DWORD dwPropId, + DWORD dwFlags, + LPCWSTR pwszComputerName, + void *pvReserved, + void *pvData, + DWORD *pcbData + ); +# 18453 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptSetKeyIdentifierProperty( + const CRYPT_HASH_BLOB *pKeyIdentifier, + DWORD dwPropId, + DWORD dwFlags, + LPCWSTR pwszComputerName, + void *pvReserved, + const void *pvData + ); +# 18480 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CRYPT_ENUM_KEYID_PROP)( + const CRYPT_HASH_BLOB *pKeyIdentifier, + DWORD dwFlags, + void *pvReserved, + void *pvArg, + DWORD cProp, + DWORD *rgdwPropId, + void **rgpvData, + DWORD *rgcbData + ); +# 18505 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptEnumKeyIdentifierProperties( + const CRYPT_HASH_BLOB *pKeyIdentifier, + DWORD dwPropId, + DWORD dwFlags, + LPCWSTR pwszComputerName, + void *pvReserved, + void *pvArg, + PFN_CRYPT_ENUM_KEYID_PROP pfnEnum + ); +# 18529 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptCreateKeyIdentifierFromCSP( + DWORD dwCertEncodingType, + LPCSTR pszPubKeyOID, + const PUBLICKEYSTRUC *pPubKeyStruc, + DWORD cbPubKeyStruc, + DWORD dwFlags, + void *pvReserved, + BYTE *pbHash, + DWORD *pcbHash + ); +# 19507 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef HANDLE HCERTCHAINENGINE; +# 19594 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_CHAIN_ENGINE_CONFIG { + + DWORD cbSize; + HCERTSTORE hRestrictedRoot; + HCERTSTORE hRestrictedTrust; + HCERTSTORE hRestrictedOther; + DWORD cAdditionalStore; + HCERTSTORE* rghAdditionalStore; + DWORD dwFlags; + DWORD dwUrlRetrievalTimeout; + DWORD MaximumCachedCertificates; + DWORD CycleDetectionModulus; + + + HCERTSTORE hExclusiveRoot; + HCERTSTORE hExclusiveTrustedPeople; + + + + DWORD dwExclusiveFlags; + + +} CERT_CHAIN_ENGINE_CONFIG, *PCERT_CHAIN_ENGINE_CONFIG; +# 19628 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CertCreateCertificateChainEngine ( + PCERT_CHAIN_ENGINE_CONFIG pConfig, + HCERTCHAINENGINE* phChainEngine + ); + + + + + +__declspec(dllimport) +void +__stdcall +CertFreeCertificateChainEngine ( + HCERTCHAINENGINE hChainEngine + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CertResyncCertificateChainEngine ( + HCERTCHAINENGINE hChainEngine + ); +# 19674 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_TRUST_STATUS { + + DWORD dwErrorStatus; + DWORD dwInfoStatus; + +} CERT_TRUST_STATUS, *PCERT_TRUST_STATUS; +# 19783 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_REVOCATION_INFO { + + DWORD cbSize; + DWORD dwRevocationResult; + LPCSTR pszRevocationOid; + LPVOID pvOidSpecificInfo; + + + + BOOL fHasFreshnessTime; + DWORD dwFreshnessTime; + + + PCERT_REVOCATION_CRL_INFO pCrlInfo; + +} CERT_REVOCATION_INFO, *PCERT_REVOCATION_INFO; + + + + + +typedef struct _CERT_TRUST_LIST_INFO { + + DWORD cbSize; + PCTL_ENTRY pCtlEntry; + PCCTL_CONTEXT pCtlContext; + +} CERT_TRUST_LIST_INFO, *PCERT_TRUST_LIST_INFO; + + + + + +typedef struct _CERT_CHAIN_ELEMENT { + + DWORD cbSize; + PCCERT_CONTEXT pCertContext; + CERT_TRUST_STATUS TrustStatus; + PCERT_REVOCATION_INFO pRevocationInfo; + + PCERT_ENHKEY_USAGE pIssuanceUsage; + PCERT_ENHKEY_USAGE pApplicationUsage; + + LPCWSTR pwszExtendedErrorInfo; +} CERT_CHAIN_ELEMENT, *PCERT_CHAIN_ELEMENT; +typedef const CERT_CHAIN_ELEMENT* PCCERT_CHAIN_ELEMENT; +# 19839 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_SIMPLE_CHAIN { + + DWORD cbSize; + CERT_TRUST_STATUS TrustStatus; + DWORD cElement; + PCERT_CHAIN_ELEMENT* rgpElement; + PCERT_TRUST_LIST_INFO pTrustListInfo; + + + + + + + + BOOL fHasRevocationFreshnessTime; + DWORD dwRevocationFreshnessTime; + +} CERT_SIMPLE_CHAIN, *PCERT_SIMPLE_CHAIN; +typedef const CERT_SIMPLE_CHAIN* PCCERT_SIMPLE_CHAIN; +# 19869 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_CHAIN_CONTEXT CERT_CHAIN_CONTEXT, *PCERT_CHAIN_CONTEXT; +typedef const CERT_CHAIN_CONTEXT *PCCERT_CHAIN_CONTEXT; + +struct _CERT_CHAIN_CONTEXT { + DWORD cbSize; + CERT_TRUST_STATUS TrustStatus; + DWORD cChain; + PCERT_SIMPLE_CHAIN* rgpChain; + + + + DWORD cLowerQualityChainContext; + PCCERT_CHAIN_CONTEXT* rgpLowerQualityChainContext; + + + + + + + + BOOL fHasRevocationFreshnessTime; + DWORD dwRevocationFreshnessTime; + + + DWORD dwCreateFlags; + + + GUID ChainId; +}; +# 19910 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_USAGE_MATCH { + + DWORD dwType; + CERT_ENHKEY_USAGE Usage; + +} CERT_USAGE_MATCH, *PCERT_USAGE_MATCH; + +typedef struct _CTL_USAGE_MATCH { + + DWORD dwType; + CTL_USAGE Usage; + +} CTL_USAGE_MATCH, *PCTL_USAGE_MATCH; + +typedef struct _CERT_CHAIN_PARA { + + DWORD cbSize; + CERT_USAGE_MATCH RequestedUsage; +# 19960 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +} CERT_CHAIN_PARA, *PCERT_CHAIN_PARA; +# 20075 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CertGetCertificateChain ( + HCERTCHAINENGINE hChainEngine, + PCCERT_CONTEXT pCertContext, + LPFILETIME pTime, + HCERTSTORE hAdditionalStore, + PCERT_CHAIN_PARA pChainPara, + DWORD dwFlags, + LPVOID pvReserved, + PCCERT_CHAIN_CONTEXT* ppChainContext + ); + + + + + +__declspec(dllimport) +void +__stdcall +CertFreeCertificateChain ( + PCCERT_CHAIN_CONTEXT pChainContext + ); + + + + + +__declspec(dllimport) +PCCERT_CHAIN_CONTEXT +__stdcall +CertDuplicateCertificateChain ( + PCCERT_CHAIN_CONTEXT pChainContext + ); + + + + + + + +struct _CERT_REVOCATION_CHAIN_PARA { + DWORD cbSize; + HCERTCHAINENGINE hChainEngine; + HCERTSTORE hAdditionalStore; + DWORD dwChainFlags; + DWORD dwUrlRetrievalTimeout; + LPFILETIME pftCurrentTime; + LPFILETIME pftCacheResync; + + + + DWORD cbMaxUrlRetrievalByteCount; +}; +# 20150 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRL_REVOCATION_INFO { + + PCRL_ENTRY pCrlEntry; + PCCRL_CONTEXT pCrlContext; + PCCERT_CHAIN_CONTEXT pCrlIssuerChain; + +} CRL_REVOCATION_INFO, *PCRL_REVOCATION_INFO; +# 20185 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCERT_CHAIN_CONTEXT +__stdcall +CertFindChainInStore( + HCERTSTORE hCertStore, + DWORD dwCertEncodingType, + DWORD dwFindFlags, + DWORD dwFindType, + const void *pvFindPara, + PCCERT_CHAIN_CONTEXT pPrevChainContext + ); +# 20249 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK)( + PCCERT_CONTEXT pCert, + void *pvFindArg + ); + +typedef struct _CERT_CHAIN_FIND_BY_ISSUER_PARA { + DWORD cbSize; + + + LPCSTR pszUsageIdentifier; + + + DWORD dwKeySpec; + + + + + + + DWORD dwAcquirePrivateKeyFlags; + + + + DWORD cIssuer; + CERT_NAME_BLOB *rgIssuer; + + + + + PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK pfnFindCallback; + void *pvFindArg; +# 20301 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +} CERT_CHAIN_FIND_ISSUER_PARA, *PCERT_CHAIN_FIND_ISSUER_PARA, + CERT_CHAIN_FIND_BY_ISSUER_PARA, *PCERT_CHAIN_FIND_BY_ISSUER_PARA; +# 20340 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_CHAIN_POLICY_PARA { + DWORD cbSize; + DWORD dwFlags; + void *pvExtraPolicyPara; +} CERT_CHAIN_POLICY_PARA, *PCERT_CHAIN_POLICY_PARA; + + + + + + +typedef struct _CERT_CHAIN_POLICY_STATUS { + DWORD cbSize; + DWORD dwError; + LONG lChainIndex; + LONG lElementIndex; + void *pvExtraPolicyStatus; +} CERT_CHAIN_POLICY_STATUS, *PCERT_CHAIN_POLICY_STATUS; +# 20418 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertVerifyCertificateChainPolicy( + LPCSTR pszPolicyOID, + PCCERT_CHAIN_CONTEXT pChainContext, + PCERT_CHAIN_POLICY_PARA pPolicyPara, + PCERT_CHAIN_POLICY_STATUS pPolicyStatus + ); +# 20468 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA { + DWORD cbSize; + DWORD dwRegPolicySettings; + PCMSG_SIGNER_INFO pSignerInfo; +} AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA, + *PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA; + +typedef struct _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS { + DWORD cbSize; + BOOL fCommercial; +} AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS, + *PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS; +# 20493 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA { + DWORD cbSize; + DWORD dwRegPolicySettings; + BOOL fCommercial; +} AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA, + *PAUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA; +# 20511 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _HTTPSPolicyCallbackData +{ + union { + DWORD cbStruct; + DWORD cbSize; + } ; + + DWORD dwAuthType; + + + + DWORD fdwChecks; + + WCHAR *pwszServerName; + +} HTTPSPolicyCallbackData, *PHTTPSPolicyCallbackData, + SSL_EXTRA_CERT_CHAIN_POLICY_PARA, *PSSL_EXTRA_CERT_CHAIN_POLICY_PARA; +# 20632 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _EV_EXTRA_CERT_CHAIN_POLICY_PARA { + DWORD cbSize; + DWORD dwRootProgramQualifierFlags; +} EV_EXTRA_CERT_CHAIN_POLICY_PARA, + *PEV_EXTRA_CERT_CHAIN_POLICY_PARA; + +typedef struct _EV_EXTRA_CERT_CHAIN_POLICY_STATUS { + DWORD cbSize; + DWORD dwQualifiers; + DWORD dwIssuanceUsageIndex; +} EV_EXTRA_CERT_CHAIN_POLICY_STATUS, *PEV_EXTRA_CERT_CHAIN_POLICY_STATUS; +# 20664 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS { + DWORD cbSize; + DWORD dwErrorLevel; + DWORD dwErrorCategory; + DWORD dwReserved; + WCHAR wszErrorText[256]; +} SSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS, *PSSL_F12_EXTRA_CERT_CHAIN_POLICY_STATUS; +# 20713 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptStringToBinaryA( + LPCSTR pszString, + DWORD cchString, + DWORD dwFlags, + BYTE *pbBinary, + DWORD *pcbBinary, + DWORD *pdwSkip, + DWORD *pdwFlags + ); +# 20735 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptStringToBinaryW( + LPCWSTR pszString, + DWORD cchString, + DWORD dwFlags, + BYTE *pbBinary, + DWORD *pcbBinary, + DWORD *pdwSkip, + DWORD *pdwFlags + ); +# 20760 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CryptBinaryToStringA( + const BYTE *pbBinary, + DWORD cbBinary, + DWORD dwFlags, + LPSTR pszString, + DWORD *pcchString + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CryptBinaryToStringW( + const BYTE *pbBinary, + DWORD cbBinary, + DWORD dwFlags, + LPWSTR pszString, + DWORD *pcchString + ); +# 20879 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_PKCS12_PBE_PARAMS +{ + int iIterations; + ULONG cbSalt; +} +CRYPT_PKCS12_PBE_PARAMS; +# 20934 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +HCERTSTORE +__stdcall +PFXImportCertStore( + CRYPT_DATA_BLOB* pPFX, + LPCWSTR szPassword, + DWORD dwFlags); +# 20975 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +PFXIsPFXBlob( + CRYPT_DATA_BLOB* pPFX); +# 20991 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +PFXVerifyPassword( + CRYPT_DATA_BLOB* pPFX, + LPCWSTR szPassword, + DWORD dwFlags); +# 21057 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +PFXExportCertStoreEx( + HCERTSTORE hStore, + CRYPT_DATA_BLOB* pPFX, + LPCWSTR szPassword, + void* pvPara, + DWORD dwFlags); +# 21099 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +PFXExportCertStore( + HCERTSTORE hStore, + CRYPT_DATA_BLOB* pPFX, + LPCWSTR szPassword, + DWORD dwFlags); +# 21127 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef void *HCERT_SERVER_OCSP_RESPONSE; + + + + +typedef struct _CERT_SERVER_OCSP_RESPONSE_CONTEXT + CERT_SERVER_OCSP_RESPONSE_CONTEXT, + *PCERT_SERVER_OCSP_RESPONSE_CONTEXT; +typedef const CERT_SERVER_OCSP_RESPONSE_CONTEXT + *PCCERT_SERVER_OCSP_RESPONSE_CONTEXT; + +struct _CERT_SERVER_OCSP_RESPONSE_CONTEXT { + DWORD cbSize; + BYTE *pbEncodedOcspResponse; + DWORD cbEncodedOcspResponse; +}; + + + + + + + +typedef void (__stdcall *PFN_CERT_SERVER_OCSP_RESPONSE_UPDATE_CALLBACK)( + PCCERT_CHAIN_CONTEXT pChainContext, + PCCERT_SERVER_OCSP_RESPONSE_CONTEXT pServerOcspResponseContext, + PCCRL_CONTEXT pNewCrlContext, + PCCRL_CONTEXT pPrevCrlContext, + PVOID pvArg, + DWORD dwWriteOcspFileError + ); + + + + + +typedef struct _CERT_SERVER_OCSP_RESPONSE_OPEN_PARA { + DWORD cbSize; + DWORD dwFlags; + + + + + DWORD *pcbUsedSize; +# 21180 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" + PWSTR pwszOcspDirectory; + + + + PFN_CERT_SERVER_OCSP_RESPONSE_UPDATE_CALLBACK pfnUpdateCallback; + PVOID pvUpdateCallbackArg; +} CERT_SERVER_OCSP_RESPONSE_OPEN_PARA, *PCERT_SERVER_OCSP_RESPONSE_OPEN_PARA; +# 21218 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +HCERT_SERVER_OCSP_RESPONSE +__stdcall +CertOpenServerOcspResponse( + PCCERT_CHAIN_CONTEXT pChainContext, + DWORD dwFlags, + PCERT_SERVER_OCSP_RESPONSE_OPEN_PARA pOpenPara + ); +# 21236 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +void +__stdcall +CertAddRefServerOcspResponse( + HCERT_SERVER_OCSP_RESPONSE hServerOcspResponse + ); + + + + + + + +__declspec(dllimport) +void +__stdcall +CertCloseServerOcspResponse( + HCERT_SERVER_OCSP_RESPONSE hServerOcspResponse, + DWORD dwFlags + ); +# 21270 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +PCCERT_SERVER_OCSP_RESPONSE_CONTEXT +__stdcall +CertGetServerOcspResponseContext( + HCERT_SERVER_OCSP_RESPONSE hServerOcspResponse, + DWORD dwFlags, + LPVOID pvReserved + ); + + + + + + +__declspec(dllimport) +void +__stdcall +CertAddRefServerOcspResponseContext( + PCCERT_SERVER_OCSP_RESPONSE_CONTEXT pServerOcspResponseContext + ); + + + + + +__declspec(dllimport) +void +__stdcall +CertFreeServerOcspResponseContext( + PCCERT_SERVER_OCSP_RESPONSE_CONTEXT pServerOcspResponseContext + ); +# 21352 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CertRetrieveLogoOrBiometricInfo( + PCCERT_CONTEXT pCertContext, + LPCSTR lpszLogoOrBiometricType, + DWORD dwRetrievalFlags, + DWORD dwTimeout, + DWORD dwFlags, + void *pvReserved, + BYTE **ppbData, + DWORD *pcbData, + LPWSTR *ppwszMimeType + ); +# 21394 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CERT_SELECT_CHAIN_PARA +{ + HCERTCHAINENGINE hChainEngine; + PFILETIME pTime; + HCERTSTORE hAdditionalStore; + PCERT_CHAIN_PARA pChainPara; + DWORD dwFlags; +} +CERT_SELECT_CHAIN_PARA, *PCERT_SELECT_CHAIN_PARA; +typedef const CERT_SELECT_CHAIN_PARA* PCCERT_SELECT_CHAIN_PARA; + + + +typedef struct _CERT_SELECT_CRITERIA +{ + DWORD dwType; + DWORD cPara; + void** ppPara; +} +CERT_SELECT_CRITERIA, *PCERT_SELECT_CRITERIA; +typedef const CERT_SELECT_CRITERIA* PCCERT_SELECT_CRITERIA; +# 21456 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) + +BOOL +__stdcall +CertSelectCertificateChains( + LPCGUID pSelectionContext, + DWORD dwFlags, + PCCERT_SELECT_CHAIN_PARA pChainParameters, + DWORD cCriteria, + PCCERT_SELECT_CRITERIA rgpCriteria, + HCERTSTORE hStore, + PDWORD pcSelection, + PCCERT_CHAIN_CONTEXT** pprgpSelection + ); + + + + + + +__declspec(dllimport) +void +__stdcall +CertFreeCertificateChainList( + PCCERT_CHAIN_CONTEXT* prgpSelection + ); +# 21497 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_TIMESTAMP_REQUEST +{ + DWORD dwVersion; + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; + CRYPT_DER_BLOB HashedMessage; + LPSTR pszTSAPolicyId; + CRYPT_INTEGER_BLOB Nonce; + BOOL fCertReq; + DWORD cExtension; + + PCERT_EXTENSION rgExtension; +} CRYPT_TIMESTAMP_REQUEST, *PCRYPT_TIMESTAMP_REQUEST; + + + + + +typedef struct _CRYPT_TIMESTAMP_RESPONSE +{ + DWORD dwStatus; + DWORD cFreeText; + + LPWSTR* rgFreeText; + CRYPT_BIT_BLOB FailureInfo; + CRYPT_DER_BLOB ContentInfo; +} CRYPT_TIMESTAMP_RESPONSE, *PCRYPT_TIMESTAMP_RESPONSE; +# 21544 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_TIMESTAMP_ACCURACY +{ + DWORD dwSeconds; + DWORD dwMillis; + DWORD dwMicros; +} CRYPT_TIMESTAMP_ACCURACY, *PCRYPT_TIMESTAMP_ACCURACY; + + + + + +typedef struct _CRYPT_TIMESTAMP_INFO +{ + DWORD dwVersion; + LPSTR pszTSAPolicyId; + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; + CRYPT_DER_BLOB HashedMessage; + CRYPT_INTEGER_BLOB SerialNumber; + FILETIME ftTime; + PCRYPT_TIMESTAMP_ACCURACY pvAccuracy; + BOOL fOrdering; + CRYPT_DER_BLOB Nonce; + CRYPT_DER_BLOB Tsa; + DWORD cExtension; + + PCERT_EXTENSION rgExtension; +} CRYPT_TIMESTAMP_INFO, *PCRYPT_TIMESTAMP_INFO; + + + + + +typedef struct _CRYPT_TIMESTAMP_CONTEXT +{ + DWORD cbEncoded; + + BYTE *pbEncoded; + PCRYPT_TIMESTAMP_INFO pTimeStamp; +} CRYPT_TIMESTAMP_CONTEXT, *PCRYPT_TIMESTAMP_CONTEXT; +# 21603 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef struct _CRYPT_TIMESTAMP_PARA +{ + LPCSTR pszTSAPolicyId; + BOOL fRequestCerts; + CRYPT_INTEGER_BLOB Nonce; + DWORD cExtension; + + PCERT_EXTENSION rgExtension; +} CRYPT_TIMESTAMP_PARA, *PCRYPT_TIMESTAMP_PARA; +# 21657 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +BOOL +__stdcall +CryptRetrieveTimeStamp( + LPCWSTR wszUrl, + DWORD dwRetrievalFlags, + DWORD dwTimeout, + LPCSTR pszHashId, + const CRYPT_TIMESTAMP_PARA *pPara, + + const BYTE *pbData, + DWORD cbData, + PCRYPT_TIMESTAMP_CONTEXT *ppTsContext, + PCCERT_CONTEXT *ppTsSigner, + HCERTSTORE *phStore + ); +# 21721 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +BOOL +__stdcall +CryptVerifyTimeStampSignature ( + + const BYTE *pbTSContentInfo, + DWORD cbTSContentInfo, + + const BYTE *pbData, + DWORD cbData, + HCERTSTORE hAdditionalStore, + PCRYPT_TIMESTAMP_CONTEXT *ppTsContext, + PCCERT_CONTEXT *ppTsSigner, + HCERTSTORE *phStore + ); +# 21796 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH)( + LPVOID pContext, + PCERT_NAME_BLOB *rgIdentifierOrNameList, + DWORD dwIdentifierOrNameListCount); +# 21831 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET)( + LPVOID pPluginContext, + PCRYPT_DATA_BLOB pIdentifier, + DWORD dwNameType, + PCERT_NAME_BLOB pNameBlob, + PBYTE *ppbContent, + DWORD *pcbContent, + PCWSTR *ppwszPassword, + PCRYPT_DATA_BLOB *ppIdentifier); +# 21857 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef void (__stdcall * PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE)( + DWORD dwReason, + LPVOID pPluginContext); +# 21874 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef void (__stdcall *PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD)( + LPVOID pPluginContext, + PCWSTR pwszPassword +); +# 21891 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef void (__stdcall *PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE)( + LPVOID pPluginContext, + PBYTE pbData +); +# 21912 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef void (__stdcall *PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER)( + LPVOID pPluginContext, + PCRYPT_DATA_BLOB pIdentifier); + + +typedef struct _CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE +{ + DWORD cbSize; + PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET pfnGet; + PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE pfnRelease; + PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD pfnFreePassword; + PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE pfnFree; + PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER pfnFreeIdentifier; +} CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE, *PCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE; +# 21955 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +typedef BOOL (__stdcall *PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE)( + PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH pfnFlush, + LPVOID pContext, + DWORD *pdwExpectedObjectCount, + PCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE *ppFuncTable, + void **ppPluginContext); +# 21983 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +__declspec(dllimport) +BOOL +__stdcall +CertIsWeakHash( + DWORD dwHashUseType, + LPCWSTR pwszCNGHashAlgid, + DWORD dwChainFlags, + PCCERT_CHAIN_CONTEXT pSignerChainContext, + LPFILETIME pTimeStamp, + LPCWSTR pwszFileName + ); + +typedef __declspec(dllimport) BOOL (__stdcall *PFN_CERT_IS_WEAK_HASH)( + DWORD dwHashUseType, + LPCWSTR pwszCNGHashAlgid, + DWORD dwChainFlags, + PCCERT_CHAIN_CONTEXT pSignerChainContext, + LPFILETIME pTimeStamp, + LPCWSTR pwszFileName + ); +# 22021 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +} + + + + + +#pragma warning(pop) +# 22045 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dpapi.h" 1 +# 36 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dpapi.h" +extern "C" { +# 85 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dpapi.h" +typedef struct _CRYPTPROTECT_PROMPTSTRUCT +{ + DWORD cbSize; + DWORD dwPromptFlags; + HWND hwndApp; + LPCWSTR szPrompt; +} CRYPTPROTECT_PROMPTSTRUCT, *PCRYPTPROTECT_PROMPTSTRUCT; +# 167 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dpapi.h" +BOOL +__stdcall +CryptProtectData( + DATA_BLOB* pDataIn, + LPCWSTR szDataDescr, + DATA_BLOB* pOptionalEntropy, + PVOID pvReserved, + CRYPTPROTECT_PROMPTSTRUCT* pPromptStruct, + DWORD dwFlags, + DATA_BLOB* pDataOut + ); + + +BOOL +__stdcall +CryptUnprotectData( + DATA_BLOB* pDataIn, + LPWSTR* ppszDataDescr, + DATA_BLOB* pOptionalEntropy, + PVOID pvReserved, + CRYPTPROTECT_PROMPTSTRUCT* pPromptStruct, + DWORD dwFlags, + DATA_BLOB* pDataOut + ); +# 199 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dpapi.h" +BOOL +__stdcall +CryptProtectDataNoUI( + DATA_BLOB* pDataIn, + LPCWSTR szDataDescr, + DATA_BLOB* pOptionalEntropy, + PVOID pvReserved, + CRYPTPROTECT_PROMPTSTRUCT* pPromptStruct, + DWORD dwFlags, + + const BYTE *pbOptionalPassword, + DWORD cbOptionalPassword, + DATA_BLOB* pDataOut + ); + +BOOL +__stdcall +CryptUnprotectDataNoUI( + DATA_BLOB* pDataIn, + LPWSTR* ppszDataDescr, + DATA_BLOB* pOptionalEntropy, + PVOID pvReserved, + CRYPTPROTECT_PROMPTSTRUCT* pPromptStruct, + DWORD dwFlags, + + const BYTE *pbOptionalPassword, + DWORD cbOptionalPassword, + DATA_BLOB* pDataOut + ); +# 239 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dpapi.h" +BOOL +__stdcall +CryptUpdateProtectedState( + PSID pOldSid, + LPCWSTR pwszOldPassword, + DWORD dwFlags, + DWORD *pdwSuccessCount, + DWORD *pdwFailureCount); +# 284 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dpapi.h" +BOOL +__stdcall +CryptProtectMemory( + LPVOID pDataIn, + DWORD cbDataIn, + DWORD dwFlags + ); + + +BOOL +__stdcall +CryptUnprotectMemory( + LPVOID pDataIn, + DWORD cbDataIn, + DWORD dwFlags + ); + + + + + +} +# 22045 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\wincrypt.h" 2 +# 203 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winefs.h" 1 +# 25 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winefs.h" +#pragma warning(push) +#pragma warning(disable: 4820) + + + +extern "C" { +# 61 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winefs.h" +typedef struct _CERTIFICATE_BLOB { + + DWORD dwCertEncodingType; + + + + + + DWORD cbData; + + + + + PBYTE pbData; + +} EFS_CERTIFICATE_BLOB, *PEFS_CERTIFICATE_BLOB; + + + + + +typedef struct _EFS_HASH_BLOB { + + + + + DWORD cbData; + + + + + PBYTE pbData; + +} EFS_HASH_BLOB, *PEFS_HASH_BLOB; +# 104 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winefs.h" +typedef struct _EFS_RPC_BLOB { + + + + + DWORD cbData; + + + + + PBYTE pbData; + +} EFS_RPC_BLOB, *PEFS_RPC_BLOB; + + + + + + +typedef struct _EFS_PIN_BLOB { + + + + + DWORD cbPadding; + + + + + DWORD cbData; + + + + + PBYTE pbData; + +} EFS_PIN_BLOB, *PEFS_PIN_BLOB; + + + + + + + +typedef struct _EFS_KEY_INFO { + + DWORD dwVersion; + ULONG Entropy; + ALG_ID Algorithm; + ULONG KeyLength; + +} EFS_KEY_INFO, *PEFS_KEY_INFO; + + + + + + +typedef struct _EFS_COMPATIBILITY_INFO { + + DWORD EfsVersion; + +} EFS_COMPATIBILITY_INFO, *PEFS_COMPATIBILITY_INFO; +# 191 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winefs.h" +typedef struct _EFS_VERSION_INFO { + DWORD EfsVersion; + DWORD SubVersion; +} EFS_VERSION_INFO, *PEFS_VERSION_INFO; +# 206 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winefs.h" +typedef struct _EFS_DECRYPTION_STATUS_INFO { + + DWORD dwDecryptionError; + DWORD dwHashOffset; + DWORD cbHash; + +} EFS_DECRYPTION_STATUS_INFO, *PEFS_DECRYPTION_STATUS_INFO; + +typedef struct _EFS_ENCRYPTION_STATUS_INFO { + + BOOL bHasCurrentKey; + DWORD dwEncryptionError; + +} EFS_ENCRYPTION_STATUS_INFO, *PEFS_ENCRYPTION_STATUS_INFO; + + + + + + + +typedef struct _ENCRYPTION_CERTIFICATE { + DWORD cbTotalLength; + SID * pUserSid; + PEFS_CERTIFICATE_BLOB pCertBlob; +} ENCRYPTION_CERTIFICATE, *PENCRYPTION_CERTIFICATE; + + + + +typedef struct _ENCRYPTION_CERTIFICATE_HASH { + DWORD cbTotalLength; + SID * pUserSid; + PEFS_HASH_BLOB pHash; + + + + + LPWSTR lpDisplayInformation; + +} ENCRYPTION_CERTIFICATE_HASH, *PENCRYPTION_CERTIFICATE_HASH; + +typedef struct _ENCRYPTION_CERTIFICATE_HASH_LIST { + + + + DWORD nCert_Hash; + + + + PENCRYPTION_CERTIFICATE_HASH * pUsers; +} ENCRYPTION_CERTIFICATE_HASH_LIST, *PENCRYPTION_CERTIFICATE_HASH_LIST; + + + +typedef struct _ENCRYPTION_CERTIFICATE_LIST { + + + + DWORD nUsers; + + + + PENCRYPTION_CERTIFICATE * pUsers; +} ENCRYPTION_CERTIFICATE_LIST, *PENCRYPTION_CERTIFICATE_LIST; +# 280 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winefs.h" +typedef struct _ENCRYPTED_FILE_METADATA_SIGNATURE { + + DWORD dwEfsAccessType; + PENCRYPTION_CERTIFICATE_HASH_LIST pCertificatesAdded; + PENCRYPTION_CERTIFICATE pEncryptionCertificate; + PEFS_RPC_BLOB pEfsStreamSignature; + +} ENCRYPTED_FILE_METADATA_SIGNATURE, *PENCRYPTED_FILE_METADATA_SIGNATURE; + + + + + +typedef struct _ENCRYPTION_PROTECTOR{ + DWORD cbTotalLength; + SID * pUserSid; + + + + LPWSTR lpProtectorDescriptor; +} ENCRYPTION_PROTECTOR, *PENCRYPTION_PROTECTOR; + +typedef struct _ENCRYPTION_PROTECTOR_LIST { + DWORD nProtectors; + + + + PENCRYPTION_PROTECTOR *pProtectors; +} ENCRYPTION_PROTECTOR_LIST, *PENCRYPTION_PROTECTOR_LIST; +# 321 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winefs.h" +__declspec(dllimport) +DWORD +__stdcall +QueryUsersOnEncryptedFile( + LPCWSTR lpFileName, + PENCRYPTION_CERTIFICATE_HASH_LIST *pUsers + ); + + +__declspec(dllimport) +DWORD +__stdcall +QueryRecoveryAgentsOnEncryptedFile( + LPCWSTR lpFileName, + PENCRYPTION_CERTIFICATE_HASH_LIST *pRecoveryAgents + ); + + +__declspec(dllimport) +DWORD +__stdcall +RemoveUsersFromEncryptedFile( + LPCWSTR lpFileName, + PENCRYPTION_CERTIFICATE_HASH_LIST pHashes + ); + +__declspec(dllimport) +DWORD +__stdcall +AddUsersToEncryptedFile( + LPCWSTR lpFileName, + PENCRYPTION_CERTIFICATE_LIST pEncryptionCertificates + ); + + + + + + + +__declspec(dllimport) +DWORD +__stdcall +SetUserFileEncryptionKey( + PENCRYPTION_CERTIFICATE pEncryptionCertificate + ); +# 382 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winefs.h" +__declspec(dllimport) +DWORD +__stdcall +SetUserFileEncryptionKeyEx( + PENCRYPTION_CERTIFICATE pEncryptionCertificate, + DWORD dwCapabilities, + DWORD dwFlags, + LPVOID pvReserved + ); + + + +__declspec(dllimport) +void +__stdcall +FreeEncryptionCertificateHashList( + PENCRYPTION_CERTIFICATE_HASH_LIST pUsers + ); + +__declspec(dllimport) +BOOL +__stdcall +EncryptionDisable( + LPCWSTR DirPath, + BOOL Disable + ); + + + + + + + +__declspec(dllimport) +DWORD +__stdcall +DuplicateEncryptionInfoFile( + LPCWSTR SrcFileName, + LPCWSTR DstFileName, + DWORD dwCreationDistribution, + DWORD dwAttributes, + const LPSECURITY_ATTRIBUTES lpSecurityAttributes + ); +# 447 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winefs.h" +__declspec(deprecated) +__declspec(dllimport) +DWORD +__stdcall +GetEncryptedFileMetadata( + LPCWSTR lpFileName, + PDWORD pcbMetadata, + PBYTE *ppbMetadata + ); + +__declspec(deprecated) +__declspec(dllimport) +DWORD +__stdcall +SetEncryptedFileMetadata( + LPCWSTR lpFileName, + PBYTE pbOldMetadata, + PBYTE pbNewMetadata, + PENCRYPTION_CERTIFICATE_HASH pOwnerHash, + DWORD dwOperation, + PENCRYPTION_CERTIFICATE_HASH_LIST pCertificatesAdded + ); + +__declspec(deprecated) +__declspec(dllimport) +void +__stdcall +FreeEncryptedFileMetadata( + PBYTE pbMetadata + ); +# 485 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winefs.h" +} + + + +#pragma warning(pop) +# 204 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" 1 +# 30 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\wtypes.h" 1 +# 22 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\wtypes.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" 1 +# 16 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +#pragma warning(push) +#pragma warning(disable: 4001) +#pragma warning(disable: 4255) +#pragma warning(disable: 4668) +#pragma warning(disable: 4820) +# 47 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" +#pragma warning(disable: 4103) + +#pragma pack(push,8) +# 47 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" 2 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\rpcnsip.h" 1 +# 26 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\rpcnsip.h" +extern "C" { + + + + + +typedef struct +{ + RPC_NS_HANDLE LookupContext; + RPC_BINDING_HANDLE ProposedHandle; + RPC_BINDING_VECTOR * Bindings; + +} RPC_IMPORT_CONTEXT_P, * PRPC_IMPORT_CONTEXT_P; + + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcNsGetBuffer( + PRPC_MESSAGE Message + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcNsSendReceive( + PRPC_MESSAGE Message, + RPC_BINDING_HANDLE * Handle + ); + +__declspec(dllimport) + +void +__stdcall +I_RpcNsRaiseException( + PRPC_MESSAGE Message, + RPC_STATUS Status + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_RpcReBindBuffer( + PRPC_MESSAGE Message + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_NsServerBindSearch( + void + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +I_NsClientBindSearch( + void + ); + +__declspec(dllimport) +void +__stdcall +I_NsClientBindDone( + void + ); + + + + + +} +# 50 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" 2 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcsal.h" 1 +# 152 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcsal.h" +extern "C" { +# 328 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\rpcsal.h" +} +# 53 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" 2 + + + +extern "C" { +# 191 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +typedef unsigned char byte; +typedef byte cs_byte; +typedef unsigned char boolean; +# 238 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +void * __stdcall MIDL_user_allocate( size_t size); +void __stdcall MIDL_user_free( void * ); + + + +void * __stdcall I_RpcDefaultAllocate( + handle_t bh, size_t size, void * (* RealAlloc)(size_t) ); + +void __stdcall I_RpcDefaultFree( + handle_t bh, void *, void (*RealFree)(void *) ); +# 273 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +typedef void * NDR_CCONTEXT; + +typedef struct + { + void * pad[2]; + void * userContext; + } * NDR_SCONTEXT; + + + + + +typedef void (__stdcall * NDR_RUNDOWN)(void * context); + +typedef void (__stdcall * NDR_NOTIFY_ROUTINE)(void); + +typedef void (__stdcall * NDR_NOTIFY2_ROUTINE)(boolean flag); + +typedef struct _SCONTEXT_QUEUE { + unsigned long NumberOfObjects; + NDR_SCONTEXT * ArrayOfObjects; + } SCONTEXT_QUEUE, * PSCONTEXT_QUEUE; + +__declspec(dllimport) +RPC_BINDING_HANDLE +__stdcall +NDRCContextBinding ( + NDR_CCONTEXT CContext + ); + +__declspec(dllimport) +void +__stdcall +NDRCContextMarshall ( + NDR_CCONTEXT CContext, + void *pBuff + ); + +__declspec(dllimport) +void +__stdcall +NDRCContextUnmarshall ( + NDR_CCONTEXT * pCContext, + RPC_BINDING_HANDLE hBinding, + void * pBuff, + unsigned long DataRepresentation + ); + +__declspec(dllimport) +void +__stdcall +NDRCContextUnmarshall2 ( + NDR_CCONTEXT * pCContext, + RPC_BINDING_HANDLE hBinding, + void * pBuff, + unsigned long DataRepresentation + ); + +__declspec(dllimport) +void +__stdcall +NDRSContextMarshall ( + NDR_SCONTEXT CContext, + void * pBuff, + NDR_RUNDOWN userRunDownIn + ); + +__declspec(dllimport) +NDR_SCONTEXT +__stdcall +NDRSContextUnmarshall ( + void * pBuff, + unsigned long DataRepresentation + ); + +__declspec(dllimport) +void +__stdcall +NDRSContextMarshallEx ( + RPC_BINDING_HANDLE BindingHandle, + NDR_SCONTEXT CContext, + void * pBuff, + NDR_RUNDOWN userRunDownIn + ); + +__declspec(dllimport) +void +__stdcall +NDRSContextMarshall2 ( + RPC_BINDING_HANDLE BindingHandle, + NDR_SCONTEXT CContext, + void * pBuff, + NDR_RUNDOWN userRunDownIn, + void * CtxGuard, + unsigned long Flags + ); + +__declspec(dllimport) +NDR_SCONTEXT +__stdcall +NDRSContextUnmarshallEx ( + RPC_BINDING_HANDLE BindingHandle, + void * pBuff, + unsigned long DataRepresentation + ); + +__declspec(dllimport) +NDR_SCONTEXT +__stdcall +NDRSContextUnmarshall2( + RPC_BINDING_HANDLE BindingHandle, + void * pBuff, + unsigned long DataRepresentation, + void * CtxGuard, + unsigned long Flags + ); + +__declspec(dllimport) +void +__stdcall +RpcSsDestroyClientContext ( + void * * ContextHandle + ); +# 466 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +typedef unsigned long error_status_t; +# 549 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +struct _MIDL_STUB_MESSAGE; +struct _MIDL_STUB_DESC; +struct _FULL_PTR_XLAT_TABLES; + +typedef unsigned char * RPC_BUFPTR; +typedef unsigned long RPC_LENGTH; + + +typedef void (__stdcall * EXPR_EVAL)( struct _MIDL_STUB_MESSAGE * ); + +typedef const unsigned char * PFORMAT_STRING; + + + + +typedef struct + { + long Dimension; + + + unsigned long * BufferConformanceMark; + unsigned long * BufferVarianceMark; + + + unsigned long * MaxCountArray; + unsigned long * OffsetArray; + unsigned long * ActualCountArray; + } ARRAY_INFO, *PARRAY_INFO; + + +typedef struct _NDR_ASYNC_MESSAGE * PNDR_ASYNC_MESSAGE; +typedef struct _NDR_CORRELATION_INFO *PNDR_CORRELATION_INFO; + + + + + +typedef const unsigned char * PFORMAT_STRING; +typedef struct _MIDL_SYNTAX_INFO MIDL_SYNTAX_INFO, *PMIDL_SYNTAX_INFO; + +struct NDR_ALLOC_ALL_NODES_CONTEXT; +struct NDR_POINTER_QUEUE_STATE; +struct _NDR_PROC_CONTEXT; + +typedef struct _MIDL_STUB_MESSAGE + { + + PRPC_MESSAGE RpcMsg; + + + unsigned char * Buffer; + + + + + + unsigned char * BufferStart; + unsigned char * BufferEnd; +# 615 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" + unsigned char * BufferMark; + + + unsigned long BufferLength; + + + unsigned long MemorySize; + + + unsigned char * Memory; + + + unsigned char IsClient; + unsigned char Pad; + unsigned short uFlags2; + + + int ReuseBuffer; + + + struct NDR_ALLOC_ALL_NODES_CONTEXT *pAllocAllNodesContext; + struct NDR_POINTER_QUEUE_STATE *pPointerQueueState; + + + + + + + int IgnoreEmbeddedPointers; + + + + + + unsigned char * PointerBufferMark; + + + + + unsigned char CorrDespIncrement; + + unsigned char uFlags; + unsigned short UniquePtrCount; + + + + + + ULONG_PTR MaxCount; + + + + + + unsigned long Offset; + + + + + + unsigned long ActualCount; + + + void * ( __stdcall * pfnAllocate)( size_t ); + void ( __stdcall * pfnFree)(void *); + + + + + + + + unsigned char * StackTop; + + + + + + unsigned char * pPresentedType; + unsigned char * pTransmitType; +# 704 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" + handle_t SavedHandle; + + + + + const struct _MIDL_STUB_DESC * StubDesc; + + + + + struct _FULL_PTR_XLAT_TABLES * FullPtrXlatTables; + unsigned long FullPtrRefId; + + unsigned long PointerLength; + + int fInDontFree :1; + int fDontCallFreeInst :1; + int fUnused1 :1; + int fHasReturn :1; + int fHasExtensions :1; + int fHasNewCorrDesc :1; + int fIsIn :1; + int fIsOut :1; + int fIsOicf :1; + int fBufferValid :1; + int fHasMemoryValidateCallback: 1; + int fInFree :1; + int fNeedMCCP :1; + int fUnused2 :3; + int fUnused3 :16; + + + unsigned long dwDestContext; + void * pvDestContext; + + NDR_SCONTEXT * SavedContextHandles; + + long ParamNumber; + + struct IRpcChannelBuffer * pRpcChannelBuffer; + + PARRAY_INFO pArrayInfo; + unsigned long * SizePtrCountArray; + unsigned long * SizePtrOffsetArray; + unsigned long * SizePtrLengthArray; + + + + + void * pArgQueue; + + unsigned long dwStubPhase; + + void * LowStackMark; + + + + + PNDR_ASYNC_MESSAGE pAsyncMsg; + PNDR_CORRELATION_INFO pCorrInfo; + unsigned char * pCorrMemory; + + void * pMemoryList; +# 777 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" + INT_PTR pCSInfo; + + unsigned char * ConformanceMark; + unsigned char * VarianceMark; + + INT_PTR Unused; + + struct _NDR_PROC_CONTEXT * pContext; +# 796 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" + void * ContextHandleHash; + void * pUserMarshalList; + INT_PTR Reserved51_3; + INT_PTR Reserved51_4; + INT_PTR Reserved51_5; + + + + + + } MIDL_STUB_MESSAGE, *PMIDL_STUB_MESSAGE; + + +typedef struct _MIDL_STUB_MESSAGE MIDL_STUB_MESSAGE, *PMIDL_STUB_MESSAGE; + + + + +typedef void * + ( __stdcall * GENERIC_BINDING_ROUTINE) + (void *); +typedef void + ( __stdcall * GENERIC_UNBIND_ROUTINE) + (void *, unsigned char *); + +typedef struct _GENERIC_BINDING_ROUTINE_PAIR + { + GENERIC_BINDING_ROUTINE pfnBind; + GENERIC_UNBIND_ROUTINE pfnUnbind; + } GENERIC_BINDING_ROUTINE_PAIR, *PGENERIC_BINDING_ROUTINE_PAIR; + +typedef struct __GENERIC_BINDING_INFO + { + void * pObj; + unsigned int Size; + GENERIC_BINDING_ROUTINE pfnBind; + GENERIC_UNBIND_ROUTINE pfnUnbind; + } GENERIC_BINDING_INFO, *PGENERIC_BINDING_INFO; +# 845 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +typedef void ( __stdcall * XMIT_HELPER_ROUTINE) + ( PMIDL_STUB_MESSAGE ); + +typedef struct _XMIT_ROUTINE_QUINTUPLE + { + XMIT_HELPER_ROUTINE pfnTranslateToXmit; + XMIT_HELPER_ROUTINE pfnTranslateFromXmit; + XMIT_HELPER_ROUTINE pfnFreeXmit; + XMIT_HELPER_ROUTINE pfnFreeInst; + } XMIT_ROUTINE_QUINTUPLE, *PXMIT_ROUTINE_QUINTUPLE; + +typedef unsigned long +( __stdcall * USER_MARSHAL_SIZING_ROUTINE) + (unsigned long *, + unsigned long, + void * ); + +typedef unsigned char * +( __stdcall * USER_MARSHAL_MARSHALLING_ROUTINE) + (unsigned long *, + unsigned char * , + void * ); + +typedef unsigned char * +( __stdcall * USER_MARSHAL_UNMARSHALLING_ROUTINE) + (unsigned long *, + unsigned char *, + void * ); + +typedef void ( __stdcall * USER_MARSHAL_FREEING_ROUTINE) + (unsigned long *, + void * ); + +typedef struct _USER_MARSHAL_ROUTINE_QUADRUPLE + { + USER_MARSHAL_SIZING_ROUTINE pfnBufferSize; + USER_MARSHAL_MARSHALLING_ROUTINE pfnMarshall; + USER_MARSHAL_UNMARSHALLING_ROUTINE pfnUnmarshall; + USER_MARSHAL_FREEING_ROUTINE pfnFree; + } USER_MARSHAL_ROUTINE_QUADRUPLE; + + + +typedef enum _USER_MARSHAL_CB_TYPE +{ + USER_MARSHAL_CB_BUFFER_SIZE, + USER_MARSHAL_CB_MARSHALL, + USER_MARSHAL_CB_UNMARSHALL, + USER_MARSHAL_CB_FREE +} USER_MARSHAL_CB_TYPE; + +typedef struct _USER_MARSHAL_CB +{ + unsigned long Flags; + PMIDL_STUB_MESSAGE pStubMsg; + PFORMAT_STRING pReserve; + unsigned long Signature; + USER_MARSHAL_CB_TYPE CBType; + PFORMAT_STRING pFormat; + PFORMAT_STRING pTypeFormat; +} USER_MARSHAL_CB; +# 915 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +typedef struct _MALLOC_FREE_STRUCT + { + void * ( __stdcall * pfnAllocate)(size_t); + void ( __stdcall * pfnFree)(void *); + } MALLOC_FREE_STRUCT; + +typedef struct _COMM_FAULT_OFFSETS + { + short CommOffset; + short FaultOffset; + } COMM_FAULT_OFFSETS; + + + + + +typedef enum _IDL_CS_CONVERT + { + IDL_CS_NO_CONVERT, + IDL_CS_IN_PLACE_CONVERT, + IDL_CS_NEW_BUFFER_CONVERT + } IDL_CS_CONVERT; + +typedef void +( __stdcall * CS_TYPE_NET_SIZE_ROUTINE) + (RPC_BINDING_HANDLE hBinding, + unsigned long ulNetworkCodeSet, + unsigned long ulLocalBufferSize, + IDL_CS_CONVERT * conversionType, + unsigned long * pulNetworkBufferSize, + error_status_t * pStatus); + +typedef void +( __stdcall * CS_TYPE_LOCAL_SIZE_ROUTINE) + (RPC_BINDING_HANDLE hBinding, + unsigned long ulNetworkCodeSet, + unsigned long ulNetworkBufferSize, + IDL_CS_CONVERT * conversionType, + unsigned long * pulLocalBufferSize, + error_status_t * pStatus); + +typedef void +( __stdcall * CS_TYPE_TO_NETCS_ROUTINE) + (RPC_BINDING_HANDLE hBinding, + unsigned long ulNetworkCodeSet, + void * pLocalData, + unsigned long ulLocalDataLength, + byte * pNetworkData, + unsigned long * pulNetworkDataLength, + error_status_t * pStatus); + +typedef void +( __stdcall * CS_TYPE_FROM_NETCS_ROUTINE) + (RPC_BINDING_HANDLE hBinding, + unsigned long ulNetworkCodeSet, + byte * pNetworkData, + unsigned long ulNetworkDataLength, + unsigned long ulLocalBufferSize, + void * pLocalData, + unsigned long * pulLocalDataLength, + error_status_t * pStatus); + +typedef void +( __stdcall * CS_TAG_GETTING_ROUTINE) + (RPC_BINDING_HANDLE hBinding, + int fServerSide, + unsigned long * pulSendingTag, + unsigned long * pulDesiredReceivingTag, + unsigned long * pulReceivingTag, + error_status_t * pStatus); + +void __stdcall +RpcCsGetTags( + RPC_BINDING_HANDLE hBinding, + int fServerSide, + unsigned long * pulSendingTag, + unsigned long * pulDesiredReceivingTag, + unsigned long * pulReceivingTag, + error_status_t * pStatus); + +typedef struct _NDR_CS_SIZE_CONVERT_ROUTINES + { + CS_TYPE_NET_SIZE_ROUTINE pfnNetSize; + CS_TYPE_TO_NETCS_ROUTINE pfnToNetCs; + CS_TYPE_LOCAL_SIZE_ROUTINE pfnLocalSize; + CS_TYPE_FROM_NETCS_ROUTINE pfnFromNetCs; + } NDR_CS_SIZE_CONVERT_ROUTINES; + +typedef struct _NDR_CS_ROUTINES + { + NDR_CS_SIZE_CONVERT_ROUTINES *pSizeConvertRoutines; + CS_TAG_GETTING_ROUTINE *pTagGettingRoutines; + } NDR_CS_ROUTINES; + +typedef struct _NDR_EXPR_DESC +{ + const unsigned short * pOffset; + PFORMAT_STRING pFormatExpr; +} NDR_EXPR_DESC; + + + + +typedef struct _MIDL_STUB_DESC + { + void * RpcInterfaceInformation; + + void * ( __stdcall * pfnAllocate)(size_t); + void ( __stdcall * pfnFree)(void *); + + union + { + handle_t * pAutoHandle; + handle_t * pPrimitiveHandle; + PGENERIC_BINDING_INFO pGenericBindingInfo; + } IMPLICIT_HANDLE_INFO; + + const NDR_RUNDOWN * apfnNdrRundownRoutines; + const GENERIC_BINDING_ROUTINE_PAIR * aGenericBindingRoutinePairs; + const EXPR_EVAL * apfnExprEval; + const XMIT_ROUTINE_QUINTUPLE * aXmitQuintuple; + + const unsigned char * pFormatTypes; + + int fCheckBounds; + + + unsigned long Version; + + MALLOC_FREE_STRUCT * pMallocFreeStruct; + + long MIDLVersion; + + const COMM_FAULT_OFFSETS * CommFaultOffsets; + + + const USER_MARSHAL_ROUTINE_QUADRUPLE * aUserMarshalQuadruple; + + + const NDR_NOTIFY_ROUTINE * NotifyRoutineTable; + + + + + + ULONG_PTR mFlags; + + + const NDR_CS_ROUTINES * CsRoutineTables; + + void * ProxyServerInfo; + const NDR_EXPR_DESC * pExprInfo; + + + + } MIDL_STUB_DESC; + + +typedef const MIDL_STUB_DESC * PMIDL_STUB_DESC; + +typedef void * PMIDL_XMIT_TYPE; + + + + + + + +#pragma warning(push) + +#pragma warning(disable: 4200) + +typedef struct _MIDL_FORMAT_STRING + { + short Pad; + unsigned char Format[]; + } MIDL_FORMAT_STRING; + + +#pragma warning(pop) +# 1104 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +typedef void ( __stdcall * STUB_THUNK)( PMIDL_STUB_MESSAGE ); + + +typedef long ( __stdcall * SERVER_ROUTINE)(); + + + + + + + +typedef struct _MIDL_METHOD_PROPERTY +{ + unsigned long Id; + ULONG_PTR Value; +} MIDL_METHOD_PROPERTY, *PMIDL_METHOD_PROPERTY; + +typedef struct _MIDL_METHOD_PROPERTY_MAP +{ + unsigned long Count; + const MIDL_METHOD_PROPERTY *Properties; +} MIDL_METHOD_PROPERTY_MAP, *PMIDL_METHOD_PROPERTY_MAP; + +typedef struct _MIDL_INTERFACE_METHOD_PROPERTIES +{ + unsigned short MethodCount; + const MIDL_METHOD_PROPERTY_MAP* const *MethodProperties; +} MIDL_INTERFACE_METHOD_PROPERTIES; + + + + +typedef struct _MIDL_SERVER_INFO_ + { + PMIDL_STUB_DESC pStubDesc; + const SERVER_ROUTINE * DispatchTable; + PFORMAT_STRING ProcString; + const unsigned short * FmtStringOffset; + const STUB_THUNK * ThunkTable; + PRPC_SYNTAX_IDENTIFIER pTransferSyntax; + ULONG_PTR nCount; + PMIDL_SYNTAX_INFO pSyntaxInfo; + } MIDL_SERVER_INFO, *PMIDL_SERVER_INFO; + + + + + + +typedef struct _MIDL_STUBLESS_PROXY_INFO + { + PMIDL_STUB_DESC pStubDesc; + PFORMAT_STRING ProcFormatString; + const unsigned short * FormatStringOffset; + PRPC_SYNTAX_IDENTIFIER pTransferSyntax; + ULONG_PTR nCount; + PMIDL_SYNTAX_INFO pSyntaxInfo; + } MIDL_STUBLESS_PROXY_INFO; + +typedef MIDL_STUBLESS_PROXY_INFO * PMIDL_STUBLESS_PROXY_INFO; + + + + +typedef struct _MIDL_SYNTAX_INFO +{ +RPC_SYNTAX_IDENTIFIER TransferSyntax; +RPC_DISPATCH_TABLE * DispatchTable; +PFORMAT_STRING ProcString; +const unsigned short * FmtStringOffset; +PFORMAT_STRING TypeString; +const void * aUserMarshalQuadruple; +const MIDL_INTERFACE_METHOD_PROPERTIES *pMethodProperties; +ULONG_PTR pReserved2; +} MIDL_SYNTAX_INFO, *PMIDL_SYNTAX_INFO; + +typedef unsigned short * PARAM_OFFSETTABLE, *PPARAM_OFFSETTABLE; + + + + + +typedef union _CLIENT_CALL_RETURN + { + void * Pointer; + LONG_PTR Simple; + } CLIENT_CALL_RETURN; + + +typedef enum + { + XLAT_SERVER = 1, + XLAT_CLIENT + } XLAT_SIDE; + +typedef struct _FULL_PTR_XLAT_TABLES +{ + void * RefIdToPointer; + void * PointerToRefId; + unsigned long NextRefId; + XLAT_SIDE XlatSide; +} FULL_PTR_XLAT_TABLES, *PFULL_PTR_XLAT_TABLES; + + + + + +typedef enum _system_handle_t +{ + SYSTEM_HANDLE_FILE = 0, + SYSTEM_HANDLE_SEMAPHORE = 1, + SYSTEM_HANDLE_EVENT = 2, + SYSTEM_HANDLE_MUTEX = 3, + SYSTEM_HANDLE_PROCESS = 4, + SYSTEM_HANDLE_TOKEN = 5, + SYSTEM_HANDLE_SECTION = 6, + SYSTEM_HANDLE_REG_KEY = 7, + SYSTEM_HANDLE_THREAD = 8, + SYSTEM_HANDLE_COMPOSITION_OBJECT = 9, + SYSTEM_HANDLE_SOCKET = 10, + SYSTEM_HANDLE_JOB = 11, + SYSTEM_HANDLE_PIPE = 12, + SYSTEM_HANDLE_MAX = 12, + SYSTEM_HANDLE_INVALID = 0xFF, +} system_handle_t; + + + + + +enum { + MidlInterceptionInfoVersionOne = 1 +}; + +enum { + MidlWinrtTypeSerializationInfoVersionOne = 1 +}; + + + +typedef struct _MIDL_INTERCEPTION_INFO +{ + unsigned long Version; + PFORMAT_STRING ProcString; + const unsigned short *ProcFormatOffsetTable; + unsigned long ProcCount; + PFORMAT_STRING TypeString; +} MIDL_INTERCEPTION_INFO, *PMIDL_INTERCEPTION_INFO; + +typedef struct _MIDL_WINRT_TYPE_SERIALIZATION_INFO +{ + unsigned long Version; + PFORMAT_STRING TypeFormatString; + unsigned short FormatStringSize; + unsigned short TypeOffset; + PMIDL_STUB_DESC StubDesc; +} MIDL_WINRT_TYPE_SERIALIZATION_INFO, *PMIDL_WINRT_TYPE_SERIALIZATION_INFO; + + + + + +RPC_STATUS __stdcall +NdrClientGetSupportedSyntaxes( + RPC_CLIENT_INTERFACE * pInf, + unsigned long * pCount, + MIDL_SYNTAX_INFO ** pArr ); + + +RPC_STATUS __stdcall +NdrServerGetSupportedSyntaxes( + RPC_SERVER_INTERFACE * pInf, + unsigned long * pCount, + MIDL_SYNTAX_INFO ** pArr, + unsigned long * pPreferSyntaxIndex); + + + + +#pragma warning(push) + +#pragma warning(disable: 28740) + +__declspec(dllimport) +void +__stdcall +NdrSimpleTypeMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + unsigned char FormatChar + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrPointerMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrCsArrayMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrCsTagMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +unsigned char * +__stdcall +NdrSimpleStructMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrConformantStructMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrConformantVaryingStructMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrComplexStructMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +unsigned char * +__stdcall +NdrFixedArrayMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrConformantArrayMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrConformantVaryingArrayMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrVaryingArrayMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrComplexArrayMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +unsigned char * +__stdcall +NdrNonConformantStringMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrConformantStringMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +unsigned char * +__stdcall +NdrEncapsulatedUnionMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrNonEncapsulatedUnionMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +unsigned char * +__stdcall +NdrByteCountPointerMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +unsigned char * +__stdcall +NdrXmitOrRepAsMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +unsigned char * +__stdcall +NdrUserMarshalMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +unsigned char * +__stdcall +NdrInterfacePointerMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrClientContextMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + NDR_CCONTEXT ContextHandle, + int fCheck + ); + +__declspec(dllimport) +void +__stdcall +NdrServerContextMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + NDR_SCONTEXT ContextHandle, + NDR_RUNDOWN RundownRoutine + ); + +__declspec(dllimport) +void +__stdcall +NdrServerContextNewMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + NDR_SCONTEXT ContextHandle, + NDR_RUNDOWN RundownRoutine, + PFORMAT_STRING pFormat + ); + + + + + +__declspec(dllimport) +void +__stdcall +NdrSimpleTypeUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + unsigned char FormatChar + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrCsArrayUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char ** ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrCsTagUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char ** ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrRangeUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char ** ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +__declspec(dllimport) +void +__stdcall +NdrCorrelationInitialize( + PMIDL_STUB_MESSAGE pStubMsg, + void * pMemory, + unsigned long CacheSize, + unsigned long flags + ); + +__declspec(dllimport) +void +__stdcall +NdrCorrelationPass( + PMIDL_STUB_MESSAGE pStubMsg + ); + +__declspec(dllimport) +void +__stdcall +NdrCorrelationFree( + PMIDL_STUB_MESSAGE pStubMsg + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrPointerUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + + + +__declspec(dllimport) +unsigned char * +__stdcall +NdrSimpleStructUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrConformantStructUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrConformantVaryingStructUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrComplexStructUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + + + +__declspec(dllimport) +unsigned char * +__stdcall +NdrFixedArrayUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrConformantArrayUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrConformantVaryingArrayUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrVaryingArrayUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrComplexArrayUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + + + +__declspec(dllimport) +unsigned char * +__stdcall +NdrNonConformantStringUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrConformantStringUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + + + +__declspec(dllimport) +unsigned char * +__stdcall +NdrEncapsulatedUnionUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrNonEncapsulatedUnionUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + + + +__declspec(dllimport) +unsigned char * +__stdcall +NdrByteCountPointerUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + + + +__declspec(dllimport) +unsigned char * +__stdcall +NdrXmitOrRepAsUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + + + +__declspec(dllimport) +unsigned char * +__stdcall +NdrUserMarshalUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + + + +__declspec(dllimport) +unsigned char * +__stdcall +NdrInterfacePointerUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * * ppMemory, + PFORMAT_STRING pFormat, + unsigned char fMustAlloc + ); + + + +__declspec(dllimport) +void +__stdcall +NdrClientContextUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + NDR_CCONTEXT * pContextHandle, + RPC_BINDING_HANDLE BindHandle + ); + +__declspec(dllimport) +NDR_SCONTEXT +__stdcall +NdrServerContextUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg + ); + + + +__declspec(dllimport) +NDR_SCONTEXT +__stdcall +NdrContextHandleInitialize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +NDR_SCONTEXT +__stdcall +NdrServerContextNewUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + + + + + +__declspec(dllimport) +void +__stdcall +NdrPointerBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrCsArrayBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrCsTagBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrSimpleStructBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrConformantStructBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrConformantVaryingStructBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrComplexStructBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrFixedArrayBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrConformantArrayBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrConformantVaryingArrayBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrVaryingArrayBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrComplexArrayBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrConformantStringBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrNonConformantStringBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrEncapsulatedUnionBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrNonEncapsulatedUnionBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrByteCountPointerBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrXmitOrRepAsBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrUserMarshalBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrInterfacePointerBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrContextHandleSize( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + + + +__declspec(dllimport) +unsigned long +__stdcall +NdrPointerMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned long +__stdcall +NdrContextHandleMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + + + + +__declspec(dllimport) +unsigned long +__stdcall +NdrCsArrayMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned long +__stdcall +NdrCsTagMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +unsigned long +__stdcall +NdrSimpleStructMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned long +__stdcall +NdrConformantStructMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned long +__stdcall +NdrConformantVaryingStructMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned long +__stdcall +NdrComplexStructMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +unsigned long +__stdcall +NdrFixedArrayMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned long +__stdcall +NdrConformantArrayMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned long +__stdcall +NdrConformantVaryingArrayMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned long +__stdcall +NdrVaryingArrayMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned long +__stdcall +NdrComplexArrayMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +unsigned long +__stdcall +NdrConformantStringMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned long +__stdcall +NdrNonConformantStringMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +unsigned long +__stdcall +NdrEncapsulatedUnionMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +unsigned long +__stdcall +NdrNonEncapsulatedUnionMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +unsigned long +__stdcall +NdrXmitOrRepAsMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +unsigned long +__stdcall +NdrUserMarshalMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +unsigned long +__stdcall +NdrInterfacePointerMemorySize( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + + + + + +__declspec(dllimport) +void +__stdcall +NdrPointerFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrCsArrayFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrSimpleStructFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrConformantStructFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrConformantVaryingStructFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrComplexStructFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrFixedArrayFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrConformantArrayFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrConformantVaryingArrayFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrVaryingArrayFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrComplexArrayFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrEncapsulatedUnionFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + +__declspec(dllimport) +void +__stdcall +NdrNonEncapsulatedUnionFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrByteCountPointerFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrXmitOrRepAsFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrUserMarshalFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +void +__stdcall +NdrInterfacePointerFree( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pMemory, + PFORMAT_STRING pFormat + ); + + + + + +__declspec(dllimport) +void +__stdcall +NdrConvert2( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat, + long NumberParams + ); + +__declspec(dllimport) +void +__stdcall +NdrConvert( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); +# 2418 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +__declspec(dllimport) +unsigned char * +__stdcall +NdrUserMarshalSimpleTypeConvert( + unsigned long * pFlags, + unsigned char * pBuffer, + unsigned char FormatChar + ); + + + + + +__declspec(dllimport) +void +__stdcall +NdrClientInitializeNew( + PRPC_MESSAGE pRpcMsg, + PMIDL_STUB_MESSAGE pStubMsg, + PMIDL_STUB_DESC pStubDescriptor, + unsigned int ProcNum + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrServerInitializeNew( + PRPC_MESSAGE pRpcMsg, + PMIDL_STUB_MESSAGE pStubMsg, + PMIDL_STUB_DESC pStubDescriptor + ); + +__declspec(dllimport) +void +__stdcall +NdrServerInitializePartial( + PRPC_MESSAGE pRpcMsg, + PMIDL_STUB_MESSAGE pStubMsg, + PMIDL_STUB_DESC pStubDescriptor, + unsigned long RequestedBufferSize + ); + +__declspec(dllimport) +void +__stdcall +NdrClientInitialize( + PRPC_MESSAGE pRpcMsg, + PMIDL_STUB_MESSAGE pStubMsg, + PMIDL_STUB_DESC pStubDescriptor, + unsigned int ProcNum + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrServerInitialize( + PRPC_MESSAGE pRpcMsg, + PMIDL_STUB_MESSAGE pStubMsg, + PMIDL_STUB_DESC pStubDescriptor + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrServerInitializeUnmarshall ( + PMIDL_STUB_MESSAGE pStubMsg, + PMIDL_STUB_DESC pStubDescriptor, + PRPC_MESSAGE pRpcMsg + ); + +__declspec(dllimport) +void +__stdcall +NdrServerInitializeMarshall ( + PRPC_MESSAGE pRpcMsg, + PMIDL_STUB_MESSAGE pStubMsg + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrGetBuffer( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned long BufferLength, + RPC_BINDING_HANDLE Handle + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrNsGetBuffer( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned long BufferLength, + RPC_BINDING_HANDLE Handle + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrSendReceive( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pBufferEnd + ); + +__declspec(dllimport) +unsigned char * +__stdcall +NdrNsSendReceive( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned char * pBufferEnd, + RPC_BINDING_HANDLE * pAutoHandle + ); + +__declspec(dllimport) +void +__stdcall +NdrFreeBuffer( + PMIDL_STUB_MESSAGE pStubMsg + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +NdrGetDcomProtocolVersion( + PMIDL_STUB_MESSAGE pStubMsg, + RPC_VERSION * pVersion ); + +#pragma warning(pop) + + + + + + + +CLIENT_CALL_RETURN __cdecl +NdrClientCall2( + PMIDL_STUB_DESC pStubDescriptor, + PFORMAT_STRING pFormat, + ... + ); + +CLIENT_CALL_RETURN __cdecl +NdrClientCall( + PMIDL_STUB_DESC pStubDescriptor, + PFORMAT_STRING pFormat, + ... + ); + +CLIENT_CALL_RETURN __cdecl +NdrAsyncClientCall( + PMIDL_STUB_DESC pStubDescriptor, + PFORMAT_STRING pFormat, + ... + ); + + + +CLIENT_CALL_RETURN __cdecl +NdrClientCall4( + PMIDL_STUB_DESC pStubDescriptor, + PFORMAT_STRING pFormat, + ... + ); + +CLIENT_CALL_RETURN __cdecl +NdrAsyncClientCall2( + PMIDL_STUB_DESC pStubDescriptor, + PFORMAT_STRING pFormat, + ... + ); + +CLIENT_CALL_RETURN __cdecl +NdrMesProcEncodeDecode4( + handle_t Handle, + const MIDL_STUB_DESC * pStubDescriptor, + PFORMAT_STRING pFormat, + ... + ); +# 2606 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +CLIENT_CALL_RETURN __cdecl +NdrDcomAsyncClientCall( + PMIDL_STUB_DESC pStubDescriptor, + PFORMAT_STRING pFormat, + ... + ); + + + +CLIENT_CALL_RETURN __cdecl +NdrDcomAsyncClientCall2( + PMIDL_STUB_DESC pStubDescriptor, + PFORMAT_STRING pFormat, + ... + ); +# 2631 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +typedef enum { + STUB_UNMARSHAL, + STUB_CALL_SERVER, + STUB_MARSHAL, + STUB_CALL_SERVER_NO_HRESULT +}STUB_PHASE; + +typedef enum { + PROXY_CALCSIZE, + PROXY_GETBUFFER, + PROXY_MARSHAL, + PROXY_SENDRECEIVE, + PROXY_UNMARSHAL +}PROXY_PHASE; + +struct IRpcStubBuffer; + + + +__declspec(dllimport) +void +__stdcall +NdrAsyncServerCall( + PRPC_MESSAGE pRpcMsg + ); + + +__declspec(dllimport) +long +__stdcall +NdrAsyncStubCall( + struct IRpcStubBuffer * pThis, + struct IRpcChannelBuffer * pChannel, + PRPC_MESSAGE pRpcMsg, + unsigned long * pdwStubPhase + ); +# 2675 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +__declspec(dllimport) +long +__stdcall +NdrDcomAsyncStubCall( + struct IRpcStubBuffer * pThis, + struct IRpcChannelBuffer * pChannel, + PRPC_MESSAGE pRpcMsg, + unsigned long * pdwStubPhase + ); + + + + + + + +__declspec(dllimport) +long +__stdcall +NdrStubCall2( + void * pThis, + void * pChannel, + PRPC_MESSAGE pRpcMsg, + unsigned long * pdwStubPhase + ); + +__declspec(dllimport) +void +__stdcall +NdrServerCall2( + PRPC_MESSAGE pRpcMsg + ); + +__declspec(dllimport) +long +__stdcall +NdrStubCall ( + void * pThis, + void * pChannel, + PRPC_MESSAGE pRpcMsg, + unsigned long * pdwStubPhase + ); + +__declspec(dllimport) +void +__stdcall +NdrServerCall( + PRPC_MESSAGE pRpcMsg + ); + +__declspec(dllimport) +int +__stdcall +NdrServerUnmarshall( + void * pChannel, + PRPC_MESSAGE pRpcMsg, + PMIDL_STUB_MESSAGE pStubMsg, + PMIDL_STUB_DESC pStubDescriptor, + PFORMAT_STRING pFormat, + void * pParamList + ); + +__declspec(dllimport) +void +__stdcall +NdrServerMarshall( + void * pThis, + void * pChannel, + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat + ); + + + +__declspec(dllimport) +RPC_STATUS +__stdcall +NdrMapCommAndFaultStatus( + PMIDL_STUB_MESSAGE pStubMsg, + unsigned long * pCommStatus, + unsigned long * pFaultStatus, + RPC_STATUS Status + ); + + + + + + + +typedef void * RPC_SS_THREAD_HANDLE; + +typedef void * __stdcall +RPC_CLIENT_ALLOC ( + size_t Size + ); + +typedef void __stdcall +RPC_CLIENT_FREE ( + void * Ptr + ); + + + + + +__declspec(dllimport) +void * +__stdcall +RpcSsAllocate ( + size_t Size + ); + +__declspec(dllimport) +void +__stdcall +RpcSsDisableAllocate ( + void + ); + +__declspec(dllimport) +void +__stdcall +RpcSsEnableAllocate ( + void + ); + +__declspec(dllimport) +void +__stdcall +RpcSsFree ( + void * NodeToFree + ); + +__declspec(dllimport) +RPC_SS_THREAD_HANDLE +__stdcall +RpcSsGetThreadHandle ( + void + ); + +__declspec(dllimport) +void +__stdcall +RpcSsSetClientAllocFree ( + RPC_CLIENT_ALLOC * ClientAlloc, + RPC_CLIENT_FREE * ClientFree + ); + +__declspec(dllimport) +void +__stdcall +RpcSsSetThreadHandle ( + RPC_SS_THREAD_HANDLE Id + ); + +__declspec(dllimport) +void +__stdcall +RpcSsSwapClientAllocFree ( + RPC_CLIENT_ALLOC * ClientAlloc, + RPC_CLIENT_FREE * ClientFree, + RPC_CLIENT_ALLOC * * OldClientAlloc, + RPC_CLIENT_FREE * * OldClientFree + ); + + + + + +__declspec(dllimport) +void * +__stdcall +RpcSmAllocate ( + size_t Size, + RPC_STATUS * pStatus + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcSmClientFree ( + void * pNodeToFree + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcSmDestroyClientContext ( + void * * ContextHandle + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcSmDisableAllocate ( + void + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcSmEnableAllocate ( + void + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcSmFree ( + void * NodeToFree + ); + +__declspec(dllimport) +RPC_SS_THREAD_HANDLE +__stdcall +RpcSmGetThreadHandle ( + RPC_STATUS * pStatus + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcSmSetClientAllocFree ( + RPC_CLIENT_ALLOC * ClientAlloc, + RPC_CLIENT_FREE * ClientFree + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcSmSetThreadHandle ( + RPC_SS_THREAD_HANDLE Id + ); + +__declspec(dllimport) +RPC_STATUS +__stdcall +RpcSmSwapClientAllocFree ( + RPC_CLIENT_ALLOC * ClientAlloc, + RPC_CLIENT_FREE * ClientFree, + RPC_CLIENT_ALLOC * * OldClientAlloc, + RPC_CLIENT_FREE * * OldClientFree + ); + + + + + +__declspec(dllimport) +void +__stdcall +NdrRpcSsEnableAllocate( + PMIDL_STUB_MESSAGE pMessage ); + +__declspec(dllimport) +void +__stdcall +NdrRpcSsDisableAllocate( + PMIDL_STUB_MESSAGE pMessage ); + +__declspec(dllimport) +void +__stdcall +NdrRpcSmSetClientToOsf( + PMIDL_STUB_MESSAGE pMessage ); + +__declspec(dllimport) +void * +__stdcall +NdrRpcSmClientAllocate ( + size_t Size + ); + +__declspec(dllimport) +void +__stdcall +NdrRpcSmClientFree ( + void * NodeToFree + ); + +__declspec(dllimport) +void * +__stdcall +NdrRpcSsDefaultAllocate ( + size_t Size + ); + +__declspec(dllimport) +void +__stdcall +NdrRpcSsDefaultFree ( + void * NodeToFree + ); +# 2978 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +__declspec(dllimport) +PFULL_PTR_XLAT_TABLES +__stdcall +NdrFullPointerXlatInit( + unsigned long NumberOfPointers, + XLAT_SIDE XlatSide + ); + +__declspec(dllimport) +void +__stdcall +NdrFullPointerXlatFree( + PFULL_PTR_XLAT_TABLES pXlatTables + ); + + +__declspec(dllimport) +void * +__stdcall +NdrAllocate( + PMIDL_STUB_MESSAGE pStubMsg, + size_t Len + ); + +__declspec(dllimport) +void +__stdcall +NdrClearOutParameters( + PMIDL_STUB_MESSAGE pStubMsg, + PFORMAT_STRING pFormat, + void * ArgAddr + ); + + + + + + +__declspec(dllimport) +void * +__stdcall +NdrOleAllocate ( + size_t Size + ); + +__declspec(dllimport) +void +__stdcall +NdrOleFree ( + void * NodeToFree + ); +# 3077 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +typedef struct _NDR_USER_MARSHAL_INFO_LEVEL1 +{ + void * Buffer; + unsigned long BufferSize; + void *(__stdcall * pfnAllocate)(size_t); + void (__stdcall * pfnFree)(void *); + struct IRpcChannelBuffer * pRpcChannelBuffer; + ULONG_PTR Reserved[5]; +} NDR_USER_MARSHAL_INFO_LEVEL1; + + + +#pragma warning(push) + +#pragma warning(disable: 4201) + + +typedef struct _NDR_USER_MARSHAL_INFO +{ + unsigned long InformationLevel; + union { + NDR_USER_MARSHAL_INFO_LEVEL1 Level1; + } ; +} NDR_USER_MARSHAL_INFO; + + + +#pragma warning(pop) + + + + + + +RPC_STATUS +__stdcall +NdrGetUserMarshalInfo ( + unsigned long * pFlags, + unsigned long InformationLevel, + NDR_USER_MARSHAL_INFO * pMarshalInfo + ); + + + + +RPC_STATUS __stdcall +NdrCreateServerInterfaceFromStub( + struct IRpcStubBuffer* pStub, + RPC_SERVER_INTERFACE *pServerIf ); + + + + +CLIENT_CALL_RETURN __cdecl +NdrClientCall3( + MIDL_STUBLESS_PROXY_INFO *pProxyInfo, + unsigned long nProcNum, + void * pReturnValue, + ... + ); + +CLIENT_CALL_RETURN __cdecl +Ndr64AsyncClientCall( + MIDL_STUBLESS_PROXY_INFO *pProxyInfo, + unsigned long nProcNum, + void * pReturnValue, + ... + ); + + + + + + + +CLIENT_CALL_RETURN __cdecl +Ndr64DcomAsyncClientCall( + MIDL_STUBLESS_PROXY_INFO *pProxyInfo, + unsigned long nProcNum, + void * pReturnValue, + ... + ); + +__declspec(dllimport) +void +__stdcall +Ndr64AsyncServerCall( + PRPC_MESSAGE pRpcMsg + ); + + + + + + + +struct IRpcStubBuffer; + +__declspec(dllimport) +void +__stdcall +Ndr64AsyncServerCall64( + PRPC_MESSAGE pRpcMsg + ); + +__declspec(dllimport) +void +__stdcall +Ndr64AsyncServerCallAll( + PRPC_MESSAGE pRpcMsg + ); + +__declspec(dllimport) +long +__stdcall +Ndr64AsyncStubCall( + struct IRpcStubBuffer * pThis, + struct IRpcChannelBuffer * pChannel, + PRPC_MESSAGE pRpcMsg, + unsigned long * pdwStubPhase + ); +# 3206 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" +__declspec(dllimport) +long +__stdcall +Ndr64DcomAsyncStubCall( + struct IRpcStubBuffer * pThis, + struct IRpcChannelBuffer * pChannel, + PRPC_MESSAGE pRpcMsg, + unsigned long * pdwStubPhase + ); + + + + + + + +__declspec(dllimport) +long +__stdcall +NdrStubCall3 ( + void * pThis, + void * pChannel, + PRPC_MESSAGE pRpcMsg, + unsigned long * pdwStubPhase + ); + +__declspec(dllimport) +void +__stdcall +NdrServerCallAll( + PRPC_MESSAGE pRpcMsg + ); + +__declspec(dllimport) +void +__stdcall +NdrServerCallNdr64( + PRPC_MESSAGE pRpcMsg + ); + + +__declspec(dllimport) +void +__stdcall +NdrServerCall3( + PRPC_MESSAGE pRpcMsg + ); + + + +__declspec(dllimport) +void +__stdcall +NdrPartialIgnoreClientMarshall( + PMIDL_STUB_MESSAGE pStubMsg, + void * pMemory + ); + +__declspec(dllimport) +void +__stdcall +NdrPartialIgnoreServerUnmarshall( + PMIDL_STUB_MESSAGE pStubMsg, + void ** ppMemory + ); + +__declspec(dllimport) +void +__stdcall +NdrPartialIgnoreClientBufferSize( + PMIDL_STUB_MESSAGE pStubMsg, + void * pMemory + ); + +__declspec(dllimport) +void +__stdcall +NdrPartialIgnoreServerInitialize( + PMIDL_STUB_MESSAGE pStubMsg, + void ** ppMemory, + PFORMAT_STRING pFormat + ); + + +void __stdcall +RpcUserFree( handle_t AsyncHandle, void * pBuffer ); + + + + + +} + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 3300 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/rpcndr.h" 2 + + + + + +#pragma warning(pop) +# 22 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\wtypes.h" 2 +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\wtypes.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/wtypesbase.h" 1 +# 40 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/wtypesbase.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/guiddef.h" 1 +# 40 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/wtypesbase.h" 2 + + + +extern "C"{ +# 60 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/wtypesbase.h" +#pragma warning(push) +#pragma warning(disable: 4820) + + + +extern RPC_IF_HANDLE __MIDL_itf_wtypesbase_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_wtypesbase_0000_0000_v0_0_s_ifspec; +# 117 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/wtypesbase.h" +typedef WCHAR OLECHAR; + +typedef OLECHAR *LPOLESTR; + +typedef const OLECHAR *LPCOLESTR; +# 142 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/wtypesbase.h" +typedef unsigned char UCHAR; + +typedef short SHORT; + +typedef unsigned short USHORT; + +typedef DWORD ULONG; + +typedef double DOUBLE; +# 262 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/wtypesbase.h" +typedef struct _COAUTHIDENTITY + { + USHORT *User; + ULONG UserLength; + USHORT *Domain; + ULONG DomainLength; + USHORT *Password; + ULONG PasswordLength; + ULONG Flags; + } COAUTHIDENTITY; + +typedef struct _COAUTHINFO + { + DWORD dwAuthnSvc; + DWORD dwAuthzSvc; + LPWSTR pwszServerPrincName; + DWORD dwAuthnLevel; + DWORD dwImpersonationLevel; + COAUTHIDENTITY *pAuthIdentityData; + DWORD dwCapabilities; + } COAUTHINFO; + +typedef LONG SCODE; + +typedef SCODE *PSCODE; +# 316 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/wtypesbase.h" +typedef +enum tagMEMCTX + { + MEMCTX_TASK = 1, + MEMCTX_SHARED = 2, + MEMCTX_MACSYSTEM = 3, + MEMCTX_UNKNOWN = -1, + MEMCTX_SAME = -2 + } MEMCTX; +# 354 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/wtypesbase.h" +typedef +enum tagCLSCTX + { + CLSCTX_INPROC_SERVER = 0x1, + CLSCTX_INPROC_HANDLER = 0x2, + CLSCTX_LOCAL_SERVER = 0x4, + CLSCTX_INPROC_SERVER16 = 0x8, + CLSCTX_REMOTE_SERVER = 0x10, + CLSCTX_INPROC_HANDLER16 = 0x20, + CLSCTX_RESERVED1 = 0x40, + CLSCTX_RESERVED2 = 0x80, + CLSCTX_RESERVED3 = 0x100, + CLSCTX_RESERVED4 = 0x200, + CLSCTX_NO_CODE_DOWNLOAD = 0x400, + CLSCTX_RESERVED5 = 0x800, + CLSCTX_NO_CUSTOM_MARSHAL = 0x1000, + CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000, + CLSCTX_NO_FAILURE_LOG = 0x4000, + CLSCTX_DISABLE_AAA = 0x8000, + CLSCTX_ENABLE_AAA = 0x10000, + CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000, + CLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000, + CLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000, + CLSCTX_ENABLE_CLOAKING = 0x100000, + CLSCTX_APPCONTAINER = 0x400000, + CLSCTX_ACTIVATE_AAA_AS_IU = 0x800000, + CLSCTX_PS_DLL = ( int )0x80000000 + } CLSCTX; +# 402 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/wtypesbase.h" +typedef +enum tagMSHLFLAGS + { + MSHLFLAGS_NORMAL = 0, + MSHLFLAGS_TABLESTRONG = 1, + MSHLFLAGS_TABLEWEAK = 2, + MSHLFLAGS_NOPING = 4, + MSHLFLAGS_RESERVED1 = 8, + MSHLFLAGS_RESERVED2 = 16, + MSHLFLAGS_RESERVED3 = 32, + MSHLFLAGS_RESERVED4 = 64 + } MSHLFLAGS; + +typedef +enum tagMSHCTX + { + MSHCTX_LOCAL = 0, + MSHCTX_NOSHAREDMEM = 1, + MSHCTX_DIFFERENTMACHINE = 2, + MSHCTX_INPROC = 3, + MSHCTX_CROSSCTX = 4 + } MSHCTX; + +typedef struct _BYTE_BLOB + { + ULONG clSize; + byte abData[ 1 ]; + } BYTE_BLOB; + +typedef BYTE_BLOB *UP_BYTE_BLOB; + +typedef struct _WORD_BLOB + { + ULONG clSize; + unsigned short asData[ 1 ]; + } WORD_BLOB; + +typedef WORD_BLOB *UP_WORD_BLOB; + +typedef struct _DWORD_BLOB + { + ULONG clSize; + ULONG alData[ 1 ]; + } DWORD_BLOB; + +typedef DWORD_BLOB *UP_DWORD_BLOB; + +typedef struct _FLAGGED_BYTE_BLOB + { + ULONG fFlags; + ULONG clSize; + byte abData[ 1 ]; + } FLAGGED_BYTE_BLOB; + +typedef FLAGGED_BYTE_BLOB *UP_FLAGGED_BYTE_BLOB; + +typedef struct _FLAGGED_WORD_BLOB + { + ULONG fFlags; + ULONG clSize; + unsigned short asData[ 1 ]; + } FLAGGED_WORD_BLOB; + +typedef FLAGGED_WORD_BLOB *UP_FLAGGED_WORD_BLOB; + +typedef struct _BYTE_SIZEDARR + { + ULONG clSize; + byte *pData; + } BYTE_SIZEDARR; + +typedef struct _SHORT_SIZEDARR + { + ULONG clSize; + unsigned short *pData; + } WORD_SIZEDARR; + +typedef struct _LONG_SIZEDARR + { + ULONG clSize; + ULONG *pData; + } DWORD_SIZEDARR; + +typedef struct _HYPER_SIZEDARR + { + ULONG clSize; + __int64 *pData; + } HYPER_SIZEDARR; + + + +extern RPC_IF_HANDLE IWinTypesBase_v0_1_c_ifspec; +extern RPC_IF_HANDLE IWinTypesBase_v0_1_s_ifspec; + + + + + +typedef boolean BOOLEAN; + + + + + +typedef struct tagBLOB + { + ULONG cbSize; + BYTE *pBlobData; + } BLOB; + +typedef struct tagBLOB *LPBLOB; +# 547 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/wtypesbase.h" +#pragma warning(pop) + + + +extern RPC_IF_HANDLE __MIDL_itf_wtypesbase_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_wtypesbase_0000_0001_v0_0_s_ifspec; + + + + + + +} +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\wtypes.h" 2 + + + +extern "C"{ +# 59 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\wtypes.h" +#pragma warning(push) +#pragma warning(disable: 4820) + + + +extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_0000_v0_0_s_ifspec; + + + + + + + +typedef struct tagRemHGLOBAL + { + LONG fNullHGlobal; + ULONG cbData; + byte data[ 1 ]; + } RemHGLOBAL; + +typedef struct tagRemHMETAFILEPICT + { + LONG mm; + LONG xExt; + LONG yExt; + ULONG cbData; + byte data[ 1 ]; + } RemHMETAFILEPICT; + +typedef struct tagRemHENHMETAFILE + { + ULONG cbData; + byte data[ 1 ]; + } RemHENHMETAFILE; + +typedef struct tagRemHBITMAP + { + ULONG cbData; + byte data[ 1 ]; + } RemHBITMAP; + +typedef struct tagRemHPALETTE + { + ULONG cbData; + byte data[ 1 ]; + } RemHPALETTE; + +typedef struct tagRemBRUSH + { + ULONG cbData; + byte data[ 1 ]; + } RemHBRUSH; +# 345 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\wtypes.h" +typedef +enum tagDVASPECT + { + DVASPECT_CONTENT = 1, + DVASPECT_THUMBNAIL = 2, + DVASPECT_ICON = 4, + DVASPECT_DOCPRINT = 8 + } DVASPECT; + +typedef +enum tagSTGC + { + STGC_DEFAULT = 0, + STGC_OVERWRITE = 1, + STGC_ONLYIFCURRENT = 2, + STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4, + STGC_CONSOLIDATE = 8 + } STGC; + +typedef +enum tagSTGMOVE + { + STGMOVE_MOVE = 0, + STGMOVE_COPY = 1, + STGMOVE_SHALLOWCOPY = 2 + } STGMOVE; + +typedef +enum tagSTATFLAG + { + STATFLAG_DEFAULT = 0, + STATFLAG_NONAME = 1, + STATFLAG_NOOPEN = 2 + } STATFLAG; + +typedef void *HCONTEXT; + + + +typedef DWORD LCID; + + + + +typedef USHORT LANGID; +# 398 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\wtypes.h" +typedef struct _userCLIPFORMAT + { + LONG fContext; + union __MIDL_IWinTypes_0001 + { + DWORD dwValue; + wchar_t *pwszName; + } u; + } userCLIPFORMAT; + +typedef userCLIPFORMAT *wireCLIPFORMAT; + +typedef WORD CLIPFORMAT; + +typedef struct _GDI_NONREMOTE + { + LONG fContext; + union __MIDL_IWinTypes_0002 + { + LONG hInproc; + DWORD_BLOB *hRemote; + } u; + } GDI_NONREMOTE; + +typedef struct _userHGLOBAL + { + LONG fContext; + union __MIDL_IWinTypes_0003 + { + LONG hInproc; + FLAGGED_BYTE_BLOB *hRemote; + __int64 hInproc64; + } u; + } userHGLOBAL; + +typedef userHGLOBAL *wireHGLOBAL; + +typedef struct _userHMETAFILE + { + LONG fContext; + union __MIDL_IWinTypes_0004 + { + LONG hInproc; + BYTE_BLOB *hRemote; + __int64 hInproc64; + } u; + } userHMETAFILE; + +typedef struct _remoteMETAFILEPICT + { + LONG mm; + LONG xExt; + LONG yExt; + userHMETAFILE *hMF; + } remoteMETAFILEPICT; + +typedef struct _userHMETAFILEPICT + { + LONG fContext; + union __MIDL_IWinTypes_0005 + { + LONG hInproc; + remoteMETAFILEPICT *hRemote; + __int64 hInproc64; + } u; + } userHMETAFILEPICT; + +typedef struct _userHENHMETAFILE + { + LONG fContext; + union __MIDL_IWinTypes_0006 + { + LONG hInproc; + BYTE_BLOB *hRemote; + __int64 hInproc64; + } u; + } userHENHMETAFILE; + +typedef struct _userBITMAP + { + LONG bmType; + LONG bmWidth; + LONG bmHeight; + LONG bmWidthBytes; + WORD bmPlanes; + WORD bmBitsPixel; + ULONG cbSize; + byte pBuffer[ 1 ]; + } userBITMAP; + +typedef struct _userHBITMAP + { + LONG fContext; + union __MIDL_IWinTypes_0007 + { + LONG hInproc; + userBITMAP *hRemote; + __int64 hInproc64; + } u; + } userHBITMAP; + +typedef struct _userHPALETTE + { + LONG fContext; + union __MIDL_IWinTypes_0008 + { + LONG hInproc; + LOGPALETTE *hRemote; + __int64 hInproc64; + } u; + } userHPALETTE; + +typedef struct _RemotableHandle + { + LONG fContext; + union __MIDL_IWinTypes_0009 + { + LONG hInproc; + LONG hRemote; + } u; + } RemotableHandle; + +typedef RemotableHandle *wireHWND; + +typedef RemotableHandle *wireHMENU; + +typedef RemotableHandle *wireHACCEL; + +typedef RemotableHandle *wireHBRUSH; + +typedef RemotableHandle *wireHFONT; + +typedef RemotableHandle *wireHDC; + +typedef RemotableHandle *wireHICON; + +typedef RemotableHandle *wireHRGN; + +typedef RemotableHandle *wireHMONITOR; +# 614 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\wtypes.h" +typedef userHBITMAP *wireHBITMAP; + +typedef userHPALETTE *wireHPALETTE; + +typedef userHENHMETAFILE *wireHENHMETAFILE; + +typedef userHMETAFILE *wireHMETAFILE; + +typedef userHMETAFILEPICT *wireHMETAFILEPICT; +# 638 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\wtypes.h" +typedef void *HMETAFILEPICT; + + + +extern RPC_IF_HANDLE IWinTypes_v0_1_c_ifspec; +extern RPC_IF_HANDLE IWinTypes_v0_1_s_ifspec; + + + + + + + +#pragma warning(push) + +#pragma warning(disable: 4201) + +typedef double DATE; +# 670 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\wtypes.h" +typedef union tagCY { + struct { + ULONG Lo; + LONG Hi; + } ; + LONGLONG int64; +} CY; + + +typedef CY *LPCY; +# 695 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\wtypes.h" +typedef struct tagDEC { + USHORT wReserved; + union { + struct { + BYTE scale; + BYTE sign; + } ; + USHORT signscale; + } ; + ULONG Hi32; + union { + struct { + ULONG Lo32; + ULONG Mid32; + } ; + ULONGLONG Lo64; + } ; +} DECIMAL; + + + + +typedef DECIMAL *LPDECIMAL; + + + +#pragma warning(pop) + + + + +typedef FLAGGED_WORD_BLOB *wireBSTR; + + +typedef OLECHAR *BSTR; + + + + +typedef BSTR *LPBSTR; + + +typedef short VARIANT_BOOL; +# 752 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\wtypes.h" +typedef struct tagBSTRBLOB + { + ULONG cbSize; + BYTE *pData; + } BSTRBLOB; + +typedef struct tagBSTRBLOB *LPBSTRBLOB; + + + + +typedef struct tagCLIPDATA + { + ULONG cbSize; + LONG ulClipFmt; + BYTE *pClipData; + } CLIPDATA; + + + +typedef unsigned short VARTYPE; +# 833 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\wtypes.h" +enum VARENUM + { + VT_EMPTY = 0, + VT_NULL = 1, + VT_I2 = 2, + VT_I4 = 3, + VT_R4 = 4, + VT_R8 = 5, + VT_CY = 6, + VT_DATE = 7, + VT_BSTR = 8, + VT_DISPATCH = 9, + VT_ERROR = 10, + VT_BOOL = 11, + VT_VARIANT = 12, + VT_UNKNOWN = 13, + VT_DECIMAL = 14, + VT_I1 = 16, + VT_UI1 = 17, + VT_UI2 = 18, + VT_UI4 = 19, + VT_I8 = 20, + VT_UI8 = 21, + VT_INT = 22, + VT_UINT = 23, + VT_VOID = 24, + VT_HRESULT = 25, + VT_PTR = 26, + VT_SAFEARRAY = 27, + VT_CARRAY = 28, + VT_USERDEFINED = 29, + VT_LPSTR = 30, + VT_LPWSTR = 31, + VT_RECORD = 36, + VT_INT_PTR = 37, + VT_UINT_PTR = 38, + VT_FILETIME = 64, + VT_BLOB = 65, + VT_STREAM = 66, + VT_STORAGE = 67, + VT_STREAMED_OBJECT = 68, + VT_STORED_OBJECT = 69, + VT_BLOB_OBJECT = 70, + VT_CF = 71, + VT_CLSID = 72, + VT_VERSIONED_STREAM = 73, + VT_BSTR_BLOB = 0xfff, + VT_VECTOR = 0x1000, + VT_ARRAY = 0x2000, + VT_BYREF = 0x4000, + VT_RESERVED = 0x8000, + VT_ILLEGAL = 0xffff, + VT_ILLEGALMASKED = 0xfff, + VT_TYPEMASK = 0xfff + } ; +typedef ULONG PROPID; + + + +typedef struct _tagpropertykey + { + GUID fmtid; + DWORD pid; + } PROPERTYKEY; + + +typedef struct tagCSPLATFORM + { + DWORD dwPlatformId; + DWORD dwVersionHi; + DWORD dwVersionLo; + DWORD dwProcessorArch; + } CSPLATFORM; + +typedef struct tagQUERYCONTEXT + { + DWORD dwContext; + CSPLATFORM Platform; + LCID Locale; + DWORD dwVersionHi; + DWORD dwVersionLo; + } QUERYCONTEXT; + +typedef +enum tagTYSPEC + { + TYSPEC_CLSID = 0, + TYSPEC_FILEEXT = ( TYSPEC_CLSID + 1 ) , + TYSPEC_MIMETYPE = ( TYSPEC_FILEEXT + 1 ) , + TYSPEC_FILENAME = ( TYSPEC_MIMETYPE + 1 ) , + TYSPEC_PROGID = ( TYSPEC_FILENAME + 1 ) , + TYSPEC_PACKAGENAME = ( TYSPEC_PROGID + 1 ) , + TYSPEC_OBJECTID = ( TYSPEC_PACKAGENAME + 1 ) + } TYSPEC; + +typedef struct __MIDL___MIDL_itf_wtypes_0000_0001_0001 + { + DWORD tyspec; + union __MIDL___MIDL_itf_wtypes_0000_0001_0005 + { + CLSID clsid; + LPOLESTR pFileExt; + LPOLESTR pMimeType; + LPOLESTR pProgId; + LPOLESTR pFileName; + struct + { + LPOLESTR pPackageName; + GUID PolicyId; + } ByName; + struct + { + GUID ObjectId; + GUID PolicyId; + } ByObjectId; + } tagged_union; + } uCLSSPEC; + + +#pragma warning(pop) + + + +extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_0001_v0_0_s_ifspec; + + + + + + +} +# 30 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" 1 +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +extern "C" const GUID GUID_DEVINTERFACE_DISK; +extern "C" const GUID GUID_DEVINTERFACE_CDROM; +extern "C" const GUID GUID_DEVINTERFACE_PARTITION; +extern "C" const GUID GUID_DEVINTERFACE_TAPE; +extern "C" const GUID GUID_DEVINTERFACE_WRITEONCEDISK; +extern "C" const GUID GUID_DEVINTERFACE_VOLUME; +extern "C" const GUID GUID_DEVINTERFACE_MEDIUMCHANGER; +extern "C" const GUID GUID_DEVINTERFACE_FLOPPY; +extern "C" const GUID GUID_DEVINTERFACE_CDCHANGER; +extern "C" const GUID GUID_DEVINTERFACE_STORAGEPORT; +extern "C" const GUID GUID_DEVINTERFACE_VMLUN; +extern "C" const GUID GUID_DEVINTERFACE_SES; +# 59 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +extern "C" const GUID GUID_DEVINTERFACE_HIDDEN_VOLUME; + + + + + +extern "C" const GUID GUID_DEVINTERFACE_UNIFIED_ACCESS_RPMB; + + +extern "C" const GUID GUID_DEVINTERFACE_COMPORT; + +extern "C" const GUID GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR; +# 119 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +#pragma warning(push) +#pragma warning(disable: 4201) +#pragma warning(disable: 4820) +# 285 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +extern "C" { + + + +#pragma warning(push) +#pragma warning(disable: 4820) +# 464 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_HOTPLUG_INFO { + DWORD Size; + BOOLEAN MediaRemovable; + BOOLEAN MediaHotplug; + BOOLEAN DeviceHotplug; + BOOLEAN WriteCacheEnableOverride; +} STORAGE_HOTPLUG_INFO, *PSTORAGE_HOTPLUG_INFO; +# 483 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_DEVICE_NUMBER { + + + + + + DWORD DeviceType; + + + + + + DWORD DeviceNumber; + + + + + + + DWORD PartitionNumber; +} STORAGE_DEVICE_NUMBER, *PSTORAGE_DEVICE_NUMBER; + + + + + + +typedef struct _STORAGE_BUS_RESET_REQUEST { + BYTE PathId; +} STORAGE_BUS_RESET_REQUEST, *PSTORAGE_BUS_RESET_REQUEST; + + + + + +typedef struct STORAGE_BREAK_RESERVATION_REQUEST { + DWORD Length; + BYTE _unused; + BYTE PathId; + BYTE TargetId; + BYTE Lun; +} STORAGE_BREAK_RESERVATION_REQUEST, *PSTORAGE_BREAK_RESERVATION_REQUEST; +# 537 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _PREVENT_MEDIA_REMOVAL { + BOOLEAN PreventMediaRemoval; +} PREVENT_MEDIA_REMOVAL, *PPREVENT_MEDIA_REMOVAL; + + + + + + + +typedef struct _CLASS_MEDIA_CHANGE_CONTEXT { + DWORD MediaChangeCount; + DWORD NewState; +} CLASS_MEDIA_CHANGE_CONTEXT, *PCLASS_MEDIA_CHANGE_CONTEXT; + + + + + +typedef struct _TAPE_STATISTICS { + DWORD Version; + DWORD Flags; + LARGE_INTEGER RecoveredWrites; + LARGE_INTEGER UnrecoveredWrites; + LARGE_INTEGER RecoveredReads; + LARGE_INTEGER UnrecoveredReads; + BYTE CompressionRatioReads; + BYTE CompressionRatioWrites; +} TAPE_STATISTICS, *PTAPE_STATISTICS; +# 574 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _TAPE_GET_STATISTICS { + DWORD Operation; +} TAPE_GET_STATISTICS, *PTAPE_GET_STATISTICS; +# 587 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _STORAGE_MEDIA_TYPE { +# 617 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + DDS_4mm = 0x20, + MiniQic, + Travan, + QIC, + MP_8mm, + AME_8mm, + AIT1_8mm, + DLT, + NCTP, + IBM_3480, + IBM_3490E, + IBM_Magstar_3590, + IBM_Magstar_MP, + STK_DATA_D3, + SONY_DTF, + DV_6mm, + DMI, + SONY_D2, + CLEANER_CARTRIDGE, + CD_ROM, + CD_R, + CD_RW, + DVD_ROM, + DVD_R, + DVD_RW, + MO_3_RW, + MO_5_WO, + MO_5_RW, + MO_5_LIMDOW, + PC_5_WO, + PC_5_RW, + PD_5_RW, + ABL_5_WO, + PINNACLE_APEX_5_RW, + SONY_12_WO, + PHILIPS_12_WO, + HITACHI_12_WO, + CYGNET_12_WO, + KODAK_14_WO, + MO_NFR_525, + NIKON_12_RW, + IOMEGA_ZIP, + IOMEGA_JAZ, + SYQUEST_EZ135, + SYQUEST_EZFLYER, + SYQUEST_SYJET, + AVATAR_F2, + MP2_8mm, + DST_S, + DST_M, + DST_L, + VXATape_1, + VXATape_2, + + + + STK_9840, + + LTO_Ultrium, + LTO_Accelis, + DVD_RAM, + AIT_8mm, + ADR_1, + ADR_2, + STK_9940, + SAIT, + VXATape +}STORAGE_MEDIA_TYPE, *PSTORAGE_MEDIA_TYPE; +# 699 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _STORAGE_BUS_TYPE { + BusTypeUnknown = 0x00, + BusTypeScsi, + BusTypeAtapi, + BusTypeAta, + BusType1394, + BusTypeSsa, + BusTypeFibre, + BusTypeUsb, + BusTypeRAID, + BusTypeiScsi, + BusTypeSas, + BusTypeSata, + BusTypeSd, + BusTypeMmc, + BusTypeVirtual, + BusTypeFileBackedVirtual, + BusTypeSpaces, + BusTypeNvme, + BusTypeSCM, + BusTypeMax, + BusTypeMaxReserved = 0x7F +} STORAGE_BUS_TYPE, *PSTORAGE_BUS_TYPE; +# 735 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DEVICE_MEDIA_INFO { + union { + struct { + LARGE_INTEGER Cylinders; + STORAGE_MEDIA_TYPE MediaType; + DWORD TracksPerCylinder; + DWORD SectorsPerTrack; + DWORD BytesPerSector; + DWORD NumberMediaSides; + DWORD MediaCharacteristics; + } DiskInfo; + + struct { + LARGE_INTEGER Cylinders; + STORAGE_MEDIA_TYPE MediaType; + DWORD TracksPerCylinder; + DWORD SectorsPerTrack; + DWORD BytesPerSector; + DWORD NumberMediaSides; + DWORD MediaCharacteristics; + } RemovableDiskInfo; + + struct { + STORAGE_MEDIA_TYPE MediaType; + DWORD MediaCharacteristics; + DWORD CurrentBlockSize; + STORAGE_BUS_TYPE BusType; + + + + + + union { + struct { + BYTE MediumType; + BYTE DensityCode; + } ScsiInformation; + } BusSpecificData; + + } TapeInfo; + } DeviceSpecific; +} DEVICE_MEDIA_INFO, *PDEVICE_MEDIA_INFO; + +typedef struct _GET_MEDIA_TYPES { + DWORD DeviceType; + DWORD MediaInfoCount; + DEVICE_MEDIA_INFO MediaInfo[1]; +} GET_MEDIA_TYPES, *PGET_MEDIA_TYPES; +# 797 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_PREDICT_FAILURE +{ + DWORD PredictFailure; + BYTE VendorSpecific[512]; +} STORAGE_PREDICT_FAILURE, *PSTORAGE_PREDICT_FAILURE; +# 814 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_FAILURE_PREDICTION_CONFIG { + DWORD Version; + DWORD Size; + BOOLEAN Set; + BOOLEAN Enabled; + WORD Reserved; +} STORAGE_FAILURE_PREDICTION_CONFIG, *PSTORAGE_FAILURE_PREDICTION_CONFIG; +# 850 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _STORAGE_QUERY_TYPE { + PropertyStandardQuery = 0, + PropertyExistsQuery, + PropertyMaskQuery, + PropertyQueryMaxDefined +} STORAGE_QUERY_TYPE, *PSTORAGE_QUERY_TYPE; + + + + + +typedef enum _STORAGE_PROPERTY_ID { + StorageDeviceProperty = 0, + StorageAdapterProperty, + StorageDeviceIdProperty, + StorageDeviceUniqueIdProperty, + StorageDeviceWriteCacheProperty, + StorageMiniportProperty, + StorageAccessAlignmentProperty, + StorageDeviceSeekPenaltyProperty, + StorageDeviceTrimProperty, + StorageDeviceWriteAggregationProperty, + StorageDeviceDeviceTelemetryProperty, + StorageDeviceLBProvisioningProperty, + StorageDevicePowerProperty, + StorageDeviceCopyOffloadProperty, + StorageDeviceResiliencyProperty, + StorageDeviceMediumProductType, + StorageAdapterRpmbProperty, + StorageDeviceIoCapabilityProperty = 48, + StorageAdapterProtocolSpecificProperty, + StorageDeviceProtocolSpecificProperty, + StorageAdapterTemperatureProperty, + StorageDeviceTemperatureProperty, + StorageAdapterPhysicalTopologyProperty, + StorageDevicePhysicalTopologyProperty, + StorageDeviceAttributesProperty, + StorageDeviceManagementStatus, + StorageAdapterSerialNumberProperty, + StorageDeviceLocationProperty, +} STORAGE_PROPERTY_ID, *PSTORAGE_PROPERTY_ID; + + + + + + +typedef struct _STORAGE_PROPERTY_QUERY { + + + + + + STORAGE_PROPERTY_ID PropertyId; + + + + + + STORAGE_QUERY_TYPE QueryType; + + + + + + BYTE AdditionalParameters[1]; + +} STORAGE_PROPERTY_QUERY, *PSTORAGE_PROPERTY_QUERY; + + + + + + +typedef struct _STORAGE_DESCRIPTOR_HEADER { + + DWORD Version; + + DWORD Size; + +} STORAGE_DESCRIPTOR_HEADER, *PSTORAGE_DESCRIPTOR_HEADER; +# 940 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_DEVICE_DESCRIPTOR { + + + + + + DWORD Version; + + + + + + + DWORD Size; + + + + + + BYTE DeviceType; + + + + + + BYTE DeviceTypeModifier; + + + + + + + BOOLEAN RemovableMedia; + + + + + + + + BOOLEAN CommandQueueing; + + + + + + + DWORD VendorIdOffset; + + + + + + + DWORD ProductIdOffset; + + + + + + + + DWORD ProductRevisionOffset; + + + + + + + DWORD SerialNumberOffset; + + + + + + + + STORAGE_BUS_TYPE BusType; + + + + + + + DWORD RawPropertiesLength; + + + + + + BYTE RawDeviceProperties[1]; + +} STORAGE_DEVICE_DESCRIPTOR, *PSTORAGE_DEVICE_DESCRIPTOR; +# 1043 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_ADAPTER_DESCRIPTOR { + + DWORD Version; + + DWORD Size; + + DWORD MaximumTransferLength; + + DWORD MaximumPhysicalPages; + + DWORD AlignmentMask; + + BOOLEAN AdapterUsesPio; + + BOOLEAN AdapterScansDown; + + BOOLEAN CommandQueueing; + + BOOLEAN AcceleratedTransfer; + + + + + BYTE BusType; + + + WORD BusMajorVersion; + + WORD BusMinorVersion; + + + BYTE SrbType; + + BYTE AddressType; + + +} STORAGE_ADAPTER_DESCRIPTOR, *PSTORAGE_ADAPTER_DESCRIPTOR; +# 1101 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR { + + + + + + DWORD Version; + + + + + + + DWORD Size; + + + + + + DWORD BytesPerCacheLine; + + + + + + DWORD BytesOffsetForCacheAlignment; + + + + + + DWORD BytesPerLogicalSector; + + + + + + DWORD BytesPerPhysicalSector; + + + + + + DWORD BytesOffsetForSectorAlignment; + +} STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR, *PSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR; + +typedef struct _STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR { + + + + + + DWORD Version; + + + + + + DWORD Size; + + + + + + DWORD MediumProductType; + +} STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR, *PSTORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR; + + +typedef enum _STORAGE_PORT_CODE_SET { + StoragePortCodeSetReserved = 0, + StoragePortCodeSetStorport = 1, + StoragePortCodeSetSCSIport = 2, + StoragePortCodeSetSpaceport = 3, + StoragePortCodeSetATAport = 4, + StoragePortCodeSetUSBport = 5, + StoragePortCodeSetSBP2port = 6, + StoragePortCodeSetSDport = 7 +} STORAGE_PORT_CODE_SET, *PSTORAGE_PORT_CODE_SET; + + + + + +typedef struct _STORAGE_MINIPORT_DESCRIPTOR { + + DWORD Version; + + DWORD Size; + + STORAGE_PORT_CODE_SET Portdriver; + + BOOLEAN LUNResetSupported; + + BOOLEAN TargetResetSupported; + + + WORD IoTimeoutValue; + + + + BOOLEAN ExtraIoInfoSupported; + BYTE Reserved0[3]; + DWORD Reserved1; + + +} STORAGE_MINIPORT_DESCRIPTOR, *PSTORAGE_MINIPORT_DESCRIPTOR; + + + + + + + +typedef enum _STORAGE_IDENTIFIER_CODE_SET { + StorageIdCodeSetReserved = 0, + StorageIdCodeSetBinary = 1, + StorageIdCodeSetAscii = 2, + StorageIdCodeSetUtf8 = 3 +} STORAGE_IDENTIFIER_CODE_SET, *PSTORAGE_IDENTIFIER_CODE_SET; + +typedef enum _STORAGE_IDENTIFIER_TYPE { + StorageIdTypeVendorSpecific = 0, + StorageIdTypeVendorId = 1, + StorageIdTypeEUI64 = 2, + StorageIdTypeFCPHName = 3, + StorageIdTypePortRelative = 4, + StorageIdTypeTargetPortGroup = 5, + StorageIdTypeLogicalUnitGroup = 6, + StorageIdTypeMD5LogicalUnitIdentifier = 7, + StorageIdTypeScsiNameString = 8 +} STORAGE_IDENTIFIER_TYPE, *PSTORAGE_IDENTIFIER_TYPE; + + + + + +typedef enum _STORAGE_ID_NAA_FORMAT { + StorageIdNAAFormatIEEEExtended = 2, + StorageIdNAAFormatIEEERegistered = 3, + StorageIdNAAFormatIEEEERegisteredExtended = 5 +} STORAGE_ID_NAA_FORMAT, *PSTORAGE_ID_NAA_FORMAT; + +typedef enum _STORAGE_ASSOCIATION_TYPE { + StorageIdAssocDevice = 0, + StorageIdAssocPort = 1, + StorageIdAssocTarget = 2 +} STORAGE_ASSOCIATION_TYPE, *PSTORAGE_ASSOCIATION_TYPE; + +typedef struct _STORAGE_IDENTIFIER { + STORAGE_IDENTIFIER_CODE_SET CodeSet; + STORAGE_IDENTIFIER_TYPE Type; + WORD IdentifierSize; + WORD NextOffset; + + + + + + + STORAGE_ASSOCIATION_TYPE Association; + + + + + + BYTE Identifier[1]; +} STORAGE_IDENTIFIER, *PSTORAGE_IDENTIFIER; + +typedef struct _STORAGE_DEVICE_ID_DESCRIPTOR { + + DWORD Version; + + DWORD Size; + + + + + + DWORD NumberOfIdentifiers; + + + + + + + + BYTE Identifiers[1]; +} STORAGE_DEVICE_ID_DESCRIPTOR, *PSTORAGE_DEVICE_ID_DESCRIPTOR; + + +typedef struct _DEVICE_SEEK_PENALTY_DESCRIPTOR { + DWORD Version; + DWORD Size; + + BOOLEAN IncursSeekPenalty; +} DEVICE_SEEK_PENALTY_DESCRIPTOR, *PDEVICE_SEEK_PENALTY_DESCRIPTOR; + + +typedef struct _DEVICE_WRITE_AGGREGATION_DESCRIPTOR { + DWORD Version; + DWORD Size; + + BOOLEAN BenefitsFromWriteAggregation; +} DEVICE_WRITE_AGGREGATION_DESCRIPTOR, *PDEVICE_WRITE_AGGREGATION_DESCRIPTOR; + + +typedef struct _DEVICE_TRIM_DESCRIPTOR { + DWORD Version; + DWORD Size; + + BOOLEAN TrimEnabled; +} DEVICE_TRIM_DESCRIPTOR, *PDEVICE_TRIM_DESCRIPTOR; + +#pragma warning(push) +#pragma warning(disable: 4214) + + + +typedef struct _DEVICE_LB_PROVISIONING_DESCRIPTOR { + DWORD Version; + DWORD Size; + + BYTE ThinProvisioningEnabled : 1; + BYTE ThinProvisioningReadZeros : 1; + BYTE AnchorSupported : 3; + BYTE UnmapGranularityAlignmentValid : 1; + BYTE Reserved0 : 2; + BYTE Reserved1[7]; + DWORDLONG OptimalUnmapGranularity; + DWORDLONG UnmapGranularityAlignment; + + DWORD MaxUnmapLbaCount; + DWORD MaxUnmapBlockDescriptorCount; + +} DEVICE_LB_PROVISIONING_DESCRIPTOR, *PDEVICE_LB_PROVISIONING_DESCRIPTOR; +# 1351 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_LB_PROVISIONING_MAP_RESOURCES { + DWORD Size; + DWORD Version; + BYTE AvailableMappingResourcesValid : 1; + BYTE UsedMappingResourcesValid : 1; + BYTE Reserved0 : 6; + BYTE Reserved1[3]; + BYTE AvailableMappingResourcesScope : 2; + BYTE UsedMappingResourcesScope : 2; + BYTE Reserved2 : 4; + BYTE Reserved3[3]; + DWORDLONG AvailableMappingResources; + DWORDLONG UsedMappingResources; +} STORAGE_LB_PROVISIONING_MAP_RESOURCES, *PSTORAGE_LB_PROVISIONING_MAP_RESOURCES; + +#pragma warning(pop) + + +typedef struct _DEVICE_POWER_DESCRIPTOR { + DWORD Version; + DWORD Size; + + BOOLEAN DeviceAttentionSupported; + BOOLEAN AsynchronousNotificationSupported; + BOOLEAN IdlePowerManagementEnabled; + BOOLEAN D3ColdEnabled; + BOOLEAN D3ColdSupported; + BOOLEAN NoVerifyDuringIdlePower; + BYTE Reserved[2]; + DWORD IdleTimeoutInMS; +} DEVICE_POWER_DESCRIPTOR, *PDEVICE_POWER_DESCRIPTOR; + + + + +typedef struct _DEVICE_COPY_OFFLOAD_DESCRIPTOR { + DWORD Version; + DWORD Size; + + DWORD MaximumTokenLifetime; + DWORD DefaultTokenLifetime; + DWORDLONG MaximumTransferSize; + DWORDLONG OptimalTransferCount; + DWORD MaximumDataDescriptors; + DWORD MaximumTransferLengthPerDescriptor; + DWORD OptimalTransferLengthPerDescriptor; + WORD OptimalTransferLengthGranularity; + BYTE Reserved[2]; +} DEVICE_COPY_OFFLOAD_DESCRIPTOR, *PDEVICE_COPY_OFFLOAD_DESCRIPTOR; + + + + + +typedef struct _STORAGE_DEVICE_RESILIENCY_DESCRIPTOR { + + + + + + + DWORD Version; + + + + + + + DWORD Size; + + + + + + + DWORD NameOffset; + + + + + + + DWORD NumberOfLogicalCopies; + + + + + + + DWORD NumberOfPhysicalCopies; + + + + + + + DWORD PhysicalDiskRedundancy; + + + + + + + DWORD NumberOfColumns; + + + + + + + DWORD Interleave; + +} STORAGE_DEVICE_RESILIENCY_DESCRIPTOR, *PSTORAGE_DEVICE_RESILIENCY_DESCRIPTOR; + + + + + +typedef enum _STORAGE_RPMB_FRAME_TYPE { + + StorageRpmbFrameTypeUnknown = 0, + StorageRpmbFrameTypeStandard, + StorageRpmbFrameTypeMax, + +} STORAGE_RPMB_FRAME_TYPE, *PSTORAGE_RPMB_FRAME_TYPE; + + + + + +typedef struct _STORAGE_RPMB_DESCRIPTOR { + + + + + + + DWORD Version; + + + + + + + DWORD Size; + + + + + + + + DWORD SizeInBytes; +# 1512 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + DWORD MaxReliableWriteSizeInBytes; + + + + + + + + STORAGE_RPMB_FRAME_TYPE FrameFormat; + +} STORAGE_RPMB_DESCRIPTOR, *PSTORAGE_RPMB_DESCRIPTOR; +# 1539 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _STORAGE_TIER_MEDIA_TYPE { + + StorageTierMediaTypeUnspecified = 0, + StorageTierMediaTypeDisk, + StorageTierMediaTypeSsd + +} STORAGE_TIER_MEDIA_TYPE, *PSTORAGE_TIER_MEDIA_TYPE; + +typedef struct _STORAGE_TIER { + + + + + + GUID Id; + + + + + + WCHAR Name[(256)]; + + + + + + WCHAR Description[(256)]; + + + + + + DWORDLONG Flags; + + + + + + DWORDLONG ProvisionedCapacity; + + + + + + STORAGE_TIER_MEDIA_TYPE MediaType; + +} STORAGE_TIER, *PSTORAGE_TIER; + + + + + + +typedef struct _STORAGE_DEVICE_TIERING_DESCRIPTOR { + + + + + + + DWORD Version; + + + + + + + DWORD Size; + + + + + + + DWORD Flags; + + + + + + DWORD TotalNumberOfTiers; + + + + + + DWORD NumberOfTiersReturned; + + + + + + STORAGE_TIER Tiers[1]; + +} STORAGE_DEVICE_TIERING_DESCRIPTOR, *PSTORAGE_DEVICE_TIERING_DESCRIPTOR; + + + + + +typedef struct _STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR { + + + + + + + DWORD Version; + + + + + + + DWORD Size; + + + + + + DWORD NumberOfFaultDomains; + + + + + + GUID FaultDomainIds[1]; + +} STORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR, *PSTORAGE_DEVICE_FAULT_DOMAIN_DESCRIPTOR; +# 1678 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _STORAGE_PROTOCOL_TYPE { + ProtocolTypeUnknown = 0x00, + ProtocolTypeScsi, + ProtocolTypeAta, + ProtocolTypeNvme, + ProtocolTypeSd, + ProtocolTypeProprietary = 0x7E, + ProtocolTypeMaxReserved = 0x7F +} STORAGE_PROTOCOL_TYPE, *PSTORAGE_PROTOCOL_TYPE; + + +typedef enum _STORAGE_PROTOCOL_NVME_DATA_TYPE { + NVMeDataTypeUnknown = 0, + NVMeDataTypeIdentify, + NVMeDataTypeLogPage, + NVMeDataTypeFeature, +} STORAGE_PROTOCOL_NVME_DATA_TYPE, *PSTORAGE_PROTOCOL_NVME_DATA_TYPE; + +typedef enum _STORAGE_PROTOCOL_ATA_DATA_TYPE { + AtaDataTypeUnknown = 0, + AtaDataTypeIdentify, + AtaDataTypeLogPage, +} STORAGE_PROTOCOL_ATA_DATA_TYPE, *PSTORAGE_PROTOCOL_ATA_DATA_TYPE; + + + + + + +typedef struct _STORAGE_PROTOCOL_SPECIFIC_DATA { + + STORAGE_PROTOCOL_TYPE ProtocolType; + DWORD DataType; + + DWORD ProtocolDataRequestValue; + DWORD ProtocolDataRequestSubValue; + + DWORD ProtocolDataOffset; + DWORD ProtocolDataLength; + + DWORD FixedProtocolReturnData; + DWORD Reserved[3]; + +} STORAGE_PROTOCOL_SPECIFIC_DATA, *PSTORAGE_PROTOCOL_SPECIFIC_DATA; +# 1732 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_PROTOCOL_DATA_DESCRIPTOR { + + DWORD Version; + DWORD Size; + + STORAGE_PROTOCOL_SPECIFIC_DATA ProtocolSpecificData; + +} STORAGE_PROTOCOL_DATA_DESCRIPTOR, *PSTORAGE_PROTOCOL_DATA_DESCRIPTOR; +# 1757 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_TEMPERATURE_INFO { + + WORD Index; + SHORT Temperature; + SHORT OverThreshold; + SHORT UnderThreshold; + + BOOLEAN OverThresholdChangable; + BOOLEAN UnderThresholdChangable; + BOOLEAN EventGenerated; + BYTE Reserved0; + DWORD Reserved1; + +} STORAGE_TEMPERATURE_INFO, *PSTORAGE_TEMPERATURE_INFO; + +typedef struct _STORAGE_TEMPERATURE_DATA_DESCRIPTOR { + + DWORD Version; + DWORD Size; + + + + + + SHORT CriticalTemperature; + + + + + + SHORT WarningTemperature; + + WORD InfoCount; + + BYTE Reserved0[2]; + + DWORD Reserved1[2]; + + STORAGE_TEMPERATURE_INFO TemperatureInfo[1]; + +} STORAGE_TEMPERATURE_DATA_DESCRIPTOR, *PSTORAGE_TEMPERATURE_DATA_DESCRIPTOR; +# 1810 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_TEMPERATURE_THRESHOLD { + + DWORD Version; + DWORD Size; + + WORD Flags; + WORD Index; + + SHORT Threshold; + BOOLEAN OverThreshold; + BYTE Reserved; + +} STORAGE_TEMPERATURE_THRESHOLD, *PSTORAGE_TEMPERATURE_THRESHOLD; +# 1847 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _STORAGE_DEVICE_FORM_FACTOR { + FormFactorUnknown = 0, + + FormFactor3_5, + FormFactor2_5, + FormFactor1_8, + FormFactor1_8Less, + + FormFactorEmbedded, + FormFactorMemoryCard, + FormFactormSata, + FormFactorM_2, + FormFactorPCIeBoard, + FormFactorDimm, + +} STORAGE_DEVICE_FORM_FACTOR, *PSTORAGE_DEVICE_FORM_FACTOR; + + +typedef enum _STORAGE_COMPONENT_HEALTH_STATUS { + HealthStatusUnknown = 0, + HealthStatusNormal, + HealthStatusThrottled, + HealthStatusWarning, + HealthStatusDisabled, + HealthStatusFailed, +} STORAGE_COMPONENT_HEALTH_STATUS, *PSTORAGE_COMPONENT_HEALTH_STATUS; + +#pragma warning(push) +#pragma warning(disable: 4201) + +typedef union _STORAGE_SPEC_VERSION { + + struct { + union { + struct { + BYTE SubMinor; + BYTE Minor; + } ; + + WORD AsUshort; + + } MinorVersion; + + WORD MajorVersion; + } ; + + DWORD AsUlong; + +} STORAGE_SPEC_VERSION, *PSTORAGE_SPEC_VERSION; + +#pragma warning(pop) + + +typedef struct _STORAGE_PHYSICAL_DEVICE_DATA { + + DWORD DeviceId; + DWORD Role; + + STORAGE_COMPONENT_HEALTH_STATUS HealthStatus; + STORAGE_PROTOCOL_TYPE CommandProtocol; + STORAGE_SPEC_VERSION SpecVersion; + STORAGE_DEVICE_FORM_FACTOR FormFactor; + + BYTE Vendor[8]; + BYTE Model[40]; + BYTE FirmwareRevision[16]; + + DWORDLONG Capacity; + + BYTE PhysicalLocation[32]; + + DWORD Reserved[2]; + +} STORAGE_PHYSICAL_DEVICE_DATA, *PSTORAGE_PHYSICAL_DEVICE_DATA; + + +typedef struct _STORAGE_PHYSICAL_ADAPTER_DATA { + + DWORD AdapterId; + STORAGE_COMPONENT_HEALTH_STATUS HealthStatus; + STORAGE_PROTOCOL_TYPE CommandProtocol; + STORAGE_SPEC_VERSION SpecVersion; + + BYTE Vendor[8]; + BYTE Model[40]; + BYTE FirmwareRevision[16]; + + BYTE PhysicalLocation[32]; + + BOOLEAN ExpanderConnected; + BYTE Reserved0[3]; + DWORD Reserved1[3]; + +} STORAGE_PHYSICAL_ADAPTER_DATA, *PSTORAGE_PHYSICAL_ADAPTER_DATA; + + +typedef struct _STORAGE_PHYSICAL_NODE_DATA { + + DWORD NodeId; + + DWORD AdapterCount; + DWORD AdapterDataLength; + DWORD AdapterDataOffset; + + DWORD DeviceCount; + DWORD DeviceDataLength; + DWORD DeviceDataOffset; + + DWORD Reserved[3]; + +} STORAGE_PHYSICAL_NODE_DATA, *PSTORAGE_PHYSICAL_NODE_DATA; + + +typedef struct _STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR { + + DWORD Version; + DWORD Size; + + DWORD NodeCount; + DWORD Reserved; + + STORAGE_PHYSICAL_NODE_DATA Node[1]; + +} STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR, *PSTORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR; + + + + + + +typedef struct _STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR { + + + + + + + DWORD Version; + + + + + + DWORD Size; + + + + + + DWORD LunMaxIoCount; + + + + + + DWORD AdapterMaxIoCount; + +} STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR, *PSTORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR; + + + + + +typedef struct _STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR { + + + + + + + DWORD Version; + + + + + + DWORD Size; + + + + + + DWORD64 Attributes; + +} STORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR, *PSTORAGE_DEVICE_ATTRIBUTES_DESCRIPTOR; +# 2047 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _STORAGE_DISK_HEALTH_STATUS { + DiskHealthUnknown = 0, + DiskHealthUnhealthy, + DiskHealthWarning, + DiskHealthHealthy, + DiskHealthMax +} STORAGE_DISK_HEALTH_STATUS, *PSTORAGE_DISK_HEALTH_STATUS; + + + + +typedef enum _STORAGE_DISK_OPERATIONAL_STATUS { + DiskOpStatusNone = 0, + DiskOpStatusUnknown, + DiskOpStatusOk, + DiskOpStatusPredictingFailure, + DiskOpStatusInService, + DiskOpStatusHardwareError, + DiskOpStatusNotUsable, + DiskOpStatusTransientError, + DiskOpStatusMissing, +} STORAGE_DISK_OPERATIONAL_STATUS, *PSTORAGE_DISK_OPERATIONAL_STATUS; + + + + +typedef enum _STORAGE_OPERATIONAL_STATUS_REASON { + DiskOpReasonUnknown = 0, + DiskOpReasonScsiSenseCode, + DiskOpReasonMedia, + DiskOpReasonIo, + DiskOpReasonThresholdExceeded, + DiskOpReasonLostData, + DiskOpReasonEnergySource, + DiskOpReasonConfiguration, + DiskOpReasonDeviceController, + DiskOpReasonMediaController, + DiskOpReasonComponent, + DiskOpReasonNVDIMM_N, + DiskOpReasonBackgroundOperation, + DiskOpReasonInvalidFirmware, + DiskOpReasonHealthCheck, + DiskOpReasonLostDataPersistence, + DiskOpReasonDisabledByPlatform +} STORAGE_OPERATIONAL_STATUS_REASON, *PSTORAGE_OPERATIONAL_STATUS_REASON; + +typedef struct _STORAGE_OPERATIONAL_REASON { + DWORD Version; + DWORD Size; + STORAGE_OPERATIONAL_STATUS_REASON Reason; + + union { + + + + + struct { + BYTE SenseKey; + BYTE ASC; + BYTE ASCQ; + BYTE Reserved; + } ScsiSenseKey; + + + + + struct { + BYTE CriticalHealth; + BYTE ModuleHealth[2]; + BYTE ErrorThresholdStatus; + } NVDIMM_N; + + DWORD AsUlong; + } RawBytes; +} STORAGE_OPERATIONAL_REASON, *PSTORAGE_OPERATIONAL_REASON; + + + + + + + +typedef struct _STORAGE_DEVICE_MANAGEMENT_STATUS { + + + + + + + DWORD Version; + + + + + + + + DWORD Size; + + + + + + STORAGE_DISK_HEALTH_STATUS Health; + + + + + + DWORD NumberOfOperationalStatus; + + + + + + DWORD NumberOfAdditionalReasons; + + + + + + + STORAGE_DISK_OPERATIONAL_STATUS OperationalStatus[16]; + + + + + + STORAGE_OPERATIONAL_REASON AdditionalReasons[1]; + +} STORAGE_DEVICE_MANAGEMENT_STATUS, *PSTORAGE_DEVICE_MANAGEMENT_STATUS; +# 2193 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_ADAPTER_SERIAL_NUMBER { + + DWORD Version; + + DWORD Size; + + + + + WCHAR SerialNumber[(128)]; + +} STORAGE_ADAPTER_SERIAL_NUMBER, *PSTORAGE_ADAPTER_SERIAL_NUMBER; + + + + + + + + +#pragma warning(push) +#pragma warning(disable: 4201) +typedef struct _DEVICE_LOCATION { + + DWORD Socket; + + DWORD Slot; + + DWORD Adapter; + + DWORD Port; + + union { + + struct { + + DWORD Channel; + + DWORD Device; + + } ; + + struct { + + DWORD Target; + + DWORD Lun; + + } ; + + } ; + +} DEVICE_LOCATION, *PDEVICE_LOCATION; +#pragma warning(pop) + +typedef struct _STORAGE_DEVICE_LOCATION_DESCRIPTOR { + + DWORD Version; + + DWORD Size; + + DEVICE_LOCATION Location; + + DWORD StringOffset; + +} STORAGE_DEVICE_LOCATION_DESCRIPTOR, *PSTORAGE_DEVICE_LOCATION_DESCRIPTOR; +# 2296 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef DWORD DEVICE_DATA_MANAGEMENT_SET_ACTION; +# 2384 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DEVICE_DATA_SET_RANGE { + LONGLONG StartingOffset; + DWORDLONG LengthInBytes; +} DEVICE_DATA_SET_RANGE, *PDEVICE_DATA_SET_RANGE; +# 2397 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES { + DWORD Size; + DEVICE_DATA_MANAGEMENT_SET_ACTION Action; + + DWORD Flags; + + DWORD ParameterBlockOffset; + DWORD ParameterBlockLength; + + DWORD DataSetRangesOffset; + DWORD DataSetRangesLength; + +} DEVICE_MANAGE_DATA_SET_ATTRIBUTES, *PDEVICE_MANAGE_DATA_SET_ATTRIBUTES; + + + + + + +typedef struct _DEVICE_DSM_NOTIFICATION_PARAMETERS { + + DWORD Size; + + DWORD Flags; + + DWORD NumFileTypeIDs; + + GUID FileTypeID[1]; + +} DEVICE_DSM_NOTIFICATION_PARAMETERS, *PDEVICE_DSM_NOTIFICATION_PARAMETERS; +# 2438 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS { + DWORD Size; + + BYTE TargetPriority; + + BYTE Reserved[3]; +} DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS, *PDEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS; +# 2465 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +#pragma warning(push) +#pragma warning(disable: 4201) +typedef struct _STORAGE_OFFLOAD_TOKEN { + BYTE TokenType[4]; + BYTE Reserved[2]; + BYTE TokenIdLength[2]; + union { + struct { + BYTE Reserved2[0x1F8]; + } StorageOffloadZeroDataToken; + BYTE Token[0x1F8]; + } ; +} STORAGE_OFFLOAD_TOKEN, *PSTORAGE_OFFLOAD_TOKEN; +#pragma warning(pop) +# 2498 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DEVICE_DSM_OFFLOAD_READ_PARAMETERS { + DWORD Flags; + DWORD TimeToLive; + DWORD Reserved[2]; +} DEVICE_DSM_OFFLOAD_READ_PARAMETERS, *PDEVICE_DSM_OFFLOAD_READ_PARAMETERS; + +typedef struct _DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS { + DWORD Flags; + DWORD Reserved; + DWORDLONG TokenOffset; + STORAGE_OFFLOAD_TOKEN Token; +} DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS, *PDEVICE_DSM_OFFLOAD_WRITE_PARAMETERS; +# 2521 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DEVICE_DATA_SET_REPAIR_PARAMETERS { + + DWORD NumberOfRepairCopies; + DWORD SourceCopy; + DWORD RepairCopies[1]; + + + + +} DEVICE_DATA_SET_REPAIR_PARAMETERS, *PDEVICE_DATA_SET_REPAIR_PARAMETERS; + + + + + + +typedef struct _DEVICE_DATA_SET_LBP_STATE_PARAMETERS { + DWORD Version; + DWORD Size; + DWORD Flags; + + + + + + + DWORD OutputVersion; +} DEVICE_DATA_SET_LBP_STATE_PARAMETERS, *PDEVICE_DATA_SET_LBP_STATE_PARAMETERS; +# 2566 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT { + + DWORD Size; + + DEVICE_DATA_MANAGEMENT_SET_ACTION Action; + + DWORD Flags; + DWORD OperationStatus; + DWORD ExtendedError; + DWORD TargetDetailedError; + DWORD ReservedStatus; + + DWORD OutputBlockOffset; + DWORD OutputBlockLength; + +} DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT, *PDEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT; + + + + + +typedef struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE { + + DWORD Size; + DWORD Version; + DWORDLONG SlabSizeInBytes; + DWORD SlabOffsetDeltaInBytes; + DWORD SlabAllocationBitMapBitCount; + DWORD SlabAllocationBitMapLength; + DWORD SlabAllocationBitMap[1]; + +} DEVICE_DATA_SET_LB_PROVISIONING_STATE, *PDEVICE_DATA_SET_LB_PROVISIONING_STATE; + + + + + +typedef struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 { + + DWORD Size; + DWORD Version; + DWORDLONG SlabSizeInBytes; + DWORDLONG SlabOffsetDeltaInBytes; + DWORD SlabAllocationBitMapBitCount; + DWORD SlabAllocationBitMapLength; + DWORD SlabAllocationBitMap[1]; + +} DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2, *PDEVICE_DATA_SET_LB_PROVISIONING_STATE_V2; + + + + + +typedef struct _STORAGE_OFFLOAD_READ_OUTPUT { + + DWORD OffloadReadFlags; + DWORD Reserved; + DWORDLONG LengthProtected; + DWORD TokenLength; + STORAGE_OFFLOAD_TOKEN Token; + +} STORAGE_OFFLOAD_READ_OUTPUT, *PSTORAGE_OFFLOAD_READ_OUTPUT; + + + + + + + +typedef struct _STORAGE_OFFLOAD_WRITE_OUTPUT { + + DWORD OffloadWriteFlags; + DWORD Reserved; + DWORDLONG LengthCopied; + +} STORAGE_OFFLOAD_WRITE_OUTPUT, *PSTORAGE_OFFLOAD_WRITE_OUTPUT; +# 2654 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DEVICE_DATA_SET_SCRUB_OUTPUT { + + DWORDLONG BytesProcessed; + DWORDLONG BytesRepaired; + DWORDLONG BytesFailed; + +} DEVICE_DATA_SET_SCRUB_OUTPUT, *PDEVICE_DATA_SET_SCRUB_OUTPUT; +# 2669 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DEVICE_DATA_SET_SCRUB_EX_OUTPUT { + + DWORDLONG BytesProcessed; + DWORDLONG BytesRepaired; + DWORDLONG BytesFailed; + + DEVICE_DATA_SET_RANGE ParityExtent; + +} DEVICE_DATA_SET_SCRUB_EX_OUTPUT, *PDEVICE_DATA_SET_SCRUB_EX_OUTPUT; +# 2686 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DEVICE_DATA_SET_REPAIR_OUTPUT { + + DEVICE_DATA_SET_RANGE ParityExtent; + +} DEVICE_DATA_SET_REPAIR_OUTPUT, *PDEVICE_DATA_SET_REPAIR_OUTPUT; +# 2699 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DEVICE_DSM_TIERING_QUERY_INPUT { + + DWORD Version; + DWORD Size; + + DWORD Flags; + + DWORD NumberOfTierIds; + GUID TierIds[1]; + +} DEVICE_DSM_TIERING_QUERY_INPUT, *PDEVICE_DSM_TIERING_QUERY_INPUT; + + + + + +typedef struct _STORAGE_TIER_REGION { + + GUID TierId; + + DWORDLONG Offset; + DWORDLONG Length; + +} STORAGE_TIER_REGION, *PSTORAGE_TIER_REGION; + + + + + + +typedef struct _DEVICE_DSM_TIERING_QUERY_OUTPUT { + + DWORD Version; + DWORD Size; + + DWORD Flags; + DWORD Reserved; + + DWORDLONG Alignment; + + DWORD TotalNumberOfRegions; + DWORD NumberOfRegionsReturned; + + STORAGE_TIER_REGION Regions[1]; + +} DEVICE_DSM_TIERING_QUERY_OUTPUT, *PDEVICE_DSM_TIERING_QUERY_OUTPUT; + +typedef struct _DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT { + + + + + + DWORDLONG TopologyRangeBytes; + + + + + + BYTE TopologyId[16]; + +} DEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT, *PDEVICE_DATA_SET_TOPOLOGY_ID_QUERY_OUTPUT; +# 2772 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DEVICE_STORAGE_ADDRESS_RANGE { + LONGLONG StartAddress; + DWORDLONG LengthInBytes; +} DEVICE_STORAGE_ADDRESS_RANGE, *PDEVICE_STORAGE_ADDRESS_RANGE; + + + +typedef struct _DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT { + + DWORD Version; + + DWORD Flags; + + DWORD TotalNumberOfRanges; + + + + + + DWORD NumberOfRangesReturned; + + + + DEVICE_STORAGE_ADDRESS_RANGE Ranges[1]; + +} DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT, *PDEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT; +# 2814 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_GET_BC_PROPERTIES_OUTPUT { + + + + + + DWORD MaximumRequestsPerPeriod; + + + + + + DWORD MinimumPeriod; + + + + + + + + DWORDLONG MaximumRequestSize; + + + + + + + DWORD EstimatedTimePerRequest; +# 2850 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + DWORD NumOutStandingRequests; + + + + + + + DWORDLONG RequestSize; + +} STORAGE_GET_BC_PROPERTIES_OUTPUT, *PSTORAGE_GET_BC_PROPERTIES_OUTPUT; +# 2878 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_ALLOCATE_BC_STREAM_INPUT { + + + + + DWORD Version; + + + + + + DWORD RequestsPerPeriod; + + + + + + DWORD Period; + + + + + + BOOLEAN RetryFailures; + + + + + + BOOLEAN Discardable; + + + + + BOOLEAN Reserved1[2]; + + + + + + DWORD AccessType; + + + + + + DWORD AccessMode; + +} STORAGE_ALLOCATE_BC_STREAM_INPUT, *PSTORAGE_ALLOCATE_BC_STREAM_INPUT; + +typedef struct _STORAGE_ALLOCATE_BC_STREAM_OUTPUT { + + + + + + DWORDLONG RequestSize; + + + + + + + DWORD NumOutStandingRequests; + +} STORAGE_ALLOCATE_BC_STREAM_OUTPUT, *PSTORAGE_ALLOCATE_BC_STREAM_OUTPUT; +# 2967 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_PRIORITY_HINT_SUPPORT { + DWORD SupportFlags; +} STORAGE_PRIORITY_HINT_SUPPORT, *PSTORAGE_PRIORITY_HINT_SUPPORT; + + + +#pragma warning(push) +#pragma warning(disable: 4200) + + + +typedef struct _STORAGE_MEDIA_SERIAL_NUMBER_DATA { + + WORD Reserved; + + + + + + + + WORD SerialNumberLength; +# 2997 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + BYTE SerialNumber[0]; + + +} STORAGE_MEDIA_SERIAL_NUMBER_DATA, *PSTORAGE_MEDIA_SERIAL_NUMBER_DATA; + + + +typedef struct _STORAGE_READ_CAPACITY { + + + + + DWORD Version; + + + + + DWORD Size; + + + + + + DWORD BlockLength; + + + + + + + LARGE_INTEGER NumberOfBlocks; + + + + + + LARGE_INTEGER DiskLength; + +} STORAGE_READ_CAPACITY, *PSTORAGE_READ_CAPACITY; + +#pragma warning(pop) + + + + + + + + +typedef enum _WRITE_CACHE_TYPE { + WriteCacheTypeUnknown, + WriteCacheTypeNone, + WriteCacheTypeWriteBack, + WriteCacheTypeWriteThrough +} WRITE_CACHE_TYPE; + +typedef enum _WRITE_CACHE_ENABLE { + WriteCacheEnableUnknown, + WriteCacheDisabled, + WriteCacheEnabled +} WRITE_CACHE_ENABLE; + +typedef enum _WRITE_CACHE_CHANGE { + WriteCacheChangeUnknown, + WriteCacheNotChangeable, + WriteCacheChangeable +} WRITE_CACHE_CHANGE; + +typedef enum _WRITE_THROUGH { + WriteThroughUnknown, + WriteThroughNotSupported, + WriteThroughSupported +} WRITE_THROUGH; + +typedef struct _STORAGE_WRITE_CACHE_PROPERTY { + + + + + + DWORD Version; + + + + + + DWORD Size; + + + + + WRITE_CACHE_TYPE WriteCacheType; + + + + + WRITE_CACHE_ENABLE WriteCacheEnabled; + + + + + WRITE_CACHE_CHANGE WriteCacheChangeable; + + + + + WRITE_THROUGH WriteThroughSupported; + + + + + BOOLEAN FlushCacheSupported; + + + + + BOOLEAN UserDefinedPowerProtection; + + + + + BOOLEAN NVCacheEnabled; + +} STORAGE_WRITE_CACHE_PROPERTY, *PSTORAGE_WRITE_CACHE_PROPERTY; + +#pragma warning(push) +#pragma warning(disable: 4200) +#pragma warning(disable: 4201) +#pragma warning(disable: 4214) + + + + +typedef struct _PERSISTENT_RESERVE_COMMAND { + + DWORD Version; + DWORD Size; + + union { + + struct { + + + + + + BYTE ServiceAction : 5; + BYTE Reserved1 : 3; + + + + + + WORD AllocationLength; + + } PR_IN; + + struct { + + + + + + BYTE ServiceAction : 5; + BYTE Reserved1 : 3; + + + + + + BYTE Type : 4; + BYTE Scope : 4; + + + + + + + BYTE ParameterList[0]; + + + } PR_OUT; + } ; + +} PERSISTENT_RESERVE_COMMAND, *PPERSISTENT_RESERVE_COMMAND; + + +#pragma warning(pop) +# 3195 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +#pragma warning(push) +# 3219 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _DEVICEDUMP_COLLECTION_TYPE { + TCCollectionBugCheck = 1, + TCCollectionApplicationRequested, + TCCollectionDeviceRequested +} DEVICEDUMP_COLLECTION_TYPEIDE_NOTIFICATION_TYPE, *PDEVICEDUMP_COLLECTION_TYPE; +# 3237 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" +#pragma warning(disable: 4103) + +#pragma pack(push,1) +# 3237 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" 2 +# 3256 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DEVICEDUMP_SUBSECTION_POINTER { + DWORD dwSize; + DWORD dwFlags; + DWORD dwOffset; +} DEVICEDUMP_SUBSECTION_POINTER,*PDEVICEDUMP_SUBSECTION_POINTER; + + + + +typedef struct _DEVICEDUMP_STRUCTURE_VERSION { + + + + DWORD dwSignature; + + + + + DWORD dwVersion; + + + + + DWORD dwSize; + +} DEVICEDUMP_STRUCTURE_VERSION, *PDEVICEDUMP_STRUCTURE_VERSION; + + + + +typedef struct _DEVICEDUMP_SECTION_HEADER { + + + + GUID guidDeviceDataId; +# 3302 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + BYTE sOrganizationID[16]; + + + + + DWORD dwFirmwareRevision; + + + + + BYTE sModelNumber[32]; + + + + + BYTE szDeviceManufacturingID[32]; + + + + + + + DWORD dwFlags; + + + + + DWORD bRestrictedPrivateDataVersion; + + + + + + DWORD dwFirmwareIssueId; + + + + + BYTE szIssueDescriptionString[132]; + +} DEVICEDUMP_SECTION_HEADER, *PDEVICEDUMP_SECTION_HEADER; +# 3369 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _GP_LOG_PAGE_DESCRIPTOR { + WORD LogAddress; + WORD LogSectors; +} GP_LOG_PAGE_DESCRIPTOR,*PGP_LOG_PAGE_DESCRIPTOR; + +typedef struct _DEVICEDUMP_PUBLIC_SUBSECTION { + DWORD dwFlags; + GP_LOG_PAGE_DESCRIPTOR GPLogTable[16]; + CHAR szDescription[16]; + BYTE bData[1]; +} DEVICEDUMP_PUBLIC_SUBSECTION, *PDEVICEDUMP_PUBLIC_SUBSECTION; + + + + +typedef struct _DEVICEDUMP_RESTRICTED_SUBSECTION { + + BYTE bData[1]; + +} DEVICEDUMP_RESTRICTED_SUBSECTION, *PDEVICEDUMP_RESTRICTED_SUBSECTION; + + + + +typedef struct _DEVICEDUMP_PRIVATE_SUBSECTION { + + DWORD dwFlags; + GP_LOG_PAGE_DESCRIPTOR GPLogId; + + BYTE bData[1]; + +} DEVICEDUMP_PRIVATE_SUBSECTION, *PDEVICEDUMP_PRIVATE_SUBSECTION; + + + + +typedef struct _DEVICEDUMP_STORAGEDEVICE_DATA { + + + + + DEVICEDUMP_STRUCTURE_VERSION Descriptor; + + + + + DEVICEDUMP_SECTION_HEADER SectionHeader; + + + + + DWORD dwBufferSize; + + + + + DWORD dwReasonForCollection; + + + + + DEVICEDUMP_SUBSECTION_POINTER PublicData; + DEVICEDUMP_SUBSECTION_POINTER RestrictedData; + DEVICEDUMP_SUBSECTION_POINTER PrivateData; + +} DEVICEDUMP_STORAGEDEVICE_DATA, *PDEVICEDUMP_STORAGEDEVICE_DATA; +# 3454 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD { + + BYTE Cdb[16]; + + + BYTE Command[16]; + + + DWORDLONG StartTime; + + + DWORDLONG EndTime; + + + DWORD OperationStatus; + + + DWORD OperationError; + + + union { + struct { + DWORD dwReserved; + } ExternalStack; + + struct { + DWORD dwAtaPortSpecific; + } AtaPort; + + struct { + DWORD SrbTag ; + } StorPort; + + } StackSpecific; + +} DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD,*PDEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD; + + +typedef struct _DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP { + + + + + DEVICEDUMP_STRUCTURE_VERSION Descriptor; + + + + + DWORD dwReasonForCollection; + + + + + BYTE cDriverName[16]; + + + + + + DWORD uiNumRecords; + + DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD RecordArray[1]; + +} DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP,*PDEVICEDUMP_STORAGESTACK_PUBLIC_DUMP; + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 3520 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" 2 +# 3532 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +#pragma warning(push) +#pragma warning(disable: 4214) +# 3545 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_IDLE_POWER { + DWORD Version; + DWORD Size; + DWORD WakeCapableHint : 1; + DWORD D3ColdSupported : 1; + DWORD Reserved : 30; + DWORD D3IdleTimeout; +} STORAGE_IDLE_POWER, *PSTORAGE_IDLE_POWER; + +#pragma warning(pop) +# 3565 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _STORAGE_POWERUP_REASON_TYPE { + StoragePowerupUnknown = 0, + StoragePowerupIO, + StoragePowerupDeviceAttention +} STORAGE_POWERUP_REASON_TYPE, *PSTORAGE_POWERUP_REASON_TYPE; + +typedef struct _STORAGE_IDLE_POWERUP_REASON { + DWORD Version; + DWORD Size; + STORAGE_POWERUP_REASON_TYPE PowerupReason; +} STORAGE_IDLE_POWERUP_REASON, *PSTORAGE_IDLE_POWERUP_REASON; +# 3605 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _STORAGE_DEVICE_POWER_CAP_UNITS { + StorageDevicePowerCapUnitsPercent, + StorageDevicePowerCapUnitsMilliwatts +} STORAGE_DEVICE_POWER_CAP_UNITS, *PSTORAGE_DEVICE_POWER_CAP_UNITS; + +typedef struct _STORAGE_DEVICE_POWER_CAP { + DWORD Version; + DWORD Size; + STORAGE_DEVICE_POWER_CAP_UNITS Units; + DWORDLONG MaxPower; +} STORAGE_DEVICE_POWER_CAP, *PSTORAGE_DEVICE_POWER_CAP; +# 3634 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +#pragma pack(push) +#pragma pack(1) + + + + + + + +typedef struct _STORAGE_RPMB_DATA_FRAME { + + + + + BYTE Stuff[196]; + + + + + BYTE KeyOrMAC[32]; + + + + + BYTE Data[256]; + + + + + BYTE Nonce[16]; + + + + + BYTE WriteCounter[4]; + + + + + BYTE Address[2]; + + + + + BYTE BlockCount[2]; + + + + + BYTE OperationResult[2]; + + + + + BYTE RequestOrResponseType[2]; + +} STORAGE_RPMB_DATA_FRAME, *PSTORAGE_RPMB_DATA_FRAME; + + + + + +typedef enum _STORAGE_RPMB_COMMAND_TYPE { + StorRpmbProgramAuthKey = 0x00000001, + StorRpmbQueryWriteCounter = 0x00000002, + StorRpmbAuthenticatedWrite = 0x00000003, + StorRpmbAuthenticatedRead = 0x00000004, + StorRpmbReadResultRequest = 0x00000005, + StorRpmbAuthenticatedDeviceConfigWrite = 0x00000006, + StorRpmbAuthenticatedDeviceConfigRead = 0x00000007, +} STORAGE_RPMB_COMMAND_TYPE, *PSTORAGE_RPMB_COMMAND_TYPE; + +#pragma pack(pop) +# 3717 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_EVENT_NOTIFICATION { + DWORD Version; + DWORD Size; + DWORDLONG Events; +} STORAGE_EVENT_NOTIFICATION, *PSTORAGE_EVENT_NOTIFICATION; +# 3731 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +#pragma warning(pop) +# 3766 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _STORAGE_COUNTER_TYPE { + + StorageCounterTypeUnknown = 0, + + StorageCounterTypeTemperatureCelsius, + StorageCounterTypeTemperatureCelsiusMax, + StorageCounterTypeReadErrorsTotal, + StorageCounterTypeReadErrorsCorrected, + StorageCounterTypeReadErrorsUncorrected, + StorageCounterTypeWriteErrorsTotal, + StorageCounterTypeWriteErrorsCorrected, + StorageCounterTypeWriteErrorsUncorrected, + StorageCounterTypeManufactureDate, + StorageCounterTypeStartStopCycleCount, + StorageCounterTypeStartStopCycleCountMax, + StorageCounterTypeLoadUnloadCycleCount, + StorageCounterTypeLoadUnloadCycleCountMax, + StorageCounterTypeWearPercentage, + StorageCounterTypeWearPercentageWarning, + StorageCounterTypeWearPercentageMax, + StorageCounterTypePowerOnHours, + StorageCounterTypeReadLatency100NSMax, + StorageCounterTypeWriteLatency100NSMax, + StorageCounterTypeFlushLatency100NSMax, + + StorageCounterTypeMax + +} STORAGE_COUNTER_TYPE, *PSTORAGE_COUNTER_TYPE; + +typedef struct _STORAGE_COUNTER { + + STORAGE_COUNTER_TYPE Type; + + union { + + struct { + + + + DWORD Week; + + + + + DWORD Year; + } ManufactureDate; + + DWORDLONG AsUlonglong; + } Value; + +} STORAGE_COUNTER, *PSTORAGE_COUNTER; + +typedef struct _STORAGE_COUNTERS { + + + + + DWORD Version; + + + + + DWORD Size; + + DWORD NumberOfCounters; + + STORAGE_COUNTER Counters[1]; + +} STORAGE_COUNTERS, *PSTORAGE_COUNTERS; +# 3858 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_HW_FIRMWARE_INFO_QUERY { + DWORD Version; + DWORD Size; + DWORD Flags; + DWORD Reserved; +} STORAGE_HW_FIRMWARE_INFO_QUERY, *PSTORAGE_HW_FIRMWARE_INFO_QUERY; +# 3877 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +#pragma warning(push) +#pragma warning(disable: 4214) + + + +typedef struct _STORAGE_HW_FIRMWARE_SLOT_INFO { + + DWORD Version; + DWORD Size; + + BYTE SlotNumber; + BYTE ReadOnly : 1; + BYTE Reserved0 : 7; + BYTE Reserved1[6]; + + BYTE Revision[16]; + +} STORAGE_HW_FIRMWARE_SLOT_INFO, *PSTORAGE_HW_FIRMWARE_SLOT_INFO; + +typedef struct _STORAGE_HW_FIRMWARE_INFO { + + DWORD Version; + DWORD Size; + + BYTE SupportUpgrade : 1; + BYTE Reserved0 : 7; + BYTE SlotCount; + BYTE ActiveSlot; + BYTE PendingActivateSlot; + BOOLEAN FirmwareShared; + BYTE Reserved[3]; + + DWORD ImagePayloadAlignment; + DWORD ImagePayloadMaxSize; + + STORAGE_HW_FIRMWARE_SLOT_INFO Slot[1]; + +} STORAGE_HW_FIRMWARE_INFO, *PSTORAGE_HW_FIRMWARE_INFO; +#pragma warning(pop) + + + + + +#pragma warning(push) +#pragma warning(disable: 4200) + +typedef struct _STORAGE_HW_FIRMWARE_DOWNLOAD { + + DWORD Version; + DWORD Size; + + DWORD Flags; + BYTE Slot; + BYTE Reserved[3]; + + DWORDLONG Offset; + DWORDLONG BufferSize; + + BYTE ImageBuffer[1]; + +} STORAGE_HW_FIRMWARE_DOWNLOAD, *PSTORAGE_HW_FIRMWARE_DOWNLOAD; + +#pragma warning(pop) + + + + +typedef struct _STORAGE_HW_FIRMWARE_ACTIVATE { + + DWORD Version; + DWORD Size; + + DWORD Flags; + BYTE Slot; + BYTE Reserved0[3]; + +} STORAGE_HW_FIRMWARE_ACTIVATE, *PSTORAGE_HW_FIRMWARE_ACTIVATE; + + + + + + + +typedef struct _STORAGE_PROTOCOL_COMMAND { + + DWORD Version; + DWORD Length; + + STORAGE_PROTOCOL_TYPE ProtocolType; + DWORD Flags; + + DWORD ReturnStatus; + DWORD ErrorCode; + + DWORD CommandLength; + DWORD ErrorInfoLength; + DWORD DataToDeviceTransferLength; + DWORD DataFromDeviceTransferLength; + + DWORD TimeOutValue; + + DWORD ErrorInfoOffset; + DWORD DataToDeviceBufferOffset; + DWORD DataFromDeviceBufferOffset; + + DWORD CommandSpecific; + DWORD Reserved0; + + DWORD FixedProtocolReturnData; + DWORD Reserved1[3]; + + BYTE Command[1]; + +} STORAGE_PROTOCOL_COMMAND, *PSTORAGE_PROTOCOL_COMMAND; +# 4062 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _STORAGE_ATTRIBUTE_MGMT_ACTION { + StorAttributeMgmt_ClearAttribute = 0, + StorAttributeMgmt_SetAttribute = 1, + StorAttributeMgmt_ResetAttribute = 2 +} STORAGE_ATTRIBUTE_MGMT_ACTION, *PSTORAGE_ATTRIBUTE_MGMT_ACTION; +# 4086 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STORAGE_ATTRIBUTE_MGMT { + + + + + + DWORD Version; + + + + + + DWORD Size; + + + + + STORAGE_ATTRIBUTE_MGMT_ACTION Action; + + + + + + DWORD Attribute; + +} STORAGE_ATTRIBUTE_MGMT, *PSTORAGE_ATTRIBUTE_MGMT; + + +#pragma warning(pop) + + + +} +# 4135 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +#pragma warning(push) +#pragma warning(disable: 4201) +#pragma warning(disable: 4214) +#pragma warning(disable: 4820) +# 4401 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _MEDIA_TYPE { + Unknown, + F5_1Pt2_512, + F3_1Pt44_512, + F3_2Pt88_512, + F3_20Pt8_512, + F3_720_512, + F5_360_512, + F5_320_512, + F5_320_1024, + F5_180_512, + F5_160_512, + RemovableMedia, + FixedMedia, + F3_120M_512, + F3_640_512, + F5_640_512, + F5_720_512, + F3_1Pt2_512, + F3_1Pt23_1024, + F5_1Pt23_1024, + F3_128Mb_512, + F3_230Mb_512, + F8_256_128, + F3_200Mb_512, + F3_240M_512, + F3_32M_512 +} MEDIA_TYPE, *PMEDIA_TYPE; + + + + + + +typedef struct _FORMAT_PARAMETERS { + MEDIA_TYPE MediaType; + DWORD StartCylinderNumber; + DWORD EndCylinderNumber; + DWORD StartHeadNumber; + DWORD EndHeadNumber; +} FORMAT_PARAMETERS, *PFORMAT_PARAMETERS; +# 4450 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef WORD BAD_TRACK_NUMBER; +typedef WORD *PBAD_TRACK_NUMBER; + + + + + + +typedef struct _FORMAT_EX_PARAMETERS { + MEDIA_TYPE MediaType; + DWORD StartCylinderNumber; + DWORD EndCylinderNumber; + DWORD StartHeadNumber; + DWORD EndHeadNumber; + WORD FormatGapLength; + WORD SectorsPerTrack; + WORD SectorNumber[1]; +} FORMAT_EX_PARAMETERS, *PFORMAT_EX_PARAMETERS; + + + + + + + +typedef struct _DISK_GEOMETRY { + LARGE_INTEGER Cylinders; + MEDIA_TYPE MediaType; + DWORD TracksPerCylinder; + DWORD SectorsPerTrack; + DWORD BytesPerSector; +} DISK_GEOMETRY, *PDISK_GEOMETRY; +# 4498 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _PARTITION_INFORMATION { + LARGE_INTEGER StartingOffset; + LARGE_INTEGER PartitionLength; + DWORD HiddenSectors; + DWORD PartitionNumber; + BYTE PartitionType; + BOOLEAN BootIndicator; + BOOLEAN RecognizedPartition; + BOOLEAN RewritePartition; +} PARTITION_INFORMATION, *PPARTITION_INFORMATION; + + + + + + + +typedef struct _SET_PARTITION_INFORMATION { + BYTE PartitionType; +} SET_PARTITION_INFORMATION, *PSET_PARTITION_INFORMATION; + + + + + + +typedef struct _DRIVE_LAYOUT_INFORMATION { + DWORD PartitionCount; + DWORD Signature; + PARTITION_INFORMATION PartitionEntry[1]; +} DRIVE_LAYOUT_INFORMATION, *PDRIVE_LAYOUT_INFORMATION; + + + + + + +typedef struct _VERIFY_INFORMATION { + LARGE_INTEGER StartingOffset; + DWORD Length; +} VERIFY_INFORMATION, *PVERIFY_INFORMATION; + + + + + + +typedef struct _REASSIGN_BLOCKS { + WORD Reserved; + WORD Count; + DWORD BlockNumber[1]; +} REASSIGN_BLOCKS, *PREASSIGN_BLOCKS; + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" +#pragma warning(disable: 4103) + +#pragma pack(push,1) +# 4556 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" 2 + +typedef struct _REASSIGN_BLOCKS_EX { + WORD Reserved; + WORD Count; + LARGE_INTEGER BlockNumber[1]; +} REASSIGN_BLOCKS_EX, *PREASSIGN_BLOCKS_EX; + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 4562 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" 2 +# 4579 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _PARTITION_STYLE { + PARTITION_STYLE_MBR, + PARTITION_STYLE_GPT, + PARTITION_STYLE_RAW +} PARTITION_STYLE; + + + + + + + +typedef struct _PARTITION_INFORMATION_GPT { + GUID PartitionType; + GUID PartitionId; + DWORD64 Attributes; + WCHAR Name [36]; +} PARTITION_INFORMATION_GPT, *PPARTITION_INFORMATION_GPT; +# 4629 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _PARTITION_INFORMATION_MBR { + BYTE PartitionType; + BOOLEAN BootIndicator; + BOOLEAN RecognizedPartition; + DWORD HiddenSectors; + + + GUID PartitionId; + + +} PARTITION_INFORMATION_MBR, *PPARTITION_INFORMATION_MBR; +# 4650 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef SET_PARTITION_INFORMATION SET_PARTITION_INFORMATION_MBR; +typedef PARTITION_INFORMATION_GPT SET_PARTITION_INFORMATION_GPT; + + +typedef struct _SET_PARTITION_INFORMATION_EX { + PARTITION_STYLE PartitionStyle; + union { + SET_PARTITION_INFORMATION_MBR Mbr; + SET_PARTITION_INFORMATION_GPT Gpt; + } ; +} SET_PARTITION_INFORMATION_EX, *PSET_PARTITION_INFORMATION_EX; + + + + + + + +typedef struct _CREATE_DISK_GPT { + GUID DiskId; + DWORD MaxPartitionCount; +} CREATE_DISK_GPT, *PCREATE_DISK_GPT; + + + + + + +typedef struct _CREATE_DISK_MBR { + DWORD Signature; +} CREATE_DISK_MBR, *PCREATE_DISK_MBR; + + +typedef struct _CREATE_DISK { + PARTITION_STYLE PartitionStyle; + union { + CREATE_DISK_MBR Mbr; + CREATE_DISK_GPT Gpt; + } ; +} CREATE_DISK, *PCREATE_DISK; +# 4698 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _GET_LENGTH_INFORMATION { + LARGE_INTEGER Length; +} GET_LENGTH_INFORMATION, *PGET_LENGTH_INFORMATION; + + + + + + + +typedef struct _PARTITION_INFORMATION_EX { + PARTITION_STYLE PartitionStyle; + LARGE_INTEGER StartingOffset; + LARGE_INTEGER PartitionLength; + DWORD PartitionNumber; + BOOLEAN RewritePartition; + union { + PARTITION_INFORMATION_MBR Mbr; + PARTITION_INFORMATION_GPT Gpt; + } ; +} PARTITION_INFORMATION_EX, *PPARTITION_INFORMATION_EX; + + + + + + +typedef struct _DRIVE_LAYOUT_INFORMATION_GPT { + GUID DiskId; + LARGE_INTEGER StartingUsableOffset; + LARGE_INTEGER UsableLength; + DWORD MaxPartitionCount; +} DRIVE_LAYOUT_INFORMATION_GPT, *PDRIVE_LAYOUT_INFORMATION_GPT; + + + + + + +typedef struct _DRIVE_LAYOUT_INFORMATION_MBR { + + DWORD Signature; + + + + + +} DRIVE_LAYOUT_INFORMATION_MBR, *PDRIVE_LAYOUT_INFORMATION_MBR; + + + + + + +typedef struct _DRIVE_LAYOUT_INFORMATION_EX { + DWORD PartitionStyle; + DWORD PartitionCount; + union { + DRIVE_LAYOUT_INFORMATION_MBR Mbr; + DRIVE_LAYOUT_INFORMATION_GPT Gpt; + } ; + PARTITION_INFORMATION_EX PartitionEntry[1]; +} DRIVE_LAYOUT_INFORMATION_EX, *PDRIVE_LAYOUT_INFORMATION_EX; +# 4773 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _DETECTION_TYPE { + DetectNone, + DetectInt13, + DetectExInt13 +} DETECTION_TYPE; + +typedef struct _DISK_INT13_INFO { + WORD DriveSelect; + DWORD MaxCylinders; + WORD SectorsPerTrack; + WORD MaxHeads; + WORD NumberDrives; +} DISK_INT13_INFO, *PDISK_INT13_INFO; + +typedef struct _DISK_EX_INT13_INFO { + WORD ExBufferSize; + WORD ExFlags; + DWORD ExCylinders; + DWORD ExHeads; + DWORD ExSectorsPerTrack; + DWORD64 ExSectorsPerDrive; + WORD ExSectorSize; + WORD ExReserved; +} DISK_EX_INT13_INFO, *PDISK_EX_INT13_INFO; + + +#pragma warning(push) +#pragma warning(disable: 4201) + + +typedef struct _DISK_DETECTION_INFO { + DWORD SizeOfDetectInfo; + DETECTION_TYPE DetectionType; + union { + struct { + + + + + + + DISK_INT13_INFO Int13; + + + + + + + DISK_EX_INT13_INFO ExInt13; + } ; + } ; +} DISK_DETECTION_INFO, *PDISK_DETECTION_INFO; + + +typedef struct _DISK_PARTITION_INFO { + DWORD SizeOfPartitionInfo; + PARTITION_STYLE PartitionStyle; + union { + struct { + DWORD Signature; + DWORD CheckSum; + } Mbr; + struct { + GUID DiskId; + } Gpt; + } ; +} DISK_PARTITION_INFO, *PDISK_PARTITION_INFO; + + +#pragma warning(pop) +# 4866 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DISK_GEOMETRY_EX { + DISK_GEOMETRY Geometry; + LARGE_INTEGER DiskSize; + BYTE Data[1]; +} DISK_GEOMETRY_EX, *PDISK_GEOMETRY_EX; +# 4881 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DISK_CONTROLLER_NUMBER { + DWORD ControllerNumber; + DWORD DiskNumber; +} DISK_CONTROLLER_NUMBER, *PDISK_CONTROLLER_NUMBER; +# 4911 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum { + EqualPriority, + KeepPrefetchedData, + KeepReadData +} DISK_CACHE_RETENTION_PRIORITY; +# 4925 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DISK_CACHE_INFORMATION { + + + + + + + + BOOLEAN ParametersSavable; + + + + + + BOOLEAN ReadCacheEnabled; + BOOLEAN WriteCacheEnabled; +# 4949 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + DISK_CACHE_RETENTION_PRIORITY ReadRetentionPriority; + DISK_CACHE_RETENTION_PRIORITY WriteRetentionPriority; + + + + + + + WORD DisablePrefetchTransferLength; + + + + + + + + BOOLEAN PrefetchScalar; +# 4975 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + union { + struct { + WORD Minimum; + WORD Maximum; + + + + + + + WORD MaximumBlocks; + } ScalarPrefetch; + + struct { + WORD Minimum; + WORD Maximum; + } BlockPrefetch; + } ; + +} DISK_CACHE_INFORMATION, *PDISK_CACHE_INFORMATION; +# 5003 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DISK_GROW_PARTITION { + DWORD PartitionNumber; + LARGE_INTEGER BytesToGrow; +} DISK_GROW_PARTITION, *PDISK_GROW_PARTITION; +# 5027 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _HISTOGRAM_BUCKET { + DWORD Reads; + DWORD Writes; +} HISTOGRAM_BUCKET, *PHISTOGRAM_BUCKET; + + + +typedef struct _DISK_HISTOGRAM { + LARGE_INTEGER DiskSize; + LARGE_INTEGER Start; + LARGE_INTEGER End; + LARGE_INTEGER Average; + LARGE_INTEGER AverageRead; + LARGE_INTEGER AverageWrite; + DWORD Granularity; + DWORD Size; + DWORD ReadCount; + DWORD WriteCount; + PHISTOGRAM_BUCKET Histogram; +} DISK_HISTOGRAM, *PDISK_HISTOGRAM; +# 5070 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DISK_PERFORMANCE { + LARGE_INTEGER BytesRead; + LARGE_INTEGER BytesWritten; + LARGE_INTEGER ReadTime; + LARGE_INTEGER WriteTime; + LARGE_INTEGER IdleTime; + DWORD ReadCount; + DWORD WriteCount; + DWORD QueueDepth; + DWORD SplitCount; + LARGE_INTEGER QueryTime; + DWORD StorageDeviceNumber; + WCHAR StorageManagerName[8]; +} DISK_PERFORMANCE, *PDISK_PERFORMANCE; + + + + + + + +typedef struct _DISK_RECORD { + LARGE_INTEGER ByteOffset; + LARGE_INTEGER StartTime; + LARGE_INTEGER EndTime; + PVOID VirtualAddress; + DWORD NumberOfBytes; + BYTE DeviceNumber; + BOOLEAN ReadRequest; +} DISK_RECORD, *PDISK_RECORD; + + + + + + +typedef struct _DISK_LOGGING { + BYTE Function; + PVOID BufferAddress; + DWORD BufferSize; +} DISK_LOGGING, *PDISK_LOGGING; +# 5148 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _BIN_TYPES { + RequestSize, + RequestLocation +} BIN_TYPES; + + + + + +typedef struct _BIN_RANGE { + LARGE_INTEGER StartValue; + LARGE_INTEGER Length; +} BIN_RANGE, *PBIN_RANGE; + + + + + +typedef struct _PERF_BIN { + DWORD NumberOfBins; + DWORD TypeOfBin; + BIN_RANGE BinsRanges[1]; +} PERF_BIN, *PPERF_BIN ; + + + + + +typedef struct _BIN_COUNT { + BIN_RANGE BinRange; + DWORD BinCount; +} BIN_COUNT, *PBIN_COUNT; + + + + + +typedef struct _BIN_RESULTS { + DWORD NumberOfBins; + BIN_COUNT BinCounts[1]; +} BIN_RESULTS, *PBIN_RESULTS; +# 5198 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" +#pragma warning(disable: 4103) + +#pragma pack(push,1) +# 5198 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" 2 + +typedef struct _GETVERSIONINPARAMS { + BYTE bVersion; + BYTE bRevision; + BYTE bReserved; + BYTE bIDEDeviceMap; + DWORD fCapabilities; + DWORD dwReserved[4]; +} GETVERSIONINPARAMS, *PGETVERSIONINPARAMS, *LPGETVERSIONINPARAMS; + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 5207 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" 2 +# 5221 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" +#pragma warning(disable: 4103) + +#pragma pack(push,1) +# 5221 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" 2 + +typedef struct _IDEREGS { + BYTE bFeaturesReg; + BYTE bSectorCountReg; + BYTE bSectorNumberReg; + BYTE bCylLowReg; + BYTE bCylHighReg; + BYTE bDriveHeadReg; + BYTE bCommandReg; + BYTE bReserved; +} IDEREGS, *PIDEREGS, *LPIDEREGS; + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 5232 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" 2 +# 5257 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" +#pragma warning(disable: 4103) + +#pragma pack(push,1) +# 5257 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" 2 + +typedef struct _SENDCMDINPARAMS { + DWORD cBufferSize; + IDEREGS irDriveRegs; + BYTE bDriveNumber; + + BYTE bReserved[3]; + DWORD dwReserved[4]; + BYTE bBuffer[1]; +} SENDCMDINPARAMS, *PSENDCMDINPARAMS, *LPSENDCMDINPARAMS; + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 5267 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" 2 + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" +#pragma warning(disable: 4103) + +#pragma pack(push,1) +# 5273 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" 2 + +typedef struct _DRIVERSTATUS { + BYTE bDriverError; + + BYTE bIDEError; + + + BYTE bReserved[2]; + DWORD dwReserved[2]; +} DRIVERSTATUS, *PDRIVERSTATUS, *LPDRIVERSTATUS; + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 5283 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" 2 +# 5312 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" +#pragma warning(disable: 4103) + +#pragma pack(push,1) +# 5312 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" 2 + +typedef struct _SENDCMDOUTPARAMS { + DWORD cBufferSize; + DRIVERSTATUS DriverStatus; + BYTE bBuffer[1]; +} SENDCMDOUTPARAMS, *PSENDCMDOUTPARAMS, *LPSENDCMDOUTPARAMS; + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 5318 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" 2 +# 5364 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _GET_DISK_ATTRIBUTES { + + + + + + DWORD Version; + + + + + DWORD Reserved1; + + + + + + DWORDLONG Attributes; + +} GET_DISK_ATTRIBUTES, *PGET_DISK_ATTRIBUTES; +# 5395 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _SET_DISK_ATTRIBUTES { + + + + + + DWORD Version; + + + + + + + BOOLEAN Persist; + + + + + BYTE Reserved1[3]; + + + + + DWORDLONG Attributes; + + + + + + DWORDLONG AttributesMask; + + + + + DWORD Reserved2[4]; + +} SET_DISK_ATTRIBUTES, *PSET_DISK_ATTRIBUTES; + + + + + + +#pragma warning(pop) +# 5477 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _ELEMENT_TYPE { + AllElements, + ChangerTransport, + ChangerSlot, + ChangerIEPort, + ChangerDrive, + ChangerDoor, + ChangerKeypad, + ChangerMaxElement +} ELEMENT_TYPE, *PELEMENT_TYPE; + +typedef struct _CHANGER_ELEMENT { + ELEMENT_TYPE ElementType; + DWORD ElementAddress; +} CHANGER_ELEMENT, *PCHANGER_ELEMENT; + +typedef struct _CHANGER_ELEMENT_LIST { + CHANGER_ELEMENT Element; + DWORD NumberOfElements; +} CHANGER_ELEMENT_LIST , *PCHANGER_ELEMENT_LIST; +# 5587 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _GET_CHANGER_PARAMETERS { + + + + + + DWORD Size; + + + + + + WORD NumberTransportElements; + WORD NumberStorageElements; + WORD NumberCleanerSlots; + WORD NumberIEElements; + WORD NumberDataTransferElements; + + + + + + WORD NumberOfDoors; + + + + + + + WORD FirstSlotNumber; + WORD FirstDriveNumber; + WORD FirstTransportNumber; + WORD FirstIEPortNumber; + WORD FirstCleanerSlotAddress; + + + + + + WORD MagazineSize; + + + + + + + DWORD DriveCleanTimeout; + + + + + + DWORD Features0; + DWORD Features1; + + + + + + + BYTE MoveFromTransport; + BYTE MoveFromSlot; + BYTE MoveFromIePort; + BYTE MoveFromDrive; + + + + + + + BYTE ExchangeFromTransport; + BYTE ExchangeFromSlot; + BYTE ExchangeFromIePort; + BYTE ExchangeFromDrive; + + + + + + + BYTE LockUnlockCapabilities; + + + + + + + BYTE PositionCapabilities; + + + + + + BYTE Reserved1[2]; + DWORD Reserved2[2]; + +} GET_CHANGER_PARAMETERS, * PGET_CHANGER_PARAMETERS; + + + + + + +typedef struct _CHANGER_PRODUCT_DATA { + + + + + + BYTE VendorId[8]; + + + + + + BYTE ProductId[16]; + + + + + + BYTE Revision[4]; + + + + + + + BYTE SerialNumber[32]; + + + + + + BYTE DeviceType; + +} CHANGER_PRODUCT_DATA, *PCHANGER_PRODUCT_DATA; +# 5735 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _CHANGER_SET_ACCESS { + + + + + + CHANGER_ELEMENT Element; + + + + + + DWORD Control; +} CHANGER_SET_ACCESS, *PCHANGER_SET_ACCESS; +# 5759 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _CHANGER_READ_ELEMENT_STATUS { + + + + + + CHANGER_ELEMENT_LIST ElementList; + + + + + + BOOLEAN VolumeTagInfo; +} CHANGER_READ_ELEMENT_STATUS, *PCHANGER_READ_ELEMENT_STATUS; + + + + + +typedef struct _CHANGER_ELEMENT_STATUS { + + + + + + CHANGER_ELEMENT Element; + + + + + + + + CHANGER_ELEMENT SrcElementAddress; + + + + + + DWORD Flags; + + + + + + DWORD ExceptionCode; + + + + + + + BYTE TargetId; + + + + + + + BYTE Lun; + WORD Reserved; + + + + + + + BYTE PrimaryVolumeID[36]; + + + + + + + + BYTE AlternateVolumeID[36]; + +} CHANGER_ELEMENT_STATUS, *PCHANGER_ELEMENT_STATUS; + + + + + + + +typedef struct _CHANGER_ELEMENT_STATUS_EX { + + + + + + CHANGER_ELEMENT Element; + + + + + + + + CHANGER_ELEMENT SrcElementAddress; + + + + + + DWORD Flags; + + + + + + DWORD ExceptionCode; + + + + + + + BYTE TargetId; + + + + + + + BYTE Lun; + WORD Reserved; + + + + + + + BYTE PrimaryVolumeID[36]; + + + + + + + + BYTE AlternateVolumeID[36]; + + + + + BYTE VendorIdentification[8]; + + + + + BYTE ProductIdentification[16]; + + + + + BYTE SerialNumber[32]; + +} CHANGER_ELEMENT_STATUS_EX, *PCHANGER_ELEMENT_STATUS_EX; +# 5958 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _CHANGER_INITIALIZE_ELEMENT_STATUS { + + + + + + CHANGER_ELEMENT_LIST ElementList; + + + + + + + BOOLEAN BarCodeScan; +} CHANGER_INITIALIZE_ELEMENT_STATUS, *PCHANGER_INITIALIZE_ELEMENT_STATUS; + + + + + + +typedef struct _CHANGER_SET_POSITION { + + + + + + + CHANGER_ELEMENT Transport; + + + + + + CHANGER_ELEMENT Destination; + + + + + + BOOLEAN Flip; +} CHANGER_SET_POSITION, *PCHANGER_SET_POSITION; + + + + + + +typedef struct _CHANGER_EXCHANGE_MEDIUM { + + + + + + CHANGER_ELEMENT Transport; + + + + + + CHANGER_ELEMENT Source; + + + + + + CHANGER_ELEMENT Destination1; + + + + + + CHANGER_ELEMENT Destination2; + + + + + + BOOLEAN Flip1; + BOOLEAN Flip2; +} CHANGER_EXCHANGE_MEDIUM, *PCHANGER_EXCHANGE_MEDIUM; + + + + + + +typedef struct _CHANGER_MOVE_MEDIUM { + + + + + + CHANGER_ELEMENT Transport; + + + + + + CHANGER_ELEMENT Source; + + + + + + CHANGER_ELEMENT Destination; + + + + + + BOOLEAN Flip; +} CHANGER_MOVE_MEDIUM, *PCHANGER_MOVE_MEDIUM; +# 6082 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _CHANGER_SEND_VOLUME_TAG_INFORMATION { + + + + + + CHANGER_ELEMENT StartingElement; + + + + + + DWORD ActionCode; + + + + + + BYTE VolumeIDTemplate[40]; +} CHANGER_SEND_VOLUME_TAG_INFORMATION, *PCHANGER_SEND_VOLUME_TAG_INFORMATION; + + + + + + +typedef struct _READ_ELEMENT_ADDRESS_INFO { + + + + + + DWORD NumberOfElements; + + + + + + + CHANGER_ELEMENT_STATUS ElementStatus[1]; +} READ_ELEMENT_ADDRESS_INFO, *PREAD_ELEMENT_ADDRESS_INFO; +# 6149 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _CHANGER_DEVICE_PROBLEM_TYPE { + DeviceProblemNone, + DeviceProblemHardware, + DeviceProblemCHMError, + DeviceProblemDoorOpen, + DeviceProblemCalibrationError, + DeviceProblemTargetFailure, + DeviceProblemCHMMoveError, + DeviceProblemCHMZeroError, + DeviceProblemCartridgeInsertError, + DeviceProblemPositionError, + DeviceProblemSensorError, + DeviceProblemCartridgeEjectError, + DeviceProblemGripperError, + DeviceProblemDriveError +} CHANGER_DEVICE_PROBLEM_TYPE, *PCHANGER_DEVICE_PROBLEM_TYPE; +# 6557 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _PATHNAME_BUFFER { + + DWORD PathNameLength; + WCHAR Name[1]; + +} PATHNAME_BUFFER, *PPATHNAME_BUFFER; + + + + + + + +typedef struct _FSCTL_QUERY_FAT_BPB_BUFFER { + + BYTE First0x24BytesOfBootSector[0x24]; + +} FSCTL_QUERY_FAT_BPB_BUFFER, *PFSCTL_QUERY_FAT_BPB_BUFFER; +# 6587 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct { + + LARGE_INTEGER VolumeSerialNumber; + LARGE_INTEGER NumberSectors; + LARGE_INTEGER TotalClusters; + LARGE_INTEGER FreeClusters; + LARGE_INTEGER TotalReserved; + DWORD BytesPerSector; + DWORD BytesPerCluster; + DWORD BytesPerFileRecordSegment; + DWORD ClustersPerFileRecordSegment; + LARGE_INTEGER MftValidDataLength; + LARGE_INTEGER MftStartLcn; + LARGE_INTEGER Mft2StartLcn; + LARGE_INTEGER MftZoneStart; + LARGE_INTEGER MftZoneEnd; + +} NTFS_VOLUME_DATA_BUFFER, *PNTFS_VOLUME_DATA_BUFFER; + +typedef struct { + + DWORD ByteCount; + + WORD MajorVersion; + WORD MinorVersion; + + DWORD BytesPerPhysicalSector; + + WORD LfsMajorVersion; + WORD LfsMinorVersion; + + + DWORD MaxDeviceTrimExtentCount; + DWORD MaxDeviceTrimByteCount; + + DWORD MaxVolumeTrimExtentCount; + DWORD MaxVolumeTrimByteCount; + + +} NTFS_EXTENDED_VOLUME_DATA, *PNTFS_EXTENDED_VOLUME_DATA; +# 6638 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct { + + DWORD ByteCount; + DWORD MajorVersion; + DWORD MinorVersion; + + DWORD BytesPerPhysicalSector; + + LARGE_INTEGER VolumeSerialNumber; + LARGE_INTEGER NumberSectors; + LARGE_INTEGER TotalClusters; + LARGE_INTEGER FreeClusters; + LARGE_INTEGER TotalReserved; + DWORD BytesPerSector; + DWORD BytesPerCluster; + LARGE_INTEGER MaximumSizeOfResidentFile; + + LARGE_INTEGER Reserved[10]; + +} REFS_VOLUME_DATA_BUFFER, *PREFS_VOLUME_DATA_BUFFER; +# 6669 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct { + + LARGE_INTEGER StartingLcn; + +} STARTING_LCN_INPUT_BUFFER, *PSTARTING_LCN_INPUT_BUFFER; + + + + + +typedef struct { + + LARGE_INTEGER StartingLcn; + DWORD Flags; + +} STARTING_LCN_INPUT_BUFFER_EX, *PSTARTING_LCN_INPUT_BUFFER_EX; + + + +typedef struct { + + LARGE_INTEGER StartingLcn; + LARGE_INTEGER BitmapSize; + BYTE Buffer[1]; + +} VOLUME_BITMAP_BUFFER, *PVOLUME_BITMAP_BUFFER; +# 6704 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct { + + LARGE_INTEGER StartingVcn; + +} STARTING_VCN_INPUT_BUFFER, *PSTARTING_VCN_INPUT_BUFFER; + +typedef struct RETRIEVAL_POINTERS_BUFFER { + + DWORD ExtentCount; + LARGE_INTEGER StartingVcn; + struct { + LARGE_INTEGER NextVcn; + LARGE_INTEGER Lcn; + } Extents[1]; + +} RETRIEVAL_POINTERS_BUFFER, *PRETRIEVAL_POINTERS_BUFFER; +# 6729 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct { + + LARGE_INTEGER FileReferenceNumber; + +} NTFS_FILE_RECORD_INPUT_BUFFER, *PNTFS_FILE_RECORD_INPUT_BUFFER; + +typedef struct { + + LARGE_INTEGER FileReferenceNumber; + DWORD FileRecordLength; + BYTE FileRecordBuffer[1]; + +} NTFS_FILE_RECORD_OUTPUT_BUFFER, *PNTFS_FILE_RECORD_OUTPUT_BUFFER; +# 6751 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct { + + HANDLE FileHandle; + LARGE_INTEGER StartingVcn; + LARGE_INTEGER StartingLcn; + DWORD ClusterCount; + +} MOVE_FILE_DATA, *PMOVE_FILE_DATA; + +typedef struct { + + HANDLE FileHandle; + LARGE_INTEGER SourceFileRecord; + LARGE_INTEGER TargetFileRecord; + +} MOVE_FILE_RECORD_DATA, *PMOVE_FILE_RECORD_DATA; +# 6792 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct { + DWORD Restart; + SID Sid; +} FIND_BY_SID_DATA, *PFIND_BY_SID_DATA; + +typedef struct { + DWORD NextEntryOffset; + DWORD FileIndex; + DWORD FileNameLength; + WCHAR FileName[1]; +} FIND_BY_SID_OUTPUT, *PFIND_BY_SID_OUTPUT; +# 6817 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct { + + DWORDLONG StartFileReferenceNumber; + USN LowUsn; + USN HighUsn; + +} MFT_ENUM_DATA_V0, *PMFT_ENUM_DATA_V0; + +typedef struct { + + DWORDLONG StartFileReferenceNumber; + USN LowUsn; + USN HighUsn; + WORD MinMajorVersion; + WORD MaxMajorVersion; + +} MFT_ENUM_DATA_V1, *PMFT_ENUM_DATA_V1; + + +typedef MFT_ENUM_DATA_V1 MFT_ENUM_DATA, *PMFT_ENUM_DATA; +# 6847 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct { + + DWORDLONG MaximumSize; + DWORDLONG AllocationDelta; + +} CREATE_USN_JOURNAL_DATA, *PCREATE_USN_JOURNAL_DATA; +# 6866 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct { + + WORD MinMajorVersion; + WORD MaxMajorVersion; + +} READ_FILE_USN_DATA, *PREAD_FILE_USN_DATA; +# 6880 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct { + + USN StartUsn; + DWORD ReasonMask; + DWORD ReturnOnlyOnClose; + DWORDLONG Timeout; + DWORDLONG BytesToWaitFor; + DWORDLONG UsnJournalID; + +} READ_USN_JOURNAL_DATA_V0, *PREAD_USN_JOURNAL_DATA_V0; + +typedef struct { + + USN StartUsn; + DWORD ReasonMask; + DWORD ReturnOnlyOnClose; + DWORDLONG Timeout; + DWORDLONG BytesToWaitFor; + DWORDLONG UsnJournalID; + WORD MinMajorVersion; + WORD MaxMajorVersion; + +} READ_USN_JOURNAL_DATA_V1, *PREAD_USN_JOURNAL_DATA_V1; + + +typedef READ_USN_JOURNAL_DATA_V1 READ_USN_JOURNAL_DATA, *PREAD_USN_JOURNAL_DATA; +# 6916 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct { + DWORD Flags; + DWORD Unused; + DWORDLONG ChunkSize; + LONGLONG FileSizeThreshold; +} USN_TRACK_MODIFIED_RANGES, *PUSN_TRACK_MODIFIED_RANGES; + +typedef struct { + USN Usn; +} USN_RANGE_TRACK_OUTPUT, *PUSN_RANGE_TRACK_OUTPUT; +# 6949 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct { + + DWORD RecordLength; + WORD MajorVersion; + WORD MinorVersion; + DWORDLONG FileReferenceNumber; + DWORDLONG ParentFileReferenceNumber; + USN Usn; + LARGE_INTEGER TimeStamp; + DWORD Reason; + DWORD SourceInfo; + DWORD SecurityId; + DWORD FileAttributes; + WORD FileNameLength; + WORD FileNameOffset; + WCHAR FileName[1]; + +} USN_RECORD_V2, *PUSN_RECORD_V2; + +typedef struct { + + DWORD RecordLength; + WORD MajorVersion; + WORD MinorVersion; + FILE_ID_128 FileReferenceNumber; + FILE_ID_128 ParentFileReferenceNumber; + USN Usn; + LARGE_INTEGER TimeStamp; + DWORD Reason; + DWORD SourceInfo; + DWORD SecurityId; + DWORD FileAttributes; + WORD FileNameLength; + WORD FileNameOffset; + WCHAR FileName[1]; + +} USN_RECORD_V3, *PUSN_RECORD_V3; + +typedef USN_RECORD_V2 USN_RECORD, *PUSN_RECORD; + +typedef struct { + DWORD RecordLength; + WORD MajorVersion; + WORD MinorVersion; +} USN_RECORD_COMMON_HEADER, *PUSN_RECORD_COMMON_HEADER; + +typedef struct { + LONGLONG Offset; + LONGLONG Length; +} USN_RECORD_EXTENT, *PUSN_RECORD_EXTENT; + +typedef struct { + USN_RECORD_COMMON_HEADER Header; + FILE_ID_128 FileReferenceNumber; + FILE_ID_128 ParentFileReferenceNumber; + USN Usn; + DWORD Reason; + DWORD SourceInfo; + DWORD RemainingExtents; + WORD NumberOfExtents; + WORD ExtentSize; + USN_RECORD_EXTENT Extents[1]; +} USN_RECORD_V4, *PUSN_RECORD_V4; + +typedef union { + USN_RECORD_COMMON_HEADER Header; + USN_RECORD_V2 V2; + USN_RECORD_V3 V3; + USN_RECORD_V4 V4; +} USN_RECORD_UNION, *PUSN_RECORD_UNION; +# 7052 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct { + + DWORDLONG UsnJournalID; + USN FirstUsn; + USN NextUsn; + USN LowestValidUsn; + USN MaxUsn; + DWORDLONG MaximumSize; + DWORDLONG AllocationDelta; + +} USN_JOURNAL_DATA_V0, *PUSN_JOURNAL_DATA_V0; + +typedef struct { + + DWORDLONG UsnJournalID; + USN FirstUsn; + USN NextUsn; + USN LowestValidUsn; + USN MaxUsn; + DWORDLONG MaximumSize; + DWORDLONG AllocationDelta; + WORD MinSupportedMajorVersion; + WORD MaxSupportedMajorVersion; + +} USN_JOURNAL_DATA_V1, *PUSN_JOURNAL_DATA_V1; + +typedef struct { + + DWORDLONG UsnJournalID; + USN FirstUsn; + USN NextUsn; + USN LowestValidUsn; + USN MaxUsn; + DWORDLONG MaximumSize; + DWORDLONG AllocationDelta; + WORD MinSupportedMajorVersion; + WORD MaxSupportedMajorVersion; + DWORD Flags; + DWORDLONG RangeTrackChunkSize; + LONGLONG RangeTrackFileSizeThreshold; + +} USN_JOURNAL_DATA_V2, *PUSN_JOURNAL_DATA_V2; + + + +typedef USN_JOURNAL_DATA_V1 USN_JOURNAL_DATA, *PUSN_JOURNAL_DATA; +# 7108 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct { + + DWORDLONG UsnJournalID; + DWORD DeleteFlags; + +} DELETE_USN_JOURNAL_DATA, *PDELETE_USN_JOURNAL_DATA; +# 7127 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +#pragma warning(push) + +#pragma warning(disable: 4201) + +typedef struct { + + + union { + DWORD UsnSourceInfo; + DWORD CopyNumber; + } ; + + + + + HANDLE VolumeHandle; + DWORD HandleInfo; + +} MARK_HANDLE_INFO, *PMARK_HANDLE_INFO; +# 7169 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +#pragma warning(pop) +# 7279 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct { + + ACCESS_MASK DesiredAccess; + DWORD SecurityIds[1]; + +} BULK_SECURITY_TEST_DATA, *PBULK_SECURITY_TEST_DATA; +# 7304 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FILE_PREFETCH { + DWORD Type; + DWORD Count; + DWORDLONG Prefetch[1]; +} FILE_PREFETCH, *PFILE_PREFETCH; + +typedef struct _FILE_PREFETCH_EX { + DWORD Type; + DWORD Count; + PVOID Context; + DWORDLONG Prefetch[1]; +} FILE_PREFETCH_EX, *PFILE_PREFETCH_EX; +# 7334 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FILESYSTEM_STATISTICS { + + WORD FileSystemType; + WORD Version; + + DWORD SizeOfCompleteStructure; + + DWORD UserFileReads; + DWORD UserFileReadBytes; + DWORD UserDiskReads; + DWORD UserFileWrites; + DWORD UserFileWriteBytes; + DWORD UserDiskWrites; + + DWORD MetaDataReads; + DWORD MetaDataReadBytes; + DWORD MetaDataDiskReads; + DWORD MetaDataWrites; + DWORD MetaDataWriteBytes; + DWORD MetaDataDiskWrites; + + + + + +} FILESYSTEM_STATISTICS, *PFILESYSTEM_STATISTICS; +# 7372 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FAT_STATISTICS { + DWORD CreateHits; + DWORD SuccessfulCreates; + DWORD FailedCreates; + + DWORD NonCachedReads; + DWORD NonCachedReadBytes; + DWORD NonCachedWrites; + DWORD NonCachedWriteBytes; + + DWORD NonCachedDiskReads; + DWORD NonCachedDiskWrites; +} FAT_STATISTICS, *PFAT_STATISTICS; + +typedef struct _EXFAT_STATISTICS { + DWORD CreateHits; + DWORD SuccessfulCreates; + DWORD FailedCreates; + + DWORD NonCachedReads; + DWORD NonCachedReadBytes; + DWORD NonCachedWrites; + DWORD NonCachedWriteBytes; + + DWORD NonCachedDiskReads; + DWORD NonCachedDiskWrites; +} EXFAT_STATISTICS, *PEXFAT_STATISTICS; + +typedef struct _NTFS_STATISTICS { + + DWORD LogFileFullExceptions; + DWORD OtherExceptions; + + + + + + DWORD MftReads; + DWORD MftReadBytes; + DWORD MftWrites; + DWORD MftWriteBytes; + struct { + WORD Write; + WORD Create; + WORD SetInfo; + WORD Flush; + } MftWritesUserLevel; + + WORD MftWritesFlushForLogFileFull; + WORD MftWritesLazyWriter; + WORD MftWritesUserRequest; + + DWORD Mft2Writes; + DWORD Mft2WriteBytes; + struct { + WORD Write; + WORD Create; + WORD SetInfo; + WORD Flush; + } Mft2WritesUserLevel; + + WORD Mft2WritesFlushForLogFileFull; + WORD Mft2WritesLazyWriter; + WORD Mft2WritesUserRequest; + + DWORD RootIndexReads; + DWORD RootIndexReadBytes; + DWORD RootIndexWrites; + DWORD RootIndexWriteBytes; + + DWORD BitmapReads; + DWORD BitmapReadBytes; + DWORD BitmapWrites; + DWORD BitmapWriteBytes; + + WORD BitmapWritesFlushForLogFileFull; + WORD BitmapWritesLazyWriter; + WORD BitmapWritesUserRequest; + + struct { + WORD Write; + WORD Create; + WORD SetInfo; + } BitmapWritesUserLevel; + + DWORD MftBitmapReads; + DWORD MftBitmapReadBytes; + DWORD MftBitmapWrites; + DWORD MftBitmapWriteBytes; + + WORD MftBitmapWritesFlushForLogFileFull; + WORD MftBitmapWritesLazyWriter; + WORD MftBitmapWritesUserRequest; + + struct { + WORD Write; + WORD Create; + WORD SetInfo; + WORD Flush; + } MftBitmapWritesUserLevel; + + DWORD UserIndexReads; + DWORD UserIndexReadBytes; + DWORD UserIndexWrites; + DWORD UserIndexWriteBytes; + + + + + + DWORD LogFileReads; + DWORD LogFileReadBytes; + DWORD LogFileWrites; + DWORD LogFileWriteBytes; + + struct { + DWORD Calls; + DWORD Clusters; + DWORD Hints; + + DWORD RunsReturned; + + DWORD HintsHonored; + DWORD HintsClusters; + DWORD Cache; + DWORD CacheClusters; + DWORD CacheMiss; + DWORD CacheMissClusters; + } Allocate; + + + + + + DWORD DiskResourcesExhausted; + + + + + +} NTFS_STATISTICS, *PNTFS_STATISTICS; + +typedef struct _FILESYSTEM_STATISTICS_EX { + + WORD FileSystemType; + WORD Version; + + DWORD SizeOfCompleteStructure; + + DWORDLONG UserFileReads; + DWORDLONG UserFileReadBytes; + DWORDLONG UserDiskReads; + DWORDLONG UserFileWrites; + DWORDLONG UserFileWriteBytes; + DWORDLONG UserDiskWrites; + + DWORDLONG MetaDataReads; + DWORDLONG MetaDataReadBytes; + DWORDLONG MetaDataDiskReads; + DWORDLONG MetaDataWrites; + DWORDLONG MetaDataWriteBytes; + DWORDLONG MetaDataDiskWrites; + + + + + +} FILESYSTEM_STATISTICS_EX, *PFILESYSTEM_STATISTICS_EX; + +typedef struct _NTFS_STATISTICS_EX { + + DWORD LogFileFullExceptions; + DWORD OtherExceptions; + + + + + + DWORDLONG MftReads; + DWORDLONG MftReadBytes; + DWORDLONG MftWrites; + DWORDLONG MftWriteBytes; + struct { + DWORD Write; + DWORD Create; + DWORD SetInfo; + DWORD Flush; + } MftWritesUserLevel; + + DWORD MftWritesFlushForLogFileFull; + DWORD MftWritesLazyWriter; + DWORD MftWritesUserRequest; + + DWORDLONG Mft2Writes; + DWORDLONG Mft2WriteBytes; + struct { + DWORD Write; + DWORD Create; + DWORD SetInfo; + DWORD Flush; + } Mft2WritesUserLevel; + + DWORD Mft2WritesFlushForLogFileFull; + DWORD Mft2WritesLazyWriter; + DWORD Mft2WritesUserRequest; + + DWORDLONG RootIndexReads; + DWORDLONG RootIndexReadBytes; + DWORDLONG RootIndexWrites; + DWORDLONG RootIndexWriteBytes; + + DWORDLONG BitmapReads; + DWORDLONG BitmapReadBytes; + DWORDLONG BitmapWrites; + DWORDLONG BitmapWriteBytes; + + DWORD BitmapWritesFlushForLogFileFull; + DWORD BitmapWritesLazyWriter; + DWORD BitmapWritesUserRequest; + + struct { + DWORD Write; + DWORD Create; + DWORD SetInfo; + DWORD Flush; + } BitmapWritesUserLevel; + + DWORDLONG MftBitmapReads; + DWORDLONG MftBitmapReadBytes; + DWORDLONG MftBitmapWrites; + DWORDLONG MftBitmapWriteBytes; + + DWORD MftBitmapWritesFlushForLogFileFull; + DWORD MftBitmapWritesLazyWriter; + DWORD MftBitmapWritesUserRequest; + + struct { + DWORD Write; + DWORD Create; + DWORD SetInfo; + DWORD Flush; + } MftBitmapWritesUserLevel; + + DWORDLONG UserIndexReads; + DWORDLONG UserIndexReadBytes; + DWORDLONG UserIndexWrites; + DWORDLONG UserIndexWriteBytes; + + + + + + DWORDLONG LogFileReads; + DWORDLONG LogFileReadBytes; + DWORDLONG LogFileWrites; + DWORDLONG LogFileWriteBytes; + + struct { + DWORD Calls; + DWORD RunsReturned; + DWORD Hints; + DWORD HintsHonored; + DWORD Cache; + DWORD CacheMiss; + + DWORDLONG Clusters; + DWORDLONG HintsClusters; + DWORDLONG CacheClusters; + DWORDLONG CacheMissClusters; + } Allocate; + + + + + + DWORD DiskResourcesExhausted; + + + + + + DWORDLONG VolumeTrimCount; + DWORDLONG VolumeTrimTime; + DWORDLONG VolumeTrimByteCount; + + DWORDLONG FileLevelTrimCount; + DWORDLONG FileLevelTrimTime; + DWORDLONG FileLevelTrimByteCount; + + DWORDLONG VolumeTrimSkippedCount; + DWORDLONG VolumeTrimSkippedByteCount; + +} NTFS_STATISTICS_EX, *PNTFS_STATISTICS_EX; +# 7677 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +#pragma warning(push) + +#pragma warning(disable: 4201) + +typedef struct _FILE_OBJECTID_BUFFER { + + + + + + BYTE ObjectId[16]; + + + + + + + union { + struct { + BYTE BirthVolumeId[16]; + BYTE BirthObjectId[16]; + BYTE DomainId[16]; + } ; + BYTE ExtendedInfo[48]; + } ; + +} FILE_OBJECTID_BUFFER, *PFILE_OBJECTID_BUFFER; + + +#pragma warning(pop) +# 7721 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FILE_SET_SPARSE_BUFFER { + BOOLEAN SetSparse; +} FILE_SET_SPARSE_BUFFER, *PFILE_SET_SPARSE_BUFFER; +# 7736 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FILE_ZERO_DATA_INFORMATION { + + LARGE_INTEGER FileOffset; + LARGE_INTEGER BeyondFinalZero; + +} FILE_ZERO_DATA_INFORMATION, *PFILE_ZERO_DATA_INFORMATION; + + + + + + +typedef struct _FILE_ZERO_DATA_INFORMATION_EX { + + LARGE_INTEGER FileOffset; + LARGE_INTEGER BeyondFinalZero; + DWORD Flags; + +} FILE_ZERO_DATA_INFORMATION_EX, *PFILE_ZERO_DATA_INFORMATION_EX; +# 7772 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FILE_ALLOCATED_RANGE_BUFFER { + + LARGE_INTEGER FileOffset; + LARGE_INTEGER Length; + +} FILE_ALLOCATED_RANGE_BUFFER, *PFILE_ALLOCATED_RANGE_BUFFER; +# 7795 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _ENCRYPTION_BUFFER { + + DWORD EncryptionOperation; + BYTE Private[1]; + +} ENCRYPTION_BUFFER, *PENCRYPTION_BUFFER; +# 7814 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DECRYPTION_STATUS_BUFFER { + + BOOLEAN NoEncryptedStreams; + +} DECRYPTION_STATUS_BUFFER, *PDECRYPTION_STATUS_BUFFER; +# 7828 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _REQUEST_RAW_ENCRYPTED_DATA { +# 7837 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + LONGLONG FileOffset; + DWORD Length; + +} REQUEST_RAW_ENCRYPTED_DATA, *PREQUEST_RAW_ENCRYPTED_DATA; +# 7866 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _ENCRYPTED_DATA_INFO { +# 7875 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + DWORDLONG StartingFileOffset; +# 7885 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + DWORD OutputBufferOffset; +# 7896 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + DWORD BytesWithinFileSize; +# 7907 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + DWORD BytesWithinValidDataLength; +# 7916 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + WORD CompressionFormat; +# 7937 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + BYTE DataUnitShift; + BYTE ChunkShift; + BYTE ClusterShift; + + + + + + BYTE EncryptionFormat; + + + + + + + WORD NumberOfDataBlocks; +# 7980 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + DWORD DataBlockSize[1]; + +} ENCRYPTED_DATA_INFO, *PENCRYPTED_DATA_INFO; +# 7995 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _EXTENDED_ENCRYPTED_DATA_INFO { +# 8004 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + DWORD ExtendedCode; + + + + + + DWORD Length; + + + + + + DWORD Flags; + DWORD Reserved; + +} EXTENDED_ENCRYPTED_DATA_INFO, *PEXTENDED_ENCRYPTED_DATA_INFO; +# 8032 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _PLEX_READ_DATA_REQUEST { +# 8044 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + LARGE_INTEGER ByteOffset; + DWORD ByteLength; + DWORD PlexNumber; + +} PLEX_READ_DATA_REQUEST, *PPLEX_READ_DATA_REQUEST; +# 8061 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _SI_COPYFILE { + DWORD SourceFileNameLength; + DWORD DestinationFileNameLength; + DWORD Flags; + WCHAR FileNameBuffer[1]; +} SI_COPYFILE, *PSI_COPYFILE; +# 8080 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FILE_MAKE_COMPATIBLE_BUFFER { + BOOLEAN CloseDisc; +} FILE_MAKE_COMPATIBLE_BUFFER, *PFILE_MAKE_COMPATIBLE_BUFFER; + + + + + + + +typedef struct _FILE_SET_DEFECT_MGMT_BUFFER { + BOOLEAN Disable; +} FILE_SET_DEFECT_MGMT_BUFFER, *PFILE_SET_DEFECT_MGMT_BUFFER; + + + + + + + +typedef struct _FILE_QUERY_SPARING_BUFFER { + DWORD SparingUnitBytes; + BOOLEAN SoftwareSparing; + DWORD TotalSpareBlocks; + DWORD FreeSpareBlocks; +} FILE_QUERY_SPARING_BUFFER, *PFILE_QUERY_SPARING_BUFFER; + + + + + + + +typedef struct _FILE_QUERY_ON_DISK_VOL_INFO_BUFFER { + LARGE_INTEGER DirectoryCount; + LARGE_INTEGER FileCount; + WORD FsFormatMajVersion; + WORD FsFormatMinVersion; + WCHAR FsFormatName[ 12]; + LARGE_INTEGER FormatTime; + LARGE_INTEGER LastUpdateTime; + WCHAR CopyrightInfo[ 34]; + WCHAR AbstractInfo[ 34]; + WCHAR FormattingImplementationInfo[ 34]; + WCHAR LastModifyingImplementationInfo[ 34]; +} FILE_QUERY_ON_DISK_VOL_INFO_BUFFER, *PFILE_QUERY_ON_DISK_VOL_INFO_BUFFER; +# 8192 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef DWORDLONG CLSN; + +typedef struct _FILE_INITIATE_REPAIR_OUTPUT_BUFFER { + DWORDLONG Hint1; + DWORDLONG Hint2; + CLSN Clsn; + DWORD Status; +} FILE_INITIATE_REPAIR_OUTPUT_BUFFER, *PFILE_INITIATE_REPAIR_OUTPUT_BUFFER; + + + + + + + +typedef enum _SHRINK_VOLUME_REQUEST_TYPES +{ + ShrinkPrepare = 1, + ShrinkCommit, + ShrinkAbort + +} SHRINK_VOLUME_REQUEST_TYPES, *PSHRINK_VOLUME_REQUEST_TYPES; + +typedef struct _SHRINK_VOLUME_INFORMATION +{ + SHRINK_VOLUME_REQUEST_TYPES ShrinkRequestType; + DWORDLONG Flags; + LONGLONG NewNumberOfSectors; + +} SHRINK_VOLUME_INFORMATION, *PSHRINK_VOLUME_INFORMATION; +# 8292 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _TXFS_MODIFY_RM { + + + + + + DWORD Flags; + + + + + + DWORD LogContainerCountMax; + + + + + + DWORD LogContainerCountMin; + + + + + + DWORD LogContainerCount; + + + + + + + + DWORD LogGrowthIncrement; + + + + + + + DWORD LogAutoShrinkPercentage; + + + + + + DWORDLONG Reserved; + + + + + + + WORD LoggingMode; + +} TXFS_MODIFY_RM, + *PTXFS_MODIFY_RM; +# 8394 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _TXFS_QUERY_RM_INFORMATION { + + + + + + + DWORD BytesRequired; + + + + + + DWORDLONG TailLsn; + + + + + + DWORDLONG CurrentLsn; + + + + + + DWORDLONG ArchiveTailLsn; + + + + + + DWORDLONG LogContainerSize; + + + + + + LARGE_INTEGER HighestVirtualClock; + + + + + + DWORD LogContainerCount; + + + + + + DWORD LogContainerCountMax; + + + + + + DWORD LogContainerCountMin; + + + + + + + + DWORD LogGrowthIncrement; + + + + + + + + DWORD LogAutoShrinkPercentage; + + + + + + + DWORD Flags; + + + + + + WORD LoggingMode; + + + + + + WORD Reserved; + + + + + + DWORD RmState; + + + + + + DWORDLONG LogCapacity; + + + + + + DWORDLONG LogFree; + + + + + + DWORDLONG TopsSize; + + + + + + DWORDLONG TopsUsed; + + + + + + DWORDLONG TransactionCount; + + + + + + DWORDLONG OnePCCount; + + + + + + DWORDLONG TwoPCCount; + + + + + + DWORDLONG NumberLogFileFull; + + + + + + DWORDLONG OldestTransactionAge; + + + + + + GUID RMName; + + + + + + + DWORD TmLogPathOffset; + +} TXFS_QUERY_RM_INFORMATION, + *PTXFS_QUERY_RM_INFORMATION; +# 8575 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _TXFS_ROLLFORWARD_REDO_INFORMATION { + LARGE_INTEGER LastVirtualClock; + DWORDLONG LastRedoLsn; + DWORDLONG HighestRecoveryLsn; + DWORD Flags; +} TXFS_ROLLFORWARD_REDO_INFORMATION, + *PTXFS_ROLLFORWARD_REDO_INFORMATION; + + + +#pragma deprecated(TXFS_ROLLFORWARD_REDO_INFORMATION) +#pragma deprecated(PTXFS_ROLLFORWARD_REDO_INFORMATION) +# 8641 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _TXFS_START_RM_INFORMATION { + + + + + + DWORD Flags; + + + + + + DWORDLONG LogContainerSize; + + + + + + DWORD LogContainerCountMin; + + + + + + DWORD LogContainerCountMax; + + + + + + + + DWORD LogGrowthIncrement; + + + + + + DWORD LogAutoShrinkPercentage; + + + + + + + + DWORD TmLogPathOffset; + + + + + + + WORD TmLogPathLength; + + + + + + + + WORD LoggingMode; + + + + + + + WORD LogPathLength; + + + + + + WORD Reserved; + + + + + + + WCHAR LogPath[1]; + +} TXFS_START_RM_INFORMATION, + *PTXFS_START_RM_INFORMATION; + + + +#pragma deprecated(TXFS_START_RM_INFORMATION) +#pragma deprecated(PTXFS_START_RM_INFORMATION) +# 8740 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _TXFS_GET_METADATA_INFO_OUT { + + + + + + struct { + LONGLONG LowPart; + LONGLONG HighPart; + } TxfFileId; + + + + + + GUID LockingTransaction; + + + + + + DWORDLONG LastLsn; + + + + + + DWORD TransactionState; + +} TXFS_GET_METADATA_INFO_OUT, *PTXFS_GET_METADATA_INFO_OUT; +# 8790 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY { + + + + + + + DWORDLONG Offset; + + + + + + + DWORD NameFlags; + + + + + + LONGLONG FileId; + + + + + + DWORD Reserved1; + DWORD Reserved2; + LONGLONG Reserved3; + + + + + + WCHAR FileName[1]; +} TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY, *PTXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY; + + +typedef struct _TXFS_LIST_TRANSACTION_LOCKED_FILES { + + + + + + GUID KtmTransaction; + + + + + + DWORDLONG NumberOfFiles; + + + + + + + DWORDLONG BufferSizeRequired; + + + + + + + DWORDLONG Offset; +} TXFS_LIST_TRANSACTION_LOCKED_FILES, *PTXFS_LIST_TRANSACTION_LOCKED_FILES; + + + + + + + +typedef struct _TXFS_LIST_TRANSACTIONS_ENTRY { + + + + + + GUID TransactionId; + + + + + + DWORD TransactionState; + + + + + + DWORD Reserved1; + DWORD Reserved2; + LONGLONG Reserved3; +} TXFS_LIST_TRANSACTIONS_ENTRY, *PTXFS_LIST_TRANSACTIONS_ENTRY; + +typedef struct _TXFS_LIST_TRANSACTIONS { + + + + + + DWORDLONG NumberOfTransactions; + + + + + + + + DWORDLONG BufferSizeRequired; +} TXFS_LIST_TRANSACTIONS, *PTXFS_LIST_TRANSACTIONS; +# 8911 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +#pragma warning(push) + +#pragma warning(disable: 4201) + +typedef struct _TXFS_READ_BACKUP_INFORMATION_OUT { + union { + + + + + + DWORD BufferLength; + + + + + + BYTE Buffer[1]; + } ; +} TXFS_READ_BACKUP_INFORMATION_OUT, *PTXFS_READ_BACKUP_INFORMATION_OUT; + + +#pragma warning(pop) +# 8944 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _TXFS_WRITE_BACKUP_INFORMATION { + + + + + + + BYTE Buffer[1]; +} TXFS_WRITE_BACKUP_INFORMATION, *PTXFS_WRITE_BACKUP_INFORMATION; +# 8963 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _TXFS_GET_TRANSACTED_VERSION { + + + + + + + + DWORD ThisBaseVersion; + + + + + + DWORD LatestVersion; + + + + + + + WORD ThisMiniVersion; + + + + + + + WORD FirstMiniVersion; + + + + + + + WORD LatestMiniVersion; + +} TXFS_GET_TRANSACTED_VERSION, *PTXFS_GET_TRANSACTED_VERSION; +# 9037 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _TXFS_SAVEPOINT_INFORMATION { + + + + + + HANDLE KtmTransaction; + + + + + + DWORD ActionCode; +# 9061 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + DWORD SavepointId; + +} TXFS_SAVEPOINT_INFORMATION, *PTXFS_SAVEPOINT_INFORMATION; + + + +#pragma deprecated(TXFS_SAVEPOINT_INFORMATION) +#pragma deprecated(PTXFS_SAVEPOINT_INFORMATION) +# 9080 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _TXFS_CREATE_MINIVERSION_INFO { + + WORD StructureVersion; + + WORD StructureLength; + + + + + + DWORD BaseVersion; + + + + + + WORD MiniVersion; + +} TXFS_CREATE_MINIVERSION_INFO, *PTXFS_CREATE_MINIVERSION_INFO; + + + +#pragma deprecated(TXFS_CREATE_MINIVERSION_INFO) +#pragma deprecated(PTXFS_CREATE_MINIVERSION_INFO) +# 9113 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _TXFS_TRANSACTION_ACTIVE_INFO { + + + + + + BOOLEAN TransactionsActiveAtSnapshot; + +} TXFS_TRANSACTION_ACTIVE_INFO, *PTXFS_TRANSACTION_ACTIVE_INFO; +# 9134 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _BOOT_AREA_INFO { + + DWORD BootSectorCount; + struct { + LARGE_INTEGER Offset; + } BootSectors[2]; + +} BOOT_AREA_INFO, *PBOOT_AREA_INFO; + + + + + + + +typedef struct _RETRIEVAL_POINTER_BASE { + + LARGE_INTEGER FileAreaOffset; +} RETRIEVAL_POINTER_BASE, *PRETRIEVAL_POINTER_BASE; +# 9162 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FILE_FS_PERSISTENT_VOLUME_INFORMATION { + + DWORD VolumeFlags; + DWORD FlagMask; + DWORD Version; + DWORD Reserved; + +} FILE_FS_PERSISTENT_VOLUME_INFORMATION, *PFILE_FS_PERSISTENT_VOLUME_INFORMATION; +# 9242 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FILE_SYSTEM_RECOGNITION_INFORMATION { + + CHAR FileSystem[9]; + +} FILE_SYSTEM_RECOGNITION_INFORMATION, *PFILE_SYSTEM_RECOGNITION_INFORMATION; +# 9264 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _REQUEST_OPLOCK_INPUT_BUFFER { + + + + + + WORD StructureVersion; + + WORD StructureLength; + + + + + + DWORD RequestedOplockLevel; + + + + + + DWORD Flags; + +} REQUEST_OPLOCK_INPUT_BUFFER, *PREQUEST_OPLOCK_INPUT_BUFFER; + + + + +typedef struct _REQUEST_OPLOCK_OUTPUT_BUFFER { + + + + + + WORD StructureVersion; + + WORD StructureLength; + + + + + + + DWORD OriginalOplockLevel; + + + + + + + + DWORD NewOplockLevel; + + + + + + DWORD Flags; + + + + + + + + ACCESS_MASK AccessMode; + + WORD ShareMode; + +} REQUEST_OPLOCK_OUTPUT_BUFFER, *PREQUEST_OPLOCK_OUTPUT_BUFFER; + + + + + + + +typedef struct _VIRTUAL_STORAGE_TYPE +{ + DWORD DeviceId; + GUID VendorId; +} VIRTUAL_STORAGE_TYPE, *PVIRTUAL_STORAGE_TYPE; + + + + + + +typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST { + DWORD RequestLevel; + DWORD RequestFlags; +} STORAGE_QUERY_DEPENDENT_VOLUME_REQUEST, *PSTORAGE_QUERY_DEPENDENT_VOLUME_REQUEST; + + + + +typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY { + DWORD EntryLength; + DWORD DependencyTypeFlags; + DWORD ProviderSpecificFlags; + VIRTUAL_STORAGE_TYPE VirtualStorageType; +} STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY, *PSTORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY; + +typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY { + DWORD EntryLength; + DWORD DependencyTypeFlags; + DWORD ProviderSpecificFlags; + VIRTUAL_STORAGE_TYPE VirtualStorageType; + DWORD AncestorLevel; + DWORD HostVolumeNameOffset; + DWORD HostVolumeNameSize; + DWORD DependentVolumeNameOffset; + DWORD DependentVolumeNameSize; + DWORD RelativePathOffset; + DWORD RelativePathSize; + DWORD DependentDeviceNameOffset; + DWORD DependentDeviceNameSize; +} STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY, *PSTORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY; + + + + +#pragma warning(push) +#pragma warning(disable: 4200) + + + +typedef struct _STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE { + DWORD ResponseLevel; + DWORD NumberEntries; + union { + STORAGE_QUERY_DEPENDENT_VOLUME_LEV1_ENTRY Lev1Depends[]; + STORAGE_QUERY_DEPENDENT_VOLUME_LEV2_ENTRY Lev2Depends[]; + } ; +} STORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE, *PSTORAGE_QUERY_DEPENDENT_VOLUME_RESPONSE; + + +#pragma warning(pop) +# 9424 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _SD_CHANGE_MACHINE_SID_INPUT { +# 9434 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + WORD CurrentMachineSIDOffset; + WORD CurrentMachineSIDLength; +# 9445 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + WORD NewMachineSIDOffset; + WORD NewMachineSIDLength; + +} SD_CHANGE_MACHINE_SID_INPUT, *PSD_CHANGE_MACHINE_SID_INPUT; + +typedef struct _SD_CHANGE_MACHINE_SID_OUTPUT { + + + + + + DWORDLONG NumSDChangedSuccess; + + + + + + DWORDLONG NumSDChangedFail; + + + + + + DWORDLONG NumSDUnused; + + + + + + DWORDLONG NumSDTotal; + + + + + + DWORDLONG NumMftSDChangedSuccess; + + + + + + DWORDLONG NumMftSDChangedFail; + + + + + + DWORDLONG NumMftSDTotal; + +} SD_CHANGE_MACHINE_SID_OUTPUT, *PSD_CHANGE_MACHINE_SID_OUTPUT; + + + + + +typedef struct _SD_QUERY_STATS_INPUT { + + DWORD Reserved; + +} SD_QUERY_STATS_INPUT, *PSD_QUERY_STATS_INPUT; + +typedef struct _SD_QUERY_STATS_OUTPUT { + + + + + + + DWORDLONG SdsStreamSize; + DWORDLONG SdsAllocationSize; + + + + + + + DWORDLONG SiiStreamSize; + DWORDLONG SiiAllocationSize; + + + + + + + DWORDLONG SdhStreamSize; + DWORDLONG SdhAllocationSize; + + + + + + + DWORDLONG NumSDTotal; + + + + + + + DWORDLONG NumSDUnused; + +} SD_QUERY_STATS_OUTPUT, *PSD_QUERY_STATS_OUTPUT; + + + + + +typedef struct _SD_ENUM_SDS_INPUT { +# 9564 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + DWORDLONG StartingOffset; + + + + + + + + DWORDLONG MaxSDEntriesToReturn; + +} SD_ENUM_SDS_INPUT, *PSD_ENUM_SDS_INPUT; + +typedef struct _SD_ENUM_SDS_ENTRY { + + + + + + DWORD Hash; + + + + + + DWORD SecurityId; + + + + + + + DWORDLONG Offset; + + + + + + + DWORD Length; + + + + + + BYTE Descriptor[1]; + +} SD_ENUM_SDS_ENTRY, *PSD_ENUM_SDS_ENTRY; + +typedef struct _SD_ENUM_SDS_OUTPUT { +# 9622 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + DWORDLONG NextOffset; + + + + + + DWORDLONG NumSDEntriesReturned; + + + + + + DWORDLONG NumSDBytesReturned; +# 9644 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + SD_ENUM_SDS_ENTRY SDEntry[1]; + +} SD_ENUM_SDS_OUTPUT, *PSD_ENUM_SDS_OUTPUT; + + + + + + +#pragma warning(push) + +#pragma warning(disable: 4201) + +typedef struct _SD_GLOBAL_CHANGE_INPUT +{ + + + + + DWORD Flags; + + + + + + + DWORD ChangeType; + + union { + + SD_CHANGE_MACHINE_SID_INPUT SdChange; + SD_QUERY_STATS_INPUT SdQueryStats; + SD_ENUM_SDS_INPUT SdEnumSds; + } ; + +} SD_GLOBAL_CHANGE_INPUT, *PSD_GLOBAL_CHANGE_INPUT; + +typedef struct _SD_GLOBAL_CHANGE_OUTPUT +{ + + + + + + DWORD Flags; + + + + + + DWORD ChangeType; + + union { + + SD_CHANGE_MACHINE_SID_OUTPUT SdChange; + SD_QUERY_STATS_OUTPUT SdQueryStats; + SD_ENUM_SDS_OUTPUT SdEnumSds; + } ; + +} SD_GLOBAL_CHANGE_OUTPUT, *PSD_GLOBAL_CHANGE_OUTPUT; + + +#pragma warning(pop) + + + + + + + + +typedef struct _LOOKUP_STREAM_FROM_CLUSTER_INPUT { + + + + + DWORD Flags; + + + + + + + DWORD NumberOfClusters; + + + + + LARGE_INTEGER Cluster[1]; +} LOOKUP_STREAM_FROM_CLUSTER_INPUT, *PLOOKUP_STREAM_FROM_CLUSTER_INPUT; + +typedef struct _LOOKUP_STREAM_FROM_CLUSTER_OUTPUT { + + + + + DWORD Offset; + + + + + + + DWORD NumberOfMatches; + + + + + + DWORD BufferSizeRequired; +} LOOKUP_STREAM_FROM_CLUSTER_OUTPUT, *PLOOKUP_STREAM_FROM_CLUSTER_OUTPUT; +# 9766 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _LOOKUP_STREAM_FROM_CLUSTER_ENTRY { + + + + + DWORD OffsetToNext; + + + + + DWORD Flags; + + + + + LARGE_INTEGER Reserved; + + + + + + LARGE_INTEGER Cluster; + + + + + + + + WCHAR FileName[1]; +} LOOKUP_STREAM_FROM_CLUSTER_ENTRY, *PLOOKUP_STREAM_FROM_CLUSTER_ENTRY; +# 9806 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FILE_TYPE_NOTIFICATION_INPUT { + + + + + + + DWORD Flags; + + + + + + DWORD NumFileTypeIDs; + + + + + + GUID FileTypeID[1]; + +} FILE_TYPE_NOTIFICATION_INPUT, *PFILE_TYPE_NOTIFICATION_INPUT; +# 9840 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +extern "C" const GUID FILE_TYPE_NOTIFICATION_GUID_PAGE_FILE; +extern "C" const GUID FILE_TYPE_NOTIFICATION_GUID_HIBERNATION_FILE; +extern "C" const GUID FILE_TYPE_NOTIFICATION_GUID_CRASHDUMP_FILE; + + + + + +typedef struct _CSV_MGMT_LOCK { + DWORD Flags; +}CSV_MGMT_LOCK, *PCSV_MGMT_LOCK; + + + + + + + +typedef struct _CSV_NAMESPACE_INFO { + + DWORD Version; + DWORD DeviceNumber; + LARGE_INTEGER StartingOffset; + DWORD SectorSize; + +} CSV_NAMESPACE_INFO, *PCSV_NAMESPACE_INFO; +# 9874 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _CSV_CONTROL_OP { + CsvControlStartRedirectFile = 0x02, + CsvControlStopRedirectFile = 0x03, + CsvControlQueryRedirectState = 0x04, + CsvControlQueryFileRevision = 0x06, + CsvControlQueryMdsPath = 0x08, + CsvControlQueryFileRevisionFileId128 = 0x09, + CsvControlQueryVolumeRedirectState = 0x0a, + CsvControlEnableUSNRangeModificationTracking = 0x0d, + CsvControlMarkHandleLocalVolumeMount = 0x0e, + CsvControlUnmarkHandleLocalVolumeMount = 0x0f, + +} CSV_CONTROL_OP, *PCSV_CONTROL_OP; + +typedef struct _CSV_CONTROL_PARAM { + CSV_CONTROL_OP Operation; + LONGLONG Unused; +} CSV_CONTROL_PARAM, *PCSV_CONTROL_PARAM; + + + + +typedef struct _CSV_QUERY_REDIRECT_STATE { + DWORD MdsNodeId; + DWORD DsNodeId; + BOOLEAN FileRedirected; +} CSV_QUERY_REDIRECT_STATE, *PCSV_QUERY_REDIRECT_STATE; + + + + + + + +typedef struct _CSV_QUERY_FILE_REVISION { + + + + LONGLONG FileId; +# 9931 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + LONGLONG FileRevision[3]; + +} CSV_QUERY_FILE_REVISION, *PCSV_QUERY_FILE_REVISION; + + + + + + + +typedef struct _CSV_QUERY_FILE_REVISION_FILE_ID_128 { + + + + FILE_ID_128 FileId; +# 9964 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + LONGLONG FileRevision[3]; + +} CSV_QUERY_FILE_REVISION_FILE_ID_128, *PCSV_QUERY_FILE_REVISION_FILE_ID_128; + + + + + + + +typedef struct _CSV_QUERY_MDS_PATH { + DWORD MdsNodeId; + DWORD DsNodeId; + DWORD PathLength; + WCHAR Path[1]; +} CSV_QUERY_MDS_PATH, *PCSV_QUERY_MDS_PATH; + +typedef enum _CSVFS_DISK_CONNECTIVITY +{ + CsvFsDiskConnectivityNone = 0, + CsvFsDiskConnectivityMdsNodeOnly = 1, + CsvFsDiskConnectivitySubsetOfNodes = 2, + CsvFsDiskConnectivityAllNodes = 3 +} CSVFS_DISK_CONNECTIVITY, *PCSVFS_DISK_CONNECTIVITY; + + + + +typedef struct _CSV_QUERY_VOLUME_REDIRECT_STATE { + DWORD MdsNodeId; + DWORD DsNodeId; + BOOLEAN IsDiskConnected; + BOOLEAN ClusterEnableDirectIo; + CSVFS_DISK_CONNECTIVITY DiskConnectivity; +} CSV_QUERY_VOLUME_REDIRECT_STATE, *PCSV_QUERY_VOLUME_REDIRECT_STATE; +# 10010 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT { + DWORDLONG VetoedFromAltitudeIntegral; + DWORDLONG VetoedFromAltitudeDecimal; + WCHAR Reason[256]; +} CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT, *PCSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT; +# 10025 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _CSV_IS_OWNED_BY_CSVFS { + BOOLEAN OwnedByCSVFS; +}CSV_IS_OWNED_BY_CSVFS, *PCSV_IS_OWNED_BY_CSVFS; + + + + + + + +typedef struct _FILE_LEVEL_TRIM_RANGE { + + + + + + DWORDLONG Offset; + + + + + + DWORDLONG Length; +} FILE_LEVEL_TRIM_RANGE, *PFILE_LEVEL_TRIM_RANGE; + + + + + +typedef struct _FILE_LEVEL_TRIM { + + + + + + + DWORD Key; + + + + + + DWORD NumRanges; + + + + + + FILE_LEVEL_TRIM_RANGE Ranges[1]; + +} FILE_LEVEL_TRIM, *PFILE_LEVEL_TRIM; + + + + + +typedef struct _FILE_LEVEL_TRIM_OUTPUT { + + + + + + + DWORD NumRangesProcessed; + +} FILE_LEVEL_TRIM_OUTPUT, *PFILE_LEVEL_TRIM_OUTPUT; +# 10136 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _QUERY_FILE_LAYOUT_FILTER_TYPE { + QUERY_FILE_LAYOUT_FILTER_TYPE_NONE = 0, + QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS = 1, + QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID = 2, + QUERY_FILE_LAYOUT_NUM_FILTER_TYPES = 3, +} QUERY_FILE_LAYOUT_FILTER_TYPE; + +typedef struct _CLUSTER_RANGE { + + + + + + LARGE_INTEGER StartingCluster; + + + + + LARGE_INTEGER ClusterCount; + +} CLUSTER_RANGE, *PCLUSTER_RANGE; + +typedef struct _FILE_REFERENCE_RANGE { + + + + + + DWORDLONG StartingFileReferenceNumber; + + + + + + DWORDLONG EndingFileReferenceNumber; + +} FILE_REFERENCE_RANGE, *PFILE_REFERENCE_RANGE; + +typedef struct _QUERY_FILE_LAYOUT_INPUT { + + + + + + + DWORD NumberOfPairs; + + + + + DWORD Flags; + + + + + + QUERY_FILE_LAYOUT_FILTER_TYPE FilterType; + + + + + + DWORD Reserved; + + + + + + + union { +# 10214 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + CLUSTER_RANGE ClusterRanges[1]; +# 10223 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" + FILE_REFERENCE_RANGE FileReferenceRanges[1]; + + } Filter; +} QUERY_FILE_LAYOUT_INPUT, *PQUERY_FILE_LAYOUT_INPUT; + + + + + + + +typedef struct _QUERY_FILE_LAYOUT_OUTPUT { + + + + + + + DWORD FileEntryCount; + + + + + + DWORD FirstFileOffset; + + + + + + DWORD Flags; + + + + + DWORD Reserved; + +} QUERY_FILE_LAYOUT_OUTPUT, *PQUERY_FILE_LAYOUT_OUTPUT; + +typedef struct _FILE_LAYOUT_ENTRY { + + + + + + DWORD Version; + + + + + + DWORD NextFileOffset; + + + + + + DWORD Flags; + + + + + DWORD FileAttributes; + + + + + DWORDLONG FileReferenceNumber; + + + + + + + DWORD FirstNameOffset; + + + + + + + DWORD FirstStreamOffset; + + + + + + + + DWORD ExtraInfoOffset; + + + + + DWORD Reserved; +# 10327 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +} FILE_LAYOUT_ENTRY, *PFILE_LAYOUT_ENTRY; +# 10336 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FILE_LAYOUT_NAME_ENTRY { + + + + + + DWORD NextNameOffset; + + + + + DWORD Flags; + + + + + DWORDLONG ParentFileReferenceNumber; + + + + + DWORD FileNameLength; + + + + + DWORD Reserved; + + + + + + + WCHAR FileName[1]; + +} FILE_LAYOUT_NAME_ENTRY, *PFILE_LAYOUT_NAME_ENTRY; + +typedef struct _FILE_LAYOUT_INFO_ENTRY { + + + + + struct { + LARGE_INTEGER CreationTime; + LARGE_INTEGER LastAccessTime; + LARGE_INTEGER LastWriteTime; + LARGE_INTEGER ChangeTime; + DWORD FileAttributes; + } BasicInformation; + + + + + DWORD OwnerId; + + + + + DWORD SecurityId; + + + + + USN Usn; + +} FILE_LAYOUT_INFO_ENTRY, *PFILE_LAYOUT_INFO_ENTRY; +# 10424 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STREAM_LAYOUT_ENTRY { + + + + + DWORD Version; + + + + + DWORD NextStreamOffset; + + + + + DWORD Flags; + + + + + + + + DWORD ExtentInformationOffset; + + + + + + LARGE_INTEGER AllocationSize; + + + + + LARGE_INTEGER EndOfFile; + + + + + + DWORDLONG Reserved; + + + + + DWORD AttributeFlags; + + + + + DWORD StreamIdentifierLength; + + + + + + + WCHAR StreamIdentifier[1]; + +} STREAM_LAYOUT_ENTRY, *PSTREAM_LAYOUT_ENTRY; +# 10499 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _STREAM_EXTENT_ENTRY { + + + + + DWORD Flags; + + union { + + + + + + + RETRIEVAL_POINTERS_BUFFER RetrievalPointers; + + } ExtentInformation; + +} STREAM_EXTENT_ENTRY, *PSTREAM_EXTENT_ENTRY; +# 10533 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FSCTL_GET_INTEGRITY_INFORMATION_BUFFER { + WORD ChecksumAlgorithm; + WORD Reserved; + DWORD Flags; + DWORD ChecksumChunkSizeInBytes; + DWORD ClusterSizeInBytes; +} FSCTL_GET_INTEGRITY_INFORMATION_BUFFER, *PFSCTL_GET_INTEGRITY_INFORMATION_BUFFER; + +typedef struct _FSCTL_SET_INTEGRITY_INFORMATION_BUFFER { + WORD ChecksumAlgorithm; + WORD Reserved; + DWORD Flags; +} FSCTL_SET_INTEGRITY_INFORMATION_BUFFER, *PFSCTL_SET_INTEGRITY_INFORMATION_BUFFER; + + + + + + +typedef struct _FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX { + BYTE EnableIntegrity; + BYTE KeepIntegrityStateUnchanged; + WORD Reserved; + DWORD Flags; + BYTE Version; + BYTE Reserved2[7]; +} FSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX, *PFSCTL_SET_INTEGRITY_INFORMATION_BUFFER_EX; +# 10569 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FSCTL_OFFLOAD_READ_INPUT { + DWORD Size; + DWORD Flags; + DWORD TokenTimeToLive; + DWORD Reserved; + DWORDLONG FileOffset; + DWORDLONG CopyLength; +} FSCTL_OFFLOAD_READ_INPUT, *PFSCTL_OFFLOAD_READ_INPUT; + +typedef struct _FSCTL_OFFLOAD_READ_OUTPUT { + DWORD Size; + DWORD Flags; + DWORDLONG TransferLength; + BYTE Token[512]; +} FSCTL_OFFLOAD_READ_OUTPUT, *PFSCTL_OFFLOAD_READ_OUTPUT; +# 10594 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FSCTL_OFFLOAD_WRITE_INPUT { + DWORD Size; + DWORD Flags; + DWORDLONG FileOffset; + DWORDLONG CopyLength; + DWORDLONG TransferOffset; + BYTE Token[512]; +} FSCTL_OFFLOAD_WRITE_INPUT, *PFSCTL_OFFLOAD_WRITE_INPUT; + +typedef struct _FSCTL_OFFLOAD_WRITE_OUTPUT { + DWORD Size; + DWORD Flags; + DWORDLONG LengthWritten; +} FSCTL_OFFLOAD_WRITE_OUTPUT, *PFSCTL_OFFLOAD_WRITE_OUTPUT; +# 10616 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _SET_PURGE_FAILURE_MODE_INPUT { + DWORD Flags; +} SET_PURGE_FAILURE_MODE_INPUT, *PSET_PURGE_FAILURE_MODE_INPUT; +# 10629 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DEDUP_QUERY_FILE_HASHES_INPUT_BUFFER { + DWORD Version; + DWORD QueryFlags; + DWORD HashAlgorithm; + LARGE_INTEGER RangeOffsetInFile; + LARGE_INTEGER RangeLength; +} DEDUP_QUERY_FILE_HASHES_INPUT_BUFFER, *PDEDUP_QUERY_FILE_HASHES_INPUT_BUFFER; + + +typedef struct _DEDUP_CHUNK_INFORMATION_HASH32 { + DWORD ChunkFlags; + LONGLONG ChunkOffsetInFile; + LONGLONG ChunkSize; + BYTE HashVal[32]; +} DEDUP_CHUNK_INFORMATION_HASH32, *PDEDUP_CHUNK_INFORMATION_HASH32; + + +typedef struct _DEDUP_FILE_OPERATION { + DWORD Code; +} DEDUP_FILE_OPERATION, *PDEDUP_FILE_OPERATION; +# 10666 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _REPAIR_COPIES_INPUT { + + DWORD Size; + + DWORD Flags; + + LARGE_INTEGER FileOffset; + + DWORD Length; + + DWORD SourceCopy; + + DWORD NumberOfRepairCopies; + + DWORD RepairCopies[1]; + +} REPAIR_COPIES_INPUT, *PREPAIR_COPIES_INPUT; + +typedef struct _REPAIR_COPIES_OUTPUT { + + DWORD Size; + + DWORD Status; + + LARGE_INTEGER ResumeFileOffset; + +} REPAIR_COPIES_OUTPUT, *PREPAIR_COPIES_OUTPUT; +# 10710 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FILE_REGION_INFO { + LONGLONG FileOffset; + LONGLONG Length; + DWORD Usage; + DWORD Reserved; +} FILE_REGION_INFO, *PFILE_REGION_INFO; + +typedef struct _FILE_REGION_OUTPUT { + DWORD Flags; + DWORD TotalRegionEntryCount; + DWORD RegionEntryCount; + DWORD Reserved; + FILE_REGION_INFO Region[1]; +} FILE_REGION_OUTPUT, *PFILE_REGION_OUTPUT; + + + + + + +typedef struct _FILE_REGION_INPUT { + + LONGLONG FileOffset; + LONGLONG Length; + DWORD DesiredUsage; + +} FILE_REGION_INPUT, *PFILE_REGION_INPUT; +# 10755 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _WRITE_USN_REASON_INPUT { + + DWORD Flags; + DWORD UsnReasonToWrite; + +} WRITE_USN_REASON_INPUT, *PWRITE_USN_REASON_INPUT; +# 10790 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef enum _FILE_STORAGE_TIER_MEDIA_TYPE { + + FileStorageTierMediaTypeUnspecified = 0, + FileStorageTierMediaTypeDisk, + FileStorageTierMediaTypeSsd + +} FILE_STORAGE_TIER_MEDIA_TYPE, *PFILE_STORAGE_TIER_MEDIA_TYPE; + +typedef struct _FILE_STORAGE_TIER { + + + + + + GUID Id; + + + + + + WCHAR Name[(256)]; + + + + + + WCHAR Description[(256)]; + + + + + + DWORDLONG Flags; + + + + + + DWORDLONG ProvisionedCapacity; + + + + + + FILE_STORAGE_TIER_MEDIA_TYPE MediaType; + +} FILE_STORAGE_TIER, *PFILE_STORAGE_TIER; +# 10853 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FSCTL_QUERY_STORAGE_CLASSES_OUTPUT { + + + + + + + + DWORD Version; + + + + + + + DWORD Size; + + + + + + DWORD Flags; + + + + + + DWORD TotalNumberOfTiers; + + + + + + DWORD NumberOfTiersReturned; + + + + + + FILE_STORAGE_TIER Tiers[1]; + +} FSCTL_QUERY_STORAGE_CLASSES_OUTPUT, *PFSCTL_QUERY_STORAGE_CLASSES_OUTPUT; +# 10907 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FSCTL_QUERY_REGION_INFO_INPUT { + + DWORD Version; + DWORD Size; + + DWORD Flags; + + DWORD NumberOfTierIds; + GUID TierIds[1]; + +} FSCTL_QUERY_REGION_INFO_INPUT, *PFSCTL_QUERY_REGION_INFO_INPUT; + + + + + + + +typedef struct _FILE_STORAGE_TIER_REGION { + + GUID TierId; + + DWORDLONG Offset; + DWORDLONG Length; + +} FILE_STORAGE_TIER_REGION, *PFILE_STORAGE_TIER_REGION; +# 10941 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FSCTL_QUERY_REGION_INFO_OUTPUT { + + DWORD Version; + DWORD Size; + + DWORD Flags; + DWORD Reserved; + + DWORDLONG Alignment; + + DWORD TotalNumberOfRegions; + DWORD NumberOfRegionsReturned; + + FILE_STORAGE_TIER_REGION Regions[1]; + +} FSCTL_QUERY_REGION_INFO_OUTPUT, *PFSCTL_QUERY_REGION_INFO_OUTPUT; + + + + + + + +typedef struct _DUPLICATE_EXTENTS_DATA { + HANDLE FileHandle; + LARGE_INTEGER SourceFileOffset; + LARGE_INTEGER TargetFileOffset; + LARGE_INTEGER ByteCount; +} DUPLICATE_EXTENTS_DATA, *PDUPLICATE_EXTENTS_DATA; +# 10985 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _WOF_EXTERNAL_INFO { + DWORD Version; + DWORD Provider; +} WOF_EXTERNAL_INFO, *PWOF_EXTERNAL_INFO; + +typedef struct _WOF_EXTERNAL_FILE_ID { + FILE_ID_128 FileId; +} WOF_EXTERNAL_FILE_ID, *PWOF_EXTERNAL_FILE_ID; + +typedef struct _WOF_VERSION_INFO { + DWORD WofVersion; +} WOF_VERSION_INFO, *PWOF_VERSION_INFO; +# 11011 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _WIM_PROVIDER_EXTERNAL_INFO { + DWORD Version; + DWORD Flags; + LARGE_INTEGER DataSourceId; + BYTE ResourceHash[20]; +} WIM_PROVIDER_EXTERNAL_INFO, *PWIM_PROVIDER_EXTERNAL_INFO; +# 11031 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _WIM_PROVIDER_ADD_OVERLAY_INPUT { + DWORD WimType; + DWORD WimIndex; + DWORD WimFileNameOffset; + DWORD WimFileNameLength; +} WIM_PROVIDER_ADD_OVERLAY_INPUT, *PWIM_PROVIDER_ADD_OVERLAY_INPUT; + +typedef struct _WIM_PROVIDER_UPDATE_OVERLAY_INPUT { + LARGE_INTEGER DataSourceId; + DWORD WimFileNameOffset; + DWORD WimFileNameLength; +} WIM_PROVIDER_UPDATE_OVERLAY_INPUT, *PWIM_PROVIDER_UPDATE_OVERLAY_INPUT; + +typedef struct _WIM_PROVIDER_REMOVE_OVERLAY_INPUT { + LARGE_INTEGER DataSourceId; +} WIM_PROVIDER_REMOVE_OVERLAY_INPUT, *PWIM_PROVIDER_REMOVE_OVERLAY_INPUT; + +typedef struct _WIM_PROVIDER_SUSPEND_OVERLAY_INPUT { + LARGE_INTEGER DataSourceId; +} WIM_PROVIDER_SUSPEND_OVERLAY_INPUT, *PWIM_PROVIDER_SUSPEND_OVERLAY_INPUT; + +typedef struct _WIM_PROVIDER_OVERLAY_ENTRY { + DWORD NextEntryOffset; + LARGE_INTEGER DataSourceId; + GUID WimGuid; + DWORD WimFileNameOffset; + DWORD WimType; + DWORD WimIndex; + DWORD Flags; +} WIM_PROVIDER_OVERLAY_ENTRY, *PWIM_PROVIDER_OVERLAY_ENTRY; +# 11081 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _FILE_PROVIDER_EXTERNAL_INFO_V0 { + DWORD Version; + DWORD Algorithm; +} FILE_PROVIDER_EXTERNAL_INFO_V0, *PFILE_PROVIDER_EXTERNAL_INFO_V0; + +typedef struct _FILE_PROVIDER_EXTERNAL_INFO_V1 { + DWORD Version; + DWORD Algorithm; + DWORD Flags; +} FILE_PROVIDER_EXTERNAL_INFO_V1, *PFILE_PROVIDER_EXTERNAL_INFO_V1; + +typedef FILE_PROVIDER_EXTERNAL_INFO_V1 FILE_PROVIDER_EXTERNAL_INFO; +typedef PFILE_PROVIDER_EXTERNAL_INFO_V1 PFILE_PROVIDER_EXTERNAL_INFO; + + + + +typedef struct _CONTAINER_VOLUME_STATE { + DWORD Flags; +} CONTAINER_VOLUME_STATE, *PCONTAINER_VOLUME_STATE; + + + + +typedef struct _CONTAINER_ROOT_INFO_INPUT { + DWORD Flags; +} CONTAINER_ROOT_INFO_INPUT, *PCONTAINER_ROOT_INFO_INPUT; + +typedef struct _CONTAINER_ROOT_INFO_OUTPUT { + WORD ContainerRootIdLength; + BYTE ContainerRootId[1]; +} CONTAINER_ROOT_INFO_OUTPUT, *PCONTAINER_ROOT_INFO_OUTPUT; + +typedef struct _VIRTUALIZATION_INSTANCE_INFO_INPUT { + DWORD Flags; +} VIRTUALIZATION_INSTANCE_INFO_INPUT, *PVIRTUALIZATION_INSTANCE_INFO_INPUT; + +typedef struct _VIRTUALIZATION_INSTANCE_INFO_OUTPUT { + GUID VirtualizationInstanceID; +} VIRTUALIZATION_INSTANCE_INFO_OUTPUT, *PVIRTUALIZATION_INSTANCE_INFO_OUTPUT; +# 11214 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _DISK_EXTENT { + + + + + + DWORD DiskNumber; + + + + + + + LARGE_INTEGER StartingOffset; + LARGE_INTEGER ExtentLength; + +} DISK_EXTENT, *PDISK_EXTENT; + +typedef struct _VOLUME_DISK_EXTENTS { + + + + + + DWORD NumberOfDiskExtents; + DISK_EXTENT Extents[1]; + +} VOLUME_DISK_EXTENTS, *PVOLUME_DISK_EXTENTS; +# 11302 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _VOLUME_GET_GPT_ATTRIBUTES_INFORMATION { + + + + + + DWORDLONG GptAttributes; + +} VOLUME_GET_GPT_ATTRIBUTES_INFORMATION, *PVOLUME_GET_GPT_ATTRIBUTES_INFORMATION; +# 11325 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +struct _IO_IRP_EXT_TRACK_OFFSET_HEADER; + +typedef void +(*PIO_IRP_EXT_PROCESS_TRACKED_OFFSET_CALLBACK)( + struct _IO_IRP_EXT_TRACK_OFFSET_HEADER *SourceContext, + struct _IO_IRP_EXT_TRACK_OFFSET_HEADER *TargetContext, + LONGLONG RelativeOffset + ); +# 11343 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +typedef struct _IO_IRP_EXT_TRACK_OFFSET_HEADER { + + WORD Validation; + + + + WORD Flags; + + PIO_IRP_EXT_PROCESS_TRACKED_OFFSET_CALLBACK TrackedOffsetCallback; + +} IO_IRP_EXT_TRACK_OFFSET_HEADER, *PIO_IRP_EXT_TRACK_OFFSET_HEADER; +# 11369 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winioctl.h" +#pragma warning(pop) +# 31 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\winsmcrd.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\winsmcrd.h" +extern "C" { + + + +#pragma warning(push) +#pragma warning(disable: 4820) + + + +typedef DWORD ULONG; +typedef WORD UWORD; +typedef BYTE UCHAR; +# 59 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\winsmcrd.h" +extern "C" const GUID GUID_DEVINTERFACE_SMARTCARD_READER; +# 269 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\winsmcrd.h" +typedef struct _SCARD_IO_REQUEST{ + DWORD dwProtocol; + DWORD cbPciLength; +} SCARD_IO_REQUEST, *PSCARD_IO_REQUEST, *LPSCARD_IO_REQUEST; +typedef const SCARD_IO_REQUEST *LPCSCARD_IO_REQUEST; + + + + + + +typedef struct _SCARD_T0_COMMAND { + BYTE + bCla, + bIns, + bP1, + bP2, + bP3; +} SCARD_T0_COMMAND, *LPSCARD_T0_COMMAND; + +typedef struct _SCARD_T0_REQUEST { + SCARD_IO_REQUEST ioRequest; + BYTE + bSw1, + bSw2; +#pragma warning(push) +#pragma warning(disable: 4201) + union + { + SCARD_T0_COMMAND CmdBytes; + BYTE rgbHeader[5]; + } ; +#pragma warning(pop) +} SCARD_T0_REQUEST; + +typedef SCARD_T0_REQUEST *PSCARD_T0_REQUEST, *LPSCARD_T0_REQUEST; + + + + + + +typedef struct _SCARD_T1_REQUEST { + SCARD_IO_REQUEST ioRequest; +} SCARD_T1_REQUEST; +typedef SCARD_T1_REQUEST *PSCARD_T1_REQUEST, *LPSCARD_T1_REQUEST; +# 351 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\winsmcrd.h" +#pragma warning(pop) + + + +} +# 32 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" 2 + + + + + + + +extern "C" { + + + +#pragma warning(push) +#pragma warning(disable: 4820) + + + + + + + +typedef const BYTE *LPCBYTE; + + + +typedef const void *LPCVOID; +# 71 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +__declspec(dllimport) extern const SCARD_IO_REQUEST + g_rgSCardT0Pci, + g_rgSCardT1Pci, + g_rgSCardRawPci; +# 89 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +typedef ULONG_PTR SCARDCONTEXT; +typedef SCARDCONTEXT *PSCARDCONTEXT, *LPSCARDCONTEXT; + +typedef ULONG_PTR SCARDHANDLE; +typedef SCARDHANDLE *PSCARDHANDLE, *LPSCARDHANDLE; +# 111 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +extern LONG __stdcall +SCardEstablishContext( + DWORD dwScope, + LPCVOID pvReserved1, + LPCVOID pvReserved2, + LPSCARDCONTEXT phContext); + +extern LONG __stdcall +SCardReleaseContext( + SCARDCONTEXT hContext); + +extern LONG __stdcall +SCardIsValidContext( + SCARDCONTEXT hContext); +# 149 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +extern LONG __stdcall +SCardListReaderGroupsA( + SCARDCONTEXT hContext, + LPSTR mszGroups, + LPDWORD pcchGroups); +extern LONG __stdcall +SCardListReaderGroupsW( + SCARDCONTEXT hContext, + LPWSTR mszGroups, + LPDWORD pcchGroups); + + + + + + + +extern LONG __stdcall +SCardListReadersA( + SCARDCONTEXT hContext, + LPCSTR mszGroups, + + + LPSTR mszReaders, + LPDWORD pcchReaders); + +extern LONG __stdcall +SCardListReadersW( + SCARDCONTEXT hContext, + LPCWSTR mszGroups, + + + LPWSTR mszReaders, + LPDWORD pcchReaders); + + + + + + + +extern LONG __stdcall +SCardListCardsA( + SCARDCONTEXT hContext, + LPCBYTE pbAtr, + LPCGUID rgquidInterfaces, + DWORD cguidInterfaceCount, + + + CHAR *mszCards, + LPDWORD pcchCards); + +extern LONG __stdcall +SCardListCardsW( + SCARDCONTEXT hContext, + LPCBYTE pbAtr, + LPCGUID rgquidInterfaces, + DWORD cguidInterfaceCount, + + + WCHAR *mszCards, + LPDWORD pcchCards); +# 232 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +extern LONG __stdcall +SCardListInterfacesA( + SCARDCONTEXT hContext, + LPCSTR szCard, + LPGUID pguidInterfaces, + LPDWORD pcguidInterfaces); +extern LONG __stdcall +SCardListInterfacesW( + SCARDCONTEXT hContext, + LPCWSTR szCard, + LPGUID pguidInterfaces, + LPDWORD pcguidInterfaces); + + + + + + +extern LONG __stdcall +SCardGetProviderIdA( + SCARDCONTEXT hContext, + LPCSTR szCard, + LPGUID pguidProviderId); +extern LONG __stdcall +SCardGetProviderIdW( + SCARDCONTEXT hContext, + LPCWSTR szCard, + LPGUID pguidProviderId); +# 271 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +extern LONG __stdcall +SCardGetCardTypeProviderNameA( + SCARDCONTEXT hContext, + LPCSTR szCardName, + DWORD dwProviderId, + + + CHAR *szProvider, + LPDWORD pcchProvider); + +extern LONG __stdcall +SCardGetCardTypeProviderNameW( + SCARDCONTEXT hContext, + LPCWSTR szCardName, + DWORD dwProviderId, + + + WCHAR *szProvider, + LPDWORD pcchProvider); +# 304 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +extern LONG __stdcall +SCardIntroduceReaderGroupA( + SCARDCONTEXT hContext, + LPCSTR szGroupName); +extern LONG __stdcall +SCardIntroduceReaderGroupW( + SCARDCONTEXT hContext, + LPCWSTR szGroupName); + + + + + + +extern LONG __stdcall +SCardForgetReaderGroupA( + SCARDCONTEXT hContext, + LPCSTR szGroupName); +extern LONG __stdcall +SCardForgetReaderGroupW( + SCARDCONTEXT hContext, + LPCWSTR szGroupName); + + + + + + +extern LONG __stdcall +SCardIntroduceReaderA( + SCARDCONTEXT hContext, + LPCSTR szReaderName, + LPCSTR szDeviceName); +extern LONG __stdcall +SCardIntroduceReaderW( + SCARDCONTEXT hContext, + LPCWSTR szReaderName, + LPCWSTR szDeviceName); + + + + + + +extern LONG __stdcall +SCardForgetReaderA( + SCARDCONTEXT hContext, + LPCSTR szReaderName); +extern LONG __stdcall +SCardForgetReaderW( + SCARDCONTEXT hContext, + LPCWSTR szReaderName); + + + + + + +extern LONG __stdcall +SCardAddReaderToGroupA( + SCARDCONTEXT hContext, + LPCSTR szReaderName, + LPCSTR szGroupName); +extern LONG __stdcall +SCardAddReaderToGroupW( + SCARDCONTEXT hContext, + LPCWSTR szReaderName, + LPCWSTR szGroupName); + + + + + + +extern LONG __stdcall +SCardRemoveReaderFromGroupA( + SCARDCONTEXT hContext, + LPCSTR szReaderName, + LPCSTR szGroupName); +extern LONG __stdcall +SCardRemoveReaderFromGroupW( + SCARDCONTEXT hContext, + LPCWSTR szReaderName, + LPCWSTR szGroupName); + + + + + + +extern LONG __stdcall +SCardIntroduceCardTypeA( + SCARDCONTEXT hContext, + LPCSTR szCardName, + LPCGUID pguidPrimaryProvider, + LPCGUID rgguidInterfaces, + DWORD dwInterfaceCount, + LPCBYTE pbAtr, + LPCBYTE pbAtrMask, + DWORD cbAtrLen); +extern LONG __stdcall +SCardIntroduceCardTypeW( + SCARDCONTEXT hContext, + LPCWSTR szCardName, + LPCGUID pguidPrimaryProvider, + LPCGUID rgguidInterfaces, + DWORD dwInterfaceCount, + LPCBYTE pbAtr, + LPCBYTE pbAtrMask, + DWORD cbAtrLen); +# 438 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +extern LONG __stdcall +SCardSetCardTypeProviderNameA( + SCARDCONTEXT hContext, + LPCSTR szCardName, + DWORD dwProviderId, + LPCSTR szProvider); +extern LONG __stdcall +SCardSetCardTypeProviderNameW( + SCARDCONTEXT hContext, + LPCWSTR szCardName, + DWORD dwProviderId, + LPCWSTR szProvider); +# 459 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +extern LONG __stdcall +SCardForgetCardTypeA( + SCARDCONTEXT hContext, + LPCSTR szCardName); +extern LONG __stdcall +SCardForgetCardTypeW( + SCARDCONTEXT hContext, + LPCWSTR szCardName); +# 483 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +extern LONG __stdcall +SCardFreeMemory( + SCARDCONTEXT hContext, + LPCVOID pvMem); + + +extern HANDLE __stdcall +SCardAccessStartedEvent(void); + +extern void __stdcall +SCardReleaseStartedEvent(void); +# 504 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +typedef struct { + LPCSTR szReader; + LPVOID pvUserData; + DWORD dwCurrentState; + DWORD dwEventState; + DWORD cbAtr; + BYTE rgbAtr[36]; +} SCARD_READERSTATEA, *PSCARD_READERSTATEA, *LPSCARD_READERSTATEA; +typedef struct { + LPCWSTR szReader; + LPVOID pvUserData; + DWORD dwCurrentState; + DWORD dwEventState; + DWORD cbAtr; + BYTE rgbAtr[36]; +} SCARD_READERSTATEW, *PSCARD_READERSTATEW, *LPSCARD_READERSTATEW; + +typedef SCARD_READERSTATEW SCARD_READERSTATE; +typedef PSCARD_READERSTATEW PSCARD_READERSTATE; +typedef LPSCARD_READERSTATEW LPSCARD_READERSTATE; +# 600 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +extern LONG __stdcall +SCardLocateCardsA( + SCARDCONTEXT hContext, + LPCSTR mszCards, + LPSCARD_READERSTATEA rgReaderStates, + DWORD cReaders); +extern LONG __stdcall +SCardLocateCardsW( + SCARDCONTEXT hContext, + LPCWSTR mszCards, + LPSCARD_READERSTATEW rgReaderStates, + DWORD cReaders); + + + + + + + +typedef struct _SCARD_ATRMASK { + DWORD cbAtr; + BYTE rgbAtr[36]; + BYTE rgbMask[36]; +} SCARD_ATRMASK, *PSCARD_ATRMASK, *LPSCARD_ATRMASK; + + +extern LONG __stdcall +SCardLocateCardsByATRA( + SCARDCONTEXT hContext, + LPSCARD_ATRMASK rgAtrMasks, + DWORD cAtrs, + LPSCARD_READERSTATEA rgReaderStates, + DWORD cReaders); +extern LONG __stdcall +SCardLocateCardsByATRW( + SCARDCONTEXT hContext, + LPSCARD_ATRMASK rgAtrMasks, + DWORD cAtrs, + LPSCARD_READERSTATEW rgReaderStates, + DWORD cReaders); + + + + + + + +extern LONG __stdcall +SCardGetStatusChangeA( + SCARDCONTEXT hContext, + DWORD dwTimeout, + LPSCARD_READERSTATEA rgReaderStates, + DWORD cReaders); +extern LONG __stdcall +SCardGetStatusChangeW( + SCARDCONTEXT hContext, + DWORD dwTimeout, + LPSCARD_READERSTATEW rgReaderStates, + DWORD cReaders); + + + + + + +extern LONG __stdcall +SCardCancel( + SCARDCONTEXT hContext); +# 691 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +extern LONG __stdcall +SCardConnectA( + SCARDCONTEXT hContext, + LPCSTR szReader, + DWORD dwShareMode, + DWORD dwPreferredProtocols, + LPSCARDHANDLE phCard, + LPDWORD pdwActiveProtocol); +extern LONG __stdcall +SCardConnectW( + SCARDCONTEXT hContext, + LPCWSTR szReader, + DWORD dwShareMode, + DWORD dwPreferredProtocols, + LPSCARDHANDLE phCard, + LPDWORD pdwActiveProtocol); + + + + + + +extern LONG __stdcall +SCardReconnect( + SCARDHANDLE hCard, + DWORD dwShareMode, + DWORD dwPreferredProtocols, + DWORD dwInitialization, + LPDWORD pdwActiveProtocol); + +extern LONG __stdcall +SCardDisconnect( + SCARDHANDLE hCard, + DWORD dwDisposition); + +extern LONG __stdcall +SCardBeginTransaction( + SCARDHANDLE hCard); + +extern LONG __stdcall +SCardEndTransaction( + SCARDHANDLE hCard, + DWORD dwDisposition); + +extern LONG __stdcall +SCardCancelTransaction( + SCARDHANDLE hCard); + + + + + + +extern LONG __stdcall +SCardState( + SCARDHANDLE hCard, + LPDWORD pdwState, + LPDWORD pdwProtocol, + LPBYTE pbAtr, + LPDWORD pcbAtrLen); + + + + + +extern LONG __stdcall +SCardStatusA( + SCARDHANDLE hCard, + + + LPSTR mszReaderNames, + LPDWORD pcchReaderLen, + LPDWORD pdwState, + LPDWORD pdwProtocol, + + + LPBYTE pbAtr, + LPDWORD pcbAtrLen); +extern LONG __stdcall +SCardStatusW( + SCARDHANDLE hCard, + + + LPWSTR mszReaderNames, + LPDWORD pcchReaderLen, + LPDWORD pdwState, + LPDWORD pdwProtocol, + + + LPBYTE pbAtr, + LPDWORD pcbAtrLen); + + + + + + +extern LONG __stdcall +SCardTransmit( + SCARDHANDLE hCard, + LPCSCARD_IO_REQUEST pioSendPci, + LPCBYTE pbSendBuffer, + DWORD cbSendLength, + LPSCARD_IO_REQUEST pioRecvPci, + LPBYTE pbRecvBuffer, + LPDWORD pcbRecvLength); + + +extern LONG __stdcall +SCardGetTransmitCount( + SCARDHANDLE hCard, + LPDWORD pcTransmitCount); +# 815 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +extern LONG __stdcall +SCardControl( + SCARDHANDLE hCard, + DWORD dwControlCode, + LPCVOID lpInBuffer, + DWORD cbInBufferSize, + LPVOID lpOutBuffer, + DWORD cbOutBufferSize, + LPDWORD lpBytesReturned); + +extern LONG __stdcall +SCardGetAttrib( + SCARDHANDLE hCard, + DWORD dwAttrId, + LPBYTE pbAttr, + LPDWORD pcbAttrLen); +# 845 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +extern LONG __stdcall +SCardSetAttrib( + SCARDHANDLE hCard, + DWORD dwAttrId, + LPCBYTE pbAttr, + DWORD cbAttrLen); +# 884 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +typedef SCARDHANDLE (__stdcall *LPOCNCONNPROCA) ( SCARDCONTEXT, LPSTR, LPSTR, PVOID); +typedef SCARDHANDLE (__stdcall *LPOCNCONNPROCW) ( SCARDCONTEXT, LPWSTR, LPWSTR, PVOID); + + + + + +typedef BOOL (__stdcall *LPOCNCHKPROC) ( SCARDCONTEXT, SCARDHANDLE, PVOID); +typedef void (__stdcall *LPOCNDSCPROC) ( SCARDCONTEXT, SCARDHANDLE, PVOID); +# 904 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +typedef struct { + DWORD dwStructSize; + LPSTR lpstrGroupNames; + DWORD nMaxGroupNames; + + LPCGUID rgguidInterfaces; + DWORD cguidInterfaces; + LPSTR lpstrCardNames; + DWORD nMaxCardNames; + LPOCNCHKPROC lpfnCheck; + LPOCNCONNPROCA lpfnConnect; + LPOCNDSCPROC lpfnDisconnect; + LPVOID pvUserData; + DWORD dwShareMode; + DWORD dwPreferredProtocols; +} OPENCARD_SEARCH_CRITERIAA, *POPENCARD_SEARCH_CRITERIAA, *LPOPENCARD_SEARCH_CRITERIAA; +typedef struct { + DWORD dwStructSize; + LPWSTR lpstrGroupNames; + DWORD nMaxGroupNames; + + LPCGUID rgguidInterfaces; + DWORD cguidInterfaces; + LPWSTR lpstrCardNames; + DWORD nMaxCardNames; + LPOCNCHKPROC lpfnCheck; + LPOCNCONNPROCW lpfnConnect; + LPOCNDSCPROC lpfnDisconnect; + LPVOID pvUserData; + DWORD dwShareMode; + DWORD dwPreferredProtocols; +} OPENCARD_SEARCH_CRITERIAW, *POPENCARD_SEARCH_CRITERIAW, *LPOPENCARD_SEARCH_CRITERIAW; + +typedef OPENCARD_SEARCH_CRITERIAW OPENCARD_SEARCH_CRITERIA; +typedef POPENCARD_SEARCH_CRITERIAW POPENCARD_SEARCH_CRITERIA; +typedef LPOPENCARD_SEARCH_CRITERIAW LPOPENCARD_SEARCH_CRITERIA; +# 951 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +typedef struct { + DWORD dwStructSize; + SCARDCONTEXT hSCardContext; + HWND hwndOwner; + DWORD dwFlags; + LPCSTR lpstrTitle; + LPCSTR lpstrSearchDesc; + HICON hIcon; + POPENCARD_SEARCH_CRITERIAA pOpenCardSearchCriteria; + LPOCNCONNPROCA lpfnConnect; + LPVOID pvUserData; + DWORD dwShareMode; + DWORD dwPreferredProtocols; + + LPSTR lpstrRdr; + DWORD nMaxRdr; + LPSTR lpstrCard; + DWORD nMaxCard; + DWORD dwActiveProtocol; + SCARDHANDLE hCardHandle; +} OPENCARDNAME_EXA, *POPENCARDNAME_EXA, *LPOPENCARDNAME_EXA; +typedef struct { + DWORD dwStructSize; + SCARDCONTEXT hSCardContext; + HWND hwndOwner; + DWORD dwFlags; + LPCWSTR lpstrTitle; + LPCWSTR lpstrSearchDesc; + HICON hIcon; + POPENCARD_SEARCH_CRITERIAW pOpenCardSearchCriteria; + LPOCNCONNPROCW lpfnConnect; + LPVOID pvUserData; + DWORD dwShareMode; + DWORD dwPreferredProtocols; + + LPWSTR lpstrRdr; + DWORD nMaxRdr; + LPWSTR lpstrCard; + DWORD nMaxCard; + DWORD dwActiveProtocol; + SCARDHANDLE hCardHandle; +} OPENCARDNAME_EXW, *POPENCARDNAME_EXW, *LPOPENCARDNAME_EXW; + +typedef OPENCARDNAME_EXW OPENCARDNAME_EX; +typedef POPENCARDNAME_EXW POPENCARDNAME_EX; +typedef LPOPENCARDNAME_EXW LPOPENCARDNAME_EX; +# 1084 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +typedef enum { + RSR_MATCH_TYPE_READER_AND_CONTAINER = 1, + RSR_MATCH_TYPE_SERIAL_NUMBER, + RSR_MATCH_TYPE_ALL_CARDS +} READER_SEL_REQUEST_MATCH_TYPE; + +typedef struct { + DWORD dwShareMode; + DWORD dwPreferredProtocols; + READER_SEL_REQUEST_MATCH_TYPE MatchType; +#pragma warning(push) +#pragma warning(disable: 4201) + union { + struct { + DWORD cbReaderNameOffset; + DWORD cchReaderNameLength; + DWORD cbContainerNameOffset; + DWORD cchContainerNameLength; + DWORD dwDesiredCardModuleVersion; + DWORD dwCspFlags; + } ReaderAndContainerParameter; + struct { + DWORD cbSerialNumberOffset; + DWORD cbSerialNumberLength; + DWORD dwDesiredCardModuleVersion; + } SerialNumberParameter; + } ; +#pragma warning(pop) +} READER_SEL_REQUEST, *PREADER_SEL_REQUEST; +# 1133 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +typedef struct { + DWORD cbReaderNameOffset; + DWORD cchReaderNameLength; + DWORD cbCardNameOffset; + DWORD cchCardNameLength; +} READER_SEL_RESPONSE, *PREADER_SEL_RESPONSE; + + + + + + +extern LONG __stdcall +SCardUIDlgSelectCardA( + LPOPENCARDNAME_EXA); +extern LONG __stdcall +SCardUIDlgSelectCardW( + LPOPENCARDNAME_EXW); +# 1163 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +typedef struct { + DWORD dwStructSize; + HWND hwndOwner; + SCARDCONTEXT hSCardContext; + LPSTR lpstrGroupNames; + DWORD nMaxGroupNames; + LPSTR lpstrCardNames; + DWORD nMaxCardNames; + LPCGUID rgguidInterfaces; + DWORD cguidInterfaces; + LPSTR lpstrRdr; + DWORD nMaxRdr; + LPSTR lpstrCard; + DWORD nMaxCard; + LPCSTR lpstrTitle; + DWORD dwFlags; + LPVOID pvUserData; + DWORD dwShareMode; + DWORD dwPreferredProtocols; + DWORD dwActiveProtocol; + LPOCNCONNPROCA lpfnConnect; + LPOCNCHKPROC lpfnCheck; + LPOCNDSCPROC lpfnDisconnect; + SCARDHANDLE hCardHandle; +} OPENCARDNAMEA, *POPENCARDNAMEA, *LPOPENCARDNAMEA; +typedef struct { + DWORD dwStructSize; + HWND hwndOwner; + SCARDCONTEXT hSCardContext; + LPWSTR lpstrGroupNames; + DWORD nMaxGroupNames; + LPWSTR lpstrCardNames; + DWORD nMaxCardNames; + LPCGUID rgguidInterfaces; + DWORD cguidInterfaces; + LPWSTR lpstrRdr; + DWORD nMaxRdr; + LPWSTR lpstrCard; + DWORD nMaxCard; + LPCWSTR lpstrTitle; + DWORD dwFlags; + LPVOID pvUserData; + DWORD dwShareMode; + DWORD dwPreferredProtocols; + DWORD dwActiveProtocol; + LPOCNCONNPROCW lpfnConnect; + LPOCNCHKPROC lpfnCheck; + LPOCNDSCPROC lpfnDisconnect; + SCARDHANDLE hCardHandle; +} OPENCARDNAMEW, *POPENCARDNAMEW, *LPOPENCARDNAMEW; + +typedef OPENCARDNAMEW OPENCARDNAME; +typedef POPENCARDNAMEW POPENCARDNAME; +typedef LPOPENCARDNAMEW LPOPENCARDNAME; +# 1231 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +extern LONG __stdcall +GetOpenCardNameA( + LPOPENCARDNAMEA); +extern LONG __stdcall +GetOpenCardNameW( + LPOPENCARDNAMEW); + + + + + + +extern LONG __stdcall +SCardDlgExtendedError (void); + + + + + + + +extern LONG __stdcall +SCardReadCacheA( + SCARDCONTEXT hContext, + UUID *CardIdentifier, + DWORD FreshnessCounter, + LPSTR LookupName, + PBYTE Data, + DWORD *DataLen); +extern LONG __stdcall +SCardReadCacheW( + SCARDCONTEXT hContext, + UUID *CardIdentifier, + DWORD FreshnessCounter, + LPWSTR LookupName, + PBYTE Data, + DWORD *DataLen); + + + + + + +extern LONG __stdcall +SCardWriteCacheA( + SCARDCONTEXT hContext, + UUID *CardIdentifier, + DWORD FreshnessCounter, + LPSTR LookupName, + PBYTE Data, + DWORD DataLen); +extern LONG __stdcall +SCardWriteCacheW( + SCARDCONTEXT hContext, + UUID *CardIdentifier, + DWORD FreshnessCounter, + LPWSTR LookupName, + PBYTE Data, + DWORD DataLen); +# 1301 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +extern LONG __stdcall +SCardGetReaderIconA( + SCARDCONTEXT hContext, + LPCSTR szReaderName, + + + LPBYTE pbIcon, + LPDWORD pcbIcon); + +extern LONG __stdcall +SCardGetReaderIconW( + SCARDCONTEXT hContext, + LPCWSTR szReaderName, + + + LPBYTE pbIcon, + LPDWORD pcbIcon); + + + + + + + +extern LONG __stdcall +SCardGetDeviceTypeIdA( + SCARDCONTEXT hContext, + LPCSTR szReaderName, + LPDWORD pdwDeviceTypeId); + +extern LONG __stdcall +SCardGetDeviceTypeIdW( + SCARDCONTEXT hContext, + LPCWSTR szReaderName, + LPDWORD pdwDeviceTypeId); + + + + + + + +extern LONG __stdcall +SCardGetReaderDeviceInstanceIdA( + SCARDCONTEXT hContext, + LPCSTR szReaderName, + + + LPSTR szDeviceInstanceId, + LPDWORD pcchDeviceInstanceId); + +extern LONG __stdcall +SCardGetReaderDeviceInstanceIdW( + SCARDCONTEXT hContext, + LPCWSTR szReaderName, + + + LPWSTR szDeviceInstanceId, + LPDWORD pcchDeviceInstanceId); + + + + + + + +extern LONG __stdcall +SCardListReadersWithDeviceInstanceIdA( + SCARDCONTEXT hContext, + LPCSTR szDeviceInstanceId, + + + LPSTR mszReaders, + LPDWORD pcchReaders); + +extern LONG __stdcall +SCardListReadersWithDeviceInstanceIdW( + SCARDCONTEXT hContext, + LPCWSTR szDeviceInstanceId, + + + LPWSTR mszReaders, + LPDWORD pcchReaders); +# 1403 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winscard.h" +extern LONG __stdcall +SCardAudit( + SCARDCONTEXT hContext, + DWORD dwEvent); + + + + + + + +#pragma warning(pop) + + + +} +# 205 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" 1 +# 23 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" 1 +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" +#pragma warning(push) +#pragma warning(disable: 4001) +#pragma warning(disable: 4201) +#pragma warning(disable: 4820) +# 58 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack4.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack4.h" +#pragma warning(disable: 4103) + +#pragma pack(push,4) +# 58 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" 2 + + + + +extern "C" { +# 96 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" +struct _PSP; +typedef struct _PSP * HPROPSHEETPAGE; + + +struct _PROPSHEETPAGEA; +struct _PROPSHEETPAGEW; + + +typedef UINT (__stdcall *LPFNPSPCALLBACKA)(HWND hwnd, UINT uMsg, struct _PROPSHEETPAGEA *ppsp); +typedef UINT (__stdcall *LPFNPSPCALLBACKW)(HWND hwnd, UINT uMsg, struct _PROPSHEETPAGEW *ppsp); +# 140 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" +typedef LPCDLGTEMPLATE PROPSHEETPAGE_RESOURCE; +# 196 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" +typedef struct _PROPSHEETPAGEA_V1 +{ + DWORD dwSize; DWORD dwFlags; HINSTANCE hInstance; union { LPCSTR pszTemplate; PROPSHEETPAGE_RESOURCE pResource; } ; union { HICON hIcon; LPCSTR pszIcon; } ; LPCSTR pszTitle; DLGPROC pfnDlgProc; LPARAM lParam; LPFNPSPCALLBACKA pfnCallback; UINT *pcRefParent; +} PROPSHEETPAGEA_V1, *LPPROPSHEETPAGEA_V1; +typedef const PROPSHEETPAGEA_V1 *LPCPROPSHEETPAGEA_V1; + +typedef struct _PROPSHEETPAGEA_V2 +{ + DWORD dwSize; DWORD dwFlags; HINSTANCE hInstance; union { LPCSTR pszTemplate; PROPSHEETPAGE_RESOURCE pResource; } ; union { HICON hIcon; LPCSTR pszIcon; } ; LPCSTR pszTitle; DLGPROC pfnDlgProc; LPARAM lParam; LPFNPSPCALLBACKA pfnCallback; UINT *pcRefParent; + + LPCSTR pszHeaderTitle; + LPCSTR pszHeaderSubTitle; +} PROPSHEETPAGEA_V2, *LPPROPSHEETPAGEA_V2; +typedef const PROPSHEETPAGEA_V2 *LPCPROPSHEETPAGEA_V2; + +typedef struct _PROPSHEETPAGEA_V3 +{ + DWORD dwSize; DWORD dwFlags; HINSTANCE hInstance; union { LPCSTR pszTemplate; PROPSHEETPAGE_RESOURCE pResource; } ; union { HICON hIcon; LPCSTR pszIcon; } ; LPCSTR pszTitle; DLGPROC pfnDlgProc; LPARAM lParam; LPFNPSPCALLBACKA pfnCallback; UINT *pcRefParent; + + LPCSTR pszHeaderTitle; + LPCSTR pszHeaderSubTitle; + + HANDLE hActCtx; +} PROPSHEETPAGEA_V3, *LPPROPSHEETPAGEA_V3; +typedef const PROPSHEETPAGEA_V3 *LPCPROPSHEETPAGEA_V3; + + +typedef struct _PROPSHEETPAGEA +{ + DWORD dwSize; DWORD dwFlags; HINSTANCE hInstance; union { LPCSTR pszTemplate; PROPSHEETPAGE_RESOURCE pResource; } ; union { HICON hIcon; LPCSTR pszIcon; } ; LPCSTR pszTitle; DLGPROC pfnDlgProc; LPARAM lParam; LPFNPSPCALLBACKA pfnCallback; UINT *pcRefParent; + + LPCSTR pszHeaderTitle; + LPCSTR pszHeaderSubTitle; + + HANDLE hActCtx; + + union + { + HBITMAP hbmHeader; + LPCSTR pszbmHeader; + } ; + +} PROPSHEETPAGEA_V4, *LPPROPSHEETPAGEA_V4; +typedef const PROPSHEETPAGEA_V4 *LPCPROPSHEETPAGEA_V4; + + +typedef struct _PROPSHEETPAGEW_V1 +{ + DWORD dwSize; DWORD dwFlags; HINSTANCE hInstance; union { LPCWSTR pszTemplate; PROPSHEETPAGE_RESOURCE pResource; } ; union { HICON hIcon; LPCWSTR pszIcon; } ; LPCWSTR pszTitle; DLGPROC pfnDlgProc; LPARAM lParam; LPFNPSPCALLBACKW pfnCallback; UINT *pcRefParent; +} PROPSHEETPAGEW_V1, *LPPROPSHEETPAGEW_V1; +typedef const PROPSHEETPAGEW_V1 *LPCPROPSHEETPAGEW_V1; + +typedef struct _PROPSHEETPAGEW_V2 +{ + DWORD dwSize; DWORD dwFlags; HINSTANCE hInstance; union { LPCWSTR pszTemplate; PROPSHEETPAGE_RESOURCE pResource; } ; union { HICON hIcon; LPCWSTR pszIcon; } ; LPCWSTR pszTitle; DLGPROC pfnDlgProc; LPARAM lParam; LPFNPSPCALLBACKW pfnCallback; UINT *pcRefParent; + + LPCWSTR pszHeaderTitle; + LPCWSTR pszHeaderSubTitle; +} PROPSHEETPAGEW_V2, *LPPROPSHEETPAGEW_V2; +typedef const PROPSHEETPAGEW_V2 *LPCPROPSHEETPAGEW_V2; + +typedef struct _PROPSHEETPAGEW_V3 +{ + DWORD dwSize; DWORD dwFlags; HINSTANCE hInstance; union { LPCWSTR pszTemplate; PROPSHEETPAGE_RESOURCE pResource; } ; union { HICON hIcon; LPCWSTR pszIcon; } ; LPCWSTR pszTitle; DLGPROC pfnDlgProc; LPARAM lParam; LPFNPSPCALLBACKW pfnCallback; UINT *pcRefParent; + + LPCWSTR pszHeaderTitle; + LPCWSTR pszHeaderSubTitle; + + HANDLE hActCtx; +} PROPSHEETPAGEW_V3, *LPPROPSHEETPAGEW_V3; +typedef const PROPSHEETPAGEW_V3 *LPCPROPSHEETPAGEW_V3; + + +typedef struct _PROPSHEETPAGEW +{ + DWORD dwSize; DWORD dwFlags; HINSTANCE hInstance; union { LPCWSTR pszTemplate; PROPSHEETPAGE_RESOURCE pResource; } ; union { HICON hIcon; LPCWSTR pszIcon; } ; LPCWSTR pszTitle; DLGPROC pfnDlgProc; LPARAM lParam; LPFNPSPCALLBACKW pfnCallback; UINT *pcRefParent; + + LPCWSTR pszHeaderTitle; + LPCWSTR pszHeaderSubTitle; + + HANDLE hActCtx; + + union + { + HBITMAP hbmHeader; + LPCWSTR pszbmHeader; + } ; + +} PROPSHEETPAGEW_V4, *LPPROPSHEETPAGEW_V4; +typedef const PROPSHEETPAGEW_V4 *LPCPROPSHEETPAGEW_V4; +# 304 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" +typedef PROPSHEETPAGEA_V4 PROPSHEETPAGEA_LATEST; +typedef PROPSHEETPAGEW_V4 PROPSHEETPAGEW_LATEST; +typedef LPPROPSHEETPAGEA_V4 LPPROPSHEETPAGEA_LATEST; +typedef LPPROPSHEETPAGEW_V4 LPPROPSHEETPAGEW_LATEST; +typedef LPCPROPSHEETPAGEA_V4 LPCPROPSHEETPAGEA_LATEST; +typedef LPCPROPSHEETPAGEW_V4 LPCPROPSHEETPAGEW_LATEST; +# 321 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" +typedef PROPSHEETPAGEA_V4 PROPSHEETPAGEA; +typedef PROPSHEETPAGEW_V4 PROPSHEETPAGEW; +typedef LPPROPSHEETPAGEA_V4 LPPROPSHEETPAGEA; +typedef LPPROPSHEETPAGEW_V4 LPPROPSHEETPAGEW; +typedef LPCPROPSHEETPAGEA_V4 LPCPROPSHEETPAGEA; +typedef LPCPROPSHEETPAGEW_V4 LPCPROPSHEETPAGEW; +# 445 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" +typedef int (__stdcall *PFNPROPSHEETCALLBACK)(HWND, UINT, LPARAM); +# 471 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" +typedef struct _PROPSHEETHEADERA_V1 +{ + DWORD dwSize; DWORD dwFlags; HWND hwndParent; HINSTANCE hInstance; union { HICON hIcon; LPCSTR pszIcon; } ; LPCSTR pszCaption; UINT nPages; union { UINT nStartPage; LPCSTR pStartPage; } ; union { LPCPROPSHEETPAGEA ppsp; HPROPSHEETPAGE *phpage; } ; PFNPROPSHEETCALLBACK pfnCallback; +} PROPSHEETHEADERA_V1, *LPPROPSHEETHEADERA_V1; +typedef const PROPSHEETHEADERA_V1 *LPCPROPSHEETHEADERA_V1; + +typedef struct _PROPSHEETHEADERA_V2 +{ + DWORD dwSize; DWORD dwFlags; HWND hwndParent; HINSTANCE hInstance; union { HICON hIcon; LPCSTR pszIcon; } ; LPCSTR pszCaption; UINT nPages; union { UINT nStartPage; LPCSTR pStartPage; } ; union { LPCPROPSHEETPAGEA ppsp; HPROPSHEETPAGE *phpage; } ; PFNPROPSHEETCALLBACK pfnCallback; + union + { + HBITMAP hbmWatermark; + LPCSTR pszbmWatermark; + } ; + HPALETTE hplWatermark; + union + { + HBITMAP hbmHeader; + LPCSTR pszbmHeader; + } ; +} PROPSHEETHEADERA_V2, *LPPROPSHEETHEADERA_V2; +typedef const PROPSHEETHEADERA_V2 *LPCPROPSHEETHEADERA_V2; +# 518 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" +typedef struct _PROPSHEETHEADERW_V1 +{ + DWORD dwSize; DWORD dwFlags; HWND hwndParent; HINSTANCE hInstance; union { HICON hIcon; LPCWSTR pszIcon; } ; LPCWSTR pszCaption; UINT nPages; union { UINT nStartPage; LPCWSTR pStartPage; } ; union { LPCPROPSHEETPAGEW ppsp; HPROPSHEETPAGE *phpage; } ; PFNPROPSHEETCALLBACK pfnCallback; +} PROPSHEETHEADERW_V1, *LPPROPSHEETHEADERW_V1; +typedef const PROPSHEETHEADERW_V1 *LPCPROPSHEETHEADERW_V1; + +typedef struct _PROPSHEETHEADERW_V2 +{ + DWORD dwSize; DWORD dwFlags; HWND hwndParent; HINSTANCE hInstance; union { HICON hIcon; LPCWSTR pszIcon; } ; LPCWSTR pszCaption; UINT nPages; union { UINT nStartPage; LPCWSTR pStartPage; } ; union { LPCPROPSHEETPAGEW ppsp; HPROPSHEETPAGE *phpage; } ; PFNPROPSHEETCALLBACK pfnCallback; + union + { + HBITMAP hbmWatermark; + LPCWSTR pszbmWatermark; + } ; + HPALETTE hplWatermark; + union + { + HBITMAP hbmHeader; + LPCWSTR pszbmHeader; + } ; +} PROPSHEETHEADERW_V2, *LPPROPSHEETHEADERW_V2; +typedef const PROPSHEETHEADERW_V2 *LPCPROPSHEETHEADERW_V2; +# 549 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" +typedef PROPSHEETHEADERA_V2 PROPSHEETHEADERA; +typedef PROPSHEETHEADERW_V2 PROPSHEETHEADERW; +typedef LPPROPSHEETHEADERA_V2 LPPROPSHEETHEADERA; +typedef LPPROPSHEETHEADERW_V2 LPPROPSHEETHEADERW; +typedef LPCPROPSHEETHEADERA_V2 LPCPROPSHEETHEADERA; +typedef LPCPROPSHEETHEADERW_V2 LPCPROPSHEETHEADERW; +# 585 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" +__declspec(dllimport) HPROPSHEETPAGE __stdcall CreatePropertySheetPageA(LPCPROPSHEETPAGEA constPropSheetPagePointer); +__declspec(dllimport) HPROPSHEETPAGE __stdcall CreatePropertySheetPageW(LPCPROPSHEETPAGEW constPropSheetPagePointer); +__declspec(dllimport) BOOL __stdcall DestroyPropertySheetPage(HPROPSHEETPAGE); + +__declspec(dllimport) INT_PTR __stdcall PropertySheetA(LPCPROPSHEETHEADERA); + +__declspec(dllimport) INT_PTR __stdcall PropertySheetW(LPCPROPSHEETHEADERW); +# 603 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" +typedef BOOL (__stdcall *LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE, LPARAM); +typedef BOOL (__stdcall *LPFNADDPROPSHEETPAGES)(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM); + + +typedef struct _PSHNOTIFY +{ + NMHDR hdr; + LPARAM lParam; +} PSHNOTIFY, *LPPSHNOTIFY; +# 899 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" +} + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 902 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" 2 + + + + + + + +#pragma warning(pop) +# 23 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" 2 + + + + +extern "C" { + + + +#pragma warning(push) +#pragma warning(disable: 4820) + + + + + + +typedef struct _PRINTER_INFO_1A { + DWORD Flags; + LPSTR pDescription; + LPSTR pName; + LPSTR pComment; +} PRINTER_INFO_1A, *PPRINTER_INFO_1A, *LPPRINTER_INFO_1A; +typedef struct _PRINTER_INFO_1W { + DWORD Flags; + LPWSTR pDescription; + LPWSTR pName; + LPWSTR pComment; +} PRINTER_INFO_1W, *PPRINTER_INFO_1W, *LPPRINTER_INFO_1W; + +typedef PRINTER_INFO_1W PRINTER_INFO_1; +typedef PPRINTER_INFO_1W PPRINTER_INFO_1; +typedef LPPRINTER_INFO_1W LPPRINTER_INFO_1; + + + + + + +typedef struct _PRINTER_INFO_2A { + LPSTR pServerName; + LPSTR pPrinterName; + LPSTR pShareName; + LPSTR pPortName; + LPSTR pDriverName; + LPSTR pComment; + LPSTR pLocation; + LPDEVMODEA pDevMode; + LPSTR pSepFile; + LPSTR pPrintProcessor; + LPSTR pDatatype; + LPSTR pParameters; + PSECURITY_DESCRIPTOR pSecurityDescriptor; + DWORD Attributes; + DWORD Priority; + DWORD DefaultPriority; + DWORD StartTime; + DWORD UntilTime; + DWORD Status; + DWORD cJobs; + DWORD AveragePPM; +} PRINTER_INFO_2A, *PPRINTER_INFO_2A, *LPPRINTER_INFO_2A; +typedef struct _PRINTER_INFO_2W { + LPWSTR pServerName; + LPWSTR pPrinterName; + LPWSTR pShareName; + LPWSTR pPortName; + LPWSTR pDriverName; + LPWSTR pComment; + LPWSTR pLocation; + LPDEVMODEW pDevMode; + LPWSTR pSepFile; + LPWSTR pPrintProcessor; + LPWSTR pDatatype; + LPWSTR pParameters; + PSECURITY_DESCRIPTOR pSecurityDescriptor; + DWORD Attributes; + DWORD Priority; + DWORD DefaultPriority; + DWORD StartTime; + DWORD UntilTime; + DWORD Status; + DWORD cJobs; + DWORD AveragePPM; +} PRINTER_INFO_2W, *PPRINTER_INFO_2W, *LPPRINTER_INFO_2W; + +typedef PRINTER_INFO_2W PRINTER_INFO_2; +typedef PPRINTER_INFO_2W PPRINTER_INFO_2; +typedef LPPRINTER_INFO_2W LPPRINTER_INFO_2; + + + + + + +typedef struct _PRINTER_INFO_3 { + PSECURITY_DESCRIPTOR pSecurityDescriptor; +} PRINTER_INFO_3, *PPRINTER_INFO_3, *LPPRINTER_INFO_3; + +typedef struct _PRINTER_INFO_4A { + LPSTR pPrinterName; + LPSTR pServerName; + DWORD Attributes; +} PRINTER_INFO_4A, *PPRINTER_INFO_4A, *LPPRINTER_INFO_4A; +typedef struct _PRINTER_INFO_4W { + LPWSTR pPrinterName; + LPWSTR pServerName; + DWORD Attributes; +} PRINTER_INFO_4W, *PPRINTER_INFO_4W, *LPPRINTER_INFO_4W; + +typedef PRINTER_INFO_4W PRINTER_INFO_4; +typedef PPRINTER_INFO_4W PPRINTER_INFO_4; +typedef LPPRINTER_INFO_4W LPPRINTER_INFO_4; + + + + + + +typedef struct _PRINTER_INFO_5A { + LPSTR pPrinterName; + LPSTR pPortName; + DWORD Attributes; + DWORD DeviceNotSelectedTimeout; + DWORD TransmissionRetryTimeout; +} PRINTER_INFO_5A, *PPRINTER_INFO_5A, *LPPRINTER_INFO_5A; +typedef struct _PRINTER_INFO_5W { + LPWSTR pPrinterName; + LPWSTR pPortName; + DWORD Attributes; + DWORD DeviceNotSelectedTimeout; + DWORD TransmissionRetryTimeout; +} PRINTER_INFO_5W, *PPRINTER_INFO_5W, *LPPRINTER_INFO_5W; + +typedef PRINTER_INFO_5W PRINTER_INFO_5; +typedef PPRINTER_INFO_5W PPRINTER_INFO_5; +typedef LPPRINTER_INFO_5W LPPRINTER_INFO_5; + + + + + + +typedef struct _PRINTER_INFO_6 { + DWORD dwStatus; +} PRINTER_INFO_6, *PPRINTER_INFO_6, *LPPRINTER_INFO_6; + + +typedef struct _PRINTER_INFO_7A { + LPSTR pszObjectGUID; + DWORD dwAction; +} PRINTER_INFO_7A, *PPRINTER_INFO_7A, *LPPRINTER_INFO_7A; +typedef struct _PRINTER_INFO_7W { + LPWSTR pszObjectGUID; + DWORD dwAction; +} PRINTER_INFO_7W, *PPRINTER_INFO_7W, *LPPRINTER_INFO_7W; + +typedef PRINTER_INFO_7W PRINTER_INFO_7; +typedef PPRINTER_INFO_7W PPRINTER_INFO_7; +typedef LPPRINTER_INFO_7W LPPRINTER_INFO_7; +# 194 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +typedef struct _PRINTER_INFO_8A { + LPDEVMODEA pDevMode; +} PRINTER_INFO_8A, *PPRINTER_INFO_8A, *LPPRINTER_INFO_8A; +typedef struct _PRINTER_INFO_8W { + LPDEVMODEW pDevMode; +} PRINTER_INFO_8W, *PPRINTER_INFO_8W, *LPPRINTER_INFO_8W; + +typedef PRINTER_INFO_8W PRINTER_INFO_8; +typedef PPRINTER_INFO_8W PPRINTER_INFO_8; +typedef LPPRINTER_INFO_8W LPPRINTER_INFO_8; + + + + + + +typedef struct _PRINTER_INFO_9A { + LPDEVMODEA pDevMode; +} PRINTER_INFO_9A, *PPRINTER_INFO_9A, *LPPRINTER_INFO_9A; +typedef struct _PRINTER_INFO_9W { + LPDEVMODEW pDevMode; +} PRINTER_INFO_9W, *PPRINTER_INFO_9W, *LPPRINTER_INFO_9W; + +typedef PRINTER_INFO_9W PRINTER_INFO_9; +typedef PPRINTER_INFO_9W PPRINTER_INFO_9; +typedef LPPRINTER_INFO_9W LPPRINTER_INFO_9; +# 332 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +typedef struct _JOB_INFO_1A { + DWORD JobId; + LPSTR pPrinterName; + LPSTR pMachineName; + LPSTR pUserName; + LPSTR pDocument; + LPSTR pDatatype; + LPSTR pStatus; + DWORD Status; + DWORD Priority; + DWORD Position; + DWORD TotalPages; + DWORD PagesPrinted; + SYSTEMTIME Submitted; +} JOB_INFO_1A, *PJOB_INFO_1A, *LPJOB_INFO_1A; +typedef struct _JOB_INFO_1W { + DWORD JobId; + LPWSTR pPrinterName; + LPWSTR pMachineName; + LPWSTR pUserName; + LPWSTR pDocument; + LPWSTR pDatatype; + LPWSTR pStatus; + DWORD Status; + DWORD Priority; + DWORD Position; + DWORD TotalPages; + DWORD PagesPrinted; + SYSTEMTIME Submitted; +} JOB_INFO_1W, *PJOB_INFO_1W, *LPJOB_INFO_1W; + +typedef JOB_INFO_1W JOB_INFO_1; +typedef PJOB_INFO_1W PJOB_INFO_1; +typedef LPJOB_INFO_1W LPJOB_INFO_1; + + + + + + +typedef struct _JOB_INFO_2A { + DWORD JobId; + LPSTR pPrinterName; + LPSTR pMachineName; + LPSTR pUserName; + LPSTR pDocument; + LPSTR pNotifyName; + LPSTR pDatatype; + LPSTR pPrintProcessor; + LPSTR pParameters; + LPSTR pDriverName; + LPDEVMODEA pDevMode; + LPSTR pStatus; + PSECURITY_DESCRIPTOR pSecurityDescriptor; + DWORD Status; + DWORD Priority; + DWORD Position; + DWORD StartTime; + DWORD UntilTime; + DWORD TotalPages; + DWORD Size; + SYSTEMTIME Submitted; + DWORD Time; + DWORD PagesPrinted; +} JOB_INFO_2A, *PJOB_INFO_2A, *LPJOB_INFO_2A; +typedef struct _JOB_INFO_2W { + DWORD JobId; + LPWSTR pPrinterName; + LPWSTR pMachineName; + LPWSTR pUserName; + LPWSTR pDocument; + LPWSTR pNotifyName; + LPWSTR pDatatype; + LPWSTR pPrintProcessor; + LPWSTR pParameters; + LPWSTR pDriverName; + LPDEVMODEW pDevMode; + LPWSTR pStatus; + PSECURITY_DESCRIPTOR pSecurityDescriptor; + DWORD Status; + DWORD Priority; + DWORD Position; + DWORD StartTime; + DWORD UntilTime; + DWORD TotalPages; + DWORD Size; + SYSTEMTIME Submitted; + DWORD Time; + DWORD PagesPrinted; +} JOB_INFO_2W, *PJOB_INFO_2W, *LPJOB_INFO_2W; + +typedef JOB_INFO_2W JOB_INFO_2; +typedef PJOB_INFO_2W PJOB_INFO_2; +typedef LPJOB_INFO_2W LPJOB_INFO_2; + + + + + + +typedef struct _JOB_INFO_3 { + DWORD JobId; + DWORD NextJobId; + DWORD Reserved; +} JOB_INFO_3, *PJOB_INFO_3, *LPJOB_INFO_3; + +typedef struct _JOB_INFO_4A { + DWORD JobId; + LPSTR pPrinterName; + LPSTR pMachineName; + LPSTR pUserName; + LPSTR pDocument; + LPSTR pNotifyName; + LPSTR pDatatype; + LPSTR pPrintProcessor; + LPSTR pParameters; + LPSTR pDriverName; + LPDEVMODEA pDevMode; + LPSTR pStatus; + PSECURITY_DESCRIPTOR pSecurityDescriptor; + DWORD Status; + DWORD Priority; + DWORD Position; + DWORD StartTime; + DWORD UntilTime; + DWORD TotalPages; + DWORD Size; + SYSTEMTIME Submitted; + DWORD Time; + DWORD PagesPrinted; + LONG SizeHigh; +} JOB_INFO_4A, *PJOB_INFO_4A, *LPJOB_INFO_4A; +typedef struct _JOB_INFO_4W { + DWORD JobId; + LPWSTR pPrinterName; + LPWSTR pMachineName; + LPWSTR pUserName; + LPWSTR pDocument; + LPWSTR pNotifyName; + LPWSTR pDatatype; + LPWSTR pPrintProcessor; + LPWSTR pParameters; + LPWSTR pDriverName; + LPDEVMODEW pDevMode; + LPWSTR pStatus; + PSECURITY_DESCRIPTOR pSecurityDescriptor; + DWORD Status; + DWORD Priority; + DWORD Position; + DWORD StartTime; + DWORD UntilTime; + DWORD TotalPages; + DWORD Size; + SYSTEMTIME Submitted; + DWORD Time; + DWORD PagesPrinted; + LONG SizeHigh; +} JOB_INFO_4W, *PJOB_INFO_4W, *LPJOB_INFO_4W; + +typedef JOB_INFO_4W JOB_INFO_4; +typedef PJOB_INFO_4W PJOB_INFO_4; +typedef LPJOB_INFO_4W LPJOB_INFO_4; +# 537 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +typedef struct _ADDJOB_INFO_1A { + LPSTR Path; + DWORD JobId; +} ADDJOB_INFO_1A, *PADDJOB_INFO_1A, *LPADDJOB_INFO_1A; +typedef struct _ADDJOB_INFO_1W { + LPWSTR Path; + DWORD JobId; +} ADDJOB_INFO_1W, *PADDJOB_INFO_1W, *LPADDJOB_INFO_1W; + +typedef ADDJOB_INFO_1W ADDJOB_INFO_1; +typedef PADDJOB_INFO_1W PADDJOB_INFO_1; +typedef LPADDJOB_INFO_1W LPADDJOB_INFO_1; + + + + + + + +typedef struct _DRIVER_INFO_1A { + LPSTR pName; +} DRIVER_INFO_1A, *PDRIVER_INFO_1A, *LPDRIVER_INFO_1A; +typedef struct _DRIVER_INFO_1W { + LPWSTR pName; +} DRIVER_INFO_1W, *PDRIVER_INFO_1W, *LPDRIVER_INFO_1W; + +typedef DRIVER_INFO_1W DRIVER_INFO_1; +typedef PDRIVER_INFO_1W PDRIVER_INFO_1; +typedef LPDRIVER_INFO_1W LPDRIVER_INFO_1; + + + + + + +typedef struct _DRIVER_INFO_2A { + DWORD cVersion; + LPSTR pName; + LPSTR pEnvironment; + LPSTR pDriverPath; + LPSTR pDataFile; + LPSTR pConfigFile; +} DRIVER_INFO_2A, *PDRIVER_INFO_2A, *LPDRIVER_INFO_2A; +typedef struct _DRIVER_INFO_2W { + DWORD cVersion; + LPWSTR pName; + LPWSTR pEnvironment; + LPWSTR pDriverPath; + LPWSTR pDataFile; + LPWSTR pConfigFile; +} DRIVER_INFO_2W, *PDRIVER_INFO_2W, *LPDRIVER_INFO_2W; + +typedef DRIVER_INFO_2W DRIVER_INFO_2; +typedef PDRIVER_INFO_2W PDRIVER_INFO_2; +typedef LPDRIVER_INFO_2W LPDRIVER_INFO_2; + + + + + + +typedef struct _DRIVER_INFO_3A { + DWORD cVersion; + LPSTR pName; + LPSTR pEnvironment; + LPSTR pDriverPath; + LPSTR pDataFile; + LPSTR pConfigFile; + LPSTR pHelpFile; + LPSTR pDependentFiles; + LPSTR pMonitorName; + LPSTR pDefaultDataType; +} DRIVER_INFO_3A, *PDRIVER_INFO_3A, *LPDRIVER_INFO_3A; +typedef struct _DRIVER_INFO_3W { + DWORD cVersion; + LPWSTR pName; + LPWSTR pEnvironment; + LPWSTR pDriverPath; + LPWSTR pDataFile; + LPWSTR pConfigFile; + LPWSTR pHelpFile; + LPWSTR pDependentFiles; + LPWSTR pMonitorName; + LPWSTR pDefaultDataType; +} DRIVER_INFO_3W, *PDRIVER_INFO_3W, *LPDRIVER_INFO_3W; + +typedef DRIVER_INFO_3W DRIVER_INFO_3; +typedef PDRIVER_INFO_3W PDRIVER_INFO_3; +typedef LPDRIVER_INFO_3W LPDRIVER_INFO_3; + + + + + + +typedef struct _DRIVER_INFO_4A { + DWORD cVersion; + LPSTR pName; + LPSTR pEnvironment; + LPSTR pDriverPath; + LPSTR pDataFile; + LPSTR pConfigFile; + LPSTR pHelpFile; + LPSTR pDependentFiles; + LPSTR pMonitorName; + LPSTR pDefaultDataType; + LPSTR pszzPreviousNames; +} DRIVER_INFO_4A, *PDRIVER_INFO_4A, *LPDRIVER_INFO_4A; +typedef struct _DRIVER_INFO_4W { + DWORD cVersion; + LPWSTR pName; + LPWSTR pEnvironment; + LPWSTR pDriverPath; + LPWSTR pDataFile; + LPWSTR pConfigFile; + LPWSTR pHelpFile; + LPWSTR pDependentFiles; + LPWSTR pMonitorName; + LPWSTR pDefaultDataType; + LPWSTR pszzPreviousNames; +} DRIVER_INFO_4W, *PDRIVER_INFO_4W, *LPDRIVER_INFO_4W; + +typedef DRIVER_INFO_4W DRIVER_INFO_4; +typedef PDRIVER_INFO_4W PDRIVER_INFO_4; +typedef LPDRIVER_INFO_4W LPDRIVER_INFO_4; + + + + + + +typedef struct _DRIVER_INFO_5A { + DWORD cVersion; + LPSTR pName; + LPSTR pEnvironment; + LPSTR pDriverPath; + LPSTR pDataFile; + LPSTR pConfigFile; + DWORD dwDriverAttributes; + DWORD dwConfigVersion; + DWORD dwDriverVersion; +} DRIVER_INFO_5A, *PDRIVER_INFO_5A, *LPDRIVER_INFO_5A; +typedef struct _DRIVER_INFO_5W { + DWORD cVersion; + LPWSTR pName; + LPWSTR pEnvironment; + LPWSTR pDriverPath; + LPWSTR pDataFile; + LPWSTR pConfigFile; + DWORD dwDriverAttributes; + DWORD dwConfigVersion; + DWORD dwDriverVersion; +} DRIVER_INFO_5W, *PDRIVER_INFO_5W, *LPDRIVER_INFO_5W; + +typedef DRIVER_INFO_5W DRIVER_INFO_5; +typedef PDRIVER_INFO_5W PDRIVER_INFO_5; +typedef LPDRIVER_INFO_5W LPDRIVER_INFO_5; + + + + + + +typedef struct _DRIVER_INFO_6A { + DWORD cVersion; + LPSTR pName; + LPSTR pEnvironment; + LPSTR pDriverPath; + LPSTR pDataFile; + LPSTR pConfigFile; + LPSTR pHelpFile; + LPSTR pDependentFiles; + LPSTR pMonitorName; + LPSTR pDefaultDataType; + LPSTR pszzPreviousNames; + FILETIME ftDriverDate; + DWORDLONG dwlDriverVersion; + LPSTR pszMfgName; + LPSTR pszOEMUrl; + LPSTR pszHardwareID; + LPSTR pszProvider; +} DRIVER_INFO_6A, *PDRIVER_INFO_6A, *LPDRIVER_INFO_6A; +typedef struct _DRIVER_INFO_6W { + DWORD cVersion; + LPWSTR pName; + LPWSTR pEnvironment; + LPWSTR pDriverPath; + LPWSTR pDataFile; + LPWSTR pConfigFile; + LPWSTR pHelpFile; + LPWSTR pDependentFiles; + LPWSTR pMonitorName; + LPWSTR pDefaultDataType; + LPWSTR pszzPreviousNames; + FILETIME ftDriverDate; + DWORDLONG dwlDriverVersion; + LPWSTR pszMfgName; + LPWSTR pszOEMUrl; + LPWSTR pszHardwareID; + LPWSTR pszProvider; +} DRIVER_INFO_6W, *PDRIVER_INFO_6W, *LPDRIVER_INFO_6W; + +typedef DRIVER_INFO_6W DRIVER_INFO_6; +typedef PDRIVER_INFO_6W PDRIVER_INFO_6; +typedef LPDRIVER_INFO_6W LPDRIVER_INFO_6; +# 762 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +typedef struct _DRIVER_INFO_8A { + DWORD cVersion; + LPSTR pName; + LPSTR pEnvironment; + LPSTR pDriverPath; + LPSTR pDataFile; + LPSTR pConfigFile; + LPSTR pHelpFile; + LPSTR pDependentFiles; + LPSTR pMonitorName; + LPSTR pDefaultDataType; + LPSTR pszzPreviousNames; + FILETIME ftDriverDate; + DWORDLONG dwlDriverVersion; + LPSTR pszMfgName; + LPSTR pszOEMUrl; + LPSTR pszHardwareID; + LPSTR pszProvider; + LPSTR pszPrintProcessor; + LPSTR pszVendorSetup; + LPSTR pszzColorProfiles; + LPSTR pszInfPath; + DWORD dwPrinterDriverAttributes; + LPSTR pszzCoreDriverDependencies; + FILETIME ftMinInboxDriverVerDate; + DWORDLONG dwlMinInboxDriverVerVersion; +} DRIVER_INFO_8A, *PDRIVER_INFO_8A, *LPDRIVER_INFO_8A; +typedef struct _DRIVER_INFO_8W { + DWORD cVersion; + LPWSTR pName; + LPWSTR pEnvironment; + LPWSTR pDriverPath; + LPWSTR pDataFile; + LPWSTR pConfigFile; + LPWSTR pHelpFile; + LPWSTR pDependentFiles; + LPWSTR pMonitorName; + LPWSTR pDefaultDataType; + LPWSTR pszzPreviousNames; + FILETIME ftDriverDate; + DWORDLONG dwlDriverVersion; + LPWSTR pszMfgName; + LPWSTR pszOEMUrl; + LPWSTR pszHardwareID; + LPWSTR pszProvider; + LPWSTR pszPrintProcessor; + LPWSTR pszVendorSetup; + LPWSTR pszzColorProfiles; + LPWSTR pszInfPath; + DWORD dwPrinterDriverAttributes; + LPWSTR pszzCoreDriverDependencies; + FILETIME ftMinInboxDriverVerDate; + DWORDLONG dwlMinInboxDriverVerVersion; +} DRIVER_INFO_8W, *PDRIVER_INFO_8W, *LPDRIVER_INFO_8W; + +typedef DRIVER_INFO_8W DRIVER_INFO_8; +typedef PDRIVER_INFO_8W PDRIVER_INFO_8; +typedef LPDRIVER_INFO_8W LPDRIVER_INFO_8; +# 849 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +typedef struct _DOC_INFO_1A { + LPSTR pDocName; + LPSTR pOutputFile; + LPSTR pDatatype; +} DOC_INFO_1A, *PDOC_INFO_1A, *LPDOC_INFO_1A; +typedef struct _DOC_INFO_1W { + LPWSTR pDocName; + LPWSTR pOutputFile; + LPWSTR pDatatype; +} DOC_INFO_1W, *PDOC_INFO_1W, *LPDOC_INFO_1W; + +typedef DOC_INFO_1W DOC_INFO_1; +typedef PDOC_INFO_1W PDOC_INFO_1; +typedef LPDOC_INFO_1W LPDOC_INFO_1; + + + + + + +typedef struct _FORM_INFO_1A { + DWORD Flags; + LPSTR pName; + SIZEL Size; + RECTL ImageableArea; +} FORM_INFO_1A, *PFORM_INFO_1A, *LPFORM_INFO_1A; +typedef struct _FORM_INFO_1W { + DWORD Flags; + LPWSTR pName; + SIZEL Size; + RECTL ImageableArea; +} FORM_INFO_1W, *PFORM_INFO_1W, *LPFORM_INFO_1W; + +typedef FORM_INFO_1W FORM_INFO_1; +typedef PFORM_INFO_1W PFORM_INFO_1; +typedef LPFORM_INFO_1W LPFORM_INFO_1; +# 898 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" + typedef struct _FORM_INFO_2A { + DWORD Flags; + LPCSTR pName; + SIZEL Size; + RECTL ImageableArea; + LPCSTR pKeyword; + DWORD StringType; + LPCSTR pMuiDll; + DWORD dwResourceId; + LPCSTR pDisplayName; + LANGID wLangId; + } FORM_INFO_2A, *PFORM_INFO_2A, *LPFORM_INFO_2A; + typedef struct _FORM_INFO_2W { + DWORD Flags; + LPCWSTR pName; + SIZEL Size; + RECTL ImageableArea; + LPCSTR pKeyword; + DWORD StringType; + LPCWSTR pMuiDll; + DWORD dwResourceId; + LPCWSTR pDisplayName; + LANGID wLangId; + } FORM_INFO_2W, *PFORM_INFO_2W, *LPFORM_INFO_2W; + +typedef FORM_INFO_2W FORM_INFO_2; +typedef PFORM_INFO_2W PFORM_INFO_2; +typedef LPFORM_INFO_2W LPFORM_INFO_2; + + + + + + + +typedef struct _DOC_INFO_2A { + LPSTR pDocName; + LPSTR pOutputFile; + LPSTR pDatatype; + DWORD dwMode; + DWORD JobId; +} DOC_INFO_2A, *PDOC_INFO_2A, *LPDOC_INFO_2A; +typedef struct _DOC_INFO_2W { + LPWSTR pDocName; + LPWSTR pOutputFile; + LPWSTR pDatatype; + DWORD dwMode; + DWORD JobId; +} DOC_INFO_2W, *PDOC_INFO_2W, *LPDOC_INFO_2W; + +typedef DOC_INFO_2W DOC_INFO_2; +typedef PDOC_INFO_2W PDOC_INFO_2; +typedef LPDOC_INFO_2W LPDOC_INFO_2; +# 962 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +typedef struct _DOC_INFO_3A { + LPSTR pDocName; + LPSTR pOutputFile; + LPSTR pDatatype; + DWORD dwFlags; +} DOC_INFO_3A, *PDOC_INFO_3A, *LPDOC_INFO_3A; +typedef struct _DOC_INFO_3W { + LPWSTR pDocName; + LPWSTR pOutputFile; + LPWSTR pDatatype; + DWORD dwFlags; +} DOC_INFO_3W, *PDOC_INFO_3W, *LPDOC_INFO_3W; + +typedef DOC_INFO_3W DOC_INFO_3; +typedef PDOC_INFO_3W PDOC_INFO_3; +typedef LPDOC_INFO_3W LPDOC_INFO_3; +# 990 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +typedef struct _PRINTPROCESSOR_INFO_1A { + LPSTR pName; +} PRINTPROCESSOR_INFO_1A, *PPRINTPROCESSOR_INFO_1A, *LPPRINTPROCESSOR_INFO_1A; +typedef struct _PRINTPROCESSOR_INFO_1W { + LPWSTR pName; +} PRINTPROCESSOR_INFO_1W, *PPRINTPROCESSOR_INFO_1W, *LPPRINTPROCESSOR_INFO_1W; + +typedef PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_INFO_1; +typedef PPRINTPROCESSOR_INFO_1W PPRINTPROCESSOR_INFO_1; +typedef LPPRINTPROCESSOR_INFO_1W LPPRINTPROCESSOR_INFO_1; + + + + + + + + typedef struct _PRINTPROCESSOR_CAPS_1 { + DWORD dwLevel; + DWORD dwNupOptions; + DWORD dwPageOrderFlags; + DWORD dwNumberOfCopies; + } PRINTPROCESSOR_CAPS_1, *PPRINTPROCESSOR_CAPS_1; + + + + + + + typedef struct _PRINTPROCESSOR_CAPS_2 { + DWORD dwLevel; + DWORD dwNupOptions; + DWORD dwPageOrderFlags; + DWORD dwNumberOfCopies; + + + DWORD dwDuplexHandlingCaps; + DWORD dwNupDirectionCaps; + DWORD dwNupBorderCaps; + DWORD dwBookletHandlingCaps; + DWORD dwScalingCaps; + + } PRINTPROCESSOR_CAPS_2, *PPRINTPROCESSOR_CAPS_2; +# 1059 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +typedef struct _PORT_INFO_1A { + LPSTR pName; +} PORT_INFO_1A, *PPORT_INFO_1A, *LPPORT_INFO_1A; +typedef struct _PORT_INFO_1W { + LPWSTR pName; +} PORT_INFO_1W, *PPORT_INFO_1W, *LPPORT_INFO_1W; + +typedef PORT_INFO_1W PORT_INFO_1; +typedef PPORT_INFO_1W PPORT_INFO_1; +typedef LPPORT_INFO_1W LPPORT_INFO_1; + + + + + + +typedef struct _PORT_INFO_2A { + LPSTR pPortName; + LPSTR pMonitorName; + LPSTR pDescription; + DWORD fPortType; + DWORD Reserved; +} PORT_INFO_2A, *PPORT_INFO_2A, *LPPORT_INFO_2A; +typedef struct _PORT_INFO_2W { + LPWSTR pPortName; + LPWSTR pMonitorName; + LPWSTR pDescription; + DWORD fPortType; + DWORD Reserved; +} PORT_INFO_2W, *PPORT_INFO_2W, *LPPORT_INFO_2W; + +typedef PORT_INFO_2W PORT_INFO_2; +typedef PPORT_INFO_2W PPORT_INFO_2; +typedef LPPORT_INFO_2W LPPORT_INFO_2; +# 1104 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +typedef struct _PORT_INFO_3A { + DWORD dwStatus; + LPSTR pszStatus; + DWORD dwSeverity; +} PORT_INFO_3A, *PPORT_INFO_3A, *LPPORT_INFO_3A; +typedef struct _PORT_INFO_3W { + DWORD dwStatus; + LPWSTR pszStatus; + DWORD dwSeverity; +} PORT_INFO_3W, *PPORT_INFO_3W, *LPPORT_INFO_3W; + +typedef PORT_INFO_3W PORT_INFO_3; +typedef PPORT_INFO_3W PPORT_INFO_3; +typedef LPPORT_INFO_3W LPPORT_INFO_3; +# 1144 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +typedef struct _MONITOR_INFO_1A{ + LPSTR pName; +} MONITOR_INFO_1A, *PMONITOR_INFO_1A, *LPMONITOR_INFO_1A; +typedef struct _MONITOR_INFO_1W{ + LPWSTR pName; +} MONITOR_INFO_1W, *PMONITOR_INFO_1W, *LPMONITOR_INFO_1W; + +typedef MONITOR_INFO_1W MONITOR_INFO_1; +typedef PMONITOR_INFO_1W PMONITOR_INFO_1; +typedef LPMONITOR_INFO_1W LPMONITOR_INFO_1; + + + + + + +typedef struct _MONITOR_INFO_2A{ + LPSTR pName; + LPSTR pEnvironment; + LPSTR pDLLName; +} MONITOR_INFO_2A, *PMONITOR_INFO_2A, *LPMONITOR_INFO_2A; +typedef struct _MONITOR_INFO_2W{ + LPWSTR pName; + LPWSTR pEnvironment; + LPWSTR pDLLName; +} MONITOR_INFO_2W, *PMONITOR_INFO_2W, *LPMONITOR_INFO_2W; + +typedef MONITOR_INFO_2W MONITOR_INFO_2; +typedef PMONITOR_INFO_2W PMONITOR_INFO_2; +typedef LPMONITOR_INFO_2W LPMONITOR_INFO_2; + + + + + + +typedef struct _DATATYPES_INFO_1A{ + LPSTR pName; +} DATATYPES_INFO_1A, *PDATATYPES_INFO_1A, *LPDATATYPES_INFO_1A; +typedef struct _DATATYPES_INFO_1W{ + LPWSTR pName; +} DATATYPES_INFO_1W, *PDATATYPES_INFO_1W, *LPDATATYPES_INFO_1W; + +typedef DATATYPES_INFO_1W DATATYPES_INFO_1; +typedef PDATATYPES_INFO_1W PDATATYPES_INFO_1; +typedef LPDATATYPES_INFO_1W LPDATATYPES_INFO_1; + + + + + + +typedef struct _PRINTER_DEFAULTSA{ + LPSTR pDatatype; + LPDEVMODEA pDevMode; + ACCESS_MASK DesiredAccess; +} PRINTER_DEFAULTSA, *PPRINTER_DEFAULTSA, *LPPRINTER_DEFAULTSA; +typedef struct _PRINTER_DEFAULTSW{ + LPWSTR pDatatype; + LPDEVMODEW pDevMode; + ACCESS_MASK DesiredAccess; +} PRINTER_DEFAULTSW, *PPRINTER_DEFAULTSW, *LPPRINTER_DEFAULTSW; + +typedef PRINTER_DEFAULTSW PRINTER_DEFAULTS; +typedef PPRINTER_DEFAULTSW PPRINTER_DEFAULTS; +typedef LPPRINTER_DEFAULTSW LPPRINTER_DEFAULTS; + + + + + + +typedef struct _PRINTER_ENUM_VALUESA { + LPSTR pValueName; + DWORD cbValueName; + DWORD dwType; + LPBYTE pData; + DWORD cbData; +} PRINTER_ENUM_VALUESA, *PPRINTER_ENUM_VALUESA, *LPPRINTER_ENUM_VALUESA; +typedef struct _PRINTER_ENUM_VALUESW { + LPWSTR pValueName; + DWORD cbValueName; + DWORD dwType; + LPBYTE pData; + DWORD cbData; +} PRINTER_ENUM_VALUESW, *PPRINTER_ENUM_VALUESW, *LPPRINTER_ENUM_VALUESW; + +typedef PRINTER_ENUM_VALUESW PRINTER_ENUM_VALUES; +typedef PPRINTER_ENUM_VALUESW PPRINTER_ENUM_VALUES; +typedef LPPRINTER_ENUM_VALUESW LPPRINTER_ENUM_VALUES; + + + + + + + +BOOL +__stdcall +EnumPrintersA( + DWORD Flags, + LPSTR Name, + DWORD Level, + + LPBYTE pPrinterEnum, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + +BOOL +__stdcall +EnumPrintersW( + DWORD Flags, + LPWSTR Name, + DWORD Level, + + LPBYTE pPrinterEnum, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); +# 1302 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +HANDLE +__stdcall +GetSpoolFileHandle( + HANDLE hPrinter +); + +HANDLE +__stdcall +CommitSpoolData( + HANDLE hPrinter, + HANDLE hSpoolFile, + DWORD cbCommit +); + +BOOL +__stdcall +CloseSpoolFileHandle( + HANDLE hPrinter, + HANDLE hSpoolFile +); + +BOOL +__stdcall +OpenPrinterA( + LPSTR pPrinterName, + LPHANDLE phPrinter, + LPPRINTER_DEFAULTSA pDefault +); +BOOL +__stdcall +OpenPrinterW( + LPWSTR pPrinterName, + LPHANDLE phPrinter, + LPPRINTER_DEFAULTSW pDefault +); + + + + + + +BOOL +__stdcall +ResetPrinterA( + HANDLE hPrinter, + LPPRINTER_DEFAULTSA pDefault +); +BOOL +__stdcall +ResetPrinterW( + HANDLE hPrinter, + LPPRINTER_DEFAULTSW pDefault +); + + + + + + +BOOL +__stdcall +SetJobA( + HANDLE hPrinter, + DWORD JobId, + DWORD Level, + + + + + + LPBYTE pJob, + DWORD Command +); +BOOL +__stdcall +SetJobW( + HANDLE hPrinter, + DWORD JobId, + DWORD Level, + + + + + + LPBYTE pJob, + DWORD Command +); + + + + + + +BOOL +__stdcall +GetJobA( + HANDLE hPrinter, + DWORD JobId, + DWORD Level, + + LPBYTE pJob, + DWORD cbBuf, + LPDWORD pcbNeeded +); +BOOL +__stdcall +GetJobW( + HANDLE hPrinter, + DWORD JobId, + DWORD Level, + + LPBYTE pJob, + DWORD cbBuf, + LPDWORD pcbNeeded +); + + + + + + +BOOL +__stdcall +EnumJobsA( + HANDLE hPrinter, + DWORD FirstJob, + DWORD NoJobs, + DWORD Level, + + LPBYTE pJob, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); +BOOL +__stdcall +EnumJobsW( + HANDLE hPrinter, + DWORD FirstJob, + DWORD NoJobs, + DWORD Level, + + LPBYTE pJob, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + + + + + + +HANDLE +__stdcall +AddPrinterA( + LPSTR pName, + + DWORD Level, + + + LPBYTE pPrinter +); +HANDLE +__stdcall +AddPrinterW( + LPWSTR pName, + + DWORD Level, + + + LPBYTE pPrinter +); + + + + + + +BOOL +__stdcall +DeletePrinter( + HANDLE hPrinter +); + +BOOL +__stdcall +SetPrinterA( + HANDLE hPrinter, + DWORD Level, +# 1503 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" + LPBYTE pPrinter, + DWORD Command + ); +BOOL +__stdcall +SetPrinterW( + HANDLE hPrinter, + DWORD Level, +# 1522 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" + LPBYTE pPrinter, + DWORD Command + ); + + + + + + +BOOL +__stdcall +GetPrinterA( + HANDLE hPrinter, + DWORD Level, + + LPBYTE pPrinter, + DWORD cbBuf, + LPDWORD pcbNeeded +); +BOOL +__stdcall +GetPrinterW( + HANDLE hPrinter, + DWORD Level, + + LPBYTE pPrinter, + DWORD cbBuf, + LPDWORD pcbNeeded +); + + + + + + +BOOL +__stdcall +AddPrinterDriverA( + LPSTR pName, + DWORD Level, + LPBYTE pDriverInfo +); +BOOL +__stdcall +AddPrinterDriverW( + LPWSTR pName, + DWORD Level, + LPBYTE pDriverInfo +); + + + + + + +BOOL +__stdcall +AddPrinterDriverExA( + LPSTR pName, + DWORD Level, + + + + + + PBYTE lpbDriverInfo, + DWORD dwFileCopyFlags +); +BOOL +__stdcall +AddPrinterDriverExW( + LPWSTR pName, + DWORD Level, + + + + + + PBYTE lpbDriverInfo, + DWORD dwFileCopyFlags +); + + + + + + +BOOL +__stdcall +EnumPrinterDriversA( + LPSTR pName, + LPSTR pEnvironment, + DWORD Level, + + LPBYTE pDriverInfo, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); +BOOL +__stdcall +EnumPrinterDriversW( + LPWSTR pName, + LPWSTR pEnvironment, + DWORD Level, + + LPBYTE pDriverInfo, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + + + + + + +BOOL +__stdcall +GetPrinterDriverA( + HANDLE hPrinter, + LPSTR pEnvironment, + DWORD Level, + + LPBYTE pDriverInfo, + DWORD cbBuf, + LPDWORD pcbNeeded +); +BOOL +__stdcall +GetPrinterDriverW( + HANDLE hPrinter, + LPWSTR pEnvironment, + DWORD Level, + + LPBYTE pDriverInfo, + DWORD cbBuf, + LPDWORD pcbNeeded +); + + + + + + +BOOL +__stdcall +GetPrinterDriverDirectoryA( + LPSTR pName, + LPSTR pEnvironment, + DWORD Level, + + LPBYTE pDriverDirectory, + DWORD cbBuf, + LPDWORD pcbNeeded +); +BOOL +__stdcall +GetPrinterDriverDirectoryW( + LPWSTR pName, + LPWSTR pEnvironment, + DWORD Level, + + LPBYTE pDriverDirectory, + DWORD cbBuf, + LPDWORD pcbNeeded +); + + + + + + +BOOL +__stdcall +DeletePrinterDriverA( + LPSTR pName, + LPSTR pEnvironment, + LPSTR pDriverName +); +BOOL +__stdcall +DeletePrinterDriverW( + LPWSTR pName, + LPWSTR pEnvironment, + LPWSTR pDriverName +); + + + + + + +BOOL +__stdcall +DeletePrinterDriverExA( + LPSTR pName, + LPSTR pEnvironment, + LPSTR pDriverName, + DWORD dwDeleteFlag, + DWORD dwVersionFlag +); +BOOL +__stdcall +DeletePrinterDriverExW( + LPWSTR pName, + LPWSTR pEnvironment, + LPWSTR pDriverName, + DWORD dwDeleteFlag, + DWORD dwVersionFlag +); +# 1741 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +BOOL +__stdcall +AddPrintProcessorA( + LPSTR pName, + LPSTR pEnvironment, + LPSTR pPathName, + LPSTR pPrintProcessorName +); +BOOL +__stdcall +AddPrintProcessorW( + LPWSTR pName, + LPWSTR pEnvironment, + LPWSTR pPathName, + LPWSTR pPrintProcessorName +); + + + + + + +BOOL +__stdcall +EnumPrintProcessorsA( + LPSTR pName, + LPSTR pEnvironment, + DWORD Level, + + LPBYTE pPrintProcessorInfo, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); +BOOL +__stdcall +EnumPrintProcessorsW( + LPWSTR pName, + LPWSTR pEnvironment, + DWORD Level, + + LPBYTE pPrintProcessorInfo, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); +# 1795 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +BOOL +__stdcall +GetPrintProcessorDirectoryA( + LPSTR pName, + LPSTR pEnvironment, + DWORD Level, + + LPBYTE pPrintProcessorInfo, + DWORD cbBuf, + LPDWORD pcbNeeded +); +BOOL +__stdcall +GetPrintProcessorDirectoryW( + LPWSTR pName, + LPWSTR pEnvironment, + DWORD Level, + + LPBYTE pPrintProcessorInfo, + DWORD cbBuf, + LPDWORD pcbNeeded +); + + + + + + + +BOOL +__stdcall +EnumPrintProcessorDatatypesA( + LPSTR pName, + LPSTR pPrintProcessorName, + DWORD Level, + + LPBYTE pDatatypes, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + +BOOL +__stdcall +EnumPrintProcessorDatatypesW( + LPWSTR pName, + LPWSTR pPrintProcessorName, + DWORD Level, + + LPBYTE pDatatypes, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + + + + + + +BOOL +__stdcall +DeletePrintProcessorA( + LPSTR pName, + LPSTR pEnvironment, + LPSTR pPrintProcessorName +); +BOOL +__stdcall +DeletePrintProcessorW( + LPWSTR pName, + LPWSTR pEnvironment, + LPWSTR pPrintProcessorName +); + + + + + + +DWORD +__stdcall +StartDocPrinterA( + HANDLE hPrinter, + DWORD Level, + + + LPBYTE pDocInfo +); +DWORD +__stdcall +StartDocPrinterW( + HANDLE hPrinter, + DWORD Level, + + + LPBYTE pDocInfo +); + + + + + + +BOOL +__stdcall +StartPagePrinter( + HANDLE hPrinter +); + +BOOL +__stdcall +WritePrinter( + HANDLE hPrinter, + + LPVOID pBuf, + DWORD cbBuf, + LPDWORD pcWritten +); + + +BOOL +__stdcall +FlushPrinter( + HANDLE hPrinter, + + LPVOID pBuf, + DWORD cbBuf, + LPDWORD pcWritten, + DWORD cSleep +); + +BOOL +__stdcall +EndPagePrinter( + HANDLE hPrinter +); + +BOOL +__stdcall +AbortPrinter( + HANDLE hPrinter +); + +BOOL +__stdcall +ReadPrinter( + HANDLE hPrinter, + + LPVOID pBuf, + DWORD cbBuf, + LPDWORD pNoBytesRead +); + +BOOL +__stdcall +EndDocPrinter( + HANDLE hPrinter + ); + +BOOL +__stdcall +AddJobA( + HANDLE hPrinter, + DWORD Level, + + LPBYTE pData, + DWORD cbBuf, + LPDWORD pcbNeeded +); +BOOL +__stdcall +AddJobW( + HANDLE hPrinter, + DWORD Level, + + LPBYTE pData, + DWORD cbBuf, + LPDWORD pcbNeeded +); + + + + + + +BOOL +__stdcall +ScheduleJob( + HANDLE hPrinter, + DWORD JobId +); + +BOOL +__stdcall +PrinterProperties( + HWND hWnd, + HANDLE hPrinter +); + + +LONG +__stdcall +DocumentPropertiesA( + HWND hWnd, + HANDLE hPrinter, + LPSTR pDeviceName, + PDEVMODEA pDevModeOutput, + PDEVMODEA pDevModeInput, + DWORD fMode +); + +LONG +__stdcall +DocumentPropertiesW( + HWND hWnd, + HANDLE hPrinter, + LPWSTR pDeviceName, + PDEVMODEW pDevModeOutput, + PDEVMODEW pDevModeInput, + DWORD fMode +); + + + + + + +LONG +__stdcall +AdvancedDocumentPropertiesA( + HWND hWnd, + HANDLE hPrinter, + LPSTR pDeviceName, + PDEVMODEA pDevModeOutput, + PDEVMODEA pDevModeInput +); +LONG +__stdcall +AdvancedDocumentPropertiesW( + HWND hWnd, + HANDLE hPrinter, + LPWSTR pDeviceName, + PDEVMODEW pDevModeOutput, + PDEVMODEW pDevModeInput +); + + + + + + + + LONG + ExtDeviceMode( + HWND hWnd, + HANDLE hInst, + LPDEVMODEA pDevModeOutput, + LPSTR pDeviceName, + LPSTR pPort, + LPDEVMODEA pDevModeInput, + LPSTR pProfile, + DWORD fMode + ); + + + +DWORD +__stdcall +GetPrinterDataA( + HANDLE hPrinter, + LPSTR pValueName, + LPDWORD pType, + + LPBYTE pData, + DWORD nSize, + LPDWORD pcbNeeded +); +DWORD +__stdcall +GetPrinterDataW( + HANDLE hPrinter, + LPWSTR pValueName, + LPDWORD pType, + + LPBYTE pData, + DWORD nSize, + LPDWORD pcbNeeded +); + + + + + + +DWORD +__stdcall +GetPrinterDataExA( + HANDLE hPrinter, + LPCSTR pKeyName, + LPCSTR pValueName, + LPDWORD pType, + + LPBYTE pData, + DWORD nSize, + LPDWORD pcbNeeded +); +DWORD +__stdcall +GetPrinterDataExW( + HANDLE hPrinter, + LPCWSTR pKeyName, + LPCWSTR pValueName, + LPDWORD pType, + + LPBYTE pData, + DWORD nSize, + LPDWORD pcbNeeded +); + + + + + + +DWORD +__stdcall +EnumPrinterDataA( + HANDLE hPrinter, + DWORD dwIndex, + + LPSTR pValueName, + DWORD cbValueName, + LPDWORD pcbValueName, + LPDWORD pType, + + LPBYTE pData, + DWORD cbData, + + LPDWORD pcbData +); +DWORD +__stdcall +EnumPrinterDataW( + HANDLE hPrinter, + DWORD dwIndex, + + LPWSTR pValueName, + DWORD cbValueName, + LPDWORD pcbValueName, + LPDWORD pType, + + LPBYTE pData, + DWORD cbData, + + LPDWORD pcbData +); + + + + + + +DWORD +__stdcall +EnumPrinterDataExA( + HANDLE hPrinter, + LPCSTR pKeyName, + + LPBYTE pEnumValues, + DWORD cbEnumValues, + LPDWORD pcbEnumValues, + LPDWORD pnEnumValues +); +DWORD +__stdcall +EnumPrinterDataExW( + HANDLE hPrinter, + LPCWSTR pKeyName, + + LPBYTE pEnumValues, + DWORD cbEnumValues, + LPDWORD pcbEnumValues, + LPDWORD pnEnumValues +); + + + + + + +DWORD +__stdcall +EnumPrinterKeyA( + HANDLE hPrinter, + LPCSTR pKeyName, + + LPSTR pSubkey, + DWORD cbSubkey, + LPDWORD pcbSubkey +); +DWORD +__stdcall +EnumPrinterKeyW( + HANDLE hPrinter, + LPCWSTR pKeyName, + + LPWSTR pSubkey, + DWORD cbSubkey, + LPDWORD pcbSubkey +); + + + + + + + +DWORD +__stdcall +SetPrinterDataA( + HANDLE hPrinter, + LPSTR pValueName, + DWORD Type, + + LPBYTE pData, + DWORD cbData +); +DWORD +__stdcall +SetPrinterDataW( + HANDLE hPrinter, + LPWSTR pValueName, + DWORD Type, + + LPBYTE pData, + DWORD cbData +); + + + + + + + +DWORD +__stdcall +SetPrinterDataExA( + HANDLE hPrinter, + LPCSTR pKeyName, + LPCSTR pValueName, + DWORD Type, + + LPBYTE pData, + DWORD cbData +); +DWORD +__stdcall +SetPrinterDataExW( + HANDLE hPrinter, + LPCWSTR pKeyName, + LPCWSTR pValueName, + DWORD Type, + + LPBYTE pData, + DWORD cbData +); +# 2270 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +DWORD +__stdcall +DeletePrinterDataA( + HANDLE hPrinter, + LPSTR pValueName +); +DWORD +__stdcall +DeletePrinterDataW( + HANDLE hPrinter, + LPWSTR pValueName +); + + + + + + + +DWORD +__stdcall +DeletePrinterDataExA( + HANDLE hPrinter, + LPCSTR pKeyName, + LPCSTR pValueName +); +DWORD +__stdcall +DeletePrinterDataExW( + HANDLE hPrinter, + LPCWSTR pKeyName, + LPCWSTR pValueName +); + + + + + + + +DWORD +__stdcall +DeletePrinterKeyA( + HANDLE hPrinter, + LPCSTR pKeyName +); +DWORD +__stdcall +DeletePrinterKeyW( + HANDLE hPrinter, + LPCWSTR pKeyName +); +# 2404 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +typedef struct _PRINTER_NOTIFY_OPTIONS_TYPE { + WORD Type; + WORD Reserved0; + DWORD Reserved1; + DWORD Reserved2; + DWORD Count; + PWORD pFields; +} PRINTER_NOTIFY_OPTIONS_TYPE, *PPRINTER_NOTIFY_OPTIONS_TYPE, *LPPRINTER_NOTIFY_OPTIONS_TYPE; + + + + +typedef struct _PRINTER_NOTIFY_OPTIONS { + DWORD Version; + DWORD Flags; + DWORD Count; + PPRINTER_NOTIFY_OPTIONS_TYPE pTypes; +} PRINTER_NOTIFY_OPTIONS, *PPRINTER_NOTIFY_OPTIONS, *LPPRINTER_NOTIFY_OPTIONS; + + + + + +typedef struct _PRINTER_NOTIFY_INFO_DATA { + WORD Type; + WORD Field; + DWORD Reserved; + DWORD Id; + union { + DWORD adwData[2]; + struct { + DWORD cbBuf; + LPVOID pBuf; + } Data; + } NotifyData; +} PRINTER_NOTIFY_INFO_DATA, *PPRINTER_NOTIFY_INFO_DATA, *LPPRINTER_NOTIFY_INFO_DATA; + +typedef struct _PRINTER_NOTIFY_INFO { + DWORD Version; + DWORD Flags; + DWORD Count; + PRINTER_NOTIFY_INFO_DATA aData[1]; +} PRINTER_NOTIFY_INFO, *PPRINTER_NOTIFY_INFO, *LPPRINTER_NOTIFY_INFO; + + + typedef struct _BINARY_CONTAINER{ + DWORD cbBuf; + LPBYTE pData; + } BINARY_CONTAINER, *PBINARY_CONTAINER; + + + typedef struct _BIDI_DATA{ + DWORD dwBidiType; + union { + BOOL bData; + LONG iData; + LPWSTR sData; + FLOAT fData; + BINARY_CONTAINER biData; + }u; + } BIDI_DATA, *PBIDI_DATA, *LPBIDI_DATA; + + + typedef struct _BIDI_REQUEST_DATA{ + DWORD dwReqNumber; + LPWSTR pSchema; + BIDI_DATA data; + } BIDI_REQUEST_DATA , *PBIDI_REQUEST_DATA , *LPBIDI_REQUEST_DATA; + + + typedef struct _BIDI_REQUEST_CONTAINER{ + DWORD Version; + DWORD Flags; + DWORD Count; + BIDI_REQUEST_DATA aData[ 1 ]; + }BIDI_REQUEST_CONTAINER, *PBIDI_REQUEST_CONTAINER, *LPBIDI_REQUEST_CONTAINER; + + typedef struct _BIDI_RESPONSE_DATA{ + DWORD dwResult; + DWORD dwReqNumber; + LPWSTR pSchema; + BIDI_DATA data; + } BIDI_RESPONSE_DATA, *PBIDI_RESPONSE_DATA, *LPBIDI_RESPONSE_DATA; + + typedef struct _BIDI_RESPONSE_CONTAINER{ + DWORD Version; + DWORD Flags; + DWORD Count; + BIDI_RESPONSE_DATA aData[ 1 ]; + } BIDI_RESPONSE_CONTAINER, *PBIDI_RESPONSE_CONTAINER, *LPBIDI_RESPONSE_CONTAINER; + + + + + + + + typedef enum { + BIDI_NULL = 0, + BIDI_INT = 1, + BIDI_FLOAT = 2, + BIDI_BOOL = 3, + BIDI_STRING = 4, + BIDI_TEXT = 5, + BIDI_ENUM = 6, + BIDI_BLOB = 7 + } BIDI_TYPE; +# 2544 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +DWORD +__stdcall +WaitForPrinterChange( + HANDLE hPrinter, + DWORD Flags +); + +HANDLE +__stdcall +FindFirstPrinterChangeNotification( + HANDLE hPrinter, + DWORD fdwFilter, + DWORD fdwOptions, + PVOID pPrinterNotifyOptions + ); + + +BOOL +__stdcall +FindNextPrinterChangeNotification( + HANDLE hChange, + PDWORD pdwChange, + LPVOID pvReserved, + LPVOID *ppPrinterNotifyInfo + ); + +BOOL +__stdcall +FreePrinterNotifyInfo( + PPRINTER_NOTIFY_INFO pPrinterNotifyInfo + ); + +BOOL +__stdcall +FindClosePrinterChangeNotification( + HANDLE hChange + ); +# 2618 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +DWORD +__stdcall +PrinterMessageBoxA( + HANDLE hPrinter, + DWORD Error, + HWND hWnd, + LPSTR pText, + LPSTR pCaption, + DWORD dwType +); +DWORD +__stdcall +PrinterMessageBoxW( + HANDLE hPrinter, + DWORD Error, + HWND hWnd, + LPWSTR pText, + LPWSTR pCaption, + DWORD dwType +); +# 2654 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +BOOL +__stdcall +ClosePrinter( + HANDLE hPrinter +); + +BOOL +__stdcall +AddFormA( + HANDLE hPrinter, + DWORD Level, + + + LPBYTE pForm +); +BOOL +__stdcall +AddFormW( + HANDLE hPrinter, + DWORD Level, + + + LPBYTE pForm +); + + + + + + +BOOL +__stdcall +DeleteFormA( + HANDLE hPrinter, + LPSTR pFormName +); +BOOL +__stdcall +DeleteFormW( + HANDLE hPrinter, + LPWSTR pFormName +); +# 2704 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +BOOL +__stdcall +GetFormA( + HANDLE hPrinter, + LPSTR pFormName, + DWORD Level, + + LPBYTE pForm, + DWORD cbBuf, + LPDWORD pcbNeeded +); +BOOL +__stdcall +GetFormW( + HANDLE hPrinter, + LPWSTR pFormName, + DWORD Level, + + LPBYTE pForm, + DWORD cbBuf, + LPDWORD pcbNeeded +); +# 2734 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +BOOL +__stdcall +SetFormA( + HANDLE hPrinter, + LPSTR pFormName, + DWORD Level, + + + LPBYTE pForm +); +BOOL +__stdcall +SetFormW( + HANDLE hPrinter, + LPWSTR pFormName, + DWORD Level, + + + LPBYTE pForm +); + + + + + + +BOOL +__stdcall +EnumFormsA( + HANDLE hPrinter, + DWORD Level, + + LPBYTE pForm, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); +BOOL +__stdcall +EnumFormsW( + HANDLE hPrinter, + DWORD Level, + + LPBYTE pForm, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + + + + + + + +BOOL +__stdcall +EnumMonitorsA( + LPSTR pName, + DWORD Level, + + LPBYTE pMonitor, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); +BOOL +__stdcall +EnumMonitorsW( + LPWSTR pName, + DWORD Level, + + LPBYTE pMonitor, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); +# 2819 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +BOOL +__stdcall +AddMonitorA( + LPSTR pName, + DWORD Level, + + LPBYTE pMonitors +); +BOOL +__stdcall +AddMonitorW( + LPWSTR pName, + DWORD Level, + + LPBYTE pMonitors +); +# 2843 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +BOOL +__stdcall +DeleteMonitorA( + LPSTR pName, + LPSTR pEnvironment, + LPSTR pMonitorName +); +BOOL +__stdcall +DeleteMonitorW( + LPWSTR pName, + LPWSTR pEnvironment, + LPWSTR pMonitorName +); +# 2865 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +BOOL +__stdcall +EnumPortsA( + LPSTR pName, + DWORD Level, + + LPBYTE pPort, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); +BOOL +__stdcall +EnumPortsW( + LPWSTR pName, + DWORD Level, + + LPBYTE pPort, + DWORD cbBuf, + LPDWORD pcbNeeded, + LPDWORD pcReturned +); + + + + + + + +BOOL +__stdcall +AddPortA( + LPSTR pName, + HWND hWnd, + LPSTR pMonitorName +); +BOOL +__stdcall +AddPortW( + LPWSTR pName, + HWND hWnd, + LPWSTR pMonitorName +); +# 2916 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +BOOL +__stdcall +ConfigurePortA( + LPSTR pName, + HWND hWnd, + LPSTR pPortName +); +BOOL +__stdcall +ConfigurePortW( + LPWSTR pName, + HWND hWnd, + LPWSTR pPortName +); + + + + + + +BOOL +__stdcall +DeletePortA( + LPSTR pName, + HWND hWnd, + LPSTR pPortName +); +BOOL +__stdcall +DeletePortW( + LPWSTR pName, + HWND hWnd, + LPWSTR pPortName +); + + + + + + +BOOL +__stdcall +XcvDataW( + HANDLE hXcv, + PCWSTR pszDataName, + + PBYTE pInputData, + DWORD cbInputData, + + PBYTE pOutputData, + DWORD cbOutputData, + PDWORD pcbOutputNeeded, + PDWORD pdwStatus +); + + +BOOL +__stdcall +GetDefaultPrinterA( + LPSTR pszBuffer, + LPDWORD pcchBuffer + ); +BOOL +__stdcall +GetDefaultPrinterW( + LPWSTR pszBuffer, + LPDWORD pcchBuffer + ); + + + + + + +BOOL +__stdcall +SetDefaultPrinterA( + LPCSTR pszPrinter + ); +BOOL +__stdcall +SetDefaultPrinterW( + LPCWSTR pszPrinter + ); + + + + + + + +BOOL +__stdcall +SetPortA( + LPSTR pName, + LPSTR pPortName, + DWORD dwLevel, + + LPBYTE pPortInfo +); +BOOL +__stdcall +SetPortW( + LPWSTR pName, + LPWSTR pPortName, + DWORD dwLevel, + + LPBYTE pPortInfo +); +# 3033 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +BOOL +__stdcall +AddPrinterConnectionA( + LPSTR pName +); +BOOL +__stdcall +AddPrinterConnectionW( + LPWSTR pName +); +# 3051 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +BOOL +__stdcall +DeletePrinterConnectionA( + LPSTR pName +); +BOOL +__stdcall +DeletePrinterConnectionW( + LPWSTR pName +); +# 3069 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +HANDLE +__stdcall +ConnectToPrinterDlg( + HWND hwnd, + DWORD Flags +); + +typedef struct _PROVIDOR_INFO_1A{ + LPSTR pName; + LPSTR pEnvironment; + LPSTR pDLLName; +} PROVIDOR_INFO_1A, *PPROVIDOR_INFO_1A, *LPPROVIDOR_INFO_1A; +typedef struct _PROVIDOR_INFO_1W{ + LPWSTR pName; + LPWSTR pEnvironment; + LPWSTR pDLLName; +} PROVIDOR_INFO_1W, *PPROVIDOR_INFO_1W, *LPPROVIDOR_INFO_1W; + +typedef PROVIDOR_INFO_1W PROVIDOR_INFO_1; +typedef PPROVIDOR_INFO_1W PPROVIDOR_INFO_1; +typedef LPPROVIDOR_INFO_1W LPPROVIDOR_INFO_1; + + + + + + +typedef struct _PROVIDOR_INFO_2A{ + LPSTR pOrder; +} PROVIDOR_INFO_2A, *PPROVIDOR_INFO_2A, *LPPROVIDOR_INFO_2A; +typedef struct _PROVIDOR_INFO_2W{ + LPWSTR pOrder; +} PROVIDOR_INFO_2W, *PPROVIDOR_INFO_2W, *LPPROVIDOR_INFO_2W; + +typedef PROVIDOR_INFO_2W PROVIDOR_INFO_2; +typedef PPROVIDOR_INFO_2W PPROVIDOR_INFO_2; +typedef LPPROVIDOR_INFO_2W LPPROVIDOR_INFO_2; + + + + + + +BOOL +__stdcall +AddPrintProvidorA( + LPSTR pName, + DWORD Level, + + + LPBYTE pProvidorInfo +); +BOOL +__stdcall +AddPrintProvidorW( + LPWSTR pName, + DWORD Level, + + + LPBYTE pProvidorInfo +); + + + + + + +BOOL +__stdcall +DeletePrintProvidorA( + LPSTR pName, + LPSTR pEnvironment, + LPSTR pPrintProvidorName +); +BOOL +__stdcall +DeletePrintProvidorW( + LPWSTR pName, + LPWSTR pEnvironment, + LPWSTR pPrintProvidorName +); + + + + + + + + BOOL + __stdcall + IsValidDevmodeA( + PDEVMODEA pDevmode, + size_t DevmodeSize + ); + BOOL + __stdcall + IsValidDevmodeW( + PDEVMODEW pDevmode, + size_t DevmodeSize + ); +# 3394 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" + typedef enum _PRINTER_OPTION_FLAGS + { + PRINTER_OPTION_NO_CACHE = 1 << 0, + PRINTER_OPTION_CACHE = 1 << 1, + PRINTER_OPTION_CLIENT_CHANGE = 1 << 2, + PRINTER_OPTION_NO_CLIENT_DATA = 1 << 3, + } PRINTER_OPTION_FLAGS; + + + typedef struct _PRINTER_OPTIONSA + { + UINT cbSize; + DWORD dwFlags; + } PRINTER_OPTIONSA, *PPRINTER_OPTIONSA, *LPPRINTER_OPTIONSA; + typedef struct _PRINTER_OPTIONSW + { + UINT cbSize; + DWORD dwFlags; + } PRINTER_OPTIONSW, *PPRINTER_OPTIONSW, *LPPRINTER_OPTIONSW; + +typedef PRINTER_OPTIONSW PRINTER_OPTIONS; +typedef PPRINTER_OPTIONSW PPRINTER_OPTIONS; +typedef LPPRINTER_OPTIONSW LPPRINTER_OPTIONS; + + + + + + + BOOL + __stdcall + OpenPrinter2A( + LPCSTR pPrinterName, + LPHANDLE phPrinter, + PPRINTER_DEFAULTSA pDefault, + PPRINTER_OPTIONSA pOptions + ); + BOOL + __stdcall + OpenPrinter2W( + LPCWSTR pPrinterName, + LPHANDLE phPrinter, + PPRINTER_DEFAULTSW pDefault, + PPRINTER_OPTIONSW pOptions + ); +# 3448 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" + typedef struct _PRINTER_CONNECTION_INFO_1A + { + DWORD dwFlags; + LPSTR pszDriverName; + } PRINTER_CONNECTION_INFO_1A, *PPRINTER_CONNECTION_INFO_1A; + typedef struct _PRINTER_CONNECTION_INFO_1W + { + DWORD dwFlags; + LPWSTR pszDriverName; + } PRINTER_CONNECTION_INFO_1W, *PPRINTER_CONNECTION_INFO_1W; + +typedef PRINTER_CONNECTION_INFO_1W PRINTER_CONNECTION_INFO_1; +typedef PPRINTER_CONNECTION_INFO_1W PPRINTER_CONNECTION_INFO_1; + + + + + + BOOL + __stdcall + AddPrinterConnection2A( + HWND hWnd, + LPCSTR pszName, + DWORD dwLevel, + PVOID pConnectionInfo + ); + BOOL + __stdcall + AddPrinterConnection2W( + HWND hWnd, + LPCWSTR pszName, + DWORD dwLevel, + PVOID pConnectionInfo + ); +# 3495 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" + HRESULT + __stdcall + InstallPrinterDriverFromPackageA( + LPCSTR pszServer, + LPCSTR pszInfPath, + LPCSTR pszDriverName, + LPCSTR pszEnvironment, + DWORD dwFlags + ); + HRESULT + __stdcall + InstallPrinterDriverFromPackageW( + LPCWSTR pszServer, + LPCWSTR pszInfPath, + LPCWSTR pszDriverName, + LPCWSTR pszEnvironment, + DWORD dwFlags + ); +# 3524 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" + HRESULT + __stdcall + UploadPrinterDriverPackageA( + LPCSTR pszServer, + LPCSTR pszInfPath, + LPCSTR pszEnvironment, + DWORD dwFlags, + HWND hwnd, + + LPSTR pszDestInfPath, + PULONG pcchDestInfPath + ); + HRESULT + __stdcall + UploadPrinterDriverPackageW( + LPCWSTR pszServer, + LPCWSTR pszInfPath, + LPCWSTR pszEnvironment, + DWORD dwFlags, + HWND hwnd, + + LPWSTR pszDestInfPath, + PULONG pcchDestInfPath + ); + + + + + + + typedef struct _CORE_PRINTER_DRIVERA + { + GUID CoreDriverGUID; + FILETIME ftDriverDate; + DWORDLONG dwlDriverVersion; + CHAR szPackageID[260]; + } CORE_PRINTER_DRIVERA, *PCORE_PRINTER_DRIVERA; + typedef struct _CORE_PRINTER_DRIVERW + { + GUID CoreDriverGUID; + FILETIME ftDriverDate; + DWORDLONG dwlDriverVersion; + WCHAR szPackageID[260]; + } CORE_PRINTER_DRIVERW, *PCORE_PRINTER_DRIVERW; + +typedef CORE_PRINTER_DRIVERW CORE_PRINTER_DRIVER; +typedef PCORE_PRINTER_DRIVERW PCORE_PRINTER_DRIVER; + + + + + + HRESULT + __stdcall + GetCorePrinterDriversA( + LPCSTR pszServer, + LPCSTR pszEnvironment, + LPCSTR pszzCoreDriverDependencies, + DWORD cCorePrinterDrivers, + PCORE_PRINTER_DRIVERA pCorePrinterDrivers + ); + HRESULT + __stdcall + GetCorePrinterDriversW( + LPCWSTR pszServer, + LPCWSTR pszEnvironment, + LPCWSTR pszzCoreDriverDependencies, + DWORD cCorePrinterDrivers, + PCORE_PRINTER_DRIVERW pCorePrinterDrivers + ); + + + + + + + HRESULT + __stdcall + CorePrinterDriverInstalledA( + LPCSTR pszServer, + LPCSTR pszEnvironment, + GUID CoreDriverGUID, + FILETIME ftDriverDate, + DWORDLONG dwlDriverVersion, + BOOL *pbDriverInstalled + ); + HRESULT + __stdcall + CorePrinterDriverInstalledW( + LPCWSTR pszServer, + LPCWSTR pszEnvironment, + GUID CoreDriverGUID, + FILETIME ftDriverDate, + DWORDLONG dwlDriverVersion, + BOOL *pbDriverInstalled + ); + + + + + + + HRESULT + __stdcall + GetPrinterDriverPackagePathA( + LPCSTR pszServer, + LPCSTR pszEnvironment, + LPCSTR pszLanguage, + LPCSTR pszPackageID, + LPSTR pszDriverPackageCab, + DWORD cchDriverPackageCab, + LPDWORD pcchRequiredSize + ); + HRESULT + __stdcall + GetPrinterDriverPackagePathW( + LPCWSTR pszServer, + LPCWSTR pszEnvironment, + LPCWSTR pszLanguage, + LPCWSTR pszPackageID, + LPWSTR pszDriverPackageCab, + DWORD cchDriverPackageCab, + LPDWORD pcchRequiredSize + ); + + + + + + + HRESULT + __stdcall + DeletePrinterDriverPackageA( + LPCSTR pszServer, + LPCSTR pszInfPath, + LPCSTR pszEnvironment + ); + HRESULT + __stdcall + DeletePrinterDriverPackageW( + LPCWSTR pszServer, + LPCWSTR pszInfPath, + LPCWSTR pszEnvironment + ); + + + + + + + typedef enum + { + kPropertyTypeString = 1, + kPropertyTypeInt32, + kPropertyTypeInt64, + kPropertyTypeByte, + kPropertyTypeTime, + kPropertyTypeDevMode, + kPropertyTypeSD, + kPropertyTypeNotificationReply, + kPropertyTypeNotificationOptions, + kPropertyTypeBuffer + + } EPrintPropertyType; + + typedef enum + { + kAddingDocumentSequence = 0, + kDocumentSequenceAdded = 1, + kAddingFixedDocument = 2, + kFixedDocumentAdded = 3, + kAddingFixedPage = 4, + kFixedPageAdded = 5, + kResourceAdded = 6, + kFontAdded = 7, + kImageAdded = 8, + kXpsDocumentCommitted = 9 + + } EPrintXPSJobProgress; + + typedef enum + { + kJobProduction = 1, + kJobConsumption + + } EPrintXPSJobOperation; + + typedef struct + { + EPrintPropertyType ePropertyType; + union + { + BYTE propertyByte; + PWSTR propertyString; + LONG propertyInt32; + LONGLONG propertyInt64; + struct { + DWORD cbBuf; + LPVOID pBuf; + } propertyBlob; + } value; + + }PrintPropertyValue; + + typedef struct + { + WCHAR* propertyName; + PrintPropertyValue propertyValue; + + }PrintNamedProperty; + + typedef struct + { + ULONG numberOfProperties; + PrintNamedProperty* propertiesCollection; + + }PrintPropertiesCollection; + + HRESULT + __stdcall + ReportJobProcessingProgress( + HANDLE printerHandle, + ULONG jobId, + EPrintXPSJobOperation jobOperation, + EPrintXPSJobProgress jobProgress + ); + + BOOL + __stdcall + GetPrinterDriver2A( + HWND hWnd, + HANDLE hPrinter, + LPSTR pEnvironment, + DWORD Level, + + LPBYTE pDriverInfo, + DWORD cbBuf, + LPDWORD pcbNeeded + ); + BOOL + __stdcall + GetPrinterDriver2W( + HWND hWnd, + HANDLE hPrinter, + LPWSTR pEnvironment, + DWORD Level, + + LPBYTE pDriverInfo, + DWORD cbBuf, + LPDWORD pcbNeeded + ); +# 3785 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +typedef enum +{ + PRINT_EXECUTION_CONTEXT_APPLICATION = 0, + PRINT_EXECUTION_CONTEXT_SPOOLER_SERVICE = 1, + PRINT_EXECUTION_CONTEXT_SPOOLER_ISOLATION_HOST = 2, + PRINT_EXECUTION_CONTEXT_FILTER_PIPELINE = 3, + PRINT_EXECUTION_CONTEXT_WOW64 = 4 +} +PRINT_EXECUTION_CONTEXT; + +typedef struct +{ + PRINT_EXECUTION_CONTEXT context; + DWORD clientAppPID; +} +PRINT_EXECUTION_DATA; + +BOOL +__stdcall +GetPrintExecutionData( + PRINT_EXECUTION_DATA *pData + ); + + + + + + +DWORD +__stdcall +GetJobNamedPropertyValue( + HANDLE hPrinter, + DWORD JobId, + PCWSTR pszName, + PrintPropertyValue *pValue + ); + +void +__stdcall +FreePrintPropertyValue( + PrintPropertyValue *pValue + ); + +void +__stdcall +FreePrintNamedPropertyArray( + DWORD cProperties, + + + PrintNamedProperty **ppProperties + ); + +DWORD +__stdcall +SetJobNamedProperty( + HANDLE hPrinter, + DWORD JobId, + const PrintNamedProperty *pProperty + ); + +DWORD +__stdcall +DeleteJobNamedProperty( + HANDLE hPrinter, + DWORD JobId, + PCWSTR pszName + ); + +DWORD +__stdcall +EnumJobNamedProperties( + HANDLE hPrinter, + DWORD JobId, + DWORD *pcProperties, + + PrintNamedProperty **ppProperties + ); + +HRESULT +__stdcall +GetPrintOutputInfo( + HWND hWnd, + PCWSTR pszPrinter, + HANDLE *phFile, + PWSTR *ppszOutputFile + ); +# 3882 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winspool.h" +#pragma warning(pop) + + + +} +# 210 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\windows.h" 2 + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ole2.h" 1 + + + + +#pragma warning(push) +#pragma warning(disable: 4001) +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ole2.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" +#pragma warning(disable: 4103) + +#pragma pack(push,8) +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ole2.h" 2 +# 37 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ole2.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objbase.h" 1 +# 26 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objbase.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" +#pragma warning(disable: 4103) + +#pragma pack(push,8) +# 26 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" 1 +# 66 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" +#pragma warning(disable: 4103) + +#pragma pack(push,8) +# 66 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" 2 +# 226 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +extern "C++" +{ + template void** IID_PPV_ARGS_Helper(T** pp); +} +# 312 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" 1 +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_malloc.h" 1 +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_malloc.h" +#pragma pack(push, 8) +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_malloc.h" + extern "C" { +# 54 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_malloc.h" + __declspec(allocator) __declspec(restrict) +void* __cdecl _calloc_base( + size_t _Count, + size_t _Size + ); + + + __declspec(allocator) __declspec(restrict) +void* __cdecl calloc( + size_t _Count, + size_t _Size + ); + + + int __cdecl _callnewh( + size_t _Size + ); + + + __declspec(allocator) +void* __cdecl _expand( + void* _Block, + size_t _Size + ); + + +void __cdecl _free_base( + void* _Block + ); + + +void __cdecl free( + void* _Block + ); + + + __declspec(allocator) __declspec(restrict) +void* __cdecl _malloc_base( + size_t _Size + ); + + + __declspec(allocator) __declspec(restrict) +void* __cdecl malloc( + size_t _Size + ); + + + +size_t __cdecl _msize_base( + void* _Block + ); + + + +size_t __cdecl _msize( + void* _Block + ); + + + __declspec(allocator) __declspec(restrict) +void* __cdecl _realloc_base( + void* _Block, + size_t _Size + ); + + + __declspec(allocator) __declspec(restrict) +void* __cdecl realloc( + void* _Block, + size_t _Size + ); + + + __declspec(allocator) __declspec(restrict) +void* __cdecl _recalloc_base( + void* _Block, + size_t _Count, + size_t _Size + ); + + + __declspec(allocator) __declspec(restrict) +void* __cdecl _recalloc( + void* _Block, + size_t _Count, + size_t _Size + ); + + +void __cdecl _aligned_free( + void* _Block + ); + + + __declspec(allocator) __declspec(restrict) +void* __cdecl _aligned_malloc( + size_t _Size, + size_t _Alignment + ); + + + __declspec(allocator) __declspec(restrict) +void* __cdecl _aligned_offset_malloc( + size_t _Size, + size_t _Alignment, + size_t _Offset + ); + + + +size_t __cdecl _aligned_msize( + void* _Block, + size_t _Alignment, + size_t _Offset + ); + + + __declspec(allocator) __declspec(restrict) +void* __cdecl _aligned_offset_realloc( + void* _Block, + size_t _Size, + size_t _Alignment, + size_t _Offset + ); + + + __declspec(allocator) __declspec(restrict) +void* __cdecl _aligned_offset_recalloc( + void* _Block, + size_t _Count, + size_t _Size, + size_t _Alignment, + size_t _Offset + ); + + + __declspec(allocator) __declspec(restrict) +void* __cdecl _aligned_realloc( + void* _Block, + size_t _Size, + size_t _Alignment + ); + + + __declspec(allocator) __declspec(restrict) +void* __cdecl _aligned_recalloc( + void* _Block, + size_t _Count, + size_t _Size, + size_t _Alignment + ); +# 228 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_malloc.h" +} +# 228 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_malloc.h" +#pragma pack(pop) +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_search.h" 1 +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_search.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stddef.h" 1 +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stddef.h" +#pragma pack(push, 8) +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stddef.h" + extern "C" { + + + + + namespace std + { + typedef decltype(__nullptr) nullptr_t; + } + + using ::std::nullptr_t; + + + + + + + int* __cdecl _errno(void); + + + errno_t __cdecl _set_errno( int _Value); + errno_t __cdecl _get_errno( int* _Value); +# 50 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stddef.h" + extern unsigned long __cdecl __threadid(void); + + extern uintptr_t __cdecl __threadhandle(void); + + + +} +# 56 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stddef.h" +#pragma pack(pop) +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_search.h" 2 + + +#pragma pack(push, 8) +# 16 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_search.h" + extern "C" { + + + + + + + void* __cdecl bsearch_s( + void const* _Key, + void const* _Base, + rsize_t _NumOfElements, + rsize_t _SizeOfElements, + int (__cdecl* _PtFuncCompare)(void*, void const*, void const*), + void* _Context + ); + + void __cdecl qsort_s( + void* _Base, + rsize_t _NumOfElements, + rsize_t _SizeOfElements, + int (__cdecl* _PtFuncCompare)(void*, void const*, void const*), + void* _Context + ); + + + + + + + void* __cdecl bsearch( + void const* _Key, + void const* _Base, + size_t _NumOfElements, + size_t _SizeOfElements, + int (__cdecl* _PtFuncCompare)(void const*, void const*) + ); + + void __cdecl qsort( + void* _Base, + size_t _NumOfElements, + size_t _SizeOfElements, + int (__cdecl* _PtFuncCompare)(void const*, void const*) + ); + + + void* __cdecl _lfind_s( + void const* _Key, + void const* _Base, + unsigned int* _NumOfElements, + size_t _SizeOfElements, + int (__cdecl* _PtFuncCompare)(void*, void const*, void const*), + void* _Context + ); + + + void* __cdecl _lfind( + void const* _Key, + void const* _Base, + unsigned int* _NumOfElements, + unsigned int _SizeOfElements, + int (__cdecl* _PtFuncCompare)(void const*, void const*) + ); + + + void* __cdecl _lsearch_s( + void const* _Key, + void* _Base, + unsigned int* _NumOfElements, + size_t _SizeOfElements, + int (__cdecl* _PtFuncCompare)(void*, void const*, void const*), + void* _Context + ); + + + void* __cdecl _lsearch( + void const* _Key, + void* _Base, + unsigned int* _NumOfElements, + unsigned int _SizeOfElements, + int (__cdecl* _PtFuncCompare)(void const*, void const*) + ); +# 184 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_search.h" + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_lfind" ". See online help for details.")) + void* __cdecl lfind( + void const* _Key, + void const* _Base, + unsigned int* _NumOfElements, + unsigned int _SizeOfElements, + int (__cdecl* _PtFuncCompare)(void const*, void const*) + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_lsearch" ". See online help for details.")) + void* __cdecl lsearch( + void const* _Key, + void* _Base, + unsigned int* _NumOfElements, + unsigned int _SizeOfElements, + int (__cdecl* _PtFuncCompare)(void const*, void const*) + ); + + + + + +} +# 206 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_search.h" +#pragma pack(pop) +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdlib.h" 1 +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdlib.h" +#pragma pack(push, 8) +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdlib.h" + extern "C" { +# 50 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdlib.h" + errno_t __cdecl _itow_s( + int _Value, + wchar_t* _Buffer, + size_t _BufferCount, + int _Radix + ); + + extern "C++" { template inline errno_t __cdecl _itow_s(int _Value, wchar_t (&_Buffer)[_Size], int _Radix) throw() { return _itow_s(_Value, _Buffer, _Size, _Radix); } } + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_itow_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl _itow(int _Value, wchar_t *_Buffer, int _Radix); +# 73 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdlib.h" + errno_t __cdecl _ltow_s( + long _Value, + wchar_t* _Buffer, + size_t _BufferCount, + int _Radix + ); + + extern "C++" { template inline errno_t __cdecl _ltow_s(long _Value, wchar_t (&_Buffer)[_Size], int _Radix) throw() { return _ltow_s(_Value, _Buffer, _Size, _Radix); } } + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_ltow_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl _ltow(long _Value, wchar_t *_Buffer, int _Radix); + + + + + + + + errno_t __cdecl _ultow_s( + unsigned long _Value, + wchar_t* _Buffer, + size_t _BufferCount, + int _Radix + ); + + extern "C++" { template inline errno_t __cdecl _ultow_s(unsigned long _Value, wchar_t (&_Buffer)[_Size], int _Radix) throw() { return _ultow_s(_Value, _Buffer, _Size, _Radix); } } + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_ultow_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl _ultow(unsigned long _Value, wchar_t *_Buffer, int _Radix); + + + + + + + + double __cdecl wcstod( + wchar_t const* _String, + wchar_t** _EndPtr + ); + + + double __cdecl _wcstod_l( + wchar_t const* _String, + wchar_t** _EndPtr, + _locale_t _Locale + ); + + + long __cdecl wcstol( + wchar_t const* _String, + wchar_t** _EndPtr, + int _Radix + ); + + + long __cdecl _wcstol_l( + wchar_t const* _String, + wchar_t** _EndPtr, + int _Radix, + _locale_t _Locale + ); + + + long long __cdecl wcstoll( + wchar_t const* _String, + wchar_t** _EndPtr, + int _Radix + ); + + + long long __cdecl _wcstoll_l( + wchar_t const* _String, + wchar_t** _EndPtr, + int _Radix, + _locale_t _Locale + ); + + + unsigned long __cdecl wcstoul( + wchar_t const* _String, + wchar_t** _EndPtr, + int _Radix + ); + + + unsigned long __cdecl _wcstoul_l( + wchar_t const* _String, + wchar_t** _EndPtr, + int _Radix, + _locale_t _Locale + ); + + + unsigned long long __cdecl wcstoull( + wchar_t const* _String, + wchar_t** _EndPtr, + int _Radix + ); + + + unsigned long long __cdecl _wcstoull_l( + wchar_t const* _String, + wchar_t** _EndPtr, + int _Radix, + _locale_t _Locale + ); + + + long double __cdecl wcstold( + wchar_t const* _String, + wchar_t** _EndPtr + ); + + + long double __cdecl _wcstold_l( + wchar_t const* _String, + wchar_t** _EndPtr, + _locale_t _Locale + ); + + + float __cdecl wcstof( + wchar_t const* _String, + wchar_t** _EndPtr + ); + + + float __cdecl _wcstof_l( + wchar_t const* _String, + wchar_t** _EndPtr, + _locale_t _Locale + ); + + + double __cdecl _wtof( + wchar_t const* _String + ); + + + double __cdecl _wtof_l( + wchar_t const* _String, + _locale_t _Locale + ); + + + int __cdecl _wtoi( + wchar_t const* _String + ); + + + int __cdecl _wtoi_l( + wchar_t const* _String, + _locale_t _Locale + ); + + + long __cdecl _wtol( + wchar_t const* _String + ); + + + long __cdecl _wtol_l( + wchar_t const* _String, + _locale_t _Locale + ); + + + long long __cdecl _wtoll( + wchar_t const* _String + ); + + + long long __cdecl _wtoll_l( + wchar_t const* _String, + _locale_t _Locale + ); + + + errno_t __cdecl _i64tow_s( + __int64 _Value, + wchar_t* _Buffer, + size_t _BufferCount, + int _Radix + ); + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_i64tow_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + wchar_t* __cdecl _i64tow( + __int64 _Value, + wchar_t* _Buffer, + int _Radix + ); + + + errno_t __cdecl _ui64tow_s( + unsigned __int64 _Value, + wchar_t* _Buffer, + size_t _BufferCount, + int _Radix + ); + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_ui64tow_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + wchar_t* __cdecl _ui64tow( + unsigned __int64 _Value, + wchar_t* _Buffer, + int _Radix + ); + + + __int64 __cdecl _wtoi64( + wchar_t const* _String + ); + + + __int64 __cdecl _wtoi64_l( + wchar_t const* _String, + _locale_t _Locale + ); + + + __int64 __cdecl _wcstoi64( + wchar_t const* _String, + wchar_t** _EndPtr, + int _Radix + ); + + + __int64 __cdecl _wcstoi64_l( + wchar_t const* _String, + wchar_t** _EndPtr, + int _Radix, + _locale_t _Locale + ); + + + unsigned __int64 __cdecl _wcstoui64( + wchar_t const* _String, + wchar_t** _EndPtr, + int _Radix + ); + + + unsigned __int64 __cdecl _wcstoui64_l( + wchar_t const* _String, + wchar_t** _EndPtr, + int _Radix, + _locale_t _Locale + ); + + + + + + + __declspec(allocator) wchar_t* __cdecl _wfullpath( + wchar_t* _Buffer, + wchar_t const* _Path, + size_t _BufferCount + ); + + + + + errno_t __cdecl _wmakepath_s( + wchar_t* _Buffer, + size_t _BufferCount, + wchar_t const* _Drive, + wchar_t const* _Dir, + wchar_t const* _Filename, + wchar_t const* _Ext + ); + + extern "C++" { template inline errno_t __cdecl _wmakepath_s(wchar_t (&_Buffer)[_Size], wchar_t const* _Drive, wchar_t const* _Dir, wchar_t const* _Filename, wchar_t const* _Ext) throw() { return _wmakepath_s(_Buffer, _Size, _Drive, _Dir, _Filename, _Ext); } } +# 362 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdlib.h" + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_wmakepath_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) void __cdecl _wmakepath( wchar_t *_Buffer, wchar_t const* _Drive, wchar_t const* _Dir, wchar_t const* _Filename, wchar_t const* _Ext); +# 371 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdlib.h" + void __cdecl _wperror( + wchar_t const* _ErrorMessage + ); + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_wsplitpath_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + void __cdecl _wsplitpath( + wchar_t const* _FullPath, + wchar_t* _Drive, + wchar_t* _Dir, + wchar_t* _Filename, + wchar_t* _Ext + ); + + errno_t __cdecl _wsplitpath_s( + wchar_t const* _FullPath, + wchar_t* _Drive, + size_t _DriveCount, + wchar_t* _Dir, + size_t _DirCount, + wchar_t* _Filename, + size_t _FilenameCount, + wchar_t* _Ext, + size_t _ExtCount + ); + + extern "C++" { template inline errno_t __cdecl _wsplitpath_s( wchar_t const* _Path, wchar_t (&_Drive)[_DriveSize], wchar_t (&_Dir)[_DirSize], wchar_t (&_Name)[_NameSize], wchar_t (&_Ext)[_ExtSize] ) throw() { return _wsplitpath_s(_Path, _Drive, _DriveSize, _Dir, _DirSize, _Name, _NameSize, _Ext, _ExtSize); } } +# 409 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdlib.h" + errno_t __cdecl _wdupenv_s( + wchar_t** _Buffer, + size_t* _BufferCount, + wchar_t const* _VarName + ); + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_wdupenv_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + wchar_t* __cdecl _wgetenv( + wchar_t const* _VarName + ); + + + + errno_t __cdecl _wgetenv_s( + size_t* _RequiredCount, + wchar_t* _Buffer, + size_t _BufferCount, + wchar_t const* _VarName + ); + + extern "C++" { template inline errno_t __cdecl _wgetenv_s(size_t* _RequiredCount, wchar_t (&_Buffer)[_Size], wchar_t const* _VarName) throw() { return _wgetenv_s(_RequiredCount, _Buffer, _Size, _VarName); } } +# 440 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdlib.h" + int __cdecl _wputenv( + wchar_t const* _EnvString + ); + + + errno_t __cdecl _wputenv_s( + wchar_t const* _Name, + wchar_t const* _Value + ); + + errno_t __cdecl _wsearchenv_s( + wchar_t const* _Filename, + wchar_t const* _VarName, + wchar_t* _Buffer, + size_t _BufferCount + ); + + extern "C++" { template inline errno_t __cdecl _wsearchenv_s(wchar_t const* _Filename, wchar_t const* _VarName, wchar_t (&_ResultPath)[_Size]) throw() { return _wsearchenv_s(_Filename, _VarName, _ResultPath, _Size); } } + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_wsearchenv_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) void __cdecl _wsearchenv(wchar_t const* _Filename, wchar_t const* _VarName, wchar_t *_ResultPath); + + + + + + + int __cdecl _wsystem( + wchar_t const* _Command + ); + + + + + + +} +# 480 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdlib.h" +#pragma pack(pop) +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" 2 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\limits.h" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\limits.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\limits.h" 2 3 + + +#pragma pack(push, 8) +# 13 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\limits.h" 3 + extern "C" { +# 88 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\limits.h" 3 +} +# 88 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\limits.h" 3 +#pragma pack(pop) +# 15 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" 2 + + +#pragma pack(push, 8) +# 17 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + extern "C" { +# 33 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + void __cdecl _swab( + char* _Buf1, + char* _Buf2, + int _SizeInBytes + ); +# 51 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + __declspec(noreturn) void __cdecl exit( int _Code); + __declspec(noreturn) void __cdecl _exit( int _Code); + __declspec(noreturn) void __cdecl _Exit( int _Code); + __declspec(noreturn) void __cdecl quick_exit( int _Code); + __declspec(noreturn) void __cdecl abort(void); + + + + + + + unsigned int __cdecl _set_abort_behavior( + unsigned int _Flags, + unsigned int _Mask + ); + + + + + + + typedef int (__cdecl* _onexit_t)(void); +# 139 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + int __cdecl atexit(void (__cdecl*)(void)); + _onexit_t __cdecl _onexit( _onexit_t _Func); + + +int __cdecl at_quick_exit(void (__cdecl*)(void)); +# 154 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + typedef void (__cdecl* _purecall_handler)(void); + + + typedef void (__cdecl* _invalid_parameter_handler)( + wchar_t const*, + wchar_t const*, + wchar_t const*, + unsigned int, + uintptr_t + ); + + + _purecall_handler __cdecl _set_purecall_handler( + _purecall_handler _Handler + ); + + _purecall_handler __cdecl _get_purecall_handler(void); + + + _invalid_parameter_handler __cdecl _set_invalid_parameter_handler( + _invalid_parameter_handler _Handler + ); + + _invalid_parameter_handler __cdecl _get_invalid_parameter_handler(void); + + _invalid_parameter_handler __cdecl _set_thread_local_invalid_parameter_handler( + _invalid_parameter_handler _Handler + ); + + _invalid_parameter_handler __cdecl _get_thread_local_invalid_parameter_handler(void); +# 207 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + int __cdecl _set_error_mode( int _Mode); + + + + + int* __cdecl _errno(void); + + + errno_t __cdecl _set_errno( int _Value); + errno_t __cdecl _get_errno( int* _Value); + + unsigned long* __cdecl __doserrno(void); + + + errno_t __cdecl _set_doserrno( unsigned long _Value); + errno_t __cdecl _get_doserrno( unsigned long * _Value); + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "strerror" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char** __cdecl __sys_errlist(void); + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "strerror" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) int * __cdecl __sys_nerr(void); + + + void __cdecl perror( char const* _ErrMsg); + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_get_pgmptr" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char** __cdecl __p__pgmptr (void); +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_get_wpgmptr" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t** __cdecl __p__wpgmptr(void); +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_get_fmode" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) int* __cdecl __p__fmode (void); +# 254 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + errno_t __cdecl _get_pgmptr ( char** _Value); + + + errno_t __cdecl _get_wpgmptr( wchar_t** _Value); + + errno_t __cdecl _set_fmode ( int _Mode ); + + errno_t __cdecl _get_fmode ( int* _PMode); +# 270 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" +typedef struct _div_t +{ + int quot; + int rem; +} div_t; + +typedef struct _ldiv_t +{ + long quot; + long rem; +} ldiv_t; + +typedef struct _lldiv_t +{ + long long quot; + long long rem; +} lldiv_t; + + int __cdecl abs ( int _Number); + long __cdecl labs ( long _Number); + long long __cdecl llabs ( long long _Number); + __int64 __cdecl _abs64( __int64 _Number); + + unsigned short __cdecl _byteswap_ushort( unsigned short _Number); + unsigned long __cdecl _byteswap_ulong ( unsigned long _Number); + unsigned __int64 __cdecl _byteswap_uint64( unsigned __int64 _Number); + + div_t __cdecl div ( int _Numerator, int _Denominator); + ldiv_t __cdecl ldiv ( long _Numerator, long _Denominator); + lldiv_t __cdecl lldiv( long long _Numerator, long long _Denominator); + + + +#pragma warning(push) +#pragma warning(disable: 6540) + +unsigned int __cdecl _rotl( + unsigned int _Value, + int _Shift + ); + + +unsigned long __cdecl _lrotl( + unsigned long _Value, + int _Shift + ); + +unsigned __int64 __cdecl _rotl64( + unsigned __int64 _Value, + int _Shift + ); + +unsigned int __cdecl _rotr( + unsigned int _Value, + int _Shift + ); + + +unsigned long __cdecl _lrotr( + unsigned long _Value, + int _Shift + ); + +unsigned __int64 __cdecl _rotr64( + unsigned __int64 _Value, + int _Shift + ); + +#pragma warning(pop) + + + + + + + void __cdecl srand( unsigned int _Seed); + + int __cdecl rand(void); +# 356 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" +extern "C++" +{ + inline long abs(long const _X) throw() + { + return labs(_X); + } + + inline long long abs(long long const _X) throw() + { + return llabs(_X); + } + + inline ldiv_t div(long const _A1, long const _A2) throw() + { + return ldiv(_A1, _A2); + } + + inline lldiv_t div(long long const _A1, long long const _A2) throw() + { + return lldiv(_A1, _A2); + } +} +# 389 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" +#pragma pack(push, 4) + typedef struct + { + unsigned char ld[10]; + } _LDOUBLE; +#pragma pack(pop) +# 410 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" +typedef struct +{ + double x; +} _CRT_DOUBLE; + +typedef struct +{ + float f; +} _CRT_FLOAT; + + + + + +typedef struct +{ + long double x; +} _LONGDOUBLE; + + + +#pragma pack(push, 4) +typedef struct +{ + unsigned char ld12[12]; +} _LDBL12; +#pragma pack(pop) + + + + + + + + + double __cdecl atof ( char const* _String); + int __cdecl atoi ( char const* _String); + long __cdecl atol ( char const* _String); + long long __cdecl atoll ( char const* _String); + __int64 __cdecl _atoi64( char const* _String); + + double __cdecl _atof_l ( char const* _String, _locale_t _Locale); + int __cdecl _atoi_l ( char const* _String, _locale_t _Locale); + long __cdecl _atol_l ( char const* _String, _locale_t _Locale); + long long __cdecl _atoll_l ( char const* _String, _locale_t _Locale); + __int64 __cdecl _atoi64_l( char const* _String, _locale_t _Locale); + + int __cdecl _atoflt ( _CRT_FLOAT* _Result, char const* _String); + int __cdecl _atodbl ( _CRT_DOUBLE* _Result, char* _String); + int __cdecl _atoldbl( _LDOUBLE* _Result, char* _String); + + + int __cdecl _atoflt_l( + _CRT_FLOAT* _Result, + char const* _String, + _locale_t _Locale + ); + + + int __cdecl _atodbl_l( + _CRT_DOUBLE* _Result, + char* _String, + _locale_t _Locale + ); + + + + int __cdecl _atoldbl_l( + _LDOUBLE* _Result, + char* _String, + _locale_t _Locale + ); + + + float __cdecl strtof( + char const* _String, + char** _EndPtr + ); + + + float __cdecl _strtof_l( + char const* _String, + char** _EndPtr, + _locale_t _Locale + ); + + + double __cdecl strtod( + char const* _String, + char** _EndPtr + ); + + + double __cdecl _strtod_l( + char const* _String, + char** _EndPtr, + _locale_t _Locale + ); + + + long double __cdecl strtold( + char const* _String, + char** _EndPtr + ); + + + long double __cdecl _strtold_l( + char const* _String, + char** _EndPtr, + _locale_t _Locale + ); + + + long __cdecl strtol( + char const* _String, + char** _EndPtr, + int _Radix + ); + + + long __cdecl _strtol_l( + char const* _String, + char** _EndPtr, + int _Radix, + _locale_t _Locale + ); + + + long long __cdecl strtoll( + char const* _String, + char** _EndPtr, + int _Radix + ); + + + long long __cdecl _strtoll_l( + char const* _String, + char** _EndPtr, + int _Radix, + _locale_t _Locale + ); + + + unsigned long __cdecl strtoul( + char const* _String, + char** _EndPtr, + int _Radix + ); + + + unsigned long __cdecl _strtoul_l( + char const* _String, + char** _EndPtr, + int _Radix, + _locale_t _Locale + ); + + + unsigned long long __cdecl strtoull( + char const* _String, + char** _EndPtr, + int _Radix + ); + + + unsigned long long __cdecl _strtoull_l( + char const* _String, + char** _EndPtr, + int _Radix, + _locale_t _Locale + ); + + + __int64 __cdecl _strtoi64( + char const* _String, + char** _EndPtr, + int _Radix + ); + + + __int64 __cdecl _strtoi64_l( + char const* _String, + char** _EndPtr, + int _Radix, + _locale_t _Locale + ); + + + unsigned __int64 __cdecl _strtoui64( + char const* _String, + char** _EndPtr, + int _Radix + ); + + + unsigned __int64 __cdecl _strtoui64_l( + char const* _String, + char** _EndPtr, + int _Radix, + _locale_t _Locale + ); +# 621 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + errno_t __cdecl _itoa_s( + int _Value, + char* _Buffer, + size_t _BufferCount, + int _Radix + ); + +extern "C++" { template inline errno_t __cdecl _itoa_s(int _Value, char (&_Buffer)[_Size], int _Radix) throw() { return _itoa_s(_Value, _Buffer, _Size, _Radix); } } + + + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_itoa_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char* __cdecl _itoa(int _Value, char *_Buffer, int _Radix); +# 645 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + errno_t __cdecl _ltoa_s( + long _Value, + char* _Buffer, + size_t _BufferCount, + int _Radix + ); + +extern "C++" { template inline errno_t __cdecl _ltoa_s(long _Value, char (&_Buffer)[_Size], int _Radix) throw() { return _ltoa_s(_Value, _Buffer, _Size, _Radix); } } + + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_ltoa_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char* __cdecl _ltoa(long _Value, char *_Buffer, int _Radix); +# 668 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + errno_t __cdecl _ultoa_s( + unsigned long _Value, + char* _Buffer, + size_t _BufferCount, + int _Radix + ); + +extern "C++" { template inline errno_t __cdecl _ultoa_s(unsigned long _Value, char (&_Buffer)[_Size], int _Radix) throw() { return _ultoa_s(_Value, _Buffer, _Size, _Radix); } } + + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_ultoa_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char* __cdecl _ultoa(unsigned long _Value, char *_Buffer, int _Radix); +# 691 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + errno_t __cdecl _i64toa_s( + __int64 _Value, + char* _Buffer, + size_t _BufferCount, + int _Radix + ); + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_i64toa_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl _i64toa( + __int64 _Value, + char* _Buffer, + int _Radix + ); + + + + errno_t __cdecl _ui64toa_s( + unsigned __int64 _Value, + char* _Buffer, + size_t _BufferCount, + int _Radix + ); + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_ui64toa_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl _ui64toa( + unsigned __int64 _Value, + char* _Buffer, + int _Radix + ); +# 736 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + errno_t __cdecl _ecvt_s( + char* _Buffer, + size_t _BufferCount, + double _Value, + int _DigitCount, + int* _PtDec, + int* _PtSign + ); + +extern "C++" { template inline errno_t __cdecl _ecvt_s(char (&_Buffer)[_Size], double _Value, int _DigitCount, int* _PtDec, int* _PtSign) throw() { return _ecvt_s(_Buffer, _Size, _Value, _DigitCount, _PtDec, _PtSign); } } +# 754 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_ecvt_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl _ecvt( + double _Value, + int _DigitCount, + int* _PtDec, + int* _PtSign + ); + + + + errno_t __cdecl _fcvt_s( + char* _Buffer, + size_t _BufferCount, + double _Value, + int _FractionalDigitCount, + int* _PtDec, + int* _PtSign + ); + +extern "C++" { template inline errno_t __cdecl _fcvt_s(char (&_Buffer)[_Size], double _Value, int _FractionalDigitCount, int* _PtDec, int* _PtSign) throw() { return _fcvt_s(_Buffer, _Size, _Value, _FractionalDigitCount, _PtDec, _PtSign); } } +# 784 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_fcvt_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl _fcvt( + double _Value, + int _FractionalDigitCount, + int* _PtDec, + int* _PtSign + ); + + + errno_t __cdecl _gcvt_s( + char* _Buffer, + size_t _BufferCount, + double _Value, + int _DigitCount + ); + +extern "C++" { template inline errno_t __cdecl _gcvt_s(char (&_Buffer)[_Size], double _Value, int _DigitCount) throw() { return _gcvt_s(_Buffer, _Size, _Value, _DigitCount); } } + + + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_gcvt_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl _gcvt( + double _Value, + int _DigitCount, + char* _Buffer + ); +# 847 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + int __cdecl mblen( + char const* _Ch, + size_t _MaxCount + ); + + + int __cdecl _mblen_l( + char const* _Ch, + size_t _MaxCount, + _locale_t _Locale + ); + + + + size_t __cdecl _mbstrlen( + char const* _String + ); + + + + size_t __cdecl _mbstrlen_l( + char const* _String, + _locale_t _Locale + ); + + + + size_t __cdecl _mbstrnlen( + char const* _String, + size_t _MaxCount + ); + + + + size_t __cdecl _mbstrnlen_l( + char const* _String, + size_t _MaxCount, + _locale_t _Locale + ); + + + int __cdecl mbtowc( + wchar_t* _DstCh, + char const* _SrcCh, + size_t _SrcSizeInBytes + ); + + + int __cdecl _mbtowc_l( + wchar_t* _DstCh, + char const* _SrcCh, + size_t _SrcSizeInBytes, + _locale_t _Locale + ); + + + errno_t __cdecl mbstowcs_s( + size_t* _PtNumOfCharConverted, + wchar_t* _DstBuf, + size_t _SizeInWords, + char const* _SrcBuf, + size_t _MaxCount + ); + +extern "C++" { template inline errno_t __cdecl mbstowcs_s(size_t* _PtNumOfCharConverted, wchar_t (&_Dest)[_Size], char const* _Source, size_t _MaxCount) throw() { return mbstowcs_s(_PtNumOfCharConverted, _Dest, _Size, _Source, _MaxCount); } } + + + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "mbstowcs_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) size_t __cdecl mbstowcs( wchar_t *_Dest, char const* _Source, size_t _MaxCount); + + + + + + + + errno_t __cdecl _mbstowcs_s_l( + size_t* _PtNumOfCharConverted, + wchar_t* _DstBuf, + size_t _SizeInWords, + char const* _SrcBuf, + size_t _MaxCount, + _locale_t _Locale + ); + +extern "C++" { template inline errno_t __cdecl _mbstowcs_s_l(size_t* _PtNumOfCharConverted, wchar_t (&_Dest)[_Size], char const* _Source, size_t _MaxCount, _locale_t _Locale) throw() { return _mbstowcs_s_l(_PtNumOfCharConverted, _Dest, _Size, _Source, _MaxCount, _Locale); } } +# 945 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbstowcs_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) size_t __cdecl _mbstowcs_l( wchar_t *_Dest, char const* _Source, size_t _MaxCount, _locale_t _Locale); +# 957 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" +__declspec(deprecated("This function or variable may be unsafe. Consider using " "wctomb_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + int __cdecl wctomb( + char* _MbCh, + wchar_t _WCh + ); + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wctomb_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + int __cdecl _wctomb_l( + char* _MbCh, + wchar_t _WCh, + _locale_t _Locale + ); + + + + + errno_t __cdecl wctomb_s( + int* _SizeConverted, + char* _MbCh, + rsize_t _SizeInBytes, + wchar_t _WCh + ); + + + + + errno_t __cdecl _wctomb_s_l( + int* _SizeConverted, + char* _MbCh, + size_t _SizeInBytes, + wchar_t _WCh, + _locale_t _Locale); + + + errno_t __cdecl wcstombs_s( + size_t* _PtNumOfCharConverted, + char* _Dst, + size_t _DstSizeInBytes, + wchar_t const* _Src, + size_t _MaxCountInBytes + ); + +extern "C++" { template inline errno_t __cdecl wcstombs_s(size_t* _PtNumOfCharConverted, char (&_Dest)[_Size], wchar_t const* _Source, size_t _MaxCount) throw() { return wcstombs_s(_PtNumOfCharConverted, _Dest, _Size, _Source, _MaxCount); } } + + + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "wcstombs_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) size_t __cdecl wcstombs( char *_Dest, wchar_t const* _Source, size_t _MaxCount); + + + + + + + + errno_t __cdecl _wcstombs_s_l( + size_t* _PtNumOfCharConverted, + char* _Dst, + size_t _DstSizeInBytes, + wchar_t const* _Src, + size_t _MaxCountInBytes, + _locale_t _Locale + ); + +extern "C++" { template inline errno_t __cdecl _wcstombs_s_l(size_t* _PtNumOfCharConverted, char (&_Dest)[_Size], wchar_t const* _Source, size_t _MaxCount, _locale_t _Locale) throw() { return _wcstombs_s_l(_PtNumOfCharConverted, _Dest, _Size, _Source, _MaxCount, _Locale); } } +# 1033 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcstombs_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) size_t __cdecl _wcstombs_l( char *_Dest, wchar_t const* _Source, size_t _MaxCount, _locale_t _Locale); +# 1063 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + __declspec(allocator) char* __cdecl _fullpath( + char* _Buffer, + char const* _Path, + size_t _BufferCount + ); + + + + + errno_t __cdecl _makepath_s( + char* _Buffer, + size_t _BufferCount, + char const* _Drive, + char const* _Dir, + char const* _Filename, + char const* _Ext + ); + +extern "C++" { template inline errno_t __cdecl _makepath_s(char (&_Buffer)[_Size], char const* _Drive, char const* _Dir, char const* _Filename, char const* _Ext) throw() { return _makepath_s(_Buffer, _Size, _Drive, _Dir, _Filename, _Ext); } } +# 1090 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_makepath_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) void __cdecl _makepath( char *_Buffer, char const* _Drive, char const* _Dir, char const* _Filename, char const* _Ext); +# 1099 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_splitpath_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + void __cdecl _splitpath( + char const* _FullPath, + char* _Drive, + char* _Dir, + char* _Filename, + char* _Ext + ); + + + errno_t __cdecl _splitpath_s( + char const* _FullPath, + char* _Drive, + size_t _DriveCount, + char* _Dir, + size_t _DirCount, + char* _Filename, + size_t _FilenameCount, + char* _Ext, + size_t _ExtCount + ); + +extern "C++" { template inline errno_t __cdecl _splitpath_s( char const* _Dest, char (&_Drive)[_DriveSize], char (&_Dir)[_DirSize], char (&_Name)[_NameSize], char (&_Ext)[_ExtSize] ) throw() { return _splitpath_s(_Dest, _Drive, _DriveSize, _Dir, _DirSize, _Name, _NameSize, _Ext, _ExtSize); } } +# 1136 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + errno_t __cdecl getenv_s( + size_t* _RequiredCount, + char* _Buffer, + rsize_t _BufferCount, + char const* _VarName + ); + + + + + + + int* __cdecl __p___argc (void); + char*** __cdecl __p___argv (void); + wchar_t*** __cdecl __p___wargv(void); +# 1162 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + char*** __cdecl __p__environ (void); + wchar_t*** __cdecl __p__wenviron(void); +# 1187 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_dupenv_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl getenv( + char const* _VarName + ); + + extern "C++" { template inline errno_t __cdecl getenv_s(size_t* _RequiredCount, char (&_Buffer)[_Size], char const* _VarName) throw() { return getenv_s(_RequiredCount, _Buffer, _Size, _VarName); } } +# 1205 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" + errno_t __cdecl _dupenv_s( + char** _Buffer, + size_t* _BufferCount, + char const* _VarName + ); + + + + + + int __cdecl system( + char const* _Command + ); + + + +#pragma warning(push) +#pragma warning(disable: 6540) + + + int __cdecl _putenv( + char const* _EnvString + ); + + + errno_t __cdecl _putenv_s( + char const* _Name, + char const* _Value + ); + +#pragma warning(pop) + + errno_t __cdecl _searchenv_s( + char const* _Filename, + char const* _VarName, + char* _Buffer, + size_t _BufferCount + ); + + extern "C++" { template inline errno_t __cdecl _searchenv_s(char const* _Filename, char const* _VarName, char (&_Buffer)[_Size]) throw() { return _searchenv_s(_Filename, _VarName, _Buffer, _Size); } } + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_searchenv_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) void __cdecl _searchenv(char const* _Filename, char const* _VarName, char *_Buffer); + + + + + + + + __declspec(deprecated("This function or variable has been superceded by newer library " "or operating system functionality. Consider using " "SetErrorMode" " " "instead. See online help for details.")) + void __cdecl _seterrormode( + int _Mode + ); + + __declspec(deprecated("This function or variable has been superceded by newer library " "or operating system functionality. Consider using " "Beep" " " "instead. See online help for details.")) + void __cdecl _beep( + unsigned _Frequency, + unsigned _Duration + ); + + __declspec(deprecated("This function or variable has been superceded by newer library " "or operating system functionality. Consider using " "Sleep" " " "instead. See online help for details.")) + void __cdecl _sleep( + unsigned long _Duration + ); +# 1296 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" +#pragma warning(push) +#pragma warning(disable: 4141) + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_ecvt" ". See online help for details.")) __declspec(deprecated("This function or variable may be unsafe. Consider using " "_ecvt_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl ecvt( + double _Value, + int _DigitCount, + int* _PtDec, + int* _PtSign + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_fcvt" ". See online help for details.")) __declspec(deprecated("This function or variable may be unsafe. Consider using " "_fcvt_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl fcvt( + double _Value, + int _FractionalDigitCount, + int* _PtDec, + int* _PtSign + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_gcvt" ". See online help for details.")) __declspec(deprecated("This function or variable may be unsafe. Consider using " "_fcvt_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl gcvt( + double _Value, + int _DigitCount, + char* _DstBuf + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_itoa" ". See online help for details.")) __declspec(deprecated("This function or variable may be unsafe. Consider using " "_itoa_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl itoa( + int _Value, + char* _Buffer, + int _Radix + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_ltoa" ". See online help for details.")) __declspec(deprecated("This function or variable may be unsafe. Consider using " "_ltoa_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl ltoa( + long _Value, + char* _Buffer, + int _Radix + ); + + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_swab" ". See online help for details.")) + void __cdecl swab( + char* _Buf1, + char* _Buf2, + int _SizeInBytes + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_ultoa" ". See online help for details.")) __declspec(deprecated("This function or variable may be unsafe. Consider using " "_ultoa_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl ultoa( + unsigned long _Value, + char* _Buffer, + int _Radix + ); + + + + + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_putenv" ". See online help for details.")) + int __cdecl putenv( + char const* _EnvString + ); + + + +#pragma warning(pop) + + _onexit_t __cdecl onexit( _onexit_t _Func); + + + + + +} +# 1370 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdlib.h" +#pragma pack(pop) +# 312 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" 2 +# 344 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +typedef enum tagREGCLS +{ + REGCLS_SINGLEUSE = 0, + REGCLS_MULTIPLEUSE = 1, + + REGCLS_MULTI_SEPARATE = 2, + + REGCLS_SUSPENDED = 4, + + REGCLS_SURROGATE = 8, + + + + + REGCLS_AGILE = 0x10, +# 367 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +} REGCLS; + + + +typedef struct IRpcStubBuffer IRpcStubBuffer; +typedef struct IRpcChannelBuffer IRpcChannelBuffer; + + +typedef enum tagCOINITBASE +{ + + + + COINITBASE_MULTITHREADED = 0x0, + +} COINITBASE; + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\unknwnbase.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\unknwnbase.h" +typedef struct IUnknown IUnknown; + + + + + + +typedef struct AsyncIUnknown AsyncIUnknown; + + + + + + +typedef struct IClassFactory IClassFactory; +# 67 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\unknwnbase.h" +extern "C"{ +# 88 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\unknwnbase.h" +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; + + + + + + + +typedef IUnknown *LPUNKNOWN; + + + + + + + + extern "C" const IID IID_IUnknown; + extern "C++" + { + struct __declspec(uuid("00000000-0000-0000-C000-000000000046")) __declspec(novtable) + IUnknown + { + public: + + virtual HRESULT __stdcall QueryInterface( + const IID & riid, + void * *ppvObject) = 0; + + virtual ULONG __stdcall AddRef( void) = 0; + + virtual ULONG __stdcall Release( void) = 0; + + template + HRESULT + + + + __stdcall + + QueryInterface( Q** pp) + { + return QueryInterface(__uuidof(Q), (void **)pp); + } + + + }; + } + HRESULT __stdcall IUnknown_QueryInterface_Proxy( + IUnknown * This, + const IID & riid, + void * *ppvObject); + + void __stdcall IUnknown_QueryInterface_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + ULONG __stdcall IUnknown_AddRef_Proxy( + IUnknown * This); + + void __stdcall IUnknown_AddRef_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + ULONG __stdcall IUnknown_Release_Proxy( + IUnknown * This); + + void __stdcall IUnknown_Release_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 285 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\unknwnbase.h" +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; +# 295 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\unknwnbase.h" +extern "C" const IID IID_AsyncIUnknown; + + + + struct __declspec(uuid("000e0000-0000-0000-C000-000000000046")) __declspec(novtable) + AsyncIUnknown : public IUnknown + { + public: + virtual HRESULT __stdcall Begin_QueryInterface( + const IID & riid) = 0; + + virtual HRESULT __stdcall Finish_QueryInterface( + + void **ppvObject) = 0; + + virtual HRESULT __stdcall Begin_AddRef( void) = 0; + + virtual ULONG __stdcall Finish_AddRef( void) = 0; + + virtual HRESULT __stdcall Begin_Release( void) = 0; + + virtual ULONG __stdcall Finish_Release( void) = 0; + + }; +# 421 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\unknwnbase.h" +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; + + + + + + + +typedef IClassFactory *LPCLASSFACTORY; + + +extern "C" const IID IID_IClassFactory; + + + + struct __declspec(uuid("00000001-0000-0000-C000-000000000046")) __declspec(novtable) + IClassFactory : public IUnknown + { + public: + virtual HRESULT __stdcall CreateInstance( + + IUnknown *pUnkOuter, + + const IID & riid, + + void **ppvObject) = 0; + + virtual HRESULT __stdcall LockServer( + BOOL fLock) = 0; + + }; +# 522 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\unknwnbase.h" + HRESULT __stdcall IClassFactory_RemoteCreateInstance_Proxy( + IClassFactory * This, + const IID & riid, + IUnknown **ppvObject); + + +void __stdcall IClassFactory_RemoteCreateInstance_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IClassFactory_RemoteLockServer_Proxy( + IClassFactory * This, + BOOL fLock); + + +void __stdcall IClassFactory_RemoteLockServer_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 558 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\unknwnbase.h" +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; + + + + HRESULT __stdcall IClassFactory_CreateInstance_Proxy( + IClassFactory * This, + + IUnknown *pUnkOuter, + + const IID & riid, + + void **ppvObject); + + + HRESULT __stdcall IClassFactory_CreateInstance_Stub( + IClassFactory * This, + const IID & riid, + IUnknown **ppvObject); + + HRESULT __stdcall IClassFactory_LockServer_Proxy( + IClassFactory * This, + BOOL fLock); + + + HRESULT __stdcall IClassFactory_LockServer_Stub( + IClassFactory * This, + BOOL fLock); + + + + + + +} +# 385 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" 2 +# 396 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +extern "C++" +{ + template void** IID_PPV_ARGS_Helper(T** pp) + { +#pragma prefast(suppress: 6269, "Tool issue with unused static_cast") + static_cast(*pp); + return reinterpret_cast(pp); + } +} + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +typedef struct IMarshal IMarshal; + + + + + + +typedef struct INoMarshal INoMarshal; + + + + + + +typedef struct IAgileObject IAgileObject; + + + + + + +typedef struct IActivationFilter IActivationFilter; + + + + + + +typedef struct IMarshal2 IMarshal2; + + + + + + +typedef struct IMalloc IMalloc; + + + + + + +typedef struct IStdMarshalInfo IStdMarshalInfo; + + + + + + +typedef struct IExternalConnection IExternalConnection; + + + + + + +typedef struct IMultiQI IMultiQI; + + + + + + +typedef struct AsyncIMultiQI AsyncIMultiQI; + + + + + + +typedef struct IInternalUnknown IInternalUnknown; + + + + + + +typedef struct IEnumUnknown IEnumUnknown; + + + + + + +typedef struct IEnumString IEnumString; + + + + + + +typedef struct ISequentialStream ISequentialStream; + + + + + + +typedef struct IStream IStream; + + + + + + +typedef struct IRpcChannelBuffer IRpcChannelBuffer; + + + + + + +typedef struct IRpcChannelBuffer2 IRpcChannelBuffer2; + + + + + + +typedef struct IAsyncRpcChannelBuffer IAsyncRpcChannelBuffer; + + + + + + +typedef struct IRpcChannelBuffer3 IRpcChannelBuffer3; + + + + + + +typedef struct IRpcSyntaxNegotiate IRpcSyntaxNegotiate; + + + + + + +typedef struct IRpcProxyBuffer IRpcProxyBuffer; + + + + + + +typedef struct IRpcStubBuffer IRpcStubBuffer; + + + + + + +typedef struct IPSFactoryBuffer IPSFactoryBuffer; + + + + + + +typedef struct IChannelHook IChannelHook; + + + + + + +typedef struct IClientSecurity IClientSecurity; + + + + + + +typedef struct IServerSecurity IServerSecurity; + + + + + + +typedef struct IRpcOptions IRpcOptions; + + + + + + +typedef struct IGlobalOptions IGlobalOptions; + + + + + + +typedef struct ISurrogate ISurrogate; + + + + + + +typedef struct IGlobalInterfaceTable IGlobalInterfaceTable; + + + + + + +typedef struct ISynchronize ISynchronize; + + + + + + +typedef struct ISynchronizeHandle ISynchronizeHandle; + + + + + + +typedef struct ISynchronizeEvent ISynchronizeEvent; + + + + + + +typedef struct ISynchronizeContainer ISynchronizeContainer; + + + + + + +typedef struct ISynchronizeMutex ISynchronizeMutex; + + + + + + +typedef struct ICancelMethodCalls ICancelMethodCalls; + + + + + + +typedef struct IAsyncManager IAsyncManager; + + + + + + +typedef struct ICallFactory ICallFactory; + + + + + + +typedef struct IRpcHelper IRpcHelper; + + + + + + +typedef struct IReleaseMarshalBuffers IReleaseMarshalBuffers; + + + + + + +typedef struct IWaitMultiple IWaitMultiple; + + + + + + +typedef struct IAddrTrackingControl IAddrTrackingControl; + + + + + + +typedef struct IAddrExclusionControl IAddrExclusionControl; + + + + + + +typedef struct IPipeByte IPipeByte; + + + + + + +typedef struct AsyncIPipeByte AsyncIPipeByte; + + + + + + +typedef struct IPipeLong IPipeLong; + + + + + + +typedef struct AsyncIPipeLong AsyncIPipeLong; + + + + + + +typedef struct IPipeDouble IPipeDouble; + + + + + + +typedef struct AsyncIPipeDouble AsyncIPipeDouble; + + + + + + +typedef struct IEnumContextProps IEnumContextProps; + + + + + + +typedef struct IContext IContext; + + + + + + +typedef struct IObjContext IObjContext; + + + + + + +typedef struct IComThreadingInfo IComThreadingInfo; + + + + + + +typedef struct IProcessInitControl IProcessInitControl; + + + + + + +typedef struct IFastRundown IFastRundown; + + + + + + +typedef struct IMarshalingStream IMarshalingStream; + + + + + + +typedef struct IAgileReference IAgileReference; +# 445 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C"{ +# 477 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +#pragma warning(push) + + + +#pragma warning(disable: 4820) + +#pragma warning(disable: 4201) +# 506 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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; + + + + + + + +typedef IMarshal *LPMARSHAL; + + +extern "C" const IID IID_IMarshal; + + + + struct __declspec(uuid("00000003-0000-0000-C000-000000000046")) __declspec(novtable) + IMarshal : public IUnknown + { + public: + virtual HRESULT __stdcall GetUnmarshalClass( + + const IID & riid, + + void *pv, + + DWORD dwDestContext, + + void *pvDestContext, + + DWORD mshlflags, + + CLSID *pCid) = 0; + + virtual HRESULT __stdcall GetMarshalSizeMax( + + const IID & riid, + + void *pv, + + DWORD dwDestContext, + + void *pvDestContext, + + DWORD mshlflags, + + DWORD *pSize) = 0; + + virtual HRESULT __stdcall MarshalInterface( + + IStream *pStm, + + const IID & riid, + + void *pv, + + DWORD dwDestContext, + + void *pvDestContext, + + DWORD mshlflags) = 0; + + virtual HRESULT __stdcall UnmarshalInterface( + + IStream *pStm, + + const IID & riid, + + void **ppv) = 0; + + virtual HRESULT __stdcall ReleaseMarshalData( + + IStream *pStm) = 0; + + virtual HRESULT __stdcall DisconnectObject( + + DWORD dwReserved) = 0; + + }; +# 739 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_INoMarshal; + + + + struct __declspec(uuid("ecc8691b-c1db-4dc0-855e-65f6c551af49")) __declspec(novtable) + INoMarshal : public IUnknown + { + public: + }; +# 809 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IAgileObject; + + + + struct __declspec(uuid("94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90")) __declspec(novtable) + IAgileObject : public IUnknown + { + public: + }; +# 881 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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; + + + + + + + +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; + + + + struct __declspec(uuid("00000017-0000-0000-C000-000000000046")) __declspec(novtable) + IActivationFilter : public IUnknown + { + public: + virtual HRESULT __stdcall HandleActivation( + DWORD dwActivationType, + const IID & rclsid, + CLSID *pReplacementClsId) = 0; + + }; +# 985 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +typedef IMarshal2 *LPMARSHAL2; + + +extern "C" const IID IID_IMarshal2; + + + + struct __declspec(uuid("000001cf-0000-0000-C000-000000000046")) __declspec(novtable) + IMarshal2 : public IMarshal + { + public: + }; +# 1140 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +typedef IMalloc *LPMALLOC; + + +extern "C" const IID IID_IMalloc; + + + + struct __declspec(uuid("00000002-0000-0000-C000-000000000046")) __declspec(novtable) + IMalloc : public IUnknown + { + public: + virtual void *__stdcall Alloc( + + SIZE_T cb) = 0; + + virtual void *__stdcall Realloc( + + void *pv, + + SIZE_T cb) = 0; + + virtual void __stdcall Free( + + void *pv) = 0; + + virtual SIZE_T __stdcall GetSize( + + void *pv) = 0; + + virtual int __stdcall DidAlloc( + + void *pv) = 0; + + virtual void __stdcall HeapMinimize( void) = 0; + + }; +# 1284 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +typedef IStdMarshalInfo *LPSTDMARSHALINFO; + + +extern "C" const IID IID_IStdMarshalInfo; + + + + struct __declspec(uuid("00000018-0000-0000-C000-000000000046")) __declspec(novtable) + IStdMarshalInfo : public IUnknown + { + public: + virtual HRESULT __stdcall GetClassForHandler( + + DWORD dwDestContext, + + void *pvDestContext, + + CLSID *pClsid) = 0; + + }; +# 1376 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +typedef IExternalConnection *LPEXTERNALCONNECTION; + +typedef +enum tagEXTCONN + { + EXTCONN_STRONG = 0x1, + EXTCONN_WEAK = 0x2, + EXTCONN_CALLABLE = 0x4 + } EXTCONN; + + +extern "C" const IID IID_IExternalConnection; + + + + struct __declspec(uuid("00000019-0000-0000-C000-000000000046")) __declspec(novtable) + IExternalConnection : public IUnknown + { + public: + virtual DWORD __stdcall AddConnection( + + DWORD extconn, + + DWORD reserved) = 0; + + virtual DWORD __stdcall ReleaseConnection( + + DWORD extconn, + + DWORD reserved, + + BOOL fLastReleaseCloses) = 0; + + }; +# 1489 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +typedef IMultiQI *LPMULTIQI; + + + + + +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; +# 1514 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IMultiQI; + + + + struct __declspec(uuid("00000020-0000-0000-C000-000000000046")) __declspec(novtable) + IMultiQI : public IUnknown + { + public: + virtual HRESULT __stdcall QueryMultipleInterfaces( + + ULONG cMQIs, + + MULTI_QI *pMQIs) = 0; + + }; +# 1600 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_AsyncIMultiQI; + + + + struct __declspec(uuid("000e0020-0000-0000-C000-000000000046")) __declspec(novtable) + AsyncIMultiQI : public IUnknown + { + public: + virtual HRESULT __stdcall Begin_QueryMultipleInterfaces( + + ULONG cMQIs, + + MULTI_QI *pMQIs) = 0; + + virtual HRESULT __stdcall Finish_QueryMultipleInterfaces( + + MULTI_QI *pMQIs) = 0; + + }; +# 1700 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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; +# 1710 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IInternalUnknown; + + + + struct __declspec(uuid("00000021-0000-0000-C000-000000000046")) __declspec(novtable) + IInternalUnknown : public IUnknown + { + public: + virtual HRESULT __stdcall QueryInternalInterface( + + const IID & riid, + + void **ppv) = 0; + + }; +# 1798 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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; + + + + + + + +typedef IEnumUnknown *LPENUMUNKNOWN; + + +extern "C" const IID IID_IEnumUnknown; + + + + struct __declspec(uuid("00000100-0000-0000-C000-000000000046")) __declspec(novtable) + IEnumUnknown : public IUnknown + { + public: + virtual HRESULT __stdcall Next( + + ULONG celt, + + IUnknown **rgelt, + + ULONG *pceltFetched) = 0; + + virtual HRESULT __stdcall Skip( + ULONG celt) = 0; + + virtual HRESULT __stdcall Reset( void) = 0; + + virtual HRESULT __stdcall Clone( + IEnumUnknown **ppenum) = 0; + + }; +# 1917 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" + HRESULT __stdcall IEnumUnknown_RemoteNext_Proxy( + IEnumUnknown * This, + ULONG celt, + IUnknown **rgelt, + ULONG *pceltFetched); + + +void __stdcall IEnumUnknown_RemoteNext_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 1941 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +typedef IEnumString *LPENUMSTRING; + + +extern "C" const IID IID_IEnumString; + + + + struct __declspec(uuid("00000101-0000-0000-C000-000000000046")) __declspec(novtable) + IEnumString : public IUnknown + { + public: + virtual HRESULT __stdcall Next( + ULONG celt, + + LPOLESTR *rgelt, + + ULONG *pceltFetched) = 0; + + virtual HRESULT __stdcall Skip( + ULONG celt) = 0; + + virtual HRESULT __stdcall Reset( void) = 0; + + virtual HRESULT __stdcall Clone( + IEnumString **ppenum) = 0; + + }; +# 2049 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" + HRESULT __stdcall IEnumString_RemoteNext_Proxy( + IEnumString * This, + ULONG celt, + LPOLESTR *rgelt, + ULONG *pceltFetched); + + +void __stdcall IEnumString_RemoteNext_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 2074 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_ISequentialStream; + + + + struct __declspec(uuid("0c733a30-2a1c-11ce-ade5-00aa0044773d")) __declspec(novtable) + ISequentialStream : public IUnknown + { + public: + virtual HRESULT __stdcall Read( + + void *pv, + + ULONG cb, + + ULONG *pcbRead) = 0; + + virtual HRESULT __stdcall Write( + + const void *pv, + + ULONG cb, + + ULONG *pcbWritten) = 0; + + }; +# 2173 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" + HRESULT __stdcall ISequentialStream_RemoteRead_Proxy( + ISequentialStream * This, + byte *pv, + ULONG cb, + ULONG *pcbRead); + + +void __stdcall ISequentialStream_RemoteRead_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ISequentialStream_RemoteWrite_Proxy( + ISequentialStream * This, + const byte *pv, + ULONG cb, + ULONG *pcbWritten); + + +void __stdcall ISequentialStream_RemoteWrite_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 2211 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +typedef 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; + + + + struct __declspec(uuid("0000000c-0000-0000-C000-000000000046")) __declspec(novtable) + IStream : public ISequentialStream + { + public: + virtual HRESULT __stdcall Seek( + LARGE_INTEGER dlibMove, + DWORD dwOrigin, + + ULARGE_INTEGER *plibNewPosition) = 0; + + virtual HRESULT __stdcall SetSize( + ULARGE_INTEGER libNewSize) = 0; + + virtual HRESULT __stdcall CopyTo( + + IStream *pstm, + ULARGE_INTEGER cb, + + ULARGE_INTEGER *pcbRead, + + ULARGE_INTEGER *pcbWritten) = 0; + + virtual HRESULT __stdcall Commit( + DWORD grfCommitFlags) = 0; + + virtual HRESULT __stdcall Revert( void) = 0; + + virtual HRESULT __stdcall LockRegion( + ULARGE_INTEGER libOffset, + ULARGE_INTEGER cb, + DWORD dwLockType) = 0; + + virtual HRESULT __stdcall UnlockRegion( + ULARGE_INTEGER libOffset, + ULARGE_INTEGER cb, + DWORD dwLockType) = 0; + + virtual HRESULT __stdcall Stat( + STATSTG *pstatstg, + DWORD grfStatFlag) = 0; + + virtual HRESULT __stdcall Clone( + IStream **ppstm) = 0; + + }; +# 2454 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" + HRESULT __stdcall IStream_RemoteSeek_Proxy( + IStream * This, + LARGE_INTEGER dlibMove, + DWORD dwOrigin, + ULARGE_INTEGER *plibNewPosition); + + +void __stdcall IStream_RemoteSeek_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IStream_RemoteCopyTo_Proxy( + IStream * This, + IStream *pstm, + ULARGE_INTEGER cb, + ULARGE_INTEGER *pcbRead, + ULARGE_INTEGER *pcbWritten); + + +void __stdcall IStream_RemoteCopyTo_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 2493 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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; + + + + struct __declspec(uuid("D5F56B60-593B-101A-B569-08002B2DBF7A")) __declspec(novtable) + IRpcChannelBuffer : public IUnknown + { + public: + virtual HRESULT __stdcall GetBuffer( + + RPCOLEMESSAGE *pMessage, + + const IID & riid) = 0; + + virtual HRESULT __stdcall SendReceive( + + RPCOLEMESSAGE *pMessage, + + ULONG *pStatus) = 0; + + virtual HRESULT __stdcall FreeBuffer( + + RPCOLEMESSAGE *pMessage) = 0; + + virtual HRESULT __stdcall GetDestCtx( + + DWORD *pdwDestContext, + + void **ppvDestContext) = 0; + + virtual HRESULT __stdcall IsConnected( void) = 0; + + }; +# 2649 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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; +# 2659 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IRpcChannelBuffer2; + + + + struct __declspec(uuid("594f31d0-7f19-11d0-b194-00a0c90dc8bf")) __declspec(novtable) + IRpcChannelBuffer2 : public IRpcChannelBuffer + { + public: + virtual HRESULT __stdcall GetProtocolVersion( + + DWORD *pdwVersion) = 0; + + }; +# 2786 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IAsyncRpcChannelBuffer; + + + + struct __declspec(uuid("a5029fb6-3c34-11d1-9c99-00c04fb998aa")) __declspec(novtable) + IAsyncRpcChannelBuffer : public IRpcChannelBuffer2 + { + public: + virtual HRESULT __stdcall Send( + + RPCOLEMESSAGE *pMsg, + + ISynchronize *pSync, + + ULONG *pulStatus) = 0; + + virtual HRESULT __stdcall Receive( + + RPCOLEMESSAGE *pMsg, + + ULONG *pulStatus) = 0; + + virtual HRESULT __stdcall GetDestCtxEx( + + RPCOLEMESSAGE *pMsg, + + DWORD *pdwDestContext, + + void **ppvDestContext) = 0; + + }; +# 2966 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IRpcChannelBuffer3; + + + + struct __declspec(uuid("25B15600-0115-11d0-BF0D-00AA00B8DFD2")) __declspec(novtable) + IRpcChannelBuffer3 : public IRpcChannelBuffer2 + { + public: + virtual HRESULT __stdcall Send( + + RPCOLEMESSAGE *pMsg, + + ULONG *pulStatus) = 0; + + virtual HRESULT __stdcall Receive( + + RPCOLEMESSAGE *pMsg, + + ULONG ulSize, + + ULONG *pulStatus) = 0; + + virtual HRESULT __stdcall Cancel( + + RPCOLEMESSAGE *pMsg) = 0; + + virtual HRESULT __stdcall GetCallContext( + + RPCOLEMESSAGE *pMsg, + + const IID & riid, + + void **pInterface) = 0; + + virtual HRESULT __stdcall GetDestCtxEx( + + RPCOLEMESSAGE *pMsg, + + DWORD *pdwDestContext, + + void **ppvDestContext) = 0; + + virtual HRESULT __stdcall GetState( + + RPCOLEMESSAGE *pMsg, + + DWORD *pState) = 0; + + virtual HRESULT __stdcall RegisterAsync( + + RPCOLEMESSAGE *pMsg, + + IAsyncManager *pAsyncMgr) = 0; + + }; +# 3210 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IRpcSyntaxNegotiate; + + + + struct __declspec(uuid("58a08519-24c8-4935-b482-3fd823333a4f")) __declspec(novtable) + IRpcSyntaxNegotiate : public IUnknown + { + public: + virtual HRESULT __stdcall NegotiateSyntax( + + RPCOLEMESSAGE *pMsg) = 0; + + }; +# 3292 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IRpcProxyBuffer; + + + + struct __declspec(uuid("D5F56A34-593B-101A-B569-08002B2DBF7A")) __declspec(novtable) + IRpcProxyBuffer : public IUnknown + { + public: + virtual HRESULT __stdcall Connect( + + IRpcChannelBuffer *pRpcChannelBuffer) = 0; + + virtual void __stdcall Disconnect( void) = 0; + + }; +# 3384 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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; +# 3394 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IRpcStubBuffer; + + + + struct __declspec(uuid("D5F56AFC-593B-101A-B569-08002B2DBF7A")) __declspec(novtable) + IRpcStubBuffer : public IUnknown + { + public: + virtual HRESULT __stdcall Connect( + + IUnknown *pUnkServer) = 0; + + virtual void __stdcall Disconnect( void) = 0; + + virtual HRESULT __stdcall Invoke( + + RPCOLEMESSAGE *_prpcmsg, + + IRpcChannelBuffer *_pRpcChannelBuffer) = 0; + + virtual IRpcStubBuffer *__stdcall IsIIDSupported( + + const IID & riid) = 0; + + virtual ULONG __stdcall CountRefs( void) = 0; + + virtual HRESULT __stdcall DebugServerQueryInterface( + + void **ppv) = 0; + + virtual void __stdcall DebugServerRelease( + + void *pv) = 0; + + }; +# 3544 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IPSFactoryBuffer; + + + + struct __declspec(uuid("D5F569D0-593B-101A-B569-08002B2DBF7A")) __declspec(novtable) + IPSFactoryBuffer : public IUnknown + { + public: + virtual HRESULT __stdcall CreateProxy( + + IUnknown *pUnkOuter, + + const IID & riid, + + IRpcProxyBuffer **ppProxy, + + void **ppv) = 0; + + virtual HRESULT __stdcall CreateStub( + + const IID & riid, + + IUnknown *pUnkServer, + + IRpcStubBuffer **ppStub) = 0; + + }; +# 3660 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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; +# 3682 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IChannelHook; + + + + struct __declspec(uuid("1008c4a0-7613-11cf-9af1-0020af6e72f4")) __declspec(novtable) + IChannelHook : public IUnknown + { + public: + virtual void __stdcall ClientGetSize( + + const GUID & uExtent, + + const IID & riid, + + ULONG *pDataSize) = 0; + + virtual void __stdcall ClientFillBuffer( + + const GUID & uExtent, + + const IID & riid, + + ULONG *pDataSize, + + void *pDataBuffer) = 0; + + virtual void __stdcall ClientNotify( + + const GUID & uExtent, + + const IID & riid, + + ULONG cbDataSize, + + void *pDataBuffer, + + DWORD lDataRep, + + HRESULT hrFault) = 0; + + virtual void __stdcall ServerNotify( + + const GUID & uExtent, + + const IID & riid, + + ULONG cbDataSize, + + void *pDataBuffer, + + DWORD lDataRep) = 0; + + virtual void __stdcall ServerGetSize( + + const GUID & uExtent, + + const IID & riid, + + HRESULT hrFault, + + ULONG *pDataSize) = 0; + + virtual void __stdcall ServerFillBuffer( + + const GUID & uExtent, + + const IID & riid, + + ULONG *pDataSize, + + void *pDataBuffer, + + HRESULT hrFault) = 0; + + }; +# 3913 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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; + + + + + + + +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_NO_CUSTOM_MARSHAL = 0x2000, + EOAC_DISABLE_AAA = 0x1000 + } EOLE_AUTHENTICATION_CAPABILITIES; + + + + + +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; + + + + struct __declspec(uuid("0000013D-0000-0000-C000-000000000046")) __declspec(novtable) + IClientSecurity : public IUnknown + { + public: + virtual HRESULT __stdcall QueryBlanket( + + IUnknown *pProxy, + + DWORD *pAuthnSvc, + + DWORD *pAuthzSvc, + + OLECHAR **pServerPrincName, + + DWORD *pAuthnLevel, + + DWORD *pImpLevel, + + void **pAuthInfo, + + DWORD *pCapabilites) = 0; + + virtual HRESULT __stdcall SetBlanket( + + IUnknown *pProxy, + + DWORD dwAuthnSvc, + + DWORD dwAuthzSvc, + + OLECHAR *pServerPrincName, + + DWORD dwAuthnLevel, + + DWORD dwImpLevel, + + void *pAuthInfo, + + DWORD dwCapabilities) = 0; + + virtual HRESULT __stdcall CopyProxy( + + IUnknown *pProxy, + + IUnknown **ppCopy) = 0; + + }; +# 4142 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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; +# 4152 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IServerSecurity; + + + + struct __declspec(uuid("0000013E-0000-0000-C000-000000000046")) __declspec(novtable) + IServerSecurity : public IUnknown + { + public: + virtual HRESULT __stdcall QueryBlanket( + + DWORD *pAuthnSvc, + + DWORD *pAuthzSvc, + + OLECHAR **pServerPrincName, + + DWORD *pAuthnLevel, + + DWORD *pImpLevel, + + void **pPrivs, + + DWORD *pCapabilities) = 0; + + virtual HRESULT __stdcall ImpersonateClient( void) = 0; + + virtual HRESULT __stdcall RevertToSelf( void) = 0; + + virtual BOOL __stdcall IsImpersonating( void) = 0; + + }; +# 4278 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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; +# 4309 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IRpcOptions; + + + + struct __declspec(uuid("00000144-0000-0000-C000-000000000046")) __declspec(novtable) + IRpcOptions : public IUnknown + { + public: + virtual HRESULT __stdcall Set( + + IUnknown *pPrx, + + RPCOPT_PROPERTIES dwProperty, + + ULONG_PTR dwValue) = 0; + + virtual HRESULT __stdcall Query( + + IUnknown *pPrx, + + RPCOPT_PROPERTIES dwProperty, + + ULONG_PTR *pdwValue) = 0; + + }; +# 4419 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +typedef +enum tagGLOBALOPT_PROPERTIES + { + COMGLB_EXCEPTION_HANDLING = 1, + COMGLB_APPID = 2, + COMGLB_RPC_THREADPOOL_SETTING = 3, + COMGLB_RO_SETTINGS = 4, + COMGLB_UNMARSHALING_POLICY = 5 + } 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; +# 4481 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IGlobalOptions; + + + + struct __declspec(uuid("0000015B-0000-0000-C000-000000000046")) __declspec(novtable) + IGlobalOptions : public IUnknown + { + public: + virtual HRESULT __stdcall Set( + + GLOBALOPT_PROPERTIES dwProperty, + + ULONG_PTR dwValue) = 0; + + virtual HRESULT __stdcall Query( + + GLOBALOPT_PROPERTIES dwProperty, + + ULONG_PTR *pdwValue) = 0; + + }; +# 4586 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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; + + + + + + + +typedef ISurrogate *LPSURROGATE; + + +extern "C" const IID IID_ISurrogate; + + + + struct __declspec(uuid("00000022-0000-0000-C000-000000000046")) __declspec(novtable) + ISurrogate : public IUnknown + { + public: + virtual HRESULT __stdcall LoadDllServer( + const IID & Clsid) = 0; + + virtual HRESULT __stdcall FreeSurrogate( void) = 0; + + }; +# 4685 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +typedef IGlobalInterfaceTable *LPGLOBALINTERFACETABLE; + + +extern "C" const IID IID_IGlobalInterfaceTable; + + + + struct __declspec(uuid("00000146-0000-0000-C000-000000000046")) __declspec(novtable) + IGlobalInterfaceTable : public IUnknown + { + public: + virtual HRESULT __stdcall RegisterInterfaceInGlobal( + + IUnknown *pUnk, + + const IID & riid, + + DWORD *pdwCookie) = 0; + + virtual HRESULT __stdcall RevokeInterfaceFromGlobal( + + DWORD dwCookie) = 0; + + virtual HRESULT __stdcall GetInterfaceFromGlobal( + + DWORD dwCookie, + + const IID & riid, + + void **ppv) = 0; + + }; +# 4812 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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; +# 4822 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_ISynchronize; + + + + struct __declspec(uuid("00000030-0000-0000-C000-000000000046")) __declspec(novtable) + ISynchronize : public IUnknown + { + public: + virtual HRESULT __stdcall Wait( + DWORD dwFlags, + DWORD dwMilliseconds) = 0; + + virtual HRESULT __stdcall Signal( void) = 0; + + virtual HRESULT __stdcall Reset( void) = 0; + + }; +# 4920 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_ISynchronizeHandle; + + + + struct __declspec(uuid("00000031-0000-0000-C000-000000000046")) __declspec(novtable) + ISynchronizeHandle : public IUnknown + { + public: + virtual HRESULT __stdcall GetHandle( + + HANDLE *ph) = 0; + + }; +# 5002 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_ISynchronizeEvent; + + + + struct __declspec(uuid("00000032-0000-0000-C000-000000000046")) __declspec(novtable) + ISynchronizeEvent : public ISynchronizeHandle + { + public: + virtual HRESULT __stdcall SetEventHandle( + + HANDLE *ph) = 0; + + }; +# 5093 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_ISynchronizeContainer; + + + + struct __declspec(uuid("00000033-0000-0000-C000-000000000046")) __declspec(novtable) + ISynchronizeContainer : public IUnknown + { + public: + virtual HRESULT __stdcall AddSynchronize( + + ISynchronize *pSync) = 0; + + virtual HRESULT __stdcall WaitMultiple( + + DWORD dwFlags, + + DWORD dwTimeOut, + + ISynchronize **ppSync) = 0; + + }; +# 5195 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_ISynchronizeMutex; + + + + struct __declspec(uuid("00000025-0000-0000-C000-000000000046")) __declspec(novtable) + ISynchronizeMutex : public ISynchronize + { + public: + virtual HRESULT __stdcall ReleaseMutex( void) = 0; + + }; +# 5293 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +typedef ICancelMethodCalls *LPCANCELMETHODCALLS; + + +extern "C" const IID IID_ICancelMethodCalls; + + + + struct __declspec(uuid("00000029-0000-0000-C000-000000000046")) __declspec(novtable) + ICancelMethodCalls : public IUnknown + { + public: + virtual HRESULT __stdcall Cancel( + + ULONG ulSeconds) = 0; + + virtual HRESULT __stdcall TestCancel( void) = 0; + + }; +# 5385 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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; + + + + struct __declspec(uuid("0000002A-0000-0000-C000-000000000046")) __declspec(novtable) + IAsyncManager : public IUnknown + { + public: + virtual HRESULT __stdcall CompleteCall( + + HRESULT Result) = 0; + + virtual HRESULT __stdcall GetCallContext( + + const IID & riid, + + void **pInterface) = 0; + + virtual HRESULT __stdcall GetState( + + ULONG *pulStateFlags) = 0; + + }; +# 5504 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_ICallFactory; + + + + struct __declspec(uuid("1c733a30-2a1c-11ce-ade5-00aa0044773d")) __declspec(novtable) + ICallFactory : public IUnknown + { + public: + virtual HRESULT __stdcall CreateCall( + + const IID & riid, + + IUnknown *pCtrlUnk, + + const IID & riid2, + + IUnknown **ppv) = 0; + + }; +# 5598 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IRpcHelper; + + + + struct __declspec(uuid("00000149-0000-0000-C000-000000000046")) __declspec(novtable) + IRpcHelper : public IUnknown + { + public: + virtual HRESULT __stdcall GetDCOMProtocolVersion( + + DWORD *pComVersion) = 0; + + virtual HRESULT __stdcall GetIIDFromOBJREF( + + void *pObjRef, + + IID **piid) = 0; + + }; +# 5696 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IReleaseMarshalBuffers; + + + + struct __declspec(uuid("eb0cb9e8-7996-11d2-872e-0000f8080859")) __declspec(novtable) + IReleaseMarshalBuffers : public IUnknown + { + public: + virtual HRESULT __stdcall ReleaseMarshalBuffer( + + RPCOLEMESSAGE *pMsg, + + DWORD dwFlags, + + IUnknown *pChnl) = 0; + + }; +# 5786 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IWaitMultiple; + + + + struct __declspec(uuid("0000002B-0000-0000-C000-000000000046")) __declspec(novtable) + IWaitMultiple : public IUnknown + { + public: + virtual HRESULT __stdcall WaitMultiple( + + DWORD timeout, + + ISynchronize **pSync) = 0; + + virtual HRESULT __stdcall AddSynchronize( + + ISynchronize *pSync) = 0; + + }; +# 5883 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +typedef IAddrTrackingControl *LPADDRTRACKINGCONTROL; + + +extern "C" const IID IID_IAddrTrackingControl; + + + + struct __declspec(uuid("00000147-0000-0000-C000-000000000046")) __declspec(novtable) + IAddrTrackingControl : public IUnknown + { + public: + virtual HRESULT __stdcall EnableCOMDynamicAddrTracking( void) = 0; + + virtual HRESULT __stdcall DisableCOMDynamicAddrTracking( void) = 0; + + }; +# 5971 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +typedef IAddrExclusionControl *LPADDREXCLUSIONCONTROL; + + +extern "C" const IID IID_IAddrExclusionControl; + + + + struct __declspec(uuid("00000148-0000-0000-C000-000000000046")) __declspec(novtable) + IAddrExclusionControl : public IUnknown + { + public: + virtual HRESULT __stdcall GetCurrentAddrExclusionList( + + const IID & riid, + + void **ppEnumerator) = 0; + + virtual HRESULT __stdcall UpdateAddrExclusionList( + + IUnknown *pEnumerator) = 0; + + }; +# 6072 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IPipeByte; + + + + struct __declspec(uuid("DB2F3ACA-2F86-11d1-8E04-00C04FB9989A")) __declspec(novtable) + IPipeByte : public IUnknown + { + public: + virtual HRESULT __stdcall Pull( + BYTE *buf, + ULONG cRequest, + ULONG *pcReturned) = 0; + + virtual HRESULT __stdcall Push( + BYTE *buf, + ULONG cSent) = 0; + + }; +# 6168 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_AsyncIPipeByte; + + + + struct __declspec(uuid("DB2F3ACB-2F86-11d1-8E04-00C04FB9989A")) __declspec(novtable) + AsyncIPipeByte : public IUnknown + { + public: + virtual HRESULT __stdcall Begin_Pull( + ULONG cRequest) = 0; + + virtual HRESULT __stdcall Finish_Pull( + BYTE *buf, + ULONG *pcReturned) = 0; + + virtual HRESULT __stdcall Begin_Push( + BYTE *buf, + ULONG cSent) = 0; + + virtual HRESULT __stdcall Finish_Push( void) = 0; + + }; +# 6280 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IPipeLong; + + + + struct __declspec(uuid("DB2F3ACC-2F86-11d1-8E04-00C04FB9989A")) __declspec(novtable) + IPipeLong : public IUnknown + { + public: + virtual HRESULT __stdcall Pull( + LONG *buf, + ULONG cRequest, + ULONG *pcReturned) = 0; + + virtual HRESULT __stdcall Push( + LONG *buf, + ULONG cSent) = 0; + + }; +# 6376 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_AsyncIPipeLong; + + + + struct __declspec(uuid("DB2F3ACD-2F86-11d1-8E04-00C04FB9989A")) __declspec(novtable) + AsyncIPipeLong : public IUnknown + { + public: + virtual HRESULT __stdcall Begin_Pull( + ULONG cRequest) = 0; + + virtual HRESULT __stdcall Finish_Pull( + LONG *buf, + ULONG *pcReturned) = 0; + + virtual HRESULT __stdcall Begin_Push( + LONG *buf, + ULONG cSent) = 0; + + virtual HRESULT __stdcall Finish_Push( void) = 0; + + }; +# 6488 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IPipeDouble; + + + + struct __declspec(uuid("DB2F3ACE-2F86-11d1-8E04-00C04FB9989A")) __declspec(novtable) + IPipeDouble : public IUnknown + { + public: + virtual HRESULT __stdcall Pull( + DOUBLE *buf, + ULONG cRequest, + ULONG *pcReturned) = 0; + + virtual HRESULT __stdcall Push( + DOUBLE *buf, + ULONG cSent) = 0; + + }; +# 6584 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_AsyncIPipeDouble; + + + + struct __declspec(uuid("DB2F3ACF-2F86-11d1-8E04-00C04FB9989A")) __declspec(novtable) + AsyncIPipeDouble : public IUnknown + { + public: + virtual HRESULT __stdcall Begin_Pull( + ULONG cRequest) = 0; + + virtual HRESULT __stdcall Finish_Pull( + DOUBLE *buf, + ULONG *pcReturned) = 0; + + virtual HRESULT __stdcall Begin_Push( + DOUBLE *buf, + ULONG cSent) = 0; + + virtual HRESULT __stdcall Finish_Push( void) = 0; + + }; +# 7162 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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; + +typedef +enum _APTTYPE + { + APTTYPE_CURRENT = -1, + APTTYPE_STA = 0, + APTTYPE_MTA = 1, + APTTYPE_NA = 2, + APTTYPE_MAINSTA = 3 + } APTTYPE; + + + + + +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; +# 7209 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IComThreadingInfo; + + + + struct __declspec(uuid("000001ce-0000-0000-C000-000000000046")) __declspec(novtable) + IComThreadingInfo : public IUnknown + { + public: + virtual HRESULT __stdcall GetCurrentApartmentType( + + APTTYPE *pAptType) = 0; + + virtual HRESULT __stdcall GetCurrentThreadType( + + THDTYPE *pThreadType) = 0; + + virtual HRESULT __stdcall GetCurrentLogicalThreadId( + + GUID *pguidLogicalThreadId) = 0; + + virtual HRESULT __stdcall SetCurrentLogicalThreadId( + + const GUID & rguid) = 0; + + }; +# 7327 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IProcessInitControl; + + + + struct __declspec(uuid("72380d55-8d2b-43a3-8513-2b6ef31434e9")) __declspec(novtable) + IProcessInitControl : public IUnknown + { + public: + virtual HRESULT __stdcall ResetInitializerTimeout( + DWORD dwSecondsRemaining) = 0; + + }; +# 7407 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IFastRundown; + + + + struct __declspec(uuid("00000040-0000-0000-C000-000000000046")) __declspec(novtable) + IFastRundown : public IUnknown + { + public: + }; +# 7473 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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_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; +# 7500 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const IID IID_IMarshalingStream; + + + + struct __declspec(uuid("D8F2F5E6-6102-4863-9F26-389A4676EFDE")) __declspec(novtable) + IMarshalingStream : public IStream + { + public: + virtual HRESULT __stdcall GetMarshalingContextAttribute( + CO_MARSHALING_CONTEXT_ATTRIBUTES attribute, + ULONG_PTR *pAttributeValue) = 0; + + }; +# 7686 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +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; +# 7696 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" + extern "C" const IID IID_IAgileReference; + extern "C++" + { + struct __declspec(uuid("C03F6A43-65A4-9818-987E-E0B810D2A6F2")) __declspec(novtable) + IAgileReference : public IUnknown + { + public: + virtual HRESULT __stdcall Resolve( + const IID & riid, + void **ppvObjectReference) = 0; + + template + HRESULT + + + + __stdcall + + Resolve( Q** pp) + { + return Resolve(__uuidof(Q), (void **)pp); + } + + }; + } +# 7806 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidlbase.h" +extern "C" const GUID IID_ICallbackWithNoReentrancyToApplicationSTA; + + + + + + +#pragma warning(pop) + + + + + + +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; + + + + HRESULT __stdcall IEnumUnknown_Next_Proxy( + IEnumUnknown * This, + + ULONG celt, + + IUnknown **rgelt, + + ULONG *pceltFetched); + + + HRESULT __stdcall IEnumUnknown_Next_Stub( + IEnumUnknown * This, + ULONG celt, + IUnknown **rgelt, + ULONG *pceltFetched); + + HRESULT __stdcall IEnumString_Next_Proxy( + IEnumString * This, + ULONG celt, + + LPOLESTR *rgelt, + + ULONG *pceltFetched); + + + HRESULT __stdcall IEnumString_Next_Stub( + IEnumString * This, + ULONG celt, + LPOLESTR *rgelt, + ULONG *pceltFetched); + + HRESULT __stdcall ISequentialStream_Read_Proxy( + ISequentialStream * This, + + void *pv, + + ULONG cb, + + ULONG *pcbRead); + + + HRESULT __stdcall ISequentialStream_Read_Stub( + ISequentialStream * This, + byte *pv, + ULONG cb, + ULONG *pcbRead); + + HRESULT __stdcall ISequentialStream_Write_Proxy( + ISequentialStream * This, + + const void *pv, + + ULONG cb, + + ULONG *pcbWritten); + + + HRESULT __stdcall ISequentialStream_Write_Stub( + ISequentialStream * This, + const byte *pv, + ULONG cb, + ULONG *pcbWritten); + + HRESULT __stdcall IStream_Seek_Proxy( + IStream * This, + LARGE_INTEGER dlibMove, + DWORD dwOrigin, + + ULARGE_INTEGER *plibNewPosition); + + + HRESULT __stdcall IStream_Seek_Stub( + IStream * This, + LARGE_INTEGER dlibMove, + DWORD dwOrigin, + ULARGE_INTEGER *plibNewPosition); + + HRESULT __stdcall IStream_CopyTo_Proxy( + IStream * This, + + IStream *pstm, + ULARGE_INTEGER cb, + + ULARGE_INTEGER *pcbRead, + + ULARGE_INTEGER *pcbWritten); + + + HRESULT __stdcall IStream_CopyTo_Stub( + IStream * This, + IStream *pstm, + ULARGE_INTEGER cb, + ULARGE_INTEGER *pcbRead, + ULARGE_INTEGER *pcbWritten); + + + + + + +} +# 408 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" 2 + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/guiddef.h" 1 +# 410 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" 2 + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\cguid.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\cguid.h" +#pragma warning(push) + +#pragma warning(disable: 4001) + + + +extern "C" { + + + + + +extern const IID GUID_NULL; +# 42 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\cguid.h" +extern const IID CATID_MARSHALER; + + +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; + + + + + + + +extern const CLSID CLSID_GlobalOptions; +extern const CLSID CLSID_StdGlobalInterfaceTable; + + + + + + + +extern const CLSID CLSID_ComBinding; +extern const CLSID CLSID_StdEvent; +extern const CLSID CLSID_ManualResetEvent; +extern const CLSID CLSID_SynchronizeContainer; + + +extern const CLSID CLSID_AddrControl; + + + +extern const CLSID CLSID_ContextSwitcher; +# 117 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\cguid.h" +extern const CLSID CLSID_CCDFormKrnl; +extern const CLSID CLSID_CCDPropertyPage; +extern const CLSID CLSID_CCDFormDialog; + + + + +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; + + + + +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; + + + + + + + +extern const CLSID CLSID_InProcFreeMarshaler; + + + + + + + +extern const CLSID CLSID_Picture_Metafile; +extern const CLSID CLSID_Picture_EnhMetafile; +extern const CLSID CLSID_Picture_Dib; + + + + +extern const GUID GUID_TRISTATE; + + + + + +} + + + + +#pragma warning(pop) +# 414 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" 2 +# 426 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoGetMalloc( + DWORD dwMemContext, + LPMALLOC * ppMalloc + ); +# 440 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CreateStreamOnHGlobal( + HGLOBAL hGlobal, + BOOL fDeleteOnRelease, + LPSTREAM * ppstm + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +GetHGlobalFromStream( + LPSTREAM pstm, + HGLOBAL * phglobal + ); + + + + +extern "C" __declspec(dllimport) void __stdcall +CoUninitialize( + void + ); +# 470 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +extern "C" __declspec(dllimport) DWORD __stdcall +CoGetCurrentProcess( + void + ); +# 486 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoInitializeEx( + LPVOID pvReserved, + DWORD dwCoInit + ); +# 500 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +extern "C" __declspec(dllimport) HRESULT __stdcall +CoGetCallerTID( + LPDWORD lpdwTID + ); +# 514 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +extern "C" __declspec(dllimport) HRESULT __stdcall +CoGetCurrentLogicalThreadId( + GUID * pguid + ); +# 532 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoGetContextToken( + ULONG_PTR * pToken + ); +# 545 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoGetDefaultContext( + APTTYPE aptType, + const IID & riid, + void ** ppv + ); +# 567 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoGetApartmentType( + APTTYPE * pAptType, + APTTYPEQUALIFIER * pAptQualifier + ); +# 588 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +typedef struct tagServerInformation +{ + DWORD dwServerPid; + DWORD dwServerTid; + UINT64 ui64ServerAddress; +} ServerInformation, *PServerInformation; +# 602 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoDecodeProxy( + DWORD dwClientPid, + UINT64 ui64ProxyAddress, + PServerInformation pServerInformation + ); +# 617 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +struct CO_MTA_USAGE_COOKIE__{int unused;}; typedef struct CO_MTA_USAGE_COOKIE__ *CO_MTA_USAGE_COOKIE; +# 626 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoIncrementMTAUsage( + CO_MTA_USAGE_COOKIE * pCookie + ); + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoDecrementMTAUsage( + CO_MTA_USAGE_COOKIE Cookie + ); + + +extern "C" __declspec(dllimport) HRESULT __stdcall +CoAllowUnmarshalerCLSID( + const IID & clsid + ); +# 652 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoGetObjectContext( + const IID & riid, + LPVOID * ppv + ); +# 668 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoGetClassObject( + const IID & rclsid, + DWORD dwClsContext, + LPVOID pvReserved, + const IID & riid, + LPVOID * ppv + ); +# 684 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoRegisterClassObject( + const IID & rclsid, + LPUNKNOWN pUnk, + DWORD dwClsContext, + DWORD flags, + LPDWORD lpdwRegister + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall +CoRevokeClassObject( + DWORD dwRegister + ); + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoResumeClassObjects( + void + ); + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoSuspendClassObjects( + void + ); +# 716 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +extern "C" __declspec(dllimport) ULONG __stdcall +CoAddRefServerProcess( + void + ); + + +extern "C" __declspec(dllimport) ULONG __stdcall +CoReleaseServerProcess( + void + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoGetPSClsid( + const IID & riid, + CLSID * pClsid + ); + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoRegisterPSClsid( + const IID & riid, + const IID & rclsid + ); + + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoRegisterSurrogate( + LPSURROGATE pSurrogate + ); +# 757 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoGetMarshalSizeMax( + ULONG * pulSize, + const IID & riid, + LPUNKNOWN pUnk, + DWORD dwDestContext, + LPVOID pvDestContext, + DWORD mshlflags + ); + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoMarshalInterface( + LPSTREAM pStm, + const IID & riid, + LPUNKNOWN pUnk, + DWORD dwDestContext, + LPVOID pvDestContext, + DWORD mshlflags + ); + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoUnmarshalInterface( + LPSTREAM pStm, + const IID & riid, + LPVOID * ppv + ); +# 792 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +extern "C" __declspec(dllimport) HRESULT __stdcall +CoMarshalHresult( + LPSTREAM pstm, + HRESULT hresult + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall +CoUnmarshalHresult( + LPSTREAM pstm, + HRESULT * phresult + ); +# 812 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoReleaseMarshalData( + LPSTREAM pStm + ); + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoDisconnectObject( + LPUNKNOWN pUnk, + DWORD dwReserved + ); +# 831 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoLockObjectExternal( + LPUNKNOWN pUnk, + BOOL fLock, + BOOL fLastUnlockReleases + ); +# 846 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoGetStandardMarshal( + const IID & riid, + LPUNKNOWN pUnk, + DWORD dwDestContext, + LPVOID pvDestContext, + DWORD mshlflags, + LPMARSHAL * ppMarshal + ); +# 865 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoGetStdMarshalEx( + LPUNKNOWN pUnkOuter, + DWORD smexflags, + LPUNKNOWN * ppUnkInner + ); +# 881 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +typedef enum tagSTDMSHLFLAGS +{ + SMEXF_SERVER = 0x01, + SMEXF_HANDLER = 0x02 +} STDMSHLFLAGS; +# 895 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +extern "C" __declspec(dllimport) BOOL __stdcall +CoIsHandlerConnected( + LPUNKNOWN pUnk + ); +# 910 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoMarshalInterThreadInterfaceInStream( + const IID & riid, + LPUNKNOWN pUnk, + LPSTREAM * ppStm + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoGetInterfaceAndReleaseStream( + LPSTREAM pStm, + const IID & iid, + LPVOID * ppv + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoCreateFreeThreadedMarshaler( + LPUNKNOWN punkOuter, + LPUNKNOWN * ppunkMarshal + ); + + +extern "C" __declspec(dllimport) void __stdcall +CoFreeUnusedLibraries( + void + ); + + + +extern "C" __declspec(dllimport) void __stdcall +CoFreeUnusedLibrariesEx( + DWORD dwUnloadDelay, + DWORD dwReserved + ); +# 958 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoDisconnectContext( + DWORD dwTimeout + ); +# 978 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoInitializeSecurity( + PSECURITY_DESCRIPTOR pSecDesc, + LONG cAuthSvc, + SOLE_AUTHENTICATION_SERVICE * asAuthSvc, + void * pReserved1, + DWORD dwAuthnLevel, + DWORD dwImpLevel, + void * pAuthList, + DWORD dwCapabilities, + void * pReserved3 + ); +# 999 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoGetCallContext( + const IID & riid, + void ** ppInterface + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoQueryProxyBlanket( + IUnknown * pProxy, + DWORD * pwAuthnSvc, + DWORD * pAuthzSvc, + LPOLESTR * pServerPrincName, + DWORD * pAuthnLevel, + DWORD * pImpLevel, + RPC_AUTH_IDENTITY_HANDLE * pAuthInfo, + DWORD * pCapabilites + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoSetProxyBlanket( + IUnknown * pProxy, + DWORD dwAuthnSvc, + DWORD dwAuthzSvc, + OLECHAR * pServerPrincName, + DWORD dwAuthnLevel, + DWORD dwImpLevel, + RPC_AUTH_IDENTITY_HANDLE pAuthInfo, + DWORD dwCapabilities + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoCopyProxy( + IUnknown * pProxy, + IUnknown ** ppCopy + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoQueryClientBlanket( + DWORD * pAuthnSvc, + DWORD * pAuthzSvc, + LPOLESTR * pServerPrincName, + DWORD * pAuthnLevel, + DWORD * pImpLevel, + RPC_AUTHZ_HANDLE * pPrivs, + DWORD * pCapabilities + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoImpersonateClient( + void + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoRevertToSelf( + void + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoQueryAuthenticationServices( + DWORD * pcAuthSvc, + SOLE_AUTHENTICATION_SERVICE ** asAuthSvc + ); +# 1077 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoSwitchCallContext( + IUnknown * pNewObject, + IUnknown ** ppOldObject + ); +# 1102 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoCreateInstance( + const IID & rclsid, + LPUNKNOWN pUnkOuter, + DWORD dwClsContext, + const IID & riid, + LPVOID * ppv + ); + + + + + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoCreateInstanceEx( + const IID & Clsid, + IUnknown * punkOuter, + DWORD dwClsCtx, + COSERVERINFO * pServerInfo, + DWORD dwCount, + MULTI_QI * pResults + ); + + + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +CoRegisterActivationFilter( + IActivationFilter * pActivationFilter + ); +# 1150 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoCreateInstanceFromApp( + const IID & Clsid, + IUnknown * punkOuter, + DWORD dwClsCtx, + PVOID reserved, + DWORD dwCount, + MULTI_QI * pResults + ); +# 1224 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoGetCancelObject( + DWORD dwThreadId, + const IID & iid, + void ** ppUnk + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoSetCancelObject( + IUnknown * pUnk + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoCancelCall( + DWORD dwThreadId, + ULONG ulTimeout + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoTestCancel( + void + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoEnableCallCancellation( + LPVOID pReserved + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoDisableCallCancellation( + LPVOID pReserved + ); +# 1274 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +StringFromCLSID( + const IID & rclsid, + LPOLESTR * lplpsz + ); + + extern "C" __declspec(dllimport) HRESULT __stdcall +CLSIDFromString( + LPCOLESTR lpsz, + LPCLSID pclsid + ); + + extern "C" __declspec(dllimport) HRESULT __stdcall +StringFromIID( + const IID & rclsid, + LPOLESTR * lplpsz + ); + + extern "C" __declspec(dllimport) HRESULT __stdcall +IIDFromString( + LPCOLESTR lpsz, + LPIID lpiid + ); +# 1306 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +ProgIDFromCLSID( + const IID & clsid, + LPOLESTR * lplpszProgID + ); + + extern "C" __declspec(dllimport) HRESULT __stdcall +CLSIDFromProgID( + LPCOLESTR lpszProgID, + LPCLSID lpclsid + ); +# 1326 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) int __stdcall +StringFromGUID2( + const GUID & rguid, + LPOLESTR lpsz, + int cchMax + ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall +CoCreateGuid( + GUID * pguid + ); + + + + +typedef struct tagPROPVARIANT PROPVARIANT; + + +extern "C" __declspec(dllimport) HRESULT __stdcall +PropVariantCopy( + PROPVARIANT * pvarDest, + const PROPVARIANT * pvarSrc + ); + + +extern "C" __declspec(dllimport) HRESULT __stdcall +PropVariantClear( + PROPVARIANT * pvar + ); + + +extern "C" __declspec(dllimport) HRESULT __stdcall +FreePropVariantArray( + ULONG cVariants, + PROPVARIANT * rgvars + ); +# 1388 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoWaitForMultipleHandles( + DWORD dwFlags, + DWORD dwTimeout, + ULONG cHandles, + LPHANDLE pHandles, + LPDWORD lpdwindex + ); + + + + +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; + + + + +typedef enum CWMO_FLAGS +{ + CWMO_DEFAULT = 0, + CWMO_DISPATCH_CALLS = 1, + CWMO_DISPATCH_WINDOW_MESSAGES = 2, +} CWMO_FLAGS; + +extern "C" __declspec(dllimport) HRESULT __stdcall +CoWaitForMultipleObjects( + DWORD dwFlags, + DWORD dwTimeout, + ULONG cHandles, + const HANDLE * pHandles, + LPDWORD lpdwindex + ); +# 1443 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoGetTreatAsClass( + const IID & clsidOld, + LPCLSID pClsidNew + ); +# 1462 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" + extern "C" __declspec(dllimport) HRESULT __stdcall +CoInvalidateRemoteMachineBindings( + LPOLESTR pszMachineName + ); +# 1480 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +enum AgileReferenceOptions +{ + AGILEREFERENCE_DEFAULT = 0, + AGILEREFERENCE_DELAYEDMARSHAL = 1, +}; + + + + + extern "C" __declspec(dllimport) HRESULT __stdcall +RoGetAgileReference( + enum AgileReferenceOptions options, + const IID & riid, + IUnknown * pUnk, + IAgileReference ** ppAgileReference + ); +# 1514 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" +typedef HRESULT (__stdcall * LPFNGETCLASSOBJECT) (const IID &, const IID &, LPVOID *); +typedef HRESULT (__stdcall * LPFNCANUNLOADNOW)(void); + + +extern "C" HRESULT __stdcall DllGetClassObject( const IID & rclsid, const IID & riid, LPVOID * ppv); + + +extern "C" HRESULT __stdcall DllCanUnloadNow(void); + + + +extern "C" __declspec(dllimport) LPVOID __stdcall +CoTaskMemAlloc( + SIZE_T cb + ); + +extern "C" __declspec(dllimport) LPVOID __stdcall +CoTaskMemRealloc( + LPVOID pv, + SIZE_T cb + ); + +extern "C" __declspec(dllimport) void __stdcall +CoTaskMemFree( + LPVOID pv + ); + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 1543 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\combaseapi.h" 2 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\coml2api.h" 1 +# 40 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\coml2api.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" 1 +# 443 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +typedef struct IMallocSpy IMallocSpy; + + + + + + +typedef struct IBindCtx IBindCtx; + + + + + + +typedef struct IEnumMoniker IEnumMoniker; + + + + + + +typedef struct IRunnableObject IRunnableObject; + + + + + + +typedef struct IRunningObjectTable IRunningObjectTable; + + + + + + +typedef struct IPersist IPersist; + + + + + + +typedef struct IPersistStream IPersistStream; + + + + + + +typedef struct IMoniker IMoniker; + + + + + + +typedef struct IROTData IROTData; + + + + + + +typedef struct IEnumSTATSTG IEnumSTATSTG; + + + + + + +typedef struct IStorage IStorage; + + + + + + +typedef struct IPersistFile IPersistFile; + + + + + + +typedef struct IPersistStorage IPersistStorage; + + + + + + +typedef struct ILockBytes ILockBytes; + + + + + + +typedef struct IEnumFORMATETC IEnumFORMATETC; + + + + + + +typedef struct IEnumSTATDATA IEnumSTATDATA; + + + + + + +typedef struct IRootStorage IRootStorage; + + + + + + +typedef struct IAdviseSink IAdviseSink; + + + + + + +typedef struct AsyncIAdviseSink AsyncIAdviseSink; + + + + + + +typedef struct IAdviseSink2 IAdviseSink2; + + + + + + +typedef struct AsyncIAdviseSink2 AsyncIAdviseSink2; + + + + + + +typedef struct IDataObject IDataObject; + + + + + + +typedef struct IDataAdviseHolder IDataAdviseHolder; + + + + + + +typedef struct IMessageFilter IMessageFilter; + + + + + + +typedef struct IClassActivator IClassActivator; + + + + + + +typedef struct IFillLockBytes IFillLockBytes; + + + + + + +typedef struct IProgressNotify IProgressNotify; + + + + + + +typedef struct ILayoutStorage ILayoutStorage; + + + + + + +typedef struct IBlockingLock IBlockingLock; + + + + + + +typedef struct ITimeAndNoticeControl ITimeAndNoticeControl; + + + + + + +typedef struct IOplockStorage IOplockStorage; + + + + + + +typedef struct IDirectWriterLock IDirectWriterLock; + + + + + + +typedef struct IUrlMon IUrlMon; + + + + + + +typedef struct IForegroundTransfer IForegroundTransfer; + + + + + + +typedef struct IThumbnailExtractor IThumbnailExtractor; + + + + + + +typedef struct IDummyHICONIncluder IDummyHICONIncluder; + + + + + + +typedef struct IProcessLock IProcessLock; + + + + + + +typedef struct ISurrogateService ISurrogateService; + + + + + + +typedef struct IInitializeSpy IInitializeSpy; + + + + + + +typedef struct IApartmentShutdown IApartmentShutdown; + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/unknwn.h" 1 +# 67 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/unknwn.h" +extern "C"{ +# 88 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/unknwn.h" +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; +# 285 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/unknwn.h" +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; +# 421 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/unknwn.h" +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; +# 558 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/unknwn.h" +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; + + + + HRESULT __stdcall IClassFactory_CreateInstance_Proxy( + IClassFactory * This, + + IUnknown *pUnkOuter, + + const IID & riid, + + void **ppvObject); + + + HRESULT __stdcall IClassFactory_CreateInstance_Stub( + IClassFactory * This, + const IID & riid, + IUnknown **ppvObject); + + HRESULT __stdcall IClassFactory_LockServer_Proxy( + IClassFactory * This, + BOOL fLock); + + + HRESULT __stdcall IClassFactory_LockServer_Stub( + IClassFactory * This, + BOOL fLock); + + + + + + +} +# 722 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" 2 + + + +extern "C"{ +# 757 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +#pragma warning(push) +#pragma warning(disable: 4820) + +#pragma warning(disable: 4201) +# 790 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +#pragma warning(push) + + + +#pragma warning(disable: 4820) + +#pragma warning(disable: 4201) +# 8126 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +#pragma warning(pop) +# 8144 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; + + + + + + + +typedef IMallocSpy *LPMALLOCSPY; + + +extern "C" const IID IID_IMallocSpy; + + + + struct __declspec(uuid("0000001d-0000-0000-C000-000000000046")) __declspec(novtable) + IMallocSpy : public IUnknown + { + public: + virtual SIZE_T __stdcall PreAlloc( + + SIZE_T cbRequest) = 0; + + virtual void *__stdcall PostAlloc( + + void *pActual) = 0; + + virtual void *__stdcall PreFree( + + void *pRequest, + + BOOL fSpyed) = 0; + + virtual void __stdcall PostFree( + + BOOL fSpyed) = 0; + + virtual SIZE_T __stdcall PreRealloc( + + void *pRequest, + + SIZE_T cbRequest, + + void **ppNewRequest, + + BOOL fSpyed) = 0; + + virtual void *__stdcall PostRealloc( + + void *pActual, + + BOOL fSpyed) = 0; + + virtual void *__stdcall PreGetSize( + + void *pRequest, + + BOOL fSpyed) = 0; + + virtual SIZE_T __stdcall PostGetSize( + + SIZE_T cbActual, + + BOOL fSpyed) = 0; + + virtual void *__stdcall PreDidAlloc( + + void *pRequest, + + BOOL fSpyed) = 0; + + virtual int __stdcall PostDidAlloc( + + void *pRequest, + + BOOL fSpyed, + + int fActual) = 0; + + virtual void __stdcall PreHeapMinimize( void) = 0; + + virtual void __stdcall PostHeapMinimize( void) = 0; + + }; +# 8404 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; + + + + + + + +typedef IBindCtx *LPBC; + +typedef IBindCtx *LPBINDCTX; + + + typedef struct tagBIND_OPTS { + DWORD cbStruct; + DWORD grfFlags; + DWORD grfMode; + DWORD dwTickCountDeadline; + } BIND_OPTS, * LPBIND_OPTS; +# 8437 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + typedef struct tagBIND_OPTS2 : tagBIND_OPTS { + DWORD dwTrackFlags; + DWORD dwClassContext; + LCID locale; + COSERVERINFO * pServerInfo; + } BIND_OPTS2, * LPBIND_OPTS2; +# 8461 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + typedef struct tagBIND_OPTS3 : tagBIND_OPTS2 { + HWND hwnd; + } BIND_OPTS3, * LPBIND_OPTS3; +# 8481 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +typedef +enum tagBIND_FLAGS + { + BIND_MAYBOTHERUSER = 1, + BIND_JUSTTESTEXISTENCE = 2 + } BIND_FLAGS; + + +extern "C" const IID IID_IBindCtx; + + + + struct __declspec(uuid("0000000e-0000-0000-C000-000000000046")) __declspec(novtable) + IBindCtx : public IUnknown + { + public: + virtual HRESULT __stdcall RegisterObjectBound( + IUnknown *punk) = 0; + + virtual HRESULT __stdcall RevokeObjectBound( + IUnknown *punk) = 0; + + virtual HRESULT __stdcall ReleaseBoundObjects( void) = 0; + + virtual HRESULT __stdcall SetBindOptions( + + BIND_OPTS *pbindopts) = 0; + + virtual HRESULT __stdcall GetBindOptions( + + BIND_OPTS *pbindopts) = 0; + + virtual HRESULT __stdcall GetRunningObjectTable( + IRunningObjectTable **pprot) = 0; + + virtual HRESULT __stdcall RegisterObjectParam( + LPOLESTR pszKey, + IUnknown *punk) = 0; + + virtual HRESULT __stdcall GetObjectParam( + LPOLESTR pszKey, + IUnknown **ppunk) = 0; + + virtual HRESULT __stdcall EnumObjectParam( + IEnumString **ppenum) = 0; + + virtual HRESULT __stdcall RevokeObjectParam( + LPOLESTR pszKey) = 0; + + }; +# 8654 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + HRESULT __stdcall IBindCtx_RemoteSetBindOptions_Proxy( + IBindCtx * This, + BIND_OPTS2 *pbindopts); + + +void __stdcall IBindCtx_RemoteSetBindOptions_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IBindCtx_RemoteGetBindOptions_Proxy( + IBindCtx * This, + BIND_OPTS2 *pbindopts); + + +void __stdcall IBindCtx_RemoteGetBindOptions_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 8688 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +typedef IEnumMoniker *LPENUMMONIKER; + + +extern "C" const IID IID_IEnumMoniker; + + + + struct __declspec(uuid("00000102-0000-0000-C000-000000000046")) __declspec(novtable) + IEnumMoniker : public IUnknown + { + public: + virtual HRESULT __stdcall Next( + ULONG celt, + + IMoniker **rgelt, + + ULONG *pceltFetched) = 0; + + virtual HRESULT __stdcall Skip( + ULONG celt) = 0; + + virtual HRESULT __stdcall Reset( void) = 0; + + virtual HRESULT __stdcall Clone( + IEnumMoniker **ppenum) = 0; + + }; +# 8796 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + HRESULT __stdcall IEnumMoniker_RemoteNext_Proxy( + IEnumMoniker * This, + ULONG celt, + IMoniker **rgelt, + ULONG *pceltFetched); + + +void __stdcall IEnumMoniker_RemoteNext_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 8823 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; + + + + + + + +typedef IRunnableObject *LPRUNNABLEOBJECT; + + +extern "C" const IID IID_IRunnableObject; + + + + struct __declspec(uuid("00000126-0000-0000-C000-000000000046")) __declspec(novtable) + IRunnableObject : public IUnknown + { + public: + virtual HRESULT __stdcall GetRunningClass( + LPCLSID lpClsid) = 0; + + virtual HRESULT __stdcall Run( + LPBINDCTX pbc) = 0; + + virtual BOOL __stdcall IsRunning( void) = 0; + + virtual HRESULT __stdcall LockRunning( + BOOL fLock, + BOOL fLastUnlockCloses) = 0; + + virtual HRESULT __stdcall SetContainedObject( + BOOL fContained) = 0; + + }; +# 8944 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + HRESULT __stdcall IRunnableObject_RemoteIsRunning_Proxy( + IRunnableObject * This); + + +void __stdcall IRunnableObject_RemoteIsRunning_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 8965 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +typedef IRunningObjectTable *LPRUNNINGOBJECTTABLE; + + +extern "C" const IID IID_IRunningObjectTable; + + + + struct __declspec(uuid("00000010-0000-0000-C000-000000000046")) __declspec(novtable) + IRunningObjectTable : public IUnknown + { + public: + virtual HRESULT __stdcall Register( + DWORD grfFlags, + IUnknown *punkObject, + IMoniker *pmkObjectName, + DWORD *pdwRegister) = 0; + + virtual HRESULT __stdcall Revoke( + DWORD dwRegister) = 0; + + virtual HRESULT __stdcall IsRunning( + IMoniker *pmkObjectName) = 0; + + virtual HRESULT __stdcall GetObjectW( + IMoniker *pmkObjectName, + IUnknown **ppunkObject) = 0; + + virtual HRESULT __stdcall NoteChangeTime( + DWORD dwRegister, + FILETIME *pfiletime) = 0; + + virtual HRESULT __stdcall GetTimeOfLastChange( + IMoniker *pmkObjectName, + FILETIME *pfiletime) = 0; + + virtual HRESULT __stdcall EnumRunning( + IEnumMoniker **ppenumMoniker) = 0; + + }; +# 9122 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; + + + + + + + +typedef IPersist *LPPERSIST; + + +extern "C" const IID IID_IPersist; + + + + struct __declspec(uuid("0000010c-0000-0000-C000-000000000046")) __declspec(novtable) + IPersist : public IUnknown + { + public: + virtual HRESULT __stdcall GetClassID( + CLSID *pClassID) = 0; + + }; +# 9213 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +typedef IPersistStream *LPPERSISTSTREAM; + + +extern "C" const IID IID_IPersistStream; + + + + struct __declspec(uuid("00000109-0000-0000-C000-000000000046")) __declspec(novtable) + IPersistStream : public IPersist + { + public: + virtual HRESULT __stdcall IsDirty( void) = 0; + + virtual HRESULT __stdcall Load( + IStream *pStm) = 0; + + virtual HRESULT __stdcall Save( + IStream *pStm, + BOOL fClearDirty) = 0; + + virtual HRESULT __stdcall GetSizeMax( + ULARGE_INTEGER *pcbSize) = 0; + + }; +# 9333 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +typedef 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 +enum tagMKREDUCE + { + MKRREDUCE_ONE = ( 3 << 16 ) , + MKRREDUCE_TOUSER = ( 2 << 16 ) , + MKRREDUCE_THROUGHUSER = ( 1 << 16 ) , + MKRREDUCE_ALL = 0 + } MKRREDUCE; + + +extern "C" const IID IID_IMoniker; + + + + struct __declspec(uuid("0000000f-0000-0000-C000-000000000046")) __declspec(novtable) + IMoniker : public IPersistStream + { + public: + virtual HRESULT __stdcall BindToObject( + + IBindCtx *pbc, + + IMoniker *pmkToLeft, + + const IID & riidResult, + + void **ppvResult) = 0; + + virtual HRESULT __stdcall BindToStorage( + + IBindCtx *pbc, + + IMoniker *pmkToLeft, + + const IID & riid, + + void **ppvObj) = 0; + + virtual HRESULT __stdcall Reduce( + IBindCtx *pbc, + DWORD dwReduceHowFar, + IMoniker **ppmkToLeft, + IMoniker **ppmkReduced) = 0; + + virtual HRESULT __stdcall ComposeWith( + IMoniker *pmkRight, + BOOL fOnlyIfNotGeneric, + IMoniker **ppmkComposite) = 0; + + virtual HRESULT __stdcall Enum( + BOOL fForward, + IEnumMoniker **ppenumMoniker) = 0; + + virtual HRESULT __stdcall IsEqual( + IMoniker *pmkOtherMoniker) = 0; + + virtual HRESULT __stdcall Hash( + DWORD *pdwHash) = 0; + + virtual HRESULT __stdcall IsRunning( + IBindCtx *pbc, + IMoniker *pmkToLeft, + IMoniker *pmkNewlyRunning) = 0; + + virtual HRESULT __stdcall GetTimeOfLastChange( + IBindCtx *pbc, + IMoniker *pmkToLeft, + FILETIME *pFileTime) = 0; + + virtual HRESULT __stdcall Inverse( + IMoniker **ppmk) = 0; + + virtual HRESULT __stdcall CommonPrefixWith( + IMoniker *pmkOther, + IMoniker **ppmkPrefix) = 0; + + virtual HRESULT __stdcall RelativePathTo( + IMoniker *pmkOther, + IMoniker **ppmkRelPath) = 0; + + virtual HRESULT __stdcall GetDisplayName( + IBindCtx *pbc, + IMoniker *pmkToLeft, + LPOLESTR *ppszDisplayName) = 0; + + virtual HRESULT __stdcall ParseDisplayName( + IBindCtx *pbc, + IMoniker *pmkToLeft, + LPOLESTR pszDisplayName, + ULONG *pchEaten, + IMoniker **ppmkOut) = 0; + + virtual HRESULT __stdcall IsSystemMoniker( + DWORD *pdwMksys) = 0; + + }; +# 9670 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + HRESULT __stdcall IMoniker_RemoteBindToObject_Proxy( + IMoniker * This, + IBindCtx *pbc, + IMoniker *pmkToLeft, + const IID & riidResult, + IUnknown **ppvResult); + + +void __stdcall IMoniker_RemoteBindToObject_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IMoniker_RemoteBindToStorage_Proxy( + IMoniker * This, + IBindCtx *pbc, + IMoniker *pmkToLeft, + const IID & riid, + IUnknown **ppvObj); + + +void __stdcall IMoniker_RemoteBindToStorage_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 9713 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; +# 9723 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_IROTData; + + + + struct __declspec(uuid("f29f6bc0-5021-11ce-aa15-00006901293f")) __declspec(novtable) + IROTData : public IUnknown + { + public: + virtual HRESULT __stdcall GetComparisonData( + byte *pbData, + ULONG cbMax, + ULONG *pcbData) = 0; + + }; +# 9809 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; + + + + + + + +typedef IEnumSTATSTG *LPENUMSTATSTG; + + +extern "C" const IID IID_IEnumSTATSTG; + + + + struct __declspec(uuid("0000000d-0000-0000-C000-000000000046")) __declspec(novtable) + IEnumSTATSTG : public IUnknown + { + public: + virtual HRESULT __stdcall Next( + ULONG celt, + + STATSTG *rgelt, + + ULONG *pceltFetched) = 0; + + virtual HRESULT __stdcall Skip( + ULONG celt) = 0; + + virtual HRESULT __stdcall Reset( void) = 0; + + virtual HRESULT __stdcall Clone( + IEnumSTATSTG **ppenum) = 0; + + }; +# 9926 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + HRESULT __stdcall IEnumSTATSTG_RemoteNext_Proxy( + IEnumSTATSTG * This, + ULONG celt, + STATSTG *rgelt, + ULONG *pceltFetched); + + +void __stdcall IEnumSTATSTG_RemoteNext_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 9950 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +typedef IStorage *LPSTORAGE; + +typedef struct tagRemSNB + { + ULONG ulCntStr; + ULONG ulCntChar; + OLECHAR rgString[ 1 ]; + } RemSNB; + +typedef RemSNB *wireSNB; + + +typedef LPOLESTR *SNB; + + + +extern "C" const IID IID_IStorage; + + + + struct __declspec(uuid("0000000b-0000-0000-C000-000000000046")) __declspec(novtable) + IStorage : public IUnknown + { + public: + virtual HRESULT __stdcall CreateStream( + const OLECHAR *pwcsName, + DWORD grfMode, + DWORD reserved1, + DWORD reserved2, + IStream **ppstm) = 0; + + virtual HRESULT __stdcall OpenStream( + + const OLECHAR *pwcsName, + + void *reserved1, + DWORD grfMode, + DWORD reserved2, + + IStream **ppstm) = 0; + + virtual HRESULT __stdcall CreateStorage( + const OLECHAR *pwcsName, + DWORD grfMode, + DWORD reserved1, + DWORD reserved2, + IStorage **ppstg) = 0; + + virtual HRESULT __stdcall OpenStorage( + const OLECHAR *pwcsName, + IStorage *pstgPriority, + DWORD grfMode, + SNB snbExclude, + DWORD reserved, + IStorage **ppstg) = 0; + + virtual HRESULT __stdcall CopyTo( + DWORD ciidExclude, + + const IID *rgiidExclude, + + SNB snbExclude, + + IStorage *pstgDest) = 0; + + virtual HRESULT __stdcall MoveElementTo( + const OLECHAR *pwcsName, + IStorage *pstgDest, + const OLECHAR *pwcsNewName, + DWORD grfFlags) = 0; + + virtual HRESULT __stdcall Commit( + DWORD grfCommitFlags) = 0; + + virtual HRESULT __stdcall Revert( void) = 0; + + virtual HRESULT __stdcall EnumElements( + + DWORD reserved1, + + void *reserved2, + + DWORD reserved3, + + IEnumSTATSTG **ppenum) = 0; + + virtual HRESULT __stdcall DestroyElement( + const OLECHAR *pwcsName) = 0; + + virtual HRESULT __stdcall RenameElement( + const OLECHAR *pwcsOldName, + const OLECHAR *pwcsNewName) = 0; + + virtual HRESULT __stdcall SetElementTimes( + const OLECHAR *pwcsName, + const FILETIME *pctime, + const FILETIME *patime, + const FILETIME *pmtime) = 0; + + virtual HRESULT __stdcall SetClass( + const IID & clsid) = 0; + + virtual HRESULT __stdcall SetStateBits( + DWORD grfStateBits, + DWORD grfMask) = 0; + + virtual HRESULT __stdcall Stat( + STATSTG *pstatstg, + DWORD grfStatFlag) = 0; + + }; +# 10257 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + HRESULT __stdcall IStorage_RemoteOpenStream_Proxy( + IStorage * This, + const OLECHAR *pwcsName, + ULONG cbReserved1, + byte *reserved1, + DWORD grfMode, + DWORD reserved2, + IStream **ppstm); + + +void __stdcall IStorage_RemoteOpenStream_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IStorage_RemoteCopyTo_Proxy( + IStorage * This, + DWORD ciidExclude, + const IID *rgiidExclude, + SNB snbExclude, + IStorage *pstgDest); + + +void __stdcall IStorage_RemoteCopyTo_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IStorage_RemoteEnumElements_Proxy( + IStorage * This, + DWORD reserved1, + ULONG cbReserved2, + byte *reserved2, + DWORD reserved3, + IEnumSTATSTG **ppenum); + + +void __stdcall IStorage_RemoteEnumElements_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 10318 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; + + + + + + + +typedef IPersistFile *LPPERSISTFILE; + + +extern "C" const IID IID_IPersistFile; + + + + struct __declspec(uuid("0000010b-0000-0000-C000-000000000046")) __declspec(novtable) + IPersistFile : public IPersist + { + public: + virtual HRESULT __stdcall IsDirty( void) = 0; + + virtual HRESULT __stdcall Load( + LPCOLESTR pszFileName, + DWORD dwMode) = 0; + + virtual HRESULT __stdcall Save( + LPCOLESTR pszFileName, + BOOL fRemember) = 0; + + virtual HRESULT __stdcall SaveCompleted( + LPCOLESTR pszFileName) = 0; + + virtual HRESULT __stdcall GetCurFile( + LPOLESTR *ppszFileName) = 0; + + }; +# 10459 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +typedef IPersistStorage *LPPERSISTSTORAGE; + + +extern "C" const IID IID_IPersistStorage; + + + + struct __declspec(uuid("0000010a-0000-0000-C000-000000000046")) __declspec(novtable) + IPersistStorage : public IPersist + { + public: + virtual HRESULT __stdcall IsDirty( void) = 0; + + virtual HRESULT __stdcall InitNew( + IStorage *pStg) = 0; + + virtual HRESULT __stdcall Load( + IStorage *pStg) = 0; + + virtual HRESULT __stdcall Save( + IStorage *pStgSave, + BOOL fSameAsLoad) = 0; + + virtual HRESULT __stdcall SaveCompleted( + IStorage *pStgNew) = 0; + + virtual HRESULT __stdcall HandsOffStorage( void) = 0; + + }; +# 10600 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; + + + + + + + +typedef ILockBytes *LPLOCKBYTES; + + +extern "C" const IID IID_ILockBytes; + + + + struct __declspec(uuid("0000000a-0000-0000-C000-000000000046")) __declspec(novtable) + ILockBytes : public IUnknown + { + public: + virtual HRESULT __stdcall ReadAt( + ULARGE_INTEGER ulOffset, + + void *pv, + ULONG cb, + + ULONG *pcbRead) = 0; + + virtual HRESULT __stdcall WriteAt( + ULARGE_INTEGER ulOffset, + + const void *pv, + ULONG cb, + + ULONG *pcbWritten) = 0; + + virtual HRESULT __stdcall Flush( void) = 0; + + virtual HRESULT __stdcall SetSize( + ULARGE_INTEGER cb) = 0; + + virtual HRESULT __stdcall LockRegion( + ULARGE_INTEGER libOffset, + ULARGE_INTEGER cb, + DWORD dwLockType) = 0; + + virtual HRESULT __stdcall UnlockRegion( + ULARGE_INTEGER libOffset, + ULARGE_INTEGER cb, + DWORD dwLockType) = 0; + + virtual HRESULT __stdcall Stat( + STATSTG *pstatstg, + DWORD grfStatFlag) = 0; + + }; +# 10769 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + HRESULT __stdcall ILockBytes_RemoteReadAt_Proxy( + ILockBytes * This, + ULARGE_INTEGER ulOffset, + byte *pv, + ULONG cb, + ULONG *pcbRead); + + +void __stdcall ILockBytes_RemoteReadAt_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ILockBytes_RemoteWriteAt_Proxy( + ILockBytes * This, + ULARGE_INTEGER ulOffset, + const byte *pv, + ULONG cb, + ULONG *pcbWritten); + + +void __stdcall ILockBytes_RemoteWriteAt_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 10809 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +typedef IEnumFORMATETC *LPENUMFORMATETC; + + +typedef struct tagDVTARGETDEVICE + { + DWORD tdSize; + WORD tdDriverNameOffset; + WORD tdDeviceNameOffset; + WORD tdPortNameOffset; + WORD tdExtDevmodeOffset; + BYTE tdData[ 1 ]; + } DVTARGETDEVICE; + + +typedef CLIPFORMAT *LPCLIPFORMAT; + +typedef struct tagFORMATETC + { + CLIPFORMAT cfFormat; + DVTARGETDEVICE *ptd; + DWORD dwAspect; + LONG lindex; + DWORD tymed; + } FORMATETC; + +typedef struct tagFORMATETC *LPFORMATETC; + + +extern "C" const IID IID_IEnumFORMATETC; + + + + struct __declspec(uuid("00000103-0000-0000-C000-000000000046")) __declspec(novtable) + IEnumFORMATETC : public IUnknown + { + public: + virtual HRESULT __stdcall Next( + ULONG celt, + + FORMATETC *rgelt, + + ULONG *pceltFetched) = 0; + + virtual HRESULT __stdcall Skip( + ULONG celt) = 0; + + virtual HRESULT __stdcall Reset( void) = 0; + + virtual HRESULT __stdcall Clone( + IEnumFORMATETC **ppenum) = 0; + + }; +# 10942 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + HRESULT __stdcall IEnumFORMATETC_RemoteNext_Proxy( + IEnumFORMATETC * This, + ULONG celt, + FORMATETC *rgelt, + ULONG *pceltFetched); + + +void __stdcall IEnumFORMATETC_RemoteNext_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 10966 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +typedef 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; + IAdviseSink *pAdvSink; + DWORD dwConnection; + } STATDATA; + +typedef STATDATA *LPSTATDATA; + + +extern "C" const IID IID_IEnumSTATDATA; + + + + struct __declspec(uuid("00000105-0000-0000-C000-000000000046")) __declspec(novtable) + IEnumSTATDATA : public IUnknown + { + public: + virtual HRESULT __stdcall Next( + ULONG celt, + + STATDATA *rgelt, + + ULONG *pceltFetched) = 0; + + virtual HRESULT __stdcall Skip( + ULONG celt) = 0; + + virtual HRESULT __stdcall Reset( void) = 0; + + virtual HRESULT __stdcall Clone( + IEnumSTATDATA **ppenum) = 0; + + }; +# 11096 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + HRESULT __stdcall IEnumSTATDATA_RemoteNext_Proxy( + IEnumSTATDATA * This, + ULONG celt, + STATDATA *rgelt, + ULONG *pceltFetched); + + +void __stdcall IEnumSTATDATA_RemoteNext_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 11120 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +typedef IRootStorage *LPROOTSTORAGE; + + +extern "C" const IID IID_IRootStorage; + + + + struct __declspec(uuid("00000012-0000-0000-C000-000000000046")) __declspec(novtable) + IRootStorage : public IUnknown + { + public: + virtual HRESULT __stdcall SwitchToFile( + LPOLESTR pszFile) = 0; + + }; +# 11202 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +typedef IAdviseSink *LPADVISESINK; + +typedef +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; + + + +#pragma warning(push) + +#pragma warning(disable: 4200) + +typedef struct tagRemSTGMEDIUM + { + DWORD tymed; + DWORD dwHandleType; + ULONG pData; + ULONG pUnkForRelease; + ULONG cbData; + byte data[ 1 ]; + } RemSTGMEDIUM; + + + +#pragma warning(pop) +# 11255 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +typedef struct tagSTGMEDIUM + { + DWORD tymed; + union + { + HBITMAP hBitmap; + HMETAFILEPICT hMetaFilePict; + HENHMETAFILE hEnhMetaFile; + HGLOBAL hGlobal; + LPOLESTR lpszFileName; + IStream *pstm; + IStorage *pstg; + + } ; + IUnknown *pUnkForRelease; + } uSTGMEDIUM; + + +typedef struct _GDI_OBJECT + { + DWORD ObjectType; + union __MIDL_IAdviseSink_0002 + { + wireHBITMAP hBitmap; + wireHPALETTE hPalette; + wireHGLOBAL hGeneric; + } u; + } GDI_OBJECT; + +typedef struct _userSTGMEDIUM + { + struct _STGMEDIUM_UNION + { + DWORD tymed; + union __MIDL_IAdviseSink_0003 + { + + wireHMETAFILEPICT hMetaFilePict; + wireHENHMETAFILE hHEnhMetaFile; + GDI_OBJECT *hGdiHandle; + wireHGLOBAL hGlobal; + LPOLESTR lpszFileName; + BYTE_BLOB *pstm; + BYTE_BLOB *pstg; + } u; + } ; + IUnknown *pUnkForRelease; + } userSTGMEDIUM; + +typedef userSTGMEDIUM *wireSTGMEDIUM; + +typedef uSTGMEDIUM STGMEDIUM; + +typedef userSTGMEDIUM *wireASYNC_STGMEDIUM; + +typedef STGMEDIUM ASYNC_STGMEDIUM; + +typedef STGMEDIUM *LPSTGMEDIUM; + +typedef struct _userFLAG_STGMEDIUM + { + LONG ContextFlags; + LONG fPassOwnership; + userSTGMEDIUM Stgmed; + } userFLAG_STGMEDIUM; + +typedef userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM; + +typedef struct _FLAG_STGMEDIUM + { + LONG ContextFlags; + LONG fPassOwnership; + STGMEDIUM Stgmed; + } FLAG_STGMEDIUM; + + +extern "C" const IID IID_IAdviseSink; + + + + struct __declspec(uuid("0000010f-0000-0000-C000-000000000046")) __declspec(novtable) + IAdviseSink : public IUnknown + { + public: + virtual void __stdcall OnDataChange( + + FORMATETC *pFormatetc, + + STGMEDIUM *pStgmed) = 0; + + virtual void __stdcall OnViewChange( + DWORD dwAspect, + LONG lindex) = 0; + + virtual void __stdcall OnRename( + + IMoniker *pmk) = 0; + + virtual void __stdcall OnSave( void) = 0; + + virtual void __stdcall OnClose( void) = 0; + + }; +# 11446 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + HRESULT __stdcall IAdviseSink_RemoteOnDataChange_Proxy( + IAdviseSink * This, + FORMATETC *pFormatetc, + ASYNC_STGMEDIUM *pStgmed); + + +void __stdcall IAdviseSink_RemoteOnDataChange_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAdviseSink_RemoteOnViewChange_Proxy( + IAdviseSink * This, + DWORD dwAspect, + LONG lindex); + + +void __stdcall IAdviseSink_RemoteOnViewChange_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAdviseSink_RemoteOnRename_Proxy( + IAdviseSink * This, + IMoniker *pmk); + + +void __stdcall IAdviseSink_RemoteOnRename_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAdviseSink_RemoteOnSave_Proxy( + IAdviseSink * This); + + +void __stdcall IAdviseSink_RemoteOnSave_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAdviseSink_RemoteOnClose_Proxy( + IAdviseSink * This); + + +void __stdcall IAdviseSink_RemoteOnClose_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 11517 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_AsyncIAdviseSink; + + + + struct __declspec(uuid("00000150-0000-0000-C000-000000000046")) __declspec(novtable) + AsyncIAdviseSink : public IUnknown + { + public: + virtual void __stdcall Begin_OnDataChange( + + FORMATETC *pFormatetc, + + STGMEDIUM *pStgmed) = 0; + + virtual void __stdcall Finish_OnDataChange( void) = 0; + + virtual void __stdcall Begin_OnViewChange( + DWORD dwAspect, + LONG lindex) = 0; + + virtual void __stdcall Finish_OnViewChange( void) = 0; + + virtual void __stdcall Begin_OnRename( + + IMoniker *pmk) = 0; + + virtual void __stdcall Finish_OnRename( void) = 0; + + virtual void __stdcall Begin_OnSave( void) = 0; + + virtual void __stdcall Finish_OnSave( void) = 0; + + virtual void __stdcall Begin_OnClose( void) = 0; + + virtual void __stdcall Finish_OnClose( void) = 0; + + }; +# 11672 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + HRESULT __stdcall AsyncIAdviseSink_Begin_RemoteOnDataChange_Proxy( + AsyncIAdviseSink * This, + FORMATETC *pFormatetc, + ASYNC_STGMEDIUM *pStgmed); + + +void __stdcall AsyncIAdviseSink_Begin_RemoteOnDataChange_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall AsyncIAdviseSink_Finish_RemoteOnDataChange_Proxy( + AsyncIAdviseSink * This); + + +void __stdcall AsyncIAdviseSink_Finish_RemoteOnDataChange_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall AsyncIAdviseSink_Begin_RemoteOnViewChange_Proxy( + AsyncIAdviseSink * This, + DWORD dwAspect, + LONG lindex); + + +void __stdcall AsyncIAdviseSink_Begin_RemoteOnViewChange_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall AsyncIAdviseSink_Finish_RemoteOnViewChange_Proxy( + AsyncIAdviseSink * This); + + +void __stdcall AsyncIAdviseSink_Finish_RemoteOnViewChange_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall AsyncIAdviseSink_Begin_RemoteOnRename_Proxy( + AsyncIAdviseSink * This, + IMoniker *pmk); + + +void __stdcall AsyncIAdviseSink_Begin_RemoteOnRename_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall AsyncIAdviseSink_Finish_RemoteOnRename_Proxy( + AsyncIAdviseSink * This); + + +void __stdcall AsyncIAdviseSink_Finish_RemoteOnRename_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall AsyncIAdviseSink_Begin_RemoteOnSave_Proxy( + AsyncIAdviseSink * This); + + +void __stdcall AsyncIAdviseSink_Begin_RemoteOnSave_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall AsyncIAdviseSink_Finish_RemoteOnSave_Proxy( + AsyncIAdviseSink * This); + + +void __stdcall AsyncIAdviseSink_Finish_RemoteOnSave_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall AsyncIAdviseSink_Begin_RemoteOnClose_Proxy( + AsyncIAdviseSink * This); + + +void __stdcall AsyncIAdviseSink_Begin_RemoteOnClose_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall AsyncIAdviseSink_Finish_RemoteOnClose_Proxy( + AsyncIAdviseSink * This); + + +void __stdcall AsyncIAdviseSink_Finish_RemoteOnClose_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 11800 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; + + + + + + + +typedef IAdviseSink2 *LPADVISESINK2; + + +extern "C" const IID IID_IAdviseSink2; + + + + struct __declspec(uuid("00000125-0000-0000-C000-000000000046")) __declspec(novtable) + IAdviseSink2 : public IAdviseSink + { + public: + virtual void __stdcall OnLinkSrcChange( + + IMoniker *pmk) = 0; + + }; +# 11922 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + HRESULT __stdcall IAdviseSink2_RemoteOnLinkSrcChange_Proxy( + IAdviseSink2 * This, + IMoniker *pmk); + + +void __stdcall IAdviseSink2_RemoteOnLinkSrcChange_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 11945 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_AsyncIAdviseSink2; + + + + struct __declspec(uuid("00000151-0000-0000-C000-000000000046")) __declspec(novtable) + AsyncIAdviseSink2 : public AsyncIAdviseSink + { + public: + virtual void __stdcall Begin_OnLinkSrcChange( + + IMoniker *pmk) = 0; + + virtual void __stdcall Finish_OnLinkSrcChange( void) = 0; + + }; +# 12093 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + HRESULT __stdcall AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Proxy( + AsyncIAdviseSink2 * This, + IMoniker *pmk); + + +void __stdcall AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Proxy( + AsyncIAdviseSink2 * This); + + +void __stdcall AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 12129 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; + + + + + + + +typedef IDataObject *LPDATAOBJECT; + +typedef +enum tagDATADIR + { + DATADIR_GET = 1, + DATADIR_SET = 2 + } DATADIR; + + +extern "C" const IID IID_IDataObject; + + + + struct __declspec(uuid("0000010e-0000-0000-C000-000000000046")) __declspec(novtable) + IDataObject : public IUnknown + { + public: + virtual HRESULT __stdcall GetData( + + FORMATETC *pformatetcIn, + + STGMEDIUM *pmedium) = 0; + + virtual HRESULT __stdcall GetDataHere( + + FORMATETC *pformatetc, + + STGMEDIUM *pmedium) = 0; + + virtual HRESULT __stdcall QueryGetData( + FORMATETC *pformatetc) = 0; + + virtual HRESULT __stdcall GetCanonicalFormatEtc( + FORMATETC *pformatectIn, + FORMATETC *pformatetcOut) = 0; + + virtual HRESULT __stdcall SetData( + + FORMATETC *pformatetc, + + STGMEDIUM *pmedium, + BOOL fRelease) = 0; + + virtual HRESULT __stdcall EnumFormatEtc( + DWORD dwDirection, + IEnumFORMATETC **ppenumFormatEtc) = 0; + + virtual HRESULT __stdcall DAdvise( + FORMATETC *pformatetc, + DWORD advf, + IAdviseSink *pAdvSink, + DWORD *pdwConnection) = 0; + + virtual HRESULT __stdcall DUnadvise( + DWORD dwConnection) = 0; + + virtual HRESULT __stdcall EnumDAdvise( + IEnumSTATDATA **ppenumAdvise) = 0; + + }; +# 12327 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + HRESULT __stdcall IDataObject_RemoteGetData_Proxy( + IDataObject * This, + FORMATETC *pformatetcIn, + STGMEDIUM *pRemoteMedium); + + +void __stdcall IDataObject_RemoteGetData_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IDataObject_RemoteGetDataHere_Proxy( + IDataObject * This, + FORMATETC *pformatetc, + STGMEDIUM *pRemoteMedium); + + +void __stdcall IDataObject_RemoteGetDataHere_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IDataObject_RemoteSetData_Proxy( + IDataObject * This, + FORMATETC *pformatetc, + FLAG_STGMEDIUM *pmedium, + BOOL fRelease); + + +void __stdcall IDataObject_RemoteSetData_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 12380 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; + + + + + + + +typedef IDataAdviseHolder *LPDATAADVISEHOLDER; + + +extern "C" const IID IID_IDataAdviseHolder; + + + + struct __declspec(uuid("00000110-0000-0000-C000-000000000046")) __declspec(novtable) + IDataAdviseHolder : public IUnknown + { + public: + virtual HRESULT __stdcall Advise( + + IDataObject *pDataObject, + + FORMATETC *pFetc, + + DWORD advf, + + IAdviseSink *pAdvise, + + DWORD *pdwConnection) = 0; + + virtual HRESULT __stdcall Unadvise( + + DWORD dwConnection) = 0; + + virtual HRESULT __stdcall EnumAdvise( + + IEnumSTATDATA **ppenumAdvise) = 0; + + virtual HRESULT __stdcall SendOnDataChange( + + IDataObject *pDataObject, + + DWORD dwReserved, + + DWORD advf) = 0; + + }; +# 12533 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +typedef 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; + + + + struct __declspec(uuid("00000016-0000-0000-C000-000000000046")) __declspec(novtable) + IMessageFilter : public IUnknown + { + public: + virtual DWORD __stdcall HandleInComingCall( + + DWORD dwCallType, + + HTASK htaskCaller, + + DWORD dwTickCount, + + LPINTERFACEINFO lpInterfaceInfo) = 0; + + virtual DWORD __stdcall RetryRejectedCall( + + HTASK htaskCallee, + + DWORD dwTickCount, + + DWORD dwRejectType) = 0; + + virtual DWORD __stdcall MessagePending( + + HTASK htaskCallee, + + DWORD dwTickCount, + + DWORD dwPendingType) = 0; + + }; +# 12710 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; +# 12738 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_IClassActivator; + + + + struct __declspec(uuid("00000140-0000-0000-C000-000000000046")) __declspec(novtable) + IClassActivator : public IUnknown + { + public: + virtual HRESULT __stdcall GetClassObject( + const IID & rclsid, + DWORD dwClassContext, + LCID locale, + const IID & riid, + void **ppv) = 0; + + }; +# 12828 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; +# 12838 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_IFillLockBytes; + + + + struct __declspec(uuid("99caf010-415e-11cf-8814-00aa00b569f5")) __declspec(novtable) + IFillLockBytes : public IUnknown + { + public: + virtual HRESULT __stdcall FillAppend( + + const void *pv, + + ULONG cb, + + ULONG *pcbWritten) = 0; + + virtual HRESULT __stdcall FillAt( + + ULARGE_INTEGER ulOffset, + + const void *pv, + + ULONG cb, + + ULONG *pcbWritten) = 0; + + virtual HRESULT __stdcall SetFillSize( + ULARGE_INTEGER ulSize) = 0; + + virtual HRESULT __stdcall Terminate( + BOOL bCanceled) = 0; + + }; +# 12961 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" + HRESULT __stdcall IFillLockBytes_RemoteFillAppend_Proxy( + IFillLockBytes * This, + const byte *pv, + ULONG cb, + ULONG *pcbWritten); + + +void __stdcall IFillLockBytes_RemoteFillAppend_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IFillLockBytes_RemoteFillAt_Proxy( + IFillLockBytes * This, + ULARGE_INTEGER ulOffset, + const byte *pv, + ULONG cb, + ULONG *pcbWritten); + + +void __stdcall IFillLockBytes_RemoteFillAt_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 13003 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; +# 13013 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_IProgressNotify; + + + + struct __declspec(uuid("a9d758a0-4617-11cf-95fc-00aa00680db4")) __declspec(novtable) + IProgressNotify : public IUnknown + { + public: + virtual HRESULT __stdcall OnProgress( + DWORD dwProgressCurrent, + DWORD dwProgressMaximum, + BOOL fAccurate, + BOOL fOwner) = 0; + + }; +# 13101 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; + + + + + + + +typedef struct tagStorageLayout + { + DWORD LayoutType; + OLECHAR *pwcsElementName; + LARGE_INTEGER cOffset; + LARGE_INTEGER cBytes; + } StorageLayout; + + +extern "C" const IID IID_ILayoutStorage; + + + + struct __declspec(uuid("0e6d4d90-6738-11cf-9608-00aa00680db4")) __declspec(novtable) + ILayoutStorage : public IUnknown + { + public: + virtual HRESULT __stdcall LayoutScript( + + StorageLayout *pStorageLayout, + + DWORD nEntries, + + DWORD glfInterleavedFlag) = 0; + + virtual HRESULT __stdcall BeginMonitor( void) = 0; + + virtual HRESULT __stdcall EndMonitor( void) = 0; + + virtual HRESULT __stdcall ReLayoutDocfile( + + OLECHAR *pwcsNewDfName) = 0; + + virtual HRESULT __stdcall ReLayoutDocfileOnILockBytes( + + ILockBytes *pILockBytes) = 0; + + }; +# 13251 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; +# 13261 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_IBlockingLock; + + + + struct __declspec(uuid("30f3d47a-6447-11d1-8e3c-00c04fb9386d")) __declspec(novtable) + IBlockingLock : public IUnknown + { + public: + virtual HRESULT __stdcall Lock( + DWORD dwTimeout) = 0; + + virtual HRESULT __stdcall Unlock( void) = 0; + + }; +# 13349 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_ITimeAndNoticeControl; + + + + struct __declspec(uuid("bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4")) __declspec(novtable) + ITimeAndNoticeControl : public IUnknown + { + public: + virtual HRESULT __stdcall SuppressChanges( + DWORD res1, + DWORD res2) = 0; + + }; +# 13431 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_IOplockStorage; + + + + struct __declspec(uuid("8d19c834-8879-11d1-83e9-00c04fc2c6d4")) __declspec(novtable) + IOplockStorage : public IUnknown + { + public: + virtual HRESULT __stdcall CreateStorageEx( + LPCWSTR pwcsName, + DWORD grfMode, + DWORD stgfmt, + DWORD grfAttrs, + const IID & riid, + void **ppstgOpen) = 0; + + virtual HRESULT __stdcall OpenStorageEx( + LPCWSTR pwcsName, + DWORD grfMode, + DWORD stgfmt, + DWORD grfAttrs, + const IID & riid, + void **ppstgOpen) = 0; + + }; +# 13543 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; +# 13553 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_IDirectWriterLock; + + + + struct __declspec(uuid("0e6d4d92-6738-11cf-9608-00aa00680db4")) __declspec(novtable) + IDirectWriterLock : public IUnknown + { + public: + virtual HRESULT __stdcall WaitForWriteAccess( + DWORD dwTimeout) = 0; + + virtual HRESULT __stdcall ReleaseWriteAccess( void) = 0; + + virtual HRESULT __stdcall HaveWriteAccess( void) = 0; + + }; +# 13651 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; +# 13661 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_IUrlMon; + + + + struct __declspec(uuid("00000026-0000-0000-C000-000000000046")) __declspec(novtable) + IUrlMon : public IUnknown + { + public: + virtual HRESULT __stdcall AsyncGetClassBits( + const IID & rclsid, + LPCWSTR pszTYPE, + LPCWSTR pszExt, + DWORD dwFileVersionMS, + DWORD dwFileVersionLS, + LPCWSTR pszCodeBase, + IBindCtx *pbc, + DWORD dwClassContext, + const IID & riid, + DWORD flags) = 0; + + }; +# 13759 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_IForegroundTransfer; + + + + struct __declspec(uuid("00000145-0000-0000-C000-000000000046")) __declspec(novtable) + IForegroundTransfer : public IUnknown + { + public: + virtual HRESULT __stdcall AllowForegroundTransfer( + + void *lpvReserved) = 0; + + }; +# 13841 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_IThumbnailExtractor; + + + + struct __declspec(uuid("969dc708-5c76-11d1-8d86-0000f804b057")) __declspec(novtable) + IThumbnailExtractor : public IUnknown + { + public: + virtual HRESULT __stdcall ExtractThumbnail( + IStorage *pStg, + ULONG ulLength, + ULONG ulHeight, + ULONG *pulOutputLength, + ULONG *pulOutputHeight, + HBITMAP *phOutputBitmap) = 0; + + virtual HRESULT __stdcall OnFileUpdated( + IStorage *pStg) = 0; + + }; +# 13941 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_IDummyHICONIncluder; + + + + struct __declspec(uuid("947990de-cc28-11d2-a0f7-00805f858fb1")) __declspec(novtable) + IDummyHICONIncluder : public IUnknown + { + public: + virtual HRESULT __stdcall Dummy( + HICON h1, + HDC h2) = 0; + + }; +# 14019 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; +# 14045 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_IProcessLock; + + + + struct __declspec(uuid("000001d5-0000-0000-C000-000000000046")) __declspec(novtable) + IProcessLock : public IUnknown + { + public: + virtual ULONG __stdcall AddRefOnProcess( void) = 0; + + virtual ULONG __stdcall ReleaseRefOnProcess( void) = 0; + + }; +# 14131 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_ISurrogateService; + + + + struct __declspec(uuid("000001d4-0000-0000-C000-000000000046")) __declspec(novtable) + ISurrogateService : public IUnknown + { + public: + virtual HRESULT __stdcall Init( + + const GUID & rguidProcessID, + + IProcessLock *pProcessLock, + + BOOL *pfApplicationAware) = 0; + + virtual HRESULT __stdcall ApplicationLaunch( + + const GUID & rguidApplID, + + ApplicationType appType) = 0; + + virtual HRESULT __stdcall ApplicationFree( + + const GUID & rguidApplID) = 0; + + virtual HRESULT __stdcall CatalogRefresh( + + ULONG ulReserved) = 0; + + virtual HRESULT __stdcall ProcessShutdown( + + ShutdownType shutdownType) = 0; + + }; +# 14272 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; + + + + + + + +typedef IInitializeSpy *LPINITIALIZESPY; + + +extern "C" const IID IID_IInitializeSpy; + + + + struct __declspec(uuid("00000034-0000-0000-C000-000000000046")) __declspec(novtable) + IInitializeSpy : public IUnknown + { + public: + virtual HRESULT __stdcall PreInitialize( + + DWORD dwCoInit, + + DWORD dwCurThreadAptRefs) = 0; + + virtual HRESULT __stdcall PostInitialize( + + HRESULT hrCoInit, + + DWORD dwCoInit, + + DWORD dwNewThreadAptRefs) = 0; + + virtual HRESULT __stdcall PreUninitialize( + + DWORD dwCurThreadAptRefs) = 0; + + virtual HRESULT __stdcall PostUninitialize( + + DWORD dwNewThreadAptRefs) = 0; + + }; +# 14417 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +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; +# 14427 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +extern "C" const IID IID_IApartmentShutdown; + + + + struct __declspec(uuid("A2F05A09-27A2-42B5-BC0E-AC163EF49D9B")) __declspec(novtable) + IApartmentShutdown : public IUnknown + { + public: + virtual void __stdcall OnUninitialize( + + UINT64 ui64ApartmentIdentifier) = 0; + + }; +# 14509 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objidl.h" +#pragma warning(pop) + + + + + + +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; + + + +unsigned long __stdcall ASYNC_STGMEDIUM_UserSize( unsigned long *, unsigned long , ASYNC_STGMEDIUM * ); +unsigned char * __stdcall ASYNC_STGMEDIUM_UserMarshal( unsigned long *, unsigned char *, ASYNC_STGMEDIUM * ); +unsigned char * __stdcall ASYNC_STGMEDIUM_UserUnmarshal( unsigned long *, unsigned char *, ASYNC_STGMEDIUM * ); +void __stdcall ASYNC_STGMEDIUM_UserFree( unsigned long *, ASYNC_STGMEDIUM * ); + +unsigned long __stdcall CLIPFORMAT_UserSize( unsigned long *, unsigned long , CLIPFORMAT * ); +unsigned char * __stdcall CLIPFORMAT_UserMarshal( unsigned long *, unsigned char *, CLIPFORMAT * ); +unsigned char * __stdcall CLIPFORMAT_UserUnmarshal( unsigned long *, unsigned char *, CLIPFORMAT * ); +void __stdcall CLIPFORMAT_UserFree( unsigned long *, CLIPFORMAT * ); + +unsigned long __stdcall FLAG_STGMEDIUM_UserSize( unsigned long *, unsigned long , FLAG_STGMEDIUM * ); +unsigned char * __stdcall FLAG_STGMEDIUM_UserMarshal( unsigned long *, unsigned char *, FLAG_STGMEDIUM * ); +unsigned char * __stdcall FLAG_STGMEDIUM_UserUnmarshal( unsigned long *, unsigned char *, FLAG_STGMEDIUM * ); +void __stdcall FLAG_STGMEDIUM_UserFree( unsigned long *, FLAG_STGMEDIUM * ); + +unsigned long __stdcall HBITMAP_UserSize( unsigned long *, unsigned long , HBITMAP * ); +unsigned char * __stdcall HBITMAP_UserMarshal( unsigned long *, unsigned char *, HBITMAP * ); +unsigned char * __stdcall HBITMAP_UserUnmarshal( unsigned long *, unsigned char *, HBITMAP * ); +void __stdcall HBITMAP_UserFree( unsigned long *, HBITMAP * ); + +unsigned long __stdcall HDC_UserSize( unsigned long *, unsigned long , HDC * ); +unsigned char * __stdcall HDC_UserMarshal( unsigned long *, unsigned char *, HDC * ); +unsigned char * __stdcall HDC_UserUnmarshal( unsigned long *, unsigned char *, HDC * ); +void __stdcall HDC_UserFree( unsigned long *, HDC * ); + +unsigned long __stdcall HICON_UserSize( unsigned long *, unsigned long , HICON * ); +unsigned char * __stdcall HICON_UserMarshal( unsigned long *, unsigned char *, HICON * ); +unsigned char * __stdcall HICON_UserUnmarshal( unsigned long *, unsigned char *, HICON * ); +void __stdcall HICON_UserFree( unsigned long *, HICON * ); + +unsigned long __stdcall SNB_UserSize( unsigned long *, unsigned long , SNB * ); +unsigned char * __stdcall SNB_UserMarshal( unsigned long *, unsigned char *, SNB * ); +unsigned char * __stdcall SNB_UserUnmarshal( unsigned long *, unsigned char *, SNB * ); +void __stdcall SNB_UserFree( unsigned long *, SNB * ); + +unsigned long __stdcall STGMEDIUM_UserSize( unsigned long *, unsigned long , STGMEDIUM * ); +unsigned char * __stdcall STGMEDIUM_UserMarshal( unsigned long *, unsigned char *, STGMEDIUM * ); +unsigned char * __stdcall STGMEDIUM_UserUnmarshal( unsigned long *, unsigned char *, STGMEDIUM * ); +void __stdcall STGMEDIUM_UserFree( unsigned long *, STGMEDIUM * ); + +unsigned long __stdcall ASYNC_STGMEDIUM_UserSize64( unsigned long *, unsigned long , ASYNC_STGMEDIUM * ); +unsigned char * __stdcall ASYNC_STGMEDIUM_UserMarshal64( unsigned long *, unsigned char *, ASYNC_STGMEDIUM * ); +unsigned char * __stdcall ASYNC_STGMEDIUM_UserUnmarshal64( unsigned long *, unsigned char *, ASYNC_STGMEDIUM * ); +void __stdcall ASYNC_STGMEDIUM_UserFree64( unsigned long *, ASYNC_STGMEDIUM * ); + +unsigned long __stdcall CLIPFORMAT_UserSize64( unsigned long *, unsigned long , CLIPFORMAT * ); +unsigned char * __stdcall CLIPFORMAT_UserMarshal64( unsigned long *, unsigned char *, CLIPFORMAT * ); +unsigned char * __stdcall CLIPFORMAT_UserUnmarshal64( unsigned long *, unsigned char *, CLIPFORMAT * ); +void __stdcall CLIPFORMAT_UserFree64( unsigned long *, CLIPFORMAT * ); + +unsigned long __stdcall FLAG_STGMEDIUM_UserSize64( unsigned long *, unsigned long , FLAG_STGMEDIUM * ); +unsigned char * __stdcall FLAG_STGMEDIUM_UserMarshal64( unsigned long *, unsigned char *, FLAG_STGMEDIUM * ); +unsigned char * __stdcall FLAG_STGMEDIUM_UserUnmarshal64( unsigned long *, unsigned char *, FLAG_STGMEDIUM * ); +void __stdcall FLAG_STGMEDIUM_UserFree64( unsigned long *, FLAG_STGMEDIUM * ); + +unsigned long __stdcall HBITMAP_UserSize64( unsigned long *, unsigned long , HBITMAP * ); +unsigned char * __stdcall HBITMAP_UserMarshal64( unsigned long *, unsigned char *, HBITMAP * ); +unsigned char * __stdcall HBITMAP_UserUnmarshal64( unsigned long *, unsigned char *, HBITMAP * ); +void __stdcall HBITMAP_UserFree64( unsigned long *, HBITMAP * ); + +unsigned long __stdcall HDC_UserSize64( unsigned long *, unsigned long , HDC * ); +unsigned char * __stdcall HDC_UserMarshal64( unsigned long *, unsigned char *, HDC * ); +unsigned char * __stdcall HDC_UserUnmarshal64( unsigned long *, unsigned char *, HDC * ); +void __stdcall HDC_UserFree64( unsigned long *, HDC * ); + +unsigned long __stdcall HICON_UserSize64( unsigned long *, unsigned long , HICON * ); +unsigned char * __stdcall HICON_UserMarshal64( unsigned long *, unsigned char *, HICON * ); +unsigned char * __stdcall HICON_UserUnmarshal64( unsigned long *, unsigned char *, HICON * ); +void __stdcall HICON_UserFree64( unsigned long *, HICON * ); + +unsigned long __stdcall SNB_UserSize64( unsigned long *, unsigned long , SNB * ); +unsigned char * __stdcall SNB_UserMarshal64( unsigned long *, unsigned char *, SNB * ); +unsigned char * __stdcall SNB_UserUnmarshal64( unsigned long *, unsigned char *, SNB * ); +void __stdcall SNB_UserFree64( unsigned long *, SNB * ); + +unsigned long __stdcall STGMEDIUM_UserSize64( unsigned long *, unsigned long , STGMEDIUM * ); +unsigned char * __stdcall STGMEDIUM_UserMarshal64( unsigned long *, unsigned char *, STGMEDIUM * ); +unsigned char * __stdcall STGMEDIUM_UserUnmarshal64( unsigned long *, unsigned char *, STGMEDIUM * ); +void __stdcall STGMEDIUM_UserFree64( unsigned long *, STGMEDIUM * ); + + HRESULT __stdcall IEnumUnknown_Next_Proxy( + IEnumUnknown * This, + + ULONG celt, + + IUnknown **rgelt, + + ULONG *pceltFetched); + + + HRESULT __stdcall IEnumUnknown_Next_Stub( + IEnumUnknown * This, + ULONG celt, + IUnknown **rgelt, + ULONG *pceltFetched); + + HRESULT __stdcall IEnumString_Next_Proxy( + IEnumString * This, + ULONG celt, + + LPOLESTR *rgelt, + + ULONG *pceltFetched); + + + HRESULT __stdcall IEnumString_Next_Stub( + IEnumString * This, + ULONG celt, + LPOLESTR *rgelt, + ULONG *pceltFetched); + + HRESULT __stdcall ISequentialStream_Read_Proxy( + ISequentialStream * This, + + void *pv, + + ULONG cb, + + ULONG *pcbRead); + + + HRESULT __stdcall ISequentialStream_Read_Stub( + ISequentialStream * This, + byte *pv, + ULONG cb, + ULONG *pcbRead); + + HRESULT __stdcall ISequentialStream_Write_Proxy( + ISequentialStream * This, + + const void *pv, + + ULONG cb, + + ULONG *pcbWritten); + + + HRESULT __stdcall ISequentialStream_Write_Stub( + ISequentialStream * This, + const byte *pv, + ULONG cb, + ULONG *pcbWritten); + + HRESULT __stdcall IStream_Seek_Proxy( + IStream * This, + LARGE_INTEGER dlibMove, + DWORD dwOrigin, + + ULARGE_INTEGER *plibNewPosition); + + + HRESULT __stdcall IStream_Seek_Stub( + IStream * This, + LARGE_INTEGER dlibMove, + DWORD dwOrigin, + ULARGE_INTEGER *plibNewPosition); + + HRESULT __stdcall IStream_CopyTo_Proxy( + IStream * This, + + IStream *pstm, + ULARGE_INTEGER cb, + + ULARGE_INTEGER *pcbRead, + + ULARGE_INTEGER *pcbWritten); + + + HRESULT __stdcall IStream_CopyTo_Stub( + IStream * This, + IStream *pstm, + ULARGE_INTEGER cb, + ULARGE_INTEGER *pcbRead, + ULARGE_INTEGER *pcbWritten); + + HRESULT __stdcall IBindCtx_SetBindOptions_Proxy( + IBindCtx * This, + + BIND_OPTS *pbindopts); + + + HRESULT __stdcall IBindCtx_SetBindOptions_Stub( + IBindCtx * This, + BIND_OPTS2 *pbindopts); + + HRESULT __stdcall IBindCtx_GetBindOptions_Proxy( + IBindCtx * This, + + BIND_OPTS *pbindopts); + + + HRESULT __stdcall IBindCtx_GetBindOptions_Stub( + IBindCtx * This, + BIND_OPTS2 *pbindopts); + + HRESULT __stdcall IEnumMoniker_Next_Proxy( + IEnumMoniker * This, + ULONG celt, + + IMoniker **rgelt, + + ULONG *pceltFetched); + + + HRESULT __stdcall IEnumMoniker_Next_Stub( + IEnumMoniker * This, + ULONG celt, + IMoniker **rgelt, + ULONG *pceltFetched); + + BOOL __stdcall IRunnableObject_IsRunning_Proxy( + IRunnableObject * This); + + + HRESULT __stdcall IRunnableObject_IsRunning_Stub( + IRunnableObject * This); + + HRESULT __stdcall IMoniker_BindToObject_Proxy( + IMoniker * This, + + IBindCtx *pbc, + + IMoniker *pmkToLeft, + + const IID & riidResult, + + void **ppvResult); + + + HRESULT __stdcall IMoniker_BindToObject_Stub( + IMoniker * This, + IBindCtx *pbc, + IMoniker *pmkToLeft, + const IID & riidResult, + IUnknown **ppvResult); + + HRESULT __stdcall IMoniker_BindToStorage_Proxy( + IMoniker * This, + + IBindCtx *pbc, + + IMoniker *pmkToLeft, + + const IID & riid, + + void **ppvObj); + + + HRESULT __stdcall IMoniker_BindToStorage_Stub( + IMoniker * This, + IBindCtx *pbc, + IMoniker *pmkToLeft, + const IID & riid, + IUnknown **ppvObj); + + HRESULT __stdcall IEnumSTATSTG_Next_Proxy( + IEnumSTATSTG * This, + ULONG celt, + + STATSTG *rgelt, + + ULONG *pceltFetched); + + + HRESULT __stdcall IEnumSTATSTG_Next_Stub( + IEnumSTATSTG * This, + ULONG celt, + STATSTG *rgelt, + ULONG *pceltFetched); + + HRESULT __stdcall IStorage_OpenStream_Proxy( + IStorage * This, + + const OLECHAR *pwcsName, + + void *reserved1, + DWORD grfMode, + DWORD reserved2, + + IStream **ppstm); + + + HRESULT __stdcall IStorage_OpenStream_Stub( + IStorage * This, + const OLECHAR *pwcsName, + ULONG cbReserved1, + byte *reserved1, + DWORD grfMode, + DWORD reserved2, + IStream **ppstm); + + HRESULT __stdcall IStorage_CopyTo_Proxy( + IStorage * This, + DWORD ciidExclude, + + const IID *rgiidExclude, + + SNB snbExclude, + + IStorage *pstgDest); + + + HRESULT __stdcall IStorage_CopyTo_Stub( + IStorage * This, + DWORD ciidExclude, + const IID *rgiidExclude, + SNB snbExclude, + IStorage *pstgDest); + + HRESULT __stdcall IStorage_EnumElements_Proxy( + IStorage * This, + + DWORD reserved1, + + void *reserved2, + + DWORD reserved3, + + IEnumSTATSTG **ppenum); + + + HRESULT __stdcall IStorage_EnumElements_Stub( + IStorage * This, + DWORD reserved1, + ULONG cbReserved2, + byte *reserved2, + DWORD reserved3, + IEnumSTATSTG **ppenum); + + HRESULT __stdcall ILockBytes_ReadAt_Proxy( + ILockBytes * This, + ULARGE_INTEGER ulOffset, + + void *pv, + ULONG cb, + + ULONG *pcbRead); + + + HRESULT __stdcall ILockBytes_ReadAt_Stub( + ILockBytes * This, + ULARGE_INTEGER ulOffset, + byte *pv, + ULONG cb, + ULONG *pcbRead); + + HRESULT __stdcall ILockBytes_WriteAt_Proxy( + ILockBytes * This, + ULARGE_INTEGER ulOffset, + + const void *pv, + ULONG cb, + + ULONG *pcbWritten); + + + HRESULT __stdcall ILockBytes_WriteAt_Stub( + ILockBytes * This, + ULARGE_INTEGER ulOffset, + const byte *pv, + ULONG cb, + ULONG *pcbWritten); + + HRESULT __stdcall IEnumFORMATETC_Next_Proxy( + IEnumFORMATETC * This, + ULONG celt, + + FORMATETC *rgelt, + + ULONG *pceltFetched); + + + HRESULT __stdcall IEnumFORMATETC_Next_Stub( + IEnumFORMATETC * This, + ULONG celt, + FORMATETC *rgelt, + ULONG *pceltFetched); + + HRESULT __stdcall IEnumSTATDATA_Next_Proxy( + IEnumSTATDATA * This, + ULONG celt, + + STATDATA *rgelt, + + ULONG *pceltFetched); + + + HRESULT __stdcall IEnumSTATDATA_Next_Stub( + IEnumSTATDATA * This, + ULONG celt, + STATDATA *rgelt, + ULONG *pceltFetched); + + void __stdcall IAdviseSink_OnDataChange_Proxy( + IAdviseSink * This, + + FORMATETC *pFormatetc, + + STGMEDIUM *pStgmed); + + + HRESULT __stdcall IAdviseSink_OnDataChange_Stub( + IAdviseSink * This, + FORMATETC *pFormatetc, + ASYNC_STGMEDIUM *pStgmed); + + void __stdcall IAdviseSink_OnViewChange_Proxy( + IAdviseSink * This, + DWORD dwAspect, + LONG lindex); + + + HRESULT __stdcall IAdviseSink_OnViewChange_Stub( + IAdviseSink * This, + DWORD dwAspect, + LONG lindex); + + void __stdcall IAdviseSink_OnRename_Proxy( + IAdviseSink * This, + + IMoniker *pmk); + + + HRESULT __stdcall IAdviseSink_OnRename_Stub( + IAdviseSink * This, + IMoniker *pmk); + + void __stdcall IAdviseSink_OnSave_Proxy( + IAdviseSink * This); + + + HRESULT __stdcall IAdviseSink_OnSave_Stub( + IAdviseSink * This); + + void __stdcall IAdviseSink_OnClose_Proxy( + IAdviseSink * This); + + + HRESULT __stdcall IAdviseSink_OnClose_Stub( + IAdviseSink * This); + + void __stdcall AsyncIAdviseSink_Begin_OnDataChange_Proxy( + AsyncIAdviseSink * This, + + FORMATETC *pFormatetc, + + STGMEDIUM *pStgmed); + + + HRESULT __stdcall AsyncIAdviseSink_Begin_OnDataChange_Stub( + AsyncIAdviseSink * This, + FORMATETC *pFormatetc, + ASYNC_STGMEDIUM *pStgmed); + + void __stdcall AsyncIAdviseSink_Finish_OnDataChange_Proxy( + AsyncIAdviseSink * This); + + + HRESULT __stdcall AsyncIAdviseSink_Finish_OnDataChange_Stub( + AsyncIAdviseSink * This); + + void __stdcall AsyncIAdviseSink_Begin_OnViewChange_Proxy( + AsyncIAdviseSink * This, + DWORD dwAspect, + LONG lindex); + + + HRESULT __stdcall AsyncIAdviseSink_Begin_OnViewChange_Stub( + AsyncIAdviseSink * This, + DWORD dwAspect, + LONG lindex); + + void __stdcall AsyncIAdviseSink_Finish_OnViewChange_Proxy( + AsyncIAdviseSink * This); + + + HRESULT __stdcall AsyncIAdviseSink_Finish_OnViewChange_Stub( + AsyncIAdviseSink * This); + + void __stdcall AsyncIAdviseSink_Begin_OnRename_Proxy( + AsyncIAdviseSink * This, + + IMoniker *pmk); + + + HRESULT __stdcall AsyncIAdviseSink_Begin_OnRename_Stub( + AsyncIAdviseSink * This, + IMoniker *pmk); + + void __stdcall AsyncIAdviseSink_Finish_OnRename_Proxy( + AsyncIAdviseSink * This); + + + HRESULT __stdcall AsyncIAdviseSink_Finish_OnRename_Stub( + AsyncIAdviseSink * This); + + void __stdcall AsyncIAdviseSink_Begin_OnSave_Proxy( + AsyncIAdviseSink * This); + + + HRESULT __stdcall AsyncIAdviseSink_Begin_OnSave_Stub( + AsyncIAdviseSink * This); + + void __stdcall AsyncIAdviseSink_Finish_OnSave_Proxy( + AsyncIAdviseSink * This); + + + HRESULT __stdcall AsyncIAdviseSink_Finish_OnSave_Stub( + AsyncIAdviseSink * This); + + void __stdcall AsyncIAdviseSink_Begin_OnClose_Proxy( + AsyncIAdviseSink * This); + + + HRESULT __stdcall AsyncIAdviseSink_Begin_OnClose_Stub( + AsyncIAdviseSink * This); + + void __stdcall AsyncIAdviseSink_Finish_OnClose_Proxy( + AsyncIAdviseSink * This); + + + HRESULT __stdcall AsyncIAdviseSink_Finish_OnClose_Stub( + AsyncIAdviseSink * This); + + void __stdcall IAdviseSink2_OnLinkSrcChange_Proxy( + IAdviseSink2 * This, + + IMoniker *pmk); + + + HRESULT __stdcall IAdviseSink2_OnLinkSrcChange_Stub( + IAdviseSink2 * This, + IMoniker *pmk); + + void __stdcall AsyncIAdviseSink2_Begin_OnLinkSrcChange_Proxy( + AsyncIAdviseSink2 * This, + + IMoniker *pmk); + + + HRESULT __stdcall AsyncIAdviseSink2_Begin_OnLinkSrcChange_Stub( + AsyncIAdviseSink2 * This, + IMoniker *pmk); + + void __stdcall AsyncIAdviseSink2_Finish_OnLinkSrcChange_Proxy( + AsyncIAdviseSink2 * This); + + + HRESULT __stdcall AsyncIAdviseSink2_Finish_OnLinkSrcChange_Stub( + AsyncIAdviseSink2 * This); + + HRESULT __stdcall IDataObject_GetData_Proxy( + IDataObject * This, + + FORMATETC *pformatetcIn, + + STGMEDIUM *pmedium); + + + HRESULT __stdcall IDataObject_GetData_Stub( + IDataObject * This, + FORMATETC *pformatetcIn, + STGMEDIUM *pRemoteMedium); + + HRESULT __stdcall IDataObject_GetDataHere_Proxy( + IDataObject * This, + + FORMATETC *pformatetc, + + STGMEDIUM *pmedium); + + + HRESULT __stdcall IDataObject_GetDataHere_Stub( + IDataObject * This, + FORMATETC *pformatetc, + STGMEDIUM *pRemoteMedium); + + HRESULT __stdcall IDataObject_SetData_Proxy( + IDataObject * This, + + FORMATETC *pformatetc, + + STGMEDIUM *pmedium, + BOOL fRelease); + + + HRESULT __stdcall IDataObject_SetData_Stub( + IDataObject * This, + FORMATETC *pformatetc, + FLAG_STGMEDIUM *pmedium, + BOOL fRelease); + + HRESULT __stdcall IFillLockBytes_FillAppend_Proxy( + IFillLockBytes * This, + + const void *pv, + + ULONG cb, + + ULONG *pcbWritten); + + + HRESULT __stdcall IFillLockBytes_FillAppend_Stub( + IFillLockBytes * This, + const byte *pv, + ULONG cb, + ULONG *pcbWritten); + + HRESULT __stdcall IFillLockBytes_FillAt_Proxy( + IFillLockBytes * This, + + ULARGE_INTEGER ulOffset, + + const void *pv, + + ULONG cb, + + ULONG *pcbWritten); + + + HRESULT __stdcall IFillLockBytes_FillAt_Stub( + IFillLockBytes * This, + ULARGE_INTEGER ulOffset, + const byte *pv, + ULONG cb, + ULONG *pcbWritten); + + + + + + +} +# 40 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\coml2api.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" +typedef struct IPropertyStorage IPropertyStorage; + + + + + + +typedef struct IPropertySetStorage IPropertySetStorage; + + + + + + +typedef struct IEnumSTATPROPSTG IEnumSTATPROPSTG; + + + + + + +typedef struct IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG; + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef struct ICreateTypeInfo ICreateTypeInfo; + + + + + + +typedef struct ICreateTypeInfo2 ICreateTypeInfo2; + + + + + + +typedef struct ICreateTypeLib ICreateTypeLib; + + + + + + +typedef struct ICreateTypeLib2 ICreateTypeLib2; + + + + + + +typedef struct IDispatch IDispatch; + + + + + + +typedef struct IEnumVARIANT IEnumVARIANT; + + + + + + +typedef struct ITypeComp ITypeComp; + + + + + + +typedef struct ITypeInfo ITypeInfo; + + + + + + +typedef struct ITypeInfo2 ITypeInfo2; + + + + + + +typedef struct ITypeLib ITypeLib; + + + + + + +typedef struct ITypeLib2 ITypeLib2; + + + + + + +typedef struct ITypeChangeEvents ITypeChangeEvents; + + + + + + +typedef struct IErrorInfo IErrorInfo; + + + + + + +typedef struct ICreateErrorInfo ICreateErrorInfo; + + + + + + +typedef struct ISupportErrorInfo ISupportErrorInfo; + + + + + + +typedef struct ITypeFactory ITypeFactory; + + + + + + +typedef struct ITypeMarshal ITypeMarshal; + + + + + + +typedef struct IRecordInfo IRecordInfo; + + + + + + +typedef struct IErrorLog IErrorLog; + + + + + + +typedef struct IPropertyBag IPropertyBag; +# 186 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +extern "C"{ +# 202 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +#pragma warning(push) +#pragma warning(disable: 4820) + +#pragma warning(disable: 4201) +# 244 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +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; + + + + + + + +typedef CY CURRENCY; + +typedef struct tagSAFEARRAYBOUND + { + ULONG cElements; + LONG lLbound; + } SAFEARRAYBOUND; + +typedef struct tagSAFEARRAYBOUND *LPSAFEARRAYBOUND; + + +typedef struct _wireVARIANT *wireVARIANT; + +typedef struct _wireBRECORD *wireBRECORD; + +typedef struct _wireSAFEARR_BSTR + { + ULONG Size; + wireBSTR *aBstr; + } SAFEARR_BSTR; + +typedef struct _wireSAFEARR_UNKNOWN + { + ULONG Size; + IUnknown **apUnknown; + } SAFEARR_UNKNOWN; + +typedef struct _wireSAFEARR_DISPATCH + { + ULONG Size; + IDispatch **apDispatch; + } SAFEARR_DISPATCH; + +typedef struct _wireSAFEARR_VARIANT + { + ULONG Size; + wireVARIANT *aVariant; + } SAFEARR_VARIANT; + +typedef struct _wireSAFEARR_BRECORD + { + ULONG Size; + wireBRECORD *aRecord; + } SAFEARR_BRECORD; + +typedef struct _wireSAFEARR_HAVEIID + { + ULONG Size; + IUnknown **apUnknown; + IID iid; + } SAFEARR_HAVEIID; + +typedef +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; + union __MIDL_IOleAutomationTypes_0001 + { + SAFEARR_BSTR BstrStr; + SAFEARR_UNKNOWN UnknownStr; + SAFEARR_DISPATCH DispatchStr; + SAFEARR_VARIANT VariantStr; + SAFEARR_BRECORD RecordStr; + SAFEARR_HAVEIID HaveIidStr; + BYTE_SIZEDARR ByteStr; + WORD_SIZEDARR WordStr; + DWORD_SIZEDARR LongStr; + HYPER_SIZEDARR HyperStr; + } u; + } SAFEARRAYUNION; + +typedef struct _wireSAFEARRAY + { + USHORT cDims; + USHORT fFeatures; + ULONG cbElements; + ULONG cLocks; + SAFEARRAYUNION uArrayStructs; + SAFEARRAYBOUND rgsabound[ 1 ]; + } *wireSAFEARRAY; + +typedef wireSAFEARRAY *wirePSAFEARRAY; + +typedef struct tagSAFEARRAY + { + USHORT cDims; + USHORT fFeatures; + ULONG cbElements; + ULONG cLocks; + PVOID pvData; + SAFEARRAYBOUND rgsabound[ 1 ]; + } SAFEARRAY; + +typedef SAFEARRAY *LPSAFEARRAY; +# 452 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef struct tagVARIANT VARIANT; + +struct tagVARIANT + { + union + { + struct + { + VARTYPE vt; + WORD wReserved1; + WORD wReserved2; + WORD wReserved3; + union + { + LONGLONG llVal; + LONG lVal; + BYTE bVal; + SHORT iVal; + FLOAT fltVal; + DOUBLE dblVal; + VARIANT_BOOL boolVal; + + 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; + + 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 + { + PVOID pvRecord; + IRecordInfo *pRecInfo; + } ; + } ; + } ; + DECIMAL decVal; + } ; + } ; +typedef VARIANT *LPVARIANT; + +typedef VARIANT VARIANTARG; + +typedef VARIANT *LPVARIANTARG; +# 544 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +struct _wireBRECORD + { + ULONG fFlags; + ULONG clSize; + IRecordInfo *pRecInfo; + byte *pRecord; + } ; +struct _wireVARIANT + { + DWORD clSize; + DWORD rpcReserved; + USHORT vt; + USHORT wReserved1; + USHORT wReserved2; + USHORT wReserved3; + union + { + LONGLONG llVal; + LONG lVal; + BYTE bVal; + SHORT iVal; + FLOAT fltVal; + DOUBLE dblVal; + VARIANT_BOOL boolVal; + SCODE scode; + CY cyVal; + DATE date; + wireBSTR bstrVal; + IUnknown *punkVal; + IDispatch *pdispVal; + wirePSAFEARRAY parray; + wireBRECORD brecVal; + BYTE *pbVal; + SHORT *piVal; + LONG *plVal; + LONGLONG *pllVal; + FLOAT *pfltVal; + DOUBLE *pdblVal; + VARIANT_BOOL *pboolVal; + SCODE *pscode; + CY *pcyVal; + DATE *pdate; + wireBSTR *pbstrVal; + IUnknown **ppunkVal; + IDispatch **ppdispVal; + wirePSAFEARRAY *pparray; + wireVARIANT *pvarVal; + CHAR cVal; + USHORT uiVal; + ULONG ulVal; + ULONGLONG ullVal; + INT intVal; + UINT uintVal; + DECIMAL decVal; + DECIMAL *pdecVal; + CHAR *pcVal; + USHORT *puiVal; + ULONG *pulVal; + ULONGLONG *pullVal; + INT *pintVal; + UINT *puintVal; + + + } ; + } ; +typedef LONG DISPID; + +typedef DISPID MEMBERID; + +typedef DWORD HREFTYPE; + +typedef +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 + { + union + { + struct tagTYPEDESC *lptdesc; + struct tagARRAYDESC *lpadesc; + HREFTYPE hreftype; + + } ; + VARTYPE vt; + } TYPEDESC; + +typedef struct tagARRAYDESC + { + TYPEDESC tdescElem; + USHORT cDims; + 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; +# 680 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef struct tagIDLDESC + { + ULONG_PTR dwReserved; + USHORT wIDLFlags; + } IDLDESC; + +typedef struct tagIDLDESC *LPIDLDESC; +# 709 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef struct tagELEMDESC { + TYPEDESC tdesc; + union { + IDLDESC idldesc; + PARAMDESC paramdesc; + } ; +} ELEMDESC, * LPELEMDESC; + + + +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 + { + VARIANTARG *rgvarg; + DISPID *rgdispidNamedArgs; + UINT cArgs; + UINT cNamedArgs; + } DISPPARAMS; +# 770 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +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; + + + +typedef +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 +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 +enum tagINVOKEKIND + { + INVOKE_FUNC = 1, + INVOKE_PROPERTYGET = 2, + INVOKE_PROPERTYPUT = 4, + INVOKE_PROPERTYPUTREF = 8 + } INVOKEKIND; + +typedef struct tagFUNCDESC + { + MEMBERID memid; + SCODE *lprgscode; + 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 +enum tagVARKIND + { + VAR_PERINSTANCE = 0, + VAR_STATIC = ( VAR_PERINSTANCE + 1 ) , + VAR_CONST = ( VAR_STATIC + 1 ) , + VAR_DISPATCH = ( VAR_CONST + 1 ) + } VARKIND; +# 854 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef struct tagVARDESC + { + MEMBERID memid; + LPOLESTR lpstrSchema; + union + { + ULONG oInst; + VARIANT *lpvarValue; + } ; + 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 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; + 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; +# 964 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +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; + + + + + + + +typedef ICreateTypeInfo *LPCREATETYPEINFO; + + +extern "C" const IID IID_ICreateTypeInfo; + + + + struct __declspec(uuid("00020405-0000-0000-C000-000000000046")) __declspec(novtable) + ICreateTypeInfo : public IUnknown + { + public: + virtual HRESULT __stdcall SetGuid( + const GUID & guid) = 0; + + virtual HRESULT __stdcall SetTypeFlags( + UINT uTypeFlags) = 0; + + virtual HRESULT __stdcall SetDocString( + + LPOLESTR pStrDoc) = 0; + + virtual HRESULT __stdcall SetHelpContext( + DWORD dwHelpContext) = 0; + + virtual HRESULT __stdcall SetVersion( + WORD wMajorVerNum, + WORD wMinorVerNum) = 0; + + virtual HRESULT __stdcall AddRefTypeInfo( + ITypeInfo *pTInfo, + HREFTYPE *phRefType) = 0; + + virtual HRESULT __stdcall AddFuncDesc( + UINT index, + FUNCDESC *pFuncDesc) = 0; + + virtual HRESULT __stdcall AddImplType( + UINT index, + HREFTYPE hRefType) = 0; + + virtual HRESULT __stdcall SetImplTypeFlags( + UINT index, + INT implTypeFlags) = 0; + + virtual HRESULT __stdcall SetAlignment( + WORD cbAlignment) = 0; + + virtual HRESULT __stdcall SetSchema( + + LPOLESTR pStrSchema) = 0; + + virtual HRESULT __stdcall AddVarDesc( + UINT index, + VARDESC *pVarDesc) = 0; + + virtual HRESULT __stdcall SetFuncAndParamNames( + UINT index, + + LPOLESTR *rgszNames, + UINT cNames) = 0; + + virtual HRESULT __stdcall SetVarName( + UINT index, + + LPOLESTR szName) = 0; + + virtual HRESULT __stdcall SetTypeDescAlias( + TYPEDESC *pTDescAlias) = 0; + + virtual HRESULT __stdcall DefineFuncAsDllEntry( + UINT index, + + LPOLESTR szDllName, + + LPOLESTR szProcName) = 0; + + virtual HRESULT __stdcall SetFuncDocString( + UINT index, + + LPOLESTR szDocString) = 0; + + virtual HRESULT __stdcall SetVarDocString( + UINT index, + + LPOLESTR szDocString) = 0; + + virtual HRESULT __stdcall SetFuncHelpContext( + UINT index, + DWORD dwHelpContext) = 0; + + virtual HRESULT __stdcall SetVarHelpContext( + UINT index, + DWORD dwHelpContext) = 0; + + virtual HRESULT __stdcall SetMops( + UINT index, + BSTR bstrMops) = 0; + + virtual HRESULT __stdcall SetTypeIdldesc( + IDLDESC *pIdlDesc) = 0; + + virtual HRESULT __stdcall LayOut( void) = 0; + + }; +# 1321 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef ICreateTypeInfo2 *LPCREATETYPEINFO2; + + +extern "C" const IID IID_ICreateTypeInfo2; + + + + struct __declspec(uuid("0002040E-0000-0000-C000-000000000046")) __declspec(novtable) + ICreateTypeInfo2 : public ICreateTypeInfo + { + public: + virtual HRESULT __stdcall DeleteFuncDesc( + UINT index) = 0; + + virtual HRESULT __stdcall DeleteFuncDescByMemId( + MEMBERID memid, + INVOKEKIND invKind) = 0; + + virtual HRESULT __stdcall DeleteVarDesc( + UINT index) = 0; + + virtual HRESULT __stdcall DeleteVarDescByMemId( + MEMBERID memid) = 0; + + virtual HRESULT __stdcall DeleteImplType( + UINT index) = 0; + + virtual HRESULT __stdcall SetCustData( + const GUID & guid, + VARIANT *pVarVal) = 0; + + virtual HRESULT __stdcall SetFuncCustData( + UINT index, + const GUID & guid, + VARIANT *pVarVal) = 0; + + virtual HRESULT __stdcall SetParamCustData( + UINT indexFunc, + UINT indexParam, + const GUID & guid, + VARIANT *pVarVal) = 0; + + virtual HRESULT __stdcall SetVarCustData( + UINT index, + const GUID & guid, + VARIANT *pVarVal) = 0; + + virtual HRESULT __stdcall SetImplTypeCustData( + UINT index, + const GUID & guid, + VARIANT *pVarVal) = 0; + + virtual HRESULT __stdcall SetHelpStringContext( + ULONG dwHelpStringContext) = 0; + + virtual HRESULT __stdcall SetFuncHelpStringContext( + UINT index, + ULONG dwHelpStringContext) = 0; + + virtual HRESULT __stdcall SetVarHelpStringContext( + UINT index, + ULONG dwHelpStringContext) = 0; + + virtual HRESULT __stdcall Invalidate( void) = 0; + + virtual HRESULT __stdcall SetName( + + LPOLESTR szName) = 0; + + }; +# 1754 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef ICreateTypeLib *LPCREATETYPELIB; + + +extern "C" const IID IID_ICreateTypeLib; + + + + struct __declspec(uuid("00020406-0000-0000-C000-000000000046")) __declspec(novtable) + ICreateTypeLib : public IUnknown + { + public: + virtual HRESULT __stdcall CreateTypeInfo( + + LPOLESTR szName, + TYPEKIND tkind, + ICreateTypeInfo **ppCTInfo) = 0; + + virtual HRESULT __stdcall SetName( + + LPOLESTR szName) = 0; + + virtual HRESULT __stdcall SetVersion( + WORD wMajorVerNum, + WORD wMinorVerNum) = 0; + + virtual HRESULT __stdcall SetGuid( + const GUID & guid) = 0; + + virtual HRESULT __stdcall SetDocString( + + LPOLESTR szDoc) = 0; + + virtual HRESULT __stdcall SetHelpFileName( + + LPOLESTR szHelpFileName) = 0; + + virtual HRESULT __stdcall SetHelpContext( + DWORD dwHelpContext) = 0; + + virtual HRESULT __stdcall SetLcid( + LCID lcid) = 0; + + virtual HRESULT __stdcall SetLibFlags( + UINT uLibFlags) = 0; + + virtual HRESULT __stdcall SaveAllChanges( void) = 0; + + }; +# 1938 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef ICreateTypeLib2 *LPCREATETYPELIB2; + + +extern "C" const IID IID_ICreateTypeLib2; + + + + struct __declspec(uuid("0002040F-0000-0000-C000-000000000046")) __declspec(novtable) + ICreateTypeLib2 : public ICreateTypeLib + { + public: + virtual HRESULT __stdcall DeleteTypeInfo( + + LPOLESTR szName) = 0; + + virtual HRESULT __stdcall SetCustData( + const GUID & guid, + VARIANT *pVarVal) = 0; + + virtual HRESULT __stdcall SetHelpStringContext( + ULONG dwHelpStringContext) = 0; + + virtual HRESULT __stdcall SetHelpStringDll( + + LPOLESTR szFileName) = 0; + + }; +# 2136 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +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; + + + + + + + +typedef IDispatch *LPDISPATCH; +# 2179 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +extern "C" const IID IID_IDispatch; + + + + struct __declspec(uuid("00020400-0000-0000-C000-000000000046")) __declspec(novtable) + IDispatch : public IUnknown + { + public: + virtual HRESULT __stdcall GetTypeInfoCount( + UINT *pctinfo) = 0; + + virtual HRESULT __stdcall GetTypeInfo( + UINT iTInfo, + LCID lcid, + ITypeInfo **ppTInfo) = 0; + + virtual HRESULT __stdcall GetIDsOfNames( + const IID & riid, + LPOLESTR *rgszNames, + UINT cNames, + LCID lcid, + DISPID *rgDispId) = 0; + + virtual HRESULT __stdcall Invoke( + + DISPID dispIdMember, + + const IID & riid, + + LCID lcid, + + WORD wFlags, + + DISPPARAMS *pDispParams, + + VARIANT *pVarResult, + + EXCEPINFO *pExcepInfo, + + UINT *puArgErr) = 0; + + }; +# 2320 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" + HRESULT __stdcall IDispatch_RemoteInvoke_Proxy( + IDispatch * This, + DISPID dispIdMember, + const IID & riid, + LCID lcid, + DWORD dwFlags, + DISPPARAMS *pDispParams, + VARIANT *pVarResult, + EXCEPINFO *pExcepInfo, + UINT *pArgErr, + UINT cVarRef, + UINT *rgVarRefIdx, + VARIANTARG *rgVarRef); + + +void __stdcall IDispatch_RemoteInvoke_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 2352 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef IEnumVARIANT *LPENUMVARIANT; + + +extern "C" const IID IID_IEnumVARIANT; + + + + struct __declspec(uuid("00020404-0000-0000-C000-000000000046")) __declspec(novtable) + IEnumVARIANT : public IUnknown + { + public: + virtual HRESULT __stdcall Next( + ULONG celt, + VARIANT *rgVar, + ULONG *pCeltFetched) = 0; + + virtual HRESULT __stdcall Skip( + ULONG celt) = 0; + + virtual HRESULT __stdcall Reset( void) = 0; + + virtual HRESULT __stdcall Clone( + IEnumVARIANT **ppEnum) = 0; + + }; +# 2456 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" + HRESULT __stdcall IEnumVARIANT_RemoteNext_Proxy( + IEnumVARIANT * This, + ULONG celt, + VARIANT *rgVar, + ULONG *pCeltFetched); + + +void __stdcall IEnumVARIANT_RemoteNext_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 2480 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef ITypeComp *LPTYPECOMP; + +typedef +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; + + + + struct __declspec(uuid("00020403-0000-0000-C000-000000000046")) __declspec(novtable) + ITypeComp : public IUnknown + { + public: + virtual HRESULT __stdcall Bind( + + LPOLESTR szName, + ULONG lHashVal, + WORD wFlags, + ITypeInfo **ppTInfo, + DESCKIND *pDescKind, + BINDPTR *pBindPtr) = 0; + + virtual HRESULT __stdcall BindType( + + LPOLESTR szName, + ULONG lHashVal, + ITypeInfo **ppTInfo, + ITypeComp **ppTComp) = 0; + + }; +# 2602 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" + HRESULT __stdcall ITypeComp_RemoteBind_Proxy( + ITypeComp * This, + LPOLESTR szName, + ULONG lHashVal, + WORD wFlags, + ITypeInfo **ppTInfo, + DESCKIND *pDescKind, + LPFUNCDESC *ppFuncDesc, + LPVARDESC *ppVarDesc, + ITypeComp **ppTypeComp, + CLEANLOCALSTORAGE *pDummy); + + +void __stdcall ITypeComp_RemoteBind_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeComp_RemoteBindType_Proxy( + ITypeComp * This, + LPOLESTR szName, + ULONG lHashVal, + ITypeInfo **ppTInfo); + + +void __stdcall ITypeComp_RemoteBindType_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 2649 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +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; + + + + + + + +typedef ITypeInfo *LPTYPEINFO; + + +extern "C" const IID IID_ITypeInfo; + + + + struct __declspec(uuid("00020401-0000-0000-C000-000000000046")) __declspec(novtable) + ITypeInfo : public IUnknown + { + public: + virtual HRESULT __stdcall GetTypeAttr( + TYPEATTR **ppTypeAttr) = 0; + + virtual HRESULT __stdcall GetTypeComp( + ITypeComp **ppTComp) = 0; + + virtual HRESULT __stdcall GetFuncDesc( + UINT index, + FUNCDESC **ppFuncDesc) = 0; + + virtual HRESULT __stdcall GetVarDesc( + UINT index, + VARDESC **ppVarDesc) = 0; + + virtual HRESULT __stdcall GetNames( + MEMBERID memid, + BSTR *rgBstrNames, + UINT cMaxNames, + UINT *pcNames) = 0; + + virtual HRESULT __stdcall GetRefTypeOfImplType( + UINT index, + HREFTYPE *pRefType) = 0; + + virtual HRESULT __stdcall GetImplTypeFlags( + UINT index, + INT *pImplTypeFlags) = 0; + + virtual HRESULT __stdcall GetIDsOfNames( + + LPOLESTR *rgszNames, + UINT cNames, + MEMBERID *pMemId) = 0; + + virtual HRESULT __stdcall Invoke( + PVOID pvInstance, + MEMBERID memid, + WORD wFlags, + DISPPARAMS *pDispParams, + VARIANT *pVarResult, + EXCEPINFO *pExcepInfo, + UINT *puArgErr) = 0; + + virtual HRESULT __stdcall GetDocumentation( + MEMBERID memid, + BSTR *pBstrName, + BSTR *pBstrDocString, + DWORD *pdwHelpContext, + BSTR *pBstrHelpFile) = 0; + + virtual HRESULT __stdcall GetDllEntry( + MEMBERID memid, + INVOKEKIND invKind, + BSTR *pBstrDllName, + BSTR *pBstrName, + WORD *pwOrdinal) = 0; + + virtual HRESULT __stdcall GetRefTypeInfo( + HREFTYPE hRefType, + ITypeInfo **ppTInfo) = 0; + + virtual HRESULT __stdcall AddressOfMember( + MEMBERID memid, + INVOKEKIND invKind, + PVOID *ppv) = 0; + + virtual HRESULT __stdcall CreateInstance( + IUnknown *pUnkOuter, + const IID & riid, + PVOID *ppvObj) = 0; + + virtual HRESULT __stdcall GetMops( + MEMBERID memid, + BSTR *pBstrMops) = 0; + + virtual HRESULT __stdcall GetContainingTypeLib( + ITypeLib **ppTLib, + UINT *pIndex) = 0; + + virtual void __stdcall ReleaseTypeAttr( + TYPEATTR *pTypeAttr) = 0; + + virtual void __stdcall ReleaseFuncDesc( + FUNCDESC *pFuncDesc) = 0; + + virtual void __stdcall ReleaseVarDesc( + VARDESC *pVarDesc) = 0; + + }; +# 2972 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" + HRESULT __stdcall ITypeInfo_RemoteGetTypeAttr_Proxy( + ITypeInfo * This, + LPTYPEATTR *ppTypeAttr, + CLEANLOCALSTORAGE *pDummy); + + +void __stdcall ITypeInfo_RemoteGetTypeAttr_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeInfo_RemoteGetFuncDesc_Proxy( + ITypeInfo * This, + UINT index, + LPFUNCDESC *ppFuncDesc, + CLEANLOCALSTORAGE *pDummy); + + +void __stdcall ITypeInfo_RemoteGetFuncDesc_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeInfo_RemoteGetVarDesc_Proxy( + ITypeInfo * This, + UINT index, + LPVARDESC *ppVarDesc, + CLEANLOCALSTORAGE *pDummy); + + +void __stdcall ITypeInfo_RemoteGetVarDesc_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeInfo_RemoteGetNames_Proxy( + ITypeInfo * This, + MEMBERID memid, + BSTR *rgBstrNames, + UINT cMaxNames, + UINT *pcNames); + + +void __stdcall ITypeInfo_RemoteGetNames_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeInfo_LocalGetIDsOfNames_Proxy( + ITypeInfo * This); + + +void __stdcall ITypeInfo_LocalGetIDsOfNames_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeInfo_LocalInvoke_Proxy( + ITypeInfo * This); + + +void __stdcall ITypeInfo_LocalInvoke_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeInfo_RemoteGetDocumentation_Proxy( + ITypeInfo * This, + MEMBERID memid, + DWORD refPtrFlags, + BSTR *pBstrName, + BSTR *pBstrDocString, + DWORD *pdwHelpContext, + BSTR *pBstrHelpFile); + + +void __stdcall ITypeInfo_RemoteGetDocumentation_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeInfo_RemoteGetDllEntry_Proxy( + ITypeInfo * This, + MEMBERID memid, + INVOKEKIND invKind, + DWORD refPtrFlags, + BSTR *pBstrDllName, + BSTR *pBstrName, + WORD *pwOrdinal); + + +void __stdcall ITypeInfo_RemoteGetDllEntry_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeInfo_LocalAddressOfMember_Proxy( + ITypeInfo * This); + + +void __stdcall ITypeInfo_LocalAddressOfMember_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeInfo_RemoteCreateInstance_Proxy( + ITypeInfo * This, + const IID & riid, + IUnknown **ppvObj); + + +void __stdcall ITypeInfo_RemoteCreateInstance_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeInfo_RemoteGetContainingTypeLib_Proxy( + ITypeInfo * This, + ITypeLib **ppTLib, + UINT *pIndex); + + +void __stdcall ITypeInfo_RemoteGetContainingTypeLib_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeInfo_LocalReleaseTypeAttr_Proxy( + ITypeInfo * This); + + +void __stdcall ITypeInfo_LocalReleaseTypeAttr_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeInfo_LocalReleaseFuncDesc_Proxy( + ITypeInfo * This); + + +void __stdcall ITypeInfo_LocalReleaseFuncDesc_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeInfo_LocalReleaseVarDesc_Proxy( + ITypeInfo * This); + + +void __stdcall ITypeInfo_LocalReleaseVarDesc_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 3164 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef ITypeInfo2 *LPTYPEINFO2; + + +extern "C" const IID IID_ITypeInfo2; + + + + struct __declspec(uuid("00020412-0000-0000-C000-000000000046")) __declspec(novtable) + ITypeInfo2 : public ITypeInfo + { + public: + virtual HRESULT __stdcall GetTypeKind( + TYPEKIND *pTypeKind) = 0; + + virtual HRESULT __stdcall GetTypeFlags( + ULONG *pTypeFlags) = 0; + + virtual HRESULT __stdcall GetFuncIndexOfMemId( + MEMBERID memid, + INVOKEKIND invKind, + UINT *pFuncIndex) = 0; + + virtual HRESULT __stdcall GetVarIndexOfMemId( + MEMBERID memid, + UINT *pVarIndex) = 0; + + virtual HRESULT __stdcall GetCustData( + const GUID & guid, + VARIANT *pVarVal) = 0; + + virtual HRESULT __stdcall GetFuncCustData( + UINT index, + const GUID & guid, + VARIANT *pVarVal) = 0; + + virtual HRESULT __stdcall GetParamCustData( + UINT indexFunc, + UINT indexParam, + const GUID & guid, + VARIANT *pVarVal) = 0; + + virtual HRESULT __stdcall GetVarCustData( + UINT index, + const GUID & guid, + VARIANT *pVarVal) = 0; + + virtual HRESULT __stdcall GetImplTypeCustData( + UINT index, + const GUID & guid, + VARIANT *pVarVal) = 0; + + virtual HRESULT __stdcall GetDocumentation2( + MEMBERID memid, + LCID lcid, + BSTR *pbstrHelpString, + DWORD *pdwHelpStringContext, + BSTR *pbstrHelpStringDll) = 0; + + virtual HRESULT __stdcall GetAllCustData( + CUSTDATA *pCustData) = 0; + + virtual HRESULT __stdcall GetAllFuncCustData( + UINT index, + CUSTDATA *pCustData) = 0; + + virtual HRESULT __stdcall GetAllParamCustData( + UINT indexFunc, + UINT indexParam, + CUSTDATA *pCustData) = 0; + + virtual HRESULT __stdcall GetAllVarCustData( + UINT index, + CUSTDATA *pCustData) = 0; + + virtual HRESULT __stdcall GetAllImplTypeCustData( + UINT index, + CUSTDATA *pCustData) = 0; + + }; +# 3585 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" + HRESULT __stdcall ITypeInfo2_RemoteGetDocumentation2_Proxy( + ITypeInfo2 * This, + MEMBERID memid, + LCID lcid, + DWORD refPtrFlags, + BSTR *pbstrHelpString, + DWORD *pdwHelpStringContext, + BSTR *pbstrHelpStringDll); + + +void __stdcall ITypeInfo2_RemoteGetDocumentation2_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 3615 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +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; + + + + + + + +typedef +enum tagSYSKIND + { + SYS_WIN16 = 0, + SYS_WIN32 = ( SYS_WIN16 + 1 ) , + SYS_MAC = ( SYS_WIN32 + 1 ) , + SYS_WIN64 = ( SYS_MAC + 1 ) + } SYSKIND; + +typedef +enum tagLIBFLAGS + { + LIBFLAG_FRESTRICTED = 0x1, + LIBFLAG_FCONTROL = 0x2, + LIBFLAG_FHIDDEN = 0x4, + LIBFLAG_FHASDISKIMAGE = 0x8 + } LIBFLAGS; + +typedef 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; + + + + struct __declspec(uuid("00020402-0000-0000-C000-000000000046")) __declspec(novtable) + ITypeLib : public IUnknown + { + public: + virtual UINT __stdcall GetTypeInfoCount( void) = 0; + + virtual HRESULT __stdcall GetTypeInfo( + UINT index, + ITypeInfo **ppTInfo) = 0; + + virtual HRESULT __stdcall GetTypeInfoType( + UINT index, + TYPEKIND *pTKind) = 0; + + virtual HRESULT __stdcall GetTypeInfoOfGuid( + const GUID & guid, + ITypeInfo **ppTinfo) = 0; + + virtual HRESULT __stdcall GetLibAttr( + TLIBATTR **ppTLibAttr) = 0; + + virtual HRESULT __stdcall GetTypeComp( + ITypeComp **ppTComp) = 0; + + virtual HRESULT __stdcall GetDocumentation( + INT index, + BSTR *pBstrName, + BSTR *pBstrDocString, + DWORD *pdwHelpContext, + BSTR *pBstrHelpFile) = 0; + + virtual HRESULT __stdcall IsName( + + LPOLESTR szNameBuf, + ULONG lHashVal, + BOOL *pfName) = 0; + + virtual HRESULT __stdcall FindName( + + LPOLESTR szNameBuf, + ULONG lHashVal, + ITypeInfo **ppTInfo, + MEMBERID *rgMemId, + USHORT *pcFound) = 0; + + virtual void __stdcall ReleaseTLibAttr( + TLIBATTR *pTLibAttr) = 0; + + }; +# 3844 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" + HRESULT __stdcall ITypeLib_RemoteGetTypeInfoCount_Proxy( + ITypeLib * This, + UINT *pcTInfo); + + +void __stdcall ITypeLib_RemoteGetTypeInfoCount_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeLib_RemoteGetLibAttr_Proxy( + ITypeLib * This, + LPTLIBATTR *ppTLibAttr, + CLEANLOCALSTORAGE *pDummy); + + +void __stdcall ITypeLib_RemoteGetLibAttr_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeLib_RemoteGetDocumentation_Proxy( + ITypeLib * This, + INT index, + DWORD refPtrFlags, + BSTR *pBstrName, + BSTR *pBstrDocString, + DWORD *pdwHelpContext, + BSTR *pBstrHelpFile); + + +void __stdcall ITypeLib_RemoteGetDocumentation_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeLib_RemoteIsName_Proxy( + ITypeLib * This, + LPOLESTR szNameBuf, + ULONG lHashVal, + BOOL *pfName, + BSTR *pBstrLibName); + + +void __stdcall ITypeLib_RemoteIsName_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeLib_RemoteFindName_Proxy( + ITypeLib * This, + LPOLESTR szNameBuf, + ULONG lHashVal, + ITypeInfo **ppTInfo, + MEMBERID *rgMemId, + USHORT *pcFound, + BSTR *pBstrLibName); + + +void __stdcall ITypeLib_RemoteFindName_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeLib_LocalReleaseTLibAttr_Proxy( + ITypeLib * This); + + +void __stdcall ITypeLib_LocalReleaseTLibAttr_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 3942 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +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; + + + + + + + +typedef ITypeLib2 *LPTYPELIB2; + + +extern "C" const IID IID_ITypeLib2; + + + + struct __declspec(uuid("00020411-0000-0000-C000-000000000046")) __declspec(novtable) + ITypeLib2 : public ITypeLib + { + public: + virtual HRESULT __stdcall GetCustData( + const GUID & guid, + VARIANT *pVarVal) = 0; + + virtual HRESULT __stdcall GetLibStatistics( + ULONG *pcUniqueNames, + ULONG *pcchUniqueNames) = 0; + + virtual HRESULT __stdcall GetDocumentation2( + INT index, + LCID lcid, + BSTR *pbstrHelpString, + DWORD *pdwHelpStringContext, + BSTR *pbstrHelpStringDll) = 0; + + virtual HRESULT __stdcall GetAllCustData( + CUSTDATA *pCustData) = 0; + + }; +# 4150 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" + HRESULT __stdcall ITypeLib2_RemoteGetLibStatistics_Proxy( + ITypeLib2 * This, + ULONG *pcUniqueNames, + ULONG *pcchUniqueNames); + + +void __stdcall ITypeLib2_RemoteGetLibStatistics_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ITypeLib2_RemoteGetDocumentation2_Proxy( + ITypeLib2 * This, + INT index, + LCID lcid, + DWORD refPtrFlags, + BSTR *pbstrHelpString, + DWORD *pdwHelpStringContext, + BSTR *pbstrHelpStringDll); + + +void __stdcall ITypeLib2_RemoteGetDocumentation2_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 4190 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef 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; + + + + struct __declspec(uuid("00020410-0000-0000-C000-000000000046")) __declspec(novtable) + ITypeChangeEvents : public IUnknown + { + public: + virtual HRESULT __stdcall RequestTypeChange( + CHANGEKIND changeKind, + ITypeInfo *pTInfoBefore, + + LPOLESTR pStrName, + INT *pfCancel) = 0; + + virtual HRESULT __stdcall AfterTypeChange( + CHANGEKIND changeKind, + ITypeInfo *pTInfoAfter, + + LPOLESTR pStrName) = 0; + + }; +# 4309 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef IErrorInfo *LPERRORINFO; + + +extern "C" const IID IID_IErrorInfo; + + + + struct __declspec(uuid("1CF2B120-547D-101B-8E65-08002B2BD119")) __declspec(novtable) + IErrorInfo : public IUnknown + { + public: + virtual HRESULT __stdcall GetGUID( + GUID *pGUID) = 0; + + virtual HRESULT __stdcall GetSource( + BSTR *pBstrSource) = 0; + + virtual HRESULT __stdcall GetDescription( + BSTR *pBstrDescription) = 0; + + virtual HRESULT __stdcall GetHelpFile( + BSTR *pBstrHelpFile) = 0; + + virtual HRESULT __stdcall GetHelpContext( + DWORD *pdwHelpContext) = 0; + + }; +# 4431 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef ICreateErrorInfo *LPCREATEERRORINFO; + + +extern "C" const IID IID_ICreateErrorInfo; + + + + struct __declspec(uuid("22F03340-547D-101B-8E65-08002B2BD119")) __declspec(novtable) + ICreateErrorInfo : public IUnknown + { + public: + virtual HRESULT __stdcall SetGUID( + const GUID & rguid) = 0; + + virtual HRESULT __stdcall SetSource( + LPOLESTR szSource) = 0; + + virtual HRESULT __stdcall SetDescription( + LPOLESTR szDescription) = 0; + + virtual HRESULT __stdcall SetHelpFile( + LPOLESTR szHelpFile) = 0; + + virtual HRESULT __stdcall SetHelpContext( + DWORD dwHelpContext) = 0; + + }; +# 4553 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef ISupportErrorInfo *LPSUPPORTERRORINFO; + + +extern "C" const IID IID_ISupportErrorInfo; + + + + struct __declspec(uuid("DF0B3D60-548F-101B-8E65-08002B2BD119")) __declspec(novtable) + ISupportErrorInfo : public IUnknown + { + public: + virtual HRESULT __stdcall InterfaceSupportsErrorInfo( + const IID & riid) = 0; + + }; +# 4636 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +extern "C" const IID IID_ITypeFactory; + + + + struct __declspec(uuid("0000002E-0000-0000-C000-000000000046")) __declspec(novtable) + ITypeFactory : public IUnknown + { + public: + virtual HRESULT __stdcall CreateFromTypeInfo( + ITypeInfo *pTypeInfo, + const IID & riid, + IUnknown **ppv) = 0; + + }; +# 4720 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +extern "C" const IID IID_ITypeMarshal; + + + + struct __declspec(uuid("0000002D-0000-0000-C000-000000000046")) __declspec(novtable) + ITypeMarshal : public IUnknown + { + public: + virtual HRESULT __stdcall Size( + PVOID pvType, + DWORD dwDestContext, + PVOID pvDestContext, + ULONG *pSize) = 0; + + virtual HRESULT __stdcall Marshal( + PVOID pvType, + DWORD dwDestContext, + PVOID pvDestContext, + ULONG cbBufferLength, + + BYTE *pBuffer, + + ULONG *pcbWritten) = 0; + + virtual HRESULT __stdcall Unmarshal( + PVOID pvType, + DWORD dwFlags, + ULONG cbBufferLength, + + BYTE *pBuffer, + + ULONG *pcbRead) = 0; + + virtual HRESULT __stdcall Free( + PVOID pvType) = 0; + + }; +# 4861 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef IRecordInfo *LPRECORDINFO; + + +extern "C" const IID IID_IRecordInfo; + + + + struct __declspec(uuid("0000002F-0000-0000-C000-000000000046")) __declspec(novtable) + IRecordInfo : public IUnknown + { + public: + virtual HRESULT __stdcall RecordInit( + PVOID pvNew) = 0; + + virtual HRESULT __stdcall RecordClear( + PVOID pvExisting) = 0; + + virtual HRESULT __stdcall RecordCopy( + PVOID pvExisting, + PVOID pvNew) = 0; + + virtual HRESULT __stdcall GetGuid( + GUID *pguid) = 0; + + virtual HRESULT __stdcall GetName( + BSTR *pbstrName) = 0; + + virtual HRESULT __stdcall GetSize( + ULONG *pcbSize) = 0; + + virtual HRESULT __stdcall GetTypeInfo( + ITypeInfo **ppTypeInfo) = 0; + + virtual HRESULT __stdcall GetField( + PVOID pvData, + LPCOLESTR szFieldName, + VARIANT *pvarField) = 0; + + virtual HRESULT __stdcall GetFieldNoCopy( + PVOID pvData, + LPCOLESTR szFieldName, + VARIANT *pvarField, + PVOID *ppvDataCArray) = 0; + + virtual HRESULT __stdcall PutField( + ULONG wFlags, + PVOID pvData, + LPCOLESTR szFieldName, + VARIANT *pvarField) = 0; + + virtual HRESULT __stdcall PutFieldNoCopy( + ULONG wFlags, + PVOID pvData, + LPCOLESTR szFieldName, + VARIANT *pvarField) = 0; + + virtual HRESULT __stdcall GetFieldNames( + ULONG *pcNames, + BSTR *rgBstrNames) = 0; + + virtual BOOL __stdcall IsMatchingType( + IRecordInfo *pRecordInfo) = 0; + + virtual PVOID __stdcall RecordCreate( void) = 0; + + virtual HRESULT __stdcall RecordCreateCopy( + PVOID pvSource, + PVOID *ppvDest) = 0; + + virtual HRESULT __stdcall RecordDestroy( + PVOID pvRecord) = 0; + + }; +# 5119 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef IErrorLog *LPERRORLOG; + + +extern "C" const IID IID_IErrorLog; + + + + struct __declspec(uuid("3127CA40-446E-11CE-8135-00AA004BB851")) __declspec(novtable) + IErrorLog : public IUnknown + { + public: + virtual HRESULT __stdcall AddError( + LPCOLESTR pszPropName, + EXCEPINFO *pExcepInfo) = 0; + + }; +# 5203 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +typedef IPropertyBag *LPPROPERTYBAG; + + +extern "C" const IID IID_IPropertyBag; + + + + struct __declspec(uuid("55272A00-42CB-11CE-8135-00AA004BB851")) __declspec(novtable) + IPropertyBag : public IUnknown + { + public: + virtual HRESULT __stdcall Read( + LPCOLESTR pszPropName, + VARIANT *pVar, + IErrorLog *pErrorLog) = 0; + + virtual HRESULT __stdcall Write( + LPCOLESTR pszPropName, + VARIANT *pVar) = 0; + + }; +# 5291 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" + HRESULT __stdcall IPropertyBag_RemoteRead_Proxy( + IPropertyBag * This, + LPCOLESTR pszPropName, + VARIANT *pVar, + IErrorLog *pErrorLog, + DWORD varType, + IUnknown *pUnkObj); + + +void __stdcall IPropertyBag_RemoteRead_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 5318 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oaidl.h" +#pragma warning(pop) + + + + + + +extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0021_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_oaidl_0000_0021_v0_0_s_ifspec; + + + +unsigned long __stdcall BSTR_UserSize( unsigned long *, unsigned long , BSTR * ); +unsigned char * __stdcall BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * ); +unsigned char * __stdcall BSTR_UserUnmarshal( unsigned long *, unsigned char *, BSTR * ); +void __stdcall BSTR_UserFree( unsigned long *, BSTR * ); + +unsigned long __stdcall CLEANLOCALSTORAGE_UserSize( unsigned long *, unsigned long , CLEANLOCALSTORAGE * ); +unsigned char * __stdcall CLEANLOCALSTORAGE_UserMarshal( unsigned long *, unsigned char *, CLEANLOCALSTORAGE * ); +unsigned char * __stdcall CLEANLOCALSTORAGE_UserUnmarshal( unsigned long *, unsigned char *, CLEANLOCALSTORAGE * ); +void __stdcall CLEANLOCALSTORAGE_UserFree( unsigned long *, CLEANLOCALSTORAGE * ); + +unsigned long __stdcall VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * ); +unsigned char * __stdcall VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * ); +unsigned char * __stdcall VARIANT_UserUnmarshal( unsigned long *, unsigned char *, VARIANT * ); +void __stdcall VARIANT_UserFree( unsigned long *, VARIANT * ); + +unsigned long __stdcall BSTR_UserSize64( unsigned long *, unsigned long , BSTR * ); +unsigned char * __stdcall BSTR_UserMarshal64( unsigned long *, unsigned char *, BSTR * ); +unsigned char * __stdcall BSTR_UserUnmarshal64( unsigned long *, unsigned char *, BSTR * ); +void __stdcall BSTR_UserFree64( unsigned long *, BSTR * ); + +unsigned long __stdcall CLEANLOCALSTORAGE_UserSize64( unsigned long *, unsigned long , CLEANLOCALSTORAGE * ); +unsigned char * __stdcall CLEANLOCALSTORAGE_UserMarshal64( unsigned long *, unsigned char *, CLEANLOCALSTORAGE * ); +unsigned char * __stdcall CLEANLOCALSTORAGE_UserUnmarshal64( unsigned long *, unsigned char *, CLEANLOCALSTORAGE * ); +void __stdcall CLEANLOCALSTORAGE_UserFree64( unsigned long *, CLEANLOCALSTORAGE * ); + +unsigned long __stdcall VARIANT_UserSize64( unsigned long *, unsigned long , VARIANT * ); +unsigned char * __stdcall VARIANT_UserMarshal64( unsigned long *, unsigned char *, VARIANT * ); +unsigned char * __stdcall VARIANT_UserUnmarshal64( unsigned long *, unsigned char *, VARIANT * ); +void __stdcall VARIANT_UserFree64( unsigned long *, VARIANT * ); + + HRESULT __stdcall IDispatch_Invoke_Proxy( + IDispatch * This, + + DISPID dispIdMember, + + const IID & riid, + + LCID lcid, + + WORD wFlags, + + DISPPARAMS *pDispParams, + + VARIANT *pVarResult, + + EXCEPINFO *pExcepInfo, + + UINT *puArgErr); + + + HRESULT __stdcall IDispatch_Invoke_Stub( + IDispatch * This, + DISPID dispIdMember, + const IID & riid, + LCID lcid, + DWORD dwFlags, + DISPPARAMS *pDispParams, + VARIANT *pVarResult, + EXCEPINFO *pExcepInfo, + UINT *pArgErr, + UINT cVarRef, + UINT *rgVarRefIdx, + VARIANTARG *rgVarRef); + + HRESULT __stdcall IEnumVARIANT_Next_Proxy( + IEnumVARIANT * This, + ULONG celt, + VARIANT *rgVar, + ULONG *pCeltFetched); + + + HRESULT __stdcall IEnumVARIANT_Next_Stub( + IEnumVARIANT * This, + ULONG celt, + VARIANT *rgVar, + ULONG *pCeltFetched); + + HRESULT __stdcall ITypeComp_Bind_Proxy( + ITypeComp * This, + + LPOLESTR szName, + ULONG lHashVal, + WORD wFlags, + ITypeInfo **ppTInfo, + DESCKIND *pDescKind, + BINDPTR *pBindPtr); + + + HRESULT __stdcall ITypeComp_Bind_Stub( + ITypeComp * This, + LPOLESTR szName, + ULONG lHashVal, + WORD wFlags, + ITypeInfo **ppTInfo, + DESCKIND *pDescKind, + LPFUNCDESC *ppFuncDesc, + LPVARDESC *ppVarDesc, + ITypeComp **ppTypeComp, + CLEANLOCALSTORAGE *pDummy); + + HRESULT __stdcall ITypeComp_BindType_Proxy( + ITypeComp * This, + + LPOLESTR szName, + ULONG lHashVal, + ITypeInfo **ppTInfo, + ITypeComp **ppTComp); + + + HRESULT __stdcall ITypeComp_BindType_Stub( + ITypeComp * This, + LPOLESTR szName, + ULONG lHashVal, + ITypeInfo **ppTInfo); + + HRESULT __stdcall ITypeInfo_GetTypeAttr_Proxy( + ITypeInfo * This, + TYPEATTR **ppTypeAttr); + + + HRESULT __stdcall ITypeInfo_GetTypeAttr_Stub( + ITypeInfo * This, + LPTYPEATTR *ppTypeAttr, + CLEANLOCALSTORAGE *pDummy); + + HRESULT __stdcall ITypeInfo_GetFuncDesc_Proxy( + ITypeInfo * This, + UINT index, + FUNCDESC **ppFuncDesc); + + + HRESULT __stdcall ITypeInfo_GetFuncDesc_Stub( + ITypeInfo * This, + UINT index, + LPFUNCDESC *ppFuncDesc, + CLEANLOCALSTORAGE *pDummy); + + HRESULT __stdcall ITypeInfo_GetVarDesc_Proxy( + ITypeInfo * This, + UINT index, + VARDESC **ppVarDesc); + + + HRESULT __stdcall ITypeInfo_GetVarDesc_Stub( + ITypeInfo * This, + UINT index, + LPVARDESC *ppVarDesc, + CLEANLOCALSTORAGE *pDummy); + + HRESULT __stdcall ITypeInfo_GetNames_Proxy( + ITypeInfo * This, + MEMBERID memid, + BSTR *rgBstrNames, + UINT cMaxNames, + UINT *pcNames); + + + HRESULT __stdcall ITypeInfo_GetNames_Stub( + ITypeInfo * This, + MEMBERID memid, + BSTR *rgBstrNames, + UINT cMaxNames, + UINT *pcNames); + + HRESULT __stdcall ITypeInfo_GetIDsOfNames_Proxy( + ITypeInfo * This, + + LPOLESTR *rgszNames, + UINT cNames, + MEMBERID *pMemId); + + + HRESULT __stdcall ITypeInfo_GetIDsOfNames_Stub( + ITypeInfo * This); + + HRESULT __stdcall ITypeInfo_Invoke_Proxy( + ITypeInfo * This, + PVOID pvInstance, + MEMBERID memid, + WORD wFlags, + DISPPARAMS *pDispParams, + VARIANT *pVarResult, + EXCEPINFO *pExcepInfo, + UINT *puArgErr); + + + HRESULT __stdcall ITypeInfo_Invoke_Stub( + ITypeInfo * This); + + HRESULT __stdcall ITypeInfo_GetDocumentation_Proxy( + ITypeInfo * This, + MEMBERID memid, + BSTR *pBstrName, + BSTR *pBstrDocString, + DWORD *pdwHelpContext, + BSTR *pBstrHelpFile); + + + HRESULT __stdcall ITypeInfo_GetDocumentation_Stub( + ITypeInfo * This, + MEMBERID memid, + DWORD refPtrFlags, + BSTR *pBstrName, + BSTR *pBstrDocString, + DWORD *pdwHelpContext, + BSTR *pBstrHelpFile); + + HRESULT __stdcall ITypeInfo_GetDllEntry_Proxy( + ITypeInfo * This, + MEMBERID memid, + INVOKEKIND invKind, + BSTR *pBstrDllName, + BSTR *pBstrName, + WORD *pwOrdinal); + + + HRESULT __stdcall ITypeInfo_GetDllEntry_Stub( + ITypeInfo * This, + MEMBERID memid, + INVOKEKIND invKind, + DWORD refPtrFlags, + BSTR *pBstrDllName, + BSTR *pBstrName, + WORD *pwOrdinal); + + HRESULT __stdcall ITypeInfo_AddressOfMember_Proxy( + ITypeInfo * This, + MEMBERID memid, + INVOKEKIND invKind, + PVOID *ppv); + + + HRESULT __stdcall ITypeInfo_AddressOfMember_Stub( + ITypeInfo * This); + + HRESULT __stdcall ITypeInfo_CreateInstance_Proxy( + ITypeInfo * This, + IUnknown *pUnkOuter, + const IID & riid, + PVOID *ppvObj); + + + HRESULT __stdcall ITypeInfo_CreateInstance_Stub( + ITypeInfo * This, + const IID & riid, + IUnknown **ppvObj); + + HRESULT __stdcall ITypeInfo_GetContainingTypeLib_Proxy( + ITypeInfo * This, + ITypeLib **ppTLib, + UINT *pIndex); + + + HRESULT __stdcall ITypeInfo_GetContainingTypeLib_Stub( + ITypeInfo * This, + ITypeLib **ppTLib, + UINT *pIndex); + + void __stdcall ITypeInfo_ReleaseTypeAttr_Proxy( + ITypeInfo * This, + TYPEATTR *pTypeAttr); + + + HRESULT __stdcall ITypeInfo_ReleaseTypeAttr_Stub( + ITypeInfo * This); + + void __stdcall ITypeInfo_ReleaseFuncDesc_Proxy( + ITypeInfo * This, + FUNCDESC *pFuncDesc); + + + HRESULT __stdcall ITypeInfo_ReleaseFuncDesc_Stub( + ITypeInfo * This); + + void __stdcall ITypeInfo_ReleaseVarDesc_Proxy( + ITypeInfo * This, + VARDESC *pVarDesc); + + + HRESULT __stdcall ITypeInfo_ReleaseVarDesc_Stub( + ITypeInfo * This); + + HRESULT __stdcall ITypeInfo2_GetDocumentation2_Proxy( + ITypeInfo2 * This, + MEMBERID memid, + LCID lcid, + BSTR *pbstrHelpString, + DWORD *pdwHelpStringContext, + BSTR *pbstrHelpStringDll); + + + HRESULT __stdcall ITypeInfo2_GetDocumentation2_Stub( + ITypeInfo2 * This, + MEMBERID memid, + LCID lcid, + DWORD refPtrFlags, + BSTR *pbstrHelpString, + DWORD *pdwHelpStringContext, + BSTR *pbstrHelpStringDll); + + UINT __stdcall ITypeLib_GetTypeInfoCount_Proxy( + ITypeLib * This); + + + HRESULT __stdcall ITypeLib_GetTypeInfoCount_Stub( + ITypeLib * This, + UINT *pcTInfo); + + HRESULT __stdcall ITypeLib_GetLibAttr_Proxy( + ITypeLib * This, + TLIBATTR **ppTLibAttr); + + + HRESULT __stdcall ITypeLib_GetLibAttr_Stub( + ITypeLib * This, + LPTLIBATTR *ppTLibAttr, + CLEANLOCALSTORAGE *pDummy); + + HRESULT __stdcall ITypeLib_GetDocumentation_Proxy( + ITypeLib * This, + INT index, + BSTR *pBstrName, + BSTR *pBstrDocString, + DWORD *pdwHelpContext, + BSTR *pBstrHelpFile); + + + HRESULT __stdcall ITypeLib_GetDocumentation_Stub( + ITypeLib * This, + INT index, + DWORD refPtrFlags, + BSTR *pBstrName, + BSTR *pBstrDocString, + DWORD *pdwHelpContext, + BSTR *pBstrHelpFile); + + HRESULT __stdcall ITypeLib_IsName_Proxy( + ITypeLib * This, + + LPOLESTR szNameBuf, + ULONG lHashVal, + BOOL *pfName); + + + HRESULT __stdcall ITypeLib_IsName_Stub( + ITypeLib * This, + LPOLESTR szNameBuf, + ULONG lHashVal, + BOOL *pfName, + BSTR *pBstrLibName); + + HRESULT __stdcall ITypeLib_FindName_Proxy( + ITypeLib * This, + + LPOLESTR szNameBuf, + ULONG lHashVal, + ITypeInfo **ppTInfo, + MEMBERID *rgMemId, + USHORT *pcFound); + + + HRESULT __stdcall ITypeLib_FindName_Stub( + ITypeLib * This, + LPOLESTR szNameBuf, + ULONG lHashVal, + ITypeInfo **ppTInfo, + MEMBERID *rgMemId, + USHORT *pcFound, + BSTR *pBstrLibName); + + void __stdcall ITypeLib_ReleaseTLibAttr_Proxy( + ITypeLib * This, + TLIBATTR *pTLibAttr); + + + HRESULT __stdcall ITypeLib_ReleaseTLibAttr_Stub( + ITypeLib * This); + + HRESULT __stdcall ITypeLib2_GetLibStatistics_Proxy( + ITypeLib2 * This, + ULONG *pcUniqueNames, + ULONG *pcchUniqueNames); + + + HRESULT __stdcall ITypeLib2_GetLibStatistics_Stub( + ITypeLib2 * This, + ULONG *pcUniqueNames, + ULONG *pcchUniqueNames); + + HRESULT __stdcall ITypeLib2_GetDocumentation2_Proxy( + ITypeLib2 * This, + INT index, + LCID lcid, + BSTR *pbstrHelpString, + DWORD *pdwHelpStringContext, + BSTR *pbstrHelpStringDll); + + + HRESULT __stdcall ITypeLib2_GetDocumentation2_Stub( + ITypeLib2 * This, + INT index, + LCID lcid, + DWORD refPtrFlags, + BSTR *pbstrHelpString, + DWORD *pdwHelpStringContext, + BSTR *pbstrHelpStringDll); + + HRESULT __stdcall IPropertyBag_Read_Proxy( + IPropertyBag * This, + LPCOLESTR pszPropName, + VARIANT *pVar, + IErrorLog *pErrorLog); + + + HRESULT __stdcall IPropertyBag_Read_Stub( + IPropertyBag * This, + LPCOLESTR pszPropName, + VARIANT *pVar, + IErrorLog *pErrorLog, + DWORD varType, + IUnknown *pUnkObj); + + + + + + +} +# 72 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" 2 + + + +extern "C"{ +# 91 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" +#pragma warning(push) +#pragma warning(disable: 4820) + +#pragma warning(disable: 4201) +#pragma warning(disable: 4237) +# 106 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" +typedef struct tagVersionedStream + { + GUID guidVersion; + IStream *pStream; + } VERSIONEDSTREAM; + +typedef struct tagVersionedStream *LPVERSIONEDSTREAM; +# 138 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" +typedef struct tagPROPVARIANT PROPVARIANT; + +typedef struct tagCAC + { + ULONG cElems; + CHAR *pElems; + } CAC; + +typedef struct tagCAUB + { + ULONG cElems; + UCHAR *pElems; + } CAUB; + +typedef struct tagCAI + { + ULONG cElems; + SHORT *pElems; + } CAI; + +typedef struct tagCAUI + { + ULONG cElems; + USHORT *pElems; + } CAUI; + +typedef struct tagCAL + { + ULONG cElems; + LONG *pElems; + } CAL; + +typedef struct tagCAUL + { + ULONG cElems; + ULONG *pElems; + } CAUL; + +typedef struct tagCAFLT + { + ULONG cElems; + FLOAT *pElems; + } CAFLT; + +typedef struct tagCADBL + { + ULONG cElems; + DOUBLE *pElems; + } CADBL; + +typedef struct tagCACY + { + ULONG cElems; + CY *pElems; + } CACY; + +typedef struct tagCADATE + { + ULONG cElems; + DATE *pElems; + } CADATE; + +typedef struct tagCABSTR + { + ULONG cElems; + BSTR *pElems; + } CABSTR; + +typedef struct tagCABSTRBLOB + { + ULONG cElems; + BSTRBLOB *pElems; + } CABSTRBLOB; + +typedef struct tagCABOOL + { + ULONG cElems; + VARIANT_BOOL *pElems; + } CABOOL; + +typedef struct tagCASCODE + { + ULONG cElems; + SCODE *pElems; + } CASCODE; + +typedef struct tagCAPROPVARIANT + { + ULONG cElems; + PROPVARIANT *pElems; + } CAPROPVARIANT; + +typedef struct tagCAH + { + ULONG cElems; + LARGE_INTEGER *pElems; + } CAH; + +typedef struct tagCAUH + { + ULONG cElems; + ULARGE_INTEGER *pElems; + } CAUH; + +typedef struct tagCALPSTR + { + ULONG cElems; + LPSTR *pElems; + } CALPSTR; + +typedef struct tagCALPWSTR + { + ULONG cElems; + LPWSTR *pElems; + } CALPWSTR; + +typedef struct tagCAFILETIME + { + ULONG cElems; + FILETIME *pElems; + } CAFILETIME; + +typedef struct tagCACLIPDATA + { + ULONG cElems; + CLIPDATA *pElems; + } CACLIPDATA; + +typedef struct tagCACLSID + { + ULONG cElems; + CLSID *pElems; + } CACLSID; +# 282 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" +typedef WORD PROPVAR_PAD1; +typedef WORD PROPVAR_PAD2; +typedef WORD PROPVAR_PAD3; +# 294 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" +struct tagPROPVARIANT { + union { + +struct + { + VARTYPE vt; + PROPVAR_PAD1 wReserved1; + PROPVAR_PAD2 wReserved2; + PROPVAR_PAD3 wReserved3; + union + { + + CHAR cVal; + UCHAR bVal; + SHORT iVal; + USHORT uiVal; + LONG lVal; + ULONG ulVal; + INT intVal; + UINT uintVal; + LARGE_INTEGER hVal; + ULARGE_INTEGER uhVal; + FLOAT fltVal; + DOUBLE dblVal; + VARIANT_BOOL boolVal; + + SCODE scode; + CY cyVal; + DATE date; + FILETIME filetime; + CLSID *puuid; + CLIPDATA *pclipdata; + BSTR bstrVal; + BSTRBLOB bstrblobVal; + BLOB blob; + LPSTR pszVal; + LPWSTR pwszVal; + IUnknown *punkVal; + IDispatch *pdispVal; + IStream *pStream; + IStorage *pStorage; + LPVERSIONEDSTREAM pVersionedStream; + LPSAFEARRAY parray; + CAC cac; + CAUB caub; + CAI cai; + CAUI caui; + CAL cal; + CAUL caul; + CAH cah; + CAUH cauh; + CAFLT caflt; + CADBL cadbl; + CABOOL cabool; + CASCODE cascode; + CACY cacy; + CADATE cadate; + CAFILETIME cafiletime; + CACLSID cauuid; + CACLIPDATA caclipdata; + CABSTR cabstr; + CABSTRBLOB cabstrblob; + CALPSTR calpstr; + CALPWSTR calpwstr; + CAPROPVARIANT capropvar; + CHAR *pcVal; + UCHAR *pbVal; + SHORT *piVal; + USHORT *puiVal; + LONG *plVal; + ULONG *pulVal; + INT *pintVal; + UINT *puintVal; + FLOAT *pfltVal; + DOUBLE *pdblVal; + VARIANT_BOOL *pboolVal; + DECIMAL *pdecVal; + SCODE *pscode; + CY *pcyVal; + DATE *pdate; + BSTR *pbstrVal; + IUnknown **ppunkVal; + IDispatch **ppdispVal; + LPSAFEARRAY *pparray; + PROPVARIANT *pvarVal; + } ; + } ; + + DECIMAL decVal; + }; +}; +# 398 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" +typedef struct tagPROPVARIANT * LPPROPVARIANT; +# 441 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" +typedef struct tagPROPSPEC + { + ULONG ulKind; + union + { + PROPID propid; + LPOLESTR lpwstr; + + } ; + } PROPSPEC; + +typedef struct tagSTATPROPSTG + { + LPOLESTR lpwstrName; + PROPID propid; + VARTYPE vt; + } STATPROPSTG; + + + + + + +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; +# 487 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" +extern "C" const IID IID_IPropertyStorage; + + + + struct __declspec(uuid("00000138-0000-0000-C000-000000000046")) __declspec(novtable) + IPropertyStorage : public IUnknown + { + public: + virtual HRESULT __stdcall ReadMultiple( + ULONG cpspec, + const PROPSPEC rgpspec[ ], + PROPVARIANT rgpropvar[ ]) = 0; + + virtual HRESULT __stdcall WriteMultiple( + ULONG cpspec, + const PROPSPEC rgpspec[ ], + const PROPVARIANT rgpropvar[ ], + PROPID propidNameFirst) = 0; + + virtual HRESULT __stdcall DeleteMultiple( + ULONG cpspec, + const PROPSPEC rgpspec[ ]) = 0; + + virtual HRESULT __stdcall ReadPropertyNames( + ULONG cpropid, + const PROPID rgpropid[ ], + LPOLESTR rglpwstrName[ ]) = 0; + + virtual HRESULT __stdcall WritePropertyNames( + ULONG cpropid, + const PROPID rgpropid[ ], + const LPOLESTR rglpwstrName[ ]) = 0; + + virtual HRESULT __stdcall DeletePropertyNames( + ULONG cpropid, + const PROPID rgpropid[ ]) = 0; + + virtual HRESULT __stdcall Commit( + DWORD grfCommitFlags) = 0; + + virtual HRESULT __stdcall Revert( void) = 0; + + virtual HRESULT __stdcall Enum( + IEnumSTATPROPSTG **ppenum) = 0; + + virtual HRESULT __stdcall SetTimes( + const FILETIME *pctime, + const FILETIME *patime, + const FILETIME *pmtime) = 0; + + virtual HRESULT __stdcall SetClass( + const IID & clsid) = 0; + + virtual HRESULT __stdcall Stat( + STATPROPSETSTG *pstatpsstg) = 0; + + }; +# 700 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" +typedef IPropertySetStorage *LPPROPERTYSETSTORAGE; + + +extern "C" const IID IID_IPropertySetStorage; + + + + struct __declspec(uuid("0000013A-0000-0000-C000-000000000046")) __declspec(novtable) + IPropertySetStorage : public IUnknown + { + public: + virtual HRESULT __stdcall Create( + const IID & rfmtid, + const CLSID *pclsid, + DWORD grfFlags, + DWORD grfMode, + IPropertyStorage **ppprstg) = 0; + + virtual HRESULT __stdcall Open( + const IID & rfmtid, + DWORD grfMode, + IPropertyStorage **ppprstg) = 0; + + virtual HRESULT __stdcall Delete( + const IID & rfmtid) = 0; + + virtual HRESULT __stdcall Enum( + IEnumSTATPROPSETSTG **ppenum) = 0; + + }; +# 824 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" +typedef IEnumSTATPROPSTG *LPENUMSTATPROPSTG; + + +extern "C" const IID IID_IEnumSTATPROPSTG; + + + + struct __declspec(uuid("00000139-0000-0000-C000-000000000046")) __declspec(novtable) + IEnumSTATPROPSTG : public IUnknown + { + public: + virtual HRESULT __stdcall Next( + ULONG celt, + + STATPROPSTG *rgelt, + + ULONG *pceltFetched) = 0; + + virtual HRESULT __stdcall Skip( + ULONG celt) = 0; + + virtual HRESULT __stdcall Reset( void) = 0; + + virtual HRESULT __stdcall Clone( + IEnumSTATPROPSTG **ppenum) = 0; + + }; +# 932 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" + HRESULT __stdcall IEnumSTATPROPSTG_RemoteNext_Proxy( + IEnumSTATPROPSTG * This, + ULONG celt, + STATPROPSTG *rgelt, + ULONG *pceltFetched); + + +void __stdcall IEnumSTATPROPSTG_RemoteNext_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 956 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" +typedef IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG; + + +extern "C" const IID IID_IEnumSTATPROPSETSTG; + + + + struct __declspec(uuid("0000013B-0000-0000-C000-000000000046")) __declspec(novtable) + IEnumSTATPROPSETSTG : public IUnknown + { + public: + virtual HRESULT __stdcall Next( + ULONG celt, + + STATPROPSETSTG *rgelt, + + ULONG *pceltFetched) = 0; + + virtual HRESULT __stdcall Skip( + ULONG celt) = 0; + + virtual HRESULT __stdcall Reset( void) = 0; + + virtual HRESULT __stdcall Clone( + IEnumSTATPROPSETSTG **ppenum) = 0; + + }; +# 1064 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" + HRESULT __stdcall IEnumSTATPROPSETSTG_RemoteNext_Proxy( + IEnumSTATPROPSETSTG * This, + ULONG celt, + STATPROPSETSTG *rgelt, + ULONG *pceltFetched); + + +void __stdcall IEnumSTATPROPSETSTG_RemoteNext_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 1085 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidlbase.h" +typedef IPropertyStorage *LPPROPERTYSTORAGE; + + + + + + + +#pragma warning(pop) + + + + + + +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; + + + +unsigned long __stdcall BSTR_UserSize( unsigned long *, unsigned long , BSTR * ); +unsigned char * __stdcall BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * ); +unsigned char * __stdcall BSTR_UserUnmarshal( unsigned long *, unsigned char *, BSTR * ); +void __stdcall BSTR_UserFree( unsigned long *, BSTR * ); + +unsigned long __stdcall LPSAFEARRAY_UserSize( unsigned long *, unsigned long , LPSAFEARRAY * ); +unsigned char * __stdcall LPSAFEARRAY_UserMarshal( unsigned long *, unsigned char *, LPSAFEARRAY * ); +unsigned char * __stdcall LPSAFEARRAY_UserUnmarshal( unsigned long *, unsigned char *, LPSAFEARRAY * ); +void __stdcall LPSAFEARRAY_UserFree( unsigned long *, LPSAFEARRAY * ); + +unsigned long __stdcall BSTR_UserSize64( unsigned long *, unsigned long , BSTR * ); +unsigned char * __stdcall BSTR_UserMarshal64( unsigned long *, unsigned char *, BSTR * ); +unsigned char * __stdcall BSTR_UserUnmarshal64( unsigned long *, unsigned char *, BSTR * ); +void __stdcall BSTR_UserFree64( unsigned long *, BSTR * ); + +unsigned long __stdcall LPSAFEARRAY_UserSize64( unsigned long *, unsigned long , LPSAFEARRAY * ); +unsigned char * __stdcall LPSAFEARRAY_UserMarshal64( unsigned long *, unsigned char *, LPSAFEARRAY * ); +unsigned char * __stdcall LPSAFEARRAY_UserUnmarshal64( unsigned long *, unsigned char *, LPSAFEARRAY * ); +void __stdcall LPSAFEARRAY_UserFree64( unsigned long *, LPSAFEARRAY * ); + + HRESULT __stdcall IEnumSTATPROPSTG_Next_Proxy( + IEnumSTATPROPSTG * This, + ULONG celt, + + STATPROPSTG *rgelt, + + ULONG *pceltFetched); + + + HRESULT __stdcall IEnumSTATPROPSTG_Next_Stub( + IEnumSTATPROPSTG * This, + ULONG celt, + STATPROPSTG *rgelt, + ULONG *pceltFetched); + + HRESULT __stdcall IEnumSTATPROPSETSTG_Next_Proxy( + IEnumSTATPROPSETSTG * This, + ULONG celt, + + STATPROPSETSTG *rgelt, + + ULONG *pceltFetched); + + + HRESULT __stdcall IEnumSTATPROPSETSTG_Next_Stub( + IEnumSTATPROPSETSTG * This, + ULONG celt, + STATPROPSETSTG *rgelt, + ULONG *pceltFetched); + + + + + + +} +# 41 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\coml2api.h" 2 +# 87 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\coml2api.h" +typedef DWORD STGFMT; +# 100 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\coml2api.h" +extern "C" __declspec(dllimport) HRESULT __stdcall +StgCreateDocfile( + const WCHAR * pwcsName, + DWORD grfMode, + DWORD reserved, + IStorage ** ppstgOpen + ); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +StgCreateDocfileOnILockBytes( + ILockBytes * plkbyt, + DWORD grfMode, + DWORD reserved, + IStorage ** ppstgOpen + ); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +StgOpenStorage( + const WCHAR * pwcsName, + IStorage * pstgPriority, + DWORD grfMode, + SNB snbExclude, + DWORD reserved, + IStorage ** ppstgOpen + ); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +StgOpenStorageOnILockBytes( + ILockBytes * plkbyt, + IStorage * pstgPriority, + DWORD grfMode, + SNB snbExclude, + DWORD reserved, + IStorage ** ppstgOpen + ); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +StgIsStorageFile( + const WCHAR * pwcsName + ); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +StgIsStorageILockBytes( + ILockBytes * plkbyt + ); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +StgSetTimes( + const WCHAR * lpszName, + const FILETIME * pctime, + const FILETIME * patime, + const FILETIME * pmtime + ); +# 178 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\coml2api.h" +typedef struct tagSTGOPTIONS +{ + USHORT usVersion; + USHORT reserved; + ULONG ulSectorSize; + + + const WCHAR *pwcsTemplateFile; + +} STGOPTIONS; + + +extern "C" __declspec(dllimport) HRESULT __stdcall +StgCreateStorageEx( + const WCHAR * pwcsName, + DWORD grfMode, + DWORD stgfmt, + DWORD grfAttrs, + STGOPTIONS * pStgOptions, + PSECURITY_DESCRIPTOR pSecurityDescriptor, + const IID & riid, + void ** ppObjectOpen + ); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +StgOpenStorageEx( + const WCHAR * pwcsName, + DWORD grfMode, + DWORD stgfmt, + DWORD grfAttrs, + STGOPTIONS * pStgOptions, + PSECURITY_DESCRIPTOR pSecurityDescriptor, + const IID & riid, + void ** ppObjectOpen + ); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +StgCreatePropStg( + IUnknown * pUnk, + const IID & fmtid, + const CLSID * pclsid, + DWORD grfFlags, + DWORD dwReserved, + IPropertyStorage ** ppPropStg + ); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +StgOpenPropStg( + IUnknown * pUnk, + const IID & fmtid, + DWORD grfFlags, + DWORD dwReserved, + IPropertyStorage ** ppPropStg + ); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +StgCreatePropSetStg( + IStorage * pStorage, + DWORD dwReserved, + IPropertySetStorage ** ppPropSetStg + ); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +FmtIdToPropStgName( + const FMTID * pfmtid, + LPOLESTR oszName + ); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +PropStgNameToFmtId( + const LPOLESTR oszName, + FMTID * pfmtid + ); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +ReadClassStg( + LPSTORAGE pStg, + CLSID * pclsid + ); + + +extern "C" __declspec(dllimport) HRESULT __stdcall +WriteClassStg( + LPSTORAGE pStg, + const IID & rclsid + ); + + +extern "C" __declspec(dllimport) HRESULT __stdcall +ReadClassStm( + LPSTREAM pStm, + CLSID * pclsid + ); + + +extern "C" __declspec(dllimport) HRESULT __stdcall +WriteClassStm( + LPSTREAM pStm, + const IID & rclsid + ); + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +GetHGlobalFromILockBytes( + LPLOCKBYTES plkbyt, + HGLOBAL * phglobal + ); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +CreateILockBytesOnHGlobal( + HGLOBAL hGlobal, + BOOL fDeleteOnRelease, + LPLOCKBYTES * pplkbyt + ); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall +GetConvertStg( + LPSTORAGE pStg + ); +# 28 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objbase.h" 2 + + + +typedef enum tagCOINIT +{ + COINIT_APARTMENTTHREADED = 0x2, + + + + COINIT_MULTITHREADED = COINITBASE_MULTITHREADED, + COINIT_DISABLE_OLE1DDE = 0x4, + COINIT_SPEED_OVER_MEMORY = 0x8, + +} COINIT; +# 76 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objbase.h" +extern "C" __declspec(dllimport) DWORD __stdcall CoBuildVersion( void ); + + + + extern "C" __declspec(dllimport) HRESULT __stdcall CoInitialize( LPVOID pvReserved); + + + extern "C" __declspec(dllimport) HRESULT __stdcall CoRegisterMallocSpy( LPMALLOCSPY pMallocSpy); + extern "C" __declspec(dllimport) HRESULT __stdcall CoRevokeMallocSpy(void); +extern "C" __declspec(dllimport) HRESULT __stdcall CoCreateStandardMalloc( DWORD memctx, IMalloc * * ppMalloc); + + + + + extern "C" __declspec(dllimport) HRESULT __stdcall CoRegisterInitializeSpy( IInitializeSpy *pSpy, ULARGE_INTEGER *puliCookie); + extern "C" __declspec(dllimport) HRESULT __stdcall CoRevokeInitializeSpy( ULARGE_INTEGER uliCookie); + + + +typedef enum tagCOMSD +{ + SD_LAUNCHPERMISSIONS = 0, + SD_ACCESSPERMISSIONS = 1, + SD_LAUNCHRESTRICTIONS = 2, + SD_ACCESSRESTRICTIONS = 3 + +} COMSD; + extern "C" __declspec(dllimport) HRESULT __stdcall CoGetSystemSecurityPermissions(COMSD comSDType, PSECURITY_DESCRIPTOR *ppSD); + + + + + +extern "C" __declspec(dllimport) HINSTANCE __stdcall CoLoadLibrary( LPOLESTR lpszLibName, BOOL bAutoFree); +extern "C" __declspec(dllimport) void __stdcall CoFreeLibrary( HINSTANCE hInst); +extern "C" __declspec(dllimport) void __stdcall CoFreeAllLibraries(void); + + + + + + extern "C" __declspec(dllimport) HRESULT __stdcall CoGetInstanceFromFile( + COSERVERINFO * pServerInfo, + CLSID * pClsid, + IUnknown * punkOuter, + DWORD dwClsCtx, + DWORD grfMode, + OLECHAR * pwszName, + DWORD dwCount, + MULTI_QI * pResults ); + + + extern "C" __declspec(dllimport) HRESULT __stdcall CoGetInstanceFromIStorage( + COSERVERINFO * pServerInfo, + CLSID * pClsid, + IUnknown * punkOuter, + DWORD dwClsCtx, + struct IStorage * pstg, + DWORD dwCount, + MULTI_QI * pResults ); + + + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall CoAllowSetForegroundWindow( IUnknown *pUnk, LPVOID lpvReserved); + + +extern "C" __declspec(dllimport) HRESULT __stdcall DcomChannelSetHResult( LPVOID pvReserved, ULONG* pulReserved, HRESULT appsHR); + + + + +extern "C" __declspec(dllimport) BOOL __stdcall CoIsOle1Class( const IID & rclsid); + extern "C" __declspec(dllimport) HRESULT __stdcall CLSIDFromProgIDEx ( LPCOLESTR lpszProgID, LPCLSID lpclsid); + +extern "C" __declspec(dllimport) BOOL __stdcall CoFileTimeToDosDateTime( + FILETIME * lpFileTime, LPWORD lpDosDate, LPWORD lpDosTime); +extern "C" __declspec(dllimport) BOOL __stdcall CoDosDateTimeToFileTime( + WORD nDosDate, WORD nDosTime, FILETIME * lpFileTime); +extern "C" __declspec(dllimport) HRESULT __stdcall CoFileTimeNow( FILETIME * lpFileTime ); + + extern "C" __declspec(dllimport) HRESULT __stdcall CoRegisterMessageFilter( LPMESSAGEFILTER lpMessageFilter, + LPMESSAGEFILTER * lplpMessageFilter ); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall CoRegisterChannelHook( const GUID & ExtensionUuid, IChannelHook *pChannelHook ); + + + + + + extern "C" __declspec(dllimport) HRESULT __stdcall CoTreatAsClass( const IID & clsidOld, const IID & clsidNew); + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall CreateDataAdviseHolder( LPDATAADVISEHOLDER * ppDAHolder); + +extern "C" __declspec(dllimport) HRESULT __stdcall CreateDataCache( LPUNKNOWN pUnkOuter, const IID & rclsid, + const IID & iid, LPVOID * ppv); + + + + + + extern "C" __declspec(dllimport) HRESULT __stdcall StgOpenAsyncDocfileOnIFillLockBytes( IFillLockBytes *pflb, + DWORD grfMode, + DWORD asyncFlags, + IStorage** ppstgOpen); + + extern "C" __declspec(dllimport) HRESULT __stdcall StgGetIFillLockBytesOnILockBytes( ILockBytes *pilb, + IFillLockBytes** ppflb); + + extern "C" __declspec(dllimport) HRESULT __stdcall StgGetIFillLockBytesOnFile( OLECHAR const *pwcsName, + IFillLockBytes** ppflb); + + extern "C" __declspec(dllimport) HRESULT __stdcall StgOpenLayoutDocfile( OLECHAR const *pwcsDfName, + DWORD grfMode, + DWORD reserved, + IStorage** ppstgOpen); + + + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall CoInstall( + IBindCtx * pbc, + DWORD dwFlags, + uCLSSPEC * pClassSpec, + QUERYCONTEXT * pQuery, + LPWSTR pszCodeBase); +# 224 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objbase.h" + extern "C" __declspec(dllimport) HRESULT __stdcall BindMoniker( LPMONIKER pmk, DWORD grfOpt, const IID & iidResult, LPVOID * ppvResult); + + extern "C" __declspec(dllimport) HRESULT __stdcall CoGetObject( LPCWSTR pszName, BIND_OPTS *pBindOptions, const IID & riid, void **ppv); + extern "C" __declspec(dllimport) HRESULT __stdcall MkParseDisplayName( LPBC pbc, LPCOLESTR szUserName, + ULONG * pchEaten, LPMONIKER * ppmk); + extern "C" __declspec(dllimport) HRESULT __stdcall MonikerRelativePathTo( LPMONIKER pmkSrc, LPMONIKER pmkDest, LPMONIKER + * ppmkRelPath, BOOL dwReserved); + extern "C" __declspec(dllimport) HRESULT __stdcall MonikerCommonPrefixWith( LPMONIKER pmkThis, LPMONIKER pmkOther, + LPMONIKER * ppmkCommon); + extern "C" __declspec(dllimport) HRESULT __stdcall CreateBindCtx( DWORD reserved, LPBC * ppbc); + extern "C" __declspec(dllimport) HRESULT __stdcall CreateGenericComposite( LPMONIKER pmkFirst, LPMONIKER pmkRest, + LPMONIKER * ppmkComposite); + extern "C" __declspec(dllimport) HRESULT __stdcall GetClassFile ( LPCOLESTR szFilename, CLSID * pclsid); + + extern "C" __declspec(dllimport) HRESULT __stdcall CreateClassMoniker( const IID & rclsid, LPMONIKER * ppmk); + + extern "C" __declspec(dllimport) HRESULT __stdcall CreateFileMoniker( LPCOLESTR lpszPathName, LPMONIKER * ppmk); + + extern "C" __declspec(dllimport) HRESULT __stdcall CreateItemMoniker( LPCOLESTR lpszDelim, LPCOLESTR lpszItem, + LPMONIKER * ppmk); + extern "C" __declspec(dllimport) HRESULT __stdcall CreateAntiMoniker( LPMONIKER * ppmk); + extern "C" __declspec(dllimport) HRESULT __stdcall CreatePointerMoniker( LPUNKNOWN punk, LPMONIKER * ppmk); + extern "C" __declspec(dllimport) HRESULT __stdcall CreateObjrefMoniker( LPUNKNOWN punk, LPMONIKER * ppmk); + + + + + + + + extern "C" __declspec(dllimport) HRESULT __stdcall GetRunningObjectTable( DWORD reserved, LPRUNNINGOBJECTTABLE * pprot); + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +typedef struct IPersistMoniker IPersistMoniker; + + + + + + +typedef struct IMonikerProp IMonikerProp; + + + + + + +typedef struct IBindProtocol IBindProtocol; + + + + + + +typedef struct IBinding IBinding; + + + + + + +typedef struct IBindStatusCallback IBindStatusCallback; + + + + + + +typedef struct IBindStatusCallbackEx IBindStatusCallbackEx; + + + + + + +typedef struct IAuthenticate IAuthenticate; + + + + + + +typedef struct IAuthenticateEx IAuthenticateEx; + + + + + + +typedef struct IHttpNegotiate IHttpNegotiate; + + + + + + +typedef struct IHttpNegotiate2 IHttpNegotiate2; + + + + + + +typedef struct IHttpNegotiate3 IHttpNegotiate3; + + + + + + +typedef struct IWinInetFileStream IWinInetFileStream; + + + + + + +typedef struct IWindowForBindingUI IWindowForBindingUI; + + + + + + +typedef struct ICodeInstall ICodeInstall; + + + + + + +typedef struct IUri IUri; + + + + + + +typedef struct IUriContainer IUriContainer; + + + + + + +typedef struct IUriBuilder IUriBuilder; + + + + + + +typedef struct IUriBuilderFactory IUriBuilderFactory; + + + + + + +typedef struct IWinInetInfo IWinInetInfo; + + + + + + +typedef struct IHttpSecurity IHttpSecurity; + + + + + + +typedef struct IWinInetHttpInfo IWinInetHttpInfo; + + + + + + +typedef struct IWinInetHttpTimeouts IWinInetHttpTimeouts; + + + + + + +typedef struct IWinInetCacheHints IWinInetCacheHints; + + + + + + +typedef struct IWinInetCacheHints2 IWinInetCacheHints2; + + + + + + +typedef struct IBindHost IBindHost; + + + + + + +typedef struct IInternet IInternet; + + + + + + +typedef struct IInternetBindInfo IInternetBindInfo; + + + + + + +typedef struct IInternetBindInfoEx IInternetBindInfoEx; + + + + + + +typedef struct IInternetProtocolRoot IInternetProtocolRoot; + + + + + + +typedef struct IInternetProtocol IInternetProtocol; + + + + + + +typedef struct IInternetProtocolEx IInternetProtocolEx; + + + + + + +typedef struct IInternetProtocolSink IInternetProtocolSink; + + + + + + +typedef struct IInternetProtocolSinkStackable IInternetProtocolSinkStackable; + + + + + + +typedef struct IInternetSession IInternetSession; + + + + + + +typedef struct IInternetThreadSwitch IInternetThreadSwitch; + + + + + + +typedef struct IInternetPriority IInternetPriority; + + + + + + +typedef struct IInternetProtocolInfo IInternetProtocolInfo; + + + + + + +typedef struct IInternetSecurityMgrSite IInternetSecurityMgrSite; + + + + + + +typedef struct IInternetSecurityManager IInternetSecurityManager; + + + + + + +typedef struct IInternetSecurityManagerEx IInternetSecurityManagerEx; + + + + + + +typedef struct IInternetSecurityManagerEx2 IInternetSecurityManagerEx2; + + + + + + +typedef struct IZoneIdentifier IZoneIdentifier; + + + + + + +typedef struct IZoneIdentifier2 IZoneIdentifier2; + + + + + + +typedef struct IInternetHostSecurityManager IInternetHostSecurityManager; + + + + + + +typedef struct IInternetZoneManager IInternetZoneManager; + + + + + + +typedef struct IInternetZoneManagerEx IInternetZoneManagerEx; + + + + + + +typedef struct IInternetZoneManagerEx2 IInternetZoneManagerEx2; + + + + + + +typedef struct ISoftDistExt ISoftDistExt; + + + + + + +typedef struct ICatalogFileInfo ICatalogFileInfo; + + + + + + +typedef struct IDataFilter IDataFilter; + + + + + + +typedef struct IEncodingFilterFactory IEncodingFilterFactory; + + + + + + +typedef struct IWrappedProtocol IWrappedProtocol; + + + + + + +typedef struct IGetBindHandle IGetBindHandle; + + + + + + +typedef struct IBindCallbackRedirect IBindCallbackRedirect; + + + + + + +typedef struct IBindHttpSecurity IBindHttpSecurity; + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef struct IOleAdviseHolder IOleAdviseHolder; + + + + + + +typedef struct IOleCache IOleCache; + + + + + + +typedef struct IOleCache2 IOleCache2; + + + + + + +typedef struct IOleCacheControl IOleCacheControl; + + + + + + +typedef struct IParseDisplayName IParseDisplayName; + + + + + + +typedef struct IOleContainer IOleContainer; + + + + + + +typedef struct IOleClientSite IOleClientSite; + + + + + + +typedef struct IOleObject IOleObject; + + + + + + +typedef struct IOleWindow IOleWindow; + + + + + + +typedef struct IOleLink IOleLink; + + + + + + +typedef struct IOleItemContainer IOleItemContainer; + + + + + + +typedef struct IOleInPlaceUIWindow IOleInPlaceUIWindow; + + + + + + +typedef struct IOleInPlaceActiveObject IOleInPlaceActiveObject; + + + + + + +typedef struct IOleInPlaceFrame IOleInPlaceFrame; + + + + + + +typedef struct IOleInPlaceObject IOleInPlaceObject; + + + + + + +typedef struct IOleInPlaceSite IOleInPlaceSite; + + + + + + +typedef struct IContinue IContinue; + + + + + + +typedef struct IViewObject IViewObject; + + + + + + +typedef struct IViewObject2 IViewObject2; + + + + + + +typedef struct IDropSource IDropSource; + + + + + + +typedef struct IDropTarget IDropTarget; + + + + + + +typedef struct IDropSourceNotify IDropSourceNotify; + + + + + + +typedef struct IEnterpriseDropTarget IEnterpriseDropTarget; + + + + + + +typedef struct IEnumOLEVERB IEnumOLEVERB; +# 214 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +extern "C"{ +# 232 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +#pragma warning(push) +#pragma warning(disable: 4820) + + + + + + + +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; + + + + + + + +typedef IOleAdviseHolder *LPOLEADVISEHOLDER; + + +extern "C" const IID IID_IOleAdviseHolder; + + + + struct __declspec(uuid("00000111-0000-0000-C000-000000000046")) __declspec(novtable) + IOleAdviseHolder : public IUnknown + { + public: + virtual HRESULT __stdcall Advise( + + IAdviseSink *pAdvise, + + DWORD *pdwConnection) = 0; + + virtual HRESULT __stdcall Unadvise( + DWORD dwConnection) = 0; + + virtual HRESULT __stdcall EnumAdvise( + + IEnumSTATDATA **ppenumAdvise) = 0; + + virtual HRESULT __stdcall SendOnRename( + + IMoniker *pmk) = 0; + + virtual HRESULT __stdcall SendOnSave( void) = 0; + + virtual HRESULT __stdcall SendOnClose( void) = 0; + + }; +# 391 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +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; + + + + + + + +typedef IOleCache *LPOLECACHE; + + +extern "C" const IID IID_IOleCache; + + + + struct __declspec(uuid("0000011e-0000-0000-C000-000000000046")) __declspec(novtable) + IOleCache : public IUnknown + { + public: + virtual HRESULT __stdcall Cache( + FORMATETC *pformatetc, + DWORD advf, + DWORD *pdwConnection) = 0; + + virtual HRESULT __stdcall Uncache( + DWORD dwConnection) = 0; + + virtual HRESULT __stdcall EnumCache( + IEnumSTATDATA **ppenumSTATDATA) = 0; + + virtual HRESULT __stdcall InitCache( + IDataObject *pDataObject) = 0; + + virtual HRESULT __stdcall SetData( + FORMATETC *pformatetc, + STGMEDIUM *pmedium, + BOOL fRelease) = 0; + + }; +# 530 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef IOleCache2 *LPOLECACHE2; +# 550 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef +enum tagDISCARDCACHE + { + DISCARDCACHE_SAVEIFDIRTY = 0, + DISCARDCACHE_NOSAVE = 1 + } DISCARDCACHE; + + +extern "C" const IID IID_IOleCache2; + + + + struct __declspec(uuid("00000128-0000-0000-C000-000000000046")) __declspec(novtable) + IOleCache2 : public IOleCache + { + public: + virtual HRESULT __stdcall UpdateCache( + + LPDATAOBJECT pDataObject, + + DWORD grfUpdf, + + LPVOID pReserved) = 0; + + virtual HRESULT __stdcall DiscardCache( + DWORD dwDiscardOptions) = 0; + + }; +# 687 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" + HRESULT __stdcall IOleCache2_RemoteUpdateCache_Proxy( + IOleCache2 * This, + LPDATAOBJECT pDataObject, + DWORD grfUpdf, + LONG_PTR pReserved); + + +void __stdcall IOleCache2_RemoteUpdateCache_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 714 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +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; + + + + + + + +typedef IOleCacheControl *LPOLECACHECONTROL; + + +extern "C" const IID IID_IOleCacheControl; + + + + struct __declspec(uuid("00000129-0000-0000-C000-000000000046")) __declspec(novtable) + IOleCacheControl : public IUnknown + { + public: + virtual HRESULT __stdcall OnRun( + LPDATAOBJECT pDataObject) = 0; + + virtual HRESULT __stdcall OnStop( void) = 0; + + }; +# 813 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef IParseDisplayName *LPPARSEDISPLAYNAME; + + +extern "C" const IID IID_IParseDisplayName; + + + + struct __declspec(uuid("0000011a-0000-0000-C000-000000000046")) __declspec(novtable) + IParseDisplayName : public IUnknown + { + public: + virtual HRESULT __stdcall ParseDisplayName( + IBindCtx *pbc, + LPOLESTR pszDisplayName, + ULONG *pchEaten, + IMoniker **ppmkOut) = 0; + + }; +# 901 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef IOleContainer *LPOLECONTAINER; + + +extern "C" const IID IID_IOleContainer; + + + + struct __declspec(uuid("0000011b-0000-0000-C000-000000000046")) __declspec(novtable) + IOleContainer : public IParseDisplayName + { + public: + virtual HRESULT __stdcall EnumObjects( + DWORD grfFlags, + IEnumUnknown **ppenum) = 0; + + virtual HRESULT __stdcall LockContainer( + BOOL fLock) = 0; + + }; +# 1006 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef IOleClientSite *LPOLECLIENTSITE; + + +extern "C" const IID IID_IOleClientSite; + + + + struct __declspec(uuid("00000118-0000-0000-C000-000000000046")) __declspec(novtable) + IOleClientSite : public IUnknown + { + public: + virtual HRESULT __stdcall SaveObject( void) = 0; + + virtual HRESULT __stdcall GetMoniker( + DWORD dwAssign, + DWORD dwWhichMoniker, + IMoniker **ppmk) = 0; + + virtual HRESULT __stdcall GetContainer( + IOleContainer **ppContainer) = 0; + + virtual HRESULT __stdcall ShowObject( void) = 0; + + virtual HRESULT __stdcall OnShowWindow( + BOOL fShow) = 0; + + virtual HRESULT __stdcall RequestNewObjectLayout( void) = 0; + + }; +# 1136 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef 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; + + + + struct __declspec(uuid("00000112-0000-0000-C000-000000000046")) __declspec(novtable) + IOleObject : public IUnknown + { + public: + virtual HRESULT __stdcall SetClientSite( + IOleClientSite *pClientSite) = 0; + + virtual HRESULT __stdcall GetClientSite( + IOleClientSite **ppClientSite) = 0; + + virtual HRESULT __stdcall SetHostNames( + LPCOLESTR szContainerApp, + LPCOLESTR szContainerObj) = 0; + + virtual HRESULT __stdcall Close( + DWORD dwSaveOption) = 0; + + virtual HRESULT __stdcall SetMoniker( + DWORD dwWhichMoniker, + IMoniker *pmk) = 0; + + virtual HRESULT __stdcall GetMoniker( + DWORD dwAssign, + DWORD dwWhichMoniker, + IMoniker **ppmk) = 0; + + virtual HRESULT __stdcall InitFromData( + IDataObject *pDataObject, + BOOL fCreation, + DWORD dwReserved) = 0; + + virtual HRESULT __stdcall GetClipboardData( + DWORD dwReserved, + IDataObject **ppDataObject) = 0; + + virtual HRESULT __stdcall DoVerb( + LONG iVerb, + LPMSG lpmsg, + IOleClientSite *pActiveSite, + LONG lindex, + HWND hwndParent, + LPCRECT lprcPosRect) = 0; + + virtual HRESULT __stdcall EnumVerbs( + IEnumOLEVERB **ppEnumOleVerb) = 0; + + virtual HRESULT __stdcall Update( void) = 0; + + virtual HRESULT __stdcall IsUpToDate( void) = 0; + + virtual HRESULT __stdcall GetUserClassID( + CLSID *pClsid) = 0; + + virtual HRESULT __stdcall GetUserType( + DWORD dwFormOfType, + LPOLESTR *pszUserType) = 0; + + virtual HRESULT __stdcall SetExtent( + DWORD dwDrawAspect, + SIZEL *psizel) = 0; + + virtual HRESULT __stdcall GetExtent( + DWORD dwDrawAspect, + SIZEL *psizel) = 0; + + virtual HRESULT __stdcall Advise( + IAdviseSink *pAdvSink, + DWORD *pdwConnection) = 0; + + virtual HRESULT __stdcall Unadvise( + DWORD dwConnection) = 0; + + virtual HRESULT __stdcall EnumAdvise( + IEnumSTATDATA **ppenumAdvise) = 0; + + virtual HRESULT __stdcall GetMiscStatus( + DWORD dwAspect, + DWORD *pdwStatus) = 0; + + virtual HRESULT __stdcall SetColorScheme( + LOGPALETTE *pLogpal) = 0; + + }; +# 1508 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +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; +# 1553 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef IOleWindow *LPOLEWINDOW; + + +extern "C" const IID IID_IOleWindow; + + + + struct __declspec(uuid("00000114-0000-0000-C000-000000000046")) __declspec(novtable) + IOleWindow : public IUnknown + { + public: + virtual HRESULT __stdcall GetWindow( + HWND *phwnd) = 0; + + virtual HRESULT __stdcall ContextSensitiveHelp( + BOOL fEnterMode) = 0; + + }; +# 1645 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef 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; + + + + struct __declspec(uuid("0000011d-0000-0000-C000-000000000046")) __declspec(novtable) + IOleLink : public IUnknown + { + public: + virtual HRESULT __stdcall SetUpdateOptions( + DWORD dwUpdateOpt) = 0; + + virtual HRESULT __stdcall GetUpdateOptions( + DWORD *pdwUpdateOpt) = 0; + + virtual HRESULT __stdcall SetSourceMoniker( + IMoniker *pmk, + const IID & rclsid) = 0; + + virtual HRESULT __stdcall GetSourceMoniker( + IMoniker **ppmk) = 0; + + virtual HRESULT __stdcall SetSourceDisplayName( + LPCOLESTR pszStatusText) = 0; + + virtual HRESULT __stdcall GetSourceDisplayName( + LPOLESTR *ppszDisplayName) = 0; + + virtual HRESULT __stdcall BindToSource( + DWORD bindflags, + IBindCtx *pbc) = 0; + + virtual HRESULT __stdcall BindIfRunning( void) = 0; + + virtual HRESULT __stdcall GetBoundSource( + IUnknown **ppunk) = 0; + + virtual HRESULT __stdcall UnbindSource( void) = 0; + + virtual HRESULT __stdcall Update( + IBindCtx *pbc) = 0; + + }; +# 1844 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef IOleItemContainer *LPOLEITEMCONTAINER; + +typedef +enum tagBINDSPEED + { + BINDSPEED_INDEFINITE = 1, + BINDSPEED_MODERATE = 2, + BINDSPEED_IMMEDIATE = 3 + } BINDSPEED; + +typedef +enum tagOLECONTF + { + OLECONTF_EMBEDDINGS = 1, + OLECONTF_LINKS = 2, + OLECONTF_OTHERS = 4, + OLECONTF_ONLYUSER = 8, + OLECONTF_ONLYIFRUNNING = 16 + } OLECONTF; + + +extern "C" const IID IID_IOleItemContainer; + + + + struct __declspec(uuid("0000011c-0000-0000-C000-000000000046")) __declspec(novtable) + IOleItemContainer : public IOleContainer + { + public: + virtual HRESULT __stdcall GetObjectW( + LPOLESTR pszItem, + DWORD dwSpeedNeeded, + IBindCtx *pbc, + const IID & riid, + void **ppvObject) = 0; + + virtual HRESULT __stdcall GetObjectStorage( + LPOLESTR pszItem, + IBindCtx *pbc, + const IID & riid, + void **ppvStorage) = 0; + + virtual HRESULT __stdcall IsRunning( + LPOLESTR pszItem) = 0; + + }; +# 2005 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef IOleInPlaceUIWindow *LPOLEINPLACEUIWINDOW; + +typedef RECT BORDERWIDTHS; + +typedef LPRECT LPBORDERWIDTHS; + +typedef LPCRECT LPCBORDERWIDTHS; + + +extern "C" const IID IID_IOleInPlaceUIWindow; + + + + struct __declspec(uuid("00000115-0000-0000-C000-000000000046")) __declspec(novtable) + IOleInPlaceUIWindow : public IOleWindow + { + public: + virtual HRESULT __stdcall GetBorder( + LPRECT lprectBorder) = 0; + + virtual HRESULT __stdcall RequestBorderSpace( + LPCBORDERWIDTHS pborderwidths) = 0; + + virtual HRESULT __stdcall SetBorderSpace( + LPCBORDERWIDTHS pborderwidths) = 0; + + virtual HRESULT __stdcall SetActiveObject( + IOleInPlaceActiveObject *pActiveObject, + LPCOLESTR pszObjName) = 0; + + }; +# 2140 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef IOleInPlaceActiveObject *LPOLEINPLACEACTIVEOBJECT; + + +extern "C" const IID IID_IOleInPlaceActiveObject; + + + + struct __declspec(uuid("00000117-0000-0000-C000-000000000046")) __declspec(novtable) + IOleInPlaceActiveObject : public IOleWindow + { + public: + virtual HRESULT __stdcall TranslateAcceleratorW( + + LPMSG lpmsg) = 0; + + virtual HRESULT __stdcall OnFrameWindowActivate( + BOOL fActivate) = 0; + + virtual HRESULT __stdcall OnDocWindowActivate( + BOOL fActivate) = 0; + + virtual HRESULT __stdcall ResizeBorder( + + LPCRECT prcBorder, + + IOleInPlaceUIWindow *pUIWindow, + + BOOL fFrameWindow) = 0; + + virtual HRESULT __stdcall EnableModeless( + BOOL fEnable) = 0; + + }; +# 2279 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" + HRESULT __stdcall IOleInPlaceActiveObject_RemoteTranslateAccelerator_Proxy( + IOleInPlaceActiveObject * This); + + +void __stdcall IOleInPlaceActiveObject_RemoteTranslateAccelerator_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IOleInPlaceActiveObject_RemoteResizeBorder_Proxy( + IOleInPlaceActiveObject * This, + LPCRECT prcBorder, + const IID & riid, + IOleInPlaceUIWindow *pUIWindow, + BOOL fFrameWindow); + + +void __stdcall IOleInPlaceActiveObject_RemoteResizeBorder_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 2315 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef 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; + + + + struct __declspec(uuid("00000116-0000-0000-C000-000000000046")) __declspec(novtable) + IOleInPlaceFrame : public IOleInPlaceUIWindow + { + public: + virtual HRESULT __stdcall InsertMenus( + HMENU hmenuShared, + LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0; + + virtual HRESULT __stdcall SetMenu( + HMENU hmenuShared, + HOLEMENU holemenu, + HWND hwndActiveObject) = 0; + + virtual HRESULT __stdcall RemoveMenus( + HMENU hmenuShared) = 0; + + virtual HRESULT __stdcall SetStatusText( + LPCOLESTR pszStatusText) = 0; + + virtual HRESULT __stdcall EnableModeless( + BOOL fEnable) = 0; + + virtual HRESULT __stdcall TranslateAcceleratorW( + LPMSG lpmsg, + WORD wID) = 0; + + }; +# 2520 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef IOleInPlaceObject *LPOLEINPLACEOBJECT; + + +extern "C" const IID IID_IOleInPlaceObject; + + + + struct __declspec(uuid("00000113-0000-0000-C000-000000000046")) __declspec(novtable) + IOleInPlaceObject : public IOleWindow + { + public: + virtual HRESULT __stdcall InPlaceDeactivate( void) = 0; + + virtual HRESULT __stdcall UIDeactivate( void) = 0; + + virtual HRESULT __stdcall SetObjectRects( + LPCRECT lprcPosRect, + LPCRECT lprcClipRect) = 0; + + virtual HRESULT __stdcall ReactivateAndUndo( void) = 0; + + }; +# 2643 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef IOleInPlaceSite *LPOLEINPLACESITE; + + +extern "C" const IID IID_IOleInPlaceSite; + + + + struct __declspec(uuid("00000119-0000-0000-C000-000000000046")) __declspec(novtable) + IOleInPlaceSite : public IOleWindow + { + public: + virtual HRESULT __stdcall CanInPlaceActivate( void) = 0; + + virtual HRESULT __stdcall OnInPlaceActivate( void) = 0; + + virtual HRESULT __stdcall OnUIActivate( void) = 0; + + virtual HRESULT __stdcall GetWindowContext( + IOleInPlaceFrame **ppFrame, + IOleInPlaceUIWindow **ppDoc, + LPRECT lprcPosRect, + LPRECT lprcClipRect, + LPOLEINPLACEFRAMEINFO lpFrameInfo) = 0; + + virtual HRESULT __stdcall Scroll( + SIZE scrollExtant) = 0; + + virtual HRESULT __stdcall OnUIDeactivate( + BOOL fUndoable) = 0; + + virtual HRESULT __stdcall OnInPlaceDeactivate( void) = 0; + + virtual HRESULT __stdcall DiscardUndoState( void) = 0; + + virtual HRESULT __stdcall DeactivateAndUndo( void) = 0; + + virtual HRESULT __stdcall OnPosRectChange( + LPCRECT lprcPosRect) = 0; + + }; +# 2827 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +extern "C" const IID IID_IContinue; + + + + struct __declspec(uuid("0000012a-0000-0000-C000-000000000046")) __declspec(novtable) + IContinue : public IUnknown + { + public: + virtual HRESULT __stdcall FContinue( void) = 0; + + }; +# 2904 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef IViewObject *LPVIEWOBJECT; + + +extern "C" const IID IID_IViewObject; + + + + struct __declspec(uuid("0000010d-0000-0000-C000-000000000046")) __declspec(novtable) + IViewObject : public IUnknown + { + public: + virtual HRESULT __stdcall Draw( + + DWORD dwDrawAspect, + + LONG lindex, + + void *pvAspect, + + DVTARGETDEVICE *ptd, + + HDC hdcTargetDev, + + HDC hdcDraw, + + LPCRECTL lprcBounds, + + LPCRECTL lprcWBounds, + + BOOL ( __stdcall *pfnContinue )( + ULONG_PTR dwContinue), + + ULONG_PTR dwContinue) = 0; + + virtual HRESULT __stdcall GetColorSet( + + DWORD dwDrawAspect, + + LONG lindex, + + void *pvAspect, + + DVTARGETDEVICE *ptd, + + HDC hicTargetDev, + + LOGPALETTE **ppColorSet) = 0; + + virtual HRESULT __stdcall Freeze( + + DWORD dwDrawAspect, + + LONG lindex, + + void *pvAspect, + + DWORD *pdwFreeze) = 0; + + virtual HRESULT __stdcall Unfreeze( + DWORD dwFreeze) = 0; + + virtual HRESULT __stdcall SetAdvise( + DWORD aspects, + DWORD advf, + IAdviseSink *pAdvSink) = 0; + + virtual HRESULT __stdcall GetAdvise( + + DWORD *pAspects, + + DWORD *pAdvf, + + IAdviseSink **ppAdvSink) = 0; + + }; +# 3116 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" + HRESULT __stdcall IViewObject_RemoteDraw_Proxy( + IViewObject * This, + DWORD dwDrawAspect, + LONG lindex, + ULONG_PTR pvAspect, + DVTARGETDEVICE *ptd, + HDC hdcTargetDev, + HDC hdcDraw, + LPCRECTL lprcBounds, + LPCRECTL lprcWBounds, + IContinue *pContinue); + + +void __stdcall IViewObject_RemoteDraw_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IViewObject_RemoteGetColorSet_Proxy( + IViewObject * This, + DWORD dwDrawAspect, + LONG lindex, + ULONG_PTR pvAspect, + DVTARGETDEVICE *ptd, + ULONG_PTR hicTargetDev, + LOGPALETTE **ppColorSet); + + +void __stdcall IViewObject_RemoteGetColorSet_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IViewObject_RemoteFreeze_Proxy( + IViewObject * This, + DWORD dwDrawAspect, + LONG lindex, + ULONG_PTR pvAspect, + DWORD *pdwFreeze); + + +void __stdcall IViewObject_RemoteFreeze_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IViewObject_RemoteGetAdvise_Proxy( + IViewObject * This, + DWORD *pAspects, + DWORD *pAdvf, + IAdviseSink **ppAdvSink); + + +void __stdcall IViewObject_RemoteGetAdvise_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 3192 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef IViewObject2 *LPVIEWOBJECT2; + + +extern "C" const IID IID_IViewObject2; + + + + struct __declspec(uuid("00000127-0000-0000-C000-000000000046")) __declspec(novtable) + IViewObject2 : public IViewObject + { + public: + virtual HRESULT __stdcall GetExtent( + DWORD dwDrawAspect, + LONG lindex, + DVTARGETDEVICE *ptd, + LPSIZEL lpsizel) = 0; + + }; +# 3368 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef IDropSource *LPDROPSOURCE; + + +extern "C" const IID IID_IDropSource; + + + + struct __declspec(uuid("00000121-0000-0000-C000-000000000046")) __declspec(novtable) + IDropSource : public IUnknown + { + public: + virtual HRESULT __stdcall QueryContinueDrag( + + BOOL fEscapePressed, + + DWORD grfKeyState) = 0; + + virtual HRESULT __stdcall GiveFeedback( + + DWORD dwEffect) = 0; + + }; +# 3468 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +typedef IDropTarget *LPDROPTARGET; +# 3503 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +extern "C" const IID IID_IDropTarget; + + + + struct __declspec(uuid("00000122-0000-0000-C000-000000000046")) __declspec(novtable) + IDropTarget : public IUnknown + { + public: + virtual HRESULT __stdcall DragEnter( + IDataObject *pDataObj, + DWORD grfKeyState, + POINTL pt, + DWORD *pdwEffect) = 0; + + virtual HRESULT __stdcall DragOver( + DWORD grfKeyState, + POINTL pt, + DWORD *pdwEffect) = 0; + + virtual HRESULT __stdcall DragLeave( void) = 0; + + virtual HRESULT __stdcall Drop( + IDataObject *pDataObj, + DWORD grfKeyState, + POINTL pt, + DWORD *pdwEffect) = 0; + + }; +# 3627 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +extern "C" const IID IID_IDropSourceNotify; + + + + struct __declspec(uuid("0000012B-0000-0000-C000-000000000046")) __declspec(novtable) + IDropSourceNotify : public IUnknown + { + public: + virtual HRESULT __stdcall DragEnterTarget( + + HWND hwndTarget) = 0; + + virtual HRESULT __stdcall DragLeaveTarget( void) = 0; + + }; +# 3717 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +extern "C" const IID IID_IEnterpriseDropTarget; + + + + struct __declspec(uuid("390E3878-FD55-4E18-819D-4682081C0CFD")) __declspec(novtable) + IEnterpriseDropTarget : public IUnknown + { + public: + virtual HRESULT __stdcall SetDropSourceEnterpriseId( + LPCWSTR identity) = 0; + + virtual HRESULT __stdcall IsEvaluatingEdpPolicy( + BOOL *value) = 0; + + }; +# 3810 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +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; + + + + + + + +typedef IEnumOLEVERB *LPENUMOLEVERB; + +typedef struct tagOLEVERB + { + LONG lVerb; + LPOLESTR lpszVerbName; + DWORD fuFlags; + DWORD grfAttribs; + } OLEVERB; + +typedef struct tagOLEVERB *LPOLEVERB; + +typedef +enum tagOLEVERBATTRIB + { + OLEVERBATTRIB_NEVERDIRTIES = 1, + OLEVERBATTRIB_ONCONTAINERMENU = 2 + } OLEVERBATTRIB; + + +extern "C" const IID IID_IEnumOLEVERB; + + + + struct __declspec(uuid("00000104-0000-0000-C000-000000000046")) __declspec(novtable) + IEnumOLEVERB : public IUnknown + { + public: + virtual HRESULT __stdcall Next( + + ULONG celt, + + LPOLEVERB rgelt, + + ULONG *pceltFetched) = 0; + + virtual HRESULT __stdcall Skip( + ULONG celt) = 0; + + virtual HRESULT __stdcall Reset( void) = 0; + + virtual HRESULT __stdcall Clone( + IEnumOLEVERB **ppenum) = 0; + + }; +# 3946 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" + HRESULT __stdcall IEnumOLEVERB_RemoteNext_Proxy( + IEnumOLEVERB * This, + ULONG celt, + LPOLEVERB rgelt, + ULONG *pceltFetched); + + +void __stdcall IEnumOLEVERB_RemoteNext_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 3970 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/oleidl.h" +#pragma warning(pop) + + + +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; + + + +unsigned long __stdcall CLIPFORMAT_UserSize( unsigned long *, unsigned long , CLIPFORMAT * ); +unsigned char * __stdcall CLIPFORMAT_UserMarshal( unsigned long *, unsigned char *, CLIPFORMAT * ); +unsigned char * __stdcall CLIPFORMAT_UserUnmarshal( unsigned long *, unsigned char *, CLIPFORMAT * ); +void __stdcall CLIPFORMAT_UserFree( unsigned long *, CLIPFORMAT * ); + +unsigned long __stdcall HACCEL_UserSize( unsigned long *, unsigned long , HACCEL * ); +unsigned char * __stdcall HACCEL_UserMarshal( unsigned long *, unsigned char *, HACCEL * ); +unsigned char * __stdcall HACCEL_UserUnmarshal( unsigned long *, unsigned char *, HACCEL * ); +void __stdcall HACCEL_UserFree( unsigned long *, HACCEL * ); + +unsigned long __stdcall HDC_UserSize( unsigned long *, unsigned long , HDC * ); +unsigned char * __stdcall HDC_UserMarshal( unsigned long *, unsigned char *, HDC * ); +unsigned char * __stdcall HDC_UserUnmarshal( unsigned long *, unsigned char *, HDC * ); +void __stdcall HDC_UserFree( unsigned long *, HDC * ); + +unsigned long __stdcall HGLOBAL_UserSize( unsigned long *, unsigned long , HGLOBAL * ); +unsigned char * __stdcall HGLOBAL_UserMarshal( unsigned long *, unsigned char *, HGLOBAL * ); +unsigned char * __stdcall HGLOBAL_UserUnmarshal( unsigned long *, unsigned char *, HGLOBAL * ); +void __stdcall HGLOBAL_UserFree( unsigned long *, HGLOBAL * ); + +unsigned long __stdcall HMENU_UserSize( unsigned long *, unsigned long , HMENU * ); +unsigned char * __stdcall HMENU_UserMarshal( unsigned long *, unsigned char *, HMENU * ); +unsigned char * __stdcall HMENU_UserUnmarshal( unsigned long *, unsigned char *, HMENU * ); +void __stdcall HMENU_UserFree( unsigned long *, HMENU * ); + +unsigned long __stdcall HWND_UserSize( unsigned long *, unsigned long , HWND * ); +unsigned char * __stdcall HWND_UserMarshal( unsigned long *, unsigned char *, HWND * ); +unsigned char * __stdcall HWND_UserUnmarshal( unsigned long *, unsigned char *, HWND * ); +void __stdcall HWND_UserFree( unsigned long *, HWND * ); + +unsigned long __stdcall STGMEDIUM_UserSize( unsigned long *, unsigned long , STGMEDIUM * ); +unsigned char * __stdcall STGMEDIUM_UserMarshal( unsigned long *, unsigned char *, STGMEDIUM * ); +unsigned char * __stdcall STGMEDIUM_UserUnmarshal( unsigned long *, unsigned char *, STGMEDIUM * ); +void __stdcall STGMEDIUM_UserFree( unsigned long *, STGMEDIUM * ); + +unsigned long __stdcall CLIPFORMAT_UserSize64( unsigned long *, unsigned long , CLIPFORMAT * ); +unsigned char * __stdcall CLIPFORMAT_UserMarshal64( unsigned long *, unsigned char *, CLIPFORMAT * ); +unsigned char * __stdcall CLIPFORMAT_UserUnmarshal64( unsigned long *, unsigned char *, CLIPFORMAT * ); +void __stdcall CLIPFORMAT_UserFree64( unsigned long *, CLIPFORMAT * ); + +unsigned long __stdcall HACCEL_UserSize64( unsigned long *, unsigned long , HACCEL * ); +unsigned char * __stdcall HACCEL_UserMarshal64( unsigned long *, unsigned char *, HACCEL * ); +unsigned char * __stdcall HACCEL_UserUnmarshal64( unsigned long *, unsigned char *, HACCEL * ); +void __stdcall HACCEL_UserFree64( unsigned long *, HACCEL * ); + +unsigned long __stdcall HDC_UserSize64( unsigned long *, unsigned long , HDC * ); +unsigned char * __stdcall HDC_UserMarshal64( unsigned long *, unsigned char *, HDC * ); +unsigned char * __stdcall HDC_UserUnmarshal64( unsigned long *, unsigned char *, HDC * ); +void __stdcall HDC_UserFree64( unsigned long *, HDC * ); + +unsigned long __stdcall HGLOBAL_UserSize64( unsigned long *, unsigned long , HGLOBAL * ); +unsigned char * __stdcall HGLOBAL_UserMarshal64( unsigned long *, unsigned char *, HGLOBAL * ); +unsigned char * __stdcall HGLOBAL_UserUnmarshal64( unsigned long *, unsigned char *, HGLOBAL * ); +void __stdcall HGLOBAL_UserFree64( unsigned long *, HGLOBAL * ); + +unsigned long __stdcall HMENU_UserSize64( unsigned long *, unsigned long , HMENU * ); +unsigned char * __stdcall HMENU_UserMarshal64( unsigned long *, unsigned char *, HMENU * ); +unsigned char * __stdcall HMENU_UserUnmarshal64( unsigned long *, unsigned char *, HMENU * ); +void __stdcall HMENU_UserFree64( unsigned long *, HMENU * ); + +unsigned long __stdcall HWND_UserSize64( unsigned long *, unsigned long , HWND * ); +unsigned char * __stdcall HWND_UserMarshal64( unsigned long *, unsigned char *, HWND * ); +unsigned char * __stdcall HWND_UserUnmarshal64( unsigned long *, unsigned char *, HWND * ); +void __stdcall HWND_UserFree64( unsigned long *, HWND * ); + +unsigned long __stdcall STGMEDIUM_UserSize64( unsigned long *, unsigned long , STGMEDIUM * ); +unsigned char * __stdcall STGMEDIUM_UserMarshal64( unsigned long *, unsigned char *, STGMEDIUM * ); +unsigned char * __stdcall STGMEDIUM_UserUnmarshal64( unsigned long *, unsigned char *, STGMEDIUM * ); +void __stdcall STGMEDIUM_UserFree64( unsigned long *, STGMEDIUM * ); + + HRESULT __stdcall IOleCache2_UpdateCache_Proxy( + IOleCache2 * This, + + LPDATAOBJECT pDataObject, + + DWORD grfUpdf, + + LPVOID pReserved); + + + HRESULT __stdcall IOleCache2_UpdateCache_Stub( + IOleCache2 * This, + LPDATAOBJECT pDataObject, + DWORD grfUpdf, + LONG_PTR pReserved); + + HRESULT __stdcall IOleInPlaceActiveObject_TranslateAccelerator_Proxy( + IOleInPlaceActiveObject * This, + + LPMSG lpmsg); + + + HRESULT __stdcall IOleInPlaceActiveObject_TranslateAccelerator_Stub( + IOleInPlaceActiveObject * This); + + HRESULT __stdcall IOleInPlaceActiveObject_ResizeBorder_Proxy( + IOleInPlaceActiveObject * This, + + LPCRECT prcBorder, + + IOleInPlaceUIWindow *pUIWindow, + + BOOL fFrameWindow); + + + HRESULT __stdcall IOleInPlaceActiveObject_ResizeBorder_Stub( + IOleInPlaceActiveObject * This, + LPCRECT prcBorder, + const IID & riid, + IOleInPlaceUIWindow *pUIWindow, + BOOL fFrameWindow); + + HRESULT __stdcall IViewObject_Draw_Proxy( + IViewObject * This, + + DWORD dwDrawAspect, + + LONG lindex, + + void *pvAspect, + + DVTARGETDEVICE *ptd, + + HDC hdcTargetDev, + + HDC hdcDraw, + + LPCRECTL lprcBounds, + + LPCRECTL lprcWBounds, + + BOOL ( __stdcall *pfnContinue )( + ULONG_PTR dwContinue), + + ULONG_PTR dwContinue); + + + HRESULT __stdcall IViewObject_Draw_Stub( + IViewObject * This, + DWORD dwDrawAspect, + LONG lindex, + ULONG_PTR pvAspect, + DVTARGETDEVICE *ptd, + HDC hdcTargetDev, + HDC hdcDraw, + LPCRECTL lprcBounds, + LPCRECTL lprcWBounds, + IContinue *pContinue); + + HRESULT __stdcall IViewObject_GetColorSet_Proxy( + IViewObject * This, + + DWORD dwDrawAspect, + + LONG lindex, + + void *pvAspect, + + DVTARGETDEVICE *ptd, + + HDC hicTargetDev, + + LOGPALETTE **ppColorSet); + + + HRESULT __stdcall IViewObject_GetColorSet_Stub( + IViewObject * This, + DWORD dwDrawAspect, + LONG lindex, + ULONG_PTR pvAspect, + DVTARGETDEVICE *ptd, + ULONG_PTR hicTargetDev, + LOGPALETTE **ppColorSet); + + HRESULT __stdcall IViewObject_Freeze_Proxy( + IViewObject * This, + + DWORD dwDrawAspect, + + LONG lindex, + + void *pvAspect, + + DWORD *pdwFreeze); + + + HRESULT __stdcall IViewObject_Freeze_Stub( + IViewObject * This, + DWORD dwDrawAspect, + LONG lindex, + ULONG_PTR pvAspect, + DWORD *pdwFreeze); + + HRESULT __stdcall IViewObject_GetAdvise_Proxy( + IViewObject * This, + + DWORD *pAspects, + + DWORD *pAdvf, + + IAdviseSink **ppAdvSink); + + + HRESULT __stdcall IViewObject_GetAdvise_Stub( + IViewObject * This, + DWORD *pAspects, + DWORD *pAdvf, + IAdviseSink **ppAdvSink); + + HRESULT __stdcall IEnumOLEVERB_Next_Proxy( + IEnumOLEVERB * This, + + ULONG celt, + + LPOLEVERB rgelt, + + ULONG *pceltFetched); + + + HRESULT __stdcall IEnumOLEVERB_Next_Stub( + IEnumOLEVERB * This, + ULONG celt, + LPOLEVERB rgelt, + ULONG *pceltFetched); + + + + + + +} +# 429 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/servprov.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/servprov.h" +typedef struct IServiceProvider IServiceProvider; +# 53 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/servprov.h" +extern "C"{ +# 71 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/servprov.h" +#pragma comment(lib,"uuid.lib") +# 82 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/servprov.h" +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; + + + + + + + +typedef IServiceProvider *LPSERVICEPROVIDER; + + + extern "C" const IID IID_IServiceProvider; + extern "C++" + { + struct __declspec(uuid("6d5140c1-7436-11ce-8034-00aa006009fa")) __declspec(novtable) + IServiceProvider : public IUnknown + { + public: + virtual HRESULT __stdcall QueryService( + const GUID & guidService, + const IID & riid, + void * *ppvObject) = 0; + + template + HRESULT __stdcall QueryService( const GUID & guidService, Q** pp) + { + return QueryService(guidService, __uuidof(Q), (void **)pp); + } + }; + } + + HRESULT __stdcall IServiceProvider_RemoteQueryService_Proxy( + IServiceProvider * This, + const GUID & guidService, + const IID & riid, + IUnknown * *ppvObject); + + void __stdcall IServiceProvider_RemoteQueryService_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 233 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/servprov.h" +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; + + + + HRESULT __stdcall IServiceProvider_QueryService_Proxy( + IServiceProvider * This, + + const GUID & guidService, + + const IID & riid, + + void **ppvObject); + + + HRESULT __stdcall IServiceProvider_QueryService_Stub( + IServiceProvider * This, + const GUID & guidService, + const IID & riid, + IUnknown **ppvObject); + + + + + + +} +# 430 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" 1 +# 40 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +typedef struct IXMLDOMImplementation IXMLDOMImplementation; + + + + + + +typedef struct IXMLDOMNode IXMLDOMNode; + + + + + + +typedef struct IXMLDOMDocumentFragment IXMLDOMDocumentFragment; + + + + + + +typedef struct IXMLDOMDocument IXMLDOMDocument; + + + + + + +typedef struct IXMLDOMNodeList IXMLDOMNodeList; + + + + + + +typedef struct IXMLDOMNamedNodeMap IXMLDOMNamedNodeMap; + + + + + + +typedef struct IXMLDOMCharacterData IXMLDOMCharacterData; + + + + + + +typedef struct IXMLDOMAttribute IXMLDOMAttribute; + + + + + + +typedef struct IXMLDOMElement IXMLDOMElement; + + + + + + +typedef struct IXMLDOMText IXMLDOMText; + + + + + + +typedef struct IXMLDOMComment IXMLDOMComment; + + + + + + +typedef struct IXMLDOMProcessingInstruction IXMLDOMProcessingInstruction; + + + + + + +typedef struct IXMLDOMCDATASection IXMLDOMCDATASection; + + + + + + +typedef struct IXMLDOMDocumentType IXMLDOMDocumentType; + + + + + + +typedef struct IXMLDOMNotation IXMLDOMNotation; + + + + + + +typedef struct IXMLDOMEntity IXMLDOMEntity; + + + + + + +typedef struct IXMLDOMEntityReference IXMLDOMEntityReference; + + + + + + +typedef struct IXMLDOMParseError IXMLDOMParseError; + + + + + + +typedef struct IXTLRuntime IXTLRuntime; + + + + + + +typedef struct XMLDOMDocumentEvents XMLDOMDocumentEvents; +# 182 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +typedef class DOMDocument DOMDocument; +# 194 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +typedef class DOMFreeThreadedDocument DOMFreeThreadedDocument; +# 204 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +typedef struct IXMLHttpRequest IXMLHttpRequest; +# 213 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +typedef class XMLHTTPRequest XMLHTTPRequest; +# 223 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +typedef struct IXMLDSOControl IXMLDSOControl; +# 232 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +typedef class XMLDSOControl XMLDSOControl; +# 242 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +typedef struct IXMLElementCollection IXMLElementCollection; + + + + + + +typedef struct IXMLDocument IXMLDocument; + + + + + + +typedef struct IXMLDocument2 IXMLDocument2; + + + + + + +typedef struct IXMLElement IXMLElement; + + + + + + +typedef struct IXMLElement2 IXMLElement2; + + + + + + +typedef struct IXMLAttribute IXMLAttribute; + + + + + + +typedef struct IXMLError IXMLError; +# 293 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +typedef class XMLDocument XMLDocument; +# 307 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C"{ +# 320 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +#pragma warning(push) +#pragma warning(disable: 4001) + +#pragma warning(push) +#pragma warning(disable: 4001) + +#pragma warning(pop) +#pragma warning(pop) + + + + +#pragma warning(push) +#pragma warning(disable: 4820) + + + +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; +# 393 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +typedef +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; +# 437 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +typedef +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; +# 459 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMImplementation; + + + + struct __declspec(uuid("2933BF8F-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) + IXMLDOMImplementation : public IDispatch + { + public: + virtual HRESULT __stdcall hasFeature( + BSTR feature, + BSTR version, + VARIANT_BOOL *hasFeature) = 0; + + }; +# 593 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMNode; + + + + struct __declspec(uuid("2933BF80-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) + IXMLDOMNode : public IDispatch + { + public: + virtual HRESULT __stdcall get_nodeName( + BSTR *name) = 0; + + virtual HRESULT __stdcall get_nodeValue( + VARIANT *value) = 0; + + virtual HRESULT __stdcall put_nodeValue( + VARIANT value) = 0; + + virtual HRESULT __stdcall get_nodeType( + DOMNodeType *type) = 0; + + virtual HRESULT __stdcall get_parentNode( + IXMLDOMNode **parent) = 0; + + virtual HRESULT __stdcall get_childNodes( + IXMLDOMNodeList **childList) = 0; + + virtual HRESULT __stdcall get_firstChild( + IXMLDOMNode **firstChild) = 0; + + virtual HRESULT __stdcall get_lastChild( + IXMLDOMNode **lastChild) = 0; + + virtual HRESULT __stdcall get_previousSibling( + IXMLDOMNode **previousSibling) = 0; + + virtual HRESULT __stdcall get_nextSibling( + IXMLDOMNode **nextSibling) = 0; + + virtual HRESULT __stdcall get_attributes( + IXMLDOMNamedNodeMap **attributeMap) = 0; + + virtual HRESULT __stdcall insertBefore( + IXMLDOMNode *newChild, + VARIANT refChild, + IXMLDOMNode **outNewChild) = 0; + + virtual HRESULT __stdcall replaceChild( + IXMLDOMNode *newChild, + IXMLDOMNode *oldChild, + IXMLDOMNode **outOldChild) = 0; + + virtual HRESULT __stdcall removeChild( + IXMLDOMNode *childNode, + IXMLDOMNode **oldChild) = 0; + + virtual HRESULT __stdcall appendChild( + IXMLDOMNode *newChild, + IXMLDOMNode **outNewChild) = 0; + + virtual HRESULT __stdcall hasChildNodes( + VARIANT_BOOL *hasChild) = 0; + + virtual HRESULT __stdcall get_ownerDocument( + IXMLDOMDocument **DOMDocument) = 0; + + virtual HRESULT __stdcall cloneNode( + VARIANT_BOOL deep, + IXMLDOMNode **cloneRoot) = 0; + + virtual HRESULT __stdcall get_nodeTypeString( + BSTR *nodeType) = 0; + + virtual HRESULT __stdcall get_text( + BSTR *text) = 0; + + virtual HRESULT __stdcall put_text( + BSTR text) = 0; + + virtual HRESULT __stdcall get_specified( + VARIANT_BOOL *isSpecified) = 0; + + virtual HRESULT __stdcall get_definition( + IXMLDOMNode **definitionNode) = 0; + + virtual HRESULT __stdcall get_nodeTypedValue( + VARIANT *typedValue) = 0; + + virtual HRESULT __stdcall put_nodeTypedValue( + VARIANT typedValue) = 0; + + virtual HRESULT __stdcall get_dataType( + VARIANT *dataTypeName) = 0; + + virtual HRESULT __stdcall put_dataType( + BSTR dataTypeName) = 0; + + virtual HRESULT __stdcall get_xml( + BSTR *xmlString) = 0; + + virtual HRESULT __stdcall transformNode( + IXMLDOMNode *stylesheet, + BSTR *xmlString) = 0; + + virtual HRESULT __stdcall selectNodes( + BSTR queryString, + IXMLDOMNodeList **resultList) = 0; + + virtual HRESULT __stdcall selectSingleNode( + BSTR queryString, + IXMLDOMNode **resultNode) = 0; + + virtual HRESULT __stdcall get_parsed( + VARIANT_BOOL *isParsed) = 0; + + virtual HRESULT __stdcall get_namespaceURI( + BSTR *namespaceURI) = 0; + + virtual HRESULT __stdcall get_prefix( + BSTR *prefixString) = 0; + + virtual HRESULT __stdcall get_baseName( + BSTR *nameString) = 0; + + virtual HRESULT __stdcall transformNodeToObject( + IXMLDOMNode *stylesheet, + VARIANT outputObject) = 0; + + }; +# 1095 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMDocumentFragment; + + + + struct __declspec(uuid("3efaa413-272f-11d2-836f-0000f87a7782")) __declspec(novtable) + IXMLDOMDocumentFragment : public IXMLDOMNode + { + public: + }; +# 1479 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMDocument; + + + + struct __declspec(uuid("2933BF81-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) + IXMLDOMDocument : public IXMLDOMNode + { + public: + virtual HRESULT __stdcall get_doctype( + IXMLDOMDocumentType **documentType) = 0; + + virtual HRESULT __stdcall get_implementation( + IXMLDOMImplementation **impl) = 0; + + virtual HRESULT __stdcall get_documentElement( + IXMLDOMElement **DOMElement) = 0; + + virtual HRESULT __stdcall putref_documentElement( + IXMLDOMElement *DOMElement) = 0; + + virtual HRESULT __stdcall createElement( + BSTR tagName, + IXMLDOMElement **element) = 0; + + virtual HRESULT __stdcall createDocumentFragment( + IXMLDOMDocumentFragment **docFrag) = 0; + + virtual HRESULT __stdcall createTextNode( + BSTR data, + IXMLDOMText **text) = 0; + + virtual HRESULT __stdcall createComment( + BSTR data, + IXMLDOMComment **comment) = 0; + + virtual HRESULT __stdcall createCDATASection( + BSTR data, + IXMLDOMCDATASection **cdata) = 0; + + virtual HRESULT __stdcall createProcessingInstruction( + BSTR target, + BSTR data, + IXMLDOMProcessingInstruction **pi) = 0; + + virtual HRESULT __stdcall createAttribute( + BSTR name, + IXMLDOMAttribute **attribute) = 0; + + virtual HRESULT __stdcall createEntityReference( + BSTR name, + IXMLDOMEntityReference **entityRef) = 0; + + virtual HRESULT __stdcall getElementsByTagName( + BSTR tagName, + IXMLDOMNodeList **resultList) = 0; + + virtual HRESULT __stdcall createNode( + VARIANT Type, + BSTR name, + BSTR namespaceURI, + IXMLDOMNode **node) = 0; + + virtual HRESULT __stdcall nodeFromID( + BSTR idString, + IXMLDOMNode **node) = 0; + + virtual HRESULT __stdcall load( + VARIANT xmlSource, + VARIANT_BOOL *isSuccessful) = 0; + + virtual HRESULT __stdcall get_readyState( + long *value) = 0; + + virtual HRESULT __stdcall get_parseError( + IXMLDOMParseError **errorObj) = 0; + + virtual HRESULT __stdcall get_url( + BSTR *urlString) = 0; + + virtual HRESULT __stdcall get_async( + VARIANT_BOOL *isAsync) = 0; + + virtual HRESULT __stdcall put_async( + VARIANT_BOOL isAsync) = 0; + + virtual HRESULT __stdcall abort( void) = 0; + + virtual HRESULT __stdcall loadXML( + BSTR bstrXML, + VARIANT_BOOL *isSuccessful) = 0; + + virtual HRESULT __stdcall save( + VARIANT desination) = 0; + + virtual HRESULT __stdcall get_validateOnParse( + VARIANT_BOOL *isValidating) = 0; + + virtual HRESULT __stdcall put_validateOnParse( + VARIANT_BOOL isValidating) = 0; + + virtual HRESULT __stdcall get_resolveExternals( + VARIANT_BOOL *isResolving) = 0; + + virtual HRESULT __stdcall put_resolveExternals( + VARIANT_BOOL isResolving) = 0; + + virtual HRESULT __stdcall get_preserveWhiteSpace( + VARIANT_BOOL *isPreserving) = 0; + + virtual HRESULT __stdcall put_preserveWhiteSpace( + VARIANT_BOOL isPreserving) = 0; + + virtual HRESULT __stdcall put_onreadystatechange( + VARIANT readystatechangeSink) = 0; + + virtual HRESULT __stdcall put_ondataavailable( + VARIANT ondataavailableSink) = 0; + + virtual HRESULT __stdcall put_ontransformnode( + VARIANT ontransformnodeSink) = 0; + + }; +# 2221 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMNodeList; + + + + struct __declspec(uuid("2933BF82-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) + IXMLDOMNodeList : public IDispatch + { + public: + virtual HRESULT __stdcall get_item( + long index, + IXMLDOMNode **listItem) = 0; + + virtual HRESULT __stdcall get_length( + long *listLength) = 0; + + virtual HRESULT __stdcall nextNode( + IXMLDOMNode **nextItem) = 0; + + virtual HRESULT __stdcall reset( void) = 0; + + virtual HRESULT __stdcall get__newEnum( + IUnknown **ppUnk) = 0; + + }; +# 2391 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMNamedNodeMap; + + + + struct __declspec(uuid("2933BF83-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) + IXMLDOMNamedNodeMap : public IDispatch + { + public: + virtual HRESULT __stdcall getNamedItem( + BSTR name, + IXMLDOMNode **namedItem) = 0; + + virtual HRESULT __stdcall setNamedItem( + IXMLDOMNode *newItem, + IXMLDOMNode **nameItem) = 0; + + virtual HRESULT __stdcall removeNamedItem( + BSTR name, + IXMLDOMNode **namedItem) = 0; + + virtual HRESULT __stdcall get_item( + long index, + IXMLDOMNode **listItem) = 0; + + virtual HRESULT __stdcall get_length( + long *listLength) = 0; + + virtual HRESULT __stdcall getQualifiedItem( + BSTR baseName, + BSTR namespaceURI, + IXMLDOMNode **qualifiedItem) = 0; + + virtual HRESULT __stdcall removeQualifiedItem( + BSTR baseName, + BSTR namespaceURI, + IXMLDOMNode **qualifiedItem) = 0; + + virtual HRESULT __stdcall nextNode( + IXMLDOMNode **nextItem) = 0; + + virtual HRESULT __stdcall reset( void) = 0; + + virtual HRESULT __stdcall get__newEnum( + IUnknown **ppUnk) = 0; + + }; +# 2625 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMCharacterData; + + + + struct __declspec(uuid("2933BF84-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) + IXMLDOMCharacterData : public IXMLDOMNode + { + public: + virtual HRESULT __stdcall get_data( + BSTR *data) = 0; + + virtual HRESULT __stdcall put_data( + BSTR data) = 0; + + virtual HRESULT __stdcall get_length( + long *dataLength) = 0; + + virtual HRESULT __stdcall substringData( + long offset, + long count, + BSTR *data) = 0; + + virtual HRESULT __stdcall appendData( + BSTR data) = 0; + + virtual HRESULT __stdcall insertData( + long offset, + BSTR data) = 0; + + virtual HRESULT __stdcall deleteData( + long offset, + long count) = 0; + + virtual HRESULT __stdcall replaceData( + long offset, + long count, + BSTR data) = 0; + + }; +# 3101 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMAttribute; + + + + struct __declspec(uuid("2933BF85-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) + IXMLDOMAttribute : public IXMLDOMNode + { + public: + virtual HRESULT __stdcall get_name( + BSTR *attributeName) = 0; + + virtual HRESULT __stdcall get_value( + VARIANT *attributeValue) = 0; + + virtual HRESULT __stdcall put_value( + VARIANT attributeValue) = 0; + + }; +# 3515 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMElement; + + + + struct __declspec(uuid("2933BF86-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) + IXMLDOMElement : public IXMLDOMNode + { + public: + virtual HRESULT __stdcall get_tagName( + BSTR *tagName) = 0; + + virtual HRESULT __stdcall getAttribute( + BSTR name, + VARIANT *value) = 0; + + virtual HRESULT __stdcall setAttribute( + BSTR name, + VARIANT value) = 0; + + virtual HRESULT __stdcall removeAttribute( + BSTR name) = 0; + + virtual HRESULT __stdcall getAttributeNode( + BSTR name, + IXMLDOMAttribute **attributeNode) = 0; + + virtual HRESULT __stdcall setAttributeNode( + IXMLDOMAttribute *DOMAttribute, + IXMLDOMAttribute **attributeNode) = 0; + + virtual HRESULT __stdcall removeAttributeNode( + IXMLDOMAttribute *DOMAttribute, + IXMLDOMAttribute **attributeNode) = 0; + + virtual HRESULT __stdcall getElementsByTagName( + BSTR tagName, + IXMLDOMNodeList **resultList) = 0; + + virtual HRESULT __stdcall normalize( void) = 0; + + }; +# 3999 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMText; + + + + struct __declspec(uuid("2933BF87-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) + IXMLDOMText : public IXMLDOMCharacterData + { + public: + virtual HRESULT __stdcall splitText( + long offset, + IXMLDOMText **rightHandTextNode) = 0; + + }; +# 4458 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMComment; + + + + struct __declspec(uuid("2933BF88-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) + IXMLDOMComment : public IXMLDOMCharacterData + { + public: + }; +# 4905 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMProcessingInstruction; + + + + struct __declspec(uuid("2933BF89-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) + IXMLDOMProcessingInstruction : public IXMLDOMNode + { + public: + virtual HRESULT __stdcall get_target( + BSTR *name) = 0; + + virtual HRESULT __stdcall get_data( + BSTR *value) = 0; + + virtual HRESULT __stdcall put_data( + BSTR value) = 0; + + }; +# 5319 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMCDATASection; + + + + struct __declspec(uuid("2933BF8A-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) + IXMLDOMCDATASection : public IXMLDOMText + { + public: + }; +# 5775 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMDocumentType; + + + + struct __declspec(uuid("2933BF8B-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) + IXMLDOMDocumentType : public IXMLDOMNode + { + public: + virtual HRESULT __stdcall get_name( + BSTR *rootName) = 0; + + virtual HRESULT __stdcall get_entities( + IXMLDOMNamedNodeMap **entityMap) = 0; + + virtual HRESULT __stdcall get_notations( + IXMLDOMNamedNodeMap **notationMap) = 0; + + }; +# 6189 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMNotation; + + + + struct __declspec(uuid("2933BF8C-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) + IXMLDOMNotation : public IXMLDOMNode + { + public: + virtual HRESULT __stdcall get_publicId( + VARIANT *publicID) = 0; + + virtual HRESULT __stdcall get_systemId( + VARIANT *systemID) = 0; + + }; +# 6593 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMEntity; + + + + struct __declspec(uuid("2933BF8D-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) + IXMLDOMEntity : public IXMLDOMNode + { + public: + virtual HRESULT __stdcall get_publicId( + VARIANT *publicID) = 0; + + virtual HRESULT __stdcall get_systemId( + VARIANT *systemID) = 0; + + virtual HRESULT __stdcall get_notationName( + BSTR *name) = 0; + + }; +# 7007 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMEntityReference; + + + + struct __declspec(uuid("2933BF8E-7B36-11d2-B20E-00C04F983E60")) __declspec(novtable) + IXMLDOMEntityReference : public IXMLDOMNode + { + public: + }; +# 7391 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDOMParseError; + + + + struct __declspec(uuid("3efaa426-272f-11d2-836f-0000f87a7782")) __declspec(novtable) + IXMLDOMParseError : public IDispatch + { + public: + virtual HRESULT __stdcall get_errorCode( + long *errorCode) = 0; + + virtual HRESULT __stdcall get_url( + BSTR *urlString) = 0; + + virtual HRESULT __stdcall get_reason( + BSTR *reasonString) = 0; + + virtual HRESULT __stdcall get_srcText( + BSTR *sourceString) = 0; + + virtual HRESULT __stdcall get_line( + long *lineNumber) = 0; + + virtual HRESULT __stdcall get_linepos( + long *linePosition) = 0; + + virtual HRESULT __stdcall get_filepos( + long *filePosition) = 0; + + }; +# 7581 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXTLRuntime; + + + + struct __declspec(uuid("3efaa425-272f-11d2-836f-0000f87a7782")) __declspec(novtable) + IXTLRuntime : public IXMLDOMNode + { + public: + virtual HRESULT __stdcall uniqueID( + IXMLDOMNode *pNode, + long *pID) = 0; + + virtual HRESULT __stdcall depth( + IXMLDOMNode *pNode, + long *pDepth) = 0; + + virtual HRESULT __stdcall childNumber( + IXMLDOMNode *pNode, + long *pNumber) = 0; + + virtual HRESULT __stdcall ancestorChildNumber( + BSTR bstrNodeName, + IXMLDOMNode *pNode, + long *pNumber) = 0; + + virtual HRESULT __stdcall absoluteChildNumber( + IXMLDOMNode *pNode, + long *pNumber) = 0; + + virtual HRESULT __stdcall formatIndex( + long lIndex, + BSTR bstrFormat, + BSTR *pbstrFormattedString) = 0; + + virtual HRESULT __stdcall formatNumber( + double dblNumber, + BSTR bstrFormat, + BSTR *pbstrFormattedString) = 0; + + virtual HRESULT __stdcall formatDate( + VARIANT varDate, + BSTR bstrFormat, + VARIANT varDestLocale, + BSTR *pbstrFormattedString) = 0; + + virtual HRESULT __stdcall formatTime( + VARIANT varTime, + BSTR bstrFormat, + VARIANT varDestLocale, + BSTR *pbstrFormattedString) = 0; + + }; +# 8087 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID DIID_XMLDOMDocumentEvents; + + + + struct __declspec(uuid("3efaa427-272f-11d2-836f-0000f87a7782")) __declspec(novtable) + XMLDOMDocumentEvents : public IDispatch + { + }; +# 8195 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const CLSID CLSID_DOMDocument; + + + +class __declspec(uuid("2933BF90-7B36-11d2-B20E-00C04F983E60")) +DOMDocument; + + +extern "C" const CLSID CLSID_DOMFreeThreadedDocument; + + + +class __declspec(uuid("2933BF91-7B36-11d2-B20E-00C04F983E60")) +DOMFreeThreadedDocument; +# 8218 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLHttpRequest; + + + + struct __declspec(uuid("ED8C108D-4349-11D2-91A4-00C04F7969E8")) __declspec(novtable) + IXMLHttpRequest : public IDispatch + { + public: + virtual HRESULT __stdcall open( + BSTR bstrMethod, + BSTR bstrUrl, + VARIANT varAsync, + VARIANT bstrUser, + VARIANT bstrPassword) = 0; + + virtual HRESULT __stdcall setRequestHeader( + BSTR bstrHeader, + BSTR bstrValue) = 0; + + virtual HRESULT __stdcall getResponseHeader( + BSTR bstrHeader, + BSTR *pbstrValue) = 0; + + virtual HRESULT __stdcall getAllResponseHeaders( + BSTR *pbstrHeaders) = 0; + + virtual HRESULT __stdcall send( + VARIANT varBody) = 0; + + virtual HRESULT __stdcall abort( void) = 0; + + virtual HRESULT __stdcall get_status( + long *plStatus) = 0; + + virtual HRESULT __stdcall get_statusText( + BSTR *pbstrStatus) = 0; + + virtual HRESULT __stdcall get_responseXML( + IDispatch **ppBody) = 0; + + virtual HRESULT __stdcall get_responseText( + BSTR *pbstrBody) = 0; + + virtual HRESULT __stdcall get_responseBody( + VARIANT *pvarBody) = 0; + + virtual HRESULT __stdcall get_responseStream( + VARIANT *pvarBody) = 0; + + virtual HRESULT __stdcall get_readyState( + long *plState) = 0; + + virtual HRESULT __stdcall put_onreadystatechange( + IDispatch *pReadyStateSink) = 0; + + }; +# 8481 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const CLSID CLSID_XMLHTTPRequest; + + + +class __declspec(uuid("ED8C108E-4349-11D2-91A4-00C04F7969E8")) +XMLHTTPRequest; +# 8496 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDSOControl; + + + + struct __declspec(uuid("310afa62-0575-11d2-9ca9-0060b0ec3d39")) __declspec(novtable) + IXMLDSOControl : public IDispatch + { + public: + virtual HRESULT __stdcall get_XMLDocument( + IXMLDOMDocument **ppDoc) = 0; + + virtual HRESULT __stdcall put_XMLDocument( + IXMLDOMDocument *ppDoc) = 0; + + virtual HRESULT __stdcall get_JavaDSOCompatible( + BOOL *fJavaDSOCompatible) = 0; + + virtual HRESULT __stdcall put_JavaDSOCompatible( + BOOL fJavaDSOCompatible) = 0; + + virtual HRESULT __stdcall get_readyState( + long *state) = 0; + + }; +# 8659 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const CLSID CLSID_XMLDSOControl; + + + +class __declspec(uuid("550dda30-0541-11d2-9ca9-0060b0ec3d39")) +XMLDSOControl; +# 8674 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLElementCollection; + + + + struct __declspec(uuid("65725580-9B5D-11d0-9BFE-00C04FC99C8E")) __declspec(novtable) + IXMLElementCollection : public IDispatch + { + public: + virtual HRESULT __stdcall put_length( + long v) = 0; + + virtual HRESULT __stdcall get_length( + long *p) = 0; + + virtual HRESULT __stdcall get__newEnum( + IUnknown **ppUnk) = 0; + + virtual HRESULT __stdcall item( + VARIANT var1, + VARIANT var2, + IDispatch **ppDisp) = 0; + + }; +# 8838 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDocument; + + + + struct __declspec(uuid("F52E2B61-18A1-11d1-B105-00805F49916B")) __declspec(novtable) + IXMLDocument : public IDispatch + { + public: + virtual HRESULT __stdcall get_root( + IXMLElement **p) = 0; + + virtual HRESULT __stdcall get_fileSize( + BSTR *p) = 0; + + virtual HRESULT __stdcall get_fileModifiedDate( + BSTR *p) = 0; + + virtual HRESULT __stdcall get_fileUpdatedDate( + BSTR *p) = 0; + + virtual HRESULT __stdcall get_URL( + BSTR *p) = 0; + + virtual HRESULT __stdcall put_URL( + BSTR p) = 0; + + virtual HRESULT __stdcall get_mimeType( + BSTR *p) = 0; + + virtual HRESULT __stdcall get_readyState( + long *pl) = 0; + + virtual HRESULT __stdcall get_charset( + BSTR *p) = 0; + + virtual HRESULT __stdcall put_charset( + BSTR p) = 0; + + virtual HRESULT __stdcall get_version( + BSTR *p) = 0; + + virtual HRESULT __stdcall get_doctype( + BSTR *p) = 0; + + virtual HRESULT __stdcall get_dtdURL( + BSTR *p) = 0; + + virtual HRESULT __stdcall createElement( + VARIANT vType, + VARIANT var1, + IXMLElement **ppElem) = 0; + + }; +# 9102 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLDocument2; + + + + struct __declspec(uuid("2B8DE2FE-8D2D-11d1-B2FC-00C04FD915A9")) __declspec(novtable) + IXMLDocument2 : public IDispatch + { + public: + virtual HRESULT __stdcall get_root( + IXMLElement2 **p) = 0; + + virtual HRESULT __stdcall get_fileSize( + BSTR *p) = 0; + + virtual HRESULT __stdcall get_fileModifiedDate( + BSTR *p) = 0; + + virtual HRESULT __stdcall get_fileUpdatedDate( + BSTR *p) = 0; + + virtual HRESULT __stdcall get_URL( + BSTR *p) = 0; + + virtual HRESULT __stdcall put_URL( + BSTR p) = 0; + + virtual HRESULT __stdcall get_mimeType( + BSTR *p) = 0; + + virtual HRESULT __stdcall get_readyState( + long *pl) = 0; + + virtual HRESULT __stdcall get_charset( + BSTR *p) = 0; + + virtual HRESULT __stdcall put_charset( + BSTR p) = 0; + + virtual HRESULT __stdcall get_version( + BSTR *p) = 0; + + virtual HRESULT __stdcall get_doctype( + BSTR *p) = 0; + + virtual HRESULT __stdcall get_dtdURL( + BSTR *p) = 0; + + virtual HRESULT __stdcall createElement( + VARIANT vType, + VARIANT var1, + IXMLElement2 **ppElem) = 0; + + virtual HRESULT __stdcall get_async( + VARIANT_BOOL *pf) = 0; + + virtual HRESULT __stdcall put_async( + VARIANT_BOOL f) = 0; + + }; +# 9386 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLElement; + + + + struct __declspec(uuid("3F7F31AC-E15F-11d0-9C25-00C04FC99C8E")) __declspec(novtable) + IXMLElement : public IDispatch + { + public: + virtual HRESULT __stdcall get_tagName( + BSTR *p) = 0; + + virtual HRESULT __stdcall put_tagName( + BSTR p) = 0; + + virtual HRESULT __stdcall get_parent( + IXMLElement **ppParent) = 0; + + virtual HRESULT __stdcall setAttribute( + BSTR strPropertyName, + VARIANT PropertyValue) = 0; + + virtual HRESULT __stdcall getAttribute( + BSTR strPropertyName, + VARIANT *PropertyValue) = 0; + + virtual HRESULT __stdcall removeAttribute( + BSTR strPropertyName) = 0; + + virtual HRESULT __stdcall get_children( + IXMLElementCollection **pp) = 0; + + virtual HRESULT __stdcall get_type( + long *plType) = 0; + + virtual HRESULT __stdcall get_text( + BSTR *p) = 0; + + virtual HRESULT __stdcall put_text( + BSTR p) = 0; + + virtual HRESULT __stdcall addChild( + IXMLElement *pChildElem, + long lIndex, + long lReserved) = 0; + + virtual HRESULT __stdcall removeChild( + IXMLElement *pChildElem) = 0; + + }; +# 9634 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLElement2; + + + + struct __declspec(uuid("2B8DE2FF-8D2D-11d1-B2FC-00C04FD915A9")) __declspec(novtable) + IXMLElement2 : public IDispatch + { + public: + virtual HRESULT __stdcall get_tagName( + BSTR *p) = 0; + + virtual HRESULT __stdcall put_tagName( + BSTR p) = 0; + + virtual HRESULT __stdcall get_parent( + IXMLElement2 **ppParent) = 0; + + virtual HRESULT __stdcall setAttribute( + BSTR strPropertyName, + VARIANT PropertyValue) = 0; + + virtual HRESULT __stdcall getAttribute( + BSTR strPropertyName, + VARIANT *PropertyValue) = 0; + + virtual HRESULT __stdcall removeAttribute( + BSTR strPropertyName) = 0; + + virtual HRESULT __stdcall get_children( + IXMLElementCollection **pp) = 0; + + virtual HRESULT __stdcall get_type( + long *plType) = 0; + + virtual HRESULT __stdcall get_text( + BSTR *p) = 0; + + virtual HRESULT __stdcall put_text( + BSTR p) = 0; + + virtual HRESULT __stdcall addChild( + IXMLElement2 *pChildElem, + long lIndex, + long lReserved) = 0; + + virtual HRESULT __stdcall removeChild( + IXMLElement2 *pChildElem) = 0; + + virtual HRESULT __stdcall get_attributes( + IXMLElementCollection **pp) = 0; + + }; +# 9892 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLAttribute; + + + + struct __declspec(uuid("D4D4A0FC-3B73-11d1-B2B4-00C04FB92596")) __declspec(novtable) + IXMLAttribute : public IDispatch + { + public: + virtual HRESULT __stdcall get_name( + BSTR *n) = 0; + + virtual HRESULT __stdcall get_value( + BSTR *v) = 0; + + }; +# 10032 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const IID IID_IXMLError; + + + + struct __declspec(uuid("948C5AD3-C58D-11d0-9C0B-00C04FC99C8E")) __declspec(novtable) + IXMLError : public IUnknown + { + public: + virtual HRESULT __stdcall GetErrorInfo( + XML_ERROR *pErrorReturn) = 0; + + }; +# 10105 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +extern "C" const CLSID CLSID_XMLDocument; + + + +class __declspec(uuid("CFC399AF-D876-11d0-9C10-00C04FC99C8E")) +XMLDocument; +# 10120 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/msxml.h" +#pragma warning(pop) + + + +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; + + + + + + +} +# 431 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" 2 + + + +extern "C"{ +# 452 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +#pragma comment(lib,"uuid.lib") + + + + + + +#pragma warning(push) + + + +#pragma warning(disable: 4820) +# 482 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +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; +# 529 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" HRESULT __stdcall CreateURLMoniker( LPMONIKER pMkCtx, LPCWSTR szURL, LPMONIKER * ppmk); +extern "C" HRESULT __stdcall CreateURLMonikerEx( LPMONIKER pMkCtx, LPCWSTR szURL, LPMONIKER * ppmk, DWORD dwFlags); +extern "C" HRESULT __stdcall GetClassURL( LPCWSTR szURL, CLSID *pClsID); +extern "C" HRESULT __stdcall CreateAsyncBindCtx(DWORD reserved, IBindStatusCallback *pBSCb, + IEnumFORMATETC *pEFetc, IBindCtx **ppBC); + +extern "C" HRESULT __stdcall CreateURLMonikerEx2( LPMONIKER pMkCtx, IUri* pUri, LPMONIKER * ppmk, DWORD dwFlags); + +extern "C" HRESULT __stdcall CreateAsyncBindCtxEx( IBindCtx *pbc, DWORD dwOptions, IBindStatusCallback *pBSCb, IEnumFORMATETC *pEnum, + IBindCtx **ppBC, DWORD reserved); +extern "C" HRESULT __stdcall MkParseDisplayNameEx( IBindCtx *pbc, LPCWSTR szDisplayName, ULONG *pchEaten, + LPMONIKER *ppmk); +extern "C" HRESULT __stdcall RegisterBindStatusCallback( LPBC pBC, IBindStatusCallback *pBSCb, + IBindStatusCallback** ppBSCBPrev, DWORD dwReserved); +extern "C" HRESULT __stdcall RevokeBindStatusCallback( LPBC pBC, IBindStatusCallback *pBSCb); +extern "C" HRESULT __stdcall GetClassFileOrMime( LPBC pBC, LPCWSTR szFilename, LPVOID pBuffer, DWORD cbSize, LPCWSTR szMime, DWORD dwReserved, CLSID *pclsid); +extern "C" HRESULT __stdcall IsValidURL( LPBC pBC, LPCWSTR szURL, DWORD dwReserved); +extern "C" HRESULT __stdcall CoGetClassObjectFromURL( const IID & rCLASSID, + LPCWSTR szCODE, DWORD dwFileVersionMS, + DWORD dwFileVersionLS, LPCWSTR szTYPE, + LPBINDCTX pBindCtx, DWORD dwClsContext, + LPVOID pvReserved, const IID & riid, LPVOID * ppv); +extern "C" HRESULT __stdcall IEInstallScope( LPDWORD pdwScope); +extern "C" HRESULT __stdcall FaultInIEFeature( HWND hWnd, + uCLSSPEC *pClassSpec, + QUERYCONTEXT *pQuery, DWORD dwFlags); +extern "C" HRESULT __stdcall GetComponentIDFromCLSSPEC( uCLSSPEC *pClassspec, + LPSTR * ppszComponentID); +# 567 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" HRESULT __stdcall IsAsyncMoniker( IMoniker* pmk); +extern "C" HRESULT __stdcall CreateURLBinding(LPCWSTR lpszUrl, IBindCtx *pbc, IBinding **ppBdg); + +extern "C" HRESULT __stdcall RegisterMediaTypes( UINT ctypes, const LPCSTR* rgszTypes, CLIPFORMAT* rgcfTypes); +extern "C" HRESULT __stdcall FindMediaType( LPCSTR rgszTypes, CLIPFORMAT* rgcfTypes); +extern "C" HRESULT __stdcall CreateFormatEnumerator( UINT cfmtetc, FORMATETC* rgfmtetc, IEnumFORMATETC** ppenumfmtetc); +extern "C" HRESULT __stdcall RegisterFormatEnumerator( LPBC pBC, IEnumFORMATETC *pEFetc, DWORD reserved); +extern "C" HRESULT __stdcall RevokeFormatEnumerator( LPBC pBC, IEnumFORMATETC *pEFetc); +extern "C" HRESULT __stdcall RegisterMediaTypeClass( LPBC pBC, UINT ctypes, const LPCSTR* rgszTypes, CLSID *rgclsID, DWORD reserved); +extern "C" HRESULT __stdcall FindMediaTypeClass( LPBC pBC, LPCSTR szType, CLSID *pclsID, DWORD reserved); +extern "C" HRESULT __stdcall UrlMkSetSessionOption(DWORD dwOption, LPVOID pBuffer, DWORD dwBufferLength, DWORD dwReserved); +extern "C" HRESULT __stdcall UrlMkGetSessionOption(DWORD dwOption, LPVOID pBuffer, DWORD dwBufferLength, DWORD *pdwBufferLengthOut, DWORD dwReserved); +extern "C" HRESULT __stdcall FindMimeFromData( + LPBC pBC, + LPCWSTR pwzUrl, + LPVOID pBuffer, + DWORD cbSize, + LPCWSTR pwzMimeProposed, + DWORD dwMimeFlags, + LPWSTR *ppwzMimeOut, + DWORD dwReserved); +# 599 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" HRESULT __stdcall ObtainUserAgentString( + DWORD dwOption, + LPSTR pszUAOut, + DWORD *cbSize); +extern "C" HRESULT __stdcall CompareSecurityIds( BYTE* pbSecurityId1, DWORD dwLen1, BYTE* pbSecurityId2, DWORD dwLen2, DWORD dwReserved); +extern "C" HRESULT __stdcall CompatFlagsFromClsid( CLSID *pclsid, LPDWORD pdwCompatFlags, LPDWORD pdwMiscStatusFlags); + + + + +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; + +extern "C" HRESULT __stdcall SetAccessForIEAppContainer( + HANDLE hObject, + IEObjectType ieObjectType, + DWORD dwAccessMask + ); +# 770 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IPersistMoniker *LPPERSISTMONIKER; + + +extern "C" const IID IID_IPersistMoniker; + + + + struct __declspec(uuid("79eac9c9-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IPersistMoniker : public IUnknown + { + public: + virtual HRESULT __stdcall GetClassID( + CLSID *pClassID) = 0; + + virtual HRESULT __stdcall IsDirty( void) = 0; + + virtual HRESULT __stdcall Load( + BOOL fFullyAvailable, + IMoniker *pimkName, + LPBC pibc, + DWORD grfMode) = 0; + + virtual HRESULT __stdcall Save( + IMoniker *pimkName, + LPBC pbc, + BOOL fRemember) = 0; + + virtual HRESULT __stdcall SaveCompleted( + IMoniker *pimkName, + LPBC pibc) = 0; + + virtual HRESULT __stdcall GetCurMoniker( + IMoniker **ppimkName) = 0; + + }; +# 923 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IMonikerProp *LPMONIKERPROP; + +typedef +enum __MIDL_IMonikerProp_0001 + { + MIMETYPEPROP = 0, + USE_SRC_URL = 0x1, + CLASSIDPROP = 0x2, + TRUSTEDDOWNLOADPROP = 0x3, + POPUPLEVELPROP = 0x4 + } MONIKERPROPERTY; + + +extern "C" const IID IID_IMonikerProp; + + + + struct __declspec(uuid("a5ca5f7f-1847-4d87-9c5b-918509f7511d")) __declspec(novtable) + IMonikerProp : public IUnknown + { + public: + virtual HRESULT __stdcall PutProperty( + MONIKERPROPERTY mkp, + LPCWSTR val) = 0; + + }; +# 1028 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IBindProtocol *LPBINDPROTOCOL; + + +extern "C" const IID IID_IBindProtocol; + + + + struct __declspec(uuid("79eac9cd-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IBindProtocol : public IUnknown + { + public: + virtual HRESULT __stdcall CreateBinding( + LPCWSTR szUrl, + IBindCtx *pbc, + IBinding **ppb) = 0; + + }; +# 1125 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IBinding *LPBINDING; + + +extern "C" const IID IID_IBinding; + + + + struct __declspec(uuid("79eac9c0-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IBinding : public IUnknown + { + public: + virtual HRESULT __stdcall Abort( void) = 0; + + virtual HRESULT __stdcall Suspend( void) = 0; + + virtual HRESULT __stdcall Resume( void) = 0; + + virtual HRESULT __stdcall SetPriority( + LONG nPriority) = 0; + + virtual HRESULT __stdcall GetPriority( + LONG *pnPriority) = 0; + + virtual HRESULT __stdcall GetBindResult( + CLSID *pclsidProtocol, + DWORD *pdwResult, + + LPOLESTR *pszResult, + DWORD *pdwReserved) = 0; + + }; +# 1258 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" + HRESULT __stdcall IBinding_RemoteGetBindResult_Proxy( + IBinding * This, + CLSID *pclsidProtocol, + DWORD *pdwResult, + LPOLESTR *pszResult, + DWORD dwReserved); + + +void __stdcall IBinding_RemoteGetBindResult_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 1289 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IBindStatusCallback *LPBINDSTATUSCALLBACK; + +typedef +enum __MIDL_IBindStatusCallback_0001 + { + BINDVERB_GET = 0, + BINDVERB_POST = 0x1, + BINDVERB_PUT = 0x2, + BINDVERB_CUSTOM = 0x3, + BINDVERB_RESERVED1 = 0x4 + } BINDVERB; + +typedef +enum __MIDL_IBindStatusCallback_0002 + { + BINDINFOF_URLENCODESTGMEDDATA = 0x1, + BINDINFOF_URLENCODEDEXTRAINFO = 0x2 + } BINDINFOF; + +typedef +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 +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 +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 +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_LAST_PRIVATE = BINDSTATUS_RESERVED_11 + } BINDSTATUS; + + +extern "C" const IID IID_IBindStatusCallback; + + + + struct __declspec(uuid("79eac9c1-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IBindStatusCallback : public IUnknown + { + public: + virtual HRESULT __stdcall OnStartBinding( + DWORD dwReserved, + IBinding *pib) = 0; + + virtual HRESULT __stdcall GetPriority( + LONG *pnPriority) = 0; + + virtual HRESULT __stdcall OnLowResource( + DWORD reserved) = 0; + + virtual HRESULT __stdcall OnProgress( + ULONG ulProgress, + ULONG ulProgressMax, + ULONG ulStatusCode, + LPCWSTR szStatusText) = 0; + + virtual HRESULT __stdcall OnStopBinding( + HRESULT hresult, + LPCWSTR szError) = 0; + + virtual HRESULT __stdcall GetBindInfo( + DWORD *grfBINDF, + BINDINFO *pbindinfo) = 0; + + virtual HRESULT __stdcall OnDataAvailable( + DWORD grfBSCF, + DWORD dwSize, + FORMATETC *pformatetc, + STGMEDIUM *pstgmed) = 0; + + virtual HRESULT __stdcall OnObjectAvailable( + const IID & riid, + IUnknown *punk) = 0; + + }; +# 1691 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" + HRESULT __stdcall IBindStatusCallback_RemoteGetBindInfo_Proxy( + IBindStatusCallback * This, + DWORD *grfBINDF, + RemBINDINFO *pbindinfo, + RemSTGMEDIUM *pstgmed); + + +void __stdcall IBindStatusCallback_RemoteGetBindInfo_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IBindStatusCallback_RemoteOnDataAvailable_Proxy( + IBindStatusCallback * This, + DWORD grfBSCF, + DWORD dwSize, + RemFORMATETC *pformatetc, + RemSTGMEDIUM *pstgmed); + + +void __stdcall IBindStatusCallback_RemoteOnDataAvailable_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 1736 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IBindStatusCallbackEx *LPBINDSTATUSCALLBACKEX; + +typedef +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; + + + + struct __declspec(uuid("aaa74ef9-8ee7-4659-88d9-f8c504da73cc")) __declspec(novtable) + IBindStatusCallbackEx : public IBindStatusCallback + { + public: + virtual HRESULT __stdcall GetBindInfoEx( + DWORD *grfBINDF, + BINDINFO *pbindinfo, + DWORD *grfBINDF2, + DWORD *pdwReserved) = 0; + + }; +# 1926 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" + HRESULT __stdcall IBindStatusCallbackEx_RemoteGetBindInfoEx_Proxy( + IBindStatusCallbackEx * This, + DWORD *grfBINDF, + RemBINDINFO *pbindinfo, + RemSTGMEDIUM *pstgmed, + DWORD *grfBINDF2, + DWORD *pdwReserved); + + +void __stdcall IBindStatusCallbackEx_RemoteGetBindInfoEx_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 1954 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IAuthenticate *LPAUTHENTICATION; + + +extern "C" const IID IID_IAuthenticate; + + + + struct __declspec(uuid("79eac9d0-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IAuthenticate : public IUnknown + { + public: + virtual HRESULT __stdcall Authenticate( + HWND *phwnd, + LPWSTR *pszUsername, + LPWSTR *pszPassword) = 0; + + }; +# 2051 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IAuthenticateEx *LPAUTHENTICATIONEX; + +typedef +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; + + + + struct __declspec(uuid("2ad1edaf-d83d-48b5-9adf-03dbe19f53bd")) __declspec(novtable) + IAuthenticateEx : public IAuthenticate + { + public: + virtual HRESULT __stdcall AuthenticateEx( + HWND *phwnd, + LPWSTR *pszUsername, + LPWSTR *pszPassword, + AUTHENTICATEINFO *pauthinfo) = 0; + + }; +# 2174 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IHttpNegotiate *LPHTTPNEGOTIATE; + + +extern "C" const IID IID_IHttpNegotiate; + + + + struct __declspec(uuid("79eac9d2-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IHttpNegotiate : public IUnknown + { + public: + virtual HRESULT __stdcall BeginningTransaction( + LPCWSTR szURL, + LPCWSTR szHeaders, + DWORD dwReserved, + LPWSTR *pszAdditionalHeaders) = 0; + + virtual HRESULT __stdcall OnResponse( + DWORD dwResponseCode, + LPCWSTR szResponseHeaders, + LPCWSTR szRequestHeaders, + LPWSTR *pszAdditionalRequestHeaders) = 0; + + }; +# 2289 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IHttpNegotiate2 *LPHTTPNEGOTIATE2; + + +extern "C" const IID IID_IHttpNegotiate2; + + + + struct __declspec(uuid("4F9F9FCB-E0F4-48eb-B7AB-FA2EA9365CB4")) __declspec(novtable) + IHttpNegotiate2 : public IHttpNegotiate + { + public: + virtual HRESULT __stdcall GetRootSecurityId( + BYTE *pbSecurityId, + DWORD *pcbSecurityId, + DWORD_PTR dwReserved) = 0; + + }; +# 2407 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IHttpNegotiate3 *LPHTTPNEGOTIATE3; + + +extern "C" const IID IID_IHttpNegotiate3; + + + + struct __declspec(uuid("57b6c80a-34c2-4602-bc26-66a02fc57153")) __declspec(novtable) + IHttpNegotiate3 : public IHttpNegotiate2 + { + public: + virtual HRESULT __stdcall GetSerializedClientCertContext( + BYTE **ppbCert, + DWORD *pcbCert) = 0; + + }; +# 2533 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IWinInetFileStream *LPWININETFILESTREAM; + + +extern "C" const IID IID_IWinInetFileStream; + + + + struct __declspec(uuid("F134C4B7-B1F8-4e75-B886-74B90943BECB")) __declspec(novtable) + IWinInetFileStream : public IUnknown + { + public: + virtual HRESULT __stdcall SetHandleForUnlock( + DWORD_PTR hWinInetLockHandle, + DWORD_PTR dwReserved) = 0; + + virtual HRESULT __stdcall SetDeleteFile( + DWORD_PTR dwReserved) = 0; + + }; +# 2638 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IWindowForBindingUI *LPWINDOWFORBINDINGUI; + + +extern "C" const IID IID_IWindowForBindingUI; + + + + struct __declspec(uuid("79eac9d5-bafa-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IWindowForBindingUI : public IUnknown + { + public: + virtual HRESULT __stdcall GetWindow( + const GUID & rguidReason, + HWND *phwnd) = 0; + + }; +# 2733 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef ICodeInstall *LPCODEINSTALL; + +typedef +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; + + + + struct __declspec(uuid("79eac9d1-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + ICodeInstall : public IWindowForBindingUI + { + public: + virtual HRESULT __stdcall OnCodeInstallProblem( + ULONG ulStatusCode, + LPCWSTR szDestination, + LPCWSTR szSource, + DWORD dwReserved) = 0; + + }; +# 2861 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef +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 +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; + + + + struct __declspec(uuid("A39EE748-6A27-4817-A6F2-13914BEF5890")) __declspec(novtable) + IUri : public IUnknown + { + public: + virtual HRESULT __stdcall GetPropertyBSTR( + Uri_PROPERTY uriProp, + BSTR *pbstrProperty, + DWORD dwFlags) = 0; + + virtual HRESULT __stdcall GetPropertyLength( + Uri_PROPERTY uriProp, + DWORD *pcchProperty, + DWORD dwFlags) = 0; + + virtual HRESULT __stdcall GetPropertyDWORD( + Uri_PROPERTY uriProp, + DWORD *pdwProperty, + DWORD dwFlags) = 0; + + virtual HRESULT __stdcall HasProperty( + Uri_PROPERTY uriProp, + BOOL *pfHasProperty) = 0; + + virtual HRESULT __stdcall GetAbsoluteUri( + BSTR *pbstrAbsoluteUri) = 0; + + virtual HRESULT __stdcall GetAuthority( + BSTR *pbstrAuthority) = 0; + + virtual HRESULT __stdcall GetDisplayUri( + BSTR *pbstrDisplayString) = 0; + + virtual HRESULT __stdcall GetDomain( + BSTR *pbstrDomain) = 0; + + virtual HRESULT __stdcall GetExtension( + BSTR *pbstrExtension) = 0; + + virtual HRESULT __stdcall GetFragment( + BSTR *pbstrFragment) = 0; + + virtual HRESULT __stdcall GetHost( + BSTR *pbstrHost) = 0; + + virtual HRESULT __stdcall GetPassword( + BSTR *pbstrPassword) = 0; + + virtual HRESULT __stdcall GetPath( + BSTR *pbstrPath) = 0; + + virtual HRESULT __stdcall GetPathAndQuery( + BSTR *pbstrPathAndQuery) = 0; + + virtual HRESULT __stdcall GetQuery( + BSTR *pbstrQuery) = 0; + + virtual HRESULT __stdcall GetRawUri( + BSTR *pbstrRawUri) = 0; + + virtual HRESULT __stdcall GetSchemeName( + BSTR *pbstrSchemeName) = 0; + + virtual HRESULT __stdcall GetUserInfo( + BSTR *pbstrUserInfo) = 0; + + virtual HRESULT __stdcall GetUserNameW( + BSTR *pbstrUserName) = 0; + + virtual HRESULT __stdcall GetHostType( + DWORD *pdwHostType) = 0; + + virtual HRESULT __stdcall GetPort( + DWORD *pdwPort) = 0; + + virtual HRESULT __stdcall GetScheme( + DWORD *pdwScheme) = 0; + + virtual HRESULT __stdcall GetZone( + DWORD *pdwZone) = 0; + + virtual HRESULT __stdcall GetProperties( + LPDWORD pdwFlags) = 0; + + virtual HRESULT __stdcall IsEqual( + IUri *pUri, + BOOL *pfEqual) = 0; + + }; +# 3241 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" HRESULT __stdcall CreateUri( LPCWSTR pwzURI, + DWORD dwFlags, + DWORD_PTR dwReserved, + IUri** ppURI); + +extern "C" HRESULT __stdcall CreateUriWithFragment( + LPCWSTR pwzURI, + LPCWSTR pwzFragment, + DWORD dwFlags, + DWORD_PTR dwReserved, + IUri** ppURI); + + + + + + +extern "C" HRESULT __stdcall CreateUriFromMultiByteString( + LPCSTR pszANSIInputUri, + DWORD dwEncodingFlags, + DWORD dwCodePage, + DWORD dwCreateFlags, + DWORD_PTR dwReserved, + IUri** ppUri); +# 3341 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; +# 3351 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_IUriContainer; + + + + struct __declspec(uuid("a158a630-ed6f-45fb-b987-f68676f57752")) __declspec(novtable) + IUriContainer : public IUnknown + { + public: + virtual HRESULT __stdcall GetIUri( + IUri **ppIUri) = 0; + + }; +# 3431 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_IUriBuilder; + + + + struct __declspec(uuid("4221B2E1-8955-46c0-BD5B-DE9897565DE7")) __declspec(novtable) + IUriBuilder : public IUnknown + { + public: + virtual HRESULT __stdcall CreateUriSimple( + DWORD dwAllowEncodingPropertyMask, + DWORD_PTR dwReserved, + + IUri **ppIUri) = 0; + + virtual HRESULT __stdcall CreateUri( + DWORD dwCreateFlags, + DWORD dwAllowEncodingPropertyMask, + DWORD_PTR dwReserved, + + IUri **ppIUri) = 0; + + virtual HRESULT __stdcall CreateUriWithFlags( + DWORD dwCreateFlags, + DWORD dwUriBuilderFlags, + DWORD dwAllowEncodingPropertyMask, + DWORD_PTR dwReserved, + + IUri **ppIUri) = 0; + + virtual HRESULT __stdcall GetIUri( + + IUri **ppIUri) = 0; + + virtual HRESULT __stdcall SetIUri( + + IUri *pIUri) = 0; + + virtual HRESULT __stdcall GetFragment( + + DWORD *pcchFragment, + + LPCWSTR *ppwzFragment) = 0; + + virtual HRESULT __stdcall GetHost( + + DWORD *pcchHost, + + LPCWSTR *ppwzHost) = 0; + + virtual HRESULT __stdcall GetPassword( + + DWORD *pcchPassword, + + LPCWSTR *ppwzPassword) = 0; + + virtual HRESULT __stdcall GetPath( + + DWORD *pcchPath, + + LPCWSTR *ppwzPath) = 0; + + virtual HRESULT __stdcall GetPort( + + BOOL *pfHasPort, + + DWORD *pdwPort) = 0; + + virtual HRESULT __stdcall GetQuery( + + DWORD *pcchQuery, + + LPCWSTR *ppwzQuery) = 0; + + virtual HRESULT __stdcall GetSchemeName( + + DWORD *pcchSchemeName, + + LPCWSTR *ppwzSchemeName) = 0; + + virtual HRESULT __stdcall GetUserNameW( + + DWORD *pcchUserName, + + LPCWSTR *ppwzUserName) = 0; + + virtual HRESULT __stdcall SetFragment( + + LPCWSTR pwzNewValue) = 0; + + virtual HRESULT __stdcall SetHost( + + LPCWSTR pwzNewValue) = 0; + + virtual HRESULT __stdcall SetPassword( + + LPCWSTR pwzNewValue) = 0; + + virtual HRESULT __stdcall SetPath( + + LPCWSTR pwzNewValue) = 0; + + virtual HRESULT __stdcall SetPortW( + BOOL fHasPort, + DWORD dwNewValue) = 0; + + virtual HRESULT __stdcall SetQuery( + + LPCWSTR pwzNewValue) = 0; + + virtual HRESULT __stdcall SetSchemeName( + + LPCWSTR pwzNewValue) = 0; + + virtual HRESULT __stdcall SetUserName( + + LPCWSTR pwzNewValue) = 0; + + virtual HRESULT __stdcall RemoveProperties( + DWORD dwPropertyMask) = 0; + + virtual HRESULT __stdcall HasBeenModified( + + BOOL *pfModified) = 0; + + }; +# 3825 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_IUriBuilderFactory; + + + + struct __declspec(uuid("E982CE48-0B96-440c-BC37-0C869B27A29E")) __declspec(novtable) + IUriBuilderFactory : public IUnknown + { + public: + virtual HRESULT __stdcall CreateIUriBuilder( + + DWORD dwFlags, + + DWORD_PTR dwReserved, + + IUriBuilder **ppIUriBuilder) = 0; + + virtual HRESULT __stdcall CreateInitializedIUriBuilder( + + DWORD dwFlags, + + DWORD_PTR dwReserved, + + IUriBuilder **ppIUriBuilder) = 0; + + }; +# 3931 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" HRESULT __stdcall CreateIUriBuilder( + IUri *pIUri, + DWORD dwFlags, + DWORD_PTR dwReserved, + IUriBuilder **ppIUriBuilder + ); +# 3946 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IWinInetInfo *LPWININETINFO; + + +extern "C" const IID IID_IWinInetInfo; + + + + struct __declspec(uuid("79eac9d6-bafa-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IWinInetInfo : public IUnknown + { + public: + virtual HRESULT __stdcall QueryOption( + DWORD dwOption, + LPVOID pBuffer, + DWORD *pcbBuf) = 0; + + }; +# 4031 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" + HRESULT __stdcall IWinInetInfo_RemoteQueryOption_Proxy( + IWinInetInfo * This, + DWORD dwOption, + BYTE *pBuffer, + DWORD *pcbBuf); + + +void __stdcall IWinInetInfo_RemoteQueryOption_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 4058 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IHttpSecurity *LPHTTPSECURITY; + + +extern "C" const IID IID_IHttpSecurity; + + + + struct __declspec(uuid("79eac9d7-bafa-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IHttpSecurity : public IWindowForBindingUI + { + public: + virtual HRESULT __stdcall OnSecurityProblem( + DWORD dwProblem) = 0; + + }; +# 4160 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IWinInetHttpInfo *LPWININETHTTPINFO; + + +extern "C" const IID IID_IWinInetHttpInfo; + + + + struct __declspec(uuid("79eac9d8-bafa-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IWinInetHttpInfo : public IWinInetInfo + { + public: + virtual HRESULT __stdcall QueryInfo( + DWORD dwOption, + LPVOID pBuffer, + DWORD *pcbBuf, + DWORD *pdwFlags, + DWORD *pdwReserved) = 0; + + }; +# 4259 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" + HRESULT __stdcall IWinInetHttpInfo_RemoteQueryInfo_Proxy( + IWinInetHttpInfo * This, + DWORD dwOption, + BYTE *pBuffer, + DWORD *pcbBuf, + DWORD *pdwFlags, + DWORD *pdwReserved); + + +void __stdcall IWinInetHttpInfo_RemoteQueryInfo_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 4287 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; +# 4297 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_IWinInetHttpTimeouts; + + + + struct __declspec(uuid("F286FA56-C1FD-4270-8E67-B3EB790A81E8")) __declspec(novtable) + IWinInetHttpTimeouts : public IUnknown + { + public: + virtual HRESULT __stdcall GetRequestTimeouts( + + DWORD *pdwConnectTimeout, + + DWORD *pdwSendTimeout, + + DWORD *pdwReceiveTimeout) = 0; + + }; +# 4389 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IWinInetCacheHints *LPWININETCACHEHINTS; + + +extern "C" const IID IID_IWinInetCacheHints; + + + + struct __declspec(uuid("DD1EC3B3-8391-4fdb-A9E6-347C3CAAA7DD")) __declspec(novtable) + IWinInetCacheHints : public IUnknown + { + public: + virtual HRESULT __stdcall SetCacheExtension( + LPCWSTR pwzExt, + LPVOID pszCacheFile, + DWORD *pcbCacheFile, + DWORD *pdwWinInetError, + DWORD *pdwReserved) = 0; + + }; +# 4492 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IWinInetCacheHints2 *LPWININETCACHEHINTS2; + + +extern "C" const IID IID_IWinInetCacheHints2; + + + + struct __declspec(uuid("7857AEAC-D31F-49bf-884E-DD46DF36780A")) __declspec(novtable) + IWinInetCacheHints2 : public IWinInetCacheHints + { + public: + virtual HRESULT __stdcall SetCacheExtension2( + LPCWSTR pwzExt, + + WCHAR *pwzCacheFile, + DWORD *pcchCacheFile, + DWORD *pdwWinInetError, + DWORD *pdwReserved) = 0; + + }; +# 4608 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IBindHost *LPBINDHOST; + + +extern "C" const IID IID_IBindHost; + + + + struct __declspec(uuid("fc4801a1-2ba9-11cf-a229-00aa003d7352")) __declspec(novtable) + IBindHost : public IUnknown + { + public: + virtual HRESULT __stdcall CreateMoniker( + LPOLESTR szName, + IBindCtx *pBC, + IMoniker **ppmk, + DWORD dwReserved) = 0; + + virtual HRESULT __stdcall MonikerBindToStorage( + IMoniker *pMk, + IBindCtx *pBC, + IBindStatusCallback *pBSC, + const IID & riid, + void **ppvObj) = 0; + + virtual HRESULT __stdcall MonikerBindToObject( + IMoniker *pMk, + IBindCtx *pBC, + IBindStatusCallback *pBSC, + const IID & riid, + void **ppvObj) = 0; + + }; +# 4734 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" + HRESULT __stdcall IBindHost_RemoteMonikerBindToStorage_Proxy( + IBindHost * This, + IMoniker *pMk, + IBindCtx *pBC, + IBindStatusCallback *pBSC, + const IID & riid, + IUnknown **ppvObj); + + +void __stdcall IBindHost_RemoteMonikerBindToStorage_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IBindHost_RemoteMonikerBindToObject_Proxy( + IBindHost * This, + IMoniker *pMk, + IBindCtx *pBC, + IBindStatusCallback *pBSC, + const IID & riid, + IUnknown **ppvObj); + + +void __stdcall IBindHost_RemoteMonikerBindToObject_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 4782 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +struct IBindStatusCallback; +extern "C" HRESULT __stdcall HlinkSimpleNavigateToString( + LPCWSTR szTarget, + LPCWSTR szLocation, + LPCWSTR szTargetFrameName, + IUnknown *pUnk, + IBindCtx *pbc, + IBindStatusCallback *, + DWORD grfHLNF, + DWORD dwReserved +); + +extern "C" HRESULT __stdcall HlinkSimpleNavigateToMoniker( + IMoniker *pmkTarget, + LPCWSTR szLocation, + LPCWSTR szTargetFrameName, + IUnknown *pUnk, + IBindCtx *pbc, + IBindStatusCallback *, + DWORD grfHLNF, + DWORD dwReserved +); + +extern "C" HRESULT __stdcall URLOpenStreamA( LPUNKNOWN, LPCSTR,DWORD, LPBINDSTATUSCALLBACK); +extern "C" HRESULT __stdcall URLOpenStreamW( LPUNKNOWN, LPCWSTR,DWORD, LPBINDSTATUSCALLBACK); +extern "C" HRESULT __stdcall URLOpenPullStreamA( LPUNKNOWN, LPCSTR,DWORD, LPBINDSTATUSCALLBACK); +extern "C" HRESULT __stdcall URLOpenPullStreamW( LPUNKNOWN, LPCWSTR,DWORD, LPBINDSTATUSCALLBACK); +extern "C" HRESULT __stdcall URLDownloadToFileA( LPUNKNOWN, LPCSTR, LPCSTR,DWORD, LPBINDSTATUSCALLBACK); +extern "C" HRESULT __stdcall URLDownloadToFileW( LPUNKNOWN, LPCWSTR, LPCWSTR,DWORD, LPBINDSTATUSCALLBACK); +extern "C" HRESULT __stdcall URLDownloadToCacheFileA( LPUNKNOWN, LPCSTR, LPSTR, DWORD cchFileName, DWORD, LPBINDSTATUSCALLBACK); +extern "C" HRESULT __stdcall URLDownloadToCacheFileW( LPUNKNOWN, LPCWSTR, LPWSTR, DWORD cchFileName, DWORD, LPBINDSTATUSCALLBACK); +extern "C" HRESULT __stdcall URLOpenBlockingStreamA( LPUNKNOWN, LPCSTR, LPSTREAM*,DWORD, LPBINDSTATUSCALLBACK); +extern "C" HRESULT __stdcall URLOpenBlockingStreamW( LPUNKNOWN, LPCWSTR, LPSTREAM*,DWORD, LPBINDSTATUSCALLBACK); +# 4831 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" HRESULT __stdcall HlinkGoBack( IUnknown *pUnk); +extern "C" HRESULT __stdcall HlinkGoForward( IUnknown *pUnk); +extern "C" HRESULT __stdcall HlinkNavigateString( IUnknown *pUnk, LPCWSTR szTarget); +extern "C" HRESULT __stdcall HlinkNavigateMoniker( IUnknown *pUnk, IMoniker *pmkTarget); +# 4851 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IInternet *LPIINTERNET; + + +extern "C" const IID IID_IInternet; + + + + struct __declspec(uuid("79eac9e0-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IInternet : public IUnknown + { + public: + }; +# 4934 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef 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; + + +extern "C" const IID IID_IInternetBindInfo; + + + + struct __declspec(uuid("79eac9e1-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IInternetBindInfo : public IUnknown + { + public: + virtual HRESULT __stdcall GetBindInfo( + DWORD *grfBINDF, + BINDINFO *pbindinfo) = 0; + + virtual HRESULT __stdcall GetBindString( + ULONG ulStringType, + + LPOLESTR *ppwzStr, + ULONG cEl, + ULONG *pcElFetched) = 0; + + }; +# 5077 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IInternetBindInfoEx *LPIINTERNETBINDINFOEX; + + +extern "C" const IID IID_IInternetBindInfoEx; + + + + struct __declspec(uuid("a3e015b7-a82c-4dcd-a150-569aeeed36ab")) __declspec(novtable) + IInternetBindInfoEx : public IInternetBindInfo + { + public: + virtual HRESULT __stdcall GetBindInfoEx( + DWORD *grfBINDF, + BINDINFO *pbindinfo, + DWORD *grfBINDF2, + DWORD *pdwReserved) = 0; + + }; +# 5196 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef 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; + + + + struct __declspec(uuid("79eac9e3-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IInternetProtocolRoot : public IUnknown + { + public: + virtual HRESULT __stdcall Start( + LPCWSTR szUrl, + IInternetProtocolSink *pOIProtSink, + IInternetBindInfo *pOIBindInfo, + DWORD grfPI, + HANDLE_PTR dwReserved) = 0; + + virtual HRESULT __stdcall Continue( + PROTOCOLDATA *pProtocolData) = 0; + + virtual HRESULT __stdcall Abort( + HRESULT hrReason, + DWORD dwOptions) = 0; + + virtual HRESULT __stdcall Terminate( + DWORD dwOptions) = 0; + + virtual HRESULT __stdcall Suspend( void) = 0; + + virtual HRESULT __stdcall Resume( void) = 0; + + }; +# 5380 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IInternetProtocol *LPIINTERNETPROTOCOL; + + +extern "C" const IID IID_IInternetProtocol; + + + + struct __declspec(uuid("79eac9e4-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IInternetProtocol : public IInternetProtocolRoot + { + public: + virtual HRESULT __stdcall Read( + void *pv, + ULONG cb, + ULONG *pcbRead) = 0; + + virtual HRESULT __stdcall Seek( + LARGE_INTEGER dlibMove, + DWORD dwOrigin, + ULARGE_INTEGER *plibNewPosition) = 0; + + virtual HRESULT __stdcall LockRequest( + DWORD dwOptions) = 0; + + virtual HRESULT __stdcall UnlockRequest( void) = 0; + + }; +# 5556 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; +# 5566 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_IInternetProtocolEx; + + + + struct __declspec(uuid("C7A98E66-1010-492c-A1C8-C809E1F75905")) __declspec(novtable) + IInternetProtocolEx : public IInternetProtocol + { + public: + virtual HRESULT __stdcall StartEx( + IUri *pUri, + IInternetProtocolSink *pOIProtSink, + IInternetBindInfo *pOIBindInfo, + DWORD grfPI, + HANDLE_PTR dwReserved) = 0; + + }; +# 5734 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IInternetProtocolSink *LPIINTERNETPROTOCOLSINK; + + +extern "C" const IID IID_IInternetProtocolSink; + + + + struct __declspec(uuid("79eac9e5-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IInternetProtocolSink : public IUnknown + { + public: + virtual HRESULT __stdcall Switch( + PROTOCOLDATA *pProtocolData) = 0; + + virtual HRESULT __stdcall ReportProgress( + ULONG ulStatusCode, + LPCWSTR szStatusText) = 0; + + virtual HRESULT __stdcall ReportData( + DWORD grfBSCF, + ULONG ulProgress, + ULONG ulProgressMax) = 0; + + virtual HRESULT __stdcall ReportResult( + HRESULT hrResult, + DWORD dwError, + LPCWSTR szResult) = 0; + + }; +# 5867 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IInternetProtocolSinkStackable *LPIINTERNETPROTOCOLSINKStackable; + + +extern "C" const IID IID_IInternetProtocolSinkStackable; + + + + struct __declspec(uuid("79eac9f0-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IInternetProtocolSinkStackable : public IUnknown + { + public: + virtual HRESULT __stdcall SwitchSink( + IInternetProtocolSink *pOIProtSink) = 0; + + virtual HRESULT __stdcall CommitSwitch( void) = 0; + + virtual HRESULT __stdcall RollbackSwitch( void) = 0; + + }; +# 5976 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IInternetSession *LPIINTERNETSESSION; + +typedef +enum _tagOIBDG_FLAGS + { + OIBDG_APARTMENTTHREADED = 0x100, + OIBDG_DATAONLY = 0x1000 + } OIBDG_FLAGS; + + +extern "C" const IID IID_IInternetSession; + + + + struct __declspec(uuid("79eac9e7-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IInternetSession : public IUnknown + { + public: + virtual HRESULT __stdcall RegisterNameSpace( + IClassFactory *pCF, + const IID & rclsid, + LPCWSTR pwzProtocol, + ULONG cPatterns, + const LPCWSTR *ppwzPatterns, + DWORD dwReserved) = 0; + + virtual HRESULT __stdcall UnregisterNameSpace( + IClassFactory *pCF, + LPCWSTR pszProtocol) = 0; + + virtual HRESULT __stdcall RegisterMimeFilter( + IClassFactory *pCF, + const IID & rclsid, + LPCWSTR pwzType) = 0; + + virtual HRESULT __stdcall UnregisterMimeFilter( + IClassFactory *pCF, + LPCWSTR pwzType) = 0; + + virtual HRESULT __stdcall CreateBinding( + LPBC pBC, + LPCWSTR szUrl, + IUnknown *pUnkOuter, + IUnknown **ppUnk, + IInternetProtocol **ppOInetProt, + DWORD dwOption) = 0; + + virtual HRESULT __stdcall SetSessionOption( + DWORD dwOption, + LPVOID pBuffer, + DWORD dwBufferLength, + DWORD dwReserved) = 0; + + virtual HRESULT __stdcall GetSessionOption( + DWORD dwOption, + LPVOID pBuffer, + DWORD *pdwBufferLength, + DWORD dwReserved) = 0; + + }; +# 6176 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IInternetThreadSwitch *LPIINTERNETTHREADSWITCH; + + +extern "C" const IID IID_IInternetThreadSwitch; + + + + struct __declspec(uuid("79eac9e8-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IInternetThreadSwitch : public IUnknown + { + public: + virtual HRESULT __stdcall Prepare( void) = 0; + + virtual HRESULT __stdcall Continue( void) = 0; + + }; +# 6275 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IInternetPriority *LPIINTERNETPRIORITY; + + +extern "C" const IID IID_IInternetPriority; + + + + struct __declspec(uuid("79eac9eb-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IInternetPriority : public IUnknown + { + public: + virtual HRESULT __stdcall SetPriority( + LONG nPriority) = 0; + + virtual HRESULT __stdcall GetPriority( + LONG *pnPriority) = 0; + + }; +# 6378 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef 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; + + + + struct __declspec(uuid("79eac9ec-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IInternetProtocolInfo : public IUnknown + { + public: + virtual HRESULT __stdcall ParseUrl( + LPCWSTR pwzUrl, + PARSEACTION ParseAction, + DWORD dwParseFlags, + + LPWSTR pwzResult, + DWORD cchResult, + DWORD *pcchResult, + DWORD dwReserved) = 0; + + virtual HRESULT __stdcall CombineUrl( + LPCWSTR pwzBaseUrl, + LPCWSTR pwzRelativeUrl, + DWORD dwCombineFlags, + + LPWSTR pwzResult, + DWORD cchResult, + DWORD *pcchResult, + DWORD dwReserved) = 0; + + virtual HRESULT __stdcall CompareUrl( + LPCWSTR pwzUrl1, + LPCWSTR pwzUrl2, + DWORD dwCompareFlags) = 0; + + virtual HRESULT __stdcall QueryInfo( + LPCWSTR pwzUrl, + QUERYOPTION OueryOption, + DWORD dwQueryFlags, + LPVOID pBuffer, + DWORD cbBuffer, + DWORD *pcbBuf, + DWORD dwReserved) = 0; + + }; +# 6641 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" HRESULT __stdcall CoInternetParseUrl( + LPCWSTR pwzUrl, + PARSEACTION ParseAction, + DWORD dwFlags, + LPWSTR pszResult, + DWORD cchResult, + DWORD *pcchResult, + DWORD dwReserved + ); + +extern "C" HRESULT __stdcall CoInternetParseIUri( + IUri *pIUri, + PARSEACTION ParseAction, + DWORD dwFlags, + LPWSTR pwzResult, + DWORD cchResult, + DWORD *pcchResult, + DWORD_PTR dwReserved + ); + +extern "C" HRESULT __stdcall CoInternetCombineUrl( + LPCWSTR pwzBaseUrl, + LPCWSTR pwzRelativeUrl, + DWORD dwCombineFlags, + LPWSTR pszResult, + DWORD cchResult, + DWORD *pcchResult, + DWORD dwReserved + ); + +extern "C" HRESULT __stdcall CoInternetCombineUrlEx( + IUri *pBaseUri, + LPCWSTR pwzRelativeUrl, + DWORD dwCombineFlags, + IUri **ppCombinedUri, + DWORD_PTR dwReserved + ); +extern "C" HRESULT __stdcall CoInternetCombineIUri ( + IUri *pBaseUri, + IUri *pRelativeUri, + DWORD dwCombineFlags, + IUri **ppCombinedUri, + DWORD_PTR dwReserved + ); + +extern "C" HRESULT __stdcall CoInternetCompareUrl( + LPCWSTR pwzUrl1, + LPCWSTR pwzUrl2, + DWORD dwFlags + ); +extern "C" HRESULT __stdcall CoInternetGetProtocolFlags( + LPCWSTR pwzUrl, + DWORD *pdwFlags, + DWORD dwReserved + ); +extern "C" HRESULT __stdcall CoInternetQueryInfo( + LPCWSTR pwzUrl, + QUERYOPTION QueryOptions, + DWORD dwQueryFlags, + LPVOID pvBuffer, + DWORD cbBuffer, + DWORD *pcbBuffer, + DWORD dwReserved + ); +extern "C" HRESULT __stdcall CoInternetGetSession( + DWORD dwSessionMode, + IInternetSession **ppIInternetSession, + DWORD dwReserved + ); +extern "C" HRESULT __stdcall CoInternetGetSecurityUrl( + LPCWSTR pwszUrl, + LPWSTR *ppwszSecUrl, + PSUACTION psuAction, + DWORD dwReserved + ); +extern "C" HRESULT __stdcall AsyncInstallDistributionUnit( + LPCWSTR szDistUnit, + LPCWSTR szTYPE, + LPCWSTR szExt, + DWORD dwFileVersionMS, + DWORD dwFileVersionLS, + LPCWSTR szURL, + IBindCtx *pbc, + LPVOID pvReserved, + DWORD flags + ); + +extern "C" HRESULT __stdcall CoInternetGetSecurityUrlEx( + IUri *pUri, + IUri **ppSecUri, + PSUACTION psuAction, + DWORD_PTR dwReserved + ); + + + + +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; +# 6798 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" HRESULT __stdcall CoInternetSetFeatureEnabled( + INTERNETFEATURELIST FeatureEntry, + DWORD dwFlags, + BOOL fEnable + ); +extern "C" HRESULT __stdcall CoInternetIsFeatureEnabled( + INTERNETFEATURELIST FeatureEntry, + DWORD dwFlags + ); +extern "C" HRESULT __stdcall CoInternetIsFeatureEnabledForUrl( + INTERNETFEATURELIST FeatureEntry, + DWORD dwFlags, + LPCWSTR szURL, + IInternetSecurityManager *pSecMgr + ); +extern "C" HRESULT __stdcall CoInternetIsFeatureEnabledForIUri( + INTERNETFEATURELIST FeatureEntry, + DWORD dwFlags, + IUri * pIUri, + IInternetSecurityManagerEx2 *pSecMgr + ); +extern "C" HRESULT __stdcall CoInternetIsFeatureZoneElevationEnabled( + LPCWSTR szFromURL, + LPCWSTR szToURL, + IInternetSecurityManager *pSecMgr, + DWORD dwFlags + ); + + +extern "C" HRESULT __stdcall CopyStgMedium( const STGMEDIUM * pcstgmedSrc, + STGMEDIUM * pstgmedDest); +extern "C" HRESULT __stdcall CopyBindInfo( const BINDINFO * pcbiSrc, + BINDINFO * pbiDest ); +extern "C" void __stdcall ReleaseBindInfo( BINDINFO * pbindinfo ); +# 6854 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" PWSTR __stdcall IEGetUserPrivateNamespaceName(void); + + + +extern "C" HRESULT __stdcall CoInternetCreateSecurityManager( IServiceProvider *pSP, IInternetSecurityManager **ppSM, DWORD dwReserved); + +extern "C" HRESULT __stdcall CoInternetCreateZoneManager( IServiceProvider *pSP, IInternetZoneManager **ppZM, DWORD dwReserved); + + + +extern "C" const IID CLSID_InternetSecurityManager; +extern "C" const IID CLSID_InternetZoneManager; + +extern "C" const IID CLSID_PersistentZoneIdentifier; +# 6886 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; +# 6896 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_IInternetSecurityMgrSite; + + + + struct __declspec(uuid("79eac9ed-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IInternetSecurityMgrSite : public IUnknown + { + public: + virtual HRESULT __stdcall GetWindow( + HWND *phwnd) = 0; + + virtual HRESULT __stdcall EnableModeless( + BOOL fEnable) = 0; + + }; +# 6987 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; +# 7010 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +typedef +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 +enum __MIDL_IInternetSecurityManager_0002 + { + PUAFOUT_DEFAULT = 0, + PUAFOUT_ISLOCKZONEPOLICY = 0x1 + } PUAFOUT; + + + + + + + +typedef +enum __MIDL_IInternetSecurityManager_0003 + { + SZM_CREATE = 0, + SZM_DELETE = 0x1 + } SZM_FLAGS; +# 7071 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_IInternetSecurityManager; + + + + struct __declspec(uuid("79eac9ee-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IInternetSecurityManager : public IUnknown + { + public: + virtual HRESULT __stdcall SetSecuritySite( + IInternetSecurityMgrSite *pSite) = 0; + + virtual HRESULT __stdcall GetSecuritySite( + IInternetSecurityMgrSite **ppSite) = 0; + + virtual HRESULT __stdcall MapUrlToZone( + LPCWSTR pwszUrl, + DWORD *pdwZone, + DWORD dwFlags) = 0; + + virtual HRESULT __stdcall GetSecurityId( + + LPCWSTR pwszUrl, + + BYTE *pbSecurityId, + + DWORD *pcbSecurityId, + + DWORD_PTR dwReserved) = 0; + + virtual HRESULT __stdcall ProcessUrlAction( + LPCWSTR pwszUrl, + DWORD dwAction, + BYTE *pPolicy, + DWORD cbPolicy, + BYTE *pContext, + DWORD cbContext, + DWORD dwFlags, + DWORD dwReserved) = 0; + + virtual HRESULT __stdcall QueryCustomPolicy( + LPCWSTR pwszUrl, + const GUID & guidKey, + BYTE **ppPolicy, + DWORD *pcbPolicy, + BYTE *pContext, + DWORD cbContext, + DWORD dwReserved) = 0; + + virtual HRESULT __stdcall SetZoneMapping( + DWORD dwZone, + LPCWSTR lpszPattern, + DWORD dwFlags) = 0; + + virtual HRESULT __stdcall GetZoneMappings( + DWORD dwZone, + IEnumString **ppenumString, + DWORD dwFlags) = 0; + + }; +# 7275 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; +# 7290 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_IInternetSecurityManagerEx; + + + + struct __declspec(uuid("F164EDF1-CC7C-4f0d-9A94-34222625C393")) __declspec(novtable) + IInternetSecurityManagerEx : public IInternetSecurityManager + { + public: + virtual HRESULT __stdcall ProcessUrlActionEx( + LPCWSTR pwszUrl, + DWORD dwAction, + BYTE *pPolicy, + DWORD cbPolicy, + BYTE *pContext, + DWORD cbContext, + DWORD dwFlags, + DWORD dwReserved, + DWORD *pdwOutFlags) = 0; + + }; +# 7472 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; +# 7484 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_IInternetSecurityManagerEx2; + + + + struct __declspec(uuid("F1E50292-A795-4117-8E09-2B560A72AC60")) __declspec(novtable) + IInternetSecurityManagerEx2 : public IInternetSecurityManagerEx + { + public: + virtual HRESULT __stdcall MapUrlToZoneEx2( + + IUri *pUri, + DWORD *pdwZone, + DWORD dwFlags, + + LPWSTR *ppwszMappedUrl, + + DWORD *pdwOutFlags) = 0; + + virtual HRESULT __stdcall ProcessUrlActionEx2( + + IUri *pUri, + DWORD dwAction, + BYTE *pPolicy, + DWORD cbPolicy, + BYTE *pContext, + DWORD cbContext, + DWORD dwFlags, + DWORD_PTR dwReserved, + DWORD *pdwOutFlags) = 0; + + virtual HRESULT __stdcall GetSecurityIdEx2( + + IUri *pUri, + + BYTE *pbSecurityId, + + DWORD *pcbSecurityId, + + DWORD_PTR dwReserved) = 0; + + virtual HRESULT __stdcall QueryCustomPolicyEx2( + + IUri *pUri, + const GUID & guidKey, + BYTE **ppPolicy, + DWORD *pcbPolicy, + BYTE *pContext, + DWORD cbContext, + DWORD_PTR dwReserved) = 0; + + }; +# 7754 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; +# 7764 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_IZoneIdentifier; + + + + struct __declspec(uuid("cd45f185-1b21-48e2-967b-ead743a8914e")) __declspec(novtable) + IZoneIdentifier : public IUnknown + { + public: + virtual HRESULT __stdcall GetId( + DWORD *pdwZone) = 0; + + virtual HRESULT __stdcall SetId( + DWORD dwZone) = 0; + + virtual HRESULT __stdcall Remove( void) = 0; + + }; +# 7862 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; +# 7872 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_IZoneIdentifier2; + + + + struct __declspec(uuid("EB5E760C-09EF-45C0-B510-70830CE31E6A")) __declspec(novtable) + IZoneIdentifier2 : public IZoneIdentifier + { + public: + virtual HRESULT __stdcall GetLastWriterPackageFamilyName( + LPWSTR *packageFamilyName) = 0; + + virtual HRESULT __stdcall SetLastWriterPackageFamilyName( + LPCWSTR packageFamilyName) = 0; + + virtual HRESULT __stdcall RemoveLastWriterPackageFamilyName( void) = 0; + + virtual HRESULT __stdcall GetAppZoneId( + DWORD *zone) = 0; + + virtual HRESULT __stdcall SetAppZoneId( + DWORD zone) = 0; + + virtual HRESULT __stdcall RemoveAppZoneId( void) = 0; + + }; +# 8023 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; +# 8033 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_IInternetHostSecurityManager; + + + + struct __declspec(uuid("3af280b6-cb3f-11d0-891e-00c04fb6bfc4")) __declspec(novtable) + IInternetHostSecurityManager : public IUnknown + { + public: + virtual HRESULT __stdcall GetSecurityId( + + BYTE *pbSecurityId, + + DWORD *pcbSecurityId, + DWORD_PTR dwReserved) = 0; + + virtual HRESULT __stdcall ProcessUrlAction( + DWORD dwAction, + + BYTE *pPolicy, + DWORD cbPolicy, + + BYTE *pContext, + DWORD cbContext, + DWORD dwFlags, + DWORD dwReserved) = 0; + + virtual HRESULT __stdcall QueryCustomPolicy( + const GUID & guidKey, + + BYTE **ppPolicy, + + DWORD *pcbPolicy, + + BYTE *pContext, + DWORD cbContext, + DWORD dwReserved) = 0; + + }; +# 8432 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const GUID GUID_CUSTOM_LOCALMACHINEZONEUNLOCKED; + + + + + +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; + + + + + + + +typedef 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; + + + +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 +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; +# 8532 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +typedef +enum _URLZONEREG + { + URLZONEREG_DEFAULT = 0, + URLZONEREG_HKLM = ( URLZONEREG_DEFAULT + 1 ) , + URLZONEREG_HKCU = ( URLZONEREG_HKLM + 1 ) + } URLZONEREG; +# 8571 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_IInternetZoneManager; + + + + struct __declspec(uuid("79eac9ef-baf9-11ce-8c82-00aa004ba90b")) __declspec(novtable) + IInternetZoneManager : public IUnknown + { + public: + virtual HRESULT __stdcall GetZoneAttributes( + DWORD dwZone, + + ZONEATTRIBUTES *pZoneAttributes) = 0; + + virtual HRESULT __stdcall SetZoneAttributes( + DWORD dwZone, + + ZONEATTRIBUTES *pZoneAttributes) = 0; + + virtual HRESULT __stdcall GetZoneCustomPolicy( + DWORD dwZone, + const GUID & guidKey, + + BYTE **ppPolicy, + + DWORD *pcbPolicy, + URLZONEREG urlZoneReg) = 0; + + virtual HRESULT __stdcall SetZoneCustomPolicy( + DWORD dwZone, + const GUID & guidKey, + + BYTE *pPolicy, + DWORD cbPolicy, + URLZONEREG urlZoneReg) = 0; + + virtual HRESULT __stdcall GetZoneActionPolicy( + DWORD dwZone, + DWORD dwAction, + + BYTE *pPolicy, + DWORD cbPolicy, + URLZONEREG urlZoneReg) = 0; + + virtual HRESULT __stdcall SetZoneActionPolicy( + DWORD dwZone, + DWORD dwAction, + + BYTE *pPolicy, + DWORD cbPolicy, + URLZONEREG urlZoneReg) = 0; + + virtual HRESULT __stdcall PromptAction( + DWORD dwAction, + HWND hwndParent, + LPCWSTR pwszUrl, + LPCWSTR pwszText, + DWORD dwPromptFlags) = 0; + + virtual HRESULT __stdcall LogAction( + DWORD dwAction, + LPCWSTR pwszUrl, + LPCWSTR pwszText, + DWORD dwLogFlags) = 0; + + virtual HRESULT __stdcall CreateZoneEnumerator( + DWORD *pdwEnum, + DWORD *pdwCount, + DWORD dwFlags) = 0; + + virtual HRESULT __stdcall GetZoneAt( + DWORD dwEnum, + DWORD dwIndex, + DWORD *pdwZone) = 0; + + virtual HRESULT __stdcall DestroyZoneEnumerator( + DWORD dwEnum) = 0; + + virtual HRESULT __stdcall CopyTemplatePoliciesToZone( + DWORD dwTemplate, + DWORD dwZone, + DWORD dwReserved) = 0; + + }; +# 8839 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; +# 8857 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_IInternetZoneManagerEx; + + + + struct __declspec(uuid("A4C23339-8E06-431e-9BF4-7E711C085648")) __declspec(novtable) + IInternetZoneManagerEx : public IInternetZoneManager + { + public: + virtual HRESULT __stdcall GetZoneActionPolicyEx( + DWORD dwZone, + DWORD dwAction, + + BYTE *pPolicy, + DWORD cbPolicy, + URLZONEREG urlZoneReg, + DWORD dwFlags) = 0; + + virtual HRESULT __stdcall SetZoneActionPolicyEx( + DWORD dwZone, + DWORD dwAction, + + BYTE *pPolicy, + DWORD cbPolicy, + URLZONEREG urlZoneReg, + DWORD dwFlags) = 0; + + }; +# 9099 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; +# 9112 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_IInternetZoneManagerEx2; + + + + struct __declspec(uuid("EDC17559-DD5D-4846-8EEF-8BECBA5A4ABF")) __declspec(novtable) + IInternetZoneManagerEx2 : public IInternetZoneManagerEx + { + public: + virtual HRESULT __stdcall GetZoneAttributesEx( + DWORD dwZone, + ZONEATTRIBUTES *pZoneAttributes, + DWORD dwFlags) = 0; + + virtual HRESULT __stdcall GetZoneSecurityState( + DWORD dwZoneIndex, + BOOL fRespectPolicy, + LPDWORD pdwState, + BOOL *pfPolicyEncountered) = 0; + + virtual HRESULT __stdcall GetIESecurityState( + BOOL fRespectPolicy, + LPDWORD pdwState, + BOOL *pfPolicyEncountered, + BOOL fNoCache) = 0; + + virtual HRESULT __stdcall FixUnsecureSettings( void) = 0; + + }; +# 9384 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID CLSID_SoftDistExt; +# 9399 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; +# 9442 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_ISoftDistExt; + + + + struct __declspec(uuid("B15B8DC1-C7E1-11d0-8680-00AA00BDCB71")) __declspec(novtable) + ISoftDistExt : public IUnknown + { + public: + virtual HRESULT __stdcall ProcessSoftDist( + LPCWSTR szCDFURL, + IXMLElement *pSoftDistElement, + LPSOFTDISTINFO lpsdi) = 0; + + virtual HRESULT __stdcall GetFirstCodeBase( + + LPWSTR *szCodeBase, + LPDWORD dwMaxSize) = 0; + + virtual HRESULT __stdcall GetNextCodeBase( + + LPWSTR *szCodeBase, + LPDWORD dwMaxSize) = 0; + + virtual HRESULT __stdcall AsyncInstallDistributionUnit( + IBindCtx *pbc, + LPVOID pvReserved, + DWORD flags, + LPCODEBASEHOLD lpcbh) = 0; + + }; +# 9566 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" HRESULT __stdcall GetSoftwareUpdateInfo( LPCWSTR szDistUnit, LPSOFTDISTINFO psdi ); +extern "C" HRESULT __stdcall SetSoftwareUpdateAdvertisementState( LPCWSTR szDistUnit, DWORD dwAdState, DWORD dwAdvertisedVersionMS, DWORD dwAdvertisedVersionLS ); + + + + + +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; + + + + + + + +typedef ICatalogFileInfo *LPCATALOGFILEINFO; + + +extern "C" const IID IID_ICatalogFileInfo; + + + + struct __declspec(uuid("711C7600-6B48-11d1-B403-00AA00B92AF1")) __declspec(novtable) + ICatalogFileInfo : public IUnknown + { + public: + virtual HRESULT __stdcall GetCatalogFile( + + LPSTR *ppszCatalogFile) = 0; + + virtual HRESULT __stdcall GetJavaTrust( + void **ppJavaTrust) = 0; + + }; +# 9678 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IDataFilter *LPDATAFILTER; + + +extern "C" const IID IID_IDataFilter; + + + + struct __declspec(uuid("69d14c80-c18e-11d0-a9ce-006097942311")) __declspec(novtable) + IDataFilter : public IUnknown + { + public: + virtual HRESULT __stdcall DoEncode( + DWORD dwFlags, + LONG lInBufferSize, + BYTE *pbInBuffer, + LONG lOutBufferSize, + BYTE *pbOutBuffer, + LONG lInBytesAvailable, + LONG *plInBytesRead, + LONG *plOutBytesWritten, + DWORD dwReserved) = 0; + + virtual HRESULT __stdcall DoDecode( + DWORD dwFlags, + LONG lInBufferSize, + BYTE *pbInBuffer, + LONG lOutBufferSize, + BYTE *pbOutBuffer, + LONG lInBytesAvailable, + LONG *plInBytesRead, + LONG *plOutBytesWritten, + DWORD dwReserved) = 0; + + virtual HRESULT __stdcall SetEncodingLevel( + DWORD dwEncLevel) = 0; + + }; +# 9821 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IEncodingFilterFactory *LPENCODINGFILTERFACTORY; + +typedef struct _tagDATAINFO + { + ULONG ulTotalSize; + ULONG ulavrPacketSize; + ULONG ulConnectSpeed; + ULONG ulProcessorSpeed; + } DATAINFO; + + +extern "C" const IID IID_IEncodingFilterFactory; + + + + struct __declspec(uuid("70bdde00-c18e-11d0-a9ce-006097942311")) __declspec(novtable) + IEncodingFilterFactory : public IUnknown + { + public: + virtual HRESULT __stdcall FindBestFilter( + LPCWSTR pwzCodeIn, + LPCWSTR pwzCodeOut, + DATAINFO info, + IDataFilter **ppDF) = 0; + + virtual HRESULT __stdcall GetDefaultFilter( + LPCWSTR pwzCodeIn, + LPCWSTR pwzCodeOut, + IDataFilter **ppDF) = 0; + + }; +# 9952 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +BOOL __stdcall IsLoggingEnabledA( LPCSTR pszUrl); +BOOL __stdcall IsLoggingEnabledW( LPCWSTR pwszUrl); + + + + + +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 __stdcall WriteHitLogging( LPHIT_LOGGING_INFO lpLogginginfo); + +struct CONFIRMSAFETY + { + CLSID clsid; + IUnknown *pUnk; + DWORD dwFlags; + } ; +extern "C" const GUID GUID_CUSTOM_CONFIRMOBJECTSAFETY; + + + + + +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; + + + + + + + +typedef IWrappedProtocol *LPIWRAPPEDPROTOCOL; + + +extern "C" const IID IID_IWrappedProtocol; + + + + struct __declspec(uuid("53c84785-8425-4dc5-971b-e58d9c19f9b6")) __declspec(novtable) + IWrappedProtocol : public IUnknown + { + public: + virtual HRESULT __stdcall GetWrapperCode( + LONG *pnCode, + DWORD_PTR dwReserved) = 0; + + }; +# 10079 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; + + + + + + + +typedef IGetBindHandle *LPGETBINDHANDLE; + +typedef +enum __MIDL_IGetBindHandle_0001 + { + BINDHANDLETYPES_APPCACHE = 0, + BINDHANDLETYPES_DEPENDENCY = 0x1, + BINDHANDLETYPES_COUNT = ( BINDHANDLETYPES_DEPENDENCY + 1 ) + } BINDHANDLETYPES; + + +extern "C" const IID IID_IGetBindHandle; + + + + struct __declspec(uuid("AF0FF408-129D-4b20-91F0-02BD23D88352")) __declspec(novtable) + IGetBindHandle : public IUnknown + { + public: + virtual HRESULT __stdcall GetBindHandle( + BINDHANDLETYPES enumRequestedHandle, + HANDLE *pRetHandle) = 0; + + }; +# 10180 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +typedef struct _tagPROTOCOL_ARGUMENT + { + LPCWSTR szMethod; + LPCWSTR szTargetUrl; + } PROTOCOL_ARGUMENT; + +typedef struct _tagPROTOCOL_ARGUMENT *LPPROTOCOL_ARGUMENT; + + + + + + +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; + + + + + + + +typedef IBindCallbackRedirect *LPBINDCALLBACKREDIRECT; + + +extern "C" const IID IID_IBindCallbackRedirect; + + + + struct __declspec(uuid("11C81BC2-121E-4ed5-B9C4-B430BD54F2C0")) __declspec(novtable) + IBindCallbackRedirect : public IUnknown + { + public: + virtual HRESULT __stdcall Redirect( + LPCWSTR lpcUrl, + VARIANT_BOOL *vbCancel) = 0; + + }; +# 10288 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +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; +# 10298 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +extern "C" const IID IID_IBindHttpSecurity; + + + + struct __declspec(uuid("a9eda967-f50e-4a33-b358-206f6ef3086d")) __declspec(novtable) + IBindHttpSecurity : public IUnknown + { + public: + virtual HRESULT __stdcall GetIgnoreCertMask( + DWORD *pdwIgnoreCertMask) = 0; + + }; +# 10378 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\urlmon.h" +#pragma warning(pop) + + + +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; + + + +unsigned long __stdcall BSTR_UserSize( unsigned long *, unsigned long , BSTR * ); +unsigned char * __stdcall BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * ); +unsigned char * __stdcall BSTR_UserUnmarshal( unsigned long *, unsigned char *, BSTR * ); +void __stdcall BSTR_UserFree( unsigned long *, BSTR * ); + +unsigned long __stdcall HWND_UserSize( unsigned long *, unsigned long , HWND * ); +unsigned char * __stdcall HWND_UserMarshal( unsigned long *, unsigned char *, HWND * ); +unsigned char * __stdcall HWND_UserUnmarshal( unsigned long *, unsigned char *, HWND * ); +void __stdcall HWND_UserFree( unsigned long *, HWND * ); + +unsigned long __stdcall BSTR_UserSize64( unsigned long *, unsigned long , BSTR * ); +unsigned char * __stdcall BSTR_UserMarshal64( unsigned long *, unsigned char *, BSTR * ); +unsigned char * __stdcall BSTR_UserUnmarshal64( unsigned long *, unsigned char *, BSTR * ); +void __stdcall BSTR_UserFree64( unsigned long *, BSTR * ); + +unsigned long __stdcall HWND_UserSize64( unsigned long *, unsigned long , HWND * ); +unsigned char * __stdcall HWND_UserMarshal64( unsigned long *, unsigned char *, HWND * ); +unsigned char * __stdcall HWND_UserUnmarshal64( unsigned long *, unsigned char *, HWND * ); +void __stdcall HWND_UserFree64( unsigned long *, HWND * ); + + HRESULT __stdcall IBinding_GetBindResult_Proxy( + IBinding * This, + CLSID *pclsidProtocol, + DWORD *pdwResult, + + LPOLESTR *pszResult, + DWORD *pdwReserved); + + + HRESULT __stdcall IBinding_GetBindResult_Stub( + IBinding * This, + CLSID *pclsidProtocol, + DWORD *pdwResult, + LPOLESTR *pszResult, + DWORD dwReserved); + + HRESULT __stdcall IBindStatusCallback_GetBindInfo_Proxy( + IBindStatusCallback * This, + DWORD *grfBINDF, + BINDINFO *pbindinfo); + + + HRESULT __stdcall IBindStatusCallback_GetBindInfo_Stub( + IBindStatusCallback * This, + DWORD *grfBINDF, + RemBINDINFO *pbindinfo, + RemSTGMEDIUM *pstgmed); + + HRESULT __stdcall IBindStatusCallback_OnDataAvailable_Proxy( + IBindStatusCallback * This, + DWORD grfBSCF, + DWORD dwSize, + FORMATETC *pformatetc, + STGMEDIUM *pstgmed); + + + HRESULT __stdcall IBindStatusCallback_OnDataAvailable_Stub( + IBindStatusCallback * This, + DWORD grfBSCF, + DWORD dwSize, + RemFORMATETC *pformatetc, + RemSTGMEDIUM *pstgmed); + + HRESULT __stdcall IBindStatusCallbackEx_GetBindInfoEx_Proxy( + IBindStatusCallbackEx * This, + DWORD *grfBINDF, + BINDINFO *pbindinfo, + DWORD *grfBINDF2, + DWORD *pdwReserved); + + + HRESULT __stdcall IBindStatusCallbackEx_GetBindInfoEx_Stub( + IBindStatusCallbackEx * This, + DWORD *grfBINDF, + RemBINDINFO *pbindinfo, + RemSTGMEDIUM *pstgmed, + DWORD *grfBINDF2, + DWORD *pdwReserved); + + HRESULT __stdcall IWinInetInfo_QueryOption_Proxy( + IWinInetInfo * This, + DWORD dwOption, + LPVOID pBuffer, + DWORD *pcbBuf); + + + HRESULT __stdcall IWinInetInfo_QueryOption_Stub( + IWinInetInfo * This, + DWORD dwOption, + BYTE *pBuffer, + DWORD *pcbBuf); + + HRESULT __stdcall IWinInetHttpInfo_QueryInfo_Proxy( + IWinInetHttpInfo * This, + DWORD dwOption, + LPVOID pBuffer, + DWORD *pcbBuf, + DWORD *pdwFlags, + DWORD *pdwReserved); + + + HRESULT __stdcall IWinInetHttpInfo_QueryInfo_Stub( + IWinInetHttpInfo * This, + DWORD dwOption, + BYTE *pBuffer, + DWORD *pcbBuf, + DWORD *pdwFlags, + DWORD *pdwReserved); + + HRESULT __stdcall IBindHost_MonikerBindToStorage_Proxy( + IBindHost * This, + IMoniker *pMk, + IBindCtx *pBC, + IBindStatusCallback *pBSC, + const IID & riid, + void **ppvObj); + + + HRESULT __stdcall IBindHost_MonikerBindToStorage_Stub( + IBindHost * This, + IMoniker *pMk, + IBindCtx *pBC, + IBindStatusCallback *pBSC, + const IID & riid, + IUnknown **ppvObj); + + HRESULT __stdcall IBindHost_MonikerBindToObject_Proxy( + IBindHost * This, + IMoniker *pMk, + IBindCtx *pBC, + IBindStatusCallback *pBSC, + const IID & riid, + void **ppvObj); + + + HRESULT __stdcall IBindHost_MonikerBindToObject_Stub( + IBindHost * This, + IMoniker *pMk, + IBindCtx *pBC, + IBindStatusCallback *pBSC, + const IID & riid, + IUnknown **ppvObj); + + + + + + +} +# 259 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objbase.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidl.h" 1 +# 75 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidl.h" +extern "C"{ +# 90 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidl.h" +#pragma warning(push) +#pragma warning(disable: 4820) + +#pragma warning(disable: 4201) +#pragma warning(disable: 4237) +# 1154 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidl.h" +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 + } ; + + + + + extern "C" __declspec(dllimport) HRESULT __stdcall PropVariantCopy( + PROPVARIANT* pvarDest, + const PROPVARIANT * pvarSrc); + +extern "C" __declspec(dllimport) HRESULT __stdcall PropVariantClear( PROPVARIANT* pvar); + +extern "C" __declspec(dllimport) HRESULT __stdcall FreePropVariantArray( + ULONG cVariants, + PROPVARIANT* rgvars); +# 1188 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidl.h" +inline void PropVariantInit ( PROPVARIANT * pvar ) +{ + memset ( pvar, 0, sizeof(PROPVARIANT) ); +} +# 1211 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\propidl.h" +typedef struct tagSERIALIZEDPROPERTYVALUE +{ + DWORD dwType; + BYTE rgb[1]; +} SERIALIZEDPROPERTYVALUE; + + +extern "C" + +SERIALIZEDPROPERTYVALUE* __stdcall +StgConvertVariantToProperty( + const PROPVARIANT* pvar, + USHORT CodePage, + SERIALIZEDPROPERTYVALUE* pprop, + ULONG* pcb, + PROPID pid, + BOOLEAN fReserved, + ULONG* pcIndirect); + + +class PMemoryAllocator; + +extern "C" + +BOOLEAN __stdcall +StgConvertPropertyToVariant( + const SERIALIZEDPROPERTYVALUE* pprop, + USHORT CodePage, + PROPVARIANT* pvar, + PMemoryAllocator* pma); + + + + + + +#pragma warning(pop) + + + + + + +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; + + + +unsigned long __stdcall BSTR_UserSize( unsigned long *, unsigned long , BSTR * ); +unsigned char * __stdcall BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * ); +unsigned char * __stdcall BSTR_UserUnmarshal( unsigned long *, unsigned char *, BSTR * ); +void __stdcall BSTR_UserFree( unsigned long *, BSTR * ); + +unsigned long __stdcall LPSAFEARRAY_UserSize( unsigned long *, unsigned long , LPSAFEARRAY * ); +unsigned char * __stdcall LPSAFEARRAY_UserMarshal( unsigned long *, unsigned char *, LPSAFEARRAY * ); +unsigned char * __stdcall LPSAFEARRAY_UserUnmarshal( unsigned long *, unsigned char *, LPSAFEARRAY * ); +void __stdcall LPSAFEARRAY_UserFree( unsigned long *, LPSAFEARRAY * ); + +unsigned long __stdcall BSTR_UserSize64( unsigned long *, unsigned long , BSTR * ); +unsigned char * __stdcall BSTR_UserMarshal64( unsigned long *, unsigned char *, BSTR * ); +unsigned char * __stdcall BSTR_UserUnmarshal64( unsigned long *, unsigned char *, BSTR * ); +void __stdcall BSTR_UserFree64( unsigned long *, BSTR * ); + +unsigned long __stdcall LPSAFEARRAY_UserSize64( unsigned long *, unsigned long , LPSAFEARRAY * ); +unsigned char * __stdcall LPSAFEARRAY_UserMarshal64( unsigned long *, unsigned char *, LPSAFEARRAY * ); +unsigned char * __stdcall LPSAFEARRAY_UserUnmarshal64( unsigned long *, unsigned char *, LPSAFEARRAY * ); +void __stdcall LPSAFEARRAY_UserFree64( unsigned long *, LPSAFEARRAY * ); + + HRESULT __stdcall IEnumSTATPROPSTG_Next_Proxy( + IEnumSTATPROPSTG * This, + ULONG celt, + + STATPROPSTG *rgelt, + + ULONG *pceltFetched); + + + HRESULT __stdcall IEnumSTATPROPSTG_Next_Stub( + IEnumSTATPROPSTG * This, + ULONG celt, + STATPROPSTG *rgelt, + ULONG *pceltFetched); + + HRESULT __stdcall IEnumSTATPROPSETSTG_Next_Proxy( + IEnumSTATPROPSETSTG * This, + ULONG celt, + + STATPROPSETSTG *rgelt, + + ULONG *pceltFetched); + + + HRESULT __stdcall IEnumSTATPROPSETSTG_Next_Stub( + IEnumSTATPROPSETSTG * This, + ULONG celt, + STATPROPSETSTG *rgelt, + ULONG *pceltFetched); + + + + + + +} +# 260 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objbase.h" 2 + + + + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall CreateStdProgressIndicator( HWND hwndParent, + LPCOLESTR pszTitle, + IBindStatusCallback * pIbscCaller, + IBindStatusCallback ** ppIbsc); + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 278 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\objbase.h" 2 +# 37 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/ole2.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" 1 + + + +#pragma warning(push) +#pragma warning(disable: 4001) +#pragma warning(disable: 4820) +# 29 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" +#pragma warning(disable: 4103) + +#pragma pack(push,8) +# 29 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" 2 +# 42 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" const IID IID_StdOle; +# 74 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) BSTR __stdcall SysAllocString( const OLECHAR * psz); +extern "C" __declspec(dllimport) INT __stdcall SysReAllocString( BSTR* pbstr, const OLECHAR* psz); +extern "C" __declspec(dllimport) BSTR __stdcall SysAllocStringLen( const OLECHAR * strIn, UINT ui); + extern "C" __declspec(dllimport) INT __stdcall SysReAllocStringLen( BSTR* pbstr, const OLECHAR* psz, unsigned int len); +extern "C" __declspec(dllimport) void __stdcall SysFreeString( BSTR bstrString); +extern "C" __declspec(dllimport) UINT __stdcall SysStringLen( BSTR pbstr); + + +extern "C" __declspec(dllimport) UINT __stdcall SysStringByteLen( BSTR bstr); +extern "C" __declspec(dllimport) BSTR __stdcall SysAllocStringByteLen( LPCSTR psz, UINT len); +# 97 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) INT __stdcall DosDateTimeToVariantTime( USHORT wDosDate, USHORT wDosTime, DOUBLE * pvtime); + +extern "C" __declspec(dllimport) INT __stdcall VariantTimeToDosDateTime( DOUBLE vtime, USHORT * pwDosDate, USHORT * pwDosTime); +# 109 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) INT __stdcall SystemTimeToVariantTime( LPSYSTEMTIME lpSystemTime, DOUBLE *pvtime); +extern "C" __declspec(dllimport) INT __stdcall VariantTimeToSystemTime( DOUBLE vtime, LPSYSTEMTIME lpSystemTime); +# 125 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayAllocDescriptor( UINT cDims, SAFEARRAY ** ppsaOut); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayAllocDescriptorEx( VARTYPE vt, UINT cDims, SAFEARRAY ** ppsaOut); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayAllocData( SAFEARRAY * psa); +extern "C" __declspec(dllimport) SAFEARRAY * __stdcall SafeArrayCreate( VARTYPE vt, UINT cDims, SAFEARRAYBOUND * rgsabound); +extern "C" __declspec(dllimport) SAFEARRAY * __stdcall SafeArrayCreateEx( VARTYPE vt, UINT cDims, SAFEARRAYBOUND * rgsabound, PVOID pvExtra); + +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayCopyData( SAFEARRAY *psaSource, SAFEARRAY *psaTarget); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayDestroyDescriptor( SAFEARRAY * psa); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayDestroyData( SAFEARRAY * psa); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayDestroy( SAFEARRAY * psa); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayRedim( SAFEARRAY * psa, SAFEARRAYBOUND * psaboundNew); +extern "C" __declspec(dllimport) UINT __stdcall SafeArrayGetDim( SAFEARRAY * psa); +extern "C" __declspec(dllimport) UINT __stdcall SafeArrayGetElemsize( SAFEARRAY * psa); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayGetUBound( SAFEARRAY * psa, UINT nDim, LONG * plUbound); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayGetLBound( SAFEARRAY * psa, UINT nDim, LONG * plLbound); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayLock( SAFEARRAY * psa); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayUnlock( SAFEARRAY * psa); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayAccessData( SAFEARRAY * psa, void ** ppvData); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayUnaccessData( SAFEARRAY * psa); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayGetElement( SAFEARRAY * psa, LONG * rgIndices, void * pv); + +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayPutElement( SAFEARRAY * psa, LONG * rgIndices, void * pv); + +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayCopy( SAFEARRAY * psa, SAFEARRAY ** ppsaOut); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayPtrOfIndex( SAFEARRAY * psa, LONG * rgIndices, void ** ppvData); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArraySetRecordInfo( SAFEARRAY * psa, IRecordInfo * prinfo); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayGetRecordInfo( SAFEARRAY * psa, IRecordInfo ** prinfo); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArraySetIID( SAFEARRAY * psa, const GUID & guid); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayGetIID( SAFEARRAY * psa, GUID * pguid); +extern "C" __declspec(dllimport) HRESULT __stdcall SafeArrayGetVartype( SAFEARRAY * psa, VARTYPE * pvt); +extern "C" __declspec(dllimport) SAFEARRAY * __stdcall SafeArrayCreateVector( VARTYPE vt, LONG lLbound, ULONG cElements); +extern "C" __declspec(dllimport) SAFEARRAY * __stdcall SafeArrayCreateVectorEx( VARTYPE vt, LONG lLbound, ULONG cElements, PVOID pvExtra); +# 169 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) void __stdcall VariantInit( VARIANTARG * pvarg); +extern "C" __declspec(dllimport) HRESULT __stdcall VariantClear( VARIANTARG * pvarg); + +extern "C" __declspec(dllimport) HRESULT __stdcall VariantCopy( VARIANTARG * pvargDest, const VARIANTARG * pvargSrc); + +extern "C" __declspec(dllimport) HRESULT __stdcall VariantCopyInd( VARIANT * pvarDest, const VARIANTARG * pvargSrc); + +extern "C" __declspec(dllimport) HRESULT __stdcall VariantChangeType( VARIANTARG * pvargDest, + const VARIANTARG * pvarSrc, USHORT wFlags, VARTYPE vt); + +extern "C" __declspec(dllimport) HRESULT __stdcall VariantChangeTypeEx( VARIANTARG * pvargDest, + const VARIANTARG * pvarSrc, LCID lcid, USHORT wFlags, VARTYPE vt); +# 208 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) HRESULT __stdcall VectorFromBstr ( BSTR bstr, SAFEARRAY ** ppsa); + +extern "C" __declspec(dllimport) HRESULT __stdcall BstrFromVector ( SAFEARRAY *psa, BSTR *pbstr); +# 286 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI1FromI2(SHORT sIn, BYTE * pbOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI1FromI4(LONG lIn, BYTE * pbOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI1FromI8(LONG64 i64In, BYTE * pbOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI1FromR4(FLOAT fltIn, BYTE * pbOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI1FromR8(DOUBLE dblIn, BYTE * pbOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI1FromCy(CY cyIn, BYTE * pbOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI1FromDate(DATE dateIn, BYTE * pbOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI1FromStr( LPCOLESTR strIn, LCID lcid, ULONG dwFlags, BYTE * pbOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI1FromDisp(IDispatch * pdispIn, LCID lcid, BYTE * pbOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI1FromBool(VARIANT_BOOL boolIn, BYTE * pbOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI1FromI1(CHAR cIn, BYTE *pbOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI1FromUI2(USHORT uiIn, BYTE *pbOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI1FromUI4(ULONG ulIn, BYTE *pbOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI1FromUI8(ULONG64 ui64In, BYTE * pbOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI1FromDec( const DECIMAL *pdecIn, BYTE *pbOut); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarI2FromUI1(BYTE bIn, SHORT * psOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI2FromI4(LONG lIn, SHORT * psOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI2FromI8(LONG64 i64In, SHORT * psOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI2FromR4(FLOAT fltIn, SHORT * psOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI2FromR8(DOUBLE dblIn, SHORT * psOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI2FromCy(CY cyIn, SHORT * psOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI2FromDate(DATE dateIn, SHORT * psOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI2FromStr( LPCOLESTR strIn, LCID lcid, ULONG dwFlags, SHORT * psOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI2FromDisp(IDispatch * pdispIn, LCID lcid, SHORT * psOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI2FromBool(VARIANT_BOOL boolIn, SHORT * psOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI2FromI1(CHAR cIn, SHORT *psOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI2FromUI2(USHORT uiIn, SHORT *psOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI2FromUI4(ULONG ulIn, SHORT *psOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI2FromUI8(ULONG64 ui64In, SHORT * psOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI2FromDec( const DECIMAL *pdecIn, SHORT *psOut); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromUI1(BYTE bIn, LONG * plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromI2(SHORT sIn, LONG * plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromI8(LONG64 i64In, LONG * plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromR4(FLOAT fltIn, LONG * plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromR8(DOUBLE dblIn, LONG * plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromCy(CY cyIn, LONG * plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromDate(DATE dateIn, LONG * plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromStr( LPCOLESTR strIn, LCID lcid, ULONG dwFlags, LONG * plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromDisp(IDispatch * pdispIn, LCID lcid, LONG * plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromBool(VARIANT_BOOL boolIn, LONG * plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromI1(CHAR cIn, LONG *plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromUI2(USHORT uiIn, LONG *plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromUI4(ULONG ulIn, LONG *plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromUI8(ULONG64 ui64In, LONG * plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromDec( const DECIMAL *pdecIn, LONG *plOut); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall VarI8FromUI1(BYTE bIn, LONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI8FromI2(SHORT sIn, LONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI8FromR4(FLOAT fltIn, LONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI8FromR8(DOUBLE dblIn, LONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI8FromCy( CY cyIn, LONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI8FromDate(DATE dateIn, LONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI8FromStr( LPCOLESTR strIn, LCID lcid, ULONG dwFlags, LONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI8FromDisp(IDispatch * pdispIn, LCID lcid, LONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI8FromBool(VARIANT_BOOL boolIn, LONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI8FromI1(CHAR cIn, LONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI8FromUI2(USHORT uiIn, LONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI8FromUI4(ULONG ulIn, LONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI8FromUI8(ULONG64 ui64In, LONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI8FromDec( const DECIMAL *pdecIn, LONG64 * pi64Out); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall VarR4FromUI1(BYTE bIn, FLOAT * pfltOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR4FromI2(SHORT sIn, FLOAT * pfltOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR4FromI4(LONG lIn, FLOAT * pfltOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR4FromI8(LONG64 i64In, FLOAT * pfltOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR4FromR8(DOUBLE dblIn, FLOAT * pfltOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR4FromCy(CY cyIn, FLOAT * pfltOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR4FromDate(DATE dateIn, FLOAT * pfltOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR4FromStr( LPCOLESTR strIn, LCID lcid, ULONG dwFlags, FLOAT *pfltOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR4FromDisp(IDispatch * pdispIn, LCID lcid, FLOAT * pfltOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR4FromBool(VARIANT_BOOL boolIn, FLOAT * pfltOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR4FromI1(CHAR cIn, FLOAT *pfltOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR4FromUI2(USHORT uiIn, FLOAT *pfltOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR4FromUI4(ULONG ulIn, FLOAT *pfltOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR4FromUI8(ULONG64 ui64In, FLOAT * pfltOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR4FromDec( const DECIMAL *pdecIn, FLOAT *pfltOut); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarR8FromUI1(BYTE bIn, DOUBLE * pdblOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR8FromI2(SHORT sIn, DOUBLE * pdblOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR8FromI4(LONG lIn, DOUBLE * pdblOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR8FromI8(LONG64 i64In, DOUBLE * pdblOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR8FromR4(FLOAT fltIn, DOUBLE * pdblOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR8FromCy(CY cyIn, DOUBLE * pdblOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR8FromDate(DATE dateIn, DOUBLE * pdblOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR8FromStr( LPCOLESTR strIn, LCID lcid, ULONG dwFlags, DOUBLE *pdblOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR8FromDisp(IDispatch * pdispIn, LCID lcid, DOUBLE * pdblOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR8FromBool(VARIANT_BOOL boolIn, DOUBLE * pdblOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR8FromI1(CHAR cIn, DOUBLE *pdblOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR8FromUI2(USHORT uiIn, DOUBLE *pdblOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR8FromUI4(ULONG ulIn, DOUBLE *pdblOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR8FromUI8(ULONG64 ui64In, DOUBLE * pdblOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarR8FromDec( const DECIMAL *pdecIn, DOUBLE *pdblOut); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromUI1(BYTE bIn, DATE * pdateOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromI2(SHORT sIn, DATE * pdateOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromI4(LONG lIn, DATE * pdateOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromI8(LONG64 i64In, DATE * pdateOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromR4(FLOAT fltIn, DATE * pdateOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromR8(DOUBLE dblIn, DATE * pdateOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromCy(CY cyIn, DATE * pdateOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromStr( LPCOLESTR strIn, LCID lcid, ULONG dwFlags, DATE *pdateOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromDisp(IDispatch * pdispIn, LCID lcid, DATE * pdateOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromBool(VARIANT_BOOL boolIn, DATE * pdateOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromI1(CHAR cIn, DATE *pdateOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromUI2(USHORT uiIn, DATE *pdateOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromUI4(ULONG ulIn, DATE *pdateOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromUI8(ULONG64 ui64In, DATE * pdateOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromDec( const DECIMAL *pdecIn, DATE *pdateOut); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarCyFromUI1(BYTE bIn, CY * pcyOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarCyFromI2(SHORT sIn, CY * pcyOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarCyFromI4(LONG lIn, CY * pcyOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarCyFromI8(LONG64 i64In, CY * pcyOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarCyFromR4(FLOAT fltIn, CY * pcyOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarCyFromR8(DOUBLE dblIn, CY * pcyOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarCyFromDate(DATE dateIn, CY * pcyOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarCyFromStr( LPCOLESTR strIn, LCID lcid, ULONG dwFlags, CY * pcyOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarCyFromDisp( IDispatch * pdispIn, LCID lcid, CY * pcyOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarCyFromBool(VARIANT_BOOL boolIn, CY * pcyOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarCyFromI1(CHAR cIn, CY *pcyOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarCyFromUI2(USHORT uiIn, CY *pcyOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarCyFromUI4(ULONG ulIn, CY *pcyOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarCyFromUI8(ULONG64 ui64In, CY * pcyOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarCyFromDec( const DECIMAL *pdecIn, CY *pcyOut); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarBstrFromUI1(BYTE bVal, LCID lcid, ULONG dwFlags, BSTR * pbstrOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBstrFromI2(SHORT iVal, LCID lcid, ULONG dwFlags, BSTR * pbstrOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBstrFromI4(LONG lIn, LCID lcid, ULONG dwFlags, BSTR * pbstrOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBstrFromI8(LONG64 i64In, LCID lcid, ULONG dwFlags, BSTR * pbstrOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBstrFromR4(FLOAT fltIn, LCID lcid, ULONG dwFlags, BSTR * pbstrOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBstrFromR8(DOUBLE dblIn, LCID lcid, ULONG dwFlags, BSTR * pbstrOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBstrFromCy(CY cyIn, LCID lcid, ULONG dwFlags, BSTR * pbstrOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBstrFromDate( DATE dateIn, LCID lcid, ULONG dwFlags, BSTR * pbstrOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBstrFromDisp(IDispatch * pdispIn, LCID lcid, ULONG dwFlags, BSTR * pbstrOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBstrFromBool(VARIANT_BOOL boolIn, LCID lcid, ULONG dwFlags, BSTR * pbstrOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBstrFromI1(CHAR cIn, LCID lcid, ULONG dwFlags, BSTR *pbstrOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBstrFromUI2(USHORT uiIn, LCID lcid, ULONG dwFlags, BSTR *pbstrOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBstrFromUI4(ULONG ulIn, LCID lcid, ULONG dwFlags, BSTR *pbstrOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBstrFromUI8(ULONG64 ui64In, LCID lcid, ULONG dwFlags, BSTR * pbstrOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBstrFromDec( const DECIMAL *pdecIn, LCID lcid, ULONG dwFlags, BSTR *pbstrOut); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarBoolFromUI1(BYTE bIn, VARIANT_BOOL * pboolOut); + extern "C" __declspec(dllimport) HRESULT __stdcall VarBoolFromI2( SHORT sIn, VARIANT_BOOL * pboolOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBoolFromI4(LONG lIn, VARIANT_BOOL * pboolOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBoolFromI8(LONG64 i64In, VARIANT_BOOL * pboolOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBoolFromR4(FLOAT fltIn, VARIANT_BOOL * pboolOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBoolFromR8(DOUBLE dblIn, VARIANT_BOOL * pboolOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBoolFromDate(DATE dateIn, VARIANT_BOOL * pboolOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBoolFromCy(CY cyIn, VARIANT_BOOL * pboolOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBoolFromStr( LPCOLESTR strIn, LCID lcid, ULONG dwFlags, VARIANT_BOOL * pboolOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBoolFromDisp(IDispatch * pdispIn, LCID lcid, VARIANT_BOOL * pboolOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBoolFromI1(CHAR cIn, VARIANT_BOOL *pboolOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBoolFromUI2(USHORT uiIn, VARIANT_BOOL *pboolOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBoolFromUI4(ULONG ulIn, VARIANT_BOOL *pboolOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBoolFromUI8(ULONG64 i64In, VARIANT_BOOL * pboolOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarBoolFromDec( const DECIMAL *pdecIn, VARIANT_BOOL *pboolOut); + +extern "C" __declspec(dllimport) HRESULT __stdcall +VarI1FromUI1( + BYTE bIn, + CHAR *pcOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall +VarI1FromI2( + SHORT uiIn, + CHAR *pcOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall +VarI1FromI4( + LONG lIn, + CHAR *pcOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall +VarI1FromI8( + LONG64 i64In, + CHAR *pcOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall +VarI1FromR4( + FLOAT fltIn, + CHAR *pcOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall +VarI1FromR8( + DOUBLE dblIn, + CHAR *pcOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall +VarI1FromDate( + DATE dateIn, + CHAR *pcOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall +VarI1FromCy( + CY cyIn, + CHAR *pcOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall +VarI1FromStr( + LPCOLESTR strIn, + LCID lcid, + ULONG dwFlags, + CHAR *pcOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall +VarI1FromDisp( + IDispatch *pdispIn, + LCID lcid, + CHAR *pcOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall +VarI1FromBool( + VARIANT_BOOL boolIn, + CHAR *pcOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall +VarI1FromUI2( + USHORT uiIn, + CHAR *pcOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall +VarI1FromUI4( + ULONG ulIn, + CHAR *pcOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall +VarI1FromUI8( + ULONG64 i64In, + CHAR *pcOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall +VarI1FromDec( + const DECIMAL *pdecIn, + CHAR *pcOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI2FromUI1(BYTE bIn, USHORT *puiOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI2FromI2(SHORT uiIn, USHORT *puiOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI2FromI4(LONG lIn, USHORT *puiOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI2FromI8(LONG64 i64In, USHORT *puiOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI2FromR4(FLOAT fltIn, USHORT *puiOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI2FromR8(DOUBLE dblIn, USHORT *puiOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI2FromDate(DATE dateIn, USHORT *puiOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI2FromCy(CY cyIn, USHORT *puiOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI2FromStr( LPCOLESTR strIn, LCID lcid, ULONG dwFlags, USHORT *puiOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI2FromDisp( IDispatch *pdispIn, LCID lcid, USHORT *puiOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI2FromBool(VARIANT_BOOL boolIn, USHORT *puiOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI2FromI1(CHAR cIn, USHORT *puiOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI2FromUI4(ULONG ulIn, USHORT *puiOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI2FromUI8(ULONG64 i64In, USHORT *puiOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI2FromDec( const DECIMAL *pdecIn, USHORT *puiOut); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI4FromUI1(BYTE bIn, ULONG *pulOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI4FromI2( SHORT uiIn, ULONG *pulOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI4FromI4(LONG lIn, ULONG *pulOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI4FromI8(LONG64 i64In, ULONG *plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI4FromR4(FLOAT fltIn, ULONG *pulOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI4FromR8(DOUBLE dblIn, ULONG *pulOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI4FromDate(DATE dateIn, ULONG *pulOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI4FromCy(CY cyIn, ULONG *pulOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI4FromStr( LPCOLESTR strIn, LCID lcid, ULONG dwFlags, ULONG *pulOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI4FromDisp( IDispatch *pdispIn, LCID lcid, ULONG *pulOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI4FromBool(VARIANT_BOOL boolIn, ULONG *pulOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI4FromI1(CHAR cIn, ULONG *pulOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI4FromUI2(USHORT uiIn, ULONG *pulOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI4FromUI8(ULONG64 ui64In, ULONG *plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI4FromDec( const DECIMAL *pdecIn, ULONG *pulOut); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI8FromUI1(BYTE bIn, ULONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI8FromI2(SHORT sIn, ULONG64 * pi64Out); + + + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI8FromI4(LONG lIn, ULONG64 * pi64Out); + + + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI8FromI8(LONG64 ui64In, ULONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI8FromR4(FLOAT fltIn, ULONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI8FromR8(DOUBLE dblIn, ULONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI8FromCy(CY cyIn, ULONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI8FromDate(DATE dateIn, ULONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI8FromStr( LPCOLESTR strIn, LCID lcid, ULONG dwFlags, ULONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI8FromDisp( IDispatch * pdispIn, LCID lcid, ULONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI8FromBool(VARIANT_BOOL boolIn, ULONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI8FromI1(CHAR cIn, ULONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI8FromUI2(USHORT uiIn, ULONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI8FromUI4(ULONG ulIn, ULONG64 * pi64Out); +extern "C" __declspec(dllimport) HRESULT __stdcall VarUI8FromDec( const DECIMAL *pdecIn, ULONG64 * pi64Out); + + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall VarDecFromUI1( BYTE bIn, DECIMAL *pdecOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDecFromI2( SHORT uiIn, DECIMAL *pdecOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDecFromI4( LONG lIn, DECIMAL *pdecOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDecFromI8(LONG64 i64In, DECIMAL *pdecOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDecFromR4( FLOAT fltIn, DECIMAL *pdecOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDecFromR8( DOUBLE dblIn, DECIMAL *pdecOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDecFromDate( DATE dateIn, DECIMAL *pdecOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDecFromCy( CY cyIn, DECIMAL *pdecOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDecFromStr( LPCOLESTR strIn, LCID lcid, ULONG dwFlags, DECIMAL *pdecOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDecFromDisp( IDispatch *pdispIn, LCID lcid, DECIMAL *pdecOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDecFromBool( VARIANT_BOOL boolIn, DECIMAL *pdecOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDecFromI1( CHAR cIn, DECIMAL *pdecOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDecFromUI2( USHORT uiIn, DECIMAL *pdecOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDecFromUI4( ULONG ulIn, DECIMAL *pdecOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDecFromUI8(ULONG64 ui64In, DECIMAL *pdecOut); +# 639 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromI8(LONG64 i64In, LONG *plOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarI4FromUI8(ULONG64 ui64In, LONG *plOut); +# 730 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +typedef struct { + INT cDig; + ULONG dwInFlags; + ULONG dwOutFlags; + INT cchUsed; + INT nBaseShift; + INT nPwr10; +} NUMPARSE; +# 781 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) HRESULT __stdcall VarParseNumFromStr( LPCOLESTR strIn, LCID lcid, ULONG dwFlags, + NUMPARSE * pnumprs, BYTE * rgbDig); + + +extern "C" __declspec(dllimport) HRESULT __stdcall VarNumFromParseNum( NUMPARSE * pnumprs, BYTE * rgbDig, + ULONG dwVtBits, VARIANT * pvar); +# 798 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" HRESULT __stdcall VarAdd( LPVARIANT pvarLeft, LPVARIANT pvarRight, LPVARIANT pvarResult); +extern "C" HRESULT __stdcall VarAnd( LPVARIANT pvarLeft, LPVARIANT pvarRight, LPVARIANT pvarResult); +extern "C" HRESULT __stdcall VarCat( LPVARIANT pvarLeft, LPVARIANT pvarRight, LPVARIANT pvarResult); +extern "C" HRESULT __stdcall VarDiv( LPVARIANT pvarLeft, LPVARIANT pvarRight, LPVARIANT pvarResult); +extern "C" HRESULT __stdcall VarEqv( LPVARIANT pvarLeft, LPVARIANT pvarRight, LPVARIANT pvarResult); +extern "C" HRESULT __stdcall VarIdiv( LPVARIANT pvarLeft, LPVARIANT pvarRight, LPVARIANT pvarResult); +extern "C" HRESULT __stdcall VarImp( LPVARIANT pvarLeft, LPVARIANT pvarRight, LPVARIANT pvarResult); +extern "C" HRESULT __stdcall VarMod( LPVARIANT pvarLeft, LPVARIANT pvarRight, LPVARIANT pvarResult); +extern "C" HRESULT __stdcall VarMul( LPVARIANT pvarLeft, LPVARIANT pvarRight, LPVARIANT pvarResult); +extern "C" HRESULT __stdcall VarOr( LPVARIANT pvarLeft, LPVARIANT pvarRight, LPVARIANT pvarResult); +extern "C" HRESULT __stdcall VarPow( LPVARIANT pvarLeft, LPVARIANT pvarRight, LPVARIANT pvarResult); +extern "C" HRESULT __stdcall VarSub( LPVARIANT pvarLeft, LPVARIANT pvarRight, LPVARIANT pvarResult); +extern "C" HRESULT __stdcall VarXor( LPVARIANT pvarLeft, LPVARIANT pvarRight, LPVARIANT pvarResult); + +extern "C" HRESULT __stdcall VarAbs( LPVARIANT pvarIn, LPVARIANT pvarResult); +extern "C" HRESULT __stdcall VarFix( LPVARIANT pvarIn, LPVARIANT pvarResult); +extern "C" HRESULT __stdcall VarInt( LPVARIANT pvarIn, LPVARIANT pvarResult); +extern "C" HRESULT __stdcall VarNeg( LPVARIANT pvarIn, LPVARIANT pvarResult); +extern "C" HRESULT __stdcall VarNot( LPVARIANT pvarIn, LPVARIANT pvarResult); + +extern "C" HRESULT __stdcall VarRound( LPVARIANT pvarIn, int cDecimals, LPVARIANT pvarResult); + + +extern "C" HRESULT __stdcall VarCmp( LPVARIANT pvarLeft, LPVARIANT pvarRight, LCID lcid, ULONG dwFlags); + + + + + +extern "C++" { + + + + + +__inline +HRESULT + +__stdcall + +VarCmp(LPVARIANT pvarLeft, LPVARIANT pvarRight, LCID lcid) { + return VarCmp(pvarLeft, pvarRight, lcid, 0); +} + + + + +} +# 855 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" HRESULT __stdcall VarDecAdd( LPDECIMAL pdecLeft, LPDECIMAL pdecRight, LPDECIMAL pdecResult); +extern "C" HRESULT __stdcall VarDecDiv( LPDECIMAL pdecLeft, LPDECIMAL pdecRight, LPDECIMAL pdecResult); +extern "C" HRESULT __stdcall VarDecMul( LPDECIMAL pdecLeft, LPDECIMAL pdecRight, LPDECIMAL pdecResult); +extern "C" HRESULT __stdcall VarDecSub( LPDECIMAL pdecLeft, LPDECIMAL pdecRight, LPDECIMAL pdecResult); + +extern "C" HRESULT __stdcall VarDecAbs( LPDECIMAL pdecIn, LPDECIMAL pdecResult); +extern "C" HRESULT __stdcall VarDecFix( LPDECIMAL pdecIn, LPDECIMAL pdecResult); +extern "C" HRESULT __stdcall VarDecInt( LPDECIMAL pdecIn, LPDECIMAL pdecResult); +extern "C" HRESULT __stdcall VarDecNeg( LPDECIMAL pdecIn, LPDECIMAL pdecResult); + +extern "C" HRESULT __stdcall VarDecRound( LPDECIMAL pdecIn, int cDecimals, LPDECIMAL pdecResult); + +extern "C" HRESULT __stdcall VarDecCmp( LPDECIMAL pdecLeft, LPDECIMAL pdecRight); +extern "C" HRESULT __stdcall VarDecCmpR8( LPDECIMAL pdecLeft, double dblRight); + + + + +extern "C" HRESULT __stdcall VarCyAdd( CY cyLeft, CY cyRight, LPCY pcyResult); +extern "C" HRESULT __stdcall VarCyMul( CY cyLeft, CY cyRight, LPCY pcyResult); +extern "C" HRESULT __stdcall VarCyMulI4( CY cyLeft, LONG lRight, LPCY pcyResult); +extern "C" HRESULT __stdcall VarCyMulI8( CY cyLeft, LONG64 lRight, LPCY pcyResult); +extern "C" HRESULT __stdcall VarCySub( CY cyLeft, CY cyRight, LPCY pcyResult); + +extern "C" HRESULT __stdcall VarCyAbs( CY cyIn, LPCY pcyResult); +extern "C" HRESULT __stdcall VarCyFix( CY cyIn, LPCY pcyResult); +extern "C" HRESULT __stdcall VarCyInt( CY cyIn, LPCY pcyResult); +extern "C" HRESULT __stdcall VarCyNeg( CY cyIn, LPCY pcyResult); + +extern "C" HRESULT __stdcall VarCyRound( CY cyIn, int cDecimals, LPCY pcyResult); + +extern "C" HRESULT __stdcall VarCyCmp( CY cyLeft, CY cyRight); +extern "C" HRESULT __stdcall VarCyCmpR8( CY cyLeft, double dblRight); + + + + +extern "C" HRESULT __stdcall VarBstrCat( BSTR bstrLeft, BSTR bstrRight, LPBSTR pbstrResult); +extern "C" HRESULT __stdcall VarBstrCmp( BSTR bstrLeft, BSTR bstrRight, LCID lcid, ULONG dwFlags); +extern "C" HRESULT __stdcall VarR8Pow( double dblLeft, double dblRight, double *pdblResult); +extern "C" HRESULT __stdcall VarR4CmpR8( float fltLeft, double dblRight); +extern "C" HRESULT __stdcall VarR8Round( double dblIn, int cDecimals, double *pdblResult); +# 925 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +typedef struct { + SYSTEMTIME st; + USHORT wDayOfYear; +} UDATE; +# 939 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromUdate( UDATE *pudateIn, ULONG dwFlags, DATE *pdateOut); +extern "C" __declspec(dllimport) HRESULT __stdcall VarDateFromUdateEx( UDATE *pudateIn, LCID lcid, ULONG dwFlags, DATE *pdateOut); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarUdateFromDate( DATE dateIn, ULONG dwFlags, UDATE *pudateOut); +# 954 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) HRESULT __stdcall GetAltMonthNames(LCID lcid, LPOLESTR * * prgp); +# 966 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) HRESULT __stdcall VarFormat( + LPVARIANT pvarIn, + LPOLESTR pstrFormat, + int iFirstDay, + int iFirstWeek, + ULONG dwFlags, + BSTR *pbstrOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarFormatDateTime( + LPVARIANT pvarIn, + int iNamedFormat, + ULONG dwFlags, + BSTR *pbstrOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarFormatNumber( + LPVARIANT pvarIn, + int iNumDig, + int iIncLead, + int iUseParens, + int iGroup, + ULONG dwFlags, + BSTR *pbstrOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarFormatPercent( + LPVARIANT pvarIn, + int iNumDig, + int iIncLead, + int iUseParens, + int iGroup, + ULONG dwFlags, + BSTR *pbstrOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarFormatCurrency( + LPVARIANT pvarIn, + int iNumDig, + int iIncLead, + int iUseParens, + int iGroup, + ULONG dwFlags, + BSTR *pbstrOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarWeekdayName( + int iWeekday, + int fAbbrev, + int iFirstDay, + ULONG dwFlags, + BSTR *pbstrOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarMonthName( + int iMonth, + int fAbbrev, + ULONG dwFlags, + BSTR *pbstrOut + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarFormatFromTokens( + LPVARIANT pvarIn, + LPOLESTR pstrFormat, + LPBYTE pbTokCur, + ULONG dwFlags, + BSTR *pbstrOut, + LCID lcid + ); + +extern "C" __declspec(dllimport) HRESULT __stdcall VarTokenizeFormatString( + LPOLESTR pstrFormat, + LPBYTE rgbTok, + int cbTok, + int iFirstDay, + int iFirstWeek, + LCID lcid, + int *pcbActual + ); +# 1056 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +typedef ITypeLib *LPTYPELIB; + + + + + + + +typedef LONG DISPID; +typedef DISPID MEMBERID; +# 1088 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +typedef ITypeInfo *LPTYPEINFO; + + + + + + +typedef ITypeComp *LPTYPECOMP; + + + + + + +typedef ICreateTypeLib * LPCREATETYPELIB; + +typedef ICreateTypeInfo * LPCREATETYPEINFO; +# 1114 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) ULONG __stdcall LHashValOfNameSysA(SYSKIND syskind, LCID lcid, + LPCSTR szName); + + + +extern "C" __declspec(dllimport) ULONG __stdcall +LHashValOfNameSys(SYSKIND syskind, LCID lcid, const OLECHAR * szName); +# 1133 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) HRESULT __stdcall LoadTypeLib( LPCOLESTR szFile, ITypeLib ** pptlib); + + + +typedef enum tagREGKIND +{ + REGKIND_DEFAULT, + REGKIND_REGISTER, + REGKIND_NONE +} REGKIND; +# 1152 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) HRESULT __stdcall LoadTypeLibEx(LPCOLESTR szFile, REGKIND regkind, + ITypeLib ** pptlib); + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall LoadRegTypeLib(const GUID & rguid, WORD wVerMajor, WORD wVerMinor, + LCID lcid, ITypeLib ** pptlib); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall QueryPathOfRegTypeLib(const GUID & guid, USHORT wMaj, USHORT wMin, + LCID lcid, LPBSTR lpbstrPathName); + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall RegisterTypeLib(ITypeLib * ptlib, LPCOLESTR szFullPath, + LPCOLESTR szHelpDir); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall UnRegisterTypeLib(const GUID & libID, WORD wVerMajor, + WORD wVerMinor, LCID lcid, SYSKIND syskind); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall RegisterTypeLibForUser(ITypeLib *ptlib, OLECHAR *szFullPath, + OLECHAR *szHelpDir); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall UnRegisterTypeLibForUser( + const GUID & libID, + WORD wMajorVerNum, + WORD wMinorVerNum, + LCID lcid, + SYSKIND syskind); + + +extern "C" __declspec(dllimport) HRESULT __stdcall CreateTypeLib(SYSKIND syskind, LPCOLESTR szFile, + ICreateTypeLib ** ppctlib); + + +extern "C" __declspec(dllimport) HRESULT __stdcall CreateTypeLib2(SYSKIND syskind, LPCOLESTR szFile, + ICreateTypeLib2 **ppctlib); + + + + + + +typedef IDispatch *LPDISPATCH; + +typedef struct tagPARAMDATA { + OLECHAR * szName; + VARTYPE vt; +} PARAMDATA, * LPPARAMDATA; + +typedef struct tagMETHODDATA { + OLECHAR * szName; + PARAMDATA * ppdata; + DISPID dispid; + UINT iMeth; + CALLCONV cc; + UINT cArgs; + WORD wFlags; + VARTYPE vtReturn; +} METHODDATA, * LPMETHODDATA; + +typedef struct tagINTERFACEDATA { + METHODDATA * pmethdata; + UINT cMembers; +} INTERFACEDATA, * LPINTERFACEDATA; + + + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall DispGetParam( + DISPPARAMS * pdispparams, + UINT position, + VARTYPE vtTarg, + VARIANT * pvarResult, + UINT * puArgErr + ); + + + + extern "C" __declspec(dllimport) HRESULT __stdcall DispGetIDsOfNames(ITypeInfo * ptinfo, OLECHAR ** rgszNames, + UINT cNames, DISPID * rgdispid); +# 1258 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) HRESULT __stdcall DispInvoke(void * _this, ITypeInfo * ptinfo, DISPID dispidMember, + WORD wFlags, DISPPARAMS * pparams, VARIANT * pvarResult, + EXCEPINFO * pexcepinfo, UINT * puArgErr); +# 1271 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) HRESULT __stdcall CreateDispTypeInfo(INTERFACEDATA * pidata, LCID lcid, + ITypeInfo ** pptinfo); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall CreateStdDispatch(IUnknown * punkOuter, void * pvThis, + ITypeInfo * ptinfo, IUnknown ** ppunkStdDisp); + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall DispCallFunc(void * pvInstance, ULONG_PTR oVft, CALLCONV cc, + VARTYPE vtReturn, UINT cActuals, VARTYPE * prgvt, + VARIANTARG ** prgpvarg, VARIANT * pvargResult); +# 1298 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +extern "C" __declspec(dllimport) HRESULT __stdcall RegisterActiveObject(IUnknown * punk, const IID & rclsid, + DWORD dwFlags, DWORD * pdwRegister); + +extern "C" __declspec(dllimport) HRESULT __stdcall RevokeActiveObject(DWORD dwRegister, void * pvReserved); + +extern "C" __declspec(dllimport) HRESULT __stdcall GetActiveObject(const IID & rclsid, void * pvReserved, + IUnknown ** ppunk); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall SetErrorInfo( ULONG dwReserved, IErrorInfo * perrinfo); + +extern "C" __declspec(dllimport) HRESULT __stdcall GetErrorInfo( ULONG dwReserved, IErrorInfo ** pperrinfo); + +extern "C" __declspec(dllimport) HRESULT __stdcall CreateErrorInfo( ICreateErrorInfo ** pperrinfo); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall GetRecordInfoFromTypeInfo(ITypeInfo * pTypeInfo, + IRecordInfo ** ppRecInfo); + +extern "C" __declspec(dllimport) HRESULT __stdcall GetRecordInfoFromGuids(const GUID & rGuidTypeLib, + ULONG uVerMajor, ULONG uVerMinor, LCID lcid, + const GUID & rGuidTypeInfo, IRecordInfo ** ppRecInfo); + + + + + +extern "C" __declspec(dllimport) ULONG __stdcall OaBuildVersion(void); + +extern "C" __declspec(dllimport) void __stdcall ClearCustData(LPCUSTDATA pCustData); + + +extern "C" __declspec(dllimport) void __stdcall OaEnablePerUserTLibRegistration(void); +# 1423 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 1423 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleauto.h" 2 + + + + + + +#pragma warning(pop) +# 38 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/ole2.h" 2 +# 87 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/ole2.h" +extern "C" __declspec(dllimport) HRESULT __stdcall CreateDataAdviseHolder( LPDATAADVISEHOLDER * ppDAHolder); + + + + +extern "C" __declspec(dllimport) DWORD __stdcall OleBuildVersion( void ); + + extern "C" __declspec(dllimport) HRESULT __stdcall WriteFmtUserTypeStg ( LPSTORAGE pstg, CLIPFORMAT cf, LPOLESTR lpszUserType); +extern "C" __declspec(dllimport) HRESULT __stdcall ReadFmtUserTypeStg ( LPSTORAGE pstg, CLIPFORMAT * pcf, LPOLESTR * lplpszUserType); + + + + + extern "C" __declspec(dllimport) HRESULT __stdcall OleInitialize( LPVOID pvReserved); +extern "C" __declspec(dllimport) void __stdcall OleUninitialize(void); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall OleQueryLinkFromData( LPDATAOBJECT pSrcDataObject); +extern "C" __declspec(dllimport) HRESULT __stdcall OleQueryCreateFromData( LPDATAOBJECT pSrcDataObject); + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreate( const IID & rclsid, const IID & riid, DWORD renderopt, + LPFORMATETC pFormatEtc, LPOLECLIENTSITE pClientSite, + LPSTORAGE pStg, LPVOID * ppvObj); + + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreateEx( const IID & rclsid, const IID & riid, DWORD dwFlags, + DWORD renderopt, ULONG cFormats, DWORD* rgAdvf, + LPFORMATETC rgFormatEtc, IAdviseSink * lpAdviseSink, + DWORD * rgdwConnection, LPOLECLIENTSITE pClientSite, + LPSTORAGE pStg, LPVOID * ppvObj); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreateFromData( LPDATAOBJECT pSrcDataObj, const IID & riid, + DWORD renderopt, LPFORMATETC pFormatEtc, + LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, + LPVOID * ppvObj); + + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreateFromDataEx( LPDATAOBJECT pSrcDataObj, const IID & riid, + DWORD dwFlags, DWORD renderopt, ULONG cFormats, DWORD* rgAdvf, + LPFORMATETC rgFormatEtc, IAdviseSink * lpAdviseSink, + DWORD * rgdwConnection, LPOLECLIENTSITE pClientSite, + LPSTORAGE pStg, LPVOID * ppvObj); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreateLinkFromData( LPDATAOBJECT pSrcDataObj, const IID & riid, + DWORD renderopt, LPFORMATETC pFormatEtc, + LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, + LPVOID * ppvObj); + + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreateLinkFromDataEx( LPDATAOBJECT pSrcDataObj, const IID & riid, + DWORD dwFlags, DWORD renderopt, ULONG cFormats, DWORD* rgAdvf, + LPFORMATETC rgFormatEtc, IAdviseSink * lpAdviseSink, + DWORD * rgdwConnection, LPOLECLIENTSITE pClientSite, + LPSTORAGE pStg, LPVOID * ppvObj); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreateStaticFromData( LPDATAOBJECT pSrcDataObj, const IID & iid, + DWORD renderopt, LPFORMATETC pFormatEtc, + LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, + LPVOID * ppvObj); + + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreateLink( LPMONIKER pmkLinkSrc, const IID & riid, + DWORD renderopt, LPFORMATETC lpFormatEtc, + LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID * ppvObj); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreateLinkEx( LPMONIKER pmkLinkSrc, const IID & riid, + DWORD dwFlags, DWORD renderopt, ULONG cFormats, DWORD* rgAdvf, + LPFORMATETC rgFormatEtc, IAdviseSink * lpAdviseSink, + DWORD * rgdwConnection, LPOLECLIENTSITE pClientSite, + LPSTORAGE pStg, LPVOID * ppvObj); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreateLinkToFile( LPCOLESTR lpszFileName, const IID & riid, + DWORD renderopt, LPFORMATETC lpFormatEtc, + LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID * ppvObj); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreateLinkToFileEx( LPCOLESTR lpszFileName, const IID & riid, + DWORD dwFlags, DWORD renderopt, ULONG cFormats, DWORD* rgAdvf, + LPFORMATETC rgFormatEtc, IAdviseSink * lpAdviseSink, + DWORD * rgdwConnection, LPOLECLIENTSITE pClientSite, + LPSTORAGE pStg, LPVOID * ppvObj); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreateFromFile( const IID & rclsid, LPCOLESTR lpszFileName, const IID & riid, + DWORD renderopt, LPFORMATETC lpFormatEtc, + LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID * ppvObj); + + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreateFromFileEx( const IID & rclsid, LPCOLESTR lpszFileName, const IID & riid, + DWORD dwFlags, DWORD renderopt, ULONG cFormats, DWORD* rgAdvf, + LPFORMATETC rgFormatEtc, IAdviseSink * lpAdviseSink, + DWORD * rgdwConnection, LPOLECLIENTSITE pClientSite, + LPSTORAGE pStg, LPVOID * ppvObj); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleLoad( LPSTORAGE pStg, const IID & riid, LPOLECLIENTSITE pClientSite, + LPVOID * ppvObj); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleSave( LPPERSISTSTORAGE pPS, LPSTORAGE pStg, BOOL fSameAsLoad); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleLoadFromStream( LPSTREAM pStm, const IID & iidInterface, LPVOID * ppvObj); +extern "C" __declspec(dllimport) HRESULT __stdcall OleSaveToStream( LPPERSISTSTREAM pPStm, LPSTREAM pStm ); + + +extern "C" __declspec(dllimport) HRESULT __stdcall OleSetContainedObject( LPUNKNOWN pUnknown, BOOL fContained); +extern "C" __declspec(dllimport) HRESULT __stdcall OleNoteObjectVisible( LPUNKNOWN pUnknown, BOOL fVisible); + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall RegisterDragDrop( HWND hwnd, LPDROPTARGET pDropTarget); +extern "C" __declspec(dllimport) HRESULT __stdcall RevokeDragDrop( HWND hwnd); +extern "C" __declspec(dllimport) HRESULT __stdcall DoDragDrop( LPDATAOBJECT pDataObj, LPDROPSOURCE pDropSource, + DWORD dwOKEffects, LPDWORD pdwEffect); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall OleSetClipboard( LPDATAOBJECT pDataObj); +extern "C" __declspec(dllimport) HRESULT __stdcall OleGetClipboard( LPDATAOBJECT * ppDataObj); + + + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall OleFlushClipboard(void); +extern "C" __declspec(dllimport) HRESULT __stdcall OleIsCurrentClipboard( LPDATAOBJECT pDataObj); + + + +extern "C" __declspec(dllimport) HOLEMENU __stdcall OleCreateMenuDescriptor ( HMENU hmenuCombined, + LPOLEMENUGROUPWIDTHS lpMenuWidths); +extern "C" __declspec(dllimport) HRESULT __stdcall OleSetMenuDescriptor ( HOLEMENU holemenu, HWND hwndFrame, + HWND hwndActiveObject, + LPOLEINPLACEFRAME lpFrame, + LPOLEINPLACEACTIVEOBJECT lpActiveObj); +extern "C" __declspec(dllimport) HRESULT __stdcall OleDestroyMenuDescriptor ( HOLEMENU holemenu); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleTranslateAccelerator ( LPOLEINPLACEFRAME lpFrame, + LPOLEINPLACEFRAMEINFO lpFrameInfo, LPMSG lpmsg); + + + + +extern "C" __declspec(dllimport) HANDLE __stdcall OleDuplicateData ( HANDLE hSrc, CLIPFORMAT cfFormat, + UINT uiFlags); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall OleDraw ( LPUNKNOWN pUnknown, DWORD dwAspect, HDC hdcDraw, + LPCRECT lprcBounds); + + extern "C" __declspec(dllimport) HRESULT __stdcall OleRun( LPUNKNOWN pUnknown); +extern "C" __declspec(dllimport) BOOL __stdcall OleIsRunning( LPOLEOBJECT pObject); +extern "C" __declspec(dllimport) HRESULT __stdcall OleLockRunning( LPUNKNOWN pUnknown, BOOL fLock, BOOL fLastUnlockCloses); + +extern "C" __declspec(dllimport) void __stdcall ReleaseStgMedium( LPSTGMEDIUM); + +extern "C" __declspec(dllimport) HRESULT __stdcall CreateOleAdviseHolder( LPOLEADVISEHOLDER * ppOAHolder); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreateDefaultHandler( const IID & clsid, LPUNKNOWN pUnkOuter, + const IID & riid, LPVOID * lplpObj); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreateEmbeddingHelper( const IID & clsid, LPUNKNOWN pUnkOuter, + DWORD flags, LPCLASSFACTORY pCF, + const IID & riid, LPVOID * lplpObj); + +extern "C" __declspec(dllimport) BOOL __stdcall IsAccelerator( HACCEL hAccel, int cAccelEntries, LPMSG lpMsg, + WORD * lpwCmd); + + +extern "C" __declspec(dllimport) HGLOBAL __stdcall OleGetIconOfFile( LPOLESTR lpszPath, BOOL fUseFileAsLabel); + +extern "C" __declspec(dllimport) HGLOBAL __stdcall OleGetIconOfClass( const IID & rclsid, LPOLESTR lpszLabel, + BOOL fUseTypeAsLabel); + +extern "C" __declspec(dllimport) HGLOBAL __stdcall OleMetafilePictFromIconAndLabel( HICON hIcon, LPOLESTR lpszLabel, + LPOLESTR lpszSourceFile, UINT iIconIndex); + + + + + + extern "C" __declspec(dllimport) HRESULT __stdcall OleRegGetUserType ( const IID & clsid, DWORD dwFormOfType, + LPOLESTR * pszUserType); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleRegGetMiscStatus ( const IID & clsid, DWORD dwAspect, + DWORD * pdwStatus); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleRegEnumFormatEtc( const IID & clsid, DWORD dwDirection, + LPENUMFORMATETC * ppenum); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleRegEnumVerbs ( const IID & clsid, LPENUMOLEVERB * ppenum); + + + + + + +typedef struct _OLESTREAM * LPOLESTREAM; + +typedef struct _OLESTREAMVTBL +{ + DWORD (__stdcall* Get)(LPOLESTREAM, void *, DWORD); + DWORD (__stdcall* Put)(LPOLESTREAM, const void *, DWORD); +} OLESTREAMVTBL; +typedef OLESTREAMVTBL * LPOLESTREAMVTBL; + +typedef struct _OLESTREAM +{ + LPOLESTREAMVTBL lpstbl; +} OLESTREAM; + + +extern "C" __declspec(dllimport) HRESULT __stdcall OleConvertOLESTREAMToIStorage + ( LPOLESTREAM lpolestream, + LPSTORAGE pstg, + const DVTARGETDEVICE * ptd); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleConvertIStorageToOLESTREAM + ( LPSTORAGE pstg, + LPOLESTREAM lpolestream); + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall OleDoAutoConvert( LPSTORAGE pStg, LPCLSID pClsidNew); +extern "C" __declspec(dllimport) HRESULT __stdcall OleGetAutoConvert( const IID & clsidOld, LPCLSID pClsidNew); +extern "C" __declspec(dllimport) HRESULT __stdcall OleSetAutoConvert( const IID & clsidOld, const IID & clsidNew); + +extern "C" __declspec(dllimport) HRESULT __stdcall SetConvertStg( LPSTORAGE pStg, BOOL fConvert); + + +extern "C" __declspec(dllimport) HRESULT __stdcall OleConvertIStorageToOLESTREAMEx + ( LPSTORAGE pstg, + + CLIPFORMAT cfFormat, + LONG lWidth, + LONG lHeight, + DWORD dwSize, + LPSTGMEDIUM pmedium, + LPOLESTREAM polestm); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleConvertOLESTREAMToIStorageEx + ( LPOLESTREAM polestm, + LPSTORAGE pstg, + + CLIPFORMAT * pcfFormat, + LONG * plwWidth, + LONG * plHeight, + DWORD * pdwSize, + LPSTGMEDIUM pmedium); + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 348 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/ole2.h" 2 + + + + + + + +#pragma warning(pop) +# 214 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/windows.h" 2 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" 1 +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +#pragma warning(push) +#pragma warning(disable: 4001) +#pragma warning(disable: 4820) +# 30 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +extern "C" const GUID IID_IPrintDialogCallback; + + + + + + +extern "C" const GUID IID_IPrintDialogServices; +# 46 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" 1 +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" +#pragma warning(push) +#pragma warning(disable: 4001) +#pragma warning(disable: 4201) +#pragma warning(disable: 4820) +# 909 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\prsht.h" +#pragma warning(pop) +# 46 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" 2 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" +#pragma warning(disable: 4103) + +#pragma pack(push,1) +# 49 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" 2 + + + + +extern "C" { +# 104 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +typedef UINT_PTR (__stdcall *LPOFNHOOKPROC) (HWND, UINT, WPARAM, LPARAM); +# 120 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +typedef struct tagOFN_NT4A { + DWORD lStructSize; + HWND hwndOwner; + HINSTANCE hInstance; + LPCSTR lpstrFilter; + LPSTR lpstrCustomFilter; + DWORD nMaxCustFilter; + DWORD nFilterIndex; + LPSTR lpstrFile; + DWORD nMaxFile; + LPSTR lpstrFileTitle; + DWORD nMaxFileTitle; + LPCSTR lpstrInitialDir; + LPCSTR lpstrTitle; + DWORD Flags; + WORD nFileOffset; + WORD nFileExtension; + LPCSTR lpstrDefExt; + LPARAM lCustData; + LPOFNHOOKPROC lpfnHook; + LPCSTR lpTemplateName; +} OPENFILENAME_NT4A, *LPOPENFILENAME_NT4A; +typedef struct tagOFN_NT4W { + DWORD lStructSize; + HWND hwndOwner; + HINSTANCE hInstance; + LPCWSTR lpstrFilter; + LPWSTR lpstrCustomFilter; + DWORD nMaxCustFilter; + DWORD nFilterIndex; + LPWSTR lpstrFile; + DWORD nMaxFile; + LPWSTR lpstrFileTitle; + DWORD nMaxFileTitle; + LPCWSTR lpstrInitialDir; + LPCWSTR lpstrTitle; + DWORD Flags; + WORD nFileOffset; + WORD nFileExtension; + LPCWSTR lpstrDefExt; + LPARAM lCustData; + LPOFNHOOKPROC lpfnHook; + LPCWSTR lpTemplateName; +} OPENFILENAME_NT4W, *LPOPENFILENAME_NT4W; + +typedef OPENFILENAME_NT4W OPENFILENAME_NT4; +typedef LPOPENFILENAME_NT4W LPOPENFILENAME_NT4; + + + + + +typedef struct tagOFNA { + DWORD lStructSize; + HWND hwndOwner; + HINSTANCE hInstance; + LPCSTR lpstrFilter; + LPSTR lpstrCustomFilter; + DWORD nMaxCustFilter; + DWORD nFilterIndex; + LPSTR lpstrFile; + DWORD nMaxFile; + LPSTR lpstrFileTitle; + DWORD nMaxFileTitle; + LPCSTR lpstrInitialDir; + LPCSTR lpstrTitle; + DWORD Flags; + WORD nFileOffset; + WORD nFileExtension; + LPCSTR lpstrDefExt; + LPARAM lCustData; + LPOFNHOOKPROC lpfnHook; + LPCSTR lpTemplateName; + + + + + + void * pvReserved; + DWORD dwReserved; + DWORD FlagsEx; + +} OPENFILENAMEA, *LPOPENFILENAMEA; +typedef struct tagOFNW { + DWORD lStructSize; + HWND hwndOwner; + HINSTANCE hInstance; + LPCWSTR lpstrFilter; + LPWSTR lpstrCustomFilter; + DWORD nMaxCustFilter; + DWORD nFilterIndex; + LPWSTR lpstrFile; + DWORD nMaxFile; + LPWSTR lpstrFileTitle; + DWORD nMaxFileTitle; + LPCWSTR lpstrInitialDir; + LPCWSTR lpstrTitle; + DWORD Flags; + WORD nFileOffset; + WORD nFileExtension; + LPCWSTR lpstrDefExt; + LPARAM lCustData; + LPOFNHOOKPROC lpfnHook; + LPCWSTR lpTemplateName; + + + + + + void * pvReserved; + DWORD dwReserved; + DWORD FlagsEx; + +} OPENFILENAMEW, *LPOPENFILENAMEW; + +typedef OPENFILENAMEW OPENFILENAME; +typedef LPOPENFILENAMEW LPOPENFILENAME; +# 253 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +__declspec(dllimport) BOOL __stdcall GetOpenFileNameA(LPOPENFILENAMEA); +__declspec(dllimport) BOOL __stdcall GetOpenFileNameW(LPOPENFILENAMEW); + + + + + +__declspec(dllimport) BOOL __stdcall GetSaveFileNameA(LPOPENFILENAMEA); +__declspec(dllimport) BOOL __stdcall GetSaveFileNameW(LPOPENFILENAMEW); + + + + + + + +__declspec(dllimport) short __stdcall GetFileTitleA(LPCSTR, LPSTR Buf, WORD cchSize); +__declspec(dllimport) short __stdcall GetFileTitleW(LPCWSTR, LPWSTR Buf, WORD cchSize); +# 329 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +typedef UINT_PTR (__stdcall *LPCCHOOKPROC) (HWND, UINT, WPARAM, LPARAM); + + + +typedef struct _OFNOTIFYA +{ + NMHDR hdr; + LPOPENFILENAMEA lpOFN; + LPSTR pszFile; +} OFNOTIFYA, *LPOFNOTIFYA; + +typedef struct _OFNOTIFYW +{ + NMHDR hdr; + LPOPENFILENAMEW lpOFN; + LPWSTR pszFile; +} OFNOTIFYW, *LPOFNOTIFYW; + +typedef OFNOTIFYW OFNOTIFY; +typedef LPOFNOTIFYW LPOFNOTIFY; + + + + + + + +typedef struct _OFNOTIFYEXA +{ + NMHDR hdr; + LPOPENFILENAMEA lpOFN; + LPVOID psf; + LPVOID pidl; +} OFNOTIFYEXA, *LPOFNOTIFYEXA; + +typedef struct _OFNOTIFYEXW +{ + NMHDR hdr; + LPOPENFILENAMEW lpOFN; + LPVOID psf; + LPVOID pidl; +} OFNOTIFYEXW, *LPOFNOTIFYEXW; + +typedef OFNOTIFYEXW OFNOTIFYEX; +typedef LPOFNOTIFYEXW LPOFNOTIFYEX; +# 473 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +typedef struct tagCHOOSECOLORA { + DWORD lStructSize; + HWND hwndOwner; + HWND hInstance; + COLORREF rgbResult; + COLORREF* lpCustColors; + DWORD Flags; + LPARAM lCustData; + LPCCHOOKPROC lpfnHook; + LPCSTR lpTemplateName; +} CHOOSECOLORA, *LPCHOOSECOLORA; +typedef struct tagCHOOSECOLORW { + DWORD lStructSize; + HWND hwndOwner; + HWND hInstance; + COLORREF rgbResult; + COLORREF* lpCustColors; + DWORD Flags; + LPARAM lCustData; + LPCCHOOKPROC lpfnHook; + LPCWSTR lpTemplateName; +} CHOOSECOLORW, *LPCHOOSECOLORW; + +typedef CHOOSECOLORW CHOOSECOLOR; +typedef LPCHOOSECOLORW LPCHOOSECOLOR; +# 536 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +__declspec(dllimport) BOOL __stdcall ChooseColorA(LPCHOOSECOLORA); +__declspec(dllimport) BOOL __stdcall ChooseColorW(LPCHOOSECOLORW); +# 556 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +typedef UINT_PTR (__stdcall *LPFRHOOKPROC) (HWND, UINT, WPARAM, LPARAM); + +typedef struct tagFINDREPLACEA { + DWORD lStructSize; + HWND hwndOwner; + HINSTANCE hInstance; + + DWORD Flags; + LPSTR lpstrFindWhat; + LPSTR lpstrReplaceWith; + WORD wFindWhatLen; + WORD wReplaceWithLen; + LPARAM lCustData; + LPFRHOOKPROC lpfnHook; + LPCSTR lpTemplateName; +} FINDREPLACEA, *LPFINDREPLACEA; +typedef struct tagFINDREPLACEW { + DWORD lStructSize; + HWND hwndOwner; + HINSTANCE hInstance; + + DWORD Flags; + LPWSTR lpstrFindWhat; + LPWSTR lpstrReplaceWith; + WORD wFindWhatLen; + WORD wReplaceWithLen; + LPARAM lCustData; + LPFRHOOKPROC lpfnHook; + LPCWSTR lpTemplateName; +} FINDREPLACEW, *LPFINDREPLACEW; + +typedef FINDREPLACEW FINDREPLACE; +typedef LPFINDREPLACEW LPFINDREPLACE; +# 618 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +__declspec(dllimport) HWND __stdcall FindTextA(LPFINDREPLACEA); +__declspec(dllimport) HWND __stdcall FindTextW(LPFINDREPLACEW); + + + + + + +__declspec(dllimport) HWND __stdcall ReplaceTextA(LPFINDREPLACEA); +__declspec(dllimport) HWND __stdcall ReplaceTextW(LPFINDREPLACEW); +# 663 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +typedef UINT_PTR (__stdcall *LPCFHOOKPROC) (HWND, UINT, WPARAM, LPARAM); + +typedef struct tagCHOOSEFONTA { + DWORD lStructSize; + HWND hwndOwner; + HDC hDC; + LPLOGFONTA lpLogFont; + INT iPointSize; + DWORD Flags; + COLORREF rgbColors; + LPARAM lCustData; + LPCFHOOKPROC lpfnHook; + LPCSTR lpTemplateName; + HINSTANCE hInstance; + + LPSTR lpszStyle; + + WORD nFontType; + + + WORD ___MISSING_ALIGNMENT__; + INT nSizeMin; + INT nSizeMax; + +} CHOOSEFONTA; +typedef struct tagCHOOSEFONTW { + DWORD lStructSize; + HWND hwndOwner; + HDC hDC; + LPLOGFONTW lpLogFont; + INT iPointSize; + DWORD Flags; + COLORREF rgbColors; + LPARAM lCustData; + LPCFHOOKPROC lpfnHook; + LPCWSTR lpTemplateName; + HINSTANCE hInstance; + + LPWSTR lpszStyle; + + WORD nFontType; + + + WORD ___MISSING_ALIGNMENT__; + INT nSizeMin; + INT nSizeMax; + +} CHOOSEFONTW; + +typedef CHOOSEFONTW CHOOSEFONT; + + + +typedef CHOOSEFONTA *LPCHOOSEFONTA; +typedef CHOOSEFONTW *LPCHOOSEFONTW; + +typedef LPCHOOSEFONTW LPCHOOSEFONT; + + + +typedef const CHOOSEFONTA *PCCHOOSEFONTA; +typedef const CHOOSEFONTW *PCCHOOSEFONTW; + +typedef CHOOSEFONTW CHOOSEFONT; +typedef PCCHOOSEFONTW PCCHOOSEFONT; + + + + + +__declspec(dllimport) BOOL __stdcall ChooseFontA(LPCHOOSEFONTA); +__declspec(dllimport) BOOL __stdcall ChooseFontW(LPCHOOSEFONTW); +# 851 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +typedef UINT_PTR (__stdcall *LPPRINTHOOKPROC) (HWND, UINT, WPARAM, LPARAM); +typedef UINT_PTR (__stdcall *LPSETUPHOOKPROC) (HWND, UINT, WPARAM, LPARAM); + +typedef struct tagPDA { + DWORD lStructSize; + HWND hwndOwner; + HGLOBAL hDevMode; + HGLOBAL hDevNames; + HDC hDC; + DWORD Flags; + WORD nFromPage; + WORD nToPage; + WORD nMinPage; + WORD nMaxPage; + WORD nCopies; + HINSTANCE hInstance; + LPARAM lCustData; + LPPRINTHOOKPROC lpfnPrintHook; + LPSETUPHOOKPROC lpfnSetupHook; + LPCSTR lpPrintTemplateName; + LPCSTR lpSetupTemplateName; + HGLOBAL hPrintTemplate; + HGLOBAL hSetupTemplate; +} PRINTDLGA, *LPPRINTDLGA; +typedef struct tagPDW { + DWORD lStructSize; + HWND hwndOwner; + HGLOBAL hDevMode; + HGLOBAL hDevNames; + HDC hDC; + DWORD Flags; + WORD nFromPage; + WORD nToPage; + WORD nMinPage; + WORD nMaxPage; + WORD nCopies; + HINSTANCE hInstance; + LPARAM lCustData; + LPPRINTHOOKPROC lpfnPrintHook; + LPSETUPHOOKPROC lpfnSetupHook; + LPCWSTR lpPrintTemplateName; + LPCWSTR lpSetupTemplateName; + HGLOBAL hPrintTemplate; + HGLOBAL hSetupTemplate; +} PRINTDLGW, *LPPRINTDLGW; + +typedef PRINTDLGW PRINTDLG; +typedef LPPRINTDLGW LPPRINTDLG; + + + + + +__declspec(dllimport) BOOL __stdcall PrintDlgA( LPPRINTDLGA pPD); +__declspec(dllimport) BOOL __stdcall PrintDlgW( LPPRINTDLGW pPD); +# 949 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +struct __declspec(uuid("5852A2C3-6530-11D1-B6A3-0000F8757BF9")) __declspec(novtable) IPrintDialogCallback : public IUnknown +{ + + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface ( const IID & riid, void **ppvObj) = 0; + virtual __declspec(nothrow) ULONG __stdcall AddRef (void) = 0; + virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; + + + virtual __declspec(nothrow) HRESULT __stdcall InitDone (void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall SelectionChange (void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall HandleMessage ( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *pResult) = 0; +}; +# 981 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +struct __declspec(uuid("509AAEDA-5639-11D1-B6A1-0000F8757BF9")) __declspec(novtable) IPrintDialogServices : public IUnknown +{ + + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface ( const IID & riid, void **ppvObj) = 0; + virtual __declspec(nothrow) ULONG __stdcall AddRef (void) = 0; + virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; + + + virtual __declspec(nothrow) HRESULT __stdcall GetCurrentDevMode ( LPDEVMODE pDevMode, UINT *pcbSize) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetCurrentPrinterName ( LPWSTR pPrinterName, UINT *pcchSize) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetCurrentPortName ( LPWSTR pPortName, UINT *pcchSize) = 0; +}; + + + + + +typedef struct tagPRINTPAGERANGE { + DWORD nFromPage; + DWORD nToPage; +} PRINTPAGERANGE; +typedef PRINTPAGERANGE *LPPRINTPAGERANGE; +typedef const PRINTPAGERANGE *PCPRINTPAGERANGE; + + + + + +typedef struct tagPDEXA { + DWORD lStructSize; + HWND hwndOwner; + HGLOBAL hDevMode; + HGLOBAL hDevNames; + HDC hDC; + DWORD Flags; + DWORD Flags2; + DWORD ExclusionFlags; + DWORD nPageRanges; + DWORD nMaxPageRanges; + LPPRINTPAGERANGE lpPageRanges; + DWORD nMinPage; + DWORD nMaxPage; + DWORD nCopies; + HINSTANCE hInstance; + LPCSTR lpPrintTemplateName; + LPUNKNOWN lpCallback; + DWORD nPropertyPages; + HPROPSHEETPAGE *lphPropertyPages; + DWORD nStartPage; + DWORD dwResultAction; +} PRINTDLGEXA, *LPPRINTDLGEXA; + + + +typedef struct tagPDEXW { + DWORD lStructSize; + HWND hwndOwner; + HGLOBAL hDevMode; + HGLOBAL hDevNames; + HDC hDC; + DWORD Flags; + DWORD Flags2; + DWORD ExclusionFlags; + DWORD nPageRanges; + DWORD nMaxPageRanges; + LPPRINTPAGERANGE lpPageRanges; + DWORD nMinPage; + DWORD nMaxPage; + DWORD nCopies; + HINSTANCE hInstance; + LPCWSTR lpPrintTemplateName; + LPUNKNOWN lpCallback; + DWORD nPropertyPages; + HPROPSHEETPAGE *lphPropertyPages; + DWORD nStartPage; + DWORD dwResultAction; +} PRINTDLGEXW, *LPPRINTDLGEXW; + +typedef PRINTDLGEXW PRINTDLGEX; +typedef LPPRINTDLGEXW LPPRINTDLGEX; + + + + + + + +__declspec(dllimport) HRESULT __stdcall PrintDlgExA( LPPRINTDLGEXA pPD); +__declspec(dllimport) HRESULT __stdcall PrintDlgExW( LPPRINTDLGEXW pPD); +# 1141 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +typedef struct tagDEVNAMES { + WORD wDriverOffset; + WORD wDeviceOffset; + WORD wOutputOffset; + WORD wDefault; +} DEVNAMES; +typedef DEVNAMES *LPDEVNAMES; +typedef const DEVNAMES *PCDEVNAMES; + + + + +__declspec(dllimport) DWORD __stdcall CommDlgExtendedError(void); +# 1164 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +typedef UINT_PTR (__stdcall* LPPAGEPAINTHOOK)( HWND, UINT, WPARAM, LPARAM ); +typedef UINT_PTR (__stdcall* LPPAGESETUPHOOK)( HWND, UINT, WPARAM, LPARAM ); + +typedef struct tagPSDA +{ + DWORD lStructSize; + HWND hwndOwner; + HGLOBAL hDevMode; + HGLOBAL hDevNames; + DWORD Flags; + POINT ptPaperSize; + RECT rtMinMargin; + RECT rtMargin; + HINSTANCE hInstance; + LPARAM lCustData; + LPPAGESETUPHOOK lpfnPageSetupHook; + LPPAGEPAINTHOOK lpfnPagePaintHook; + LPCSTR lpPageSetupTemplateName; + HGLOBAL hPageSetupTemplate; +} PAGESETUPDLGA, * LPPAGESETUPDLGA; +typedef struct tagPSDW +{ + DWORD lStructSize; + HWND hwndOwner; + HGLOBAL hDevMode; + HGLOBAL hDevNames; + DWORD Flags; + POINT ptPaperSize; + RECT rtMinMargin; + RECT rtMargin; + HINSTANCE hInstance; + LPARAM lCustData; + LPPAGESETUPHOOK lpfnPageSetupHook; + LPPAGEPAINTHOOK lpfnPagePaintHook; + LPCWSTR lpPageSetupTemplateName; + HGLOBAL hPageSetupTemplate; +} PAGESETUPDLGW, * LPPAGESETUPDLGW; + +typedef PAGESETUPDLGW PAGESETUPDLG; +typedef LPPAGESETUPDLGW LPPAGESETUPDLG; + + + + + +__declspec(dllimport) BOOL __stdcall PageSetupDlgA( LPPAGESETUPDLGA ); +__declspec(dllimport) BOOL __stdcall PageSetupDlgW( LPPAGESETUPDLGW ); +# 1252 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" +} + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 1256 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\commdlg.h" 2 + + + + + +#pragma warning(pop) +# 217 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/windows.h" 2 + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\stralign.h" 1 +# 65 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\stralign.h" +extern "C" { +# 105 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\stralign.h" +__inline +PUWSTR +static +__declspec(deprecated) +ua_wcscpy( + PUWSTR Destination, + PCUWSTR Source + ) +{ +#pragma warning(push) +#pragma warning(disable: 4995) +#pragma warning(disable: 4996) + + + + return wcscpy(Destination, Source); +#pragma warning(pop) +} +# 683 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\stralign.h" +} +# 221 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/windows.h" 2 +# 234 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/windows.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" 1 +# 36 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +#pragma warning(push) +#pragma warning(disable: 4820) + + + +extern "C" { +# 358 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +extern "C" const GUID NETWORK_MANAGER_FIRST_IP_ADDRESS_ARRIVAL_GUID; + + + + + + + +extern "C" const GUID NETWORK_MANAGER_LAST_IP_ADDRESS_REMOVAL_GUID; +# 377 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +extern "C" const GUID DOMAIN_JOIN_GUID; + + + + + + + +extern "C" const GUID DOMAIN_LEAVE_GUID; +# 397 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +extern "C" const GUID FIREWALL_PORT_OPEN_GUID; + + + + + + + +extern "C" const GUID FIREWALL_PORT_CLOSE_GUID; +# 417 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +extern "C" const GUID MACHINE_POLICY_PRESENT_GUID; + + + + + + + +extern "C" const GUID USER_POLICY_PRESENT_GUID; +# 437 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +extern "C" const GUID RPC_INTERFACE_EVENT_GUID; + + + + + + + +extern "C" const GUID NAMED_PIPE_EVENT_GUID; +# 456 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +extern "C" const GUID CUSTOM_SYSTEM_STATE_CHANGE_EVENT_GUID; +# 467 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +typedef struct +{ + DWORD Data[2]; +} SERVICE_TRIGGER_CUSTOM_STATE_ID; + +typedef struct _SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM { + union { + SERVICE_TRIGGER_CUSTOM_STATE_ID CustomStateId; + struct { + DWORD DataOffset; + BYTE Data[1]; + } s; + } u; +} SERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM, *LPSERVICE_CUSTOM_SYSTEM_STATE_CHANGE_DATA_ITEM; +# 497 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +typedef struct _SERVICE_DESCRIPTIONA { + LPSTR lpDescription; +} SERVICE_DESCRIPTIONA, *LPSERVICE_DESCRIPTIONA; + + + +typedef struct _SERVICE_DESCRIPTIONW { + LPWSTR lpDescription; +} SERVICE_DESCRIPTIONW, *LPSERVICE_DESCRIPTIONW; + +typedef SERVICE_DESCRIPTIONW SERVICE_DESCRIPTION; +typedef LPSERVICE_DESCRIPTIONW LPSERVICE_DESCRIPTION; +# 517 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +typedef enum _SC_ACTION_TYPE { + SC_ACTION_NONE = 0, + SC_ACTION_RESTART = 1, + SC_ACTION_REBOOT = 2, + SC_ACTION_RUN_COMMAND = 3, + SC_ACTION_OWN_RESTART = 4 +} SC_ACTION_TYPE; + +typedef struct _SC_ACTION { + SC_ACTION_TYPE Type; + DWORD Delay; +} SC_ACTION, *LPSC_ACTION; + +typedef struct _SERVICE_FAILURE_ACTIONSA { + DWORD dwResetPeriod; + LPSTR lpRebootMsg; + LPSTR lpCommand; + + + + DWORD cActions; + + + + SC_ACTION * lpsaActions; +} SERVICE_FAILURE_ACTIONSA, *LPSERVICE_FAILURE_ACTIONSA; +typedef struct _SERVICE_FAILURE_ACTIONSW { + DWORD dwResetPeriod; + LPWSTR lpRebootMsg; + LPWSTR lpCommand; + + + + DWORD cActions; + + + + SC_ACTION * lpsaActions; +} SERVICE_FAILURE_ACTIONSW, *LPSERVICE_FAILURE_ACTIONSW; + +typedef SERVICE_FAILURE_ACTIONSW SERVICE_FAILURE_ACTIONS; +typedef LPSERVICE_FAILURE_ACTIONSW LPSERVICE_FAILURE_ACTIONS; +# 567 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +typedef struct _SERVICE_DELAYED_AUTO_START_INFO { + BOOL fDelayedAutostart; +} SERVICE_DELAYED_AUTO_START_INFO, *LPSERVICE_DELAYED_AUTO_START_INFO; + + + + +typedef struct _SERVICE_FAILURE_ACTIONS_FLAG { + BOOL fFailureActionsOnNonCrashFailures; +} SERVICE_FAILURE_ACTIONS_FLAG, *LPSERVICE_FAILURE_ACTIONS_FLAG; + + + + +typedef struct _SERVICE_SID_INFO { + DWORD dwServiceSidType; +} SERVICE_SID_INFO, *LPSERVICE_SID_INFO; + + + + +typedef struct _SERVICE_REQUIRED_PRIVILEGES_INFOA { + LPSTR pmszRequiredPrivileges; +} SERVICE_REQUIRED_PRIVILEGES_INFOA, *LPSERVICE_REQUIRED_PRIVILEGES_INFOA; + + + +typedef struct _SERVICE_REQUIRED_PRIVILEGES_INFOW { + LPWSTR pmszRequiredPrivileges; +} SERVICE_REQUIRED_PRIVILEGES_INFOW, *LPSERVICE_REQUIRED_PRIVILEGES_INFOW; + +typedef SERVICE_REQUIRED_PRIVILEGES_INFOW SERVICE_REQUIRED_PRIVILEGES_INFO; +typedef LPSERVICE_REQUIRED_PRIVILEGES_INFOW LPSERVICE_REQUIRED_PRIVILEGES_INFO; +# 608 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +typedef struct _SERVICE_PRESHUTDOWN_INFO { + DWORD dwPreshutdownTimeout; +} SERVICE_PRESHUTDOWN_INFO, *LPSERVICE_PRESHUTDOWN_INFO; + + + + +typedef struct _SERVICE_TRIGGER_SPECIFIC_DATA_ITEM +{ + DWORD dwDataType; + + + + DWORD cbData; + + + + PBYTE pData; +} SERVICE_TRIGGER_SPECIFIC_DATA_ITEM, *PSERVICE_TRIGGER_SPECIFIC_DATA_ITEM; + + + + +typedef struct _SERVICE_TRIGGER +{ + DWORD dwTriggerType; + DWORD dwAction; + GUID * pTriggerSubtype; + + + + + + + DWORD cDataItems; + + + + PSERVICE_TRIGGER_SPECIFIC_DATA_ITEM pDataItems; +} SERVICE_TRIGGER, *PSERVICE_TRIGGER; + + + + +typedef struct _SERVICE_TRIGGER_INFO { + + + + DWORD cTriggers; + + + + PSERVICE_TRIGGER pTriggers; + PBYTE pReserved; +} SERVICE_TRIGGER_INFO, *PSERVICE_TRIGGER_INFO; + + + + + + +typedef struct _SERVICE_PREFERRED_NODE_INFO { + USHORT usPreferredNode; + BOOLEAN fDelete; +} SERVICE_PREFERRED_NODE_INFO, *LPSERVICE_PREFERRED_NODE_INFO; + + + + +typedef struct _SERVICE_TIMECHANGE_INFO { + LARGE_INTEGER liNewTime; + LARGE_INTEGER liOldTime; +} SERVICE_TIMECHANGE_INFO, *PSERVICE_TIMECHANGE_INFO; + + + + +typedef struct _SERVICE_LAUNCH_PROTECTED_INFO { + DWORD dwLaunchProtected; +} SERVICE_LAUNCH_PROTECTED_INFO, *PSERVICE_LAUNCH_PROTECTED_INFO; + + + + + +struct SC_HANDLE__{int unused;}; typedef struct SC_HANDLE__ *SC_HANDLE; +typedef SC_HANDLE *LPSC_HANDLE; + +struct SERVICE_STATUS_HANDLE__{int unused;}; typedef struct SERVICE_STATUS_HANDLE__ *SERVICE_STATUS_HANDLE; + + + + + +typedef enum _SC_STATUS_TYPE { + SC_STATUS_PROCESS_INFO = 0 +} SC_STATUS_TYPE; + + + + +typedef enum _SC_ENUM_TYPE { + SC_ENUM_PROCESS_INFO = 0 +} SC_ENUM_TYPE; + + + + + + +typedef struct _SERVICE_STATUS { + DWORD dwServiceType; + DWORD dwCurrentState; + DWORD dwControlsAccepted; + DWORD dwWin32ExitCode; + DWORD dwServiceSpecificExitCode; + DWORD dwCheckPoint; + DWORD dwWaitHint; +} SERVICE_STATUS, *LPSERVICE_STATUS; + +typedef struct _SERVICE_STATUS_PROCESS { + DWORD dwServiceType; + DWORD dwCurrentState; + DWORD dwControlsAccepted; + DWORD dwWin32ExitCode; + DWORD dwServiceSpecificExitCode; + DWORD dwCheckPoint; + DWORD dwWaitHint; + DWORD dwProcessId; + DWORD dwServiceFlags; +} SERVICE_STATUS_PROCESS, *LPSERVICE_STATUS_PROCESS; + + + + + + +typedef struct _ENUM_SERVICE_STATUSA { + LPSTR lpServiceName; + LPSTR lpDisplayName; + SERVICE_STATUS ServiceStatus; +} ENUM_SERVICE_STATUSA, *LPENUM_SERVICE_STATUSA; +typedef struct _ENUM_SERVICE_STATUSW { + LPWSTR lpServiceName; + LPWSTR lpDisplayName; + SERVICE_STATUS ServiceStatus; +} ENUM_SERVICE_STATUSW, *LPENUM_SERVICE_STATUSW; + +typedef ENUM_SERVICE_STATUSW ENUM_SERVICE_STATUS; +typedef LPENUM_SERVICE_STATUSW LPENUM_SERVICE_STATUS; + + + + + +typedef struct _ENUM_SERVICE_STATUS_PROCESSA { + LPSTR lpServiceName; + LPSTR lpDisplayName; + SERVICE_STATUS_PROCESS ServiceStatusProcess; +} ENUM_SERVICE_STATUS_PROCESSA, *LPENUM_SERVICE_STATUS_PROCESSA; +typedef struct _ENUM_SERVICE_STATUS_PROCESSW { + LPWSTR lpServiceName; + LPWSTR lpDisplayName; + SERVICE_STATUS_PROCESS ServiceStatusProcess; +} ENUM_SERVICE_STATUS_PROCESSW, *LPENUM_SERVICE_STATUS_PROCESSW; + +typedef ENUM_SERVICE_STATUS_PROCESSW ENUM_SERVICE_STATUS_PROCESS; +typedef LPENUM_SERVICE_STATUS_PROCESSW LPENUM_SERVICE_STATUS_PROCESS; +# 785 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +typedef LPVOID SC_LOCK; + +typedef struct _QUERY_SERVICE_LOCK_STATUSA { + DWORD fIsLocked; + LPSTR lpLockOwner; + DWORD dwLockDuration; +} QUERY_SERVICE_LOCK_STATUSA, *LPQUERY_SERVICE_LOCK_STATUSA; +typedef struct _QUERY_SERVICE_LOCK_STATUSW { + DWORD fIsLocked; + LPWSTR lpLockOwner; + DWORD dwLockDuration; +} QUERY_SERVICE_LOCK_STATUSW, *LPQUERY_SERVICE_LOCK_STATUSW; + +typedef QUERY_SERVICE_LOCK_STATUSW QUERY_SERVICE_LOCK_STATUS; +typedef LPQUERY_SERVICE_LOCK_STATUSW LPQUERY_SERVICE_LOCK_STATUS; +# 811 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +typedef struct _QUERY_SERVICE_CONFIGA { + DWORD dwServiceType; + DWORD dwStartType; + DWORD dwErrorControl; + LPSTR lpBinaryPathName; + LPSTR lpLoadOrderGroup; + DWORD dwTagId; + LPSTR lpDependencies; + LPSTR lpServiceStartName; + LPSTR lpDisplayName; +} QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA; +typedef struct _QUERY_SERVICE_CONFIGW { + DWORD dwServiceType; + DWORD dwStartType; + DWORD dwErrorControl; + LPWSTR lpBinaryPathName; + LPWSTR lpLoadOrderGroup; + DWORD dwTagId; + LPWSTR lpDependencies; + LPWSTR lpServiceStartName; + LPWSTR lpDisplayName; +} QUERY_SERVICE_CONFIGW, *LPQUERY_SERVICE_CONFIGW; + +typedef QUERY_SERVICE_CONFIGW QUERY_SERVICE_CONFIG; +typedef LPQUERY_SERVICE_CONFIGW LPQUERY_SERVICE_CONFIG; +# 847 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +typedef void __stdcall SERVICE_MAIN_FUNCTIONW ( + DWORD dwNumServicesArgs, + LPWSTR *lpServiceArgVectors + ); + +typedef void __stdcall SERVICE_MAIN_FUNCTIONA ( + DWORD dwNumServicesArgs, + LPTSTR *lpServiceArgVectors + ); + + + + + + + +typedef void (__stdcall *LPSERVICE_MAIN_FUNCTIONW)( + DWORD dwNumServicesArgs, + LPWSTR *lpServiceArgVectors + ); + +typedef void (__stdcall *LPSERVICE_MAIN_FUNCTIONA)( + DWORD dwNumServicesArgs, + LPSTR *lpServiceArgVectors + ); +# 884 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +typedef struct _SERVICE_TABLE_ENTRYA { + LPSTR lpServiceName; + LPSERVICE_MAIN_FUNCTIONA lpServiceProc; +}SERVICE_TABLE_ENTRYA, *LPSERVICE_TABLE_ENTRYA; +typedef struct _SERVICE_TABLE_ENTRYW { + LPWSTR lpServiceName; + LPSERVICE_MAIN_FUNCTIONW lpServiceProc; +}SERVICE_TABLE_ENTRYW, *LPSERVICE_TABLE_ENTRYW; + +typedef SERVICE_TABLE_ENTRYW SERVICE_TABLE_ENTRY; +typedef LPSERVICE_TABLE_ENTRYW LPSERVICE_TABLE_ENTRY; +# 904 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +typedef void __stdcall HANDLER_FUNCTION ( + DWORD dwControl + ); + +typedef DWORD __stdcall HANDLER_FUNCTION_EX ( + DWORD dwControl, + DWORD dwEventType, + LPVOID lpEventData, + LPVOID lpContext + ); + +typedef void (__stdcall *LPHANDLER_FUNCTION)( + DWORD dwControl + ); + +typedef DWORD (__stdcall *LPHANDLER_FUNCTION_EX)( + DWORD dwControl, + DWORD dwEventType, + LPVOID lpEventData, + LPVOID lpContext + ); + + + + +typedef +void +( __stdcall * PFN_SC_NOTIFY_CALLBACK ) ( + PVOID pParameter + ); + + + + +typedef struct _SERVICE_NOTIFY_1 { + DWORD dwVersion; + PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback; + PVOID pContext; + DWORD dwNotificationStatus; + SERVICE_STATUS_PROCESS ServiceStatus; +} SERVICE_NOTIFY_1, *PSERVICE_NOTIFY_1; + +typedef struct _SERVICE_NOTIFY_2A { + DWORD dwVersion; + PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback; + PVOID pContext; + DWORD dwNotificationStatus; + SERVICE_STATUS_PROCESS ServiceStatus; + DWORD dwNotificationTriggered; + LPSTR pszServiceNames; +} SERVICE_NOTIFY_2A, *PSERVICE_NOTIFY_2A; +typedef struct _SERVICE_NOTIFY_2W { + DWORD dwVersion; + PFN_SC_NOTIFY_CALLBACK pfnNotifyCallback; + PVOID pContext; + DWORD dwNotificationStatus; + SERVICE_STATUS_PROCESS ServiceStatus; + DWORD dwNotificationTriggered; + LPWSTR pszServiceNames; +} SERVICE_NOTIFY_2W, *PSERVICE_NOTIFY_2W; + +typedef SERVICE_NOTIFY_2W SERVICE_NOTIFY_2; +typedef PSERVICE_NOTIFY_2W PSERVICE_NOTIFY_2; + + + + + +typedef SERVICE_NOTIFY_2A SERVICE_NOTIFYA, *PSERVICE_NOTIFYA; +typedef SERVICE_NOTIFY_2W SERVICE_NOTIFYW, *PSERVICE_NOTIFYW; + +typedef SERVICE_NOTIFYW SERVICE_NOTIFY; +typedef PSERVICE_NOTIFYW PSERVICE_NOTIFY; +# 985 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +typedef struct _SERVICE_CONTROL_STATUS_REASON_PARAMSA { + DWORD dwReason; + LPSTR pszComment; + SERVICE_STATUS_PROCESS ServiceStatus; +} SERVICE_CONTROL_STATUS_REASON_PARAMSA, *PSERVICE_CONTROL_STATUS_REASON_PARAMSA; + + + +typedef struct _SERVICE_CONTROL_STATUS_REASON_PARAMSW { + DWORD dwReason; + LPWSTR pszComment; + SERVICE_STATUS_PROCESS ServiceStatus; +} SERVICE_CONTROL_STATUS_REASON_PARAMSW, *PSERVICE_CONTROL_STATUS_REASON_PARAMSW; + +typedef SERVICE_CONTROL_STATUS_REASON_PARAMSW SERVICE_CONTROL_STATUS_REASON_PARAMS; +typedef PSERVICE_CONTROL_STATUS_REASON_PARAMSW PSERVICE_CONTROL_STATUS_REASON_PARAMS; +# 1009 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +typedef struct _SERVICE_START_REASON { + DWORD dwReason; +} SERVICE_START_REASON, *PSERVICE_START_REASON; + + + + + +__declspec(dllimport) +BOOL +__stdcall +ChangeServiceConfigA( + SC_HANDLE hService, + DWORD dwServiceType, + DWORD dwStartType, + DWORD dwErrorControl, + LPCSTR lpBinaryPathName, + LPCSTR lpLoadOrderGroup, + LPDWORD lpdwTagId, + LPCSTR lpDependencies, + LPCSTR lpServiceStartName, + LPCSTR lpPassword, + LPCSTR lpDisplayName + ); +__declspec(dllimport) +BOOL +__stdcall +ChangeServiceConfigW( + SC_HANDLE hService, + DWORD dwServiceType, + DWORD dwStartType, + DWORD dwErrorControl, + LPCWSTR lpBinaryPathName, + LPCWSTR lpLoadOrderGroup, + LPDWORD lpdwTagId, + LPCWSTR lpDependencies, + LPCWSTR lpServiceStartName, + LPCWSTR lpPassword, + LPCWSTR lpDisplayName + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +ChangeServiceConfig2A( + SC_HANDLE hService, + DWORD dwInfoLevel, + LPVOID lpInfo + ); +__declspec(dllimport) +BOOL +__stdcall +ChangeServiceConfig2W( + SC_HANDLE hService, + DWORD dwInfoLevel, + LPVOID lpInfo + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +CloseServiceHandle( + SC_HANDLE hSCObject + ); + +__declspec(dllimport) +BOOL +__stdcall +ControlService( + SC_HANDLE hService, + DWORD dwControl, + LPSERVICE_STATUS lpServiceStatus + ); + + +__declspec(dllimport) +SC_HANDLE +__stdcall +CreateServiceA( + SC_HANDLE hSCManager, + LPCSTR lpServiceName, + LPCSTR lpDisplayName, + DWORD dwDesiredAccess, + DWORD dwServiceType, + DWORD dwStartType, + DWORD dwErrorControl, + LPCSTR lpBinaryPathName, + LPCSTR lpLoadOrderGroup, + LPDWORD lpdwTagId, + LPCSTR lpDependencies, + LPCSTR lpServiceStartName, + LPCSTR lpPassword + ); + +__declspec(dllimport) +SC_HANDLE +__stdcall +CreateServiceW( + SC_HANDLE hSCManager, + LPCWSTR lpServiceName, + LPCWSTR lpDisplayName, + DWORD dwDesiredAccess, + DWORD dwServiceType, + DWORD dwStartType, + DWORD dwErrorControl, + LPCWSTR lpBinaryPathName, + LPCWSTR lpLoadOrderGroup, + LPDWORD lpdwTagId, + LPCWSTR lpDependencies, + LPCWSTR lpServiceStartName, + LPCWSTR lpPassword + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +DeleteService( + SC_HANDLE hService + ); + + +__declspec(dllimport) +BOOL +__stdcall +EnumDependentServicesA( + SC_HANDLE hService, + DWORD dwServiceState, + + LPENUM_SERVICE_STATUSA lpServices, + DWORD cbBufSize, + LPDWORD pcbBytesNeeded, + LPDWORD lpServicesReturned + ); + +__declspec(dllimport) +BOOL +__stdcall +EnumDependentServicesW( + SC_HANDLE hService, + DWORD dwServiceState, + + LPENUM_SERVICE_STATUSW lpServices, + DWORD cbBufSize, + LPDWORD pcbBytesNeeded, + LPDWORD lpServicesReturned + ); +# 1183 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +__declspec(dllimport) +BOOL +__stdcall +EnumServicesStatusA( + SC_HANDLE hSCManager, + DWORD dwServiceType, + DWORD dwServiceState, + + LPENUM_SERVICE_STATUSA lpServices, + DWORD cbBufSize, + LPDWORD pcbBytesNeeded, + LPDWORD lpServicesReturned, + LPDWORD lpResumeHandle + ); + +__declspec(dllimport) +BOOL +__stdcall +EnumServicesStatusW( + SC_HANDLE hSCManager, + DWORD dwServiceType, + DWORD dwServiceState, + + LPENUM_SERVICE_STATUSW lpServices, + DWORD cbBufSize, + LPDWORD pcbBytesNeeded, + LPDWORD lpServicesReturned, + LPDWORD lpResumeHandle + ); +# 1225 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +__declspec(dllimport) +BOOL +__stdcall +EnumServicesStatusExA( + SC_HANDLE hSCManager, + SC_ENUM_TYPE InfoLevel, + DWORD dwServiceType, + DWORD dwServiceState, + + LPBYTE lpServices, + DWORD cbBufSize, + LPDWORD pcbBytesNeeded, + LPDWORD lpServicesReturned, + LPDWORD lpResumeHandle, + LPCSTR pszGroupName + ); + +__declspec(dllimport) +BOOL +__stdcall +EnumServicesStatusExW( + SC_HANDLE hSCManager, + SC_ENUM_TYPE InfoLevel, + DWORD dwServiceType, + DWORD dwServiceState, + + LPBYTE lpServices, + DWORD cbBufSize, + LPDWORD pcbBytesNeeded, + LPDWORD lpServicesReturned, + LPDWORD lpResumeHandle, + LPCWSTR pszGroupName + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetServiceKeyNameA( + SC_HANDLE hSCManager, + LPCSTR lpDisplayName, + + LPSTR lpServiceName, + LPDWORD lpcchBuffer + ); + +__declspec(dllimport) +BOOL +__stdcall +GetServiceKeyNameW( + SC_HANDLE hSCManager, + LPCWSTR lpDisplayName, + + LPWSTR lpServiceName, + LPDWORD lpcchBuffer + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +GetServiceDisplayNameA( + SC_HANDLE hSCManager, + LPCSTR lpServiceName, + + LPSTR lpDisplayName, + LPDWORD lpcchBuffer + ); + +__declspec(dllimport) +BOOL +__stdcall +GetServiceDisplayNameW( + SC_HANDLE hSCManager, + LPCWSTR lpServiceName, + + LPWSTR lpDisplayName, + LPDWORD lpcchBuffer + ); +# 1326 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +__declspec(dllimport) +SC_LOCK +__stdcall +LockServiceDatabase( + SC_HANDLE hSCManager + ); + +__declspec(dllimport) +BOOL +__stdcall +NotifyBootConfigStatus( + BOOL BootAcceptable + ); +# 1347 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +__declspec(dllimport) +SC_HANDLE +__stdcall +OpenSCManagerA( + LPCSTR lpMachineName, + LPCSTR lpDatabaseName, + DWORD dwDesiredAccess + ); + +__declspec(dllimport) +SC_HANDLE +__stdcall +OpenSCManagerW( + LPCWSTR lpMachineName, + LPCWSTR lpDatabaseName, + DWORD dwDesiredAccess + ); + + + + + + + +__declspec(dllimport) +SC_HANDLE +__stdcall +OpenServiceA( + SC_HANDLE hSCManager, + LPCSTR lpServiceName, + DWORD dwDesiredAccess + ); + +__declspec(dllimport) +SC_HANDLE +__stdcall +OpenServiceW( + SC_HANDLE hSCManager, + LPCWSTR lpServiceName, + DWORD dwDesiredAccess + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +QueryServiceConfigA( + SC_HANDLE hService, + + LPQUERY_SERVICE_CONFIGA lpServiceConfig, + DWORD cbBufSize, + LPDWORD pcbBytesNeeded + ); + +__declspec(dllimport) +BOOL +__stdcall +QueryServiceConfigW( + SC_HANDLE hService, + + LPQUERY_SERVICE_CONFIGW lpServiceConfig, + DWORD cbBufSize, + LPDWORD pcbBytesNeeded + ); +# 1430 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +__declspec(dllimport) +BOOL +__stdcall +QueryServiceConfig2A( + SC_HANDLE hService, + DWORD dwInfoLevel, + + LPBYTE lpBuffer, + DWORD cbBufSize, + LPDWORD pcbBytesNeeded + ); +# 1449 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +__declspec(dllimport) +BOOL +__stdcall +QueryServiceConfig2W( + SC_HANDLE hService, + DWORD dwInfoLevel, + + LPBYTE lpBuffer, + DWORD cbBufSize, + LPDWORD pcbBytesNeeded + ); +# 1473 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +__declspec(dllimport) +BOOL +__stdcall +QueryServiceLockStatusA( + SC_HANDLE hSCManager, + + LPQUERY_SERVICE_LOCK_STATUSA lpLockStatus, + DWORD cbBufSize, + LPDWORD pcbBytesNeeded + ); + +__declspec(dllimport) +BOOL +__stdcall +QueryServiceLockStatusW( + SC_HANDLE hSCManager, + + LPQUERY_SERVICE_LOCK_STATUSW lpLockStatus, + DWORD cbBufSize, + LPDWORD pcbBytesNeeded + ); +# 1507 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +__declspec(dllimport) +BOOL +__stdcall +QueryServiceObjectSecurity( + SC_HANDLE hService, + SECURITY_INFORMATION dwSecurityInformation, + + PSECURITY_DESCRIPTOR lpSecurityDescriptor, + DWORD cbBufSize, + LPDWORD pcbBytesNeeded + ); + + +__declspec(dllimport) +BOOL +__stdcall +QueryServiceStatus( + SC_HANDLE hService, + LPSERVICE_STATUS lpServiceStatus + ); + + +__declspec(dllimport) +BOOL +__stdcall +QueryServiceStatusEx( + SC_HANDLE hService, + SC_STATUS_TYPE InfoLevel, + + LPBYTE lpBuffer, + DWORD cbBufSize, + LPDWORD pcbBytesNeeded + ); + + +__declspec(dllimport) +SERVICE_STATUS_HANDLE +__stdcall +RegisterServiceCtrlHandlerA( + LPCSTR lpServiceName, + + LPHANDLER_FUNCTION lpHandlerProc + ); + +__declspec(dllimport) +SERVICE_STATUS_HANDLE +__stdcall +RegisterServiceCtrlHandlerW( + LPCWSTR lpServiceName, + + LPHANDLER_FUNCTION lpHandlerProc + ); + + + + + + + +__declspec(dllimport) +SERVICE_STATUS_HANDLE +__stdcall +RegisterServiceCtrlHandlerExA( + LPCSTR lpServiceName, + + LPHANDLER_FUNCTION_EX lpHandlerProc, + LPVOID lpContext + ); + +__declspec(dllimport) +SERVICE_STATUS_HANDLE +__stdcall +RegisterServiceCtrlHandlerExW( + LPCWSTR lpServiceName, + + LPHANDLER_FUNCTION_EX lpHandlerProc, + LPVOID lpContext + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +SetServiceObjectSecurity( + SC_HANDLE hService, + SECURITY_INFORMATION dwSecurityInformation, + PSECURITY_DESCRIPTOR lpSecurityDescriptor + ); + +__declspec(dllimport) +BOOL +__stdcall +SetServiceStatus( + SERVICE_STATUS_HANDLE hServiceStatus, + LPSERVICE_STATUS lpServiceStatus + ); + +__declspec(dllimport) +BOOL +__stdcall +StartServiceCtrlDispatcherA( + const SERVICE_TABLE_ENTRYA *lpServiceStartTable + ); +__declspec(dllimport) +BOOL +__stdcall +StartServiceCtrlDispatcherW( + const SERVICE_TABLE_ENTRYW *lpServiceStartTable + ); + + + + + + + +__declspec(dllimport) +BOOL +__stdcall +StartServiceA( + SC_HANDLE hService, + DWORD dwNumServiceArgs, + + LPCSTR *lpServiceArgVectors + ); +__declspec(dllimport) +BOOL +__stdcall +StartServiceW( + SC_HANDLE hService, + DWORD dwNumServiceArgs, + + LPCWSTR *lpServiceArgVectors + ); +# 1657 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +__declspec(dllimport) +BOOL +__stdcall +UnlockServiceDatabase( + SC_LOCK ScLock + ); +# 1672 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\winsvc.h" +__declspec(dllimport) +DWORD +__stdcall +NotifyServiceStatusChangeA ( + SC_HANDLE hService, + DWORD dwNotifyMask, + PSERVICE_NOTIFYA pNotifyBuffer + ); +__declspec(dllimport) +DWORD +__stdcall +NotifyServiceStatusChangeW ( + SC_HANDLE hService, + DWORD dwNotifyMask, + PSERVICE_NOTIFYW pNotifyBuffer + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +ControlServiceExA( + SC_HANDLE hService, + DWORD dwControl, + DWORD dwInfoLevel, + PVOID pControlParams + ); +__declspec(dllimport) +BOOL +__stdcall +ControlServiceExW( + SC_HANDLE hService, + DWORD dwControl, + DWORD dwInfoLevel, + PVOID pControlParams + ); + + + + + + +__declspec(dllimport) +BOOL +__stdcall +QueryServiceDynamicInformation ( + SERVICE_STATUS_HANDLE hServiceStatus, + DWORD dwInfoLevel, + PVOID * ppDynamicInfo + ); + + + + + + + +} + + + +#pragma warning(pop) +# 234 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/windows.h" 2 + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mcx.h" 1 +# 17 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mcx.h" +#pragma warning(push) +#pragma warning(disable: 4820) + + +typedef struct _MODEMDEVCAPS { + DWORD dwActualSize; + DWORD dwRequiredSize; + DWORD dwDevSpecificOffset; + DWORD dwDevSpecificSize; + + + DWORD dwModemProviderVersion; + DWORD dwModemManufacturerOffset; + DWORD dwModemManufacturerSize; + DWORD dwModemModelOffset; + DWORD dwModemModelSize; + DWORD dwModemVersionOffset; + DWORD dwModemVersionSize; + + + DWORD dwDialOptions; + DWORD dwCallSetupFailTimer; + DWORD dwInactivityTimeout; + DWORD dwSpeakerVolume; + DWORD dwSpeakerMode; + DWORD dwModemOptions; + DWORD dwMaxDTERate; + DWORD dwMaxDCERate; + + + BYTE abVariablePortion [1]; +} MODEMDEVCAPS, *PMODEMDEVCAPS, *LPMODEMDEVCAPS; + +typedef struct _MODEMSETTINGS { + DWORD dwActualSize; + DWORD dwRequiredSize; + DWORD dwDevSpecificOffset; + DWORD dwDevSpecificSize; + + + DWORD dwCallSetupFailTimer; + DWORD dwInactivityTimeout; + DWORD dwSpeakerVolume; + DWORD dwSpeakerMode; + DWORD dwPreferredModemOptions; + + + DWORD dwNegotiatedModemOptions; + DWORD dwNegotiatedDCERate; + + + BYTE abVariablePortion [1]; +} MODEMSETTINGS, *PMODEMSETTINGS, *LPMODEMSETTINGS; +# 728 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\mcx.h" +#pragma warning(pop) +# 239 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/windows.h" 2 + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\imm.h" 1 +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\imm.h" +extern "C" { + + + +#pragma warning(push) +#pragma warning(disable: 4820) +# 31 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\imm.h" +struct HIMC__{int unused;}; typedef struct HIMC__ *HIMC; +struct HIMCC__{int unused;}; typedef struct HIMCC__ *HIMCC; +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\imm.h" +typedef HKL *LPHKL; +typedef UINT *LPUINT; + + + + + + + +typedef struct tagCOMPOSITIONFORM { + DWORD dwStyle; + POINT ptCurrentPos; + RECT rcArea; +} COMPOSITIONFORM, *PCOMPOSITIONFORM, *NPCOMPOSITIONFORM, *LPCOMPOSITIONFORM; + + +typedef struct tagCANDIDATEFORM { + DWORD dwIndex; + DWORD dwStyle; + POINT ptCurrentPos; + RECT rcArea; +} CANDIDATEFORM, *PCANDIDATEFORM, *NPCANDIDATEFORM, *LPCANDIDATEFORM; +# 75 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\imm.h" +typedef struct tagCANDIDATELIST { + DWORD dwSize; + DWORD dwStyle; + DWORD dwCount; + DWORD dwSelection; + DWORD dwPageStart; + DWORD dwPageSize; + DWORD dwOffset[1]; +} CANDIDATELIST, *PCANDIDATELIST, *NPCANDIDATELIST, *LPCANDIDATELIST; +# 92 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\imm.h" +typedef struct tagREGISTERWORDA { + LPSTR lpReading; + LPSTR lpWord; +} REGISTERWORDA, *PREGISTERWORDA, *NPREGISTERWORDA, *LPREGISTERWORDA; +typedef struct tagREGISTERWORDW { + LPWSTR lpReading; + LPWSTR lpWord; +} REGISTERWORDW, *PREGISTERWORDW, *NPREGISTERWORDW, *LPREGISTERWORDW; + +typedef REGISTERWORDW REGISTERWORD; +typedef PREGISTERWORDW PREGISTERWORD; +typedef NPREGISTERWORDW NPREGISTERWORD; +typedef LPREGISTERWORDW LPREGISTERWORD; +# 120 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\imm.h" +typedef struct tagRECONVERTSTRING { + DWORD dwSize; + DWORD dwVersion; + DWORD dwStrLen; + DWORD dwStrOffset; + DWORD dwCompStrLen; + DWORD dwCompStrOffset; + DWORD dwTargetStrLen; + DWORD dwTargetStrOffset; +} RECONVERTSTRING, *PRECONVERTSTRING, *NPRECONVERTSTRING, *LPRECONVERTSTRING; +# 141 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\imm.h" +typedef struct tagSTYLEBUFA { + DWORD dwStyle; + CHAR szDescription[32]; +} STYLEBUFA, *PSTYLEBUFA, *NPSTYLEBUFA, *LPSTYLEBUFA; +typedef struct tagSTYLEBUFW { + DWORD dwStyle; + WCHAR szDescription[32]; +} STYLEBUFW, *PSTYLEBUFW, *NPSTYLEBUFW, *LPSTYLEBUFW; + +typedef STYLEBUFW STYLEBUF; +typedef PSTYLEBUFW PSTYLEBUF; +typedef NPSTYLEBUFW NPSTYLEBUF; +typedef LPSTYLEBUFW LPSTYLEBUF; +# 171 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\imm.h" +typedef struct tagIMEMENUITEMINFOA { + UINT cbSize; + UINT fType; + UINT fState; + UINT wID; + HBITMAP hbmpChecked; + HBITMAP hbmpUnchecked; + DWORD dwItemData; + CHAR szString[80]; + HBITMAP hbmpItem; +} IMEMENUITEMINFOA, *PIMEMENUITEMINFOA, *NPIMEMENUITEMINFOA, *LPIMEMENUITEMINFOA; +typedef struct tagIMEMENUITEMINFOW { + UINT cbSize; + UINT fType; + UINT fState; + UINT wID; + HBITMAP hbmpChecked; + HBITMAP hbmpUnchecked; + DWORD dwItemData; + WCHAR szString[80]; + HBITMAP hbmpItem; +} IMEMENUITEMINFOW, *PIMEMENUITEMINFOW, *NPIMEMENUITEMINFOW, *LPIMEMENUITEMINFOW; + +typedef IMEMENUITEMINFOW IMEMENUITEMINFO; +typedef PIMEMENUITEMINFOW PIMEMENUITEMINFO; +typedef NPIMEMENUITEMINFOW NPIMEMENUITEMINFO; +typedef LPIMEMENUITEMINFOW LPIMEMENUITEMINFO; + + + + + + + +typedef struct tagIMECHARPOSITION { + DWORD dwSize; + DWORD dwCharPos; + POINT pt; + UINT cLineHeight; + RECT rcDocument; +} IMECHARPOSITION, *PIMECHARPOSITION, *NPIMECHARPOSITION, *LPIMECHARPOSITION; + +typedef BOOL (__stdcall* IMCENUMPROC)(HIMC, LPARAM); +# 227 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\imm.h" +HKL __stdcall ImmInstallIMEA( LPCSTR lpszIMEFileName, LPCSTR lpszLayoutText); +HKL __stdcall ImmInstallIMEW( LPCWSTR lpszIMEFileName, LPCWSTR lpszLayoutText); + + + + + + +HWND __stdcall ImmGetDefaultIMEWnd( HWND); + +UINT __stdcall ImmGetDescriptionA( HKL, LPSTR lpszDescription, UINT uBufLen); +UINT __stdcall ImmGetDescriptionW( HKL, LPWSTR lpszDescription, UINT uBufLen); + + + + + + +UINT __stdcall ImmGetIMEFileNameA( HKL, LPSTR lpszFileName, UINT uBufLen); +UINT __stdcall ImmGetIMEFileNameW( HKL, LPWSTR lpszFileName, UINT uBufLen); + + + + + + +DWORD __stdcall ImmGetProperty( HKL, DWORD); + +BOOL __stdcall ImmIsIME( HKL); + +BOOL __stdcall ImmSimulateHotKey( HWND, DWORD); + +HIMC __stdcall ImmCreateContext(void); +BOOL __stdcall ImmDestroyContext( HIMC); +HIMC __stdcall ImmGetContext( HWND); +BOOL __stdcall ImmReleaseContext( HWND, HIMC); +HIMC __stdcall ImmAssociateContext( HWND, HIMC); + +BOOL __stdcall ImmAssociateContextEx( HWND, HIMC, DWORD); + + +LONG __stdcall ImmGetCompositionStringA( HIMC, DWORD, LPVOID lpBuf, DWORD dwBufLen); +LONG __stdcall ImmGetCompositionStringW( HIMC, DWORD, LPVOID lpBuf, DWORD dwBufLen); + + + + + + +BOOL __stdcall ImmSetCompositionStringA( HIMC, DWORD dwIndex, LPVOID lpComp, DWORD dwCompLen, LPVOID lpRead, DWORD dwReadLen); +BOOL __stdcall ImmSetCompositionStringW( HIMC, DWORD dwIndex, LPVOID lpComp, DWORD dwCompLen, LPVOID lpRead, DWORD dwReadLen); + + + + + + +DWORD __stdcall ImmGetCandidateListCountA( HIMC, LPDWORD lpdwListCount); +DWORD __stdcall ImmGetCandidateListCountW( HIMC, LPDWORD lpdwListCount); + + + + + + +DWORD __stdcall ImmGetCandidateListA( HIMC, DWORD deIndex, LPCANDIDATELIST lpCandList, DWORD dwBufLen); +DWORD __stdcall ImmGetCandidateListW( HIMC, DWORD deIndex, LPCANDIDATELIST lpCandList, DWORD dwBufLen); + + + + + + +DWORD __stdcall ImmGetGuideLineA( HIMC, DWORD dwIndex, LPSTR lpBuf, DWORD dwBufLen); +DWORD __stdcall ImmGetGuideLineW( HIMC, DWORD dwIndex, LPWSTR lpBuf, DWORD dwBufLen); + + + + + + +BOOL __stdcall ImmGetConversionStatus( HIMC, LPDWORD lpfdwConversion, LPDWORD lpfdwSentence); +BOOL __stdcall ImmSetConversionStatus( HIMC, DWORD, DWORD); +BOOL __stdcall ImmGetOpenStatus( HIMC); +BOOL __stdcall ImmSetOpenStatus( HIMC, BOOL); + + +BOOL __stdcall ImmGetCompositionFontA( HIMC, LPLOGFONTA lplf); +BOOL __stdcall ImmGetCompositionFontW( HIMC, LPLOGFONTW lplf); + + + + + + +BOOL __stdcall ImmSetCompositionFontA( HIMC, LPLOGFONTA lplf); +BOOL __stdcall ImmSetCompositionFontW( HIMC, LPLOGFONTW lplf); + + + + + + + +BOOL __stdcall ImmConfigureIMEA( HKL, HWND, DWORD, LPVOID); +BOOL __stdcall ImmConfigureIMEW( HKL, HWND, DWORD, LPVOID); + + + + + + +LRESULT __stdcall ImmEscapeA( HKL, HIMC, UINT, LPVOID); +LRESULT __stdcall ImmEscapeW( HKL, HIMC, UINT, LPVOID); + + + + + + +DWORD __stdcall ImmGetConversionListA( HKL, HIMC, LPCSTR lpSrc, LPCANDIDATELIST lpDst, DWORD dwBufLen, UINT uFlag); +DWORD __stdcall ImmGetConversionListW( HKL, HIMC, LPCWSTR lpSrc, LPCANDIDATELIST lpDst, DWORD dwBufLen, UINT uFlag); + + + + + + +BOOL __stdcall ImmNotifyIME( HIMC, DWORD dwAction, DWORD dwIndex, DWORD dwValue); + +BOOL __stdcall ImmGetStatusWindowPos( HIMC, LPPOINT lpptPos); +BOOL __stdcall ImmSetStatusWindowPos( HIMC, LPPOINT lpptPos); +BOOL __stdcall ImmGetCompositionWindow( HIMC, LPCOMPOSITIONFORM lpCompForm); +BOOL __stdcall ImmSetCompositionWindow( HIMC, LPCOMPOSITIONFORM lpCompForm); +BOOL __stdcall ImmGetCandidateWindow( HIMC, DWORD, LPCANDIDATEFORM lpCandidate); +BOOL __stdcall ImmSetCandidateWindow( HIMC, LPCANDIDATEFORM lpCandidate); + +BOOL __stdcall ImmIsUIMessageA( HWND, UINT, WPARAM, LPARAM); +BOOL __stdcall ImmIsUIMessageW( HWND, UINT, WPARAM, LPARAM); + + + + + + +UINT __stdcall ImmGetVirtualKey( HWND); + +typedef int (__stdcall *REGISTERWORDENUMPROCA)( LPCSTR lpszReading, DWORD, LPCSTR lpszString, LPVOID); +typedef int (__stdcall *REGISTERWORDENUMPROCW)( LPCWSTR lpszReading, DWORD, LPCWSTR lpszString, LPVOID); + + + + + + +BOOL __stdcall ImmRegisterWordA( HKL, LPCSTR lpszReading, DWORD, LPCSTR lpszRegister); +BOOL __stdcall ImmRegisterWordW( HKL, LPCWSTR lpszReading, DWORD, LPCWSTR lpszRegister); + + + + + + +BOOL __stdcall ImmUnregisterWordA( HKL, LPCSTR lpszReading, DWORD, LPCSTR lpszUnregister); +BOOL __stdcall ImmUnregisterWordW( HKL, LPCWSTR lpszReading, DWORD, LPCWSTR lpszUnregister); + + + + + + +UINT __stdcall ImmGetRegisterWordStyleA( HKL, UINT nItem, LPSTYLEBUFA lpStyleBuf); +UINT __stdcall ImmGetRegisterWordStyleW( HKL, UINT nItem, LPSTYLEBUFW lpStyleBuf); + + + + + + +UINT __stdcall ImmEnumRegisterWordA( HKL, REGISTERWORDENUMPROCA, LPCSTR lpszReading, DWORD, LPCSTR lpszRegister, LPVOID); +UINT __stdcall ImmEnumRegisterWordW( HKL, REGISTERWORDENUMPROCW, LPCWSTR lpszReading, DWORD, LPCWSTR lpszRegister, LPVOID); + + + + + + + +BOOL __stdcall ImmDisableIME( DWORD); +BOOL __stdcall ImmEnumInputContext(DWORD idThread, IMCENUMPROC lpfn, LPARAM lParam); +DWORD __stdcall ImmGetImeMenuItemsA( HIMC, DWORD, DWORD, LPIMEMENUITEMINFOA lpImeParentMenu, LPIMEMENUITEMINFOA lpImeMenu, DWORD dwSize); +DWORD __stdcall ImmGetImeMenuItemsW( HIMC, DWORD, DWORD, LPIMEMENUITEMINFOW lpImeParentMenu, LPIMEMENUITEMINFOW lpImeMenu, DWORD dwSize); + + + + + + +BOOL __stdcall ImmDisableTextFrameService(DWORD idThread); + + + +BOOL __stdcall ImmDisableLegacyIME(void); +# 635 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\imm.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ime_cmodes.h" 1 +# 635 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\imm.h" 2 +# 773 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\imm.h" +#pragma warning(pop) + + + +} +# 243 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/windows.h" 2 + + + + + + + + +#pragma warning(pop) +# 1 "D:/lengine/LEditor/LEditor.cpp" 2 + +# 1 "D:/lengine/LEditor/LEditor.h" 1 + + +# 1 "D:/lengine/LEditor/resource.h" 1 +# 3 "D:/lengine/LEditor/LEditor.h" 2 +# 2 "D:/lengine/LEditor/LEditor.cpp" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\tchar.h" 1 +# 23 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\tchar.h" +#pragma warning(disable: 4514) +# 43 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\tchar.h" +extern "C" { + + + + + + + + +#pragma deprecated("_ftcscat") +#pragma deprecated("_ftcschr") +#pragma deprecated("_ftcscpy") +#pragma deprecated("_ftcscspn") +#pragma deprecated("_ftcslen") +#pragma deprecated("_ftcsncat") +#pragma deprecated("_ftcsncpy") +#pragma deprecated("_ftcspbrk") +#pragma deprecated("_ftcsrchr") +#pragma deprecated("_ftcsspn") +#pragma deprecated("_ftcsstr") +#pragma deprecated("_ftcstok") +#pragma deprecated("_ftcsdup") +#pragma deprecated("_ftcsnset") +#pragma deprecated("_ftcsrev") +#pragma deprecated("_ftcsset") +#pragma deprecated("_ftcscmp") +#pragma deprecated("_ftcsicmp") +#pragma deprecated("_ftcsnccmp") +#pragma deprecated("_ftcsncmp") +#pragma deprecated("_ftcsncicmp") +#pragma deprecated("_ftcsnicmp") +#pragma deprecated("_ftcscoll") +#pragma deprecated("_ftcsicoll") +#pragma deprecated("_ftcsnccoll") +#pragma deprecated("_ftcsncoll") +#pragma deprecated("_ftcsncicoll") +#pragma deprecated("_ftcsnicoll") +#pragma deprecated("_ftcsclen") +#pragma deprecated("_ftcsnccat") +#pragma deprecated("_ftcsnccpy") +#pragma deprecated("_ftcsncset") +#pragma deprecated("_ftcsdec") +#pragma deprecated("_ftcsinc") +#pragma deprecated("_ftcsnbcnt") +#pragma deprecated("_ftcsnccnt") +#pragma deprecated("_ftcsnextc") +#pragma deprecated("_ftcsninc") +#pragma deprecated("_ftcsspnp") +#pragma deprecated("_ftcslwr") +#pragma deprecated("_ftcsupr") +#pragma deprecated("_ftclen") +#pragma deprecated("_ftccpy") +#pragma deprecated("_ftccmp") +# 155 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\tchar.h" +} + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\wchar.h" 1 +# 15 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\wchar.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wconio.h" 1 +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wconio.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_stdio_config.h" 1 +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_stdio_config.h" +#pragma pack(push, 8) +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_stdio_config.h" + extern "C" { +# 68 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_stdio_config.h" +#pragma detect_mismatch("_CRT_STDIO_ISO_WIDE_SPECIFIERS", "0") +# 84 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_stdio_config.h" + __declspec(noinline) __inline unsigned __int64* __cdecl __local_stdio_printf_options(void) + { + static unsigned __int64 _OptionsStorage; + return &_OptionsStorage; + } + + + + + __declspec(noinline) __inline unsigned __int64* __cdecl __local_stdio_scanf_options(void) + { + static unsigned __int64 _OptionsStorage; + return &_OptionsStorage; + } +# 122 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_stdio_config.h" +} +# 122 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_stdio_config.h" +#pragma pack(pop) +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wconio.h" 2 + + +#pragma pack(push, 8) +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wconio.h" + extern "C" { +# 26 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wconio.h" + errno_t __cdecl _cgetws_s( + wchar_t* _Buffer, + size_t _BufferCount, + size_t* _SizeRead + ); + + extern "C++" { template inline errno_t __cdecl _cgetws_s(wchar_t (&_Buffer)[_Size], size_t* _SizeRead) throw() { return _cgetws_s(_Buffer, _Size, _SizeRead); } } + + + + + + + + int __cdecl _cputws( + wchar_t const* _Buffer + ); + + wint_t __cdecl _getwch (void); + wint_t __cdecl _getwche (void); + wint_t __cdecl _putwch ( wchar_t _Character); + wint_t __cdecl _ungetwch( wint_t _Character); + + wint_t __cdecl _getwch_nolock (void); + wint_t __cdecl _getwche_nolock (void); + wint_t __cdecl _putwch_nolock ( wchar_t _Character); + wint_t __cdecl _ungetwch_nolock( wint_t _Character); +# 62 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wconio.h" + int __cdecl __conio_common_vcwprintf( + unsigned __int64 _Options, + wchar_t const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + int __cdecl __conio_common_vcwprintf_s( + unsigned __int64 _Options, + wchar_t const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + int __cdecl __conio_common_vcwprintf_p( + unsigned __int64 _Options, + wchar_t const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + __inline int __cdecl _vcwprintf_l( + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __conio_common_vcwprintf((*__local_stdio_printf_options()), _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl _vcwprintf( + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vcwprintf_l(_Format, 0, _ArgList); + } + + + + __inline int __cdecl _vcwprintf_s_l( + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __conio_common_vcwprintf_s((*__local_stdio_printf_options()), _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl _vcwprintf_s( + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vcwprintf_s_l(_Format, 0, _ArgList); + } + + + + __inline int __cdecl _vcwprintf_p_l( + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __conio_common_vcwprintf_p((*__local_stdio_printf_options()), _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl _vcwprintf_p( + const wchar_t* const _Format, + va_list _ArgList + ) + + + + { + return _vcwprintf_p_l(_Format, 0, _ArgList); + } + + + + __inline int __cdecl _cwprintf_l( + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vcwprintf_l(_Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _cwprintf( + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vcwprintf_l(_Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _cwprintf_s_l( + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vcwprintf_s_l(_Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _cwprintf_s( + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vcwprintf_s_l(_Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _cwprintf_p_l( + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vcwprintf_p_l(_Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _cwprintf_p( + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vcwprintf_p_l(_Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } +# 279 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wconio.h" + int __cdecl __conio_common_vcwscanf( + unsigned __int64 _Options, + wchar_t const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_vcwscanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _vcwscanf_l( + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __conio_common_vcwscanf( + (*__local_stdio_scanf_options ()), + _Format, _Locale, _ArgList); + } + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_vcwscanf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _vcwscanf( + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { +#pragma warning(push) +#pragma warning(disable: 4996) + return _vcwscanf_l(_Format, 0, _ArgList); +#pragma warning(pop) + } + + + + __inline int __cdecl _vcwscanf_s_l( + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __conio_common_vcwscanf( + (*__local_stdio_scanf_options ()) | (1ULL << 0), + _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl _vcwscanf_s( + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vcwscanf_s_l(_Format, 0, _ArgList); + } + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_cwscanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _cwscanf_l( + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + +#pragma warning(push) +#pragma warning(disable: 4996) + _Result = _vcwscanf_l(_Format, _Locale, _ArgList); +#pragma warning(pop) + + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_cwscanf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _cwscanf( + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + +#pragma warning(push) +#pragma warning(disable: 4996) + _Result = _vcwscanf_l(_Format, 0, _ArgList); +#pragma warning(pop) + + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _cwscanf_s_l( + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vcwscanf_s_l(_Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _cwscanf_s( + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vcwscanf_s_l(_Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + +} +# 431 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wconio.h" +#pragma pack(pop) +# 15 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\wchar.h" 2 + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wdirect.h" 1 +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wdirect.h" +#pragma pack(push, 8) +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wdirect.h" + extern "C" { +# 22 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wdirect.h" + __declspec(allocator) wchar_t* __cdecl _wgetcwd( + wchar_t* _DstBuf, + int _SizeInWords + ); + + + + __declspec(allocator) wchar_t* __cdecl _wgetdcwd( + int _Drive, + wchar_t* _DstBuf, + int _SizeInWords + ); + + + + + + + + int __cdecl _wchdir( + wchar_t const* _Path + ); + + + int __cdecl _wmkdir( + wchar_t const* _Path + ); + + + int __cdecl _wrmdir( + wchar_t const* _Path + ); + + + +} +# 57 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wdirect.h" +#pragma pack(pop) +# 17 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\wchar.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wio.h" 1 +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wio.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_share.h" 1 +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wio.h" 2 + + +#pragma pack(push, 8) +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wio.h" + extern "C" { + + +#pragma warning(push) +#pragma warning(disable: 4820) +# 34 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wio.h" +typedef unsigned long _fsize_t; + +struct _wfinddata32_t +{ + unsigned attrib; + __time32_t time_create; + __time32_t time_access; + __time32_t time_write; + _fsize_t size; + wchar_t name[260]; +}; + +struct _wfinddata32i64_t +{ + unsigned attrib; + __time32_t time_create; + __time32_t time_access; + __time32_t time_write; + __int64 size; + wchar_t name[260]; +}; + +struct _wfinddata64i32_t +{ + unsigned attrib; + __time64_t time_create; + __time64_t time_access; + __time64_t time_write; + _fsize_t size; + wchar_t name[260]; +}; + +struct _wfinddata64_t +{ + unsigned attrib; + __time64_t time_create; + __time64_t time_access; + __time64_t time_write; + __int64 size; + wchar_t name[260]; +}; +# 96 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wio.h" + int __cdecl _waccess( + wchar_t const* _FileName, + int _AccessMode + ); + + + errno_t __cdecl _waccess_s( + wchar_t const* _FileName, + int _AccessMode + ); + + + int __cdecl _wchmod( + wchar_t const* _FileName, + int _Mode + ); + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_wsopen_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + int __cdecl _wcreat( + wchar_t const* _FileName, + int _PermissionMode + ); + + + + intptr_t __cdecl _wfindfirst32( + wchar_t const* _FileName, + struct _wfinddata32_t* _FindData + ); + + + + int __cdecl _wfindnext32( + intptr_t _FindHandle, + struct _wfinddata32_t* _FindData + ); + + int __cdecl _wunlink( + wchar_t const* _FileName + ); + + + int __cdecl _wrename( + wchar_t const* _OldFileName, + wchar_t const* _NewFileName + ); + + errno_t __cdecl _wmktemp_s( + wchar_t* _TemplateName, + size_t _SizeInWords + ); + +extern "C++" { template inline errno_t __cdecl _wmktemp_s(wchar_t (&_TemplateName)[_Size]) throw() { return _wmktemp_s(_TemplateName, _Size); } } + + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wmktemp_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl _wmktemp( wchar_t *_TemplateName); + + + + + + + intptr_t __cdecl _wfindfirst32i64( + wchar_t const* _FileName, + struct _wfinddata32i64_t* _FindData + ); + + + + intptr_t __cdecl _wfindfirst64i32( + wchar_t const* _FileName, + struct _wfinddata64i32_t* _FindData + ); + + + + intptr_t __cdecl _wfindfirst64( + wchar_t const* _FileName, + struct _wfinddata64_t* _FindData + ); + + + + int __cdecl _wfindnext32i64( + intptr_t _FindHandle, + struct _wfinddata32i64_t* _FindData + ); + + + + int __cdecl _wfindnext64i32( + intptr_t _FindHandle, + struct _wfinddata64i32_t* _FindData + ); + + + + int __cdecl _wfindnext64( + intptr_t _FindHandle, + struct _wfinddata64_t* _FindData + ); + + + errno_t __cdecl _wsopen_s( + int* _FileHandle, + wchar_t const* _FileName, + int _OpenFlag, + int _ShareFlag, + int _PermissionFlag + ); + + errno_t __cdecl _wsopen_dispatch( + wchar_t const* _FileName, + int _OFlag, + int _ShFlag, + int _PMode, + int* _PFileHandle, + int _BSecure + ); + + + + + + + extern "C++" __declspec(deprecated("This function or variable may be unsafe. Consider using " "_wsopen_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + inline int __cdecl _wopen( + wchar_t const* _FileName, + int _OFlag, + int _PMode = 0 + ) + { + int _FileHandle; + + errno_t const _Result = _wsopen_dispatch(_FileName, _OFlag, 0x40, _PMode, &_FileHandle, 0); + return _Result ? -1 : _FileHandle; + } + + extern "C++" __declspec(deprecated("This function or variable may be unsafe. Consider using " "_wsopen_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + inline int __cdecl _wsopen( + wchar_t const* _FileName, + int _OFlag, + int _ShFlag, + int _PMode = 0 + ) + { + int _FileHandle; + + errno_t const _Result = _wsopen_dispatch(_FileName, _OFlag, _ShFlag, _PMode, &_FileHandle, 0); + return _Result ? -1 : _FileHandle; + } +# 270 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wio.h" +#pragma warning(pop) + + +} +# 273 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wio.h" +#pragma pack(pop) +# 18 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\wchar.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wprocess.h" 1 +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wprocess.h" +#pragma pack(push, 8) +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wprocess.h" + extern "C" { + + + + + + + intptr_t __cdecl _wexecl( + wchar_t const* _FileName, + wchar_t const* _ArgList, + ...); + + intptr_t __cdecl _wexecle( + wchar_t const* _FileName, + wchar_t const* _ArgList, + ...); + + intptr_t __cdecl _wexeclp( + wchar_t const* _FileName, + wchar_t const* _ArgList, + ...); + + intptr_t __cdecl _wexeclpe( + wchar_t const* _FileName, + wchar_t const* _ArgList, + ...); + + intptr_t __cdecl _wexecv( + wchar_t const* _FileName, + wchar_t const* const* _ArgList + ); + + intptr_t __cdecl _wexecve( + wchar_t const* _FileName, + wchar_t const* const* _ArgList, + wchar_t const* const* _Env + ); + + intptr_t __cdecl _wexecvp( + wchar_t const* _FileName, + wchar_t const* const* _ArgList + ); + + intptr_t __cdecl _wexecvpe( + wchar_t const* _FileName, + wchar_t const* const* _ArgList, + wchar_t const* const* _Env + ); + + intptr_t __cdecl _wspawnl( + int _Mode, + wchar_t const* _FileName, + wchar_t const* _ArgList, + ...); + + intptr_t __cdecl _wspawnle( + int _Mode, + wchar_t const* _FileName, + wchar_t const* _ArgList, + ...); + + intptr_t __cdecl _wspawnlp( + int _Mode, + wchar_t const* _FileName, + wchar_t const* _ArgList, + ...); + + intptr_t __cdecl _wspawnlpe( + int _Mode, + wchar_t const* _FileName, + wchar_t const* _ArgList, + ...); + + intptr_t __cdecl _wspawnv( + int _Mode, + wchar_t const* _FileName, + wchar_t const* const* _ArgList + ); + + intptr_t __cdecl _wspawnve( + int _Mode, + wchar_t const* _FileName, + wchar_t const* const* _ArgList, + wchar_t const* const* _Env + ); + + intptr_t __cdecl _wspawnvp( + int _Mode, + wchar_t const* _FileName, + wchar_t const* const* _ArgList + ); + + intptr_t __cdecl _wspawnvpe( + int _Mode, + wchar_t const* _FileName, + wchar_t const* const* _ArgList, + wchar_t const* const* _Env + ); + + int __cdecl _wsystem( + wchar_t const* _Command + ); + + + + + + +} +# 121 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wprocess.h" +#pragma pack(pop) +# 19 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\wchar.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" 1 +# 15 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" +#pragma pack(push, 8) +# 15 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" + extern "C" { +# 25 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" + typedef struct _iobuf + { + void* _Placeholder; + } FILE; + + + FILE* __cdecl __acrt_iob_func(unsigned); +# 48 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" + wint_t __cdecl fgetwc( + FILE* _Stream + ); + + + wint_t __cdecl _fgetwchar(void); + + + wint_t __cdecl fputwc( + wchar_t _Character, + FILE* _Stream); + + + wint_t __cdecl _fputwchar( + wchar_t _Character + ); + + + wint_t __cdecl getwc( + FILE* _Stream + ); + + + wint_t __cdecl getwchar(void); + + + + + wchar_t* __cdecl fgetws( + wchar_t* _Buffer, + int _BufferCount, + FILE* _Stream + ); + + + int __cdecl fputws( + wchar_t const* _Buffer, + FILE* _Stream + ); + + + + wchar_t* __cdecl _getws_s( + wchar_t* _Buffer, + size_t _BufferCount + ); + + extern "C++" { template inline wchar_t* __cdecl _getws_s(wchar_t (&_Buffer)[_Size]) throw() { return _getws_s(_Buffer, _Size); } } + + + + + + + wint_t __cdecl putwc( + wchar_t _Character, + FILE* _Stream + ); + + + wint_t __cdecl putwchar( + wchar_t _Character + ); + + + int __cdecl _putws( + wchar_t const* _Buffer + ); + + + wint_t __cdecl ungetwc( + wint_t _Character, + FILE* _Stream + ); + + + FILE * __cdecl _wfdopen( + int _FileHandle, + wchar_t const* _Mode + ); + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_wfopen_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + FILE* __cdecl _wfopen( + wchar_t const* _FileName, + wchar_t const* _Mode + ); + + + errno_t __cdecl _wfopen_s( + FILE** _Stream, + wchar_t const* _FileName, + wchar_t const* _Mode + ); + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_wfreopen_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + FILE* __cdecl _wfreopen( + wchar_t const* _FileName, + wchar_t const* _Mode, + FILE* _OldStream + ); + + + errno_t __cdecl _wfreopen_s( + FILE** _Stream, + wchar_t const* _FileName, + wchar_t const* _Mode, + FILE* _OldStream + ); + + + FILE* __cdecl _wfsopen( + wchar_t const* _FileName, + wchar_t const* _Mode, + int _ShFlag + ); + + void __cdecl _wperror( + wchar_t const* _ErrorMessage + ); + + + + + FILE* __cdecl _wpopen( + wchar_t const* _Command, + wchar_t const* _Mode + ); + + + + int __cdecl _wremove( + wchar_t const* _FileName + ); + + + + + + __declspec(allocator) wchar_t* __cdecl _wtempnam( + wchar_t const* _Directory, + wchar_t const* _FilePrefix + ); + + + + + + errno_t __cdecl _wtmpnam_s( + wchar_t* _Buffer, + size_t _BufferCount + ); + + extern "C++" { template inline errno_t __cdecl _wtmpnam_s(wchar_t (&_Buffer)[_Size]) throw() { return _wtmpnam_s(_Buffer, _Size); } } + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_wtmpnam_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl _wtmpnam( wchar_t *_Buffer); +# 221 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" + wint_t __cdecl _fgetwc_nolock( + FILE* _Stream + ); + + + wint_t __cdecl _fputwc_nolock( + wchar_t _Character, + FILE* _Stream + ); + + + wint_t __cdecl _getwc_nolock( + FILE* _Stream + ); + + + wint_t __cdecl _putwc_nolock( + wchar_t _Character, + FILE* _Stream + ); + + + wint_t __cdecl _ungetwc_nolock( + wint_t _Character, + FILE* _Stream + ); +# 269 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" + int __cdecl __stdio_common_vfwprintf( + unsigned __int64 _Options, + FILE* _Stream, + wchar_t const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + int __cdecl __stdio_common_vfwprintf_s( + unsigned __int64 _Options, + FILE* _Stream, + wchar_t const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + int __cdecl __stdio_common_vfwprintf_p( + unsigned __int64 _Options, + FILE* _Stream, + wchar_t const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + __inline int __cdecl _vfwprintf_l( + FILE* const _Stream, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __stdio_common_vfwprintf((*__local_stdio_printf_options()), _Stream, _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl vfwprintf( + FILE* const _Stream, + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vfwprintf_l(_Stream, _Format, 0, _ArgList); + } + + + + __inline int __cdecl _vfwprintf_s_l( + FILE* const _Stream, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __stdio_common_vfwprintf_s((*__local_stdio_printf_options()), _Stream, _Format, _Locale, _ArgList); + } + + + + + + __inline int __cdecl vfwprintf_s( + FILE* const _Stream, + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vfwprintf_s_l(_Stream, _Format, 0, _ArgList); + } + + + + + + __inline int __cdecl _vfwprintf_p_l( + FILE* const _Stream, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __stdio_common_vfwprintf_p((*__local_stdio_printf_options()), _Stream, _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl _vfwprintf_p( + FILE* const _Stream, + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vfwprintf_p_l(_Stream, _Format, 0, _ArgList); + } + + + + __inline int __cdecl _vwprintf_l( + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return _vfwprintf_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl vwprintf( + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vfwprintf_l((__acrt_iob_func(1)), _Format, 0, _ArgList); + } + + + + __inline int __cdecl _vwprintf_s_l( + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return _vfwprintf_s_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList); + } + + + + + + __inline int __cdecl vwprintf_s( + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vfwprintf_s_l((__acrt_iob_func(1)), _Format, 0, _ArgList); + } + + + + + + __inline int __cdecl _vwprintf_p_l( + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return _vfwprintf_p_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl _vwprintf_p( + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vfwprintf_p_l((__acrt_iob_func(1)), _Format, 0, _ArgList); + } + + + + __inline int __cdecl _fwprintf_l( + FILE* const _Stream, + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwprintf_l(_Stream, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl fwprintf( + FILE* const _Stream, + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwprintf_l(_Stream, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _fwprintf_s_l( + FILE* const _Stream, + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwprintf_s_l(_Stream, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + __inline int __cdecl fwprintf_s( + FILE* const _Stream, + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwprintf_s_l(_Stream, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + __inline int __cdecl _fwprintf_p_l( + FILE* const _Stream, + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwprintf_p_l(_Stream, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _fwprintf_p( + FILE* const _Stream, + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwprintf_p_l(_Stream, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _wprintf_l( + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwprintf_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl wprintf( + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwprintf_l((__acrt_iob_func(1)), _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _wprintf_s_l( + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwprintf_s_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + __inline int __cdecl wprintf_s( + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwprintf_s_l((__acrt_iob_func(1)), _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + __inline int __cdecl _wprintf_p_l( + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwprintf_p_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _wprintf_p( + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwprintf_p_l((__acrt_iob_func(1)), _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } +# 702 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" + int __cdecl __stdio_common_vfwscanf( + unsigned __int64 _Options, + FILE* _Stream, + wchar_t const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + __inline int __cdecl _vfwscanf_l( + FILE* const _Stream, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __stdio_common_vfwscanf( + (*__local_stdio_scanf_options ()), + _Stream, _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl vfwscanf( + FILE* const _Stream, + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vfwscanf_l(_Stream, _Format, 0, _ArgList); + } + + + + __inline int __cdecl _vfwscanf_s_l( + FILE* const _Stream, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __stdio_common_vfwscanf( + (*__local_stdio_scanf_options ()) | (1ULL << 0), + _Stream, _Format, _Locale, _ArgList); + } + + + + + + __inline int __cdecl vfwscanf_s( + FILE* const _Stream, + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vfwscanf_s_l(_Stream, _Format, 0, _ArgList); + } + + + + + __inline int __cdecl _vwscanf_l( + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return _vfwscanf_l((__acrt_iob_func(0)), _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl vwscanf( + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vfwscanf_l((__acrt_iob_func(0)), _Format, 0, _ArgList); + } + + + + __inline int __cdecl _vwscanf_s_l( + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return _vfwscanf_s_l((__acrt_iob_func(0)), _Format, _Locale, _ArgList); + } + + + + + + __inline int __cdecl vwscanf_s( + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vfwscanf_s_l((__acrt_iob_func(0)), _Format, 0, _ArgList); + } + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_fwscanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _fwscanf_l( + FILE* const _Stream, + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwscanf_l(_Stream, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "fwscanf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl fwscanf( + FILE* const _Stream, + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwscanf_l(_Stream, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _fwscanf_s_l( + FILE* const _Stream, + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwscanf_s_l(_Stream, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + __inline int __cdecl fwscanf_s( + FILE* const _Stream, + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwscanf_s_l(_Stream, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_wscanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _wscanf_l( + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwscanf_l((__acrt_iob_func(0)), _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "wscanf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl wscanf( + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwscanf_l((__acrt_iob_func(0)), _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _wscanf_s_l( + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwscanf_s_l((__acrt_iob_func(0)), _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + __inline int __cdecl wscanf_s( + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfwscanf_s_l((__acrt_iob_func(0)), _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } +# 1003 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" + int __cdecl __stdio_common_vswprintf( + unsigned __int64 _Options, + wchar_t* _Buffer, + size_t _BufferCount, + wchar_t const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + + int __cdecl __stdio_common_vswprintf_s( + unsigned __int64 _Options, + wchar_t* _Buffer, + size_t _BufferCount, + wchar_t const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + + int __cdecl __stdio_common_vsnwprintf_s( + unsigned __int64 _Options, + wchar_t* _Buffer, + size_t _BufferCount, + size_t _MaxCount, + wchar_t const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + + int __cdecl __stdio_common_vswprintf_p( + unsigned __int64 _Options, + wchar_t* _Buffer, + size_t _BufferCount, + wchar_t const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_vsnwprintf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _vsnwprintf_l( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + int const _Result = __stdio_common_vswprintf( + (*__local_stdio_printf_options()) | (1ULL << 0), + _Buffer, _BufferCount, _Format, _Locale, _ArgList); + + return _Result < 0 ? -1 : _Result; + } + + +#pragma warning(push) +#pragma warning(disable: 4793) + + + + __inline int __cdecl _vsnwprintf_s_l( + wchar_t* const _Buffer, + size_t const _BufferCount, + size_t const _MaxCount, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + int const _Result = __stdio_common_vsnwprintf_s( + (*__local_stdio_printf_options()), + _Buffer, _BufferCount, _MaxCount, _Format, _Locale, _ArgList); + + return _Result < 0 ? -1 : _Result; + } + + + + + __inline int __cdecl _vsnwprintf_s( + wchar_t* const _Buffer, + size_t const _BufferCount, + size_t const _MaxCount, + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vsnwprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, 0, _ArgList); + } + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_snwprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _snwprintf( wchar_t *_Buffer, size_t _BufferCount, wchar_t const* _Format, ...); __declspec(deprecated("This function or variable may be unsafe. Consider using " "_vsnwprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _vsnwprintf( wchar_t *_Buffer, size_t _BufferCount, wchar_t const* _Format, va_list _Args); + + + + + + + + +#pragma warning(pop) + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_vsnwprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _vsnwprintf( + wchar_t* _Buffer, + size_t _BufferCount, + wchar_t const* _Format, + va_list _ArgList + ) + + + + { +#pragma warning(push) +#pragma warning(disable: 4996) + return _vsnwprintf_l(_Buffer, _BufferCount, _Format, 0, _ArgList); +#pragma warning(pop) + } + + + extern "C++" { template inline int __cdecl _vsnwprintf_s(wchar_t (&_Buffer)[_Size], size_t _BufferCount, wchar_t const* _Format, va_list _ArgList) throw() { return _vsnwprintf_s(_Buffer, _Size, _BufferCount, _Format, _ArgList); } } +# 1150 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" + __inline int __cdecl _vswprintf_c_l( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + int const _Result = __stdio_common_vswprintf( + (*__local_stdio_printf_options()), + _Buffer, _BufferCount, _Format, _Locale, _ArgList); + + return _Result < 0 ? -1 : _Result; + } + + + + + __inline int __cdecl _vswprintf_c( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vswprintf_c_l(_Buffer, _BufferCount, _Format, 0, _ArgList); + } + + + + + __inline int __cdecl _vswprintf_l( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { +#pragma warning(push) +#pragma warning(disable: 4996) + return _vswprintf_c_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); +#pragma warning(pop) + } + + + + + __inline int __cdecl __vswprintf_l( + wchar_t* const _Buffer, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return _vswprintf_l(_Buffer, (size_t)-1, _Format, _Locale, _ArgList); + } + + + + + __inline int __cdecl _vswprintf( + wchar_t* const _Buffer, + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vswprintf_l(_Buffer, (size_t)-1, _Format, 0, _ArgList); + } + + + + + __inline int __cdecl vswprintf( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vswprintf_c_l(_Buffer, _BufferCount, _Format, 0, _ArgList); + } + + + + + __inline int __cdecl _vswprintf_s_l( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + int const _Result = __stdio_common_vswprintf_s( + (*__local_stdio_printf_options()), + _Buffer, _BufferCount, _Format, _Locale, _ArgList); + + return _Result < 0 ? -1 : _Result; + } + + + + + + __inline int __cdecl vswprintf_s( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vswprintf_s_l(_Buffer, _BufferCount, _Format, 0, _ArgList); + } + + + + + extern "C++" { template inline int __cdecl vswprintf_s(wchar_t (&_Buffer)[_Size], wchar_t const* _Format, va_list _ArgList) throw() { return vswprintf_s(_Buffer, _Size, _Format, _ArgList); } } +# 1302 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" + __inline int __cdecl _vswprintf_p_l( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + int const _Result = __stdio_common_vswprintf_p( + (*__local_stdio_printf_options()), + _Buffer, _BufferCount, _Format, _Locale, _ArgList); + + return _Result < 0 ? -1 : _Result; + } + + + + + __inline int __cdecl _vswprintf_p( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vswprintf_p_l(_Buffer, _BufferCount, _Format, 0, _ArgList); + } + + + + + __inline int __cdecl _vscwprintf_l( + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + int const _Result = __stdio_common_vswprintf( + (*__local_stdio_printf_options()) | (1ULL << 1), + 0, 0, _Format, _Locale, _ArgList); + + return _Result < 0 ? -1 : _Result; + } + + + + + __inline int __cdecl _vscwprintf( + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vscwprintf_l(_Format, 0, _ArgList); + } + + + + + __inline int __cdecl _vscwprintf_p_l( + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + int const _Result = __stdio_common_vswprintf_p( + (*__local_stdio_printf_options()) | (1ULL << 1), + 0, 0, _Format, _Locale, _ArgList); + + return _Result < 0 ? -1 : _Result; + } + + + + + __inline int __cdecl _vscwprintf_p( + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vscwprintf_p_l(_Format, 0, _ArgList); + } + + + + + __inline int __cdecl __swprintf_l( + wchar_t* const _Buffer, + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = __vswprintf_l(_Buffer, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _swprintf_l( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vswprintf_c_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _swprintf( + wchar_t* const _Buffer, + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = __vswprintf_l(_Buffer, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl swprintf( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vswprintf_c_l(_Buffer, _BufferCount, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + +#pragma warning(push) + + +#pragma warning(disable: 4793 4996) + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "__swprintf_l_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl __swprintf_l( wchar_t *_Buffer, wchar_t const* _Format, _locale_t _Locale, ...); __declspec(deprecated("This function or variable may be unsafe. Consider using " "_vswprintf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl __vswprintf_l( wchar_t *_Buffer, wchar_t const* _Format, _locale_t _Locale, va_list _Args); +# 1497 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_swprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _swprintf( wchar_t *_Buffer, wchar_t const* _Format, ...); __declspec(deprecated("This function or variable may be unsafe. Consider using " "vswprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline int __cdecl _vswprintf( wchar_t *_Buffer, wchar_t const* _Format, va_list _Args); + + + + + + +#pragma warning(pop) + + + + __inline int __cdecl _swprintf_s_l( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vswprintf_s_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + __inline int __cdecl swprintf_s( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vswprintf_s_l(_Buffer, _BufferCount, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + extern "C++" { +# 1550 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" +#pragma warning(push) +# 1550 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" +; +# 1550 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" +#pragma warning(disable: 4793) +# 1550 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" +; template inline int __cdecl swprintf_s(wchar_t (&_Buffer)[_Size], wchar_t const* _Format, ...) throw() { va_list _ArgList; ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); return vswprintf_s(_Buffer, _Size, _Format, _ArgList); } +# 1550 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" +#pragma warning(pop) +# 1550 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" +; } +# 1559 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" + __inline int __cdecl _swprintf_p_l( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vswprintf_p_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _swprintf_p( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vswprintf_p_l(_Buffer, _BufferCount, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _swprintf_c_l( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vswprintf_c_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _swprintf_c( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vswprintf_c_l(_Buffer, _BufferCount, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_snwprintf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _snwprintf_l( + wchar_t* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + +#pragma warning(push) +#pragma warning(disable: 4996) + _Result = _vsnwprintf_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); +#pragma warning(pop) + + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _snwprintf( + wchar_t* _Buffer, + size_t _BufferCount, + wchar_t const* _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + +#pragma warning(push) +#pragma warning(disable: 4996) + _Result = _vsnwprintf_l(_Buffer, _BufferCount, _Format, 0, _ArgList); +#pragma warning(pop) + + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _snwprintf_s_l( + wchar_t* const _Buffer, + size_t const _BufferCount, + size_t const _MaxCount, + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vsnwprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _snwprintf_s( + wchar_t* const _Buffer, + size_t const _BufferCount, + size_t const _MaxCount, + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vsnwprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + extern "C++" { +# 1733 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" +#pragma warning(push) +# 1733 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" +; +# 1733 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" +#pragma warning(disable: 4793) +# 1733 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" +; template inline int __cdecl _snwprintf_s(wchar_t (&_Buffer)[_Size], size_t _BufferCount, wchar_t const* _Format, ...) throw() { va_list _ArgList; ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); return _vsnwprintf_s(_Buffer, _Size, _BufferCount, _Format, _ArgList); } +# 1733 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" +#pragma warning(pop) +# 1733 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" +; } +# 1742 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" + __inline int __cdecl _scwprintf_l( + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vscwprintf_l(_Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _scwprintf( + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vscwprintf_l(_Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _scwprintf_p_l( + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vscwprintf_p_l(_Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _scwprintf_p( + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vscwprintf_p_l(_Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + +#pragma warning(push) +#pragma warning(disable: 4141 4412 4793 4996 6054) + + + + extern "C++" __declspec(deprecated("function has been changed to conform with the ISO C standard, " "adding an extra character count parameter. To use the traditional " "Microsoft version, set _CRT_NON_CONFORMING_SWPRINTFS.")) __declspec(deprecated("This function or variable may be unsafe. Consider using " "swprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + inline int swprintf( + wchar_t* const _Buffer, + wchar_t const* const _Format, + ...) throw() + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); +#pragma warning(suppress: 28719) + _Result = vswprintf(_Buffer, 2147483647, _Format, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + extern "C++" __declspec(deprecated("function has been changed to conform with the ISO C standard, " "adding an extra character count parameter. To use the traditional " "Microsoft version, set _CRT_NON_CONFORMING_SWPRINTFS.")) __declspec(deprecated("This function or variable may be unsafe. Consider using " "vswprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + inline int __cdecl vswprintf( + wchar_t* const _Buffer, + wchar_t const* const _Format, + va_list _ArgList + ) throw() + { +#pragma warning(suppress: 28719) + return vswprintf(_Buffer, 2147483647, _Format, _ArgList); + } + + extern "C++" __declspec(deprecated("function has been changed to conform with the ISO C standard, " "adding an extra character count parameter. To use the traditional " "Microsoft version, set _CRT_NON_CONFORMING_SWPRINTFS.")) __declspec(deprecated("This function or variable may be unsafe. Consider using " "_swprintf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + inline int _swprintf_l( + wchar_t* const _Buffer, + wchar_t const* const _Format, + _locale_t const _Locale, + ...) throw() + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vswprintf_l(_Buffer, (size_t)-1, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + extern "C++" __declspec(deprecated("function has been changed to conform with the ISO C standard, " "adding an extra character count parameter. To use the traditional " "Microsoft version, set _CRT_NON_CONFORMING_SWPRINTFS.")) __declspec(deprecated("This function or variable may be unsafe. Consider using " "_vswprintf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + inline int __cdecl _vswprintf_l( + wchar_t* const _Buffer, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) throw() + { + return _vswprintf_l(_Buffer, (size_t)-1, _Format, _Locale, _ArgList); + } + + + +#pragma warning(pop) +# 1892 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" + int __cdecl __stdio_common_vswscanf( + unsigned __int64 _Options, + wchar_t const* _Buffer, + size_t _BufferCount, + wchar_t const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + + __inline int __cdecl _vswscanf_l( + wchar_t const* const _Buffer, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __stdio_common_vswscanf( + (*__local_stdio_scanf_options ()), + _Buffer, (size_t)-1, _Format, _Locale, _ArgList); + } + + + + + __inline int __cdecl vswscanf( + wchar_t const* _Buffer, + wchar_t const* _Format, + va_list _ArgList + ) + + + + { + return _vswscanf_l(_Buffer, _Format, 0, _ArgList); + } + + + + + __inline int __cdecl _vswscanf_s_l( + wchar_t const* const _Buffer, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __stdio_common_vswscanf( + (*__local_stdio_scanf_options ()) | (1ULL << 0), + _Buffer, (size_t)-1, _Format, _Locale, _ArgList); + } + + + + + + + __inline int __cdecl vswscanf_s( + wchar_t const* const _Buffer, + wchar_t const* const _Format, + va_list _ArgList + ) + + + + { + return _vswscanf_s_l(_Buffer, _Format, 0, _ArgList); + } + + + + + extern "C++" { template inline int __cdecl vswscanf_s(wchar_t (&_Buffer)[_Size], wchar_t const* _Format, va_list _Args) throw() { return vswscanf_s(_Buffer, _Size, _Format, _Args); } } +# 1980 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_vsnwscanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _vsnwscanf_l( + wchar_t const* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __stdio_common_vswscanf( + (*__local_stdio_scanf_options ()), + _Buffer, _BufferCount, _Format, _Locale, _ArgList); + } + + + + + __inline int __cdecl _vsnwscanf_s_l( + wchar_t const* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __stdio_common_vswscanf( + (*__local_stdio_scanf_options ()) | (1ULL << 0), + _Buffer, _BufferCount, _Format, _Locale, _ArgList); + } + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_swscanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _swscanf_l( + wchar_t const* const _Buffer, + wchar_t const* const _Format, + _locale_t _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vswscanf_l(_Buffer, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "swscanf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl swscanf( + wchar_t const* const _Buffer, + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vswscanf_l(_Buffer, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _swscanf_s_l( + wchar_t const* const _Buffer, + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vswscanf_s_l(_Buffer, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + + __inline int __cdecl swscanf_s( + wchar_t const* const _Buffer, + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vswscanf_s_l(_Buffer, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_snwscanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _snwscanf_l( + wchar_t const* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + +#pragma warning(push) +#pragma warning(disable: 4996) + _Result = _vsnwscanf_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); +#pragma warning(pop) + + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_snwscanf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _snwscanf( + wchar_t const* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + +#pragma warning(push) +#pragma warning(disable: 4996) + _Result = _vsnwscanf_l(_Buffer, _BufferCount, _Format, 0, _ArgList); +#pragma warning(pop) + + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _snwscanf_s_l( + wchar_t const* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vsnwscanf_s_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _snwscanf_s( + wchar_t const* const _Buffer, + size_t const _BufferCount, + wchar_t const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vsnwscanf_s_l(_Buffer, _BufferCount, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } +# 2198 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" +} +# 2198 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wstdio.h" +#pragma pack(pop) +# 20 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\wchar.h" 2 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wtime.h" 1 +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wtime.h" +#pragma pack(push, 8) +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wtime.h" + extern "C" { +# 22 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wtime.h" +struct tm +{ + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; +}; + + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_wasctime_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + + + wchar_t* __cdecl _wasctime( + struct tm const* _Tm + ); + + + + errno_t __cdecl _wasctime_s( + wchar_t* _Buffer, + size_t _SizeInWords, + struct tm const* _Tm + ); + +extern "C++" { template inline errno_t __cdecl _wasctime_s(wchar_t (&_Buffer)[_Size], struct tm const* _Time) throw() { return _wasctime_s(_Buffer, _Size, _Time); } } +# 65 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wtime.h" + size_t __cdecl wcsftime( + wchar_t* _Buffer, + size_t _SizeInWords, + wchar_t const* _Format, + struct tm const* _Tm + ); + + + + size_t __cdecl _wcsftime_l( + wchar_t* _Buffer, + size_t _SizeInWords, + wchar_t const* _Format, + struct tm const* _Tm, + _locale_t _Locale + ); + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_wctime32_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + wchar_t* __cdecl _wctime32( + __time32_t const* _Time + ); + + + errno_t __cdecl _wctime32_s( + wchar_t* _Buffer, + size_t _SizeInWords, + __time32_t const* _Time + ); + +extern "C++" { template inline errno_t __cdecl _wctime32_s(wchar_t (&_Buffer)[_Size], __time32_t const* _Time) throw() { return _wctime32_s(_Buffer, _Size, _Time); } } + + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_wctime64_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + wchar_t* __cdecl _wctime64( + __time64_t const* _Time + ); + + + errno_t __cdecl _wctime64_s( + wchar_t* _Buffer, + size_t _SizeInWords, + __time64_t const* _Time); + +extern "C++" { template inline errno_t __cdecl _wctime64_s(wchar_t (&_Buffer)[_Size], __time64_t const* _Time) throw() { return _wctime64_s(_Buffer, _Size, _Time); } } + + + + + + + errno_t __cdecl _wstrdate_s( + wchar_t* _Buffer, + size_t _SizeInWords + ); + +extern "C++" { template inline errno_t __cdecl _wstrdate_s(wchar_t (&_Buffer)[_Size]) throw() { return _wstrdate_s(_Buffer, _Size); } } + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wstrdate_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl _wstrdate( wchar_t *_Buffer); + + + + + + errno_t __cdecl _wstrtime_s( + wchar_t* _Buffer, + size_t _SizeInWords + ); + +extern "C++" { template inline errno_t __cdecl _wstrtime_s(wchar_t (&_Buffer)[_Size]) throw() { return _wstrtime_s(_Buffer, _Size); } } + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wstrtime_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) wchar_t* __cdecl _wstrtime( wchar_t *_Buffer); +# 160 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wtime.h" +#pragma warning(push) +#pragma warning(disable: 4996) +# 185 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wtime.h" + static __inline wchar_t * __cdecl _wctime( + time_t const* const _Time) + { + return _wctime64(_Time); + } + + + static __inline errno_t __cdecl _wctime_s( + wchar_t* const _Buffer, + size_t const _SizeInWords, + time_t const* const _Time + ) + { + return _wctime64_s(_Buffer, _SizeInWords, _Time); + } + + + +#pragma warning(pop) + + + + +} +# 208 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_wtime.h" +#pragma pack(pop) +# 23 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\wchar.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\sys/stat.h" 1 +# 11 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\sys/stat.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\sys/types.h" 1 +# 15 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\sys/types.h" + typedef unsigned short _ino_t; + + + typedef _ino_t ino_t; +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\sys/types.h" + typedef unsigned int _dev_t; + + + typedef _dev_t dev_t; +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\sys/types.h" + typedef long _off_t; + + + typedef _off_t off_t; +# 11 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\sys/stat.h" 2 + + +#pragma pack(push, 8) +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\sys/stat.h" + extern "C" { + + +#pragma warning(push) +#pragma warning(disable: 4820) + + + + + + + +struct _stat32 +{ + _dev_t st_dev; + _ino_t st_ino; + unsigned short st_mode; + short st_nlink; + short st_uid; + short st_gid; + _dev_t st_rdev; + _off_t st_size; + __time32_t st_atime; + __time32_t st_mtime; + __time32_t st_ctime; +}; + +struct _stat32i64 +{ + _dev_t st_dev; + _ino_t st_ino; + unsigned short st_mode; + short st_nlink; + short st_uid; + short st_gid; + _dev_t st_rdev; + __int64 st_size; + __time32_t st_atime; + __time32_t st_mtime; + __time32_t st_ctime; +}; + +struct _stat64i32 +{ + _dev_t st_dev; + _ino_t st_ino; + unsigned short st_mode; + short st_nlink; + short st_uid; + short st_gid; + _dev_t st_rdev; + _off_t st_size; + __time64_t st_atime; + __time64_t st_mtime; + __time64_t st_ctime; +}; + +struct _stat64 +{ + _dev_t st_dev; + _ino_t st_ino; + unsigned short st_mode; + short st_nlink; + short st_uid; + short st_gid; + _dev_t st_rdev; + __int64 st_size; + __time64_t st_atime; + __time64_t st_mtime; + __time64_t st_ctime; +}; + + + + + struct stat + { + _dev_t st_dev; + _ino_t st_ino; + unsigned short st_mode; + short st_nlink; + short st_uid; + short st_gid; + _dev_t st_rdev; + _off_t st_size; + time_t st_atime; + time_t st_mtime; + time_t st_ctime; + }; +# 155 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\sys/stat.h" + int __cdecl _fstat32( + int _FileHandle, + struct _stat32* _Stat + ); + + int __cdecl _fstat32i64( + int _FileHandle, + struct _stat32i64* _Stat + ); + + int __cdecl _fstat64i32( + int _FileHandle, + struct _stat64i32* _Stat + ); + + int __cdecl _fstat64( + int _FileHandle, + struct _stat64* _Stat + ); + + int __cdecl _stat32( + char const* _FileName, + struct _stat32* _Stat + ); + + int __cdecl _stat32i64( + char const* _FileName, + struct _stat32i64* _Stat + ); + + int __cdecl _stat64i32( + char const* _FileName, + struct _stat64i32* _Stat + ); + + int __cdecl _stat64( + char const* _FileName, + struct _stat64* _Stat + ); + + int __cdecl _wstat32( + wchar_t const* _FileName, + struct _stat32* _Stat + ); + + int __cdecl _wstat32i64( + wchar_t const* _FileName, + struct _stat32i64* _Stat + ); + + int __cdecl _wstat64i32( + wchar_t const* _FileName, + struct _stat64i32* _Stat + ); + + int __cdecl _wstat64( + wchar_t const* _FileName, + struct _stat64* _Stat + ); +# 234 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\sys/stat.h" + static __inline int __cdecl fstat(int const _FileHandle, struct stat* const _Stat) + { + typedef char __static_assert_t[(sizeof(struct stat) == sizeof(struct _stat64i32)) != 0]; + return _fstat64i32(_FileHandle, (struct _stat64i32*)_Stat); + } + static __inline int __cdecl stat(char const* const _FileName, struct stat* const _Stat) + { + typedef char __static_assert_t[(sizeof(struct stat) == sizeof(struct _stat64i32)) != 0]; + return _stat64i32(_FileName, (struct _stat64i32*)_Stat); + } + + + + + +#pragma warning(pop) + + +} +# 252 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\sys/stat.h" +#pragma pack(pop) +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\wchar.h" 2 + + + + +#pragma pack(push, 8) +# 28 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\wchar.h" + extern "C" { +# 37 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\wchar.h" +typedef wchar_t _Wint_t; + + + + + + + wchar_t* __cdecl _wsetlocale( + int _Category, + wchar_t const* _Locale + ); + + + _locale_t __cdecl _wcreate_locale( + int _Category, + wchar_t const* _Locale + ); + + + + wint_t __cdecl btowc( + int _Ch + ); + + size_t __cdecl mbrlen( + char const* _Ch, + size_t _SizeInBytes, + mbstate_t* _State + ); + + size_t __cdecl mbrtowc( + wchar_t* _DstCh, + char const* _SrcCh, + size_t _SizeInBytes, + mbstate_t* _State + ); + + + errno_t __cdecl mbsrtowcs_s( + size_t* _Retval, + wchar_t* _Dst, + size_t _Size, + char const** _PSrc, + size_t _N, + mbstate_t* _State + ); + + extern "C++" { template inline errno_t __cdecl mbsrtowcs_s(size_t* _Retval, wchar_t (&_Dest)[_Size], char const** _PSource, size_t _Count, mbstate_t* _State) throw() { return mbsrtowcs_s(_Retval, _Dest, _Size, _PSource, _Count, _State); } } +# 94 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\wchar.h" + __declspec(deprecated("This function or variable may be unsafe. Consider using " "mbsrtowcs_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) size_t __cdecl mbsrtowcs( wchar_t *_Dest, char const** _PSrc, size_t _Count, mbstate_t* _State); +# 103 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\wchar.h" + errno_t __cdecl wcrtomb_s( + size_t* _Retval, + char* _Dst, + size_t _SizeInBytes, + wchar_t _Ch, + mbstate_t* _State + ); + + extern "C++" { template inline errno_t __cdecl wcrtomb_s(size_t* _Retval, char (&_Dest)[_Size], wchar_t _Source, mbstate_t* _State) throw() { return wcrtomb_s(_Retval, _Dest, _Size, _Source, _State); } } +# 120 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\wchar.h" + __declspec(deprecated("This function or variable may be unsafe. Consider using " "wcrtomb_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) size_t __cdecl wcrtomb( char *_Dest, wchar_t _Source, mbstate_t* _State); + + + + + + + + errno_t __cdecl wcsrtombs_s( + size_t* _Retval, + char* _Dst, + size_t _SizeInBytes, + wchar_t const** _Src, + size_t _Size, + mbstate_t* _State + ); + + extern "C++" { template inline errno_t __cdecl wcsrtombs_s(size_t* _Retval, char (&_Dest)[_Size], wchar_t const** _PSrc, size_t _Count, mbstate_t* _State) throw() { return wcsrtombs_s(_Retval, _Dest, _Size, _PSrc, _Count, _State); } } +# 147 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\wchar.h" + __declspec(deprecated("This function or variable may be unsafe. Consider using " "wcsrtombs_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) size_t __cdecl wcsrtombs( char *_Dest, wchar_t const** _PSource, size_t _Count, mbstate_t* _State); + + + + + + + + int __cdecl wctob( + wint_t _WCh + ); + + + + + errno_t __cdecl wmemcpy_s( + wchar_t* _S1, + rsize_t _N1, + wchar_t const* _S2, + rsize_t _N + ); + + + errno_t __cdecl wmemmove_s( + wchar_t* _S1, + rsize_t _N1, + wchar_t const* _S2, + rsize_t _N + ); + + + + __inline int __cdecl fwide( + FILE* _F, + int _M + ) + { + (void)_F; + return (_M); + } + + __inline int __cdecl mbsinit( + mbstate_t const* _P + ) + { + return _P == 0 || _P->_Wchar == 0; + } + + __inline wchar_t const* __cdecl wmemchr( + wchar_t const* _S, + wchar_t _C, + size_t _N + ) + { + for (; 0 < _N; ++_S, --_N) + if (*_S == _C) + return (wchar_t const*)_S; + + return 0; + } + + __inline int __cdecl wmemcmp( + wchar_t const* _S1, + wchar_t const* _S2, + size_t _N + ) + { + for (; 0 < _N; ++_S1, ++_S2, --_N) + if (*_S1 != *_S2) + return *_S1 < *_S2 ? -1 : 1; + + return 0; + } + + + + __inline + wchar_t* __cdecl wmemcpy( + wchar_t* _S1, + wchar_t const* _S2, + size_t _N + ) + { +#pragma warning(push) +#pragma warning(disable: 4995 4996 6386) + return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); +#pragma warning(pop) + } + + __inline + wchar_t* __cdecl wmemmove( + wchar_t* _S1, + wchar_t const* _S2, + size_t _N + ) + { +#pragma warning(push) +#pragma warning(disable: 4996 6386) + return (wchar_t*)memmove(_S1, _S2, _N*sizeof(wchar_t)); +#pragma warning(pop) + } + + + + __inline wchar_t* __cdecl wmemset( + wchar_t* _S, + wchar_t _C, + size_t _N + ) + { + wchar_t *_Su = _S; + for (; 0 < _N; ++_Su, --_N) + { + *_Su = _C; + } + return _S; + } + + + + extern "C++" inline wchar_t* __cdecl wmemchr( + wchar_t* _S, + wchar_t _C, + size_t _N + ) + { + wchar_t const* const _SC = _S; + return const_cast(wmemchr(_SC, _C, _N)); + } + + + + + + + +} +# 283 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\wchar.h" +#pragma pack(pop) +# 160 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\tchar.h" 2 + + + +extern "C" { + + + +typedef wchar_t _TCHAR; +typedef wchar_t _TSCHAR; +typedef wchar_t _TUCHAR; +typedef wchar_t _TXCHAR; +typedef wint_t _TINT; +# 640 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\tchar.h" + __inline size_t __cdecl _tclen( const wchar_t *_Cpc) +{ + + (void *)_Cpc; + return 1; +} +__inline void __cdecl _tccpy( wchar_t *_Pc1, const wchar_t *_Cpc2) { *_Pc1 = (wchar_t)*_Cpc2; } +__inline void __cdecl _tccpy_l( wchar_t *_Pc1, const wchar_t *_Cpc2, _locale_t _Locale) +{ + (void)_Locale; +#pragma warning(push) +#pragma warning(disable: 28719) + _tccpy(_Pc1, _Cpc2); +#pragma warning(pop) +} + __inline int __cdecl _tccmp( const wchar_t *_Cpc1, const wchar_t *_Cpc2) { return (int) ((*_Cpc1)-(*_Cpc2)); } +# 720 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\tchar.h" + __inline wchar_t * __cdecl _wcsdec( const wchar_t * _Cpc1, const wchar_t * _Cpc2) { return (wchar_t *)((_Cpc1)>=(_Cpc2) ? 0 : ((_Cpc2)-1)); } + __inline wchar_t * __cdecl _wcsinc( const wchar_t * _Pc) { return (wchar_t *)(_Pc+1); } + __inline unsigned int __cdecl _wcsnextc( const wchar_t * _Cpc) { return (unsigned int)*_Cpc; } + __inline wchar_t * __cdecl _wcsninc( const wchar_t * _Pc, size_t _Sz) { return (wchar_t *)(_Pc+_Sz); } + __inline size_t __cdecl _wcsncnt( const wchar_t * _String, size_t _Cnt) +{ + size_t n = _Cnt; + wchar_t *cp = (wchar_t *)_String; + while (n-- && *cp) + cp++; + return _Cnt - n - 1; +} + __inline wchar_t * __cdecl _wcsspnp +( + const wchar_t * _Cpc1, + const wchar_t * _Cpc2 +) +{ + return _Cpc1==0 ? 0 : ((*(_Cpc1 += wcsspn(_Cpc1,_Cpc2))!='\0') ? (wchar_t*)_Cpc1 : 0); +} + + + __inline errno_t __cdecl _wcsncpy_s_l( wchar_t *_Destination, size_t _Destination_size_chars, const wchar_t *_Source, size_t _Count, _locale_t _Locale) +{ + (void)_Locale; + return wcsncpy_s(_Destination, _Destination_size_chars, _Source, _Count); +} + + +extern "C++" { template inline errno_t __cdecl _wcsncpy_s_l(wchar_t (&_Dest)[_Size], const wchar_t * _Source, size_t _Count, _locale_t _Locale) throw() { return _wcsncpy_s_l(_Dest, _Size, _Source, _Count, _Locale); } } + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcsncpy_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline wchar_t * __cdecl _wcsncpy_l(wchar_t *_Dst, const wchar_t * _Source, size_t _Count, _locale_t _Locale) +{ + (void)_Locale; +#pragma warning(push) +#pragma warning(disable: 4996 6054 28719) + return wcsncpy(_Dst, _Source, _Count); +#pragma warning(pop) +} + + + + + __inline errno_t __cdecl _wcsncat_s_l( wchar_t *_Destination, size_t _Destination_size_chars, const wchar_t *_Source, size_t _Count, _locale_t _Locale) +{ + (void)_Locale; + return wcsncat_s(_Destination, _Destination_size_chars, _Source, _Count); +} + + +extern "C++" { template inline errno_t __cdecl _wcsncat_s_l(wchar_t (&_Dest)[_Size], const wchar_t * _Source, size_t _Count, _locale_t _Locale) throw() { return _wcsncat_s_l(_Dest, _Size, _Source, _Count, _Locale); } } + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcsncat_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline wchar_t * __cdecl _wcsncat_l(wchar_t *_Dst, const wchar_t * _Source, size_t _Count, _locale_t _Locale) +{ + (void)_Locale; +#pragma warning(push) +#pragma warning(disable: 4996 6054 6059 28719) + + return wcsncat(_Dst, _Source, _Count); +#pragma warning(pop) +} + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcstok_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline wchar_t * _wcstok_l( wchar_t * _String, const wchar_t * _Delimiters, _locale_t _Locale) +{ + (void)_Locale; +#pragma warning(push) +#pragma warning(disable: 4996 28727) + + + + return wcstok(_String,_Delimiters,0); + +#pragma warning(pop) +} + + +__inline wchar_t * _wcstok_s_l( wchar_t * _String, const wchar_t * _Delimiters, wchar_t **_Current_position, _locale_t _Locale) +{ + (void)_Locale; + return wcstok_s(_String, _Delimiters, _Current_position); +} + + + __inline errno_t _wcsnset_s_l( wchar_t * _Destination, size_t _Destination_size_chars, wchar_t _Value, size_t _Count, _locale_t _Locale) +{ + (void)_Locale; + return _wcsnset_s(_Destination, _Destination_size_chars, _Value, _Count); +} + +extern "C++" { template inline errno_t __cdecl _wcsnset_s_l(wchar_t (&_Dest)[_Size], wchar_t _Value, size_t _Count, _locale_t _Locale) throw() { return _wcsnset_s_l(_Dest, _Size, _Value, _Count, _Locale); } } + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcsnset_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline wchar_t * __cdecl _wcsnset_l(wchar_t *_Dst, wchar_t _Value, size_t _MaxCount, _locale_t _Locale) +{ + (void)_Locale; +#pragma warning(push) +#pragma warning(disable: 4996) + return _wcsnset(_Dst, _Value, _MaxCount); +#pragma warning(pop) +} + + + + __inline errno_t _wcsset_s_l( wchar_t * _Destination, size_t _Destination_size_chars, wchar_t _Value, _locale_t _Locale) +{ + (void)_Locale; + return _wcsset_s(_Destination, _Destination_size_chars, _Value); +} + +extern "C++" { template inline errno_t __cdecl _wcsset_s_l(wchar_t (&_Dest)[_Size], wchar_t _Value, _locale_t _Locale) throw() { return _wcsset_s_l(_Dest, _Size, _Value, _Locale); } } + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_wcsset_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) __inline wchar_t * __cdecl _wcsset_l(wchar_t *_Dst, wchar_t _Value, _locale_t _Locale) +{ + (void)_Locale; +#pragma warning(push) +#pragma warning(disable: 4996) + return _wcsset(_Dst, _Value); +#pragma warning(pop) +} +# 2420 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\tchar.h" +} +# 3 "D:/lengine/LEditor/LEditor.cpp" 2 + +# 1 "../LEngine\\LEngine.h" 1 + + + +# 1 "../LEngine/Scene.h" 1 + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cstdint" 1 3 + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\yvals.h" 1 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xkeycheck.h" 1 3 +# 7 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\yvals.h" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\crtdefs.h" 1 3 + + + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 1 3 +# 9 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\crtdefs.h" 2 3 +# 8 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\yvals.h" 2 3 + + +#pragma pack(push,8) +# 253 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\yvals.h" 3 +#pragma detect_mismatch("_MSC_VER", "1900") + + + +#pragma detect_mismatch("_ITERATOR_DEBUG_LEVEL", "2") + + + + + + +#pragma detect_mismatch("RuntimeLibrary", "MTd_StaticDebug") +# 412 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\yvals.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\use_ansi.h" 1 3 +# 57 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\use_ansi.h" 3 +#pragma comment(lib, "libcpmt" "d" "") +# 412 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\yvals.h" 2 3 +# 592 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\yvals.h" 3 +typedef long long _Longlong; +typedef unsigned long long _ULonglong; +# 611 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\yvals.h" 3 +namespace std { +enum _Uninitialized + { + _Noinit + }; + + + +#pragma warning(push) +#pragma warning(disable: 4412) +class _Lockit + { +public: +# 644 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\yvals.h" 3 + __thiscall _Lockit(); + explicit __thiscall _Lockit(int); + __thiscall ~_Lockit() noexcept; + + + static void __cdecl _Lockit_ctor(int); + static void __cdecl _Lockit_dtor(int); + +private: + static void __cdecl _Lockit_ctor(_Lockit *); + static void __cdecl _Lockit_ctor(_Lockit *, int); + static void __cdecl _Lockit_dtor(_Lockit *); + +public: + _Lockit(const _Lockit&) = delete; + _Lockit& operator=(const _Lockit&) = delete; + +private: + int _Locktype; +# 677 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\yvals.h" 3 + }; +# 764 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\yvals.h" 3 +class _Init_locks + { +public: +# 780 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\yvals.h" 3 + __thiscall _Init_locks(); + __thiscall ~_Init_locks() noexcept; + + +private: + static void __cdecl _Init_locks_ctor(_Init_locks *); + static void __cdecl _Init_locks_dtor(_Init_locks *); +# 797 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\yvals.h" 3 + }; + +#pragma warning(pop) +} +# 809 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\yvals.h" 3 + void __cdecl _Atexit(void (__cdecl *)(void)); + +typedef unsigned long _Uint32t; + + + + + +#pragma pack(pop) +# 5 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cstdint" 2 3 + + + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdint.h" 1 3 +# 13 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdint.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 1 3 +# 13 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdint.h" 2 3 + + + + +typedef signed char int8_t; +typedef short int16_t; +typedef int int32_t; +typedef long long int64_t; +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +typedef unsigned long long uint64_t; + +typedef signed char int_least8_t; +typedef short int_least16_t; +typedef int int_least32_t; +typedef long long int_least64_t; +typedef unsigned char uint_least8_t; +typedef unsigned short uint_least16_t; +typedef unsigned int uint_least32_t; +typedef unsigned long long uint_least64_t; + +typedef signed char int_fast8_t; +typedef int int_fast16_t; +typedef int int_fast32_t; +typedef long long int_fast64_t; +typedef unsigned char uint_fast8_t; +typedef unsigned int uint_fast16_t; +typedef unsigned int uint_fast32_t; +typedef unsigned long long uint_fast64_t; + +typedef long long intmax_t; +typedef unsigned long long uintmax_t; +# 13 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cstdint" 2 3 + + + + +namespace std { +using :: int8_t; using :: int16_t; +using :: int32_t; using :: int64_t; +using :: uint8_t; using :: uint16_t; +using :: uint32_t; using :: uint64_t; + +using :: int_least8_t; using :: int_least16_t; +using :: int_least32_t; using :: int_least64_t; +using :: uint_least8_t; using :: uint_least16_t; +using :: uint_least32_t; using :: uint_least64_t; + +using :: int_fast8_t; using :: int_fast16_t; +using :: int_fast32_t; using :: int_fast64_t; +using :: uint_fast8_t; using :: uint_fast16_t; +using :: uint_fast32_t; using :: uint_fast64_t; + +using :: intmax_t; using :: intptr_t; +using :: uintmax_t; using :: uintptr_t; + + + namespace tr1 { +using :: int8_t; using :: int16_t; +using :: int32_t; using :: int64_t; +using :: uint8_t; using :: uint16_t; +using :: uint32_t; using :: uint64_t; + +using :: int_least8_t; using :: int_least16_t; +using :: int_least32_t; using :: int_least64_t; +using :: uint_least8_t; using :: uint_least16_t; +using :: uint_least32_t; using :: uint_least64_t; + +using :: int_fast8_t; using :: int_fast16_t; +using :: int_fast32_t; using :: int_fast64_t; +using :: uint_fast8_t; using :: uint_fast16_t; +using :: uint_fast32_t; using :: uint_fast64_t; + +using :: intmax_t; using :: intptr_t; +using :: uintmax_t; using :: uintptr_t; + } + +} +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cstdlib" 1 3 +# 17 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cstdlib" 3 +namespace std { +using :: size_t; using :: div_t; using :: ldiv_t; +using :: abort; using :: abs; using :: atexit; +using :: atof; using :: atoi; using :: atol; +using :: bsearch; using :: calloc; using :: div; +using :: exit; using :: free; +using :: labs; using :: ldiv; using :: malloc; +using :: mblen; using :: mbstowcs; using :: mbtowc; +using :: qsort; using :: rand; using :: realloc; +using :: srand; using :: strtod; using :: strtol; +using :: strtoul; +using :: wcstombs; using :: wctomb; + +using :: lldiv_t; + + +using :: getenv; +using :: system; + + +using :: atoll; using :: llabs; using :: lldiv; +using :: strtof; using :: strtold; +using :: strtoll; using :: strtoull; + +using :: _Exit; using :: at_quick_exit; using :: quick_exit; +} +# 7 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\limits" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ymath.h" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + + + + +extern "C" { +# 33 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ymath.h" 3 +void __cdecl _Feraise(int); + +typedef union + { + unsigned short _Word[8]; + float _Float; + double _Double; + long double _Long_double; + } _Dconst; + + + double __cdecl _Cosh(double, double); + short __cdecl _Dtest(double *); + double __cdecl _Sinh(double, double); + + short __cdecl _Exp(double *, double, short); +extern _Dconst _Denorm, _Hugeval, _Inf, + _Nan, _Snan; + + + float __cdecl _FCosh(float, float); + short __cdecl _FDtest(float *); + float __cdecl _FSinh(float, float); + + short __cdecl _FExp(float *, float, short); +extern _Dconst _FDenorm, _FInf, _FNan, _FSnan; + + + long double __cdecl _LCosh(long double, long double); + short __cdecl _LDtest(long double *); + long double __cdecl _LSinh(long double, long double); + + short __cdecl _LExp(long double *, long double, short); +extern _Dconst _LDenorm, _LInf, _LNan, _LSnan; + + + +} + + + + +#pragma warning(pop) +#pragma pack(pop) +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\limits" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cfloat" 1 3 + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\float.h" 1 3 +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\float.h" 3 +#pragma pack(push, 8) +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\float.h" 3 + extern "C" { +# 226 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\float.h" 3 + unsigned int __cdecl _clearfp(void); + +#pragma warning(push) +#pragma warning(disable: 4141) + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_controlfp_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + unsigned int __cdecl _controlfp( + unsigned int _NewValue, + unsigned int _Mask + ); + +#pragma warning(pop) + + + void __cdecl _set_controlfp( + unsigned int _NewValue, + unsigned int _Mask + ); + + + errno_t __cdecl _controlfp_s( + unsigned int* _CurrentState, + unsigned int _NewValue, + unsigned int _Mask + ); + + + unsigned int __cdecl _statusfp(void); + + + void __cdecl _fpreset(void); + + + + + void __cdecl _statusfp2( + unsigned int* _X86Status, + unsigned int* _SSE2Status + ); + + + + + + + + unsigned int __cdecl _control87( + unsigned int _NewValue, + unsigned int _Mask + ); + + + + int __cdecl __control87_2( + unsigned int _NewValue, + unsigned int _Mask, + unsigned int* _X86ControlWord, + unsigned int* _Sse2ControlWord + ); + + + + + int* __cdecl __fpecode(void); + + + + + int __cdecl __fpe_flt_rounds(void); +# 307 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\float.h" 3 + double __cdecl _copysign( double _Number, double _Sign); + double __cdecl _chgsign( double _X); + double __cdecl _scalb( double _X, long _Y); + double __cdecl _logb( double _X); + double __cdecl _nextafter( double _X, double _Y); + int __cdecl _finite( double _X); + int __cdecl _isnan( double _X); + int __cdecl _fpclass( double _X); +# 334 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\float.h" 3 + void __cdecl fpreset(void); +# 401 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\float.h" 3 +} +# 401 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\float.h" 3 +#pragma pack(pop) +# 7 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cfloat" 2 3 +# 7 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\limits" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\climits" 1 3 +# 8 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\limits" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cmath" 1 3 +# 12 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cmath" 3 +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\math.h" 1 3 +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\math.h" 3 +#pragma pack(push, 8) +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\math.h" 3 + extern "C" { + + +#pragma warning(push) +#pragma warning(disable: 4738) +#pragma warning(disable: 4820) + + + + + + struct _exception + { + int type; + char* name; + double arg1; + double arg2; + double retval; + }; + + + + + + + struct _complex + { + double x, y; + }; +# 60 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\math.h" 3 + typedef float float_t; + typedef double double_t; +# 79 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\math.h" 3 + extern double const _HUGE; +# 170 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\math.h" 3 +void __cdecl _fperrraise( int _Except); + + short __cdecl _dclass( double _X); + short __cdecl _ldclass( long double _X); + short __cdecl _fdclass( float _X); + + int __cdecl _dsign( double _X); + int __cdecl _ldsign( long double _X); + int __cdecl _fdsign( float _X); + + int __cdecl _dpcomp( double _X, double _Y); + int __cdecl _ldpcomp( long double _X, long double _Y); + int __cdecl _fdpcomp( float _X, float _Y); + + short __cdecl _dtest( double* _Px); + short __cdecl _ldtest( long double* _Px); + short __cdecl _fdtest( float* _Px); + + short __cdecl _d_int( double* _Px, short _Xexp); + short __cdecl _ld_int( long double* _Px, short _Xexp); + short __cdecl _fd_int( float* _Px, short _Xexp); + + short __cdecl _dscale( double* _Px, long _Lexp); + short __cdecl _ldscale( long double* _Px, long _Lexp); + short __cdecl _fdscale( float* _Px, long _Lexp); + + short __cdecl _dunscale( short* _Pex, double* _Px); + short __cdecl _ldunscale( short* _Pex, long double* _Px); + short __cdecl _fdunscale( short* _Pex, float* _Px); + + short __cdecl _dexp( double* _Px, double _Y, long _Eoff); + short __cdecl _ldexp( long double* _Px, long double _Y, long _Eoff); + short __cdecl _fdexp( float* _Px, float _Y, long _Eoff); + + short __cdecl _dnorm( unsigned short* _Ps); + short __cdecl _fdnorm( unsigned short* _Ps); + + double __cdecl _dpoly( double _X, double const* _Tab, int _N); + long double __cdecl _ldpoly( long double _X, long double const* _Tab, int _N); + float __cdecl _fdpoly( float _X, float const* _Tab, int _N); + + double __cdecl _dlog( double _X, int _Baseflag); + long double __cdecl _ldlog( long double _X, int _Baseflag); + float __cdecl _fdlog( float _X, int _Baseflag); + + double __cdecl _dsin( double _X, unsigned int _Qoff); + long double __cdecl _ldsin( long double _X, unsigned int _Qoff); + float __cdecl _fdsin( float _X, unsigned int _Qoff); + + +typedef union +{ + unsigned short _Sh[4]; + double _Val; +} _double_val; + + +typedef union +{ + unsigned short _Sh[2]; + float _Val; +} _float_val; + + +typedef union +{ + unsigned short _Sh[4]; + long double _Val; +} _ldouble_val; + +typedef union +{ + unsigned short _Word[4]; + float _Float; + double _Double; + long double _Long_double; +} _float_const; + +extern const _float_const _Denorm_C, _Inf_C, _Nan_C, _Snan_C, _Hugeval_C; +extern const _float_const _FDenorm_C, _FInf_C, _FNan_C, _FSnan_C; +extern const _float_const _LDenorm_C, _LInf_C, _LNan_C, _LSnan_C; + +extern const _float_const _Eps_C, _Rteps_C; +extern const _float_const _FEps_C, _FRteps_C; +extern const _float_const _LEps_C, _LRteps_C; + +extern const double _Zero_C, _Xbig_C; +extern const float _FZero_C, _FXbig_C; +extern const long double _LZero_C, _LXbig_C; +# 287 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\math.h" 3 +extern "C++" +{ + inline int fpclassify( float _X) throw() + { + return _fdtest(&_X); + } + + inline int fpclassify( double _X) throw() + { + return _dtest(&_X); + } + + inline int fpclassify( long double _X) throw() + { + return _ldtest(&_X); + } + + inline bool signbit( float _X) throw() + { + return _fdsign(_X) != 0; + } + + inline bool signbit( double _X) throw() + { + return _dsign(_X) != 0; + } + + inline bool signbit( long double _X) throw() + { + return _ldsign(_X) != 0; + } + + inline int _fpcomp( float _X, float _Y) throw() + { + return _fdpcomp(_X, _Y); + } + + inline int _fpcomp( double _X, double _Y) throw() + { + return _dpcomp(_X, _Y); + } + + inline int _fpcomp( long double _X, long double _Y) throw() + { + return _ldpcomp(_X, _Y); + } + + template struct _Combined_type + { + typedef float _Type; + }; + + template <> struct _Combined_type + { + typedef double _Type; + }; + + template <> struct _Combined_type + { + typedef long double _Type; + }; + + template struct _Real_widened + { + typedef long double _Type; + }; + + template <> struct _Real_widened + { + typedef float _Type; + }; + + template <> struct _Real_widened + { + typedef double _Type; + }; + + template <> struct _Real_widened + { + typedef double _Type; + }; + + template <> struct _Real_widened + { + typedef double _Type; + }; + + template struct _Real_type + { + typedef double _Type; + }; + + template <> struct _Real_type + { + typedef float _Type; + }; + + template <> struct _Real_type + { + typedef long double _Type; + }; + + template + inline int _fpcomp( _T1 _X, _T2 _Y) throw() + { + typedef typename _Combined_type::_Type, + typename _Real_type<_T2>::_Type>::_Type>::_Type _Tw; + return _fpcomp((_Tw)_X, (_Tw)_Y); + } + + template + inline bool isfinite( _Ty _X) throw() + { + return fpclassify(_X) <= 0; + } + + template + inline bool isinf( _Ty _X) throw() + { + return fpclassify(_X) == 1; + } + + template + inline bool isnan( _Ty _X) throw() + { + return fpclassify(_X) == 2; + } + + template + inline bool isnormal( _Ty _X) throw() + { + return fpclassify(_X) == (-1); + } + + template + inline bool isgreater( _Ty1 _X, _Ty2 _Y) throw() + { + return (_fpcomp(_X, _Y) & 4) != 0; + } + + template + inline bool isgreaterequal( _Ty1 _X, _Ty2 _Y) throw() + { + return (_fpcomp(_X, _Y) & (2 | 4)) != 0; + } + + template + inline bool isless( _Ty1 _X, _Ty2 _Y) throw() + { + return (_fpcomp(_X, _Y) & 1) != 0; + } + + template + inline bool islessequal( _Ty1 _X, _Ty2 _Y) throw() + { + return (_fpcomp(_X, _Y) & (1 | 2)) != 0; + } + + template + inline bool islessgreater( _Ty1 _X, _Ty2 _Y) throw() + { + return (_fpcomp(_X, _Y) & (1 | 4)) != 0; + } + + template + inline bool isunordered( _Ty1 _X, _Ty2 _Y) throw() + { + return _fpcomp(_X, _Y) == 0; + } +} + + + + + + + int __cdecl abs( int _X); + long __cdecl labs( long _X); + long long __cdecl llabs( long long _X); + + double __cdecl acos( double _X); + double __cdecl asin( double _X); + double __cdecl atan( double _X); + double __cdecl atan2( double _Y, double _X); + + double __cdecl cos( double _X); + double __cdecl cosh( double _X); + double __cdecl exp( double _X); + double __cdecl fabs( double _X); + double __cdecl fmod( double _X, double _Y); + double __cdecl log( double _X); + double __cdecl log10( double _X); + double __cdecl pow( double _X, double _Y); + double __cdecl sin( double _X); + double __cdecl sinh( double _X); + double __cdecl sqrt( double _X); + double __cdecl tan( double _X); + double __cdecl tanh( double _X); + + double __cdecl acosh( double _X); + double __cdecl asinh( double _X); + double __cdecl atanh( double _X); + double __cdecl atof( char const* _String); + double __cdecl _atof_l( char const* _String, _locale_t _Locale); + double __cdecl _cabs( struct _complex _Complex_value); + double __cdecl cbrt( double _X); + double __cdecl ceil( double _X); + double __cdecl _chgsign( double _X); + double __cdecl copysign( double _Number, double _Sign); + double __cdecl _copysign( double _Number, double _Sign); + double __cdecl erf( double _X); + double __cdecl erfc( double _X); + double __cdecl exp2( double _X); + double __cdecl expm1( double _X); + double __cdecl fdim( double _X, double _Y); + double __cdecl floor( double _X); + double __cdecl fma( double _X, double _Y, double _Z); + double __cdecl fmax( double _X, double _Y); + double __cdecl fmin( double _X, double _Y); + double __cdecl frexp( double _X, int* _Y); + double __cdecl hypot( double _X, double _Y); + double __cdecl _hypot( double _X, double _Y); + int __cdecl ilogb( double _X); + double __cdecl ldexp( double _X, int _Y); + double __cdecl lgamma( double _X); + long long __cdecl llrint( double _X); + long long __cdecl llround( double _X); + double __cdecl log1p( double _X); + double __cdecl log2( double _X); + double __cdecl logb( double _X); + long __cdecl lrint( double _X); + long __cdecl lround( double _X); + + int __cdecl _matherr( struct _exception* _Except); + + double __cdecl modf( double _X, double* _Y); + double __cdecl nan( char const*); + double __cdecl nearbyint( double _X); + double __cdecl nextafter( double _X, double _Y); + double __cdecl nexttoward( double _X, long double _Y); + double __cdecl remainder( double _X, double _Y); + double __cdecl remquo( double _X, double _Y, int* _Z); + double __cdecl rint( double _X); + double __cdecl round( double _X); + double __cdecl scalbln( double _X, long _Y); + double __cdecl scalbn( double _X, int _Y); + double __cdecl tgamma( double _X); + double __cdecl trunc( double _X); + double __cdecl _j0( double _X ); + double __cdecl _j1( double _X ); + double __cdecl _jn(int _X, double _Y); + double __cdecl _y0( double _X); + double __cdecl _y1( double _X); + double __cdecl _yn( int _X, double _Y); + + float __cdecl acoshf( float _X); + float __cdecl asinhf( float _X); + float __cdecl atanhf( float _X); + float __cdecl cbrtf( float _X); + float __cdecl _chgsignf( float _X); + float __cdecl copysignf( float _Number, float _Sign); + float __cdecl _copysignf( float _Number, float _Sign); + float __cdecl erff( float _X); + float __cdecl erfcf( float _X); + float __cdecl expm1f( float _X); + float __cdecl exp2f( float _X); + float __cdecl fdimf( float _X, float _Y); + float __cdecl fmaf( float _X, float _Y, float _Z); + float __cdecl fmaxf( float _X, float _Y); + float __cdecl fminf( float _X, float _Y); + float __cdecl _hypotf( float _X, float _Y); + int __cdecl ilogbf( float _X); + float __cdecl lgammaf( float _X); + long long __cdecl llrintf( float _X); + long long __cdecl llroundf( float _X); + float __cdecl log1pf( float _X); + float __cdecl log2f( float _X); + float __cdecl logbf( float _X); + long __cdecl lrintf( float _X); + long __cdecl lroundf( float _X); + float __cdecl nanf( char const*); + float __cdecl nearbyintf( float _X); + float __cdecl nextafterf( float _X, float _Y); + float __cdecl nexttowardf( float _X, long double _Y); + float __cdecl remainderf( float _X, float _Y); + float __cdecl remquof( float _X, float _Y, int* _Z); + float __cdecl rintf( float _X); + float __cdecl roundf( float _X); + float __cdecl scalblnf( float _X, long _Y); + float __cdecl scalbnf( float _X, int _Y); + float __cdecl tgammaf( float _X); + float __cdecl truncf( float _X); + + + + int __cdecl _set_SSE2_enable( int _Flag); +# 619 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\math.h" 3 + __inline float __cdecl acosf( float _X) + { + return (float)acos(_X); + } + + __inline float __cdecl asinf( float _X) + { + return (float)asin(_X); + } + + __inline float __cdecl atan2f( float _Y, float _X) + { + return (float)atan2(_Y, _X); + } + + __inline float __cdecl atanf( float _X) + { + return (float)atan(_X); + } + + __inline float __cdecl ceilf( float _X) + { + return (float)ceil(_X); + } + + __inline float __cdecl cosf( float _X) + { + return (float)cos(_X); + } + + __inline float __cdecl coshf( float _X) + { + return (float)cosh(_X); + } + + __inline float __cdecl expf( float _X) + { + return (float)exp(_X); + } +# 667 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\math.h" 3 + __inline float __cdecl fabsf( float _X) + { + return (float)fabs(_X); + } +# 681 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\math.h" 3 + __inline float __cdecl floorf( float _X) + { + return (float)floor(_X); + } + + __inline float __cdecl fmodf( float _X, float _Y) + { + return (float)fmod(_X, _Y); + } + + + + __inline float __cdecl frexpf( float _X, int *_Y) + { + return (float)frexp(_X, _Y); + } + + __inline float __cdecl hypotf( float _X, float _Y) + { + return _hypotf(_X, _Y); + } + + __inline float __cdecl ldexpf( float _X, int _Y) + { + return (float)ldexp(_X, _Y); + } +# 722 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\math.h" 3 + __inline float __cdecl log10f( float _X) + { + return (float)log10(_X); + } + + __inline float __cdecl logf( float _X) + { + return (float)log(_X); + } + + __inline float __cdecl modff( float _X, float* _Y) + { + double _F, _I; + _F = modf(_X, &_I); + *_Y = (float)_I; + return (float)_F; + } + + __inline float __cdecl powf( float _X, float _Y) + { + return (float)pow(_X, _Y); + } + + __inline float __cdecl sinf( float _X) + { + return (float)sin(_X); + } + + __inline float __cdecl sinhf( float _X) + { + return (float)sinh(_X); + } + + __inline float __cdecl sqrtf( float _X) + { + return (float)sqrt(_X); + } + + __inline float __cdecl tanf( float _X) + { + return (float)tan(_X); + } + + __inline float __cdecl tanhf( float _X) + { + return (float)tanh(_X); + } + + + + long double __cdecl acoshl( long double _X); + + __inline long double __cdecl acosl( long double _X) + { + return acos((double)_X); + } + + long double __cdecl asinhl( long double _X); + + __inline long double __cdecl asinl( long double _X) + { + return asin((double)_X); + } + + __inline long double __cdecl atan2l( long double _Y, long double _X) + { + return atan2((double)_Y, (double)_X); + } + + long double __cdecl atanhl( long double _X); + + __inline long double __cdecl atanl( long double _X) + { + return atan((double)_X); + } + + long double __cdecl cbrtl( long double _X); + + __inline long double __cdecl ceill( long double _X) + { + return ceil((double)_X); + } + + __inline long double __cdecl _chgsignl( long double _X) + { + return _chgsign((double)_X); + } + + long double __cdecl copysignl( long double _Number, long double _Sign); + + __inline long double __cdecl _copysignl( long double _Number, long double _Sign) + { + return _copysign((double)_Number, (double)_Sign); + } + + __inline long double __cdecl coshl( long double _X) + { + return cosh((double)_X); + } + + __inline long double __cdecl cosl( long double _X) + { + return cos((double)_X); + } + + long double __cdecl erfl( long double _X); + long double __cdecl erfcl( long double _X); + + __inline long double __cdecl expl( long double _X) + { + return exp((double)_X); + } + + long double __cdecl exp2l( long double _X); + long double __cdecl expm1l( long double _X); + + __inline long double __cdecl fabsl( long double _X) + { + return fabs((double)_X); + } + + long double __cdecl fdiml( long double _X, long double _Y); + + __inline long double __cdecl floorl( long double _X) + { + return floor((double)_X); + } + + long double __cdecl fmal( long double _X, long double _Y, long double _Z); + long double __cdecl fmaxl( long double _X, long double _Y); + long double __cdecl fminl( long double _X, long double _Y); + + __inline long double __cdecl fmodl( long double _X, long double _Y) + { + return fmod((double)_X, (double)_Y); + } + + __inline long double __cdecl frexpl( long double _X, int *_Y) + { + return frexp((double)_X, _Y); + } + + int __cdecl ilogbl( long double _X); + + __inline long double __cdecl _hypotl( long double _X, long double _Y) + { + return _hypot((double)_X, (double)_Y); + } + + __inline long double __cdecl hypotl( long double _X, long double _Y) + { + return _hypot((double)_X, (double)_Y); + } + + __inline long double __cdecl ldexpl( long double _X, int _Y) + { + return ldexp((double)_X, _Y); + } + + long double __cdecl lgammal( long double _X); + long long __cdecl llrintl( long double _X); + long long __cdecl llroundl( long double _X); + + __inline long double __cdecl logl( long double _X) + { + return log((double)_X); + } + + __inline long double __cdecl log10l( long double _X) + { + return log10((double)_X); + } + + long double __cdecl log1pl( long double _X); + long double __cdecl log2l( long double _X); + long double __cdecl logbl( long double _X); + long __cdecl lrintl( long double _X); + long __cdecl lroundl( long double _X); + + __inline long double __cdecl modfl( long double _X, long double* _Y) + { + double _F, _I; + _F = modf((double)_X, &_I); + *_Y = _I; + return _F; + } + + long double __cdecl nanl( char const*); + long double __cdecl nearbyintl( long double _X); + long double __cdecl nextafterl( long double _X, long double _Y); + long double __cdecl nexttowardl( long double _X, long double _Y); + + __inline long double __cdecl powl( long double _X, long double _Y) + { + return pow((double)_X, (double)_Y); + } + + long double __cdecl remainderl( long double _X, long double _Y); + long double __cdecl remquol( long double _X, long double _Y, int* _Z); + long double __cdecl rintl( long double _X); + long double __cdecl roundl( long double _X); + long double __cdecl scalblnl( long double _X, long _Y); + long double __cdecl scalbnl( long double _X, int _Y); + + __inline long double __cdecl sinhl( long double _X) + { + return sinh((double)_X); + } + + __inline long double __cdecl sinl( long double _X) + { + return sin((double)_X); + } + + __inline long double __cdecl sqrtl( long double _X) + { + return sqrt((double)_X); + } + + __inline long double __cdecl tanhl( long double _X) + { + return tanh((double)_X); + } + + __inline long double __cdecl tanl( long double _X) + { + return tan((double)_X); + } + + long double __cdecl tgammal( long double _X); + long double __cdecl truncl( long double _X); +# 973 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\math.h" 3 + extern double HUGE; + + + + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_j0" ". See online help for details.")) double __cdecl j0( double _X); + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_j1" ". See online help for details.")) double __cdecl j1( double _X); + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_jn" ". See online help for details.")) double __cdecl jn( int _X, double _Y); + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_y0" ". See online help for details.")) double __cdecl y0( double _X); + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_y1" ". See online help for details.")) double __cdecl y1( double _X); + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_yn" ". See online help for details.")) double __cdecl yn( int _X, double _Y); + + + + + +#pragma warning(pop) + + +} +# 992 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\math.h" 3 +#pragma pack(pop) +# 12 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cmath" 2 3 + + + + + + inline double abs( double _Xx) noexcept + { + return (:: fabs(_Xx)); + } + + inline double pow( double _Xx, int _Yx) noexcept + { + if (_Yx == 2) + return (_Xx * _Xx); + + return (:: pow(_Xx, static_cast(_Yx))); + } + + inline float abs( float _Xx) noexcept + { + return (:: fabsf(_Xx)); + } + + inline float acos( float _Xx) noexcept + { + return (:: acosf(_Xx)); + } + + inline float acosh( float _Xx) noexcept + { + return (:: acoshf(_Xx)); + } + + inline float asin( float _Xx) noexcept + { + return (:: asinf(_Xx)); + } + + inline float asinh( float _Xx) noexcept + { + return (:: asinhf(_Xx)); + } + + inline float atan( float _Xx) noexcept + { + return (:: atanf(_Xx)); + } + + inline float atanh( float _Xx) noexcept + { + return (:: atanhf(_Xx)); + } + + inline float atan2( float _Yx, float _Xx) noexcept + { + return (:: atan2f(_Yx, _Xx)); + } + + inline float cbrt( float _Xx) noexcept + { + return (:: cbrtf(_Xx)); + } + + inline float ceil( float _Xx) noexcept + { + return (:: ceilf(_Xx)); + } + + inline float copysign( float _Number, + float _Sign) noexcept + { + return (:: copysignf(_Number, _Sign)); + } + + inline float cos( float _Xx) noexcept + { + return (:: cosf(_Xx)); + } + + inline float cosh( float _Xx) noexcept + { + return (:: coshf(_Xx)); + } + + inline float erf( float _Xx) noexcept + { + return (:: erff(_Xx)); + } + + inline float erfc( float _Xx) noexcept + { + return (:: erfcf(_Xx)); + } + + inline float exp( float _Xx) noexcept + { + return (:: expf(_Xx)); + } + + inline float exp2( float _Xx) noexcept + { + return (:: exp2f(_Xx)); + } + + inline float expm1( float _Xx) noexcept + { + return (:: expm1f(_Xx)); + } + + inline float fabs( float _Xx) noexcept + { + return (:: fabsf(_Xx)); + } + + inline float fdim( float _Xx, float _Yx) noexcept + { + return (:: fdimf(_Xx, _Yx)); + } + + inline float floor( float _Xx) noexcept + { + return (:: floorf(_Xx)); + } + + inline float fma( float _Xx, float _Yx, + float _Zx) noexcept + { + return (:: fmaf(_Xx, _Yx, _Zx)); + } + + inline float fmax( float _Xx, float _Yx) noexcept + { + return (:: fmaxf(_Xx, _Yx)); + } + + inline float fmin( float _Xx, float _Yx) noexcept + { + return (:: fminf(_Xx, _Yx)); + } + + inline float fmod( float _Xx, float _Yx) noexcept + { + return (:: fmodf(_Xx, _Yx)); + } + + inline float frexp( float _Xx, int* _Yx) noexcept + { + return (:: frexpf(_Xx, _Yx)); + } + + inline float hypot( float _Xx, float _Yx) noexcept + { + return (:: hypotf(_Xx, _Yx)); + } + + inline int ilogb( float _Xx) noexcept + { + return (:: ilogbf(_Xx)); + } + + inline float ldexp( float _Xx, int _Yx) noexcept + { + return (:: ldexpf(_Xx, _Yx)); + } + + inline float lgamma( float _Xx) noexcept + { + return (:: lgammaf(_Xx)); + } + + inline long long llrint( float _Xx) noexcept + { + return (:: llrintf(_Xx)); + } + + inline long long llround( float _Xx) noexcept + { + return (:: llroundf(_Xx)); + } + + inline float log( float _Xx) noexcept + { + return (:: logf(_Xx)); + } + + inline float log10( float _Xx) noexcept + { + return (:: log10f(_Xx)); + } + + inline float log1p( float _Xx) noexcept + { + return (:: log1pf(_Xx)); + } + + inline float log2( float _Xx) noexcept + { + return (:: log2f(_Xx)); + } + + inline float logb( float _Xx) noexcept + { + return (:: logbf(_Xx)); + } + + inline long lrint( float _Xx) noexcept + { + return (:: lrintf(_Xx)); + } + + inline long lround( float _Xx) noexcept + { + return (:: lroundf(_Xx)); + } + + inline float modf( float _Xx, float* _Yx) noexcept + { + return (:: modff(_Xx, _Yx)); + } + + inline float nearbyint( float _Xx) noexcept + { + return (:: nearbyintf(_Xx)); + } + + inline float nextafter( float _Xx, float _Yx) noexcept + { + return (:: nextafterf(_Xx, _Yx)); + } + + inline float nexttoward( float _Xx, + long double _Yx) noexcept + { + return (:: nexttowardf(_Xx, _Yx)); + } + + inline float pow( float _Xx, + float _Yx) noexcept + { + return (:: powf(_Xx, _Yx)); + } + + inline float pow( float _Xx, int _Yx) noexcept + { + if (_Yx == 2) + return (_Xx * _Xx); + + return (:: powf(_Xx, static_cast(_Yx))); + } + + inline float remainder( float _Xx, float _Yx) noexcept + { + return (:: remainderf(_Xx, _Yx)); + } + + inline float remquo( float _Xx, float _Yx, + int *_Zx) noexcept + { + return (:: remquof(_Xx, _Yx, _Zx)); + } + + inline float rint( float _Xx) noexcept + { + return (:: rintf(_Xx)); + } + + inline float round( float _Xx) noexcept + { + return (:: roundf(_Xx)); + } + + inline float scalbln( float _Xx, long _Yx) noexcept + { + return (:: scalblnf(_Xx, _Yx)); + } + + inline float scalbn( float _Xx, int _Yx) noexcept + { + return (:: scalbnf(_Xx, _Yx)); + } + + inline float sin( float _Xx) noexcept + { + return (:: sinf(_Xx)); + } + + inline float sinh( float _Xx) noexcept + { + return (:: sinhf(_Xx)); + } + + inline float sqrt( float _Xx) noexcept + { + return (:: sqrtf(_Xx)); + } + + inline float tan( float _Xx) noexcept + { + return (:: tanf(_Xx)); + } + + inline float tanh( float _Xx) noexcept + { + return (:: tanhf(_Xx)); + } + + inline float tgamma( float _Xx) noexcept + { + return (:: tgammaf(_Xx)); + } + + inline float trunc( float _Xx) noexcept + { + return (:: truncf(_Xx)); + } + + inline long double abs( long double _Xx) noexcept + { + return (:: fabsl(_Xx)); + } + + inline long double acos( long double _Xx) noexcept + { + return (:: acosl(_Xx)); + } + + inline long double acosh( long double _Xx) noexcept + { + return (:: acoshl(_Xx)); + } + + inline long double asin( long double _Xx) noexcept + { + return (:: asinl(_Xx)); + } + + inline long double asinh( long double _Xx) noexcept + { + return (:: asinhl(_Xx)); + } + + inline long double atan( long double _Xx) noexcept + { + return (:: atanl(_Xx)); + } + + inline long double atanh( long double _Xx) noexcept + { + return (:: atanhl(_Xx)); + } + + inline long double atan2( long double _Yx, + long double _Xx) noexcept + { + return (:: atan2l(_Yx, _Xx)); + } + + inline long double cbrt( long double _Xx) noexcept + { + return (:: cbrtl(_Xx)); + } + + inline long double ceil( long double _Xx) noexcept + { + return (:: ceill(_Xx)); + } + + inline long double copysign( long double _Number, + long double _Sign) noexcept + { + return (:: copysignl(_Number, _Sign)); + } + + inline long double cos( long double _Xx) noexcept + { + return (:: cosl(_Xx)); + } + + inline long double cosh( long double _Xx) noexcept + { + return (:: coshl(_Xx)); + } + + inline long double erf( long double _Xx) noexcept + { + return (:: erfl(_Xx)); + } + + inline long double erfc( long double _Xx) noexcept + { + return (:: erfcl(_Xx)); + } + + inline long double exp( long double _Xx) noexcept + { + return (:: expl(_Xx)); + } + + inline long double exp2( long double _Xx) noexcept + { + return (:: exp2l(_Xx)); + } + + inline long double expm1( long double _Xx) noexcept + { + return (:: expm1l(_Xx)); + } + + inline long double fabs( long double _Xx) noexcept + { + return (:: fabsl(_Xx)); + } + + inline long double fdim( long double _Xx, + long double _Yx) noexcept + { + return (:: fdiml(_Xx, _Yx)); + } + + inline long double floor( long double _Xx) noexcept + { + return (:: floorl(_Xx)); + } + + inline long double fma( long double _Xx, + long double _Yx, long double _Zx) noexcept + { + return (:: fmal(_Xx, _Yx, _Zx)); + } + + inline long double fmax( long double _Xx, + long double _Yx) noexcept + { + return (:: fmaxl(_Xx, _Yx)); + } + + inline long double fmin( long double _Xx, + long double _Yx) noexcept + { + return (:: fminl(_Xx, _Yx)); + } + + inline long double fmod( long double _Xx, + long double _Yx) noexcept + { + return (:: fmodl(_Xx, _Yx)); + } + + inline long double frexp( long double _Xx, + int* _Yx) noexcept + { + return (:: frexpl(_Xx, _Yx)); + } + + inline long double hypot( long double _Xx, + long double _Yx) noexcept + { + return (:: hypotl(_Xx, _Yx)); + } + + inline int ilogb( long double _Xx) noexcept + { + return (:: ilogbl(_Xx)); + } + + inline long double ldexp( long double _Xx, + int _Yx) noexcept + { + return (:: ldexpl(_Xx, _Yx)); + } + + inline long double lgamma( long double _Xx) noexcept + { + return (:: lgammal(_Xx)); + } + + inline long long llrint( long double _Xx) noexcept + { + return (:: llrintl(_Xx)); + } + + inline long long llround( long double _Xx) noexcept + { + return (:: llroundl(_Xx)); + } + + inline long double log( long double _Xx) noexcept + { + return (:: logl(_Xx)); + } + + inline long double log10( long double _Xx) noexcept + { + return (:: log10l(_Xx)); + } + + inline long double log1p( long double _Xx) noexcept + { + return (:: log1pl(_Xx)); + } + + inline long double log2( long double _Xx) noexcept + { + return (:: log2l(_Xx)); + } + + inline long double logb( long double _Xx) noexcept + { + return (:: logbl(_Xx)); + } + + inline long lrint( long double _Xx) noexcept + { + return (:: lrintl(_Xx)); + } + + inline long lround( long double _Xx) noexcept + { + return (:: lroundl(_Xx)); + } + + inline long double modf( long double _Xx, + long double* _Yx) noexcept + { + return (:: modfl(_Xx, _Yx)); + } + + inline long double nearbyint( long double _Xx) noexcept + { + return (:: nearbyintl(_Xx)); + } + + inline long double nextafter( long double _Xx, + long double _Yx) noexcept + { + return (:: nextafterl(_Xx, _Yx)); + } + + inline long double nexttoward( long double _Xx, + long double _Yx) noexcept + { + return (:: nexttowardl(_Xx, _Yx)); + } + + inline long double pow( long double _Xx, + long double _Yx) noexcept + { + return (:: powl(_Xx, _Yx)); + } + + inline long double pow( long double _Xx, + int _Yx) noexcept + { + if (_Yx == 2) + return (_Xx * _Xx); + + return (:: powl(_Xx, static_cast(_Yx))); + } + + inline long double remainder( long double _Xx, + long double _Yx) noexcept + { + return (:: remainderl(_Xx, _Yx)); + } + + inline long double remquo( long double _Xx, + long double _Yx, int *_Zx) noexcept + { + return (:: remquol(_Xx, _Yx, _Zx)); + } + + inline long double rint( long double _Xx) noexcept + { + return (:: rintl(_Xx)); + } + + inline long double round( long double _Xx) noexcept + { + return (:: roundl(_Xx)); + } + + inline long double scalbln( long double _Xx, + long _Yx) noexcept + { + return (:: scalblnl(_Xx, _Yx)); + } + + inline long double scalbn( long double _Xx, + int _Yx) noexcept + { + return (:: scalbnl(_Xx, _Yx)); + } + + inline long double sin( long double _Xx) noexcept + { + return (:: sinl(_Xx)); + } + + inline long double sinh( long double _Xx) noexcept + { + return (:: sinhl(_Xx)); + } + + inline long double sqrt( long double _Xx) noexcept + { + return (:: sqrtl(_Xx)); + } + + inline long double tan( long double _Xx) noexcept + { + return (:: tanl(_Xx)); + } + + inline long double tanh( long double _Xx) noexcept + { + return (:: tanhl(_Xx)); + } + + inline long double tgamma( long double _Xx) noexcept + { + return (:: tgammal(_Xx)); + } + + inline long double trunc( long double _Xx) noexcept + { + return (:: truncl(_Xx)); + } +# 647 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cmath" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtgmath.h" 1 3 + + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtr1common" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +namespace std { + +struct _Nil + { + }; + + +template + struct integral_constant + { + static constexpr _Ty value = _Val; + + typedef _Ty value_type; + typedef integral_constant<_Ty, _Val> type; + + constexpr operator value_type() const noexcept + { + return (value); + } + + constexpr value_type operator()() const noexcept + { + return (value); + } + }; + +typedef integral_constant true_type; +typedef integral_constant false_type; + + +template + using bool_constant = integral_constant; + + +template + struct _Cat_base + : integral_constant + { + }; + + +template + struct enable_if + { + }; + +template + struct enable_if + { + typedef _Ty type; + }; + + +template + struct conditional + { + typedef _Ty2 type; + }; + +template + struct conditional + { + typedef _Ty1 type; + }; + + +template + struct is_same + : false_type + { + }; + +template + struct is_same<_Ty1, _Ty1> + : true_type + { + }; + + +template + constexpr bool is_same_v = is_same<_Ty, _Uty>::value; + + + +template + struct remove_const + { + typedef _Ty type; + }; + +template + struct remove_const + { + typedef _Ty type; + }; + + +template + struct remove_volatile + { + typedef _Ty type; + }; + +template + struct remove_volatile + { + typedef _Ty type; + }; + + +template + struct remove_cv + { + typedef typename remove_const::type>::type + type; + }; + + +template + struct _Is_integral + : false_type + { + }; + +template<> + struct _Is_integral + : true_type + { + }; + +template<> + struct _Is_integral + : true_type + { + }; + +template<> + struct _Is_integral + : true_type + { + }; + +template<> + struct _Is_integral + : true_type + { + }; + + +template<> + struct _Is_integral + : true_type + { + }; + + +template<> + struct _Is_integral + : true_type + { + }; + +template<> + struct _Is_integral + : true_type + { + }; + +template<> + struct _Is_integral + : true_type + { + }; + +template<> + struct _Is_integral + : true_type + { + }; + +template<> + struct _Is_integral + : true_type + { + }; + +template<> + struct _Is_integral + : true_type + { + }; + +template<> + struct _Is_integral + : true_type + { + }; + +template<> + struct _Is_integral + : true_type + { + }; + +template<> + struct _Is_integral + : true_type + { + }; + +template<> + struct _Is_integral + : true_type + { + }; + + +template + struct is_integral + : _Is_integral::type> + { + }; + + +template + constexpr bool is_integral_v = is_integral<_Ty>::value; + + + +template + struct _Is_floating_point + : false_type + { + }; + +template<> + struct _Is_floating_point + : true_type + { + }; + +template<> + struct _Is_floating_point + : true_type + { + }; + +template<> + struct _Is_floating_point + : true_type + { + }; + + +template + struct is_floating_point + : _Is_floating_point::type> + { + }; + + +template + constexpr bool is_floating_point_v = is_floating_point<_Ty>::value; + + + +template + struct is_arithmetic + : _Cat_base::value + || is_floating_point<_Ty>::value> + { + }; + + +template + constexpr bool is_arithmetic_v = is_arithmetic<_Ty>::value; + + + +template + struct remove_reference + { + typedef _Ty type; + }; + +template + struct remove_reference<_Ty&> + { + typedef _Ty type; + }; + +template + struct remove_reference<_Ty&&> + { + typedef _Ty type; + }; + + +struct _Wrap_int + { + _Wrap_int(int) + { + } + }; + +template + struct _Identity + { + typedef _Ty type; + }; +# 344 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtr1common" 3 +} + +#pragma warning(pop) +#pragma pack(pop) +# 8 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtgmath.h" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +namespace std { +template + struct _Promote_to_float + { + typedef typename conditional::value, + double, _Ty>::type type; + }; + +template + struct _Common_float_type + { + typedef typename _Promote_to_float<_Ty1>::type _Ty1f; + typedef typename _Promote_to_float<_Ty2>::type _Ty2f; + typedef typename conditional::value + || is_same<_Ty2f, long double>::value, long double, + typename conditional::value + || is_same<_Ty2f, double>::value, double, + float>::type>::type type; + }; +} +# 76 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtgmath.h" 3 +template inline + typename ::std:: enable_if< ::std:: is_arithmetic<_Ty1>::value + && ::std:: is_arithmetic<_Ty2>::value, + typename ::std:: _Common_float_type<_Ty1, _Ty2>::type>::type + pow(const _Ty1 _Left, const _Ty2 _Right) + { + typedef typename ::std:: _Common_float_type<_Ty1, _Ty2>::type type; + return (:: pow(type(_Left), type(_Right))); + } + + +extern "C" double __cdecl acos( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type acos(_Ty _Left) { return (:: acos((double)_Left)); } +extern "C" double __cdecl asin( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type asin(_Ty _Left) { return (:: asin((double)_Left)); } +extern "C" double __cdecl atan( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type atan(_Ty _Left) { return (:: atan((double)_Left)); } +extern "C" double __cdecl atan2( double, double); template inline typename ::std:: enable_if< ::std:: is_arithmetic<_Ty1>::value && ::std:: is_arithmetic<_Ty2>::value, typename ::std:: _Common_float_type<_Ty1, _Ty2>::type>::type atan2(_Ty1 _Left, _Ty2 _Right) { typedef typename ::std:: _Common_float_type<_Ty1, _Ty2>::type type; return (:: atan2((type)_Left, (type)_Right)); } +extern "C" double __cdecl ceil( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type ceil(_Ty _Left) { return (:: ceil((double)_Left)); } +extern "C" double __cdecl cos( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type cos(_Ty _Left) { return (:: cos((double)_Left)); } +extern "C" double __cdecl cosh( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type cosh(_Ty _Left) { return (:: cosh((double)_Left)); } +extern "C" double __cdecl exp( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type exp(_Ty _Left) { return (:: exp((double)_Left)); } + +extern "C" double __cdecl fabs( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type fabs(_Ty _Left) { return (:: fabs((double)_Left)); } + +extern "C" double __cdecl floor( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type floor(_Ty _Left) { return (:: floor((double)_Left)); } +extern "C" double __cdecl fmod( double, double); template inline typename ::std:: enable_if< ::std:: is_arithmetic<_Ty1>::value && ::std:: is_arithmetic<_Ty2>::value, typename ::std:: _Common_float_type<_Ty1, _Ty2>::type>::type fmod(_Ty1 _Left, _Ty2 _Right) { typedef typename ::std:: _Common_float_type<_Ty1, _Ty2>::type type; return (:: fmod((type)_Left, (type)_Right)); } +extern "C" double __cdecl frexp( double, int *); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type frexp(_Ty _Left, int * _Arg2) { return (:: frexp((double)_Left, _Arg2)); } +extern "C" double __cdecl ldexp( double, int); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type ldexp(_Ty _Left, int _Arg2) { return (:: ldexp((double)_Left, _Arg2)); } +extern "C" double __cdecl log( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type log(_Ty _Left) { return (:: log((double)_Left)); } +extern "C" double __cdecl log10( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type log10(_Ty _Left) { return (:: log10((double)_Left)); } + + +extern "C" double __cdecl sin( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type sin(_Ty _Left) { return (:: sin((double)_Left)); } +extern "C" double __cdecl sinh( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type sinh(_Ty _Left) { return (:: sinh((double)_Left)); } +extern "C" double __cdecl sqrt( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type sqrt(_Ty _Left) { return (:: sqrt((double)_Left)); } +extern "C" double __cdecl tan( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type tan(_Ty _Left) { return (:: tan((double)_Left)); } +extern "C" double __cdecl tanh( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type tanh(_Ty _Left) { return (:: tanh((double)_Left)); } +# 125 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtgmath.h" 3 +inline float _Fma(float _Left, float _Middle, float _Right) + { + return (:: fmaf(_Left, _Middle, _Right)); + } + +inline double _Fma(double _Left, double _Middle, double _Right) + { + return (:: fma(_Left, _Middle, _Right)); + } + +inline long double _Fma(long double _Left, long double _Middle, + long double _Right) + { + return (:: fmal(_Left, _Middle, _Right)); + } + +template inline + typename ::std:: _Common_float_type<_Ty1, + typename ::std:: _Common_float_type<_Ty2, _Ty3>::type>::type + fma(_Ty1 _Left, _Ty2 _Middle, _Ty3 _Right) + { + typedef typename ::std:: _Common_float_type<_Ty1, + typename ::std:: _Common_float_type<_Ty2, _Ty3>::type>::type type; + return (_Fma((type)_Left, (type)_Middle, (type)_Right)); + } + + + +inline float _Remquo(float _Left, float _Right, int *_Pquo) + { + return (:: remquof(_Left, _Right, _Pquo)); + } + +inline double _Remquo(double _Left, double _Right, int *_Pquo) + { + return (:: remquo(_Left, _Right, _Pquo)); + } + +inline long double _Remquo(long double _Left, long double _Right, int *_Pquo) + { + return (:: remquol(_Left, _Right, _Pquo)); + } + +template inline + typename ::std:: _Common_float_type<_Ty1, _Ty2>::type + remquo(_Ty1 _Left, _Ty2 _Right, int *_Pquo) + { + typedef typename ::std:: _Common_float_type<_Ty1, _Ty2>::type type; + return (_Remquo((type)_Left, (type)_Right, _Pquo)); + } + +extern "C" double __cdecl acosh( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type acosh(_Ty _Left) { return (:: acosh((double)_Left)); } +extern "C" double __cdecl asinh( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type asinh(_Ty _Left) { return (:: asinh((double)_Left)); } +extern "C" double __cdecl atanh( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type atanh(_Ty _Left) { return (:: atanh((double)_Left)); } +extern "C" double __cdecl cbrt( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type cbrt(_Ty _Left) { return (:: cbrt((double)_Left)); } +extern "C" double __cdecl copysign( double, double); template inline typename ::std:: enable_if< ::std:: is_arithmetic<_Ty1>::value && ::std:: is_arithmetic<_Ty2>::value, typename ::std:: _Common_float_type<_Ty1, _Ty2>::type>::type copysign(_Ty1 _Left, _Ty2 _Right) { typedef typename ::std:: _Common_float_type<_Ty1, _Ty2>::type type; return (:: copysign((type)_Left, (type)_Right)); } +extern "C" double __cdecl erf( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type erf(_Ty _Left) { return (:: erf((double)_Left)); } +extern "C" double __cdecl erfc( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type erfc(_Ty _Left) { return (:: erfc((double)_Left)); } +extern "C" double __cdecl expm1( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type expm1(_Ty _Left) { return (:: expm1((double)_Left)); } +extern "C" double __cdecl exp2( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type exp2(_Ty _Left) { return (:: exp2((double)_Left)); } +extern "C" double __cdecl fdim( double, double); template inline typename ::std:: enable_if< ::std:: is_arithmetic<_Ty1>::value && ::std:: is_arithmetic<_Ty2>::value, typename ::std:: _Common_float_type<_Ty1, _Ty2>::type>::type fdim(_Ty1 _Left, _Ty2 _Right) { typedef typename ::std:: _Common_float_type<_Ty1, _Ty2>::type type; return (:: fdim((type)_Left, (type)_Right)); } + +extern "C" double __cdecl fmax( double, double); template inline typename ::std:: enable_if< ::std:: is_arithmetic<_Ty1>::value && ::std:: is_arithmetic<_Ty2>::value, typename ::std:: _Common_float_type<_Ty1, _Ty2>::type>::type fmax(_Ty1 _Left, _Ty2 _Right) { typedef typename ::std:: _Common_float_type<_Ty1, _Ty2>::type type; return (:: fmax((type)_Left, (type)_Right)); } +extern "C" double __cdecl fmin( double, double); template inline typename ::std:: enable_if< ::std:: is_arithmetic<_Ty1>::value && ::std:: is_arithmetic<_Ty2>::value, typename ::std:: _Common_float_type<_Ty1, _Ty2>::type>::type fmin(_Ty1 _Left, _Ty2 _Right) { typedef typename ::std:: _Common_float_type<_Ty1, _Ty2>::type type; return (:: fmin((type)_Left, (type)_Right)); } +extern "C" double __cdecl hypot( double, double); template inline typename ::std:: enable_if< ::std:: is_arithmetic<_Ty1>::value && ::std:: is_arithmetic<_Ty2>::value, typename ::std:: _Common_float_type<_Ty1, _Ty2>::type>::type hypot(_Ty1 _Left, _Ty2 _Right) { typedef typename ::std:: _Common_float_type<_Ty1, _Ty2>::type type; return (:: hypot((type)_Left, (type)_Right)); } +extern "C" int __cdecl ilogb( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, int>::type ilogb(_Ty _Left) { return (:: ilogb((double)_Left)); } +extern "C" double __cdecl lgamma( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type lgamma(_Ty _Left) { return (:: lgamma((double)_Left)); } +extern "C" long long __cdecl llrint( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, long long>::type llrint(_Ty _Left) { return (:: llrint((double)_Left)); } +extern "C" long long __cdecl llround( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, long long>::type llround(_Ty _Left) { return (:: llround((double)_Left)); } +extern "C" double __cdecl log1p( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type log1p(_Ty _Left) { return (:: log1p((double)_Left)); } +extern "C" double __cdecl log2( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type log2(_Ty _Left) { return (:: log2((double)_Left)); } +extern "C" double __cdecl logb( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type logb(_Ty _Left) { return (:: logb((double)_Left)); } +extern "C" long __cdecl lrint( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, long>::type lrint(_Ty _Left) { return (:: lrint((double)_Left)); } +extern "C" long __cdecl lround( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, long>::type lround(_Ty _Left) { return (:: lround((double)_Left)); } +extern "C" double __cdecl nearbyint( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type nearbyint(_Ty _Left) { return (:: nearbyint((double)_Left)); } +extern "C" double __cdecl nextafter( double, double); template inline typename ::std:: enable_if< ::std:: is_arithmetic<_Ty1>::value && ::std:: is_arithmetic<_Ty2>::value, typename ::std:: _Common_float_type<_Ty1, _Ty2>::type>::type nextafter(_Ty1 _Left, _Ty2 _Right) { typedef typename ::std:: _Common_float_type<_Ty1, _Ty2>::type type; return (:: nextafter((type)_Left, (type)_Right)); } +extern "C" double __cdecl nexttoward( double, long double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type nexttoward(_Ty _Left, long double _Arg2) { return (:: nexttoward((double)_Left, _Arg2)); } +extern "C" double __cdecl remainder( double, double); template inline typename ::std:: enable_if< ::std:: is_arithmetic<_Ty1>::value && ::std:: is_arithmetic<_Ty2>::value, typename ::std:: _Common_float_type<_Ty1, _Ty2>::type>::type remainder(_Ty1 _Left, _Ty2 _Right) { typedef typename ::std:: _Common_float_type<_Ty1, _Ty2>::type type; return (:: remainder((type)_Left, (type)_Right)); } + +extern "C" double __cdecl rint( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type rint(_Ty _Left) { return (:: rint((double)_Left)); } +extern "C" double __cdecl round( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type round(_Ty _Left) { return (:: round((double)_Left)); } +extern "C" double __cdecl scalbln( double, long); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type scalbln(_Ty _Left, long _Arg2) { return (:: scalbln((double)_Left, _Arg2)); } +extern "C" double __cdecl scalbn( double, int); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type scalbn(_Ty _Left, int _Arg2) { return (:: scalbn((double)_Left, _Arg2)); } +extern "C" double __cdecl tgamma( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type tgamma(_Ty _Left) { return (:: tgamma((double)_Left)); } +extern "C" double __cdecl trunc( double); template inline typename ::std:: enable_if< ::std:: is_integral<_Ty>::value, double>::type trunc(_Ty _Left) { return (:: trunc((double)_Left)); } + + +#pragma warning(pop) +#pragma pack(pop) +# 647 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cmath" 2 3 + + + + +namespace std { +using :: abs; using :: acos; using :: asin; +using :: atan; using :: atan2; using :: ceil; +using :: cos; using :: cosh; using :: exp; +using :: fabs; using :: floor; using :: fmod; +using :: frexp; using :: ldexp; using :: log; +using :: log10; using :: modf; using :: pow; +using :: sin; using :: sinh; using :: sqrt; +using :: tan; using :: tanh; + +using :: acosf; using :: asinf; +using :: atanf; using :: atan2f; using :: ceilf; +using :: cosf; using :: coshf; using :: expf; +using :: fabsf; using :: floorf; using :: fmodf; +using :: frexpf; using :: ldexpf; using :: logf; +using :: log10f; using :: modff; using :: powf; +using :: sinf; using :: sinhf; using :: sqrtf; +using :: tanf; using :: tanhf; + +using :: acosl; using :: asinl; +using :: atanl; using :: atan2l; using :: ceill; +using :: cosl; using :: coshl; using :: expl; +using :: fabsl; using :: floorl; using :: fmodl; +using :: frexpl; using :: ldexpl; using :: logl; +using :: log10l; using :: modfl; using :: powl; +using :: sinl; using :: sinhl; using :: sqrtl; +using :: tanl; using :: tanhl; + +using :: float_t; using :: double_t; + +using :: acosh; using :: asinh; using :: atanh; +using :: cbrt; using :: erf; using :: erfc; +using :: expm1; using :: exp2; +using :: hypot; using :: ilogb; using :: lgamma; +using :: log1p; using :: log2; using :: logb; +using :: llrint; using :: lrint; using :: nearbyint; +using :: rint; using :: llround; using :: lround; +using :: fdim; using :: fma; using :: fmax; using :: fmin; +using :: round; using :: trunc; +using :: remainder; using :: remquo; +using :: copysign; using :: nan; using :: nextafter; +using :: scalbn; using :: scalbln; +using :: nexttoward; using :: tgamma; + +using :: acoshf; using :: asinhf; using :: atanhf; +using :: cbrtf; using :: erff; using :: erfcf; +using :: expm1f; using :: exp2f; +using :: hypotf; using :: ilogbf; using :: lgammaf; +using :: log1pf; using :: log2f; using :: logbf; +using :: llrintf; using :: lrintf; using :: nearbyintf; +using :: rintf; using :: llroundf; using :: lroundf; +using :: fdimf; using :: fmaf; using :: fmaxf; using :: fminf; +using :: roundf; using :: truncf; +using :: remainderf; using :: remquof; +using :: copysignf; using :: nanf; +using :: nextafterf; using :: scalbnf; using :: scalblnf; +using :: nexttowardf; using :: tgammaf; + +using :: acoshl; using :: asinhl; using :: atanhl; +using :: cbrtl; using :: erfl; using :: erfcl; +using :: expm1l; using :: exp2l; +using :: hypotl; using :: ilogbl; using :: lgammal; +using :: log1pl; using :: log2l; using :: logbl; +using :: llrintl; using :: lrintl; using :: nearbyintl; +using :: rintl; using :: llroundl; using :: lroundl; +using :: fdiml; using :: fmal; using :: fmaxl; using :: fminl; +using :: roundl; using :: truncl; +using :: remainderl; using :: remquol; +using :: copysignl; using :: nanl; +using :: nextafterl; using :: scalbnl; using :: scalblnl; +using :: nexttowardl; using :: tgammal; + +using :: fpclassify; using :: signbit; +using :: isfinite; using :: isinf; +using :: isnan; using :: isnormal; +using :: isgreater; using :: isgreaterequal; +using :: isless; using :: islessequal; +using :: islessgreater; using :: isunordered; +} +# 9 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\limits" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cwchar" 1 3 +# 16 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cwchar" 3 +typedef mbstate_t _Mbstatet; + + +namespace std { +using :: _Mbstatet; + +using :: mbstate_t; using :: size_t; using :: tm; using :: wint_t; + +using :: btowc; using :: fgetwc; using :: fgetws; using :: fputwc; +using :: fputws; using :: fwide; using :: fwprintf; +using :: fwscanf; using :: getwc; using :: getwchar; +using :: mbrlen; using :: mbrtowc; using :: mbsrtowcs; +using :: mbsinit; using :: putwc; using :: putwchar; +using :: swprintf; using :: swscanf; using :: ungetwc; +using :: vfwprintf; using :: vswprintf; using :: vwprintf; +using :: wcrtomb; using :: wprintf; using :: wscanf; +using :: wcsrtombs; using :: wcstol; using :: wcscat; +using :: wcschr; using :: wcscmp; using :: wcscoll; +using :: wcscpy; using :: wcscspn; using :: wcslen; +using :: wcsncat; using :: wcsncmp; using :: wcsncpy; +using :: wcspbrk; using :: wcsrchr; using :: wcsspn; +using :: wcstod; using :: wcstoul; using :: wcsstr; +using :: wcstok; using :: wcsxfrm; using :: wctob; +using :: wmemchr; using :: wmemcmp; using :: wmemcpy; +using :: wmemmove; using :: wmemset; using :: wcsftime; + +using :: vfwscanf; using :: vswscanf; using :: vwscanf; +using :: wcstof; using :: wcstold; +using :: wcstoll; using :: wcstoull; +} +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\limits" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstddef" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cstddef" 1 3 +# 17 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cstddef" 3 +namespace std { +using :: ptrdiff_t; using :: size_t; +} + + + +namespace std { +typedef double max_align_t; +} + +using ::std:: max_align_t; +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstddef" 2 3 + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\initializer_list" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +namespace std { + +template + class initializer_list + { +public: + typedef _Elem value_type; + typedef const _Elem& reference; + typedef const _Elem& const_reference; + typedef size_t size_type; + + typedef const _Elem* iterator; + typedef const _Elem* const_iterator; + + constexpr initializer_list() noexcept + : _First(0), _Last(0) + { + } + + constexpr initializer_list(const _Elem *_First_arg, + const _Elem *_Last_arg) noexcept + : _First(_First_arg), _Last(_Last_arg) + { + } + + constexpr const _Elem *begin() const noexcept + { + return (_First); + } + + constexpr const _Elem *end() const noexcept + { + return (_Last); + } + + constexpr size_t size() const noexcept + { + return ((size_t)(_Last - _First)); + } + +private: + const _Elem *_First; + const _Elem *_Last; + }; + + +template inline + constexpr const _Elem *begin(initializer_list<_Elem> _Ilist) noexcept + { + return (_Ilist.begin()); + } + + +template inline + constexpr const _Elem *end(initializer_list<_Elem> _Ilist) noexcept + { + return (_Ilist.end()); + } +} + +#pragma warning(pop) +#pragma pack(pop) +# 9 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstddef" 2 3 + + + + +#pragma pack(push,8) +#pragma warning(push, 3) +# 24 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstddef" 3 +namespace std { +# 128 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstddef" 3 +template + struct _If + { + typedef _Ty2 type; + }; + +template + struct _If + { + typedef _Ty1 type; + }; + +template + struct _Always_false + { + static constexpr bool value = false; + }; + + + + + +template + struct unary_function + { + typedef _Arg argument_type; + typedef _Result result_type; + }; + + +template + struct binary_function + { + typedef _Arg1 first_argument_type; + typedef _Arg2 second_argument_type; + typedef _Result result_type; + }; + + + +template + struct plus + { + typedef _Ty first_argument_type; + typedef _Ty second_argument_type; + typedef _Ty result_type; + + constexpr _Ty operator()(const _Ty& _Left, const _Ty& _Right) const + { + return (_Left + _Right); + } + }; + + +template + struct minus + { + typedef _Ty first_argument_type; + typedef _Ty second_argument_type; + typedef _Ty result_type; + + constexpr _Ty operator()(const _Ty& _Left, const _Ty& _Right) const + { + return (_Left - _Right); + } + }; + + +template + struct multiplies + { + typedef _Ty first_argument_type; + typedef _Ty second_argument_type; + typedef _Ty result_type; + + constexpr _Ty operator()(const _Ty& _Left, const _Ty& _Right) const + { + return (_Left * _Right); + } + }; + + +template + struct equal_to + { + typedef _Ty first_argument_type; + typedef _Ty second_argument_type; + typedef bool result_type; + + constexpr bool operator()(const _Ty& _Left, const _Ty& _Right) const + { + return (_Left == _Right); + } + }; + + +template + struct less + { + typedef _Ty first_argument_type; + typedef _Ty second_argument_type; + typedef bool result_type; + + constexpr bool operator()(const _Ty& _Left, const _Ty& _Right) const + { + return (_Left < _Right); + } + }; + + +template<> + struct plus + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty1&& _Left, _Ty2&& _Right) const + -> decltype(static_cast<_Ty1&&>(_Left) + + static_cast<_Ty2&&>(_Right)) + { + return (static_cast<_Ty1&&>(_Left) + + static_cast<_Ty2&&>(_Right)); + } + }; + + +template<> + struct minus + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty1&& _Left, _Ty2&& _Right) const + -> decltype(static_cast<_Ty1&&>(_Left) + - static_cast<_Ty2&&>(_Right)) + { + return (static_cast<_Ty1&&>(_Left) + - static_cast<_Ty2&&>(_Right)); + } + }; + + +template<> + struct multiplies + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty1&& _Left, _Ty2&& _Right) const + -> decltype(static_cast<_Ty1&&>(_Left) + * static_cast<_Ty2&&>(_Right)) + { + return (static_cast<_Ty1&&>(_Left) + * static_cast<_Ty2&&>(_Right)); + } + }; + + +template<> + struct equal_to + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty1&& _Left, _Ty2&& _Right) const + -> decltype(static_cast<_Ty1&&>(_Left) + == static_cast<_Ty2&&>(_Right)) + { + return (static_cast<_Ty1&&>(_Left) + == static_cast<_Ty2&&>(_Right)); + } + }; + + +template<> + struct less + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty1&& _Left, _Ty2&& _Right) const + -> decltype(static_cast<_Ty1&&>(_Left) + < static_cast<_Ty2&&>(_Right)) + { + return (static_cast<_Ty1&&>(_Left) + < static_cast<_Ty2&&>(_Right)); + } + }; + + +} + + + +namespace std { + +inline size_t _Hash_seq(const unsigned char *_First, size_t _Count) + { + + + + + + + static_assert(sizeof(size_t) == 4, "This code is for 32-bit size_t."); + const size_t _FNV_offset_basis = 2166136261U; + const size_t _FNV_prime = 16777619U; + + + size_t _Val = _FNV_offset_basis; + for (size_t _Next = 0; _Next < _Count; ++_Next) + { + _Val ^= (size_t)_First[_Next]; + _Val *= _FNV_prime; + } + return (_Val); + } + + +template + struct _Bitwise_hash + { + typedef _Kty argument_type; + typedef size_t result_type; + + size_t operator()(const _Kty& _Keyval) const + { + return (_Hash_seq((const unsigned char *)&_Keyval, sizeof (_Kty))); + } + }; + + +template + struct hash + : public _Bitwise_hash<_Kty> + { + static constexpr bool _Value = __is_enum(_Kty); + static_assert(_Value, + "The C++ Standard doesn't provide a hash for this type."); + }; +template<> + struct hash + : public _Bitwise_hash + { + }; + +template<> + struct hash + : public _Bitwise_hash + { + }; + +template<> + struct hash + : public _Bitwise_hash + { + }; + +template<> + struct hash + : public _Bitwise_hash + { + }; + +template<> + struct hash + : public _Bitwise_hash + { + }; + +template<> + struct hash + : public _Bitwise_hash + { + }; + + +template<> + struct hash + : public _Bitwise_hash + { + }; + + +template<> + struct hash + : public _Bitwise_hash + { + }; + +template<> + struct hash + : public _Bitwise_hash + { + }; + +template<> + struct hash + : public _Bitwise_hash + { + }; + +template<> + struct hash + : public _Bitwise_hash + { + }; + +template<> + struct hash + : public _Bitwise_hash + { + }; + +template<> + struct hash + : public _Bitwise_hash + { + }; + +template<> + struct hash + : public _Bitwise_hash + { + }; + +template<> + struct hash + : public _Bitwise_hash + { + }; + +template<> + struct hash + : public _Bitwise_hash + { + typedef float _Kty; + typedef _Bitwise_hash<_Kty> _Mybase; + + size_t operator()(const _Kty& _Keyval) const + { + return (_Mybase::operator()( + _Keyval == 0 ? 0 : _Keyval)); + } + }; + +template<> + struct hash + : public _Bitwise_hash + { + typedef double _Kty; + typedef _Bitwise_hash<_Kty> _Mybase; + + size_t operator()(const _Kty& _Keyval) const + { + return (_Mybase::operator()( + _Keyval == 0 ? 0 : _Keyval)); + } + }; + +template<> + struct hash + : public _Bitwise_hash + { + typedef long double _Kty; + typedef _Bitwise_hash<_Kty> _Mybase; + + size_t operator()(const _Kty& _Keyval) const + { + return (_Mybase::operator()( + _Keyval == 0 ? 0 : _Keyval)); + } + }; + +template + struct hash<_Ty *> + : public _Bitwise_hash<_Ty *> + { + }; +} + + + +namespace std { +namespace tr1 { +using ::std:: hash; +} +} +# 633 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstddef" 3 +namespace std { + +template + struct _Arg_types + { + }; + +template + struct _Arg_types<_Ty1> + { + typedef _Ty1 argument_type; + }; + +template + struct _Arg_types<_Ty1, _Ty2> + { + typedef _Ty1 first_argument_type; + typedef _Ty2 second_argument_type; + }; + + +template + struct _Is_function + { + typedef false_type _Bool_type; + static constexpr bool _Weird = false; + }; +# 673 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstddef" 3 +template struct _Is_function<_Ret __cdecl (_Types...) > : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = false; }; template struct _Is_function<_Ret __fastcall (_Types...) > : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = false; }; template struct _Is_function<_Ret __stdcall (_Types...) > : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = false; }; template struct _Is_function<_Ret __vectorcall (_Types...) > : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = false; }; template struct _Is_function<_Ret __cdecl (_Types...) const> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __fastcall (_Types...) const> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __stdcall (_Types...) const> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __vectorcall (_Types...) const> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __cdecl (_Types...) volatile> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __fastcall (_Types...) volatile> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __stdcall (_Types...) volatile> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __vectorcall (_Types...) volatile> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __cdecl (_Types...) const volatile> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __fastcall (_Types...) const volatile> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __stdcall (_Types...) const volatile> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __vectorcall (_Types...) const volatile> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __cdecl (_Types...) &> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __fastcall (_Types...) &> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __stdcall (_Types...) &> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __vectorcall (_Types...) &> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __cdecl (_Types...) const &> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __fastcall (_Types...) const &> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __stdcall (_Types...) const &> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __vectorcall (_Types...) const &> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __cdecl (_Types...) volatile &> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __fastcall (_Types...) volatile &> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __stdcall (_Types...) volatile &> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __vectorcall (_Types...) volatile &> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __cdecl (_Types...) const volatile &> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __fastcall (_Types...) const volatile &> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __stdcall (_Types...) const volatile &> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __vectorcall (_Types...) const volatile &> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __cdecl (_Types...) &&> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __fastcall (_Types...) &&> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __stdcall (_Types...) &&> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __vectorcall (_Types...) &&> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __cdecl (_Types...) const &&> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __fastcall (_Types...) const &&> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __stdcall (_Types...) const &&> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __vectorcall (_Types...) const &&> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __cdecl (_Types...) volatile &&> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __fastcall (_Types...) volatile &&> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __stdcall (_Types...) volatile &&> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __vectorcall (_Types...) volatile &&> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __cdecl (_Types...) const volatile &&> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __fastcall (_Types...) const volatile &&> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __stdcall (_Types...) const volatile &&> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret __vectorcall (_Types...) const volatile &&> : _Arg_types<_Types...> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; +# 686 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstddef" 3 +template struct _Is_function<_Ret (_Types..., ...) > { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = false; }; template struct _Is_function<_Ret (_Types..., ...) const> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret (_Types..., ...) volatile> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret (_Types..., ...) const volatile> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret (_Types..., ...) &> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret (_Types..., ...) const &> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret (_Types..., ...) volatile &> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret (_Types..., ...) const volatile &> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret (_Types..., ...) &&> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret (_Types..., ...) const &&> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret (_Types..., ...) volatile &&> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; template struct _Is_function<_Ret (_Types..., ...) const volatile &&> { typedef true_type _Bool_type; typedef _Ret result_type; static constexpr bool _Weird = true; }; + + +template + struct is_function + : _Is_function<_Ty>::_Bool_type + { + }; + + +template + constexpr bool is_function_v = is_function<_Ty>::value; +# 722 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstddef" 3 +template inline + constexpr _Ty *addressof(_Ty& _Val) noexcept + { + return (__builtin_addressof(_Val)); + } + + + + +template inline + auto _Unfancy(_Ptrty _Ptr) + { + return (::std:: addressof(*_Ptr)); + } + +template inline + _Ty * _Unfancy(_Ty * _Ptr) + { + return (_Ptr); + } + +} + +#pragma warning(pop) +#pragma pack(pop) +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\limits" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +namespace std { +# 52 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\limits" 3 +typedef enum + { + denorm_indeterminate = -1, + denorm_absent = 0, + denorm_present = 1} + float_denorm_style; + + +typedef enum + { + round_indeterminate = -1, + round_toward_zero = 0, + round_to_nearest = 1, + round_toward_infinity = 2, + round_toward_neg_infinity = 3} + float_round_style; + + +struct _Num_base + { + static constexpr float_denorm_style has_denorm = (float_denorm_style)(denorm_absent); + static constexpr bool has_denorm_loss = (bool)(false); + static constexpr bool has_infinity = (bool)(false); + static constexpr bool has_quiet_NaN = (bool)(false); + static constexpr bool has_signaling_NaN = (bool)(false); + static constexpr bool is_bounded = (bool)(false); + static constexpr bool is_exact = (bool)(false); + static constexpr bool is_iec559 = (bool)(false); + static constexpr bool is_integer = (bool)(false); + static constexpr bool is_modulo = (bool)(false); + static constexpr bool is_signed = (bool)(false); + static constexpr bool is_specialized = (bool)(false); + static constexpr bool tinyness_before = (bool)(false); + static constexpr bool traps = (bool)(false); + static constexpr float_round_style round_style = (float_round_style)(round_toward_zero); + static constexpr int digits = (int)(0); + static constexpr int digits10 = (int)(0); + + static constexpr int max_digits10 = (int)(0); + + static constexpr int max_exponent = (int)(0); + static constexpr int max_exponent10 = (int)(0); + static constexpr int min_exponent = (int)(0); + static constexpr int min_exponent10 = (int)(0); + static constexpr int radix = (int)(0); + }; + + +template + class numeric_limits + : public _Num_base + { +public: + static constexpr _Ty (min)() noexcept + { + return (_Ty()); + } + + static constexpr _Ty (max)() noexcept + { + return (_Ty()); + } + + static constexpr _Ty lowest() noexcept + { + return (_Ty()); + } + + static constexpr _Ty epsilon() noexcept + { + return (_Ty()); + } + + static constexpr _Ty round_error() noexcept + { + return (_Ty()); + } + + static constexpr _Ty denorm_min() noexcept + { + return (_Ty()); + } + + static constexpr _Ty infinity() noexcept + { + return (_Ty()); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (_Ty()); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (_Ty()); + } + }; + +template + class numeric_limits + : public numeric_limits<_Ty> + { + }; + +template + class numeric_limits + : public numeric_limits<_Ty> + { + }; + +template + class numeric_limits + : public numeric_limits<_Ty> + { + }; + + +struct _Num_int_base + : public _Num_base + { + static constexpr bool is_bounded = (bool)(true); + static constexpr bool is_exact = (bool)(true); + static constexpr bool is_integer = (bool)(true); + static constexpr bool is_modulo = (bool)(true); + static constexpr bool is_specialized = (bool)(true); + static constexpr int radix = (int)(2); + }; + + +struct _Num_float_base + : public _Num_base + { + static constexpr float_denorm_style has_denorm = (float_denorm_style)(denorm_present); + static constexpr bool has_denorm_loss = (bool)(true); + static constexpr bool has_infinity = (bool)(true); + static constexpr bool has_quiet_NaN = (bool)(true); + static constexpr bool has_signaling_NaN = (bool)(true); + static constexpr bool is_bounded = (bool)(true); + static constexpr bool is_exact = (bool)(false); + static constexpr bool is_iec559 = (bool)(true); + static constexpr bool is_integer = (bool)(false); + static constexpr bool is_modulo = (bool)(false); + static constexpr bool is_signed = (bool)(true); + static constexpr bool is_specialized = (bool)(true); + static constexpr bool tinyness_before = (bool)(true); + static constexpr bool traps = (bool)(false); + static constexpr float_round_style round_style = (float_round_style)(round_to_nearest); + static constexpr int radix = (int)(2); + }; + + +template<> class numeric_limits + : public _Num_int_base + { +public: + typedef char _Ty; + + static constexpr _Ty (min)() noexcept + { + return ((-128)); + } + + static constexpr _Ty (max)() noexcept + { + return (127); + } + + static constexpr _Ty lowest() noexcept + { + return ((min)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (0); + } + + static constexpr _Ty round_error() noexcept + { + return (0); + } + + static constexpr _Ty denorm_min() noexcept + { + return (0); + } + + static constexpr _Ty infinity() noexcept + { + return (0); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (0); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (0); + } + + static constexpr bool is_signed = (bool)((-128) != 0); + static constexpr int digits = (int)(8 - ((-128) != 0 ? 1 : 0)); + static constexpr int digits10 = (int)((8 - ((-128) != 0 ? 1 : 0)) * 301L / 1000); + + }; + + +template<> class numeric_limits + : public _Num_int_base + { +public: + typedef wchar_t _Ty; + + static constexpr _Ty (min)() noexcept + { + return ((_Ty)0x0000); + } + + static constexpr _Ty (max)() noexcept + { + return ((_Ty)0xffff); + } + + static constexpr _Ty lowest() noexcept + { + return ((min)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (0); + } + + static constexpr _Ty round_error() noexcept + { + return (0); + } + + static constexpr _Ty denorm_min() noexcept + { + return (0); + } + + static constexpr _Ty infinity() noexcept + { + return (0); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (0); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (0); + } + + static constexpr bool is_signed = (bool)(0x0000 != 0); + static constexpr int digits = (int)(8 * sizeof (wchar_t) - (0x0000 != 0 ? 1 : 0)); + + static constexpr int digits10 = (int)((8 * sizeof (wchar_t) - (0x0000 != 0 ? 1 : 0)) * 301L / 1000); + + }; + + +template<> class numeric_limits + : public _Num_int_base + { +public: + typedef bool _Ty; + + static constexpr _Ty (min)() noexcept + { + return (false); + } + + static constexpr _Ty (max)() noexcept + { + return (true); + } + + static constexpr _Ty lowest() noexcept + { + return ((min)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (0); + } + + static constexpr _Ty round_error() noexcept + { + return (0); + } + + static constexpr _Ty denorm_min() noexcept + { + return (0); + } + + static constexpr _Ty infinity() noexcept + { + return (0); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (0); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (0); + } + + static constexpr bool is_modulo = (bool)(false); + static constexpr bool is_signed = (bool)(false); + static constexpr int digits = (int)(1); + static constexpr int digits10 = (int)(0); + }; + + +template<> class numeric_limits + : public _Num_int_base + { +public: + typedef signed char _Ty; + + static constexpr _Ty (min)() noexcept + { + return ((-128)); + } + + static constexpr _Ty (max)() noexcept + { + return (127); + } + + static constexpr _Ty lowest() noexcept + { + return ((min)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (0); + } + + static constexpr _Ty round_error() noexcept + { + return (0); + } + + static constexpr _Ty denorm_min() noexcept + { + return (0); + } + + static constexpr _Ty infinity() noexcept + { + return (0); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (0); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (0); + } + + static constexpr bool is_signed = (bool)(true); + static constexpr int digits = (int)(8 - 1); + static constexpr int digits10 = (int)((8 - 1) * 301L / 1000); + }; + + +template<> class numeric_limits + : public _Num_int_base + { +public: + typedef unsigned char _Ty; + + static constexpr _Ty (min)() noexcept + { + return (0); + } + + static constexpr _Ty (max)() noexcept + { + return (0xff); + } + + static constexpr _Ty lowest() noexcept + { + return ((min)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (0); + } + + static constexpr _Ty round_error() noexcept + { + return (0); + } + + static constexpr _Ty denorm_min() noexcept + { + return (0); + } + + static constexpr _Ty infinity() noexcept + { + return (0); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (0); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (0); + } + + static constexpr bool is_signed = (bool)(false); + static constexpr int digits = (int)(8); + static constexpr int digits10 = (int)(8 * 301L / 1000); + }; + + +template<> class numeric_limits + : public _Num_int_base + { +public: + typedef short _Ty; + + static constexpr _Ty (min)() noexcept + { + return ((-32768)); + } + + static constexpr _Ty (max)() noexcept + { + return (32767); + } + + static constexpr _Ty lowest() noexcept + { + return ((min)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (0); + } + + static constexpr _Ty round_error() noexcept + { + return (0); + } + + static constexpr _Ty denorm_min() noexcept + { + return (0); + } + + static constexpr _Ty infinity() noexcept + { + return (0); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (0); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (0); + } + + static constexpr bool is_signed = (bool)(true); + static constexpr int digits = (int)(8 * sizeof (short) - 1); + static constexpr int digits10 = (int)((8 * sizeof (short) - 1) * 301L / 1000); + + }; + + + +template<> class numeric_limits + : public _Num_int_base + { +public: + typedef unsigned short _Ty; + + static constexpr _Ty (min)() noexcept + { + return (0); + } + + static constexpr _Ty (max)() noexcept + { + return (0xffff); + } + + static constexpr _Ty lowest() noexcept + { + return ((min)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (0); + } + + static constexpr _Ty round_error() noexcept + { + return (0); + } + + static constexpr _Ty denorm_min() noexcept + { + return (0); + } + + static constexpr _Ty infinity() noexcept + { + return (0); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (0); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (0); + } + + static constexpr bool is_signed = (bool)(false); + static constexpr int digits = (int)(8 * sizeof (unsigned short)); + static constexpr int digits10 = (int)(8 * sizeof (unsigned short) * 301L / 1000); + + }; + + + +template<> class numeric_limits + : public _Num_int_base + { +public: + typedef char16_t _Ty; + + static constexpr _Ty (min)() noexcept + { + return (0); + } + + static constexpr _Ty (max)() noexcept + { + return (0xffff); + } + + static constexpr _Ty lowest() noexcept + { + return ((min)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (0); + } + + static constexpr _Ty round_error() noexcept + { + return (0); + } + + static constexpr _Ty denorm_min() noexcept + { + return (0); + } + + static constexpr _Ty infinity() noexcept + { + return (0); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (0); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (0); + } + + static constexpr bool is_signed = (bool)(false); + static constexpr int digits = (int)(8 * sizeof (char16_t)); + static constexpr int digits10 = (int)(8 * sizeof (char16_t) * 301L / 1000); + + }; + + +template<> class numeric_limits + : public _Num_int_base + { +public: + typedef int _Ty; + + static constexpr _Ty (min)() noexcept + { + return ((-2147483647 - 1)); + } + + static constexpr _Ty (max)() noexcept + { + return (2147483647); + } + + static constexpr _Ty lowest() noexcept + { + return ((min)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (0); + } + + static constexpr _Ty round_error() noexcept + { + return (0); + } + + static constexpr _Ty denorm_min() noexcept + { + return (0); + } + + static constexpr _Ty infinity() noexcept + { + return (0); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (0); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (0); + } + + static constexpr bool is_signed = (bool)(true); + static constexpr int digits = (int)(8 * sizeof (int) - 1); + static constexpr int digits10 = (int)((8 * sizeof (int) - 1) * 301L / 1000); + + }; + + +template<> class numeric_limits + : public _Num_int_base + { +public: + typedef unsigned int _Ty; + + static constexpr _Ty (min)() noexcept + { + return (0); + } + + static constexpr _Ty (max)() noexcept + { + return (0xffffffff); + } + + static constexpr _Ty lowest() noexcept + { + return ((min)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (0); + } + + static constexpr _Ty round_error() noexcept + { + return (0); + } + + static constexpr _Ty denorm_min() noexcept + { + return (0); + } + + static constexpr _Ty infinity() noexcept + { + return (0); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (0); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (0); + } + + static constexpr bool is_signed = (bool)(false); + static constexpr int digits = (int)(8 * sizeof (unsigned int)); + static constexpr int digits10 = (int)(8 * sizeof (unsigned int) * 301L / 1000); + + }; + + +template<> class numeric_limits + : public _Num_int_base + { +public: + typedef long _Ty; + + static constexpr _Ty (min)() noexcept + { + return ((-2147483647L - 1)); + } + + static constexpr _Ty (max)() noexcept + { + return (2147483647L); + } + + static constexpr _Ty lowest() noexcept + { + return ((min)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (0); + } + + static constexpr _Ty round_error() noexcept + { + return (0); + } + + static constexpr _Ty denorm_min() noexcept + { + return (0); + } + + static constexpr _Ty infinity() noexcept + { + return (0); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (0); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (0); + } + + static constexpr bool is_signed = (bool)(true); + static constexpr int digits = (int)(8 * sizeof (long) - 1); + static constexpr int digits10 = (int)((8 * sizeof (long) - 1) * 301L / 1000); + + }; + + +template<> class numeric_limits + : public _Num_int_base + { +public: + typedef unsigned long _Ty; + + static constexpr _Ty (min)() noexcept + { + return (0); + } + + static constexpr _Ty (max)() noexcept + { + return (0xffffffffUL); + } + + static constexpr _Ty lowest() noexcept + { + return ((min)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (0); + } + + static constexpr _Ty round_error() noexcept + { + return (0); + } + + static constexpr _Ty denorm_min() noexcept + { + return (0); + } + + static constexpr _Ty infinity() noexcept + { + return (0); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (0); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (0); + } + + static constexpr bool is_signed = (bool)(false); + static constexpr int digits = (int)(8 * sizeof (unsigned long)); + static constexpr int digits10 = (int)(8 * sizeof (unsigned long) * 301L / 1000); + + }; + + +template<> class numeric_limits + : public _Num_int_base + { +public: + typedef char32_t _Ty; + + static constexpr _Ty (min)() noexcept + { + return (0); + } + + static constexpr _Ty (max)() noexcept + { + return (0xffffffff); + } + + static constexpr _Ty lowest() noexcept + { + return ((min)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (0); + } + + static constexpr _Ty round_error() noexcept + { + return (0); + } + + static constexpr _Ty denorm_min() noexcept + { + return (0); + } + + static constexpr _Ty infinity() noexcept + { + return (0); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (0); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (0); + } + + static constexpr bool is_signed = (bool)(false); + static constexpr int digits = (int)(8 * sizeof (char32_t)); + static constexpr int digits10 = (int)(8 * sizeof (char32_t) * 301L / 1000); + + }; + + +template<> class numeric_limits + : public _Num_int_base + { +public: + typedef long long _Ty; + + static constexpr _Ty (min)() noexcept + { + return (-0x7fffffffffffffff - 1); + } + + static constexpr _Ty (max)() noexcept + { + return (0x7fffffffffffffff); + } + + static constexpr _Ty lowest() noexcept + { + return ((min)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (0); + } + + static constexpr _Ty round_error() noexcept + { + return (0); + } + + static constexpr _Ty denorm_min() noexcept + { + return (0); + } + + static constexpr _Ty infinity() noexcept + { + return (0); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (0); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (0); + } + + static constexpr bool is_signed = (bool)(true); + static constexpr int digits = (int)(8 * sizeof (long long) - 1); + static constexpr int digits10 = (int)((8 * sizeof (long long) - 1) * 301L / 1000); + + }; + + +template<> class numeric_limits + : public _Num_int_base + { +public: + typedef unsigned long long _Ty; + + static constexpr _Ty (min)() noexcept + { + return (0); + } + + static constexpr _Ty (max)() noexcept + { + return (0xffffffffffffffff); + } + + static constexpr _Ty lowest() noexcept + { + return ((min)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (0); + } + + static constexpr _Ty round_error() noexcept + { + return (0); + } + + static constexpr _Ty denorm_min() noexcept + { + return (0); + } + + static constexpr _Ty infinity() noexcept + { + return (0); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (0); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (0); + } + + static constexpr bool is_signed = (bool)(false); + static constexpr int digits = (int)(8 * sizeof (unsigned long long)); + static constexpr int digits10 = (int)(8 * sizeof (unsigned long long) * 301L / 1000); + + }; + + +template<> class numeric_limits + : public _Num_float_base + { +public: + typedef float _Ty; + + static constexpr _Ty (min)() noexcept + { + return (1.175494351e-38F); + } + + static constexpr _Ty (max)() noexcept + { + return (3.402823466e+38F); + } + + static constexpr _Ty lowest() noexcept + { + return (-(max)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (1.192092896e-07F); + } + + static constexpr _Ty round_error() noexcept + { + return (0.5F); + } + + static constexpr _Ty denorm_min() noexcept + { + return (1.401298464e-45F); + } + + static constexpr _Ty infinity() noexcept + { + return (__builtin_huge_valf()); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (__builtin_nanf("0")); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (__builtin_nansf("1")); + } + + static constexpr int digits = (int)(24); + static constexpr int digits10 = (int)(6); + + static constexpr int max_digits10 = (int)(2 + 24 * 301L / 1000); + + static constexpr int max_exponent = (int)((int)128); + static constexpr int max_exponent10 = (int)((int)38); + static constexpr int min_exponent = (int)((int)(-125)); + static constexpr int min_exponent10 = (int)((int)(-37)); + }; + + +template<> class numeric_limits + : public _Num_float_base + { +public: + typedef double _Ty; + + static constexpr _Ty (min)() noexcept + { + return (2.2250738585072014e-308); + } + + static constexpr _Ty (max)() noexcept + { + return (1.7976931348623158e+308); + } + + static constexpr _Ty lowest() noexcept + { + return (-(max)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (2.2204460492503131e-016); + } + + static constexpr _Ty round_error() noexcept + { + return (0.5); + } + + static constexpr _Ty denorm_min() noexcept + { + return (4.9406564584124654e-324); + } + + static constexpr _Ty infinity() noexcept + { + return (__builtin_huge_val()); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (__builtin_nan("0")); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (__builtin_nans("1")); + } + + static constexpr int digits = (int)(53); + static constexpr int digits10 = (int)(15); + + static constexpr int max_digits10 = (int)(2 + 53 * 301L / 1000); + + static constexpr int max_exponent = (int)((int)1024); + static constexpr int max_exponent10 = (int)((int)308); + static constexpr int min_exponent = (int)((int)(-1021)); + static constexpr int min_exponent10 = (int)((int)(-307)); + }; + + +template<> class numeric_limits + : public _Num_float_base + { +public: + typedef long double _Ty; + + static constexpr _Ty (min)() noexcept + { + return (2.2250738585072014e-308); + } + + static constexpr _Ty (max)() noexcept + { + return (1.7976931348623158e+308); + } + + static constexpr _Ty lowest() noexcept + { + return (-(max)()); + } + + static constexpr _Ty epsilon() noexcept + { + return (2.2204460492503131e-016); + } + + static constexpr _Ty round_error() noexcept + { + return (0.5L); + } + + static constexpr _Ty denorm_min() noexcept + { + return (4.9406564584124654e-324); + } + + static constexpr _Ty infinity() noexcept + { + return (__builtin_huge_val()); + } + + static constexpr _Ty quiet_NaN() noexcept + { + return (__builtin_nan("0")); + } + + static constexpr _Ty signaling_NaN() noexcept + { + return (__builtin_nans("1")); + } + + static constexpr int digits = (int)(53); + static constexpr int digits10 = (int)(15); + + static constexpr int max_digits10 = (int)(2 + 53 * 301L / 1000); + + static constexpr int max_exponent = (int)((int)1024); + static constexpr int max_exponent10 = (int)((int)308); + static constexpr int min_exponent = (int)((int)(-1021)); + static constexpr int min_exponent10 = (int)((int)(-307)); + }; +# 1481 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\limits" 3 +} + +#pragma warning(pop) +#pragma pack(pop) +# 8 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\new" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\exception" 1 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\type_traits" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + +#pragma warning(disable: 4180 4296) + +namespace std { +template + struct _Is_memfunptr + { + typedef false_type _Bool_type; + }; +# 33 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\type_traits" 3 +template struct _Is_memfunptr<_Ret (__cdecl _Arg0::*)(_Types...) > : _Arg_types< _Arg0 *, _Types...> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__fastcall _Arg0::*)(_Types...) > : _Arg_types< _Arg0 *, _Types...> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__stdcall _Arg0::*)(_Types...) > : _Arg_types< _Arg0 *, _Types...> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__thiscall _Arg0::*)(_Types...) > : _Arg_types< _Arg0 *, _Types...> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__vectorcall _Arg0::*)(_Types...) > : _Arg_types< _Arg0 *, _Types...> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__cdecl _Arg0::*)(_Types...) const > : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__fastcall _Arg0::*)(_Types...) const > : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__stdcall _Arg0::*)(_Types...) const > : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__thiscall _Arg0::*)(_Types...) const > : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__vectorcall _Arg0::*)(_Types...) const > : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__cdecl _Arg0::*)(_Types...) volatile > : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__fastcall _Arg0::*)(_Types...) volatile > : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__stdcall _Arg0::*)(_Types...) volatile > : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__thiscall _Arg0::*)(_Types...) volatile > : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__vectorcall _Arg0::*)(_Types...) volatile > : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__cdecl _Arg0::*)(_Types...) const volatile > : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__fastcall _Arg0::*)(_Types...) const volatile > : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__stdcall _Arg0::*)(_Types...) const volatile > : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__thiscall _Arg0::*)(_Types...) const volatile > : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__vectorcall _Arg0::*)(_Types...) const volatile > : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__cdecl _Arg0::*)(_Types...) &> : _Arg_types< _Arg0 *, _Types...> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__fastcall _Arg0::*)(_Types...) &> : _Arg_types< _Arg0 *, _Types...> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__stdcall _Arg0::*)(_Types...) &> : _Arg_types< _Arg0 *, _Types...> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__thiscall _Arg0::*)(_Types...) &> : _Arg_types< _Arg0 *, _Types...> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__vectorcall _Arg0::*)(_Types...) &> : _Arg_types< _Arg0 *, _Types...> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__cdecl _Arg0::*)(_Types...) const &> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__fastcall _Arg0::*)(_Types...) const &> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__stdcall _Arg0::*)(_Types...) const &> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__thiscall _Arg0::*)(_Types...) const &> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__vectorcall _Arg0::*)(_Types...) const &> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__cdecl _Arg0::*)(_Types...) volatile &> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__fastcall _Arg0::*)(_Types...) volatile &> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__stdcall _Arg0::*)(_Types...) volatile &> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__thiscall _Arg0::*)(_Types...) volatile &> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__vectorcall _Arg0::*)(_Types...) volatile &> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__cdecl _Arg0::*)(_Types...) const volatile &> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__fastcall _Arg0::*)(_Types...) const volatile &> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__stdcall _Arg0::*)(_Types...) const volatile &> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__thiscall _Arg0::*)(_Types...) const volatile &> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__vectorcall _Arg0::*)(_Types...) const volatile &> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__cdecl _Arg0::*)(_Types...) &&> : _Arg_types< _Arg0 *, _Types...> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__fastcall _Arg0::*)(_Types...) &&> : _Arg_types< _Arg0 *, _Types...> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__stdcall _Arg0::*)(_Types...) &&> : _Arg_types< _Arg0 *, _Types...> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__thiscall _Arg0::*)(_Types...) &&> : _Arg_types< _Arg0 *, _Types...> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__vectorcall _Arg0::*)(_Types...) &&> : _Arg_types< _Arg0 *, _Types...> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__cdecl _Arg0::*)(_Types...) const &&> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__fastcall _Arg0::*)(_Types...) const &&> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__stdcall _Arg0::*)(_Types...) const &&> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__thiscall _Arg0::*)(_Types...) const &&> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__vectorcall _Arg0::*)(_Types...) const &&> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__cdecl _Arg0::*)(_Types...) volatile &&> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__fastcall _Arg0::*)(_Types...) volatile &&> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__stdcall _Arg0::*)(_Types...) volatile &&> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__thiscall _Arg0::*)(_Types...) volatile &&> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__vectorcall _Arg0::*)(_Types...) volatile &&> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__cdecl _Arg0::*)(_Types...) const volatile &&> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__fastcall _Arg0::*)(_Types...) const volatile &&> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__stdcall _Arg0::*)(_Types...) const volatile &&> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__thiscall _Arg0::*)(_Types...) const volatile &&> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (__vectorcall _Arg0::*)(_Types...) const volatile &&> : _Arg_types { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; +# 47 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\type_traits" 3 +template struct _Is_memfunptr<_Ret (_Arg0::*)(_Types..., ...) > { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (_Arg0::*)(_Types..., ...) const> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (_Arg0::*)(_Types..., ...) volatile> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (_Arg0::*)(_Types..., ...) const volatile> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (_Arg0::*)(_Types..., ...) &> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (_Arg0::*)(_Types..., ...) const &> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (_Arg0::*)(_Types..., ...) volatile &> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (_Arg0::*)(_Types..., ...) const volatile &> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (_Arg0::*)(_Types..., ...) &&> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (_Arg0::*)(_Types..., ...) const &&> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (_Arg0::*)(_Types..., ...) volatile &&> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; template struct _Is_memfunptr<_Ret (_Arg0::*)(_Types..., ...) const volatile &&> { typedef true_type _Bool_type; typedef _Ret result_type; typedef _Arg0 _Class_type; }; + + + +template + struct is_void + : false_type + { + }; +# 64 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\type_traits" 3 +template<> struct is_void< void> : true_type { }; template<> struct is_void : true_type { }; template<> struct is_void : true_type { }; template<> struct is_void : true_type { }; + + + + +template + struct add_const + { + typedef const _Ty type; + }; + + +template + struct add_volatile + { + typedef volatile _Ty type; + }; + + +template + struct add_cv + { + typedef const volatile _Ty type; + }; + + +template::_Weird || is_void<_Ty>::value> + struct _Add_reference + { + typedef _Ty _Lvalue; + typedef _Ty _Rvalue; + }; + +template + struct _Add_reference<_Ty, false> + { + typedef _Ty& _Lvalue; + typedef _Ty&& _Rvalue; + }; + + +template + struct add_lvalue_reference + { + typedef typename _Add_reference<_Ty>::_Lvalue type; + }; + + +template + struct add_rvalue_reference + { + typedef typename _Add_reference<_Ty>::_Rvalue type; + }; + + +template + typename add_rvalue_reference<_Ty>::type + declval() noexcept; + + +template + struct remove_extent + { + typedef _Ty type; + }; + +template + struct remove_extent<_Ty[_Ix]> + { + typedef _Ty type; + }; + +template + struct remove_extent<_Ty[]> + { + typedef _Ty type; + }; + + +template + struct remove_all_extents + { + typedef _Ty type; + }; + +template + struct remove_all_extents<_Ty[_Ix]> + { + typedef typename remove_all_extents<_Ty>::type type; + }; + +template + struct remove_all_extents<_Ty[]> + { + typedef typename remove_all_extents<_Ty>::type type; + }; + + +template + struct remove_pointer + { + typedef _Ty type; + }; +# 176 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\type_traits" 3 +template struct remove_pointer<_Ty *> { typedef _Ty type; }; template struct remove_pointer<_Ty *const> { typedef _Ty type; }; template struct remove_pointer<_Ty *volatile> { typedef _Ty type; }; template struct remove_pointer<_Ty *const volatile> { typedef _Ty type; }; + + + +template::_Weird> + struct _Add_pointer + { + typedef _Ty type; + }; + +template + struct _Add_pointer<_Ty, false> + { + typedef typename remove_reference<_Ty>::type *type; + }; + +template + struct add_pointer + { + typedef typename _Add_pointer<_Ty>::type type; + }; + + + +template + struct is_array + : false_type + { + }; + +template + struct is_array<_Ty[_Nx]> + : true_type + { + }; + +template + struct is_array<_Ty[]> + : true_type + { + }; + + +template + struct is_lvalue_reference + : false_type + { + }; + +template + struct is_lvalue_reference<_Ty&> + : true_type + { + }; + + +template + struct is_rvalue_reference + : false_type + { + }; + +template + struct is_rvalue_reference<_Ty&&> + : true_type + { + }; + + +template + struct is_reference + : _Cat_base::value + || is_rvalue_reference<_Ty>::value> + { + }; + + + +template::_Bool_type::value> + struct _Is_member_object_pointer + : false_type + { + }; + +template + struct _Is_member_object_pointer<_Ty1 _Ty2::*, false> + : true_type + { + typedef _Ty2 _Class_type; + }; + +template + struct is_member_object_pointer + : _Is_member_object_pointer::type>::type + { + }; + + +template + struct is_member_function_pointer + : _Is_memfunptr::type>::_Bool_type + { + }; + + +template + struct _Is_pointer + : false_type + { + }; + +template + struct _Is_pointer<_Ty *> + : _Cat_base::value + && !is_member_function_pointer<_Ty *>::value> + { + }; + +template + struct is_pointer + : _Is_pointer::type> + { + }; + + + +template + struct is_null_pointer + : _Cat_base::type, nullptr_t>::value> + { + }; + + +template + struct is_union + : _Cat_base<__is_union(_Ty)> + { + }; + + +template + struct is_class + : _Cat_base<__is_class(_Ty)> + { + }; + + +template + struct is_fundamental + : _Cat_base::value + || is_void<_Ty>::value + || is_null_pointer<_Ty>::value> + { + }; + + +template + struct is_object + : _Cat_base::value + && !is_reference<_Ty>::value + && !is_void<_Ty>::value> + { + }; + + + +template + struct is_convertible + : _Cat_base<__is_convertible_to(_From, _To)> + { + }; + + +template + struct is_enum + : _Cat_base<__is_enum(_Ty)> + { + }; + + +template + struct is_compound + : _Cat_base::value> + { + }; + + +template + struct is_member_pointer + : _Cat_base::value + || is_member_function_pointer<_Ty>::value> + { + }; + + +template + struct is_scalar + : _Cat_base::value + || is_enum<_Ty>::value + || is_pointer<_Ty>::value + || is_member_pointer<_Ty>::value + || is_null_pointer<_Ty>::value> + { + }; + + +template + struct is_const + : false_type + { + }; + +template + struct is_const + : true_type + { + }; + + +template + struct is_volatile + : false_type + { + }; + +template + struct is_volatile + : true_type + { + }; + + +template + struct is_pod + : _Cat_base<__is_pod(_Ty)> + { + }; + + +template + struct is_empty + : _Cat_base<__is_empty(_Ty)> + { + }; + + +template + struct is_polymorphic + : _Cat_base<__is_polymorphic(_Ty)> + { + }; + + +template + struct is_abstract + : _Cat_base<__is_abstract(_Ty)> + { + }; + + +template + struct is_final + : _Cat_base<__is_final(_Ty)> + { + }; + + +template + struct is_standard_layout + : _Cat_base<__is_standard_layout(_Ty)> + { + }; + + +template + struct is_literal_type + : _Cat_base<__is_literal_type(_Ty)> + { + }; + + +template + struct is_trivial + : _Cat_base<__is_trivial(_Ty)> + { + }; + + +template + struct is_trivially_copyable + : _Cat_base<__is_trivially_copyable(_Ty)> + { + }; + + +template + struct has_virtual_destructor + : _Cat_base<__has_virtual_destructor(_Ty)> + { + }; + + + + +template + struct is_constructible + : _Cat_base<__is_constructible(_Ty, _Args...)> + { + }; + + +template + struct is_copy_constructible + : is_constructible< + _Ty, + typename add_lvalue_reference< + typename add_const<_Ty>::type + >::type + >::type + { + }; + + +template + struct is_default_constructible + : is_constructible<_Ty>::type + { + }; + + +template + struct is_move_constructible + : is_constructible< + _Ty, + typename add_rvalue_reference<_Ty>::type + >::type + { + }; + + +template + struct is_assignable + : integral_constant + { + }; + + +template + struct is_copy_assignable + : is_assignable< + typename add_lvalue_reference<_Ty>::type, + typename add_lvalue_reference< + typename add_const<_Ty>::type + >::type + >::type + { + }; + + +template + struct is_move_assignable + : is_assignable< + typename add_lvalue_reference<_Ty>::type, + typename add_rvalue_reference<_Ty>::type + >::type + { + }; + + +template + struct is_destructible + : _Cat_base<__is_destructible(_Ty)> + { + }; + + + + +template + struct is_trivially_constructible + : _Cat_base<__is_trivially_constructible(_Ty, _Args...)> + { + }; + + +template + struct is_trivially_copy_constructible + : is_trivially_constructible< + _Ty, + typename add_lvalue_reference< + typename add_const<_Ty>::type + >::type + >::type + { + }; + + +template + struct is_trivially_default_constructible + : is_trivially_constructible<_Ty>::type + { + }; + + +template + struct is_trivially_move_constructible + : is_trivially_constructible< + _Ty, + typename add_rvalue_reference<_Ty>::type + >::type + { + }; + + +template + struct is_trivially_assignable + : _Cat_base<__is_trivially_assignable(_To, _From)> + { + }; + + +template + struct is_trivially_copy_assignable + : is_trivially_assignable< + typename add_lvalue_reference<_Ty>::type, + typename add_lvalue_reference< + typename add_const<_Ty>::type + >::type + >::type + { + }; + + +template + struct is_trivially_move_assignable + : is_trivially_assignable< + typename add_lvalue_reference<_Ty>::type, + typename add_rvalue_reference<_Ty>::type + >::type + { + }; + + +template + struct is_trivially_destructible + : _Cat_base<__has_trivial_destructor(_Ty)> + { + }; + + + + +template + struct is_nothrow_constructible + : _Cat_base<__is_nothrow_constructible(_Ty, _Args...)> + { + }; + + +template + struct is_nothrow_copy_constructible + : is_nothrow_constructible< + _Ty, + typename add_lvalue_reference< + typename add_const<_Ty>::type + >::type + >::type + { + }; + + +template + struct is_nothrow_default_constructible + : is_nothrow_constructible<_Ty>::type + { + }; + + +template + struct is_nothrow_move_constructible + : is_nothrow_constructible< + _Ty, + typename add_rvalue_reference<_Ty>::type + >::type + { + }; + + +template + struct is_nothrow_assignable + : _Cat_base<__is_nothrow_assignable(_To, _From)> + { + }; + + +template + struct is_nothrow_copy_assignable + : is_nothrow_assignable< + typename add_lvalue_reference<_Ty>::type, + typename add_lvalue_reference< + typename add_const<_Ty>::type + >::type + >::type + { + }; + + +template + struct is_nothrow_move_assignable + : is_nothrow_assignable< + typename add_lvalue_reference<_Ty>::type, + typename add_rvalue_reference<_Ty>::type + >::type + { + }; + + +template + struct is_nothrow_destructible + : _Cat_base<__is_nothrow_destructible(_Ty)> + { + }; + + +template::value> + struct _Sign_base + { + typedef typename remove_cv<_Ty>::type _Uty; + typedef _Cat_base<_Uty(-1) < _Uty(0)> _Signed; + typedef _Cat_base<_Uty(0) < _Uty(-1)> _Unsigned; + }; + +template + struct _Sign_base<_Ty, false> + { + + typedef is_floating_point<_Ty> _Signed; + typedef false_type _Unsigned; + }; + +template + struct is_signed + : _Sign_base<_Ty>::_Signed + { + }; + + +template + struct is_unsigned + : _Sign_base<_Ty>::_Unsigned + { + }; + + +template + struct _Change_sign + { + static_assert( + ((is_integral<_Ty>::value || is_enum<_Ty>::value) + && !is_same<_Ty, bool>::value), + "make_signed/make_unsigned require that T shall be a (possibly " + "cv-qualified) integral type or enumeration but not a bool type."); + + typedef + typename _If::value + || is_same<_Ty, unsigned char >::value, signed char, + typename _If::value + || is_same<_Ty, unsigned short >::value, short, + typename _If::value + || is_same<_Ty, unsigned int >::value, int, + typename _If::value + || is_same<_Ty, unsigned long >::value, long, + typename _If::value + || is_same<_Ty, unsigned long long>::value, long long, + typename _If::type>::type>::type>::type>::type>::type>::type>::type>::type + _Signed; + + typedef + typename _If::value, unsigned char, + typename _If::value, unsigned short, + typename _If::value, unsigned int, + typename _If::value, unsigned long, + unsigned long long + >::type>::type>::type>::type + _Unsigned; + }; + +template + struct _Change_sign + { + typedef const typename _Change_sign<_Ty>::_Signed _Signed; + typedef const typename _Change_sign<_Ty>::_Unsigned _Unsigned; + }; + +template + struct _Change_sign + { + typedef volatile typename _Change_sign<_Ty>::_Signed _Signed; + typedef volatile typename _Change_sign<_Ty>::_Unsigned _Unsigned; + }; + +template + struct _Change_sign + { + typedef const volatile typename _Change_sign<_Ty>::_Signed _Signed; + typedef const volatile typename _Change_sign<_Ty>::_Unsigned _Unsigned; + }; + + +template + struct make_signed + { + typedef typename _Change_sign<_Ty>::_Signed type; + }; + + +template + struct make_unsigned + { + typedef typename _Change_sign<_Ty>::_Unsigned type; + }; + + + +template + struct alignment_of + : integral_constant + { + }; + + + + + + +template + union _Align_type + { + _Ty _Val; + char _Pad[_Len]; + }; + +template + struct _Aligned; + +template + struct _Aligned<_Len, _Align, _Ty, true> + { + typedef _Align_type<_Ty, _Len> type; + }; + +template + struct _Aligned<_Len, _Align, double, false> + { + typedef _Align_type type; + }; + +template + struct _Aligned<_Len, _Align, int, false> + { + typedef typename _Aligned<_Len, _Align, double, _Align <= alignment_of::value>::type type; + }; + +template + struct _Aligned<_Len, _Align, short, false> + { + typedef typename _Aligned<_Len, _Align, int, _Align <= alignment_of::value>::type type; + }; + +template + struct _Aligned<_Len, _Align, char, false> + { + typedef typename _Aligned<_Len, _Align, short, _Align <= alignment_of::value>::type type; + }; + +template::value> + struct aligned_storage + { + typedef typename _Aligned<_Len, _Align, char, _Align <= alignment_of::value>::type type; + }; + + + + + +template + struct _Maximum; + +template<> + struct _Maximum<> + { + static constexpr size_t value = 0; + }; + +template + struct _Maximum<_Val> + { + static constexpr size_t value = _Val; + }; + +template + struct _Maximum<_First, _Second, _Rest...> + : _Maximum<(_First < _Second ? _Second : _First), _Rest...> + { + }; + +template + struct aligned_union + { + static constexpr size_t _Max_len = _Maximum< + _Len, sizeof(_Types)...>::value; + static constexpr size_t alignment_value = _Maximum< + alignment_of<_Types>::value...>::value; + typedef typename aligned_storage<_Max_len, alignment_value>::type type; + }; + + +template + struct underlying_type + { + typedef __underlying_type(_Ty) type; + }; + + +template + struct rank + : integral_constant + { + }; + +template + struct rank<_Ty[_Ix]> + : integral_constant::value + 1> + { + }; + +template + struct rank<_Ty[]> + : integral_constant::value + 1> + { + }; + + +template + struct _Extent + : integral_constant + { + }; + +template + struct _Extent<_Ty[_Ix], 0> + : integral_constant + { + }; + +template + struct _Extent<_Ty[_Ix], _Nx> + : _Extent<_Ty, _Nx - 1> + { + }; + +template + struct _Extent<_Ty[], _Nx> + : _Extent<_Ty, _Nx - 1> + { + }; + +template + struct extent + : _Extent<_Ty, _Nx> + { + }; + + +template + struct is_base_of + : _Cat_base<__is_base_of(_Base, _Der)> + { + }; + + +template + struct decay + { + typedef typename remove_reference<_Ty>::type _Ty1; + + typedef typename _If::value, + typename remove_extent<_Ty1>::type *, + typename _If::value, + typename add_pointer<_Ty1>::type, + typename remove_cv<_Ty1>::type>::type>::type type; + }; + + +template + struct _Conjunction; + +template + struct _Choose_conjunction + { + typedef _Lhs type; + }; + +template + struct _Choose_conjunction + { + typedef typename _Conjunction<_Traits...>::type type; + }; + +template<> + struct _Conjunction<> + { + typedef true_type type; + }; + +template + struct _Conjunction<_Trait> + { + typedef _Trait type; + }; + +template + struct _Conjunction<_Lhs, _Traits...> + { + typedef typename _Choose_conjunction<_Lhs::value, _Lhs, _Traits...>::type type; + }; + +template + struct conjunction + : _Conjunction<_Traits...>::type + { + + + }; + + +template + struct _Disjunction; + +template + struct _Choose_disjunction + { + typedef _Lhs type; + }; + +template + struct _Choose_disjunction + { + typedef typename _Disjunction<_Traits...>::type type; + }; + +template<> + struct _Disjunction<> + { + typedef false_type type; + }; + +template + struct _Disjunction<_Trait> + { + typedef _Trait type; + }; + +template + struct _Disjunction<_Lhs, _Traits...> + { + typedef typename _Choose_disjunction<_Lhs::value, _Lhs, _Traits...>::type type; + }; + +template + struct disjunction + : _Disjunction<_Traits...>::type + { + + + }; + + +template + struct negation + : bool_constant + { + }; + + +namespace tr1 { +using ::std:: add_const; +using ::std:: add_cv; +using ::std:: add_pointer; +using ::std:: add_volatile; +using ::std:: aligned_storage; +using ::std:: alignment_of; +using ::std:: conditional; +using ::std:: decay; +using ::std:: enable_if; +using ::std:: extent; +using ::std:: false_type; +using ::std:: has_virtual_destructor; +using ::std:: integral_constant; +using ::std:: is_abstract; +using ::std:: is_arithmetic; +using ::std:: is_array; +using ::std:: is_base_of; +using ::std:: is_class; +using ::std:: is_compound; +using ::std:: is_const; +using ::std:: is_convertible; +using ::std:: is_empty; +using ::std:: is_enum; +using ::std:: is_floating_point; +using ::std:: is_function; +using ::std:: is_fundamental; +using ::std:: is_integral; +using ::std:: is_member_function_pointer; +using ::std:: is_member_object_pointer; +using ::std:: is_member_pointer; +using ::std:: is_object; +using ::std:: is_pod; +using ::std:: is_pointer; +using ::std:: is_polymorphic; +using ::std:: is_reference; +using ::std:: is_same; +using ::std:: is_scalar; +using ::std:: is_signed; +using ::std:: is_union; +using ::std:: is_unsigned; +using ::std:: is_void; +using ::std:: is_volatile; +using ::std:: make_signed; +using ::std:: make_unsigned; +using ::std:: rank; +using ::std:: remove_all_extents; +using ::std:: remove_const; +using ::std:: remove_cv; +using ::std:: remove_extent; +using ::std:: remove_pointer; +using ::std:: remove_reference; +using ::std:: remove_volatile; +using ::std:: true_type; + } + + + +template + struct common_type; + +template + struct common_type<_Ty> + { + typedef typename decay<_Ty>::type type; + }; + +template + struct common_type<_Ty0, _Ty1> + { + typedef typename decay< + decltype(_Always_false<_Ty0>::value + ? ::std:: declval<_Ty0>() + : ::std:: declval<_Ty1>()) + >::type type; + }; + +template + struct common_type<_Ty0, _Ty1, _Ty...> + { + typedef typename common_type< + typename common_type<_Ty0, _Ty1>::type, _Ty... + >::type type; + }; + + +template + struct integer_sequence + { + static_assert(is_integral<_Ty>::value, + "integer_sequence requires T to be an integral type."); + + typedef integer_sequence<_Ty, _Vals...> type; + typedef _Ty value_type; + + static constexpr size_t size() noexcept + { + return (sizeof...(_Vals)); + } + }; +# 1243 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\type_traits" 3 +template + using make_integer_sequence = __make_integer_seq; + + +template + using index_sequence = integer_sequence; + +template + using make_index_sequence = make_integer_sequence; + +template + using index_sequence_for = make_index_sequence; + + + +template + struct identity + { + typedef _Ty type; + + const _Ty& operator()(const _Ty& _Left) const + { + return (_Left); + } + }; + + + +template inline + constexpr _Ty&& forward( + typename remove_reference<_Ty>::type& _Arg) noexcept + { + return (static_cast<_Ty&&>(_Arg)); + } + +template inline + constexpr _Ty&& forward( + typename remove_reference<_Ty>::type&& _Arg) noexcept + { + static_assert(!is_lvalue_reference<_Ty>::value, "bad forward call"); + return (static_cast<_Ty&&>(_Arg)); + } + + +template inline + constexpr typename remove_reference<_Ty>::type&& + move(_Ty&& _Arg) noexcept + { + return (static_cast::type&&>(_Arg)); + } + + +template inline + constexpr typename _If::value + && is_copy_constructible<_Ty>::value, + const _Ty&, _Ty&&>::type + move_if_noexcept(_Ty& _Arg) noexcept + { + return (::std:: move(_Arg)); + } + + +template + struct _Param_tester + { + typedef void type; + }; + + +template + using void_t = typename _Param_tester<_Types...>::type; + + +struct _Invoker_pmf_object + { + template + static auto _Call(_Decayed _Pmf, _Ty1&& _Arg1, _Types2&&... _Args2) + -> decltype((::std:: forward<_Ty1>(_Arg1).*_Pmf)( + ::std:: forward<_Types2>(_Args2)...)) + { + return ((::std:: forward<_Ty1>(_Arg1).*_Pmf)( + ::std:: forward<_Types2>(_Args2)...)); + } + }; + +struct _Invoker_pmf_pointer + { + template + static auto _Call(_Decayed _Pmf, _Ty1&& _Arg1, _Types2&&... _Args2) + -> decltype(((*::std:: forward<_Ty1>(_Arg1)).*_Pmf)( + ::std:: forward<_Types2>(_Args2)...)) + { + return (((*::std:: forward<_Ty1>(_Arg1)).*_Pmf)( + ::std:: forward<_Types2>(_Args2)...)); + } + }; + +struct _Invoker_pmd_object + { + template + static auto _Call(_Decayed _Pmd, _Ty1&& _Arg1) + -> decltype(::std:: forward<_Ty1>(_Arg1).*_Pmd) + { + return (::std:: forward<_Ty1>(_Arg1).*_Pmd); + } + }; + +struct _Invoker_pmd_pointer + { + template + static auto _Call(_Decayed _Pmd, _Ty1&& _Arg1) + -> decltype((*::std:: forward<_Ty1>(_Arg1)).*_Pmd) + { + return ((*::std:: forward<_Ty1>(_Arg1)).*_Pmd); + } + }; + +struct _Invoker_functor + { + template + static auto _Call(_Callable&& _Obj, _Types&&... _Args) + -> decltype(::std:: forward<_Callable>(_Obj)( + ::std:: forward<_Types>(_Args)...)) + { + return (::std:: forward<_Callable>(_Obj)( + ::std:: forward<_Types>(_Args)...)); + } + }; + +template::type, + bool _Is_pmf = is_member_function_pointer<_Decayed>::value, + bool _Is_pmd = is_member_object_pointer<_Decayed>::value> + struct _Invoker1; + +template + struct _Invoker1<_Callable, _Ty1, _Decayed, true, false> + : _If::_Class_type, + typename decay<_Ty1>::type>::value, + _Invoker_pmf_object, + _Invoker_pmf_pointer>::type + { + }; + +template + struct _Invoker1<_Callable, _Ty1, _Decayed, false, true> + : _If::_Class_type, + typename decay<_Ty1>::type>::value, + _Invoker_pmd_object, + _Invoker_pmd_pointer>::type + { + }; + +template + struct _Invoker1<_Callable, _Ty1, _Decayed, false, false> + : _Invoker_functor + { + }; + +template + struct _Invoker; + +template + struct _Invoker<_Callable> + : _Invoker_functor + { + }; + +template + struct _Invoker<_Callable, _Ty1, _Types2...> + : _Invoker1<_Callable, _Ty1> + { + }; + +template inline + auto invoke(_Callable&& _Obj, _Types&&... _Args) + -> decltype(_Invoker<_Callable, _Types...>::_Call( + ::std:: forward<_Callable>(_Obj), ::std:: forward<_Types>(_Args)...)) + { + return (_Invoker<_Callable, _Types...>::_Call( + ::std:: forward<_Callable>(_Obj), ::std:: forward<_Types>(_Args)...)); + } + +template::value> + struct _Forced + { + }; + +struct _Unforced + { + }; + +template inline + void _Invoke_ret(_Forced<_Cv_void, true>, _Valtys&&... _Vals) + { + ::std:: invoke(::std:: forward<_Valtys>(_Vals)...); + } + +template inline + _Rx _Invoke_ret(_Forced<_Rx, false>, _Valtys&&... _Vals) + { + return (::std:: invoke(::std:: forward<_Valtys>(_Vals)...)); + } + +template inline + auto _Invoke_ret(_Forced<_Unforced, false>, _Valtys&&... _Vals) + -> decltype(::std:: invoke(::std:: forward<_Valtys>(_Vals)...)) + { + return (::std:: invoke(::std:: forward<_Valtys>(_Vals)...)); + } + + +struct _Unique_tag_result_of + { + }; + +template + struct _Result_of + { + }; + +template + struct _Result_of< + void_t< + _Unique_tag_result_of, + decltype(::std:: invoke(::std:: declval<_Types>()...))>, + _Types...> + { + typedef decltype(::std:: invoke(::std:: declval<_Types>()...)) type; + }; + +template + struct result_of + { + static_assert(_Always_false<_Fty>::value, + "result_of is invalid; use " + "result_of instead."); + }; +# 1515 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\type_traits" 3 +template struct result_of<_Fty __cdecl (_Args...)> : _Result_of { }; template struct result_of<_Fty __fastcall (_Args...)> : _Result_of { }; template struct result_of<_Fty __stdcall (_Args...)> : _Result_of { }; template struct result_of<_Fty __vectorcall (_Args...)> : _Result_of { }; + + + +template + struct _Weak_result_type + { + }; + +template + struct _Weak_result_type<_Ty, void_t< + typename _Ty::result_type> > + { + typedef typename _Ty::result_type result_type; + }; + +template + struct _Weak_argument_type + : _Weak_result_type<_Ty> + { + }; + +template + struct _Weak_argument_type<_Ty, void_t< + typename _Ty::argument_type> > + : _Weak_result_type<_Ty> + { + typedef typename _Ty::argument_type argument_type; + }; + +template + struct _Weak_binary_args + : _Weak_argument_type<_Ty> + { + }; + +template + struct _Weak_binary_args<_Ty, void_t< + typename _Ty::first_argument_type, + typename _Ty::second_argument_type> > + : _Weak_argument_type<_Ty> + { + typedef typename _Ty::first_argument_type first_argument_type; + typedef typename _Ty::second_argument_type second_argument_type; + }; + +template + struct _Weak_types + { + typedef _Is_function::type> _Is_f_or_pf; + typedef _Is_memfunptr::type> _Is_pmf; + typedef typename _If<_Is_f_or_pf::_Bool_type::value, _Is_f_or_pf, + typename _If<_Is_pmf::_Bool_type::value, _Is_pmf, + _Weak_binary_args<_Ty> >::type>::type type; + }; + + +template + class reference_wrapper + : public _Weak_types<_Ty>::type + { +public: + static_assert(is_object<_Ty>::value || is_function<_Ty>::value, + "reference_wrapper requires T to be an object type " + "or a function type."); + + typedef _Ty type; + + reference_wrapper(_Ty& _Val) noexcept + : _Ptr(::std:: addressof(_Val)) + { + } + + operator _Ty&() const noexcept + { + return (*_Ptr); + } + + _Ty& get() const noexcept + { + return (*_Ptr); + } + + template + auto operator()(_Types&&... _Args) const + -> decltype(::std:: invoke(get(), ::std:: forward<_Types>(_Args)...)) + { + return (::std:: invoke(get(), ::std:: forward<_Types>(_Args)...)); + } + + reference_wrapper(_Ty&&) = delete; + +private: + _Ty *_Ptr; + }; + + +template inline + reference_wrapper<_Ty> + ref(_Ty& _Val) noexcept + { + return (reference_wrapper<_Ty>(_Val)); + } + +template + void ref(const _Ty&&) = delete; + +template inline + reference_wrapper<_Ty> + ref(reference_wrapper<_Ty> _Val) noexcept + { + return (::std:: ref(_Val.get())); + } + +template inline + reference_wrapper + cref(const _Ty& _Val) noexcept + { + return (reference_wrapper(_Val)); + } + +template + void cref(const _Ty&&) = delete; + +template inline + reference_wrapper + cref(reference_wrapper<_Ty> _Val) noexcept + { + return (::std:: cref(_Val.get())); + } + + +template + struct _Unrefwrap_helper + { + typedef _Ty type; + static constexpr bool _Is_refwrap = false; + }; + +template + struct _Unrefwrap_helper > + { + typedef _Ty& type; + static constexpr bool _Is_refwrap = true; + }; + +template + struct _Unrefwrap + { + typedef typename decay<_Ty>::type _Ty1; + typedef typename _Unrefwrap_helper<_Ty1>::type type; + static constexpr bool _Is_refwrap = _Unrefwrap_helper<_Ty1>::_Is_refwrap; + }; + + +namespace tr1 { +using ::std:: cref; +using ::std:: ref; +using ::std:: reference_wrapper; +using ::std:: result_of; + } + + + +template + struct _Is_swappable; + + +template + struct _Is_nothrow_swappable; + + + + + + + +template inline + + void swap(_Ty&, _Ty&) + noexcept(is_nothrow_move_constructible<_Ty>::value && is_nothrow_move_assignable<_Ty>::value); + + +template::value>::type> inline + void swap(_Ty (&)[_Size], _Ty (&)[_Size]) + noexcept(_Is_nothrow_swappable<_Ty>::value); + + +template + struct _Swappable_with_helper + : false_type + { + }; + +struct _Swappable_with_helper_unique_type {}; +template + struct _Swappable_with_helper<_Ty1, _Ty2, void_t< + _Swappable_with_helper_unique_type, + decltype(swap(::std:: declval<_Ty1>(), ::std:: declval<_Ty2>()))>> + : true_type + { + }; + + +template + struct _Is_swappable_with + : conjunction< + _Swappable_with_helper<_Ty1, _Ty2>, + _Swappable_with_helper<_Ty2, _Ty1>>::type + { + + }; + + +template + struct _Is_swappable + : _Is_swappable_with< + typename add_lvalue_reference<_Ty>::type, + typename add_lvalue_reference<_Ty>::type>::type + { + }; + + +template + struct _Swap_cannot_throw + { + + + + static constexpr bool value = + noexcept(swap(::std:: declval<_Ty1>(), ::std:: declval<_Ty2>())) + && noexcept(swap(::std:: declval<_Ty2>(), ::std:: declval<_Ty1>())); + + + + using type = bool_constant; + }; + + +template + struct _Is_nothrow_swappable_with + : conjunction< + _Is_swappable_with<_Ty1, _Ty2>, + _Swap_cannot_throw<_Ty1, _Ty2>>::type + { + + }; + + +template + struct _Is_nothrow_swappable + : _Is_nothrow_swappable_with< + typename add_lvalue_reference<_Ty>::type, + typename add_lvalue_reference<_Ty>::type>::type + { + }; +# 1819 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\type_traits" 3 +template + using remove_const_t = typename remove_const<_Ty>::type; + +template + using remove_volatile_t = typename remove_volatile<_Ty>::type; + +template + using remove_cv_t = typename remove_cv<_Ty>::type; + +template + using add_const_t = typename add_const<_Ty>::type; + +template + using add_volatile_t = typename add_volatile<_Ty>::type; + +template + using add_cv_t = typename add_cv<_Ty>::type; + +template + using remove_reference_t = typename remove_reference<_Ty>::type; + +template + using add_lvalue_reference_t = typename add_lvalue_reference<_Ty>::type; + +template + using add_rvalue_reference_t = typename add_rvalue_reference<_Ty>::type; + +template + using make_signed_t = typename make_signed<_Ty>::type; + +template + using make_unsigned_t = typename make_unsigned<_Ty>::type; + +template + using remove_extent_t = typename remove_extent<_Ty>::type; + +template + using remove_all_extents_t = typename remove_all_extents<_Ty>::type; + +template + using remove_pointer_t = typename remove_pointer<_Ty>::type; + +template + using add_pointer_t = typename add_pointer<_Ty>::type; + +template::value> + using aligned_storage_t = typename aligned_storage<_Len, _Align>::type; + +template + using aligned_union_t = typename aligned_union<_Len, _Types...>::type; + +template + using decay_t = typename decay<_Ty>::type; + +template + using enable_if_t = typename enable_if<_Test, _Ty>::type; + +template + using conditional_t = typename conditional<_Test, _Ty1, _Ty2>::type; + +template + using common_type_t = typename common_type<_Ty...>::type; + +template + using underlying_type_t = typename underlying_type<_Ty>::type; + +template + using result_of_t = typename result_of<_Ty>::type; + + + +template + constexpr bool is_void_v = is_void<_Ty>::value; +template + constexpr bool is_null_pointer_v = is_null_pointer<_Ty>::value; +template + constexpr bool is_array_v = is_array<_Ty>::value; +template + constexpr bool is_pointer_v = is_pointer<_Ty>::value; +template + constexpr bool is_lvalue_reference_v = is_lvalue_reference<_Ty>::value; +template + constexpr bool is_rvalue_reference_v = is_rvalue_reference<_Ty>::value; +template + constexpr bool is_member_object_pointer_v = is_member_object_pointer<_Ty>::value; +template + constexpr bool is_member_function_pointer_v = is_member_function_pointer<_Ty>::value; +template + constexpr bool is_enum_v = is_enum<_Ty>::value; +template + constexpr bool is_union_v = is_union<_Ty>::value; +template + constexpr bool is_class_v = is_class<_Ty>::value; +template + constexpr bool is_reference_v = is_reference<_Ty>::value; +template + constexpr bool is_fundamental_v = is_fundamental<_Ty>::value; +template + constexpr bool is_object_v = is_object<_Ty>::value; +template + constexpr bool is_scalar_v = is_scalar<_Ty>::value; +template + constexpr bool is_compound_v = is_compound<_Ty>::value; +template + constexpr bool is_member_pointer_v = is_member_pointer<_Ty>::value; +template + constexpr bool is_const_v = is_const<_Ty>::value; +template + constexpr bool is_volatile_v = is_volatile<_Ty>::value; +template + constexpr bool is_trivial_v = is_trivial<_Ty>::value; +template + constexpr bool is_trivially_copyable_v = is_trivially_copyable<_Ty>::value; +template + constexpr bool is_standard_layout_v = is_standard_layout<_Ty>::value; +template + constexpr bool is_pod_v = is_pod<_Ty>::value; +template + constexpr bool is_literal_type_v = is_literal_type<_Ty>::value; +template + constexpr bool is_empty_v = is_empty<_Ty>::value; +template + constexpr bool is_polymorphic_v = is_polymorphic<_Ty>::value; +template + constexpr bool is_abstract_v = is_abstract<_Ty>::value; +template + constexpr bool is_final_v = is_final<_Ty>::value; +template + constexpr bool is_signed_v = is_signed<_Ty>::value; +template + constexpr bool is_unsigned_v = is_unsigned<_Ty>::value; +template + constexpr bool is_constructible_v = is_constructible<_Ty, _Args...>::value; +template + constexpr bool is_default_constructible_v = is_default_constructible<_Ty>::value; +template + constexpr bool is_copy_constructible_v = is_copy_constructible<_Ty>::value; +template + constexpr bool is_move_constructible_v = is_move_constructible<_Ty>::value; +template + constexpr bool is_assignable_v = is_assignable<_Ty, _Uty>::value; +template + constexpr bool is_copy_assignable_v = is_copy_assignable<_Ty>::value; +template + constexpr bool is_move_assignable_v = is_move_assignable<_Ty>::value; + + + + + + + +template + constexpr bool is_destructible_v = is_destructible<_Ty>::value; +template + constexpr bool is_trivially_constructible_v = is_trivially_constructible<_Ty, _Args...>::value; +template + constexpr bool is_trivially_default_constructible_v = is_trivially_default_constructible<_Ty>::value; +template + constexpr bool is_trivially_copy_constructible_v = is_trivially_copy_constructible<_Ty>::value; +template + constexpr bool is_trivially_move_constructible_v = is_trivially_move_constructible<_Ty>::value; +template + constexpr bool is_trivially_assignable_v = is_trivially_assignable<_Ty, _Uty>::value; +template + constexpr bool is_trivially_copy_assignable_v = is_trivially_copy_assignable<_Ty>::value; +template + constexpr bool is_trivially_move_assignable_v = is_trivially_move_assignable<_Ty>::value; +template + constexpr bool is_trivially_destructible_v = is_trivially_destructible<_Ty>::value; +template + constexpr bool is_nothrow_constructible_v = is_nothrow_constructible<_Ty, _Args...>::value; +template + constexpr bool is_nothrow_default_constructible_v = is_nothrow_default_constructible<_Ty>::value; +template + constexpr bool is_nothrow_copy_constructible_v = is_nothrow_copy_constructible<_Ty>::value; +template + constexpr bool is_nothrow_move_constructible_v = is_nothrow_move_constructible<_Ty>::value; +template + constexpr bool is_nothrow_assignable_v = is_nothrow_assignable<_Ty, _Uty>::value; +template + constexpr bool is_nothrow_copy_assignable_v = is_nothrow_copy_assignable<_Ty>::value; +template + constexpr bool is_nothrow_move_assignable_v = is_nothrow_move_assignable<_Ty>::value; + + + + + + + +template + constexpr bool is_nothrow_destructible_v = is_nothrow_destructible<_Ty>::value; +template + constexpr bool has_virtual_destructor_v = has_virtual_destructor<_Ty>::value; +template + constexpr size_t alignment_of_v = alignment_of<_Ty>::value; +template + constexpr size_t rank_v = rank<_Ty>::value; +template + constexpr size_t extent_v = extent<_Ty, _Ix>::value; +template + constexpr bool is_base_of_v = is_base_of<_Base, _Derived>::value; +template + constexpr bool is_convertible_v = is_convertible<_From, _To>::value; +template + constexpr bool conjunction_v = conjunction<_Traits...>::value; +template + constexpr bool disjunction_v = disjunction<_Traits...>::value; +template + constexpr bool negation_v = negation<_Trait>::value; + + +} + + +#pragma warning(pop) +#pragma pack(pop) +# 7 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\exception" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +namespace std { +# 33 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\exception" 3 + bool __cdecl uncaught_exception() noexcept; + int __cdecl uncaught_exceptions() noexcept; + +} + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\malloc.h" 1 3 +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\malloc.h" 3 +#pragma pack(push, 8) +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\malloc.h" 3 + extern "C" { +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\malloc.h" 3 +typedef struct _heapinfo +{ + int* _pentry; + size_t _size; + int _useflag; +} _HEAPINFO; +# 54 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\malloc.h" 3 +void* __cdecl _alloca( size_t _Size); + + + + + + intptr_t __cdecl _get_heap_handle(void); + + + int __cdecl _heapmin(void); + + + int __cdecl _heapwalk( _HEAPINFO* _EntryInfo); + + + + int __cdecl _heapchk(void); + int __cdecl _resetstkoflw(void); +# 84 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\malloc.h" 3 + typedef char __static_assert_t[(sizeof(unsigned int) <= 8) != 0]; + + +#pragma warning(push) +#pragma warning(disable: 6540) + + __inline void* _MarkAllocaS( void* _Ptr, unsigned int _Marker) + { + if (_Ptr) + { + *((unsigned int*)_Ptr) = _Marker; + _Ptr = (char*)_Ptr + 8; + } + return _Ptr; + } + + __inline size_t _MallocaComputeSize(size_t _Size) + { + size_t _MarkedSize = _Size + 8; + return _MarkedSize > _Size ? _MarkedSize : 0; + } + +#pragma warning(pop) +# 144 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\malloc.h" 3 +#pragma warning(push) +#pragma warning(disable: 6014) + __inline void __cdecl _freea( void* _Memory) + { + unsigned int _Marker; + if (_Memory) + { + _Memory = (char*)_Memory - 8; + _Marker = *(unsigned int*)_Memory; + if (_Marker == 0xDDDD) + { + free(_Memory); + } + + + + + + + } + } +#pragma warning(pop) +# 177 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\malloc.h" 3 +} +# 177 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\malloc.h" 3 +#pragma pack(pop) +# 40 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\exception" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_exception.h" 1 3 +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_exception.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\eh.h" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\eh.h" 3 +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_terminate.h" 1 3 +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_terminate.h" 3 +#pragma pack(push, 8) +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_terminate.h" 3 + extern "C" { + + + +typedef void (__cdecl* terminate_handler )(); +typedef void (__cdecl* terminate_function)(); +# 28 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_terminate.h" 3 + __declspec(noreturn) void __cdecl abort(); + __declspec(noreturn) void __cdecl terminate() throw(); + + + + terminate_handler __cdecl set_terminate( + terminate_handler _NewTerminateHandler + ) throw(); + + terminate_handler __cdecl _get_terminate(); + + + + + +} +# 43 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_terminate.h" 3 +#pragma pack(pop) +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\eh.h" 2 3 + + + + +#pragma pack(push, 8) +# 15 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\eh.h" 3 + extern "C" { + + + +typedef void (__cdecl* unexpected_handler )(); +typedef void (__cdecl* unexpected_function)(); + + + + + + +struct _EXCEPTION_POINTERS; + + + + __declspec(noreturn) void __cdecl unexpected() throw(...); + + + + unexpected_handler __cdecl set_unexpected( + unexpected_handler _NewUnexpectedHandler + ) throw(); + + unexpected_handler __cdecl _get_unexpected(); + + typedef void (__cdecl* _se_translator_function)(unsigned int, struct _EXCEPTION_POINTERS*); + + _se_translator_function __cdecl _set_se_translator( + _se_translator_function _NewSETranslator + ); + + + + class type_info; + + int __cdecl _is_exception_typeof( + type_info const& _Type, + _EXCEPTION_POINTERS* _ExceptionPtr + ); + + bool __cdecl __uncaught_exception(); + int __cdecl __uncaught_exceptions(); + + + +} +# 61 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\eh.h" 3 +#pragma pack(pop) +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_exception.h" 2 3 + + + + + + +#pragma pack(push, 8) + + +#pragma pack(push, 8) +# 19 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_exception.h" 3 + extern "C" { + +struct __std_exception_data +{ + char const* _What; + bool _DoFree; +}; + + void __cdecl __std_exception_copy( + __std_exception_data const* _From, + __std_exception_data* _To + ); + + void __cdecl __std_exception_destroy( + __std_exception_data* _Data + ); + +} +# 36 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_exception.h" 3 +#pragma pack(pop) + + + +namespace std { + +class exception +{ +public: + + exception() throw() + : _Data() + { + } + + explicit exception(char const* const _Message) throw() + : _Data() + { + __std_exception_data _InitData = { _Message, true }; + __std_exception_copy(&_InitData, &_Data); + } + + exception(char const* const _Message, int) throw() + : _Data() + { + _Data._What = _Message; + } + + exception(exception const& _Other) throw() + : _Data() + { + __std_exception_copy(&_Other._Data, &_Data); + } + + exception& operator=(exception const& _Other) throw() + { + if (this == &_Other) + { + return *this; + } + + __std_exception_destroy(&_Data); + __std_exception_copy(&_Other._Data, &_Data); + return *this; + } + + virtual ~exception() throw() + { + __std_exception_destroy(&_Data); + } + + virtual char const* what() const + { + return _Data._What ? _Data._What : "Unknown exception"; + } + +private: + + __std_exception_data _Data; +}; + +class bad_exception + : public exception +{ +public: + + bad_exception() throw() + : exception("bad exception", 1) + { + } +}; + +class bad_alloc + : public exception +{ +public: + + bad_alloc() throw() + : exception("bad allocation", 1) + { + } + +private: + + friend class bad_array_new_length; + + bad_alloc(char const* const _Message) throw() + : exception(_Message, 1) + { + } +}; + +class bad_array_new_length + : public bad_alloc +{ +public: + + bad_array_new_length() throw() + : bad_alloc("bad array new length") + { + } +}; + +} + + +#pragma pack(pop) +# 41 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\exception" 2 3 + + +namespace std { + +using ::set_terminate; using ::terminate_handler; using ::terminate; using ::set_unexpected; using ::unexpected_handler; using ::unexpected; + +typedef void (__cdecl *_Prhand)(const exception&); + + +inline terminate_handler __cdecl get_terminate() noexcept + { + return (_get_terminate()); + } + +inline unexpected_handler __cdecl get_unexpected() noexcept + { + return (_get_unexpected()); + } + + +} +# 240 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\exception" 3 + void __cdecl __ExceptionPtrCreate( void*); + void __cdecl __ExceptionPtrDestroy( void*); + void __cdecl __ExceptionPtrCopy( void*, const void*); + void __cdecl __ExceptionPtrAssign( void*, const void*); + bool __cdecl __ExceptionPtrCompare( const void*, const void*); + bool __cdecl __ExceptionPtrToBool( const void*); + void __cdecl __ExceptionPtrSwap( void*, void*); + void __cdecl __ExceptionPtrCurrentException( void*); +[[noreturn]] void __cdecl __ExceptionPtrRethrow( const void*); + void __cdecl __ExceptionPtrCopyException( + void*, const void*, const void*); + +namespace std { + +class exception_ptr + { +public: + exception_ptr() throw () + { + __ExceptionPtrCreate(this); + } + + exception_ptr(nullptr_t) throw () + { + __ExceptionPtrCreate(this); + } + + ~exception_ptr() throw () + { + __ExceptionPtrDestroy(this); + } + + exception_ptr(const exception_ptr& _Rhs) throw () + { + __ExceptionPtrCopy(this, &_Rhs); + } + + exception_ptr& operator=(const exception_ptr& _Rhs) throw () + { + __ExceptionPtrAssign(this, &_Rhs); + return *this; + } + + exception_ptr& operator=(nullptr_t) throw () + { + exception_ptr _Ptr; + __ExceptionPtrAssign(this, &_Ptr); + return *this; + } + + explicit operator bool() const throw () + { + return __ExceptionPtrToBool(this); + } + + [[noreturn]] void _RethrowException() const + { + __ExceptionPtrRethrow(this); + } + + static exception_ptr _Current_exception() throw () + { + exception_ptr _Retval; + __ExceptionPtrCurrentException(&_Retval); + return _Retval; + } + + static exception_ptr _Copy_exception( void* _Except, const void* _Ptr) + { + exception_ptr _Retval = 0; + if (!_Ptr) + { + + return _Retval; + } + __ExceptionPtrCopyException(&_Retval, _Except, _Ptr); + return _Retval; + } + +private: + void* _Data1; + void* _Data2; + }; + +inline void swap(exception_ptr& _Lhs, exception_ptr& _Rhs) throw () + { + __ExceptionPtrSwap(&_Lhs, &_Rhs); + } + +inline bool operator==(const exception_ptr& _Lhs, const exception_ptr& _Rhs) throw () + { + return __ExceptionPtrCompare(&_Lhs, &_Rhs); + } + +inline bool operator==(nullptr_t, const exception_ptr& _Rhs) throw () + { + return !_Rhs; + } + +inline bool operator==(const exception_ptr& _Lhs, nullptr_t) throw () + { + return !_Lhs; + } + +inline bool operator!=(const exception_ptr& _Lhs, const exception_ptr& _Rhs) throw () + { + return !(_Lhs == _Rhs); + } + +inline bool operator!=(nullptr_t _Lhs, const exception_ptr& _Rhs) throw () + { + return !(_Lhs == _Rhs); + } + +inline bool operator!=(const exception_ptr& _Lhs, nullptr_t _Rhs) throw () + { + return !(_Lhs == _Rhs); + } + +inline exception_ptr current_exception() noexcept + { + return exception_ptr::_Current_exception(); + } + +[[noreturn]] inline void rethrow_exception( exception_ptr _Ptr) + { + _Ptr._RethrowException(); + } + +template void *__GetExceptionInfo(_Ex); + +template exception_ptr make_exception_ptr(_Ex _Except) noexcept + { + return exception_ptr::_Copy_exception(::std:: addressof(_Except), __GetExceptionInfo(_Except)); + } + + +class nested_exception + { +public: + nested_exception() noexcept + : _Exc(::std:: current_exception()) + { + } + + nested_exception(const nested_exception&) noexcept = default; + nested_exception& operator=(const nested_exception&) noexcept = default; + virtual ~nested_exception() noexcept = default; + + [[noreturn]] void rethrow_nested() const + { + if (_Exc) + ::std:: rethrow_exception(_Exc); + else + ::std:: terminate(); + } + + ::std:: exception_ptr nested_ptr() const noexcept + { + return (_Exc); + } + +private: + ::std:: exception_ptr _Exc; + }; + + +template + struct _With_nested + : _Uty, nested_exception + { + explicit _With_nested(_Ty&& _Arg) + : _Uty(::std:: forward<_Ty>(_Arg)), nested_exception() + { + } + }; + +template + [[noreturn]] inline void _Throw_with_nested(_Ty&& _Arg, true_type) + { + typedef typename remove_reference<_Ty>::type _Uty; + typedef _With_nested<_Ty, _Uty> _Glued; + + throw _Glued(::std:: forward<_Ty>(_Arg)); + } + +template + [[noreturn]] inline void _Throw_with_nested(_Ty&& _Arg, false_type) + { + typedef typename decay<_Ty>::type _Decayed; + + throw _Decayed(::std:: forward<_Ty>(_Arg)); + } + +template + [[noreturn]] inline void throw_with_nested(_Ty&& _Arg) + { + typedef typename remove_reference<_Ty>::type _Uty; + + integral_constant::value + && !is_base_of::value + && !is_final<_Uty>::value> _Tag; + + _Throw_with_nested(::std:: forward<_Ty>(_Arg), _Tag); + } + + +template inline + void _Rethrow_if_nested(const _Ty *_Ptr, true_type) + { + const auto _Nested = dynamic_cast(_Ptr); + + if (_Nested) + _Nested->rethrow_nested(); + } + +template inline + void _Rethrow_if_nested(const _Ty *, false_type) + { + } + +template inline + void rethrow_if_nested(const _Ty& _Arg) + { + integral_constant::value + && (!is_base_of::value + || is_convertible<_Ty *, nested_exception *>::value)> _Tag; + + _Rethrow_if_nested(::std:: addressof(_Arg), _Tag); + } +} + + +#pragma warning(pop) +#pragma pack(pop) +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\new" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_new.h" 1 3 +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_new.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 1 3 +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_new.h" 2 3 + + + +extern "C++" { + +#pragma pack(push, 8) + +#pragma warning(push) +#pragma warning(disable: 4985) + + + + + + + namespace std + { + struct nothrow_t { }; + + extern nothrow_t const nothrow; + } + + + +__declspec(allocator) void* __cdecl operator new( + size_t _Size + ); + + +__declspec(allocator) void* __cdecl operator new( + size_t _Size, + std::nothrow_t const& + ) throw(); + + +__declspec(allocator) void* __cdecl operator new[]( + size_t _Size + ); + + +__declspec(allocator) void* __cdecl operator new[]( + size_t _Size, + std::nothrow_t const& + ) throw(); + +void __cdecl operator delete( + void* _Block + ) throw(); + +void __cdecl operator delete( + void* _Block, + std::nothrow_t const& + ) throw(); + +void __cdecl operator delete[]( + void* _Block + ) throw(); + +void __cdecl operator delete[]( + void* _Block, + std::nothrow_t const& + ) throw(); + +void __cdecl operator delete( + void* _Block, + size_t _Size + ) throw(); + +void __cdecl operator delete[]( + void* _Block, + size_t _Size + ) throw(); + + + + + inline void* __cdecl operator new(size_t _Size, void* _Where) throw() + { + (void)_Size; + return _Where; + } + + inline void __cdecl operator delete(void*, void*) throw() + { + return; + } + + + + + + inline void* __cdecl operator new[](size_t _Size, void* _Where) throw() + { + (void)_Size; + return _Where; + } + + inline void __cdecl operator delete[](void*, void*) throw() + { + } + + + + +#pragma warning(pop) +#pragma pack(pop) + +} +# 7 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\new" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + + + + +namespace std { + + + + +typedef void (__cdecl * new_handler) (); + + + + new_handler __cdecl set_new_handler( new_handler) + noexcept; + + new_handler __cdecl get_new_handler() + noexcept; +} + + +#pragma warning(pop) +#pragma pack(pop) +# 9 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility" 1 3 + + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\utility" 1 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iosfwd" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cstdio" 1 3 +# 13 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cstdio" 3 +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 1 3 +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 +#pragma pack(push, 8) +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 + extern "C" { +# 68 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 +typedef __int64 fpos_t; + + + + + + + errno_t __cdecl _get_stream_buffer_pointers( + FILE* _Stream, + char*** _Base, + char*** _Pointer, + int** _Count + ); +# 91 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 + errno_t __cdecl clearerr_s( + FILE* _Stream + ); + + + errno_t __cdecl fopen_s( + FILE** _Stream, + char const* _FileName, + char const* _Mode + ); + + + + size_t __cdecl fread_s( + void* _Buffer, + size_t _BufferSize, + size_t _ElementSize, + size_t _ElementCount, + FILE* _Stream + ); + + + errno_t __cdecl freopen_s( + FILE** _Stream, + char const* _FileName, + char const* _Mode, + FILE* _OldStream + ); + + + char* __cdecl gets_s( + char* _Buffer, + rsize_t _Size + ); + + + errno_t __cdecl tmpfile_s( + FILE** _Stream + ); + + + + errno_t __cdecl tmpnam_s( + char* _Buffer, + rsize_t _Size + ); + + + + void __cdecl clearerr( + FILE* _Stream + ); + + + + int __cdecl fclose( + FILE* _Stream + ); + + + int __cdecl _fcloseall(void); + + + FILE* __cdecl _fdopen( + int _FileHandle, + char const* _Mode + ); + + + int __cdecl feof( + FILE* _Stream + ); + + + int __cdecl ferror( + FILE* _Stream + ); + + + int __cdecl fflush( + FILE* _Stream + ); + + + + int __cdecl fgetc( + FILE* _Stream + ); + + + int __cdecl _fgetchar(void); + + + + int __cdecl fgetpos( + FILE* _Stream, + fpos_t* _Position + ); + + + + char* __cdecl fgets( + char* _Buffer, + int _MaxCount, + FILE* _Stream + ); + + + int __cdecl _fileno( + FILE* _Stream + ); + + + int __cdecl _flushall(void); + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "fopen_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + FILE* __cdecl fopen( + char const* _FileName, + char const* _Mode + ); + + + + + int __cdecl fputc( + int _Character, + FILE* _Stream + ); + + + int __cdecl _fputchar( + int _Character + ); + + + + int __cdecl fputs( + char const* _Buffer, + FILE* _Stream + ); + + + size_t __cdecl fread( + void* _Buffer, + size_t _ElementSize, + size_t _ElementCount, + FILE* _Stream + ); + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "freopen_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + FILE* __cdecl freopen( + char const* _FileName, + char const* _Mode, + FILE* _Stream + ); + + + FILE* __cdecl _fsopen( + char const* _FileName, + char const* _Mode, + int _ShFlag + ); + + + + int __cdecl fsetpos( + FILE* _Stream, + fpos_t const* _Position + ); + + + + int __cdecl fseek( + FILE* _Stream, + long _Offset, + int _Origin + ); + + + + int __cdecl _fseeki64( + FILE* _Stream, + __int64 _Offset, + int _Origin + ); + + + + long __cdecl ftell( + FILE* _Stream + ); + + + + __int64 __cdecl _ftelli64( + FILE* _Stream + ); + + + size_t __cdecl fwrite( + void const* _Buffer, + size_t _ElementSize, + size_t _ElementCount, + FILE* _Stream + ); + + + + int __cdecl getc( + FILE* _Stream + ); + + + int __cdecl getchar(void); + + + int __cdecl _getmaxstdio(void); + + extern "C++" { template inline char* __cdecl gets_s(char (&_Buffer)[_Size]) throw() { return gets_s(_Buffer, _Size); } } + + + + + int __cdecl _getw( + FILE* _Stream + ); + + void __cdecl perror( + char const* _ErrorMessage + ); + + + + + + int __cdecl _pclose( + FILE* _Stream + ); + + + FILE* __cdecl _popen( + char const* _Command, + char const* _Mode + ); + + + + + + int __cdecl putc( + int _Character, + FILE* _Stream + ); + + + int __cdecl putchar( + int _Character + ); + + + int __cdecl puts( + char const* _Buffer + ); + + + + int __cdecl _putw( + int _Word, + FILE* _Stream + ); + + int __cdecl remove( + char const* _FileName + ); + + + int __cdecl rename( + char const* _OldFileName, + char const* _NewFileName + ); + + int __cdecl _unlink( + char const* _FileName + ); + + + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_unlink" ". See online help for details.")) + int __cdecl unlink( + char const* _FileName + ); + + + + void __cdecl rewind( + FILE* _Stream + ); + + + int __cdecl _rmtmp(void); + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "setvbuf" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + void __cdecl setbuf( + FILE* _Stream, + char* _Buffer + ); + + + int __cdecl _setmaxstdio( + int _Maximum + ); + + + + int __cdecl setvbuf( + FILE* _Stream, + char* _Buffer, + int _Mode, + size_t _Size + ); + + + + + + + + __declspec(allocator) char* __cdecl _tempnam( + char const* _DirectoryName, + char const* _FilePrefix + ); + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "tmpfile_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + FILE* __cdecl tmpfile(void); + + extern "C++" { template inline errno_t __cdecl tmpnam_s(char (&_Buffer)[_Size]) throw() { return tmpnam_s(_Buffer, _Size); } } + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "tmpnam_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char* __cdecl tmpnam( char *_Buffer); + + + + + + + + int __cdecl ungetc( + int _Character, + FILE* _Stream + ); +# 457 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 + void __cdecl _lock_file( + FILE* _Stream + ); + + void __cdecl _unlock_file( + FILE* _Stream + ); + + + + int __cdecl _fclose_nolock( + FILE* _Stream + ); + + + + int __cdecl _fflush_nolock( + FILE* _Stream + ); + + + + int __cdecl _fgetc_nolock( + FILE* _Stream + ); + + + + int __cdecl _fputc_nolock( + int _Character, + FILE* _Stream + ); + + + size_t __cdecl _fread_nolock( + void* _Buffer, + size_t _ElementSize, + size_t _ElementCount, + FILE* _Stream + ); + + + + size_t __cdecl _fread_nolock_s( + void* _Buffer, + size_t _BufferSize, + size_t _ElementSize, + size_t _ElementCount, + FILE* _Stream + ); + + + int __cdecl _fseek_nolock( + FILE* _Stream, + long _Offset, + int _Origin + ); + + + int __cdecl _fseeki64_nolock( + FILE* _Stream, + __int64 _Offset, + int _Origin + ); + + + long __cdecl _ftell_nolock( + FILE* _Stream + ); + + + __int64 __cdecl _ftelli64_nolock( + FILE* _Stream + ); + + + size_t __cdecl _fwrite_nolock( + void const* _Buffer, + size_t _ElementSize, + size_t _ElementCount, + FILE* _Stream + ); + + + int __cdecl _getc_nolock( + FILE* _Stream + ); + + + int __cdecl _putc_nolock( + int _Character, + FILE* _Stream + ); + + + int __cdecl _ungetc_nolock( + int _Character, + FILE* _Stream + ); +# 582 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 + int* __cdecl __p__commode(void); +# 602 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 + int __cdecl __stdio_common_vfprintf( + unsigned __int64 _Options, + FILE* _Stream, + char const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + int __cdecl __stdio_common_vfprintf_s( + unsigned __int64 _Options, + FILE* _Stream, + char const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + int __cdecl __stdio_common_vfprintf_p( + unsigned __int64 _Options, + FILE* _Stream, + char const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + __inline int __cdecl _vfprintf_l( + FILE* const _Stream, + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __stdio_common_vfprintf((*__local_stdio_printf_options()), _Stream, _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl vfprintf( + FILE* const _Stream, + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vfprintf_l(_Stream, _Format, 0, _ArgList); + } + + + + __inline int __cdecl _vfprintf_s_l( + FILE* const _Stream, + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __stdio_common_vfprintf_s((*__local_stdio_printf_options()), _Stream, _Format, _Locale, _ArgList); + } + + + + + + __inline int __cdecl vfprintf_s( + FILE* const _Stream, + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vfprintf_s_l(_Stream, _Format, 0, _ArgList); + } + + + + + + __inline int __cdecl _vfprintf_p_l( + FILE* const _Stream, + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __stdio_common_vfprintf_p((*__local_stdio_printf_options()), _Stream, _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl _vfprintf_p( + FILE* const _Stream, + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vfprintf_p_l(_Stream, _Format, 0, _ArgList); + } + + + + __inline int __cdecl _vprintf_l( + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return _vfprintf_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl vprintf( + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vfprintf_l((__acrt_iob_func(1)), _Format, 0, _ArgList); + } + + + + __inline int __cdecl _vprintf_s_l( + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return _vfprintf_s_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList); + } + + + + + + __inline int __cdecl vprintf_s( + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vfprintf_s_l((__acrt_iob_func(1)), _Format, 0, _ArgList); + } + + + + + + __inline int __cdecl _vprintf_p_l( + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return _vfprintf_p_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl _vprintf_p( + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vfprintf_p_l((__acrt_iob_func(1)), _Format, 0, _ArgList); + } + + + + __inline int __cdecl _fprintf_l( + FILE* const _Stream, + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfprintf_l(_Stream, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl fprintf( + FILE* const _Stream, + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfprintf_l(_Stream, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + int __cdecl _set_printf_count_output( + int _Value + ); + + int __cdecl _get_printf_count_output(void); + + + __inline int __cdecl _fprintf_s_l( + FILE* const _Stream, + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfprintf_s_l(_Stream, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + __inline int __cdecl fprintf_s( + FILE* const _Stream, + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfprintf_s_l(_Stream, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + __inline int __cdecl _fprintf_p_l( + FILE* const _Stream, + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfprintf_p_l(_Stream, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _fprintf_p( + FILE* const _Stream, + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfprintf_p_l(_Stream, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _printf_l( + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfprintf_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl printf( + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfprintf_l((__acrt_iob_func(1)), _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _printf_s_l( + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfprintf_s_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + __inline int __cdecl printf_s( + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfprintf_s_l((__acrt_iob_func(1)), _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + __inline int __cdecl _printf_p_l( + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfprintf_p_l((__acrt_iob_func(1)), _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _printf_p( + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfprintf_p_l((__acrt_iob_func(1)), _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } +# 1039 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 + int __cdecl __stdio_common_vfscanf( + unsigned __int64 _Options, + FILE* _Stream, + char const* _Format, + _locale_t _Locale, + va_list _Arglist + ); + + + __inline int __cdecl _vfscanf_l( + FILE* const _Stream, + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __stdio_common_vfscanf( + (*__local_stdio_scanf_options ()), + _Stream, _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl vfscanf( + FILE* const _Stream, + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vfscanf_l(_Stream, _Format, 0, _ArgList); + } + + + + __inline int __cdecl _vfscanf_s_l( + FILE* const _Stream, + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __stdio_common_vfscanf( + (*__local_stdio_scanf_options ()) | (1ULL << 0), + _Stream, _Format, _Locale, _ArgList); + } + + + + + + + __inline int __cdecl vfscanf_s( + FILE* const _Stream, + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vfscanf_s_l(_Stream, _Format, 0, _ArgList); + } + + + + + + __inline int __cdecl _vscanf_l( + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return _vfscanf_l((__acrt_iob_func(0)), _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl vscanf( + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vfscanf_l((__acrt_iob_func(0)), _Format, 0, _ArgList); + } + + + + __inline int __cdecl _vscanf_s_l( + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return _vfscanf_s_l((__acrt_iob_func(0)), _Format, _Locale, _ArgList); + } + + + + + + __inline int __cdecl vscanf_s( + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vfscanf_s_l((__acrt_iob_func(0)), _Format, 0, _ArgList); + } + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_fscanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _fscanf_l( + FILE* const _Stream, + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfscanf_l(_Stream, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "fscanf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl fscanf( + FILE* const _Stream, + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfscanf_l(_Stream, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _fscanf_s_l( + FILE* const _Stream, + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfscanf_s_l(_Stream, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + __inline int __cdecl fscanf_s( + FILE* const _Stream, + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfscanf_s_l(_Stream, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_scanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _scanf_l( + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfscanf_l((__acrt_iob_func(0)), _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "scanf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl scanf( + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfscanf_l((__acrt_iob_func(0)), _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _scanf_s_l( + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfscanf_s_l((__acrt_iob_func(0)), _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + __inline int __cdecl scanf_s( + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vfscanf_s_l((__acrt_iob_func(0)), _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } +# 1332 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 + int __cdecl __stdio_common_vsprintf( + unsigned __int64 _Options, + char* _Buffer, + size_t _BufferCount, + char const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + int __cdecl __stdio_common_vsprintf_s( + unsigned __int64 _Options, + char* _Buffer, + size_t _BufferCount, + char const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + int __cdecl __stdio_common_vsnprintf_s( + unsigned __int64 _Options, + char* _Buffer, + size_t _BufferCount, + size_t _MaxCount, + char const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + int __cdecl __stdio_common_vsprintf_p( + unsigned __int64 _Options, + char* _Buffer, + size_t _BufferCount, + char const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_vsnprintf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _vsnprintf_l( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + int const _Result = __stdio_common_vsprintf( + (*__local_stdio_printf_options()) | (1ULL << 0), + _Buffer, _BufferCount, _Format, _Locale, _ArgList); + + return _Result < 0 ? -1 : _Result; + } + + + + + __inline int __cdecl _vsnprintf( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + va_list _ArgList + ) + + + + { +#pragma warning(push) +#pragma warning(disable: 4996) + return _vsnprintf_l(_Buffer, _BufferCount, _Format, 0, _ArgList); +#pragma warning(pop) + } +# 1425 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 + __inline int __cdecl vsnprintf( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + va_list _ArgList + ) + + + + { + int const _Result = __stdio_common_vsprintf( + (*__local_stdio_printf_options()) | (1ULL << 1), + _Buffer, _BufferCount, _Format, 0, _ArgList); + + return _Result < 0 ? -1 : _Result; + } + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_vsprintf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _vsprintf_l( + char* const _Buffer, + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { +#pragma warning(push) +#pragma warning(disable: 4996) + return _vsnprintf_l(_Buffer, (size_t)-1, _Format, _Locale, _ArgList); +#pragma warning(pop) + } + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "vsprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl vsprintf( + char* const _Buffer, + char const* const _Format, + va_list _ArgList + ) + + + + { +#pragma warning(push) +#pragma warning(disable: 4996) + return _vsnprintf_l(_Buffer, (size_t)-1, _Format, 0, _ArgList); +#pragma warning(pop) + } + + + + + __inline int __cdecl _vsprintf_s_l( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + int const _Result = __stdio_common_vsprintf_s( + (*__local_stdio_printf_options()), + _Buffer, _BufferCount, _Format, _Locale, _ArgList); + + return _Result < 0 ? -1 : _Result; + } + + + + + + + __inline int __cdecl vsprintf_s( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vsprintf_s_l(_Buffer, _BufferCount, _Format, 0, _ArgList); + } + + + extern "C++" { template inline int __cdecl vsprintf_s(char (&_Buffer)[_Size], char const* _Format, va_list _ArgList) throw() { return vsprintf_s(_Buffer, _Size, _Format, _ArgList); } } +# 1531 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 + __inline int __cdecl _vsprintf_p_l( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + int const _Result = __stdio_common_vsprintf_p( + (*__local_stdio_printf_options()), + _Buffer, _BufferCount, _Format, _Locale, _ArgList); + + return _Result < 0 ? -1 : _Result; + } + + + + + __inline int __cdecl _vsprintf_p( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vsprintf_p_l(_Buffer, _BufferCount, _Format, 0, _ArgList); + } + + + + + __inline int __cdecl _vsnprintf_s_l( + char* const _Buffer, + size_t const _BufferCount, + size_t const _MaxCount, + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + int const _Result = __stdio_common_vsnprintf_s( + (*__local_stdio_printf_options()), + _Buffer, _BufferCount, _MaxCount, _Format, _Locale, _ArgList); + + return _Result < 0 ? -1 : _Result; + } + + + + + __inline int __cdecl _vsnprintf_s( + char* const _Buffer, + size_t const _BufferCount, + size_t const _MaxCount, + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vsnprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, 0, _ArgList); + } + + + extern "C++" { template inline int __cdecl _vsnprintf_s(char (&_Buffer)[_Size], size_t _BufferCount, char const* _Format, va_list _ArgList) throw() { return _vsnprintf_s(_Buffer, _Size, _BufferCount, _Format, _ArgList); } } +# 1618 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 + __inline int __cdecl vsnprintf_s( + char* const _Buffer, + size_t const _BufferCount, + size_t const _MaxCount, + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vsnprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, 0, _ArgList); + } + + + extern "C++" { template inline int __cdecl vsnprintf_s(char (&_Buffer)[_Size], size_t _BufferCount, char const* _Format, va_list _ArgList) throw() { return vsnprintf_s(_Buffer, _Size, _BufferCount, _Format, _ArgList); } } +# 1645 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 + __inline int __cdecl _vscprintf_l( + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + int const _Result = __stdio_common_vsprintf( + (*__local_stdio_printf_options()) | (1ULL << 1), + 0, 0, _Format, _Locale, _ArgList); + + return _Result < 0 ? -1 : _Result; + } + + + + __inline int __cdecl _vscprintf( + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vscprintf_l(_Format, 0, _ArgList); + } + + + + __inline int __cdecl _vscprintf_p_l( + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + int const _Result = __stdio_common_vsprintf_p( + (*__local_stdio_printf_options()) | (1ULL << 1), + 0, 0, _Format, _Locale, _ArgList); + + return _Result < 0 ? -1 : _Result; + } + + + + __inline int __cdecl _vscprintf_p( + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vscprintf_p_l(_Format, 0, _ArgList); + } + + + + __inline int __cdecl _vsnprintf_c_l( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + int const _Result = __stdio_common_vsprintf( + (*__local_stdio_printf_options()), + _Buffer, _BufferCount, _Format, _Locale, _ArgList); + + return _Result < 0 ? -1 : _Result; + } + + + + + __inline int __cdecl _vsnprintf_c( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vsnprintf_c_l(_Buffer, _BufferCount, _Format, 0, _ArgList); + } + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_sprintf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _sprintf_l( + char* const _Buffer, + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + +#pragma warning(push) +#pragma warning(disable: 4996) + _Result = _vsprintf_l(_Buffer, _Format, _Locale, _ArgList); +#pragma warning(pop) + + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl sprintf( + char* const _Buffer, + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + +#pragma warning(push) +#pragma warning(disable: 4996) + _Result = _vsprintf_l(_Buffer, _Format, 0, _ArgList); +#pragma warning(pop) + + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + +#pragma warning(push) +#pragma warning(disable: 4996) + __declspec(deprecated("This function or variable may be unsafe. Consider using " "sprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) int __cdecl sprintf( char *_Buffer, char const* _Format, ...); __declspec(deprecated("This function or variable may be unsafe. Consider using " "vsprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) int __cdecl vsprintf( char *_Buffer, char const* _Format, va_list _Args); + + + + + +#pragma warning(pop) + + + + __inline int __cdecl _sprintf_s_l( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vsprintf_s_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + + __inline int __cdecl sprintf_s( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vsprintf_s_l(_Buffer, _BufferCount, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + extern "C++" { +# 1846 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 +#pragma warning(push) +# 1846 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 +; +# 1846 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 +#pragma warning(disable: 4793) +# 1846 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 +; template inline int __cdecl sprintf_s(char (&_Buffer)[_Size], char const* _Format, ...) throw() { va_list _ArgList; ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); return vsprintf_s(_Buffer, _Size, _Format, _ArgList); } +# 1846 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 +#pragma warning(pop) +# 1846 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 +; } + + + + + + + + __inline int __cdecl _sprintf_p_l( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vsprintf_p_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _sprintf_p( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vsprintf_p_l(_Buffer, _BufferCount, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_snprintf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _snprintf_l( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + +#pragma warning(push) +#pragma warning(disable: 4996) + _Result = _vsnprintf_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); +#pragma warning(pop) + + ((void)(_ArgList = (va_list)0)); + return _Result; + } +# 1932 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 + __inline int __cdecl snprintf( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); +#pragma warning(suppress: 28719) + _Result = vsnprintf(_Buffer, _BufferCount, _Format, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _snprintf( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); +#pragma warning(suppress: 28719) + _Result = _vsnprintf(_Buffer, _BufferCount, _Format, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_snprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) int __cdecl _snprintf( char *_Buffer, size_t _BufferCount, char const* _Format, ...); __declspec(deprecated("This function or variable may be unsafe. Consider using " "_vsnprintf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) int __cdecl _vsnprintf( char *_Buffer, size_t _BufferCount, char const* _Format, va_list _Args); +# 1982 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 + __inline int __cdecl _snprintf_c_l( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vsnprintf_c_l(_Buffer, _BufferCount, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _snprintf_c( + char* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vsnprintf_c_l(_Buffer, _BufferCount, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _snprintf_s_l( + char* const _Buffer, + size_t const _BufferCount, + size_t const _MaxCount, + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vsnprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _snprintf_s( + char* const _Buffer, + size_t const _BufferCount, + size_t const _MaxCount, + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vsnprintf_s_l(_Buffer, _BufferCount, _MaxCount, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + extern "C++" { +# 2064 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 +#pragma warning(push) +# 2064 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 +; +# 2064 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 +#pragma warning(disable: 4793) +# 2064 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 +; template inline int __cdecl _snprintf_s(char (&_Buffer)[_Size], size_t _BufferCount, char const* _Format, ...) throw() { va_list _ArgList; ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); return _vsnprintf_s(_Buffer, _Size, _BufferCount, _Format, _ArgList); } +# 2064 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 +#pragma warning(pop) +# 2064 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 +; } +# 2073 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 + __inline int __cdecl _scprintf_l( + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vscprintf_l(_Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _scprintf( + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vscprintf_l(_Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _scprintf_p_l( + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vscprintf_p_l(_Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _scprintf_p( + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vscprintf_p(_Format, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + + + int __cdecl __stdio_common_vsscanf( + unsigned __int64 _Options, + char const* _Buffer, + size_t _BufferCount, + char const* _Format, + _locale_t _Locale, + va_list _ArgList + ); + + + __inline int __cdecl _vsscanf_l( + char const* const _Buffer, + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __stdio_common_vsscanf( + (*__local_stdio_scanf_options ()), + _Buffer, (size_t)-1, _Format, _Locale, _ArgList); + } + + + + __inline int __cdecl vsscanf( + char const* const _Buffer, + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vsscanf_l(_Buffer, _Format, 0, _ArgList); + } + + + + __inline int __cdecl _vsscanf_s_l( + char const* const _Buffer, + char const* const _Format, + _locale_t const _Locale, + va_list _ArgList + ) + + + + { + return __stdio_common_vsscanf( + (*__local_stdio_scanf_options ()) | (1ULL << 0), + _Buffer, (size_t)-1, _Format, _Locale, _ArgList); + } + + + + +#pragma warning(push) +#pragma warning(disable: 6530) + + + __inline int __cdecl vsscanf_s( + char const* const _Buffer, + char const* const _Format, + va_list _ArgList + ) + + + + { + return _vsscanf_s_l(_Buffer, _Format, 0, _ArgList); + } + + + extern "C++" { template inline int __cdecl vsscanf_s(char const (&_Buffer)[_Size], char const* _Format, va_list _ArgList) throw() { return vsscanf_s(_Buffer, _Size, _Format, _ArgList); } } + + + + + + +#pragma warning(pop) + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_sscanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _sscanf_l( + char const* const _Buffer, + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vsscanf_l(_Buffer, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "sscanf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl sscanf( + char const* const _Buffer, + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vsscanf_l(_Buffer, _Format, 0, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _sscanf_s_l( + char const* const _Buffer, + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _Result = _vsscanf_s_l(_Buffer, _Format, _Locale, _ArgList); + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + + __inline int __cdecl sscanf_s( + char const* const _Buffer, + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + +#pragma warning(push) +#pragma warning(disable: 4996) + _Result = vsscanf_s(_Buffer, _Format, _ArgList); +#pragma warning(pop) + + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + +#pragma warning(push) +#pragma warning(disable: 6530) + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_snscanf_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _snscanf_l( + char const* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + + _Result = __stdio_common_vsscanf( + (*__local_stdio_scanf_options ()), + _Buffer, _BufferCount, _Format, _Locale, _ArgList); + + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_snscanf_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + __inline int __cdecl _snscanf( + char const* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + + _Result = __stdio_common_vsscanf( + (*__local_stdio_scanf_options ()), + _Buffer, _BufferCount, _Format, 0, _ArgList); + + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + + __inline int __cdecl _snscanf_s_l( + char const* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + _locale_t const _Locale, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Locale))) + ((sizeof(_Locale) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + + _Result = __stdio_common_vsscanf( + (*__local_stdio_scanf_options ()) | (1ULL << 0), + _Buffer, _BufferCount, _Format, _Locale, _ArgList); + + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + + + __inline int __cdecl _snscanf_s( + char const* const _Buffer, + size_t const _BufferCount, + char const* const _Format, + ...) + + + + { + int _Result; + va_list _ArgList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(_ArgList = (va_list)(&const_cast(reinterpret_cast(_Format))) + ((sizeof(_Format) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + + _Result = __stdio_common_vsscanf( + (*__local_stdio_scanf_options ()) | (1ULL << 0), + _Buffer, _BufferCount, _Format, 0, _ArgList); + + ((void)(_ArgList = (va_list)0)); + return _Result; + } + + +#pragma warning(pop) +# 2437 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_tempnam" ". See online help for details.")) + char* __cdecl tempnam( + char const* _Directory, + char const* _FilePrefix + ); + + + + + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_fcloseall" ". See online help for details.")) int __cdecl fcloseall(void); + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_fdopen" ". See online help for details.")) FILE* __cdecl fdopen( int _FileHandle, char const* _Format); + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_fgetchar" ". See online help for details.")) int __cdecl fgetchar(void); + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_fileno" ". See online help for details.")) int __cdecl fileno( FILE* _Stream); + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_flushall" ". See online help for details.")) int __cdecl flushall(void); + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_fputchar" ". See online help for details.")) int __cdecl fputchar( int _Ch); + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_getw" ". See online help for details.")) int __cdecl getw( FILE* _Stream); + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_putw" ". See online help for details.")) int __cdecl putw( int _Ch, FILE* _Stream); + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_rmtmp" ". See online help for details.")) int __cdecl rmtmp(void); + + + + + + +} +# 2462 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\stdio.h" 3 +#pragma pack(pop) +# 13 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cstdio" 2 3 +# 32 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cstdio" 3 +typedef FILE FILE; + + +namespace std { +using :: FILE; using :: _Mbstatet; + +using :: size_t; using :: fpos_t; using :: FILE; +using :: clearerr; using :: fclose; using :: feof; +using :: ferror; using :: fflush; using :: fgetc; +using :: fgetpos; using :: fgets; using :: fopen; +using :: fprintf; using :: fputc; using :: fputs; +using :: fread; using :: freopen; using :: fscanf; +using :: fseek; using :: fsetpos; using :: ftell; +using :: fwrite; using :: getc; using :: getchar; +using :: perror; +using :: putc; using :: putchar; +using :: printf; using :: puts; using :: remove; +using :: rename; using :: rewind; using :: scanf; +using :: setbuf; using :: setvbuf; using :: sprintf; +using :: sscanf; using :: tmpfile; using :: tmpnam; +using :: ungetc; using :: vfprintf; using :: vprintf; +using :: vsprintf; + +using :: snprintf; using :: vsnprintf; +using :: vfscanf; using :: vscanf; using :: vsscanf; +} +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iosfwd" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cstring" 1 3 +# 17 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cstring" 3 +namespace std { +using :: size_t; using :: memchr; using :: memcmp; +using :: memcpy; using :: memmove; using :: memset; +using :: strcat; using :: strchr; using :: strcmp; +using :: strcoll; using :: strcpy; using :: strcspn; +using :: strerror; using :: strlen; using :: strncat; +using :: strncmp; using :: strncpy; using :: strpbrk; +using :: strrchr; using :: strspn; using :: strstr; +using :: strtok; using :: strxfrm; +} +# 7 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iosfwd" 2 3 + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\crtdbg.h" 1 3 +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\crtdbg.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_new_debug.h" 1 3 +# 13 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_new_debug.h" 3 +extern "C++" { + +#pragma pack(push, 8) + + + + + + + + __declspec(allocator) void* __cdecl operator new( + size_t _Size, + int _BlockUse, + char const* _FileName, + int _LineNumber + ); + + + __declspec(allocator) void* __cdecl operator new[]( + size_t _Size, + int _BlockUse, + char const* _FileName, + int _LineNumber + ); + + void __cdecl operator delete( + void* _Block, + int _BlockUse, + char const* _FileName, + int _LineNumber + ) throw(); + + void __cdecl operator delete[]( + void* _Block, + int _BlockUse, + char const* _FileName, + int _LineNumber + ) throw(); + + + + + +#pragma pack(pop) + +} +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\crtdbg.h" 2 3 + + +#pragma pack(push, 8) +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\crtdbg.h" 3 + extern "C" { + + + +typedef void* _HFILE; +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\crtdbg.h" 3 +typedef int (__cdecl* _CRT_REPORT_HOOK )(int, char*, int*); +typedef int (__cdecl* _CRT_REPORT_HOOKW)(int, wchar_t*, int*); + + + + + +typedef int (__cdecl* _CRT_ALLOC_HOOK)(int, void*, size_t, int, long, unsigned char const*, int); +# 107 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\crtdbg.h" 3 +typedef void (__cdecl* _CRT_DUMP_CLIENT)(void*, size_t); + + + + + +struct _CrtMemBlockHeader; + +typedef struct _CrtMemState +{ + struct _CrtMemBlockHeader* pBlockHeader; + size_t lCounts[5]; + size_t lSizes[5]; + size_t lHighWaterCount; + size_t lTotalCount; +} _CrtMemState; +# 151 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\crtdbg.h" 3 + int* __cdecl __p__crtDbgFlag(void); + long* __cdecl __p__crtBreakAlloc(void); + + + + + _CRT_ALLOC_HOOK __cdecl _CrtGetAllocHook(void); + + _CRT_ALLOC_HOOK __cdecl _CrtSetAllocHook( + _CRT_ALLOC_HOOK _PfnNewHook + ); + + _CRT_DUMP_CLIENT __cdecl _CrtGetDumpClient(void); + + _CRT_DUMP_CLIENT __cdecl _CrtSetDumpClient( + _CRT_DUMP_CLIENT _PFnNewDump + ); + + + + int __cdecl _CrtCheckMemory(void); + + typedef void (__cdecl* _CrtDoForAllClientObjectsCallback)(void*, void*); + + void __cdecl _CrtDoForAllClientObjects( + _CrtDoForAllClientObjectsCallback _Callback, + void* _Context + ); + + int __cdecl _CrtDumpMemoryLeaks(void); + + int __cdecl _CrtIsMemoryBlock( + void const* _Block, + unsigned int _Size, + long* _RequestNumber, + char** _FileName, + int* _LineNumber + ); + + + int __cdecl _CrtIsValidHeapPointer( + void const* _Pointer + ); + + + int __cdecl _CrtIsValidPointer( + void const* _Pointer, + unsigned int _Size, + int _ReadWrite + ); + + void __cdecl _CrtMemCheckpoint( + _CrtMemState* _State + ); + + int __cdecl _CrtMemDifference( + _CrtMemState* _State, + _CrtMemState const* _OldState, + _CrtMemState const* _NewState + ); + + void __cdecl _CrtMemDumpAllObjectsSince( + _CrtMemState const* _State + ); + + void __cdecl _CrtMemDumpStatistics( + _CrtMemState const* _State + ); + + + int __cdecl _CrtReportBlockType( + void const* _Block + ); + + long __cdecl _CrtSetBreakAlloc( + long _NewValue + ); + + int __cdecl _CrtSetDbgFlag( + int _NewFlag + ); +# 327 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\crtdbg.h" 3 + void __cdecl _aligned_free_dbg( + void* _Block + ); + + + __declspec(allocator) void* __cdecl _aligned_malloc_dbg( + size_t _Size, + size_t _Alignment, + char const* _FileName, + int _LineNumber + ); + + size_t __cdecl _aligned_msize_dbg( + void* _Block, + size_t _Alignment, + size_t _Offset + ); + + + __declspec(allocator) void* __cdecl _aligned_offset_malloc_dbg( + size_t _Size, + size_t _Alignment, + size_t _Offset, + char const* _FileName, + int _LineNumber + ); + + + __declspec(allocator) void* __cdecl _aligned_offset_realloc_dbg( + void* _Block, + size_t _Size, + size_t _Alignment, + size_t _Offset, + char const* _FileName, + int _LineNumber + ); + + + __declspec(allocator) void* __cdecl _aligned_offset_recalloc_dbg( + void* _Block, + size_t _Count, + size_t _Size, + size_t _Alignment, + size_t _Offset, + char const* _FileName, + int _LineNumber + ); + + + __declspec(allocator) void* __cdecl _aligned_realloc_dbg( + void* _Block, + size_t _Size, + size_t _Alignment, + char const* _FileName, + int _LineNumber + ); + + + __declspec(allocator) void* __cdecl _aligned_recalloc_dbg( + void* _Block, + size_t _Count, + size_t _Size, + size_t _Alignment, + char const* _FileName, + int _LineNumber + ); + + + __declspec(allocator) void* __cdecl _calloc_dbg( + size_t _Count, + size_t _Size, + int _BlockUse, + char const* _FileName, + int _LineNumber + ); + + + __declspec(allocator) void* __cdecl _expand_dbg( + void* _Block, + size_t _Size, + int _BlockUse, + char const* _FileName, + int _LineNumber + ); + + void __cdecl _free_dbg( + void* _Block, + int _BlockUse + ); + + + __declspec(allocator) void* __cdecl _malloc_dbg( + size_t _Size, + int _BlockUse, + char const* _FileName, + int _LineNumber + ); + + size_t __cdecl _msize_dbg( + void* _Block, + int _BlockUse + ); + + + __declspec(allocator) void* __cdecl _realloc_dbg( + void* _Block, + size_t _Size, + int _BlockUse, + char const* _FileName, + int _LineNumber + ); + + + __declspec(allocator) void* __cdecl _recalloc_dbg( + void* _Block, + size_t _Count, + size_t _Size, + int _BlockUse, + char const* _FileName, + int _LineNumber + ); + + + + errno_t __cdecl _dupenv_s_dbg( + char** _PBuffer, + size_t* _PBufferSizeInBytes, + char const* _VarName, + int _BlockType, + char const* _FileName, + int _LineNumber + ); + + + + __declspec(allocator) char* __cdecl _fullpath_dbg( + char* _FullPath, + char const* _Path, + size_t _SizeInBytes, + int _BlockType, + char const* _FileName, + int _LineNumber + ); + + + + __declspec(allocator) char* __cdecl _getcwd_dbg( + char* _DstBuf, + int _SizeInBytes, + int _BlockType, + char const* _FileName, + int _LineNumber + ); + + + + + __declspec(allocator) char* __cdecl _getdcwd_dbg( + int _Drive, + char* _DstBuf, + int _SizeInBytes, + int _BlockType, + char const* _FileName, + int _LineNumber + ); + + + __declspec(allocator) char* __cdecl _strdup_dbg( + char const* _String, + int _BlockUse, + char const* _FileName, + int _LineNumber + ); + + + __declspec(allocator) char* __cdecl _tempnam_dbg( + char const* _DirName, + char const* _FilePrefix, + int _BlockType, + char const* _FileName, + int _LineNumber + ); + + + + __declspec(allocator) wchar_t* __cdecl _wcsdup_dbg( + wchar_t const* _String, + int _BlockUse, + char const* _FileName, + int _LineNumber + ); + + + + errno_t __cdecl _wdupenv_s_dbg( + wchar_t** _PBuffer, + size_t* _PBufferSizeInWords, + wchar_t const* _VarName, + int _BlockType, + char const* _FileName, + int _LineNumber + ); + + + + __declspec(allocator) wchar_t* __cdecl _wfullpath_dbg( + wchar_t* _FullPath, + wchar_t const* _Path, + size_t _SizeInWords, + int _BlockType, + char const* _FileName, + int _LineNumber + ); + + + + __declspec(allocator) wchar_t* __cdecl _wgetcwd_dbg( + wchar_t* _DstBuf, + int _SizeInWords, + int _BlockType, + char const* _FileName, + int _LineNumber + ); + + + + __declspec(allocator) wchar_t* __cdecl _wgetdcwd_dbg( + int _Drive, + wchar_t* _DstBuf, + int _SizeInWords, + int _BlockType, + char const* _FileName, + int _LineNumber + ); + + + __declspec(allocator) wchar_t* __cdecl _wtempnam_dbg( + wchar_t const* _DirName, + wchar_t const* _FilePrefix, + int _BlockType, + char const* _FileName, + int _LineNumber + ); +# 606 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\crtdbg.h" 3 + int __cdecl _CrtDbgReport( + int _ReportType, + char const* _FileName, + int _Linenumber, + char const* _ModuleName, + char const* _Format, + ...); + + int __cdecl _CrtDbgReportW( + int _ReportType, + wchar_t const* _FileName, + int _LineNumber, + wchar_t const* _ModuleName, + wchar_t const* _Format, + ...); + + + int __cdecl _VCrtDbgReportA( + int _ReportType, + void* _ReturnAddress, + char const* _FileName, + int _LineNumber, + char const* _ModuleName, + char const* _Format, + va_list _ArgList + ); + + int __cdecl _VCrtDbgReportW( + int _ReportType, + void* _ReturnAddress, + wchar_t const* _FileName, + int _LineNumber, + wchar_t const* _ModuleName, + wchar_t const* _Format, + va_list _ArgList + ); + + size_t __cdecl _CrtSetDebugFillThreshold( + size_t _NewDebugFillThreshold + ); + + size_t __cdecl _CrtGetDebugFillThreshold(void); + + _HFILE __cdecl _CrtSetReportFile( + int _ReportType, + _HFILE _ReportFile + ); + + int __cdecl _CrtSetReportMode( + int _ReportType, + int _ReportMode + ); + + + + extern long _crtAssertBusy; + + _CRT_REPORT_HOOK __cdecl _CrtGetReportHook(void); + + + + + _CRT_REPORT_HOOK __cdecl _CrtSetReportHook( + _CRT_REPORT_HOOK _PFnNewHook + ); + + int __cdecl _CrtSetReportHook2( + int _Mode, + _CRT_REPORT_HOOK _PFnNewHook + ); + + int __cdecl _CrtSetReportHookW2( + int _Mode, + _CRT_REPORT_HOOKW _PFnNewHook + ); +# 808 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\crtdbg.h" 3 +} +# 808 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\crtdbg.h" 3 +#pragma pack(pop) +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iosfwd" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +namespace std { + + +typedef _Longlong streamoff; +typedef _Longlong streamsize; +# 31 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iosfwd" 3 +extern const streamoff _BADOFF; + + + +template + class fpos + { + typedef fpos<_Statetype> _Myt; + +public: + fpos(streamoff _Off = 0) + : _Myoff(_Off), _Fpos(0), _Mystate() + { + } + + fpos(_Statetype _State, fpos_t _Fileposition) + : _Myoff(0), _Fpos(_Fileposition), _Mystate(_State) + { + } + + _Statetype state() const + { + return (_Mystate); + } + + void state(_Statetype _State) + { + _Mystate = _State; + } + + fpos_t seekpos() const + { + return (_Fpos); + } + + operator streamoff() const + { + return ((streamoff)(_Myoff + ((long long)(_Fpos)))); + } + + streamoff operator-(const _Myt& _Right) const + { + return ((streamoff)*this - (streamoff)_Right); + } + + _Myt& operator+=(streamoff _Off) + { + _Myoff += _Off; + return (*this); + } + + _Myt& operator-=(streamoff _Off) + { + _Myoff -= _Off; + return (*this); + } + + _Myt operator+(streamoff _Off) const + { + _Myt _Tmp = *this; + return (_Tmp += _Off); + } + + _Myt operator-(streamoff _Off) const + { + _Myt _Tmp = *this; + return (_Tmp -= _Off); + } + + bool operator==(const _Myt& _Right) const + { + return ((streamoff)*this == (streamoff)_Right); + } + + bool operator==(streamoff _Right) const + { + return ((streamoff)*this == _Right); + } + + bool operator!=(const _Myt& _Right) const + { + return (!(*this == _Right)); + } + +private: + streamoff _Myoff; + fpos_t _Fpos; + _Statetype _Mystate; + }; + + + + + + +typedef fpos<_Mbstatet> streampos; + +typedef streampos wstreampos; + + +template + struct _Char_traits + { + typedef _Elem char_type; + typedef _Int_type int_type; + typedef streampos pos_type; + typedef streamoff off_type; + typedef _Mbstatet state_type; + + static int __cdecl compare( + const _Elem *_First1, + const _Elem *_First2, size_t _Count) + { + for (; 0 < _Count; --_Count, ++_First1, ++_First2) + if (!eq(*_First1, *_First2)) + return (lt(*_First1, *_First2) ? -1 : +1); + return (0); + } + + static size_t __cdecl length( const _Elem *_First) + { + size_t _Count; + for (_Count = 0; !eq(*_First, _Elem()); ++_First) + ++_Count; + return (_Count); + } + + static _Elem *__cdecl copy( + _Elem *_First1, + const _Elem *_First2, size_t _Count) + { + _Elem *_Next = _First1; + for (; 0 < _Count; --_Count, ++_Next, ++_First2) + assign(*_Next, *_First2); + return (_First1); + } + + static _Elem *__cdecl _Copy_s( + _Elem *_First1, size_t _Dest_size, + const _Elem *_First2, size_t _Count) + { + { if (!(_Count <= _Dest_size)) { (void)( (!!(("_Count <= _Dest_size" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iosfwd", 173, 0, L"%ls", L"\"_Count <= _Dest_size\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"_Count <= _Dest_size", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iosfwd", 173, 0); return (0); } }; + return (copy(_First1, _First2, _Count)); + } + + static const _Elem *__cdecl find( + const _Elem *_First, + size_t _Count, const _Elem& _Ch) + { + for (; 0 < _Count; --_Count, ++_First) + if (eq(*_First, _Ch)) + return (_First); + return (0); + } + + static _Elem *__cdecl move( + _Elem *_First1, + const _Elem *_First2, size_t _Count) + { + _Elem *_Next = _First1; + if (_First2 < _Next && _Next < _First2 + _Count) + for (_Next += _Count, _First2 += _Count; 0 < _Count; --_Count) + assign(*--_Next, *--_First2); + else + for (; 0 < _Count; --_Count, ++_Next, ++_First2) + assign(*_Next, *_First2); + return (_First1); + } + + static _Elem *__cdecl assign( + _Elem *_First, + size_t _Count, _Elem _Ch) + { + _Elem *_Next = _First; + for (; 0 < _Count; --_Count, ++_Next) + assign(*_Next, _Ch); + return (_First); + } + + static void __cdecl assign(_Elem& _Left, const _Elem& _Right) noexcept + { + _Left = _Right; + } + + static constexpr bool __cdecl eq(const _Elem& _Left, + const _Elem& _Right) noexcept + { + return (_Left == _Right); + } + + static constexpr bool __cdecl lt(const _Elem& _Left, + const _Elem& _Right) noexcept + { + return (_Left < _Right); + } + + static constexpr _Elem __cdecl to_char_type( + const int_type& _Meta) noexcept + { + return ((_Elem)_Meta); + } + + static constexpr int_type __cdecl to_int_type( + const _Elem& _Ch) noexcept + { + return ((int_type)_Ch); + } + + static constexpr bool __cdecl eq_int_type(const int_type& _Left, + const int_type& _Right) noexcept + { + return (_Left == _Right); + } + + static constexpr int_type __cdecl not_eof( + const int_type& _Meta) noexcept + { + return (_Meta != eof() ? (int_type)_Meta : (int_type)!eof()); + } + + static constexpr int_type __cdecl eof() noexcept + { + return ((int_type)(-1)); + } + }; + + +template + struct char_traits + : public _Char_traits<_Elem, long> + { + }; + + +template<> + struct char_traits + : public _Char_traits + { + }; + +typedef streampos u16streampos; + + +template<> + struct char_traits + : public _Char_traits + { + }; + +typedef streampos u32streampos; + + +template<> + struct char_traits + { + typedef wchar_t _Elem; + typedef _Elem char_type; + typedef wint_t int_type; + typedef streampos pos_type; + typedef streamoff off_type; + typedef _Mbstatet state_type; + + static int __cdecl compare(const _Elem *_First1, const _Elem *_First2, + size_t _Count) + { + return (_Count == 0 ? 0 + : :: wmemcmp(_First1, _First2, _Count)); + } + + static size_t __cdecl length(const _Elem *_First) + { + return (*_First == 0 ? 0 + : :: wcslen(_First)); + } + + static _Elem *__cdecl copy(_Elem *_First1, const _Elem *_First2, + size_t _Count) + { + return (_Count == 0 ? _First1 + : (_Elem *):: wmemcpy(_First1, _First2, _Count)); + } + + static _Elem *__cdecl _Copy_s( + _Elem *_First1, size_t _Size_in_words, + const _Elem *_First2, size_t _Count) + { + if (0 < _Count) + ::wmemcpy_s((_First1), (_Size_in_words), (_First2), (_Count)); + return (_First1); + } + + static const _Elem *__cdecl find(const _Elem *_First, size_t _Count, + const _Elem& _Ch) + { + return (_Count == 0 ? (const _Elem *)0 + : (const _Elem *):: wmemchr(_First, _Ch, _Count)); + } + + static _Elem *__cdecl move(_Elem *_First1, const _Elem *_First2, + size_t _Count) + { + return (_Count == 0 ? _First1 + : (_Elem *):: wmemmove(_First1, _First2, _Count)); + } + + static _Elem *__cdecl assign(_Elem *_First, size_t _Count, + _Elem _Ch) + { + return ((_Elem *):: wmemset(_First, _Ch, _Count)); + } + + static void __cdecl assign(_Elem& _Left, const _Elem& _Right) noexcept + { + _Left = _Right; + } + + static constexpr bool __cdecl eq(const _Elem& _Left, + const _Elem& _Right) noexcept + { + return (_Left == _Right); + } + + static constexpr bool __cdecl lt(const _Elem& _Left, + const _Elem& _Right) noexcept + { + return (_Left < _Right); + } + + static constexpr _Elem __cdecl to_char_type( + const int_type& _Meta) noexcept + { + return (_Meta); + } + + static constexpr int_type __cdecl to_int_type( + const _Elem& _Ch) noexcept + { + return (_Ch); + } + + static constexpr bool __cdecl eq_int_type(const int_type& _Left, + const int_type& _Right) noexcept + { + return (_Left == _Right); + } + + static constexpr int_type __cdecl not_eof( + const int_type& _Meta) noexcept + { + return (_Meta != eof() ? _Meta : !eof()); + } + + static constexpr int_type __cdecl eof() noexcept + { + return (((wint_t)(0xFFFF))); + } + }; + + + +template<> + struct char_traits + { + typedef unsigned short _Elem; + typedef _Elem char_type; + typedef wint_t int_type; + typedef streampos pos_type; + typedef streamoff off_type; + typedef _Mbstatet state_type; + + static int __cdecl compare(const _Elem *_First1, const _Elem *_First2, + size_t _Count) + { + return (_Count == 0 ? 0 + : :: wmemcmp((const wchar_t *)_First1, + (const wchar_t *)_First2, _Count)); + } + + static size_t __cdecl length(const _Elem *_First) + { + return (*_First == 0 ? 0 + : :: wcslen((const wchar_t *)_First)); + } + + static _Elem *__cdecl copy(_Elem *_First1, const _Elem *_First2, + size_t _Count) + { + return (_Count == 0 ? _First1 + : (_Elem *):: wmemcpy((wchar_t *)_First1, + (const wchar_t *)_First2, _Count)); + } + + static _Elem *__cdecl _Copy_s( + _Elem *_First1, size_t _Size_in_words, + const _Elem *_First2, size_t _Count) + { + if (0 < _Count) + ::wmemcpy_s(((wchar_t *)_First1), (_Size_in_words), ((const wchar_t *)_First2), (_Count)); + + return (_First1); + } + + static const _Elem *__cdecl find(const _Elem *_First, size_t _Count, + const _Elem& _Ch) + { + return (_Count == 0 ? (const _Elem *)0 + : (const _Elem *):: wmemchr((const wchar_t *)_First, + _Ch, _Count)); + } + + static _Elem *__cdecl move(_Elem *_First1, const _Elem *_First2, + size_t _Count) + { + return (_Count == 0 ? _First1 + : (_Elem *):: wmemmove((wchar_t *)_First1, + (const wchar_t *)_First2, _Count)); + } + + static _Elem *__cdecl assign(_Elem *_First, size_t _Count, + _Elem _Ch) + { + return ((_Elem *):: wmemset((wchar_t *)_First, _Ch, _Count)); + } + + static void __cdecl assign(_Elem& _Left, const _Elem& _Right) noexcept + { + _Left = _Right; + } + + static constexpr bool __cdecl eq(const _Elem& _Left, + const _Elem& _Right) noexcept + { + return (_Left == _Right); + } + + static constexpr bool __cdecl lt(const _Elem& _Left, + const _Elem& _Right) noexcept + { + return (_Left < _Right); + } + + static constexpr _Elem __cdecl to_char_type(const int_type& _Meta) + noexcept + { + return (_Meta); + } + + static constexpr int_type __cdecl to_int_type(const _Elem& _Ch) + noexcept + { + return (_Ch); + } + + static constexpr bool __cdecl eq_int_type(const int_type& _Left, + const int_type& _Right) noexcept + { + return (_Left == _Right); + } + + static constexpr int_type __cdecl not_eof(const int_type& _Meta) + noexcept + { + return (_Meta != eof() ? _Meta : !eof()); + } + + static constexpr int_type __cdecl eof() noexcept + { + return (((wint_t)(0xFFFF))); + } + }; + + + +template<> struct char_traits + { + typedef char _Elem; + typedef _Elem char_type; + typedef int int_type; + typedef streampos pos_type; + typedef streamoff off_type; + typedef _Mbstatet state_type; + + static int __cdecl compare(const _Elem *_First1, const _Elem *_First2, + size_t _Count) + { + return (_Count == 0 ? 0 + : :: memcmp(_First1, _First2, _Count)); + } + + static size_t __cdecl length(const _Elem *_First) + { + return (*_First == 0 ? 0 + : :: strlen(_First)); + } + + static _Elem *__cdecl copy(_Elem *_First1, const _Elem *_First2, + size_t _Count) + { + return (_Count == 0 ? _First1 + : (_Elem *):: memcpy(_First1, _First2, _Count)); + } + + static _Elem *__cdecl _Copy_s( + _Elem *_First1, size_t _Size_in_bytes, + const _Elem *_First2, size_t _Count) + { + if (0 < _Count) + ::memcpy_s((_First1), (_Size_in_bytes), (_First2), (_Count)); + return (_First1); + } + + static const _Elem *__cdecl find(const _Elem *_First, size_t _Count, + const _Elem& _Ch) + { + return (_Count == 0 ? (const _Elem *)0 + : (const _Elem *):: memchr(_First, _Ch, _Count)); + } + + static _Elem *__cdecl move(_Elem *_First1, const _Elem *_First2, + size_t _Count) + { + return (_Count == 0 ? _First1 + : (_Elem *):: memmove(_First1, _First2, _Count)); + } + + static _Elem *__cdecl assign(_Elem *_First, size_t _Count, + _Elem _Ch) + { + return ((_Elem *):: memset(_First, _Ch, _Count)); + } + + static void __cdecl assign(_Elem& _Left, const _Elem& _Right) noexcept + { + _Left = _Right; + } + + static constexpr bool __cdecl eq(const _Elem& _Left, + const _Elem& _Right) noexcept + { + return (_Left == _Right); + } + + static constexpr bool __cdecl lt(const _Elem& _Left, + const _Elem& _Right) noexcept + { + return ((unsigned char)_Left < (unsigned char)_Right); + } + + static constexpr _Elem __cdecl to_char_type( + const int_type& _Meta) noexcept + { + return ((_Elem)_Meta); + } + + static constexpr int_type __cdecl to_int_type( + const _Elem& _Ch) noexcept + { + return ((unsigned char)_Ch); + } + + static constexpr bool __cdecl eq_int_type(const int_type& _Left, + const int_type& _Right) noexcept + { + return (_Left == _Right); + } + + static constexpr int_type __cdecl not_eof( + const int_type& _Meta) noexcept + { + return (_Meta != eof() ? _Meta : !eof()); + } + + static constexpr int_type __cdecl eof() noexcept + { + return ((-1)); + } + }; + + +template + class allocator; +class ios_base; +template > + class basic_ios; +template > + class istreambuf_iterator; +template > + class ostreambuf_iterator; +template > + class basic_streambuf; +template > + class basic_istream; +template > + class basic_ostream; +template > + class basic_iostream; +template, + class _Alloc = allocator<_Elem> > + class basic_stringbuf; +template, + class _Alloc = allocator<_Elem> > + class basic_istringstream; +template, + class _Alloc = allocator<_Elem> > + class basic_ostringstream; +template, + class _Alloc = allocator<_Elem> > + class basic_stringstream; +template > + class basic_filebuf; +template > + class basic_ifstream; +template > + class basic_ofstream; +template > + class basic_fstream; +# 676 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iosfwd" 3 +typedef basic_ios > ios; +typedef basic_streambuf > streambuf; +typedef basic_istream > istream; +typedef basic_ostream > ostream; +typedef basic_iostream > iostream; +typedef basic_stringbuf, + allocator > stringbuf; +typedef basic_istringstream, + allocator > istringstream; +typedef basic_ostringstream, + allocator > ostringstream; +typedef basic_stringstream, + allocator > stringstream; +typedef basic_filebuf > filebuf; +typedef basic_ifstream > ifstream; +typedef basic_ofstream > ofstream; +typedef basic_fstream > fstream; + + +typedef basic_ios > wios; +typedef basic_streambuf > + wstreambuf; +typedef basic_istream > wistream; +typedef basic_ostream > wostream; +typedef basic_iostream > wiostream; +typedef basic_stringbuf, + allocator > wstringbuf; +typedef basic_istringstream, + allocator > wistringstream; +typedef basic_ostringstream, + allocator > wostringstream; +typedef basic_stringstream, + allocator > wstringstream; +typedef basic_filebuf > wfilebuf; +typedef basic_ifstream > wifstream; +typedef basic_ofstream > wofstream; +typedef basic_fstream > wfstream; +# 748 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iosfwd" 3 +} + + +#pragma warning(pop) +#pragma pack(pop) +# 7 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\utility" 2 3 + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4180 4512) + +namespace std { + +template inline + void iter_swap(_FwdIt1 _Left, _FwdIt2 _Right) + { + swap(*_Left, *_Right); + } + + +template inline + void swap(_Ty (&_Left)[_Size], _Ty (&_Right)[_Size]) + noexcept(_Is_nothrow_swappable<_Ty>::value) + { + if (&_Left != &_Right) + { + _Ty *_First1 = _Left; + _Ty *_Last1 = _First1 + _Size; + _Ty *_First2 = _Right; + for (; _First1 != _Last1; ++_First1, ++_First2) + ::std:: iter_swap(_First1, _First2); + } + } + +template inline + void swap(_Ty& _Left, _Ty& _Right) + noexcept(is_nothrow_move_constructible<_Ty>::value && is_nothrow_move_assignable<_Ty>::value) + + { + _Ty _Tmp = ::std:: move(_Left); + _Left = ::std:: move(_Right); + _Right = ::std:: move(_Tmp); + } + + +template inline + void _Swap_adl(_Ty& _Left, _Ty& _Right) + noexcept(_Is_nothrow_swappable<_Ty>::value) + { + swap(_Left, _Right); + } + + +struct piecewise_construct_t + { + }; + +constexpr piecewise_construct_t piecewise_construct{}; + + +template + class tuple; + +template + struct pair + { + typedef pair<_Ty1, _Ty2> _Myt; + typedef _Ty1 first_type; + typedef _Ty2 second_type; + + template::value + && is_default_constructible<_Uty2>::value> > + constexpr pair() + : first(), second() + { + } + + template::value + && is_copy_constructible<_Uty2>::value>, + enable_if_t::value + && is_convertible::value, int> = 0> + constexpr pair(const _Ty1& _Val1, const _Ty2& _Val2) + : first(_Val1), second(_Val2) + { + } + + template::value + && is_copy_constructible<_Uty2>::value>, + enable_if_t::value + || !is_convertible::value, int> = 0> + constexpr explicit pair(const _Ty1& _Val1, const _Ty2& _Val2) + : first(_Val1), second(_Val2) + { + } + + pair(const pair&) = default; + pair(pair&&) = default; + + template::value + && is_constructible<_Ty2, const _Other2&>::value>, + enable_if_t::value + && is_convertible::value, int> = 0> + constexpr pair(const pair<_Other1, _Other2>& _Right) + : first(_Right.first), second(_Right.second) + { + } + + template::value + && is_constructible<_Ty2, const _Other2&>::value>, + enable_if_t::value + || !is_convertible::value, int> = 0> + constexpr explicit pair(const pair<_Other1, _Other2>& _Right) + : first(_Right.first), second(_Right.second) + { + } + + template + _Myt& operator=(const pair<_Other1, _Other2>& _Right) + { + first = _Right.first; + second = _Right.second; + return (*this); + } + + template inline + pair(_Tuple1& _Val1, + _Tuple2& _Val2, + integer_sequence, + integer_sequence); + + template inline + pair(piecewise_construct_t, + tuple<_Types1...> _Val1, + tuple<_Types2...> _Val2); + + template::value + && is_constructible<_Ty2, _Other2>::value>, + enable_if_t::value + && is_convertible<_Other2, _Ty2>::value, int> = 0> + constexpr pair(_Other1&& _Val1, _Other2&& _Val2) + noexcept((is_nothrow_constructible<_Ty1, _Other1>::value && is_nothrow_constructible<_Ty2, _Other2>::value)) + + : first(::std:: forward<_Other1>(_Val1)), + second(::std:: forward<_Other2>(_Val2)) + { + } + + template::value + && is_constructible<_Ty2, _Other2>::value>, + enable_if_t::value + || !is_convertible<_Other2, _Ty2>::value, int> = 0> + constexpr explicit pair(_Other1&& _Val1, _Other2&& _Val2) + noexcept((is_nothrow_constructible<_Ty1, _Other1>::value && is_nothrow_constructible<_Ty2, _Other2>::value)) + + : first(::std:: forward<_Other1>(_Val1)), + second(::std:: forward<_Other2>(_Val2)) + { + } + + template::value + && is_constructible<_Ty2, _Other2>::value>, + enable_if_t::value + && is_convertible<_Other2, _Ty2>::value, int> = 0> + constexpr pair(pair<_Other1, _Other2>&& _Right) + noexcept((is_nothrow_constructible<_Ty1, _Other1>::value && is_nothrow_constructible<_Ty2, _Other2>::value)) + + : first(::std:: forward<_Other1>(_Right.first)), + second(::std:: forward<_Other2>(_Right.second)) + { + } + + template::value + && is_constructible<_Ty2, _Other2>::value>, + enable_if_t::value + || !is_convertible<_Other2, _Ty2>::value, int> = 0> + constexpr explicit pair(pair<_Other1, _Other2>&& _Right) + noexcept((is_nothrow_constructible<_Ty1, _Other1>::value && is_nothrow_constructible<_Ty2, _Other2>::value)) + + : first(::std:: forward<_Other1>(_Right.first)), + second(::std:: forward<_Other2>(_Right.second)) + { + } + + template + _Myt& operator=(pair<_Other1, _Other2>&& _Right) + { + first = ::std:: forward<_Other1>(_Right.first); + second = ::std:: forward<_Other2>(_Right.second); + return (*this); + } + + _Myt& operator=(_Myt&& _Right) + noexcept((is_nothrow_move_assignable<_Ty1>::value && is_nothrow_move_assignable<_Ty2>::value)) + + { + first = ::std:: forward<_Ty1>(_Right.first); + second = ::std:: forward<_Ty2>(_Right.second); + return (*this); + } + + _Myt& operator=(const _Myt& _Right) + { + first = _Right.first; + second = _Right.second; + return (*this); + } + + _Ty1 first; + _Ty2 second; + + void swap(_Myt& _Right) + noexcept(_Is_nothrow_swappable<_Ty1>::value && _Is_nothrow_swappable<_Ty2>::value) + + { + if (this != &_Right) + { + _Swap_adl(first, _Right.first); + _Swap_adl(second, _Right.second); + } + } + }; + + + +template::value && _Is_swappable<_Ty2>::value>> inline + void swap(pair<_Ty1, _Ty2>& _Left, pair<_Ty1, _Ty2>& _Right) + noexcept(noexcept(_Left.swap(_Right))) + { + _Left.swap(_Right); + } + +template inline + constexpr bool operator==(const pair<_Ty1, _Ty2>& _Left, + const pair<_Ty1, _Ty2>& _Right) + { + return (_Left.first == _Right.first && _Left.second == _Right.second); + } + +template inline + constexpr bool operator!=(const pair<_Ty1, _Ty2>& _Left, + const pair<_Ty1, _Ty2>& _Right) + { + return (!(_Left == _Right)); + } + +template inline + constexpr bool operator<(const pair<_Ty1, _Ty2>& _Left, + const pair<_Ty1, _Ty2>& _Right) + { + return (_Left.first < _Right.first || + (!(_Right.first < _Left.first) && _Left.second < _Right.second)); + } + +template inline + constexpr bool operator>(const pair<_Ty1, _Ty2>& _Left, + const pair<_Ty1, _Ty2>& _Right) + { + return (_Right < _Left); + } + +template inline + constexpr bool operator<=(const pair<_Ty1, _Ty2>& _Left, + const pair<_Ty1, _Ty2>& _Right) + { + return (!(_Right < _Left)); + } + +template inline + constexpr bool operator>=(const pair<_Ty1, _Ty2>& _Left, + const pair<_Ty1, _Ty2>& _Right) + { + return (!(_Left < _Right)); + } + + + +template inline + constexpr pair::type, + typename _Unrefwrap<_Ty2>::type> + make_pair(_Ty1&& _Val1, _Ty2&& _Val2) + { + typedef pair::type, + typename _Unrefwrap<_Ty2>::type> _Mypair; + return (_Mypair(::std:: forward<_Ty1>(_Val1), + ::std:: forward<_Ty2>(_Val2))); + } + + + namespace rel_ops + { +template inline + bool operator!=(const _Ty& _Left, const _Ty& _Right) + { + return (!(_Left == _Right)); + } + +template inline + bool operator>(const _Ty& _Left, const _Ty& _Right) + { + return (_Right < _Left); + } + +template inline + bool operator<=(const _Ty& _Left, const _Ty& _Right) + { + return (!(_Right < _Left)); + } + +template inline + bool operator>=(const _Ty& _Left, const _Ty& _Right) + { + return (!(_Left < _Right)); + } + } +} + +namespace std { +template + class array; + + +template + struct tuple_size; + +template + struct tuple_size > + : integral_constant + { + }; + +template + struct tuple_size > + : integral_constant + { + }; + +template + struct tuple_size > + : integral_constant + { + }; + + +template + struct tuple_size + : tuple_size<_Tuple> + { + }; + +template + struct tuple_size + : tuple_size<_Tuple> + { + }; + +template + struct tuple_size + : tuple_size<_Tuple> + { + }; + + +template + constexpr size_t tuple_size_v = tuple_size<_Ty>::value; + + + +template + struct tuple_element; + +template + struct tuple_element<_Idx, array<_Ty, _Size> > + { + static_assert(_Idx < _Size, "array index out of bounds"); + + typedef _Ty type; + }; + +template + struct tuple_element<0, pair<_Ty1, _Ty2> > + { + typedef _Ty1 type; + }; + +template + struct tuple_element<1, pair<_Ty1, _Ty2> > + { + typedef _Ty2 type; + }; + +template + struct tuple_element<_Index, tuple<> > + { + static_assert(_Always_false >::value, + "tuple index out of bounds"); + }; + +template + struct tuple_element<0, tuple<_This, _Rest...> > + { + typedef _This type; + typedef tuple<_This, _Rest...> _Ttype; + }; + +template + struct tuple_element<_Index, tuple<_This, _Rest...> > + : public tuple_element<_Index - 1, tuple<_Rest...> > + { + }; + + +template + struct tuple_element<_Index, const _Tuple> + : public tuple_element<_Index, _Tuple> + { + typedef tuple_element<_Index, _Tuple> _Mybase; + typedef typename add_const::type type; + }; + +template + struct tuple_element<_Index, volatile _Tuple> + : public tuple_element<_Index, _Tuple> + { + typedef tuple_element<_Index, _Tuple> _Mybase; + typedef typename add_volatile::type type; + }; + +template + struct tuple_element<_Index, const volatile _Tuple> + : public tuple_element<_Index, _Tuple> + { + typedef tuple_element<_Index, _Tuple> _Mybase; + typedef typename add_cv::type type; + }; + +template + using tuple_element_t = typename tuple_element<_Index, _Tuple>::type; + + +template inline + constexpr _Ret _Pair_get(_Pair& _Pr, + integral_constant) noexcept + { + return (_Pr.first); + } + +template inline + constexpr _Ret _Pair_get(_Pair& _Pr, + integral_constant) noexcept + { + return (_Pr.second); + } + +template inline + constexpr typename tuple_element<_Idx, pair<_Ty1, _Ty2> >::type& + get(pair<_Ty1, _Ty2>& _Pr) noexcept + { + typedef typename tuple_element<_Idx, pair<_Ty1, _Ty2> >::type& _Rtype; + return (_Pair_get<_Rtype>(_Pr, integral_constant())); + } + +template inline + constexpr _Ty1& get(pair<_Ty1, _Ty2>& _Pr) noexcept + { + return (::std:: get<0>(_Pr)); + } + +template inline + constexpr _Ty2& get(pair<_Ty1, _Ty2>& _Pr) noexcept + { + return (::std:: get<1>(_Pr)); + } + +template inline + constexpr const typename tuple_element<_Idx, pair<_Ty1, _Ty2> >::type& + get(const pair<_Ty1, _Ty2>& _Pr) noexcept + { + typedef const typename tuple_element<_Idx, pair<_Ty1, _Ty2> >::type& + _Ctype; + return (_Pair_get<_Ctype>(_Pr, integral_constant())); + } + +template inline + constexpr const _Ty1& get(const pair<_Ty1, _Ty2>& _Pr) noexcept + { + return (::std:: get<0>(_Pr)); + } + +template inline + constexpr const _Ty2& get(const pair<_Ty1, _Ty2>& _Pr) noexcept + { + return (::std:: get<1>(_Pr)); + } + +template inline + constexpr typename tuple_element<_Idx, pair<_Ty1, _Ty2> >::type&& + get(pair<_Ty1, _Ty2>&& _Pr) noexcept + { + typedef typename tuple_element<_Idx, pair<_Ty1, _Ty2> >::type&& _RRtype; + return (::std:: forward<_RRtype>(::std:: get<_Idx>(_Pr))); + } + +template inline + constexpr _Ty1&& get(pair<_Ty1, _Ty2>&& _Pr) noexcept + { + return (::std:: get<0>(::std:: move(_Pr))); + } + +template inline + constexpr _Ty2&& get(pair<_Ty1, _Ty2>&& _Pr) noexcept + { + return (::std:: get<1>(::std:: move(_Pr))); + } + + +template inline + _Ty exchange(_Ty& _Val, _Other&& _New_val) + { + _Ty _Old_val = ::std:: move(_Val); + _Val = ::std:: forward<_Other>(_New_val); + return (_Old_val); + } + + +template inline + constexpr add_const_t<_Ty>& as_const(_Ty& _Val) noexcept + { + return (_Val); + } + +template + void as_const(const _Ty&&) = delete; +} + + +namespace std { +namespace tr1 { +using ::std:: get; +using ::std:: tuple_element; +using ::std:: tuple_size; +} +} + + + +#pragma warning(pop) +#pragma pack(pop) +# 8 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +namespace std { +# 25 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility" 3 +typedef const wchar_t *_Dbfile_t; +typedef unsigned int _Dbline_t; + + void __cdecl _Debug_message(const wchar_t *, + const wchar_t *, unsigned int); + + + + + + +struct _Container_proxy; +struct _Container_base12; +struct _Iterator_base12; + +struct _Container_base0 + { + void _Orphan_all() + { + } + + void _Swap_all(_Container_base0&) + { + } + }; + +struct _Iterator_base0 + { + void _Adopt(const void *) + { + } + + const _Container_base0 *_Getcont() const + { + return (0); + } + }; + + +struct _Container_proxy + { + _Container_proxy() + : _Mycont(0), _Myfirstiter(0) + { + } + + const _Container_base12 *_Mycont; + _Iterator_base12 *_Myfirstiter; + }; + +struct _Container_base12 + { +public: + _Container_base12() + : _Myproxy(0) + { + } + + _Container_base12(const _Container_base12&) + : _Myproxy(0) + { + } + + _Container_base12& operator=(const _Container_base12&) + { + return (*this); + } + + ~_Container_base12() noexcept + { + _Orphan_all(); + } + + _Iterator_base12 **_Getpfirst() const + { + return (_Myproxy == 0 ? 0 : &_Myproxy->_Myfirstiter); + } + + void _Orphan_all(); + void _Swap_all(_Container_base12&); + + _Container_proxy *_Myproxy; + }; + +struct _Iterator_base12 + { +public: + _Iterator_base12() + : _Myproxy(0), _Mynextiter(0) + { + } + + _Iterator_base12(const _Iterator_base12& _Right) + : _Myproxy(0), _Mynextiter(0) + { + *this = _Right; + } + + _Iterator_base12& operator=(const _Iterator_base12& _Right) + { + if (_Myproxy == _Right._Myproxy) + ; + else if (_Right._Myproxy != 0) + _Adopt(_Right._Myproxy->_Mycont); + else + { + + _Lockit _Lock(3); + _Orphan_me(); + + } + + return (*this); + } + + ~_Iterator_base12() noexcept + { + + _Lockit _Lock(3); + _Orphan_me(); + + } + + void _Adopt(const _Container_base12 *_Parent) + { + if (_Parent == 0) + { + + _Lockit _Lock(3); + _Orphan_me(); + + } + else + { + _Container_proxy *_Parent_proxy = _Parent->_Myproxy; + + + if (_Myproxy != _Parent_proxy) + { + _Lockit _Lock(3); + _Orphan_me(); + _Mynextiter = _Parent_proxy->_Myfirstiter; + _Parent_proxy->_Myfirstiter = this; + _Myproxy = _Parent_proxy; + } + + + + + } + } + + void _Clrcont() + { + _Myproxy = 0; + } + + const _Container_base12 *_Getcont() const + { + return (_Myproxy == 0 ? 0 : _Myproxy->_Mycont); + } + + _Iterator_base12 **_Getpnext() + { + return (&_Mynextiter); + } + + void _Orphan_me() + { + + if (_Myproxy != 0) + { + _Iterator_base12 **_Pnext = &_Myproxy->_Myfirstiter; + while (*_Pnext != 0 && *_Pnext != this) + _Pnext = &(*_Pnext)->_Mynextiter; + + if (*_Pnext == 0) + _Debug_message(L"ITERATOR LIST CORRUPTED!", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 202); + *_Pnext = _Mynextiter; + _Myproxy = 0; + } + + } + + _Container_proxy *_Myproxy; + _Iterator_base12 *_Mynextiter; + }; + + +inline void _Container_base12::_Orphan_all() + { + + if (_Myproxy != 0) + { + _Lockit _Lock(3); + + for (_Iterator_base12 **_Pnext = &_Myproxy->_Myfirstiter; + *_Pnext != 0; *_Pnext = (*_Pnext)->_Mynextiter) + (*_Pnext)->_Myproxy = 0; + _Myproxy->_Myfirstiter = 0; + } + + } + +inline void _Container_base12::_Swap_all(_Container_base12& _Right) + { + + _Lockit _Lock(3); + + + _Container_proxy *_Temp = _Myproxy; + _Myproxy = _Right._Myproxy; + _Right._Myproxy = _Temp; + + if (_Myproxy != 0) + _Myproxy->_Mycont = (_Container_base12 *)this; + if (_Right._Myproxy != 0) + _Right._Myproxy->_Mycont = (_Container_base12 *)&_Right; + } + + + + + + +typedef _Container_base12 _Container_base; +typedef _Iterator_base12 _Iterator_base; + + + +struct _Zero_then_variadic_args_t + { + }; + +struct _One_then_variadic_args_t + { + }; + +template::value && !is_final<_Ty1>::value> + class _Compressed_pair final + : private _Ty1 + + { +private: + _Ty2 _Myval2; + + typedef _Ty1 _Mybase; + +public: + template + constexpr explicit _Compressed_pair(_Zero_then_variadic_args_t, + _Other2&&... _Val2) + : _Ty1(), _Myval2(::std:: forward<_Other2>(_Val2)...) + { + } + + template + _Compressed_pair(_One_then_variadic_args_t, + _Other1&& _Val1, _Other2&&... _Val2) + : _Ty1(::std:: forward<_Other1>(_Val1)), + _Myval2(::std:: forward<_Other2>(_Val2)...) + { + } + + + _Ty1& _Get_first() noexcept + { + return (*this); + } + + const _Ty1& _Get_first() const noexcept + { + return (*this); + } + + volatile _Ty1& _Get_first() volatile noexcept + { + return (*this); + } + + const volatile _Ty1& _Get_first() const volatile noexcept + { + return (*this); + } + + _Ty2& _Get_second() noexcept + { + return (_Myval2); + } + + const _Ty2& _Get_second() const noexcept + { + return (_Myval2); + } + + volatile _Ty2& _Get_second() volatile noexcept + { + return (_Myval2); + } + + const volatile _Ty2& _Get_second() const volatile noexcept + { + return (_Myval2); + } + }; + +template + class _Compressed_pair<_Ty1, _Ty2, false> final + + { +private: + _Ty1 _Myval1; + _Ty2 _Myval2; + +public: + template + constexpr explicit _Compressed_pair(_Zero_then_variadic_args_t, + _Other2&&... _Val2) + : _Myval1(), _Myval2(::std:: forward<_Other2>(_Val2)...) + { + } + + template + _Compressed_pair(_One_then_variadic_args_t, + _Other1&& _Val1, _Other2&&... _Val2) + : _Myval1(::std:: forward<_Other1>(_Val1)), + _Myval2(::std:: forward<_Other2>(_Val2)...) + { + } + + + _Ty1& _Get_first() noexcept + { + return (_Myval1); + } + + const _Ty1& _Get_first() const noexcept + { + return (_Myval1); + } + + volatile _Ty1& _Get_first() volatile noexcept + { + return (_Myval1); + } + + const volatile _Ty1& _Get_first() const volatile noexcept + { + return (_Myval1); + } + + _Ty2& _Get_second() noexcept + { + return (_Myval2); + } + + const _Ty2& _Get_second() const noexcept + { + return (_Myval2); + } + + volatile _Ty2& _Get_second() volatile noexcept + { + return (_Myval2); + } + + const volatile _Ty2& _Get_second() const volatile noexcept + { + return (_Myval2); + } + }; + + +template + struct _Is_checked_helper + : false_type + { + }; + +template + struct _Is_checked_helper<_Ty, void_t< + typename _Ty::_Unchecked_type> > + : true_type + { + }; + + +template inline + typename _Is_checked_helper<_Iter>::type _Is_checked(_Iter) + { + return {}; + } + + +template inline + _Iter _Unchecked(_Iter _Src) + { + return (_Src); + } +# 445 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility" 3 +template inline + _Iter _Unchecked_idl0(_Iter _Src) + { + return (_Src); + } + + + + +template inline + _Iter& _Rechecked(_Iter& _Dest, _UIter _Src) + { + _Dest = _Src; + return (_Dest); + } +# 506 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility" 3 +struct input_iterator_tag + { + }; + +struct _Mutable_iterator_tag + { + }; + +struct output_iterator_tag + : _Mutable_iterator_tag + { + }; + +struct forward_iterator_tag + : input_iterator_tag, _Mutable_iterator_tag + { + }; + +struct bidirectional_iterator_tag + : forward_iterator_tag + { + }; + +struct random_access_iterator_tag + : bidirectional_iterator_tag + { + }; + + +struct _General_ptr_iterator_tag + { + }; + +struct _Trivially_copyable_ptr_iterator_tag + : _General_ptr_iterator_tag + { + }; + +struct _Really_trivial_ptr_iterator_tag + : _Trivially_copyable_ptr_iterator_tag + { + }; + + +struct _Any_tag + { + constexpr _Any_tag() noexcept = default; + template + constexpr _Any_tag(_Ty&&) noexcept {} + }; + + +template + struct iterator + { + typedef _Category iterator_category; + typedef _Ty value_type; + typedef _Diff difference_type; + + typedef _Pointer pointer; + typedef _Reference reference; + }; + +template + struct _Iterator012 + : public _Base + { + typedef _Category iterator_category; + typedef _Ty value_type; + typedef _Diff difference_type; + + typedef _Pointer pointer; + typedef _Reference reference; + }; + + +typedef iterator _Outit; + + +template + struct _Iterator_traits_base + { + }; + +template + struct _Iterator_traits_base<_Iter, void_t< + typename _Iter::iterator_category, + typename _Iter::value_type, + typename _Iter::difference_type, + typename _Iter::pointer, + typename _Iter::reference + > > + { + typedef typename _Iter::iterator_category iterator_category; + typedef typename _Iter::value_type value_type; + typedef typename _Iter::difference_type difference_type; + + typedef typename _Iter::pointer pointer; + typedef typename _Iter::reference reference; + }; + +template + struct iterator_traits + : _Iterator_traits_base<_Iter> + { + }; + +template + struct iterator_traits<_Ty *> + { + typedef random_access_iterator_tag iterator_category; + typedef _Ty value_type; + typedef ptrdiff_t difference_type; + + typedef _Ty *pointer; + typedef _Ty& reference; + }; + +template + struct iterator_traits + { + typedef random_access_iterator_tag iterator_category; + typedef _Ty value_type; + typedef ptrdiff_t difference_type; + + typedef const _Ty *pointer; + typedef const _Ty& reference; + }; + + +template + using _Iter_value_t = typename iterator_traits<_Iter>::value_type; + + +template + using _Iter_diff_t = typename iterator_traits<_Iter>::difference_type; + + +template + using _Iter_cat_t = typename iterator_traits<_Iter>::iterator_category; + + +template + struct _Is_iterator + : false_type + { + }; + +template + struct _Is_iterator<_Ty, void_t< + typename iterator_traits<_Ty>::iterator_category + > > + : true_type + { + }; +# 683 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility" 3 +template inline + auto _Unchecked_n1(_Iter _Src, _Diff, false_type) + { + return (_Src); + } + +template inline + auto _Unchecked_n1(_Iter _Src, _Diff _Count, true_type) + { + if (0 < _Count) + { + static_cast((_Src) + (_Count)); + } + + return (_Unchecked(_Src)); + } + +template inline + auto _Unchecked_n(_Iter _Src, _Diff _Count) + { + return (_Unchecked_n1(_Src, _Count, is_base_of>())); + } + + + + +template + struct _Is_same_size + : bool_constant + { + }; + + +template::value> + struct _Unwrap_enum + { + typedef underlying_type_t<_Elem> type; + }; + +template + struct _Unwrap_enum<_Elem, false> + { + typedef _Elem type; + }; + + +template + struct _Both_or_neither_bool + : bool_constant::value == is_same::value> + { + }; + + +template + struct _Ptr_cat_helper + { + typedef typename _Unwrap_enum<_Source>::type _USource; + typedef typename _Unwrap_enum<_Dest>::type _UDest; + typedef conditional_t< + conjunction< + _Is_same_size<_USource, _UDest>, + is_integral<_USource>, + is_integral<_UDest>, + _Both_or_neither_bool<_USource, _UDest>, + + negation>, + negation> + >::value, + _Really_trivial_ptr_iterator_tag, + _General_ptr_iterator_tag> type; + }; + +template + struct _Ptr_cat_helper<_Elem, _Elem> + { + typedef conditional_t< + is_trivially_copyable<_Elem>::value, + conditional_t::value, + _Really_trivial_ptr_iterator_tag, + _Trivially_copyable_ptr_iterator_tag>, + _General_ptr_iterator_tag> type; + }; + +template + struct _Ptr_cat_helper<_Anything *, const _Anything *> + { + typedef _Really_trivial_ptr_iterator_tag type; + }; + +template inline + _General_ptr_iterator_tag _Ptr_copy_cat(const _Source&, const _Dest&) + { + return {}; + } + +template inline + conditional_t::value, + typename _Ptr_cat_helper, _Dest>::type, + _General_ptr_iterator_tag> + _Ptr_copy_cat(_Source * const&, _Dest * const&) + { + return {}; + } + +template inline + _General_ptr_iterator_tag _Ptr_move_cat(const _Source&, const _Dest&) + { + return {}; + } + +template inline + conditional_t::value, + typename _Ptr_cat_helper, _Dest>::type, + _General_ptr_iterator_tag> + _Ptr_move_cat(_Source * const&, _Dest * const&) + { + return {}; + } +# 887 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility" 3 +template inline + constexpr bool _Debug_lt_pred(_Pr&& _Pred, + _Ty1&& _Left, _Ty2&& _Right, + _Dbfile_t _File, _Dbline_t _Line) + noexcept(noexcept(!_Pred(_Left, _Right)) && noexcept(_Pred(_Right, _Left))) + + { + return (!_Pred(_Left, _Right) + ? false + : _Pred(_Right, _Left) + ? (_Debug_message(L"invalid comparator", _File, _Line), true) + : true); + } + + +template inline + constexpr bool _Debug_lt(_Ty1&& _Left, _Ty2&& _Right, + _Dbfile_t _File, _Dbline_t _Line) + noexcept(noexcept(!(_Left < _Right)) && noexcept(_Right < _Left)) + + { + return (_Debug_lt_pred(less<>(), + ::std:: forward<_Ty1>(_Left), ::std:: forward<_Ty2>(_Right), _File, _Line)); + } + + +template inline + void _Debug_pointer(_InIt&, _Dbfile_t, _Dbline_t) + { + } + +template inline + void _Debug_pointer(_Ty *_Ptr, _Dbfile_t _File, _Dbline_t _Line) + { + if (_Ptr == 0) + _Debug_message(L"invalid null pointer", _File, _Line); + } + + +template inline + void _Debug_pointer_if(bool, _InIt&, _Dbfile_t, _Dbline_t) + { + } + +template inline + void _Debug_pointer_if(bool _Test, _Ty *_Ptr, + _Dbfile_t _File, _Dbline_t _Line) + { + if (_Test && _Ptr == 0) + _Debug_message(L"invalid null pointer", _File, _Line); + } + + +template inline + void _Debug_range2(_InIt _First, _InIt _Last, + _Dbfile_t, _Dbline_t, input_iterator_tag) + { + static_cast(_First == _Last); + } + +template inline + void _Debug_range2(_RanIt _First, _RanIt _Last, + _Dbfile_t _File, _Dbline_t _Line, random_access_iterator_tag) + { + if (_First != _Last) + { + _Debug_pointer(_First, _File, _Line); + _Debug_pointer(_Last, _File, _Line); + if (_Last < _First) + _Debug_message(L"invalid iterator range", _File, _Line); + } + } + +template inline + void _Debug_range(_InIt _First, _InIt _Last, + _Dbfile_t _File, _Dbline_t _Line) + { + _Debug_range2(_First, _Last, _File, _Line, _Iter_cat_t<_InIt>()); + } + + +template inline + void _Debug_range_ptr2(_InIt _First, _InIt _Last, _Pty& _Ptr, + _Dbfile_t _File, _Dbline_t _Line, input_iterator_tag) + { + if (_First != _Last) + _Debug_pointer(_Ptr, _File, _Line); + } + +template inline + void _Debug_range_ptr2(_RanIt _First, _RanIt _Last, _Pty& _Ptr, + _Dbfile_t _File, _Dbline_t _Line, random_access_iterator_tag) + { + if (_First != _Last) + { + _Debug_pointer(_First, _File, _Line); + _Debug_pointer(_Last, _File, _Line); + if (_Last < _First) + _Debug_message(L"invalid iterator range", _File, _Line); + _Debug_pointer(_Ptr, _File, _Line); + } + } + +template inline + void _Debug_range_ptr(_InIt _First, _InIt _Last, _Pty& _Ptr, + _Dbfile_t _File, _Dbline_t _Line) + { + _Debug_range_ptr2(_First, _Last, _Ptr, _File, _Line, _Iter_cat_t<_InIt>()); + } + + +template inline + void _Debug_order2(_InIt, _InIt, _Pr&, + _Dbfile_t, _Dbline_t, input_iterator_tag) + { + } + +template inline + void _Debug_order2(_FwdIt _First, _FwdIt _Last, _Pr& _Pred, + _Dbfile_t _File, _Dbline_t _Line, forward_iterator_tag) + { + for (_FwdIt _Next = _First; _First != _Last && ++_Next != _Last; ++_First) + if (_Debug_lt_pred(_Pred, *_Next, *_First, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1017)) + _Debug_message(L"sequence not ordered", _File, _Line); + } + +template inline + void _Debug_order(_InIt _First, _InIt _Last, _Pr&& _Pred, + _Dbfile_t _File, _Dbline_t _Line) + { + _Debug_range_ptr(_First, _Last, _Pred, _File, _Line); + _Debug_order2(_First, _Last, _Pred, _File, _Line, _Iter_cat_t<_InIt>()); + } +# 1043 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility" 3 +template inline + void _Debug_array_size2(_Ty (&)[_Actual], _Diff _Desired, + _Dbfile_t _File, _Dbline_t _Line) + { + if (_Actual < _Desired) + _Debug_message(L"array too small", _File, _Line); + } + + + + + +template inline + void _Advance1(_InIt& _Where, _Diff _Off, input_iterator_tag) + { + + if (_Off < 0) + _Debug_message(L"negative offset in advance", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1063); + + + for (; 0 < _Off; --_Off) + ++_Where; + } + +template inline + void _Advance1(_BidIt& _Where, _Diff _Off, bidirectional_iterator_tag) + { + for (; 0 < _Off; --_Off) + ++_Where; + for (; _Off < 0; ++_Off) + --_Where; + } + +template inline + void _Advance1(_RanIt& _Where, _Diff _Off, random_access_iterator_tag) + { + _Where += _Off; + } + +template inline + void advance(_InIt& _Where, _Diff _Off) + { + + _Advance1(_Where, _Off, _Iter_cat_t>()); + } + + +template inline + _Iter_diff_t<_InIt> + _Distance1(_InIt _First, _InIt _Last, input_iterator_tag) + { + _Iter_diff_t<_InIt> _Off = 0; + for (; _First != _Last; ++_First) + ++_Off; + + return (_Off); + } + +template inline + _Iter_diff_t<_RanIt> + _Distance1(_RanIt _First, _RanIt _Last, random_access_iterator_tag) + { + + if (_First != _Last) + { + _Debug_pointer(_First, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1114); + _Debug_pointer(_Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1115); + } + + + return (_Last - _First); + } + +template inline + _Iter_diff_t<_InIt> + distance(_InIt _First, _InIt _Last) + { + return (_Distance1(_First, _Last, _Iter_cat_t<_InIt>())); + } + + +template inline + _InIt next(_InIt _First, _Iter_diff_t<_InIt> _Off = 1) + { + static_assert(is_base_of::iterator_category>::value, + "next requires input iterator"); + + ::std:: advance(_First, _Off); + return (_First); + } + + +template inline + _BidIt prev(_BidIt _First, _Iter_diff_t<_BidIt> _Off = 1) + { + static_assert(is_base_of::iterator_category>::value, + "prev requires bidirectional iterator"); + + ::std:: advance(_First, -_Off); + return (_First); + } + + +template + struct pointer_traits; + +template + class reverse_iterator + : public iterator< + typename iterator_traits<_RanIt>::iterator_category, + typename iterator_traits<_RanIt>::value_type, + typename iterator_traits<_RanIt>::difference_type, + typename iterator_traits<_RanIt>::pointer, + typename iterator_traits<_RanIt>::reference> + { + typedef reverse_iterator<_RanIt> _Myt; + +public: + typedef typename iterator_traits<_RanIt>::difference_type difference_type; + typedef typename iterator_traits<_RanIt>::pointer pointer; + typedef typename iterator_traits<_RanIt>::reference reference; + typedef _RanIt iterator_type; + + reverse_iterator() + : current() + { + } + + explicit reverse_iterator(_RanIt _Right) + : current(_Right) + { + } + + template + reverse_iterator(const reverse_iterator<_Other>& _Right) + : current(_Right.base()) + { + } + + template + _Myt& operator=(const reverse_iterator<_Other>& _Right) + { + current = _Right.base(); + return (*this); + } + + _RanIt base() const + { + return (current); + } + + reference operator*() const + { + _RanIt _Tmp = current; + return (*--_Tmp); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myt& operator++() + { + --current; + return (*this); + } + + _Myt operator++(int) + { + _Myt _Tmp = *this; + --current; + return (_Tmp); + } + + _Myt& operator--() + { + ++current; + return (*this); + } + + _Myt operator--(int) + { + _Myt _Tmp = *this; + ++current; + return (_Tmp); + } + + + + _Myt& operator+=(difference_type _Off) + { + current -= _Off; + return (*this); + } + + _Myt operator+(difference_type _Off) const + { + return (_Myt(current - _Off)); + } + + _Myt& operator-=(difference_type _Off) + { + current += _Off; + return (*this); + } + + _Myt operator-(difference_type _Off) const + { + return (_Myt(current + _Off)); + } + + reference operator[](difference_type _Off) const + { + return (*(*this + _Off)); + } + +protected: + _RanIt current; + }; + +template + struct _Is_checked_helper > + : public _Is_checked_helper<_RanIt> + { + }; + + +template inline + reverse_iterator<_RanIt> operator+( + typename reverse_iterator<_RanIt>::difference_type _Off, + const reverse_iterator<_RanIt>& _Right) + { + return (_Right + _Off); + } + +template + auto inline operator-(const reverse_iterator<_RanIt1>& _Left, + const reverse_iterator<_RanIt2>& _Right) + -> decltype(_Right.base() - _Left.base()) + { + return (_Right.base() - _Left.base()); + } + +template inline + bool operator==(const reverse_iterator<_RanIt1>& _Left, + const reverse_iterator<_RanIt2>& _Right) + { + return (_Left.base() == _Right.base()); + } + +template inline + bool operator!=(const reverse_iterator<_RanIt1>& _Left, + const reverse_iterator<_RanIt2>& _Right) + { + return (!(_Left == _Right)); + } + +template inline + bool operator<(const reverse_iterator<_RanIt1>& _Left, + const reverse_iterator<_RanIt2>& _Right) + { + return (_Right.base() < _Left.base()); + } + +template inline + bool operator>(const reverse_iterator<_RanIt1>& _Left, + const reverse_iterator<_RanIt2>& _Right) + { + return (_Right < _Left); + } + +template inline + bool operator<=(const reverse_iterator<_RanIt1>& _Left, + const reverse_iterator<_RanIt2>& _Right) + { + return (!(_Right < _Left)); + } + +template inline + bool operator>=(const reverse_iterator<_RanIt1>& _Left, + const reverse_iterator<_RanIt2>& _Right) + { + return (!(_Left < _Right)); + } + + +template inline + reverse_iterator<_RanIt> make_reverse_iterator(_RanIt _Iter) + { + return (reverse_iterator<_RanIt>(_Iter)); + } + + + +template + auto inline begin(_Container& _Cont) -> decltype(_Cont.begin()) + { + return (_Cont.begin()); + } + +template + auto inline begin(const _Container& _Cont) -> decltype(_Cont.begin()) + { + return (_Cont.begin()); + } + +template + auto inline end(_Container& _Cont) -> decltype(_Cont.end()) + { + return (_Cont.end()); + } + +template + auto inline end(const _Container& _Cont) -> decltype(_Cont.end()) + { + return (_Cont.end()); + } + +template inline + constexpr _Ty *begin(_Ty (&_Array)[_Size]) noexcept + { + return (_Array); + } + +template inline + constexpr _Ty *end(_Ty (&_Array)[_Size]) noexcept + { + return (_Array + _Size); + } + + +template + constexpr auto inline cbegin(const _Container& _Cont) + noexcept(noexcept(::std:: begin(_Cont))) + -> decltype(::std:: begin(_Cont)) + { + return (::std:: begin(_Cont)); + } + +template + constexpr auto inline cend(const _Container& _Cont) + noexcept(noexcept(::std:: end(_Cont))) + -> decltype(::std:: end(_Cont)) + { + return (::std:: end(_Cont)); + } + + +template + auto inline rbegin(_Container& _Cont) -> decltype(_Cont.rbegin()) + { + return (_Cont.rbegin()); + } + +template + auto inline rbegin(const _Container& _Cont) -> decltype(_Cont.rbegin()) + { + return (_Cont.rbegin()); + } + +template + auto inline rend(_Container& _Cont) -> decltype(_Cont.rend()) + { + return (_Cont.rend()); + } + +template + auto inline rend(const _Container& _Cont) -> decltype(_Cont.rend()) + { + return (_Cont.rend()); + } + +template inline + reverse_iterator<_Ty *> rbegin(_Ty (&_Array)[_Size]) + { + return (reverse_iterator<_Ty *>(_Array + _Size)); + } + +template inline + reverse_iterator<_Ty *> rend(_Ty (&_Array)[_Size]) + { + return (reverse_iterator<_Ty *>(_Array)); + } + +template inline + reverse_iterator + rbegin(::std:: initializer_list<_Elem> _Ilist) + { + return (reverse_iterator(_Ilist.end())); + } + +template inline + reverse_iterator + rend(::std:: initializer_list<_Elem> _Ilist) + { + return (reverse_iterator(_Ilist.begin())); + } + + +template + auto inline crbegin(const _Container& _Cont) + -> decltype(::std:: rbegin(_Cont)) + { + return (::std:: rbegin(_Cont)); + } + +template + auto inline crend(const _Container& _Cont) + -> decltype(::std:: rend(_Cont)) + { + return (::std:: rend(_Cont)); + } + + +template + constexpr auto inline size(const _Container& _Cont) + -> decltype(_Cont.size()) + { + return (_Cont.size()); + } + +template inline + constexpr size_t size(const _Ty(&)[_Size]) noexcept + { + return (_Size); + } + +template + constexpr auto inline empty(const _Container& _Cont) + -> decltype(_Cont.empty()) + { + return (_Cont.empty()); + } + +template inline + constexpr bool empty(const _Ty(&)[_Size]) noexcept + { + return (false); + } + +template inline + constexpr bool empty( + ::std:: initializer_list<_Elem> _Ilist) noexcept + { + return (_Ilist.size() == 0); + } + +template + constexpr auto inline data(_Container& _Cont) + -> decltype(_Cont.data()) + { + return (_Cont.data()); + } + +template + constexpr auto inline data(const _Container& _Cont) + -> decltype(_Cont.data()) + { + return (_Cont.data()); + } + +template inline + constexpr _Ty *data(_Ty(&_Array)[_Size]) noexcept + { + return (_Array); + } + +template inline + constexpr const _Elem *data( + ::std:: initializer_list<_Elem> _Ilist) noexcept + { + return (_Ilist.begin()); + } + + +template + class _Array_const_iterator + : public _Iterator012 + { +public: + typedef _Array_const_iterator<_Ty, _Size> _Myiter; + typedef random_access_iterator_tag iterator_category; + + typedef _Ty value_type; + typedef size_t size_type; + typedef ptrdiff_t difference_type; + typedef const _Ty *pointer; + typedef const _Ty& reference; + enum {_EEN_SIZE = _Size}; +# 1687 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility" 3 + _Array_const_iterator() + : _Ptr(), + _Idx(0) + { + } + + explicit _Array_const_iterator(pointer _Parg, size_t _Off = 0) + : _Ptr(_Parg), + _Idx(_Off) + { + } + + typedef pointer _Unchecked_type; + + _Myiter& _Rechecked(_Unchecked_type _Right) + { + _Idx = _Right - _Ptr; + return (*this); + } + + _Unchecked_type _Unchecked() const + { + return (_Ptr + _Idx); + } + + reference operator*() const + { + + if (_Ptr == 0 + || _Size <= _Idx) + { + _Debug_message(L"array iterator not dereferencable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1718); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1719, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1719, 0); }; + } + + + + + + + ; + + return (_Ptr[_Idx]); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + + if (_Ptr == 0 + || _Size <= _Idx) + { + _Debug_message(L"array iterator not incrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1743); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1744, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1744, 0); }; + } + + + + + + + ++_Idx; + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + + if (_Ptr == 0 + || _Idx <= 0) + { + _Debug_message(L"array iterator not decrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1769); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1770, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1770, 0); }; + } + + + + + + + --_Idx; + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + + _Myiter& operator+=(difference_type _Off) + { + + if (_Size < _Idx + _Off) + { + _Debug_message(L"array iterator + offset out of range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1794); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1795, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1795, 0); }; + } + + + + + + _Idx += _Off; + return (*this); + } + + _Myiter operator+(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp += _Off); + } + + _Myiter& operator-=(difference_type _Off) + { + return (*this += -_Off); + } + + _Myiter operator-(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp -= _Off); + } + + difference_type operator-(const _Myiter& _Right) const + { + _Compat(_Right); + return (_Idx < _Right._Idx + ? -(difference_type)(_Right._Idx - _Idx) + : (difference_type)_Idx - _Right._Idx); + } + + reference operator[](difference_type _Off) const + { + return (*(*this + _Off)); + } + + bool operator==(const _Myiter& _Right) const + { + _Compat(_Right); + return (_Idx == _Right._Idx); + } + + bool operator!=(const _Myiter& _Right) const + { + return (!(*this == _Right)); + } + + bool operator<(const _Myiter& _Right) const + { + _Compat(_Right); + return (_Idx < _Right._Idx); + } + + bool operator>(const _Myiter& _Right) const + { + return (_Right < *this); + } + + bool operator<=(const _Myiter& _Right) const + { + return (!(_Right < *this)); + } + + bool operator>=(const _Myiter& _Right) const + { + return (!(*this < _Right)); + } + + + void _Compat(const _Myiter& _Right) const + { + if (_Ptr != _Right._Ptr) + { + _Debug_message(L"array iterators incompatible", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1873); + { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1874, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 1874, 0); }; + } + } +# 1885 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility" 3 + pointer _Ptr; + size_t _Idx; + + }; + +template inline + typename _Array_const_iterator<_Ty, _Size>::_Unchecked_type + _Unchecked(_Array_const_iterator<_Ty, _Size> _Iter) + { + return (_Iter._Unchecked()); + } + +template inline + _Array_const_iterator<_Ty, _Size>& + _Rechecked(_Array_const_iterator<_Ty, _Size>& _Iter, + typename _Array_const_iterator<_Ty, _Size> + ::_Unchecked_type _Right) + { + return (_Iter._Rechecked(_Right)); + } + +template inline + _Array_const_iterator<_Ty, _Size> operator+( + typename _Array_const_iterator<_Ty, _Size>::difference_type _Off, + _Array_const_iterator<_Ty, _Size> _Next) + { + return (_Next += _Off); + } + + +template + class _Array_iterator + : public _Array_const_iterator<_Ty, _Size> + { +public: + typedef _Array_iterator<_Ty, _Size> _Myiter; + typedef _Array_const_iterator<_Ty, _Size> _Mybase; + typedef random_access_iterator_tag iterator_category; + + typedef _Ty value_type; + typedef size_t size_type; + typedef ptrdiff_t difference_type; + typedef _Ty *pointer; + typedef _Ty& reference; + + _Array_iterator() + { + } + + explicit _Array_iterator(pointer _Parg, size_t _Off = 0) + : _Mybase(_Parg, _Off) + { + } + enum {_EEN_SIZE = _Size}; + typedef pointer _Unchecked_type; + + _Myiter& _Rechecked(_Unchecked_type _Right) + { + ((_Mybase *)this)->_Rechecked(_Right); + return (*this); + } + + _Unchecked_type _Unchecked() const + { + return ((pointer)((_Mybase *)this)->_Unchecked()); + } + + reference operator*() const + { + return ((reference)**(_Mybase *)this); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + ++*(_Mybase *)this; + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + --*(_Mybase *)this; + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + + _Myiter& operator+=(difference_type _Off) + { + *(_Mybase *)this += _Off; + return (*this); + } + + _Myiter operator+(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp += _Off); + } + + _Myiter& operator-=(difference_type _Off) + { + return (*this += -_Off); + } + + _Myiter operator-(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp -= _Off); + } + + difference_type operator-(const _Mybase& _Right) const + { + return (*(_Mybase *)this - _Right); + } + + reference operator[](difference_type _Off) const + { + return (*(*this + _Off)); + } + }; + +template inline + typename _Array_iterator<_Ty, _Size>::_Unchecked_type + _Unchecked(_Array_iterator<_Ty, _Size> _Iter) + { + return (_Iter._Unchecked()); + } + +template inline + _Array_iterator<_Ty, _Size>& + _Rechecked(_Array_iterator<_Ty, _Size>& _Iter, + typename _Array_iterator<_Ty, _Size> + ::_Unchecked_type _Right) + { + return (_Iter._Rechecked(_Right)); + } + +template inline + _Array_iterator<_Ty, _Size> operator+( + typename _Array_iterator<_Ty, _Size>::difference_type _Off, + _Array_iterator<_Ty, _Size> _Next) + { + return (_Next += _Off); + } + + +template + class move_iterator + { +public: + typedef move_iterator<_RanIt> _Myt; + typedef typename iterator_traits<_RanIt>::iterator_category + iterator_category; + typedef typename iterator_traits<_RanIt>::value_type + value_type; + typedef typename iterator_traits<_RanIt>::difference_type + difference_type; + typedef _RanIt pointer; + typedef typename iterator_traits<_RanIt>::reference _Ref0; + typedef conditional_t::value, + remove_reference_t<_Ref0>&&, _Ref0> reference; + typedef _RanIt iterator_type; + + move_iterator() + : current() + { + } + + explicit move_iterator(iterator_type _Right) + : current(_Right) + { + } + + template + move_iterator(const move_iterator<_RanIt2>& _Right) + : current(_Right.base()) + { + } + + template + _Myt& operator=(const move_iterator<_RanIt2>& _Right) + { + current = _Right.base(); + return (*this); + } + + _RanIt base() const + { + return (current); + } + + reference operator*() const + { + return (static_cast(*current)); + } + + pointer operator->() const + { + return (current); + } + + _Myt& operator++() + { + ++current; + return (*this); + } + + _Myt operator++(int) + { + _Myt _Tmp = *this; + ++current; + return (_Tmp); + } + + _Myt& operator--() + { + --current; + return (*this); + } + + _Myt operator--(int) + { + _Myt _Tmp = *this; + --current; + return (_Tmp); + } + + template + bool _Equal(const move_iterator<_RanIt2>& _Right) const + { + return (current == _Right.base()); + } + + + + _Myt& operator+=(difference_type _Off) + { + current += _Off; + return (*this); + } + + _Myt operator+(difference_type _Off) const + { + return (_Myt(current + _Off)); + } + + _Myt& operator-=(difference_type _Off) + { + current -= _Off; + return (*this); + } + + _Myt operator-(difference_type _Off) const + { + return (_Myt(current - _Off)); + } + + reference operator[](difference_type _Off) const + { + return (::std:: move(current[_Off])); + } + + template + bool _Less(const move_iterator<_RanIt2>& _Right) const + { + return (current < _Right.base()); + } + + difference_type operator-(const _Myt& _Right) const + { + return (current - _Right.base()); + } + +protected: + iterator_type current; + }; + +template + struct _Is_checked_helper > + : public _Is_checked_helper<_RanIt> + { + }; + + +template inline + move_iterator<_RanIt> + operator+(_Diff _Off, + const move_iterator<_RanIt>& _Right) + { + return (_Right + _Off); + } + +template + auto inline operator-( + move_iterator<_RanIt1>& _Left, + const move_iterator<_RanIt2>& _Right) + -> decltype(_Left.base() - _Right.base()) + { + return (_Left.base() - _Right.base()); + } + +template inline + bool operator==( + const move_iterator<_RanIt1>& _Left, + const move_iterator<_RanIt2>& _Right) + { + return (_Left._Equal(_Right)); + } + +template inline + bool operator!=( + const move_iterator<_RanIt1>& _Left, + const move_iterator<_RanIt2>& _Right) + { + return (!(_Left == _Right)); + } + +template inline + bool operator<( + const move_iterator<_RanIt1>& _Left, + const move_iterator<_RanIt2>& _Right) + { + return (_Left._Less(_Right)); + } + +template inline + bool operator>( + const move_iterator<_RanIt1>& _Left, + const move_iterator<_RanIt2>& _Right) + { + return (_Right < _Left); + } + +template inline + bool operator<=( + const move_iterator<_RanIt1>& _Left, + const move_iterator<_RanIt2>& _Right) + { + return (!(_Right < _Left)); + } + +template inline + bool operator>=( + const move_iterator<_RanIt1>& _Left, + const move_iterator<_RanIt2>& _Right) + { + return (!(_Left < _Right)); + } + + +template inline + move_iterator<_RanIt> make_move_iterator(_RanIt _Iter) + { + return (move_iterator<_RanIt>(_Iter)); + } + + +template + struct _Char_traits_eq + { + typedef typename _Traits::char_type _Elem; + + bool operator()(_Elem _Left, _Elem _Right) const + { + return (_Traits::eq(_Left, _Right)); + } + }; + + +template + struct _Char_traits_lt + { + typedef typename _Traits::char_type _Elem; + + bool operator()(_Elem _Left, _Elem _Right) const + { + return (_Traits::lt(_Left, _Right)); + } + }; + + +template inline + _OutIt _Copy_memmove(_InIt _First, _InIt _Last, + _OutIt _Dest) + { + const char * const _First_ch = reinterpret_cast(_First); + const char * const _Last_ch = reinterpret_cast(_Last); + char * const _Dest_ch = reinterpret_cast(_Dest); + const size_t _Count = _Last_ch - _First_ch; + :: memmove(_Dest_ch, _First_ch, _Count); + return (reinterpret_cast<_OutIt>(_Dest_ch + _Count)); + } + +template inline + _OutIt _Copy_unchecked1(_InIt _First, _InIt _Last, + _OutIt _Dest, _General_ptr_iterator_tag) + { + for (; _First != _Last; ++_Dest, (void)++_First) + *_Dest = *_First; + return (_Dest); + } + +template inline + _OutIt _Copy_unchecked1(_InIt _First, _InIt _Last, + _OutIt _Dest, _Trivially_copyable_ptr_iterator_tag) + { + return (_Copy_memmove(_First, _Last, _Dest)); + } + +template inline + _OutIt _Copy_unchecked(_InIt _First, _InIt _Last, + _OutIt _Dest) + { + + return (_Copy_unchecked1(_First, _Last, + _Dest, _Ptr_copy_cat(_First, _Dest))); + } + +template inline + _OutIt _Copy_no_deprecate1(_InIt _First, _InIt _Last, + _OutIt _Dest, input_iterator_tag, _Any_tag) + { + return (_Rechecked(_Dest, + _Copy_unchecked(_First, _Last, _Unchecked_idl0(_Dest)))); + } + +template inline + _OutIt _Copy_no_deprecate1(_InIt _First, _InIt _Last, + _OutIt _Dest, random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_Dest) + ((_Last) - (_First))); + return (_Rechecked(_Dest, + _Copy_unchecked(_First, _Last, _Unchecked(_Dest)))); + } + +template inline + _OutIt _Copy_no_deprecate(_InIt _First, _InIt _Last, + _OutIt _Dest) + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 2362); + return (_Copy_no_deprecate1(_Unchecked(_First), _Unchecked(_Last), + _Dest, _Iter_cat_t<_InIt>(), _Iter_cat_t<_OutIt>())); + } + +template inline + _OutIt copy(_InIt _First, _InIt _Last, + _OutIt _Dest) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "copy" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Copy_no_deprecate(_First, _Last, _Dest)); + } + + +template inline + _OutTy *copy(_InIt _First, _InIt _Last, + _OutTy (&_Dest)[_OutSize]) + { + return (_Unchecked( + _Copy_no_deprecate(_First, _Last, + _Array_iterator<_OutTy, _OutSize>(_Dest)))); + } + + + +template inline + _OutIt _Copy_n_unchecked2(_InIt _First, _Diff _Count, + _OutIt _Dest, input_iterator_tag) + { + if (0 < _Count) + { + *_Dest = *_First; + while (0 < --_Count) + *++_Dest = *++_First; + return (++_Dest); + } + + return (_Dest); + } + +template inline + _OutIt _Copy_n_unchecked2(_InIt _First, _Diff _Count, + _OutIt _Dest, forward_iterator_tag) + { + for (; 0 < _Count; --_Count, (void)++_Dest, ++_First) + *_Dest = *_First; + return (_Dest); + } + +template inline + _OutIt _Copy_n_unchecked1(_InIt _First, _Diff _Count, + _OutIt _Dest, _General_ptr_iterator_tag) + { + + + return (_Copy_n_unchecked2(_First, _Count, + _Dest, _Iter_cat_t<_InIt>())); + } + +template inline + _OutIt _Copy_n_unchecked1(_InIt _First, _Diff _Count, + _OutIt _Dest, _Trivially_copyable_ptr_iterator_tag) + { + if (0 < _Count) + return (_Copy_memmove(_First, _First + _Count, _Dest)); + return (_Dest); + } + +template inline + _OutIt _Copy_n_unchecked(_InIt _First, _Diff _Count, + _OutIt _Dest) + { + return (_Copy_n_unchecked1(_First, _Count, + _Dest, _Ptr_copy_cat(_First, _Dest))); + } + +template inline + _OutIt copy_n(_InIt _First, _Diff _Count, + _OutIt _Dest) + { + + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "copy_n" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Rechecked(_Dest, + _Copy_n_unchecked(_Unchecked_n(_First, _Count), _Count, _Unchecked_n(_Dest, _Count)))); + } + + +template inline + _OutIt copy_n(_InTy (&_First)[_InSize], _Diff _Count, + _OutIt _Dest) + { + + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "copy_n" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + _Debug_array_size2(_First, _Count, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 2473); + return (_Rechecked(_Dest, + _Copy_n_unchecked(_First, _Count, _Unchecked_n(_Dest, _Count)))); + } + +template inline + _OutTy *copy_n(_InIt _First, _Diff _Count, + _OutTy (&_Dest)[_OutSize]) + { + _Debug_array_size2(_Dest, _Count, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 2485); + return (_Copy_n_unchecked(_Unchecked_n(_First, _Count), _Count, _Dest)); + } + +template inline + _OutTy *copy_n(_InTy (&_First)[_InSize], _Diff _Count, + _OutTy (&_Dest)[_OutSize]) + { + _Debug_array_size2(_First, _Count, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 2497); + _Debug_array_size2(_Dest, _Count, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 2498); + return (_Copy_n_unchecked(_First, _Count, _Dest)); + } + + + +template inline + _BidIt2 _Copy_backward_memmove(_BidIt1 _First, _BidIt1 _Last, + _BidIt2 _Dest) + { + const char * const _First_ch = reinterpret_cast(_First); + const char * const _Last_ch = reinterpret_cast(_Last); + char * const _Dest_ch = reinterpret_cast(_Dest); + const size_t _Count = _Last_ch - _First_ch; + return (static_cast<_BidIt2>( + :: memmove(_Dest_ch - _Count, _First_ch, _Count))); + } + +template inline + _BidIt2 _Copy_backward_unchecked1(_BidIt1 _First, _BidIt1 _Last, + _BidIt2 _Dest, _General_ptr_iterator_tag) + { + while (_First != _Last) + *--_Dest = *--_Last; + return (_Dest); + } + +template inline + _BidIt2 _Copy_backward_unchecked1(_BidIt1 _First, _BidIt1 _Last, + _BidIt2 _Dest, _Trivially_copyable_ptr_iterator_tag) + { + return (_Copy_backward_memmove(_First, _Last, _Dest)); + } + +template inline + _BidIt2 _Copy_backward_unchecked(_BidIt1 _First, _BidIt1 _Last, + _BidIt2 _Dest) + { + return (_Copy_backward_unchecked1(_First, _Last, + _Dest, _Ptr_copy_cat(_First, _Dest))); + } + +template inline + _BidIt2 _Copy_backward1(_BidIt1 _First, _BidIt1 _Last, + _BidIt2 _Dest, input_iterator_tag, _Any_tag) + { + return (_Rechecked(_Dest, + _Copy_backward_unchecked(_First, _Last, _Unchecked_idl0(_Dest)))); + } + +template inline + _BidIt2 _Copy_backward1(_BidIt1 _First, _BidIt1 _Last, + _BidIt2 _Dest, random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_Dest) - ((_Last) - (_First))); + return (_Rechecked(_Dest, + _Copy_backward_unchecked(_First, _Last, _Unchecked(_Dest)))); + } + +template inline + _BidIt2 copy_backward(_BidIt1 _First, _BidIt1 _Last, + _BidIt2 _Dest) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "copy_backward" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 2569); + return (_Copy_backward1(_Unchecked(_First), _Unchecked(_Last), + _Dest, _Iter_cat_t<_BidIt1>(), _Iter_cat_t<_BidIt2>())); + } + + +template inline + _OutIt _Move_unchecked1(_InIt _First, _InIt _Last, + _OutIt _Dest, _General_ptr_iterator_tag) + { + for (; _First != _Last; ++_Dest, (void)++_First) + *_Dest = ::std:: move(*_First); + return (_Dest); + } + +template inline + _OutIt _Move_unchecked1(_InIt _First, _InIt _Last, + _OutIt _Dest, _Trivially_copyable_ptr_iterator_tag) + { + return (_Copy_memmove(_First, _Last, _Dest)); + } + +template inline + _OutIt _Move_unchecked(_InIt _First, _InIt _Last, + _OutIt _Dest) + { + return (_Move_unchecked1(_First, _Last, + _Dest, _Ptr_move_cat(_First, _Dest))); + } + +template inline + _OutIt _Move_no_deprecate1(_InIt _First, _InIt _Last, + _OutIt _Dest, input_iterator_tag, _Any_tag) + { + return (_Rechecked(_Dest, + _Move_unchecked(_First, _Last, _Unchecked_idl0(_Dest)))); + } + +template inline + _OutIt _Move_no_deprecate1(_InIt _First, _InIt _Last, + _OutIt _Dest, random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_Dest) + ((_Last) - (_First))); + return (_Rechecked(_Dest, + _Move_unchecked(_First, _Last, _Unchecked(_Dest)))); + } + +template inline + _OutIt _Move_no_deprecate(_InIt _First, _InIt _Last, + _OutIt _Dest) + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 2626); + return (_Move_no_deprecate1(_Unchecked(_First), _Unchecked(_Last), + _Dest, _Iter_cat_t<_InIt>(), _Iter_cat_t<_OutIt>())); + } + +template inline + _OutIt move(_InIt _First, _InIt _Last, + _OutIt _Dest) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "move" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Move_no_deprecate(_First, _Last, _Dest)); + } + + +template inline + _OutTy *move(_InIt _First, _InIt _Last, + _OutTy (&_Dest)[_OutSize]) + { + return (_Unchecked( + _Move_no_deprecate(_First, _Last, + _Array_iterator<_OutTy, _OutSize>(_Dest)))); + } + + + +template inline + _BidIt2 _Move_backward_unchecked1(_BidIt1 _First, _BidIt1 _Last, + _BidIt2 _Dest, _General_ptr_iterator_tag) + { + while (_First != _Last) + *--_Dest = ::std:: move(*--_Last); + return (_Dest); + } + +template inline + _BidIt2 _Move_backward_unchecked1(_BidIt1 _First, _BidIt1 _Last, + _BidIt2 _Dest, _Trivially_copyable_ptr_iterator_tag) + { + return (_Copy_backward_memmove(_First, _Last, _Dest)); + } + +template inline + _BidIt2 _Move_backward_unchecked(_BidIt1 _First, _BidIt1 _Last, + _BidIt2 _Dest) + { + return (_Move_backward_unchecked1(_First, _Last, + _Dest, _Ptr_move_cat(_First, _Dest))); + } + +template inline + _BidIt2 _Move_backward1(_BidIt1 _First, _BidIt1 _Last, + _BidIt2 _Dest, input_iterator_tag, _Any_tag) + { + return (_Rechecked(_Dest, + _Move_backward_unchecked(_First, _Last, _Unchecked_idl0(_Dest)))); + } + +template inline + _BidIt2 _Move_backward1(_BidIt1 _First, _BidIt1 _Last, + _BidIt2 _Dest, random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_Dest) - ((_Last) - (_First))); + return (_Rechecked(_Dest, + _Move_backward_unchecked(_First, _Last, _Unchecked(_Dest)))); + } + +template inline + _BidIt2 move_backward(_BidIt1 _First, _BidIt1 _Last, + _BidIt2 _Dest) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "move_backward" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 2706); + return (_Move_backward1(_Unchecked(_First), _Unchecked(_Last), + _Dest, _Iter_cat_t<_BidIt1>(), _Iter_cat_t<_BidIt2>())); + } + + +template + struct _Is_character + : false_type + { + }; + +template<> + struct _Is_character + : true_type + { + }; + +template<> + struct _Is_character + : true_type + { + }; + +template<> + struct _Is_character + : true_type + { + }; + +template + struct _Fill_memset_is_safe_helper + { + typedef _Iter_value_t<_FwdIt> _Value_type; + typedef typename conjunction< + is_pointer<_FwdIt>, + disjunction< + conjunction< + _Is_character<_Ty>, + _Is_character<_Value_type>>, + conjunction< + is_same, + is_same> + >>::type type; + }; + +template inline + typename _Fill_memset_is_safe_helper<_FwdIt, _Ty>::type + _Fill_memset_is_safe(const _FwdIt&, const _Ty&) + { + return {}; + } + +template inline + void _Fill_unchecked1(_FwdIt _First, _FwdIt _Last, const _Ty& _Val, false_type) + { + for (; _First != _Last; ++_First) + *_First = _Val; + } + +template inline + void _Fill_unchecked1(_FwdIt _First, _FwdIt _Last, const _Ty& _Val, true_type) + { + :: memset(_First, _Val, _Last - _First); + } + +template inline + void _Fill_unchecked(_FwdIt _First, _FwdIt _Last, const _Ty& _Val) + { + _Fill_unchecked1(_First, _Last, _Val, _Fill_memset_is_safe(_First, _Val)); + } + +template inline + void fill(_FwdIt _First, _FwdIt _Last, const _Ty& _Val) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 2787); + _Fill_unchecked(_Unchecked(_First), _Unchecked(_Last), _Val); + } + + +template inline + _OutIt _Fill_n_unchecked1(_OutIt _Dest, _Diff _Count, const _Ty& _Val, false_type) + { + for (; 0 < _Count; --_Count, (void)++_Dest) + *_Dest = _Val; + return (_Dest); + } + +template inline + _OutIt _Fill_n_unchecked1(_OutIt _Dest, _Diff _Count, const _Ty& _Val, true_type) + { + if (0 < _Count) + { + :: memset(_Dest, _Val, _Count); + return (_Dest + _Count); + } + + return (_Dest); + } + +template inline + _OutIt _Fill_n_unchecked(_OutIt _Dest, _Diff _Count, const _Ty& _Val) + { + + return (_Fill_n_unchecked1(_Dest, _Count, _Val, _Fill_memset_is_safe(_Dest, _Val))); + } + +template inline + _OutIt fill_n(_OutIt _Dest, _Diff _Count, const _Ty& _Val) + { + return (_Rechecked(_Dest, + _Fill_n_unchecked(_Unchecked_n(_Dest, _Count), _Count, _Val))); + } + + +template + struct _Value_equality_is_bitwise_equality + : bool_constant(-1) == static_cast<_Elem2>(-1)> + { + + + + }; + +template + struct _Equal_memcmp_is_safe_helper + : false_type + { + + }; + +template + struct _Equal_memcmp_is_safe_helper<_Elem1, _Elem2, equal_to<>> + : conjunction< + _Is_same_size<_Elem1, _Elem2>, + is_integral<_Elem1>, + is_integral<_Elem2>, + negation>, + negation>, + negation>, + negation>, + + + _Value_equality_is_bitwise_equality<_Elem1, _Elem2> + >::type + { + }; + +template + struct _Equal_memcmp_is_safe_helper<_Elem1 *, _Elem2 *, equal_to<>> + : is_same, remove_cv_t<_Elem2>>::type + { + }; + +template + struct _Equal_memcmp_is_safe_helper<_Elem, _Elem, _Char_traits_eq>> + : _Equal_memcmp_is_safe_helper<_Elem, _Elem, equal_to<>>::type + { + }; + +template + struct _Equal_memcmp_is_safe_helper<_Elem, _Elem, equal_to<_Elem>> + : _Equal_memcmp_is_safe_helper<_Elem, _Elem, equal_to<>>::type + { + + }; + +template inline + false_type _Equal_memcmp_is_safe(const _Iter1&, const _Iter2&, const _Pr&) + { + return {}; + } + +template inline + typename _Equal_memcmp_is_safe_helper< + remove_const_t<_Obj1>, + remove_const_t<_Obj2>, + _Pr>::type + _Equal_memcmp_is_safe(_Obj1 * const&, _Obj2 * const&, const _Pr&) + { + return {}; + } + +template inline + bool _Equal_unchecked1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Pr& _Pred, false_type) + { + for (; _First1 != _Last1; ++_First1, (void)++_First2) + if (!_Pred(*_First1, *_First2)) + return (false); + return (true); + } + +template inline + bool _Equal_unchecked1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Pr&, true_type) + { + const char * const _First1_ch = reinterpret_cast(_First1); + const char * const _First2_ch = reinterpret_cast(_First2); + const size_t _Count = reinterpret_cast(_Last1) - _First1_ch; + return (:: memcmp(_First1_ch, _First2_ch, _Count) == 0); + } + +template inline + bool _Equal_unchecked(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Pr& _Pred) + { + return (_Equal_unchecked1(_First1, _Last1, _First2, _Pred, + _Equal_memcmp_is_safe(_First1, _First2, _Pred))); + } + +template inline + bool _Equal_no_deprecate1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Pr& _Pred, input_iterator_tag, input_iterator_tag) + { + return (_Equal_unchecked(_First1, _Last1, _Unchecked_idl0(_First2), _Pred)); + } + +template inline + bool _Equal_no_deprecate1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Pr& _Pred, random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_First2) + ((_Last1) - (_First1))); + return (_Equal_unchecked(_First1, _Last1, _Unchecked(_First2), _Pred)); + } + +template inline + bool _Equal_no_deprecate(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Pr& _Pred) + { + _Debug_range_ptr(_First1, _Last1, _First2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 2971); + _Debug_pointer_if(_First1 != _Last1, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 2972); + return (_Equal_no_deprecate1(_Unchecked(_First1), _Unchecked(_Last1), + _First2, _Pred, _Iter_cat_t<_InIt1>(), _Iter_cat_t<_InIt2>())); + } + +template inline + bool equal(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Pr _Pred) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "equal" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_First2))); + return (_Equal_no_deprecate(_First1, _Last1, _First2, _Pred)); + } + + +template::value>> inline + bool equal(_InIt1 _First1, _InIt1 _Last1, + _InTy (&_First2)[_InSize], _Pr _Pred) + { + return (_Equal_no_deprecate(_First1, _Last1, + _Array_iterator<_InTy, _InSize>(_First2), _Pred)); + } + + + +template inline + bool equal(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2) + { + return (::std:: equal(_First1, _Last1, _First2, + equal_to<>())); + } + + +template inline + bool equal(_InIt1 _First1, _InIt1 _Last1, + _InTy (&_First2)[_InSize]) + { + return (::std:: equal(_First1, _Last1, _First2, + equal_to<>())); + } + + + +template inline + bool _Equal_unchecked(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _Pr& _Pred, + input_iterator_tag, input_iterator_tag) + { + + _Debug_pointer_if(_First1 != _Last1 && _First2 != _Last2, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3032); + for (; _First1 != _Last1 && _First2 != _Last2; ++_First1, (void)++_First2) + if (!_Pred(*_First1, *_First2)) + return (false); + return (_First1 == _Last1 && _First2 == _Last2); + } + +template inline + bool _Equal_unchecked(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _Pr& _Pred, + random_access_iterator_tag, random_access_iterator_tag) + { + + if (_Last1 - _First1 != _Last2 - _First2) + return (false); + _Debug_pointer_if(_First1 != _Last1, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3049); + return (_Equal_unchecked(_First1, _Last1, _First2, _Pred)); + } + +template inline + bool equal(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _Pr _Pred) + { + _Debug_range(_First1, _Last1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3059); + _Debug_range(_First2, _Last2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3060); + return (_Equal_unchecked(_Unchecked(_First1), _Unchecked(_Last1), + _Unchecked(_First2), _Unchecked(_Last2), _Pred, + _Iter_cat_t<_InIt1>(), _Iter_cat_t<_InIt2>())); + } + + +template inline + bool equal(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2) + { + return (::std:: equal(_First1, _Last1, _First2, _Last2, + equal_to<>())); + } + + +template + struct _Lex_compare_check_element_types_helper + : conjunction< + _Is_character<_Elem1>, + _Is_character<_Elem2>, + _Is_character<_FTy>, + is_unsigned<_FTy> + >::type + { + }; + +template + struct _Lex_compare_check_element_types_helper<_Elem1, _Elem2, void> + : conjunction< + _Is_character<_Elem1>, + _Is_character<_Elem2>, + is_unsigned<_Elem1>, + is_unsigned<_Elem2> + >::type + { + }; + +template + struct _Lex_compare_optimize + { + }; + +template + using _Lex_compare_check_element_types = _Lex_compare_optimize, remove_const_t<_Obj2>, _FTy>::value, + _Memcmp_pr, void>>; + +template inline + _Lex_compare_optimize _Lex_compare_memcmp_classify(const _InIt1&, const _InIt2&, const _Pr&) + { + + return {}; + } + +template inline + _Lex_compare_check_element_types, _Obj1, _Obj2, _FTy> + _Lex_compare_memcmp_classify(_Obj1 * const&, _Obj2 * const&, const less<_FTy>&) + { + return {}; + } + +template inline + bool _Lex_compare_unchecked1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _Pr& _Pred, _Lex_compare_optimize) + { + for (; _First1 != _Last1 && _First2 != _Last2; ++_First1, (void)++_First2) + { + if (_Debug_lt_pred(_Pred, *_First1, *_First2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3141)) + return (true); + else if (_Pred(*_First2, *_First1)) + return (false); + } + + return (_First1 == _Last1 && _First2 != _Last2); + } + +template inline + bool _Lex_compare_unchecked1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _Pr&, _Lex_compare_optimize<_Memcmp_pr>) + { + const size_t _Num1 = _Last1 - _First1; + const size_t _Num2 = _Last2 - _First2; + const int _Ans = :: memcmp(_First1, _First2, _Num1 < _Num2 ? _Num1 : _Num2); + return (_Memcmp_pr{}(_Ans, 0) || _Ans == 0 && _Num1 < _Num2); + } + +template inline + bool _Lex_compare_unchecked(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _Pr& _Pred) + { + return (_Lex_compare_unchecked1(_First1, _Last1, _First2, _Last2, _Pred, + _Lex_compare_memcmp_classify(_First1, _First2, _Pred))); + } + +template inline + bool lexicographical_compare(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _Pr _Pred) + { + _Debug_range(_First1, _Last1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3179); + _Debug_range(_First2, _Last2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3180); + _Debug_pointer_if(_First1 != _Last1 && _First2 != _Last2, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3181); + return (_Lex_compare_unchecked(_Unchecked(_First1), _Unchecked(_Last1), + _Unchecked(_First2), _Unchecked(_Last2), _Pred)); + } + + +template inline + bool lexicographical_compare(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2) + { + return (::std:: lexicographical_compare(_First1, _Last1, + _First2, _Last2, less<>())); + } + + +template inline + bool _Within_limits(const _Ty& _Val, true_type, true_type, _Any_tag) + { + return ((-128) <= _Val && _Val <= 127); + } + +template inline + bool _Within_limits(const _Ty& _Val, true_type, false_type, true_type) + { + return (_Val <= 127 || static_cast<_Ty>((-128)) <= _Val); + } + +template inline + bool _Within_limits(const _Ty& _Val, true_type, false_type, false_type) + { + return (_Val <= 127); + } + +template inline + bool _Within_limits(const _Ty& _Val, false_type, true_type, _Any_tag) + { + return (0 <= _Val && _Val <= 0xff); + } + +template inline + bool _Within_limits(const _Ty& _Val, false_type, false_type, _Any_tag) + { + return (_Val <= 0xff); + } + +template inline + bool _Within_limits(_InIt, const _Ty& _Val) + { + typedef typename remove_pointer<_InIt>::type _Elem; + return (_Within_limits(_Val, is_signed<_Elem>(), is_signed<_Ty>(), + integral_constant(-1)>())); + } + +template inline + bool _Within_limits(_InIt, const bool&) + { + return (true); + } + +template inline + _InIt _Find_unchecked1(_InIt _First, _InIt _Last, const _Ty& _Val, true_type) + { + if (!_Within_limits(_First, _Val)) + return (_Last); + _First = static_cast<_InIt>(:: memchr( + _First, static_cast(_Val), _Last - _First)); + return (_First ? _First : _Last); + } + +template inline + _InIt _Find_unchecked1(_InIt _First, _InIt _Last, const _Ty& _Val, false_type) + { + for (; _First != _Last; ++_First) + if (*_First == _Val) + break; + return (_First); + } + +template inline + _InIt _Find_unchecked(_InIt _First, _InIt _Last, const _Ty& _Val) + { + + typedef integral_constant::value + || is_same<_InIt, signed char *>::value + || is_same<_InIt, unsigned char *>::value + || is_same<_InIt, const char *>::value + || is_same<_InIt, const signed char *>::value + || is_same<_InIt, const unsigned char *>::value) + && is_integral<_Ty>::value + > _Memchr_opt; + return (_Find_unchecked1(_First, _Last, _Val, _Memchr_opt())); + } + +template inline + _InIt find(_InIt _First, _InIt _Last, const _Ty& _Val) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3284); + return (_Rechecked(_First, + _Find_unchecked(_Unchecked(_First), _Unchecked(_Last), _Val))); + } + + +template inline + _InIt _Find_pr(_InIt _First, _InIt _Last, const _Ty& _Val, _Pr& _Pred) + { + for (; _First != _Last; ++_First) + if (_Pred(*_First, _Val)) + break; + return (_First); + } + + +template inline + _Iter_diff_t<_InIt> + _Count_unchecked(_InIt _First, _InIt _Last, const _Ty& _Val) + { + _Iter_diff_t<_InIt> _Count = 0; + + for (; _First != _Last; ++_First) + if (*_First == _Val) + ++_Count; + return (_Count); + } + +template inline + _Iter_diff_t<_InIt> + count(_InIt _First, _InIt _Last, const _Ty& _Val) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3320); + return (_Count_unchecked(_Unchecked(_First), _Unchecked(_Last), _Val)); + } + + +template inline + _Iter_diff_t<_InIt> + _Count_pr(_InIt _First, _InIt _Last, const _Ty& _Val, _Pr& _Pred) + { + _Iter_diff_t<_InIt> _Count = 0; + + for (; _First != _Last; ++_First) + if (_Pred(*_First, _Val)) + ++_Count; + return (_Count); + } + + +template inline + void _Trim_matching_suffixes(_FwdIt1&, _FwdIt2&, _Pr&, + forward_iterator_tag, forward_iterator_tag) + { + } + +template inline + void _Trim_matching_suffixes(_FwdIt1& _Last1, _FwdIt2& _Last2, _Pr& _Pred, + bidirectional_iterator_tag, bidirectional_iterator_tag) + { + + while (_Pred(*--_Last1, *--_Last2)) + ; + ++_Last1; + ++_Last2; + } + + +template inline + bool _Check_match_counts(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _FwdIt2 _Last2, _Pr& _Pred) + { + _Trim_matching_suffixes(_Last1, _Last2, _Pred, + _Iter_cat_t<_FwdIt1>(), _Iter_cat_t<_FwdIt2>()); + for (_FwdIt1 _Next1 = _First1; _Next1 != _Last1; ++_Next1) + if (_Next1 == _Find_pr(_First1, _Next1, *_Next1, _Pred)) + { + _Iter_diff_t<_FwdIt2> _Count2 = _Count_pr(_First2, _Last2, *_Next1, _Pred); + if (_Count2 == 0) + return (false); + _FwdIt1 _Skip1 = ::std:: next(_Next1); + _Iter_diff_t<_FwdIt1> _Count1 = _Count_pr(_Skip1, _Last1, *_Next1, _Pred) + 1; + if (_Count2 != _Count1) + return (false); + } + + return (true); + } + + +template inline + bool _Is_permutation_unchecked(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _Pr& _Pred) + { + for (; _First1 != _Last1; ++_First1, (void)++_First2) + if (!_Pred(*_First1, *_First2)) + { + _FwdIt2 _Last2 = ::std:: next(_First2, + ::std:: distance(_First1, _Last1)); + return (_Check_match_counts(_First1, _Last1, + _First2, _Last2, _Pred)); + } + + return (true); + } + +template inline + bool _Is_permutation_no_deprecate1(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _Pr& _Pred, forward_iterator_tag, forward_iterator_tag) + { + return (_Is_permutation_unchecked(_First1, _Last1, _Unchecked_idl0(_First2), _Pred)); + } + +template inline + bool _Is_permutation_no_deprecate1(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _Pr& _Pred, random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_First2) + ((_Last1) - (_First1))); + return (_Is_permutation_unchecked(_First1, _Last1, _Unchecked(_First2), _Pred)); + } + +template inline + bool _Is_permutation_no_deprecate(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _Pr& _Pred) + { + _Debug_range_ptr(_First1, _Last1, _First2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3429); + _Debug_pointer_if(_First1 != _Last1, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3430); + return (_Is_permutation_no_deprecate1(_Unchecked(_First1), _Unchecked(_Last1), + _First2, _Pred, _Iter_cat_t<_FwdIt1>(), _Iter_cat_t<_FwdIt2>())); + } + +template inline + bool is_permutation(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _Pr _Pred) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "is_permutation" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_First2))); + return (_Is_permutation_no_deprecate(_First1, _Last1, _First2, _Pred)); + } + + +template::value>> inline + bool is_permutation(_FwdIt1 _First1, _FwdIt1 _Last1, + _InTy (&_First2)[_InSize], _Pr _Pred) + { + return (_Is_permutation_no_deprecate(_First1, _Last1, + _Array_iterator<_InTy, _InSize>(_First2), _Pred)); + } + + + +template inline + bool is_permutation(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2) + { + return (::std:: is_permutation(_First1, _Last1, + _First2, equal_to<>())); + } + + + +template inline + bool is_permutation(_FwdIt1 _First1, _FwdIt1 _Last1, + _InTy (&_First2)[_InSize]) + { + return (::std:: is_permutation(_First1, _Last1, _First2, equal_to<>())); + } + + + +template inline + bool _Is_permutation_unchecked(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _FwdIt2 _Last2, _Pr& _Pred, + forward_iterator_tag, forward_iterator_tag) + { + + _Debug_pointer_if(_First1 != _Last1 && _First2 != _Last2, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3490); + for (; _First1 != _Last1 && _First2 != _Last2; ++_First1, (void)++_First2) + if (!_Pred(*_First1, *_First2)) + { + if (::std:: distance(_First1, _Last1) + != ::std:: distance(_First2, _Last2)) + return (false); + else + return (_Check_match_counts(_First1, _Last1, + _First2, _Last2, _Pred)); + } + + return (_First1 == _Last1 && _First2 == _Last2); + } + +template inline + bool _Is_permutation_unchecked(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _FwdIt2 _Last2, _Pr& _Pred, + random_access_iterator_tag, random_access_iterator_tag) + { + + if (_Last1 - _First1 != _Last2 - _First2) + return (false); + _Debug_pointer_if(_First1 != _Last1, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3515); + return (_Is_permutation_unchecked(_First1, _Last1, _First2, _Pred)); + } + +template inline + bool is_permutation(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _FwdIt2 _Last2, _Pr _Pred) + { + + _Debug_range(_First1, _Last1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3526); + _Debug_range(_First2, _Last2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3527); + return (_Is_permutation_unchecked(_Unchecked(_First1), _Unchecked(_Last1), + _Unchecked(_First2), _Unchecked(_Last2), _Pred, + _Iter_cat_t<_FwdIt1>(), _Iter_cat_t<_FwdIt2>())); + } + + +template inline + bool is_permutation(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _FwdIt2 _Last2) + { + return (::std:: is_permutation(_First1, _Last1, + _First2, _Last2, equal_to<>())); + } + + +template inline + void _Reverse_unchecked(_BidIt _First, _BidIt _Last) + { + for (; _First != _Last && _First != --_Last; ++_First) + ::std:: iter_swap(_First, _Last); + } + +template inline + void reverse(_BidIt _First, _BidIt _Last) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3554); + _Reverse_unchecked(_Unchecked(_First), _Unchecked(_Last)); + } + + +template inline + _FwdIt _Rotate_unchecked1(_FwdIt _First, _FwdIt _Mid, _FwdIt _Last, + forward_iterator_tag) + { + for (_FwdIt _Next = _Mid, _Res = _Last; ; ) + { + ::std:: iter_swap(_First, _Next); + if (++_First == _Mid) + { + if (++_Next == _Last) + return (_Res == _Last ? _Mid : _Res); + else + _Mid = _Next; + } + else if (++_Next == _Last) + { + if (_Res == _Last) + _Res = _First; + _Next = _Mid; + } + } + } + +template inline + pair<_BidIt, _BidIt> _Reverse_until_sentinel_unchecked( + _BidIt _First, _BidIt _Sentinel, _BidIt _Last) + { + while (_First != _Sentinel && _Last != _Sentinel) + ::std:: iter_swap(_First++, --_Last); + return (::std:: make_pair(_First, _Last)); + } + +template inline + _BidIt _Rotate_unchecked1(_BidIt _First, _BidIt _Mid, _BidIt _Last, + bidirectional_iterator_tag) + { + _Reverse_unchecked(_First, _Mid); + _Reverse_unchecked(_Mid, _Last); + pair<_BidIt, _BidIt> _Tmp = _Reverse_until_sentinel_unchecked(_First, _Mid, _Last); + _Reverse_unchecked(_Tmp.first, _Tmp.second); + return (_Mid != _Tmp.first ? _Tmp.first : _Tmp.second); + } + +template inline + _RanIt _Rotate_unchecked1(_RanIt _First, _RanIt _Mid, _RanIt _Last, + random_access_iterator_tag) + { + _Reverse_unchecked(_First, _Mid); + _Reverse_unchecked(_Mid, _Last); + _Reverse_unchecked(_First, _Last); + return (_First + (_Last - _Mid)); + } + +template inline + _FwdIt _Rotate_unchecked(_FwdIt _First, _FwdIt _Mid, _FwdIt _Last) + { + if (_First == _Mid) + return (_Last); + if (_Mid == _Last) + return (_First); + return (_Rotate_unchecked1(_First, _Mid, _Last, _Iter_cat_t<_FwdIt>())); + } + +template inline + _FwdIt rotate(_FwdIt _First, _FwdIt _Mid, _FwdIt _Last) + { + _Debug_range(_First, _Mid, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3625); + _Debug_range(_Mid, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3626); + return (_Rechecked(_First, + _Rotate_unchecked(_Unchecked(_First), _Unchecked(_Mid), + _Unchecked(_Last)))); + } + + +template + class _Rng_from_urng + { +public: + typedef typename make_unsigned<_Diff>::type _Ty0; + typedef typename _Urng::result_type _Ty1; + + typedef typename _If::type _Udiff; + + + explicit _Rng_from_urng(_Urng& _Func) + : _Ref(_Func), _Bits(8 * sizeof (_Udiff)), _Bmask(_Udiff(-1)) + { + for (; (_Urng::max)() - (_Urng::min)() < _Bmask; _Bmask >>= 1) + --_Bits; + } + + _Diff operator()(_Diff _Index) + { + for (; ; ) + { + _Udiff _Ret = 0; + _Udiff _Mask = 0; + + while (_Mask < _Udiff(_Index - 1)) + { + _Ret <<= _Bits - 1; + _Ret <<= 1; + _Ret |= _Get_bits(); + _Mask <<= _Bits - 1; + _Mask <<= 1; + _Mask |= _Bmask; + } + + + if (_Ret / _Index < _Mask / _Index + || _Mask % _Index == _Udiff(_Index - 1)) + return (_Ret % _Index); + } + } + + _Udiff _Get_all_bits() + { + _Udiff _Ret = 0; + + for (size_t _Num = 0; _Num < 8 * sizeof (_Udiff); + _Num += _Bits) + { + _Ret <<= _Bits - 1; + _Ret <<= 1; + _Ret |= _Get_bits(); + } + + return (_Ret); + } + + _Rng_from_urng(const _Rng_from_urng&) = delete; + _Rng_from_urng& operator=(const _Rng_from_urng&) = delete; + +private: + _Udiff _Get_bits() + { + for (; ; ) + { + _Udiff _Val = _Ref() - (_Urng::min)(); + + if (_Val <= _Bmask) + return (_Val); + } + } + + _Urng& _Ref; + size_t _Bits; + _Udiff _Bmask; + }; + + +template + class _Yarn + { +public: + typedef _Yarn<_Elem> _Myt; + + _Yarn() + : _Myptr(0), _Nul(0) + { + } + + _Yarn(const _Myt& _Right) + : _Myptr(0), _Nul(0) + { + *this = _Right; + } + + _Yarn(const _Elem *_Right) + : _Myptr(0), _Nul(0) + { + *this = _Right; + } + + _Myt& operator=(const _Myt& _Right) + { + return (*this = _Right._Myptr); + } + + _Myt& operator=(const _Elem *_Right) + { + if (_Myptr != _Right) + { + _Tidy(); + + if (_Right != 0) + { + const _Elem *_Ptr = _Right; + while (*_Ptr != (_Elem)0) + ++_Ptr; + size_t _Count = ((const char *)++_Ptr - (const char *)_Right); + + + _Myptr = (_Elem *)_malloc_dbg(_Count, 2, + "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xutility", 3755); + + + + + + if (_Myptr != 0) + :: memcpy(_Myptr, _Right, _Count); + } + } + + return (*this); + } + + ~_Yarn() noexcept + { + _Tidy(); + } + + bool empty() const + { + return (_Myptr == 0); + } + + const _Elem * c_str() const + { + return (_Myptr != 0 ? _Myptr : &_Nul); + } + + bool _Empty() const + { + return (_Myptr == 0); + } + + const _Elem * _C_str() const + { + return (_Myptr != 0 ? _Myptr : &_Nul); + } + +private: + void _Tidy() + { + if (_Myptr != 0) + + + _free_dbg(_Myptr, 2); + + + + + + _Myptr = 0; + } + + _Elem *_Myptr; + _Elem _Nul; + }; + + +template + struct _Has_allocator_type + { + template + static auto _Fn(int) + -> is_convertible<_Alloc, + typename _Uty::allocator_type>; + template + static auto _Fn(_Wrap_int) + -> false_type; + + typedef decltype(_Fn<_Ty>(0)) type; + }; + + +struct allocator_arg_t + { + }; + +constexpr allocator_arg_t allocator_arg{}; + +[[noreturn]] void __cdecl _Xbad_alloc(); +[[noreturn]] void __cdecl _Xinvalid_argument( const char *); +[[noreturn]] void __cdecl _Xlength_error( const char *); +[[noreturn]] void __cdecl _Xout_of_range( const char *); +[[noreturn]] void __cdecl _Xoverflow_error( const char *); +[[noreturn]] void __cdecl _Xruntime_error( const char *); +} + +namespace std { + +template + struct uses_allocator + : _Has_allocator_type<_Ty, _Alloc>::type + { + }; + + +template + constexpr bool uses_allocator_v = uses_allocator<_Ty, _Alloc>::value; + +} + +#pragma warning(pop) +#pragma pack(pop) +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + + + + + +#pragma warning(disable: 4100) + +namespace std { +# 45 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0" 3 +inline + __declspec(allocator) void *_Allocate(size_t _Count, size_t _Sz, + bool _Try_aligned_allocation = true) + { + void *_Ptr = 0; + + if (_Count == 0) + return (_Ptr); + + + if ((size_t)(-1) / _Sz < _Count) + _Xbad_alloc(); + const size_t _User_size = _Count * _Sz; + + + if (_Try_aligned_allocation + && 4096 <= _User_size) + { + static_assert(sizeof (void *) < 32, + "Big allocations should at least match vector register size"); + const size_t _Block_size = (2 * sizeof(void *) + 32 - 1) + _User_size; + if (_Block_size <= _User_size) + _Xbad_alloc(); + const uintptr_t _Ptr_container = + reinterpret_cast(::operator new(_Block_size)); + { if (!(_Ptr_container != 0)) { (void)( (!!(("_Ptr_container != 0" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 70, 0, L"%ls", L"\"_Ptr_container != 0\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 70, 0); } ; }; + _Ptr = reinterpret_cast((_Ptr_container + (2 * sizeof(void *) + 32 - 1)) + & ~(32 - 1)); + static_cast(_Ptr)[-1] = _Ptr_container; + + + static_cast(_Ptr)[-2] = 0xFAFAFAFAUL; + + } + else + + + { + _Ptr = ::operator new(_User_size); + { if (!(_Ptr != 0)) { (void)( (!!(("_Ptr != 0" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 84, 0, L"%ls", L"\"_Ptr != 0\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 84, 0); } ; }; + } + return (_Ptr); + } + + +inline + void _Deallocate(void * _Ptr, size_t _Count, size_t _Sz) + { + + { if (!(_Count <= (size_t)(-1) / _Sz)) { (void)( (!!(("_Count <= (size_t)(-1) / _Sz" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 94, 0, L"%ls", L"\"_Count <= (size_t)(-1) / _Sz\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 94, 0); } ; }; + const size_t _User_size = _Count * _Sz; + if (4096 <= _User_size) + { + const uintptr_t _Ptr_user = reinterpret_cast(_Ptr); + { if (!((_Ptr_user & (32 - 1)) == 0)) { (void)( (!!(("(_Ptr_user & (_BIG_ALLOCATION_ALIGNMENT - 1)) == 0" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 100, 0, L"%ls", L"\"(_Ptr_user & (_BIG_ALLOCATION_ALIGNMENT - 1)) == 0\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 100, 0); } ; }; + + const uintptr_t _Ptr_ptr = _Ptr_user - sizeof(void *); + const uintptr_t _Ptr_container = + *reinterpret_cast(_Ptr_ptr); + + + + + { if (!(reinterpret_cast(_Ptr_ptr)[-1] == 0xFAFAFAFAUL)) { (void)( (!!(("reinterpret_cast(_Ptr_ptr)[-1] == _BIG_ALLOCATION_SENTINEL" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 110, 0, L"%ls", L"\"reinterpret_cast(_Ptr_ptr)[-1] == _BIG_ALLOCATION_SENTINEL\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 110, 0); } ; }; + + + + + + { if (!(_Ptr_container < _Ptr_user)) { (void)( (!!(("_Ptr_container < _Ptr_user" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 114, 0, L"%ls", L"\"_Ptr_container < _Ptr_user\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 114, 0); } ; }; + + + { if (!(2 * sizeof(void *) <= _Ptr_user - _Ptr_container)) { (void)( (!!(("2 * sizeof(void *) <= _Ptr_user - _Ptr_container" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 118, 0, L"%ls", L"\"2 * sizeof(void *) <= _Ptr_user - _Ptr_container\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 118, 0); } ; }; + + + + + + + + { if (!(_Ptr_user - _Ptr_container <= (2 * sizeof(void *) + 32 - 1))) { (void)( (!!(("_Ptr_user - _Ptr_container <= _NON_USER_SIZE" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 126, 0, L"%ls", L"\"_Ptr_user - _Ptr_container <= _NON_USER_SIZE\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 126, 0); } ; }; + + + _Ptr = reinterpret_cast(_Ptr_container); + } + + + ::operator delete(_Ptr); + } + + +template inline + void _Construct(_Ty1 *_Ptr, _Ty2&& _Val) + { + void *_Vptr = _Ptr; + ::new (_Vptr) _Ty1(::std:: forward<_Ty2>(_Val)); + } + +template inline + void _Construct(_Ty1 *_Ptr) + { + void *_Vptr = _Ptr; + + ::new (_Vptr) _Ty1(); + } + + +template + struct _Is_simple_alloc + : _Cat_base::value + && is_same::value + && is_same::value + && is_same::value + && is_same::value + && is_same::value> + { + }; + + +template + struct _Simple_types + { + typedef _Value_type value_type; + typedef size_t size_type; + typedef ptrdiff_t difference_type; + typedef value_type *pointer; + typedef const value_type *const_pointer; + typedef value_type& reference; + typedef const value_type& const_reference; + }; + + +template + struct _Get_voidptr + { + typedef typename _Alty::template rebind::other _Alvoid; + typedef typename _Alvoid::pointer type; + }; + +template + struct _Get_voidptr<_Alty, _Ty *> + { + typedef void *type; + }; + + +template + struct _Get_first_parameter; + +template class _Ty, + class _First, + class... _Rest> + struct _Get_first_parameter<_Ty<_First, _Rest...> > + { + typedef _First type; + }; + + +template + struct _Replace_first_parameter; + +template class _Ty, + class _First, + class... _Rest> + struct _Replace_first_parameter<_Newfirst, _Ty<_First, _Rest...> > + { + typedef _Ty<_Newfirst, _Rest...> type; + }; + + +template + struct _Get_element_type + { template static auto _Fn(int) -> _Identity; template static auto _Fn(_Wrap_int) -> _Identity::type>; typedef decltype(_Fn<_Ty>(0)) _Decltype; typedef typename _Decltype::type type; }; + + + +template + struct _Get_ptr_difference_type + { template static auto _Fn(int) -> _Identity; template static auto _Fn(_Wrap_int) -> _Identity; typedef decltype(_Fn<_Ty>(0)) _Decltype; typedef typename _Decltype::type type; }; + + + +template + struct _Get_rebind_type + { template static auto _Fn(int) -> _Identity::other>; template static auto _Fn(_Wrap_int) -> _Identity::type>; typedef decltype(_Fn<_Ty>(0)) _Decltype; typedef typename _Decltype::type type; }; + + + +template + struct pointer_traits + { + typedef typename _Get_element_type<_Ty>::type element_type; + typedef _Ty pointer; + typedef typename _Get_ptr_difference_type<_Ty>::type difference_type; + + template + using rebind = typename _Get_rebind_type<_Ty, _Other>::type; + + typedef typename _If::value, + char&, + typename add_lvalue_reference::type>::type _Reftype; + + static pointer pointer_to(_Reftype _Val) + { + return (_Ty::pointer_to(_Val)); + } + }; + + +template + struct pointer_traits<_Ty *> + { + typedef _Ty element_type; + typedef _Ty *pointer; + typedef ptrdiff_t difference_type; + + template + using rebind = _Other *; + + typedef typename _If::value, + char&, + typename add_lvalue_reference<_Ty>::type>::type _Reftype; + + static pointer pointer_to(_Reftype _Val) + { + return (::std:: addressof(_Val)); + } + }; + + + +template inline + void _Destroy(_Ptrty _Ptr) + { + typedef typename pointer_traits<_Ptrty>::element_type _Ty; + _Ptr->~_Ty(); + } + + +template inline + auto _Const_cast(_Ptrty _Ptr) + { + using _Elem = typename pointer_traits<_Ptrty>::element_type; + using _Modifiable = remove_const_t<_Elem>; + using _Dest = typename pointer_traits<_Ptrty>::template rebind<_Modifiable>; + + return (pointer_traits<_Dest>::pointer_to(const_cast<_Modifiable&>(*_Ptr))); + } + +template inline + auto _Const_cast(_Ty * _Ptr) + { + return (const_cast *>(_Ptr)); + } + + + +template + struct _Get_pointer_type + { template static auto _Fn(int) -> _Identity; template static auto _Fn(_Wrap_int) -> _Identity; typedef decltype(_Fn<_Ty>(0)) _Decltype; typedef typename _Decltype::type type; }; + + + +template + struct _Get_const_pointer_type + { template static auto _Fn(int) -> _Identity; template static auto _Fn(_Wrap_int) -> _Identity::type> ::template rebind >; typedef decltype(_Fn<_Ty>(0)) _Decltype; typedef typename _Decltype::type type; }; + + + + +template + struct _Get_void_pointer_type + { template static auto _Fn(int) -> _Identity; template static auto _Fn(_Wrap_int) -> _Identity::type> ::template rebind >; typedef decltype(_Fn<_Ty>(0)) _Decltype; typedef typename _Decltype::type type; }; + + + + +template + struct _Get_const_void_pointer_type + { template static auto _Fn(int) -> _Identity; template static auto _Fn(_Wrap_int) -> _Identity::type> ::template rebind >; typedef decltype(_Fn<_Ty>(0)) _Decltype; typedef typename _Decltype::type type; }; + + + + +template + struct _Get_difference_type + { template static auto _Fn(int) -> _Identity; template static auto _Fn(_Wrap_int) -> _Identity::type>::type>; typedef decltype(_Fn<_Ty>(0)) _Decltype; typedef typename _Decltype::type type; }; + + + + +template + struct _Get_size_type + { template static auto _Fn(int) -> _Identity; template static auto _Fn(_Wrap_int) -> _Identity::type>::type>; typedef decltype(_Fn<_Ty>(0)) _Decltype; typedef typename _Decltype::type type; }; + + + + +template + struct _Get_propagate_on_container_copy + { template static auto _Fn(int) -> _Identity; template static auto _Fn(_Wrap_int) -> _Identity; typedef decltype(_Fn<_Ty>(0)) _Decltype; typedef typename _Decltype::type type; }; + + + +template + struct _Get_propagate_on_container_move + { template static auto _Fn(int) -> _Identity; template static auto _Fn(_Wrap_int) -> _Identity; typedef decltype(_Fn<_Ty>(0)) _Decltype; typedef typename _Decltype::type type; }; + + + +template + struct _Get_propagate_on_container_swap + { template static auto _Fn(int) -> _Identity; template static auto _Fn(_Wrap_int) -> _Identity; typedef decltype(_Fn<_Ty>(0)) _Decltype; typedef typename _Decltype::type type; }; + + + +template + struct _Get_is_always_equal + { template static auto _Fn(int) -> _Identity; template static auto _Fn(_Wrap_int) -> _Identity::type>; typedef decltype(_Fn<_Ty>(0)) _Decltype; typedef typename _Decltype::type type; }; + + + +template + class allocator; +template + struct _Wrap_alloc; + +template + struct _Unwrap_alloc + { + typedef _Alloc type; + }; + +template + struct _Unwrap_alloc<_Wrap_alloc<_Alloc>> + { + typedef _Alloc type; + }; + + + +template + using _Unwrap_alloc_t = typename _Unwrap_alloc<_Alloc>::type; + + + +template + struct _Is_default_allocator + : false_type + { + }; + +template + struct _Is_default_allocator, typename allocator<_Ty>::_Not_user_specialized> + : true_type + { + }; + + +struct _Alloc_allocate + { + + + template + static auto _Fn(int, _Alloc& _Al, + _Size_type _Count, + _Const_void_pointer _Hint) + -> decltype(_Al.allocate(_Count, _Hint)) + { + return (_Al.allocate(_Count, _Hint)); + } + + template + static auto _Fn(_Wrap_int, _Alloc& _Al, + _Size_type _Count, + _Const_void_pointer) + -> decltype(_Al.allocate(_Count)) + { + return (_Al.allocate(_Count)); + } + }; + + +struct _Has_no_alloc_construct_tag + { + }; + +template + struct _Has_no_alloc_construct + : true_type + { + }; + +template + struct _Has_no_alloc_construct< + void_t< + _Has_no_alloc_construct_tag, + decltype(::std:: declval<_Alloc&>().construct(::std:: declval<_Ptr>(), ::std:: declval<_Args>()...))>, + _Alloc, _Ptr, _Args...> + : false_type + { + }; + +template + using _Uses_default_construct = disjunction< + _Is_default_allocator<_Alloc>, + _Has_no_alloc_construct>; + +template + using _Uses_default_construct_t = typename _Uses_default_construct<_Alloc, _Ptr, _Args...>::type; + + + +struct _Has_no_alloc_destroy_tag + { + }; + +template + struct _Has_no_alloc_destroy + : true_type + { + }; + +template + struct _Has_no_alloc_destroy<_Alloc, _Ptr, void_t< + _Has_no_alloc_destroy_tag, + decltype(::std:: declval<_Alloc&>().destroy(::std:: declval<_Ptr>()))>> + : false_type + { + }; + +template + using _Uses_default_destroy = disjunction< + _Is_default_allocator<_Alloc>, + _Has_no_alloc_destroy<_Alloc, _Ptr>>; + +template + using _Uses_default_destroy_t = typename _Uses_default_destroy<_Alloc, _Ptr>::type; + + + +struct _Alloc_max_size + { + template + static auto _Fn(int, const _Ty& _Al) noexcept + -> decltype(_Al.max_size()) + { + return (_Al.max_size()); + } + + template + static auto _Fn(_Wrap_int, const _Ty&) noexcept + -> typename _Get_size_type<_Ty>::type + { + return ((numeric_limits::type>::max)() + / sizeof(typename _Ty::value_type)); + } + }; + + +struct _Alloc_select + { + + + template + static auto _Fn(int, const _Ty& _Al) + -> decltype((_Ty)_Al.select_on_container_copy_construction()) + { + return (_Al.select_on_container_copy_construction()); + } + + template + static auto _Fn(_Wrap_int, const _Ty& _Al) + -> _Ty + { + return (_Al); + } + }; + + +template + struct allocator_traits + { + typedef _Alloc allocator_type; + typedef typename _Alloc::value_type value_type; + + typedef typename _Get_pointer_type<_Alloc>::type + pointer; + typedef typename _Get_const_pointer_type<_Alloc>::type + const_pointer; + typedef typename _Get_void_pointer_type<_Alloc>::type + void_pointer; + typedef typename _Get_const_void_pointer_type<_Alloc>::type + const_void_pointer; + + typedef typename _Get_size_type<_Alloc>::type size_type; + typedef typename _Get_difference_type<_Alloc>::type difference_type; + + typedef typename _Get_propagate_on_container_copy<_Alloc>::type + propagate_on_container_copy_assignment; + typedef typename _Get_propagate_on_container_move<_Alloc>::type + propagate_on_container_move_assignment; + typedef typename _Get_propagate_on_container_swap<_Alloc>::type + propagate_on_container_swap; + typedef typename _Get_is_always_equal<_Alloc>::type + is_always_equal; + + template + using rebind_alloc = typename _Get_rebind_type<_Alloc, _Other>::type; + + template + using rebind_traits = allocator_traits >; + + static __declspec(allocator) pointer allocate(_Alloc& _Al, size_type _Count) + { + return (_Al.allocate(_Count)); + } + + static __declspec(allocator) pointer allocate(_Alloc& _Al, size_type _Count, + const_void_pointer _Hint) + { + return (_Alloc_allocate::_Fn(0, _Al, _Count, _Hint)); + } + + static void deallocate(_Alloc& _Al, + pointer _Ptr, size_type _Count) + { + _Al.deallocate(_Ptr, _Count); + } + + template + static void _Construct1(true_type, _Alloc&, _Ty *_Ptr, + _Types&&... _Args) + { + ::new (static_cast(_Ptr)) + _Ty(::std:: forward<_Types>(_Args)...); + } + + template + static void _Construct1(false_type, _Alloc& _Al, _Ty *_Ptr, + _Types&&... _Args) + { + _Al.construct(_Ptr, ::std:: forward<_Types>(_Args)...); + } + + template + static void construct(_Alloc& _Al, _Ty *_Ptr, + _Types&&... _Args) + { + _Construct1(_Uses_default_construct_t<_Unwrap_alloc_t<_Alloc>, _Ty *, _Types...>(), + _Al, _Ptr, ::std:: forward<_Types>(_Args)...); + } + + template + static void _Destroy1(_Alloc&, _Ty *_Ptr, true_type) + { + _Ptr->~_Ty(); + } + + template + static void _Destroy1(_Alloc& _Al, _Ty *_Ptr, false_type) + { + _Al.destroy(_Ptr); + } + + template + static void destroy(_Alloc& _Al, _Ty *_Ptr) + { + _Destroy1(_Al, _Ptr, _Uses_default_destroy_t<_Unwrap_alloc_t<_Alloc>, _Ty *>()); + } + + static size_type max_size(const _Alloc& _Al) noexcept + { + return (_Alloc_max_size::_Fn(0, _Al)); + } + + static _Alloc select_on_container_copy_construction( + const _Alloc& _Al) + { + return (_Alloc_select::_Fn(0, _Al)); + } + }; + + +template + class allocator + { +public: + static_assert(!is_const<_Ty>::value, + "The C++ Standard forbids containers of const elements " + "because allocator is ill-formed."); + + typedef void _Not_user_specialized; + + typedef _Ty value_type; + + typedef value_type *pointer; + typedef const value_type *const_pointer; + + typedef value_type& reference; + typedef const value_type& const_reference; + + typedef size_t size_type; + typedef ptrdiff_t difference_type; + + typedef true_type propagate_on_container_move_assignment; + typedef true_type is_always_equal; + + template + struct rebind + { + typedef allocator<_Other> other; + }; + + pointer address(reference _Val) const noexcept + { + return (::std:: addressof(_Val)); + } + + const_pointer address(const_reference _Val) const noexcept + { + return (::std:: addressof(_Val)); + } + + allocator() noexcept + { + } + + allocator(const allocator<_Ty>&) noexcept + { + } + + template + allocator(const allocator<_Other>&) noexcept + { + } + + template + allocator<_Ty>& operator=(const allocator<_Other>&) + { + return (*this); + } + + void deallocate(pointer _Ptr, size_type _Count) + { + _Deallocate(_Ptr, _Count, sizeof (_Ty)); + } + + __declspec(allocator) pointer allocate(size_type _Count) + { + return (static_cast(_Allocate(_Count, sizeof (_Ty)))); + } + + __declspec(allocator) pointer allocate(size_type _Count, const void *) + { + return (allocate(_Count)); + } + + template + void construct(_Objty *_Ptr, _Types&&... _Args) + { + ::new ((void *)_Ptr) _Objty(::std:: forward<_Types>(_Args)...); + } + + + template + void destroy(_Uty *_Ptr) + { + _Ptr->~_Uty(); + } + + size_t max_size() const noexcept + { + return ((size_t)(-1) / sizeof (_Ty)); + } + }; + + +template<> + class allocator + { +public: + typedef void _Not_user_specialized; + + typedef void value_type; + + typedef void *pointer; + typedef const void *const_pointer; + + template + struct rebind + { + typedef allocator<_Other> other; + }; + + allocator() noexcept + { + } + + allocator(const allocator&) noexcept + { + } + + template + allocator(const allocator<_Other>&) noexcept + { + } + + template + allocator& operator=(const allocator<_Other>&) + { + return (*this); + } + }; + +template inline + bool operator==(const allocator<_Ty>&, + const allocator<_Other>&) noexcept + { + return (true); + } + +template inline + bool operator!=(const allocator<_Ty>& _Left, + const allocator<_Other>& _Right) noexcept + { + return (false); + } + + +template + struct allocator_traits > + { + typedef allocator<_Ty> _Alloc; + + typedef _Alloc allocator_type; + typedef _Ty value_type; + + typedef value_type *pointer; + typedef const value_type *const_pointer; + typedef void *void_pointer; + typedef const void *const_void_pointer; + + typedef size_t size_type; + typedef ptrdiff_t difference_type; + + typedef false_type propagate_on_container_copy_assignment; + typedef true_type propagate_on_container_move_assignment; + typedef false_type propagate_on_container_swap; + typedef true_type is_always_equal; + + template + using rebind_alloc = allocator<_Other>; + + template + using rebind_traits = allocator_traits >; + + static __declspec(allocator) pointer allocate(_Alloc& _Al, size_type _Count) + { + return (_Al.allocate(_Count)); + } + + static __declspec(allocator) pointer allocate(_Alloc& _Al, size_type _Count, + const_void_pointer _Hint) + { + return (_Al.allocate(_Count, _Hint)); + } + + static void deallocate(_Alloc& _Al, + pointer _Ptr, size_type _Count) + { + _Al.deallocate(_Ptr, _Count); + } + + template + static void construct(_Alloc& _Al, _Objty *_Ptr, + _Types&&... _Args) + { + _Al.construct(_Ptr, ::std:: forward<_Types>(_Args)...); + } + + + template + static void destroy(_Alloc& _Al, _Uty *_Ptr) + { + _Al.destroy(_Ptr); + } + + static size_type max_size(const _Alloc& _Al) noexcept + { + return (_Al.max_size()); + } + + static _Alloc select_on_container_copy_construction( + const _Alloc& _Al) + { + return (_Al); + } + }; + + +template + struct _Wrap_alloc + : public _Alloc + { + typedef _Alloc _Mybase; + typedef allocator_traits<_Alloc> _Mytraits; + + typedef typename _Mytraits::value_type value_type; + + typedef typename _Mytraits::pointer pointer; + typedef typename _Mytraits::const_pointer const_pointer; + typedef typename _Mytraits::void_pointer void_pointer; + typedef typename _Mytraits::const_void_pointer const_void_pointer; + + typedef typename _If::value, + int, value_type>::type& reference; + typedef typename _If::value, + const int, const value_type>::type& const_reference; + + typedef typename _Mytraits::size_type size_type; + typedef typename _Mytraits::difference_type difference_type; + + typedef typename _Mytraits::propagate_on_container_copy_assignment + propagate_on_container_copy_assignment; + typedef typename _Mytraits::propagate_on_container_move_assignment + propagate_on_container_move_assignment; + typedef typename _Mytraits::propagate_on_container_swap + propagate_on_container_swap; + typedef typename _Mytraits::is_always_equal + is_always_equal; + + _Wrap_alloc select_on_container_copy_construction(_Nil = _Nil()) const + { + return (_Mytraits::select_on_container_copy_construction(*this)); + } + + template + struct rebind + { + typedef typename _Mytraits::template rebind_alloc<_Other> + _Other_alloc; + typedef _Wrap_alloc<_Other_alloc> other; + }; + + pointer address(reference _Val) const + { + return (pointer_traits::pointer_to(_Val)); + } + + const_pointer address(const_reference _Val) const + { + return (pointer_traits::pointer_to(_Val)); + } + + _Wrap_alloc() noexcept(is_nothrow_default_constructible<_Alloc>::value) + : _Mybase() + { + } + + _Wrap_alloc(const _Wrap_alloc& _Right) noexcept + : _Mybase(_Right) + { + } + + _Wrap_alloc(_Wrap_alloc&& _Right) noexcept + : _Mybase(::std:: move(_Right)) + { + } + + template + _Wrap_alloc(_Other&& _Right) noexcept + : _Mybase(::std:: forward<_Other>(_Right)) + { + } + + _Wrap_alloc& operator=(const _Wrap_alloc& _Right) + { + _Mybase::operator=(_Right); + return (*this); + } + + _Wrap_alloc& operator=(_Wrap_alloc&& _Right) + { + _Mybase::operator=(::std:: move(_Right)); + return (*this); + } + + template + _Wrap_alloc& operator=(_Other&& _Right) + { + _Mybase::operator=(::std:: forward<_Other>(_Right)); + return (*this); + } + + __declspec(allocator) pointer allocate(size_type _Count) + { + return (_Mybase::allocate(_Count)); + } + + __declspec(allocator) pointer allocate(size_type _Count, + const_void_pointer _Hint, _Nil = _Nil()) + { + return (_Mytraits::allocate(*this, _Count, _Hint)); + } + + void deallocate(pointer _Ptr, size_type _Count) + { + _Mybase::deallocate(_Ptr, _Count); + } + + template + void construct(_Ty *_Ptr, + _Types&&... _Args) + { + _Mytraits::construct(*this, _Ptr, + ::std:: forward<_Types>(_Args)...); + } + + + template + void destroy(_Ty *_Ptr) + { + _Mytraits::destroy(*this, _Ptr); + } + + size_type max_size(_Nil = _Nil()) const noexcept + { + return (_Mytraits::max_size(*this)); + } + }; + +template inline + bool operator==(const _Wrap_alloc<_Ty>& _Left, + const _Wrap_alloc<_Other>& _Right) noexcept + { + return (static_cast(_Left) + == static_cast(_Right)); + } + +template inline + bool operator!=(const _Wrap_alloc<_Ty>& _Left, + const _Wrap_alloc<_Other>& _Right) noexcept + { + return (!(_Left == _Right)); + } + + +template inline + void _Pocca(_Alty& _Left, const _Alty& _Right, true_type) noexcept + { + _Left = _Right; + } + +template inline + void _Pocca(_Alty&, const _Alty&, false_type) noexcept + { + } + +template inline + void _Pocca(_Alty& _Left, const _Alty& _Right) noexcept + { + typename _Alty::propagate_on_container_copy_assignment _Tag; + _Pocca(_Left, _Right, _Tag); + } + + +template inline + void _Pocma(_Alty& _Left, _Alty& _Right, true_type) noexcept + { + _Left = ::std:: move(_Right); + } + +template inline + void _Pocma(_Alty&, _Alty&, false_type) noexcept + { + } + +template inline + void _Pocma(_Alty& _Left, _Alty& _Right) noexcept + { + typename _Alty::propagate_on_container_move_assignment _Tag; + _Pocma(_Left, _Right, _Tag); + } + + +template inline + void _Pocs(_Alty& _Left, _Alty& _Right, true_type) noexcept + { + _Swap_adl(_Left, _Right); + } + +template inline + void _Pocs(_Alty& _Left, _Alty& _Right, false_type) noexcept + { + if (_Left != _Right) + { + + _Debug_message(L"containers incompatible for swap", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0", 1080); + + + + } + } + +template inline + void _Pocs(_Alty& _Left, _Alty& _Right) noexcept + { + typename _Alty::propagate_on_container_swap _Tag; + _Pocs(_Left, _Right, _Tag); + } + + + +template::pointer> inline + void _Destroy_range1(_Ptr _First, _Ptr _Last, _Wrap_alloc<_Alloc>& _Al, false_type) + { + for (; _First != _Last; ++_First) + _Al.destroy(_Unfancy(_First)); + } + +template::pointer> inline + void _Destroy_range1(_Ptr, _Ptr, _Wrap_alloc<_Alloc>&, true_type) + { + + } + +template::pointer> inline + void _Destroy_range(_Ptr _First, _Ptr _Last, _Wrap_alloc<_Alloc>& _Al) + { + + + typedef typename _Alloc::value_type _Val; + _Destroy_range1(_First, _Last, _Al, typename conjunction< + is_trivially_destructible<_Val>, + _Uses_default_destroy<_Alloc, _Val *>>::type()); + } + + + +template inline + void _Destroy_range1(_FwdIt _First, _FwdIt _Last, false_type) + { + for (; _First != _Last; ++_First) + _Destroy(_First); + } + +template inline + void _Destroy_range1(_FwdIt, _FwdIt, true_type) + { + + } + +template inline + void _Destroy_range(_FwdIt _First, _FwdIt _Last) + { + + + _Destroy_range1(_First, _Last, is_trivially_destructible<_Iter_value_t<_FwdIt>>()); + } +} + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic0.h" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +namespace std { + +typedef enum memory_order { + memory_order_relaxed, + memory_order_consume, + memory_order_acquire, + memory_order_release, + memory_order_acq_rel, + memory_order_seq_cst + } memory_order; + +typedef _Uint32t _Uint4_t; +typedef _Uint4_t _Atomic_integral_t; +# 47 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic0.h" 3 +typedef long _Atomic_flag_t; + + + + +typedef _Atomic_integral_t _Atomic_counter_t; + +inline _Atomic_integral_t + _Get_atomic_count(const _Atomic_counter_t& _Counter) + { + return (_Counter); + } + +inline void _Init_atomic_counter(_Atomic_counter_t& _Counter, + _Atomic_integral_t _Value) + { + _Counter = _Value; + } +# 75 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic0.h" 3 +extern "C" { + void __cdecl _Lock_shared_ptr_spin_lock(); + void __cdecl _Unlock_shared_ptr_spin_lock(); +} +} + +#pragma warning(pop) +#pragma pack(pop) +# 1148 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0" 2 3 + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 1 3 +# 18 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 1 3 +# 18 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\setjmp.h" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\setjmp.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\setjmp.h" 2 3 +# 21 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\setjmp.h" 3 +#pragma pack(push, 8) +# 21 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\setjmp.h" 3 + extern "C" { +# 31 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\setjmp.h" 3 + typedef struct __JUMP_BUFFER + { + unsigned long Ebp; + unsigned long Ebx; + unsigned long Edi; + unsigned long Esi; + unsigned long Esp; + unsigned long Eip; + unsigned long Registration; + unsigned long TryLevel; + unsigned long Cookie; + unsigned long UnwindFunc; + unsigned long UnwindData[6]; + } _JUMP_BUFFER; +# 145 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\setjmp.h" 3 + typedef int jmp_buf[16]; +# 157 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\setjmp.h" 3 +int __cdecl _setjmp( + jmp_buf _Buf + ); + + +#pragma warning(push) +#pragma warning(disable: 4987) + __declspec(noreturn) void __cdecl longjmp( + jmp_buf _Buf, + int _Value + ) throw(...); +#pragma warning(pop) + + + + + + + + +} +# 177 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\setjmp.h" 3 +#pragma pack(pop) +# 19 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 2 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 1 3 +# 28 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\wmmintrin.h" 1 3 +# 31 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\wmmintrin.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\nmmintrin.h" 1 3 +# 32 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\nmmintrin.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\smmintrin.h" 1 3 +# 32 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\smmintrin.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\tmmintrin.h" 1 3 +# 25 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\tmmintrin.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\pmmintrin.h" 1 3 +# 34 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\pmmintrin.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\emmintrin.h" 1 3 +# 42 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\emmintrin.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmmintrin.h" 1 3 +# 46 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmmintrin.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\mmintrin.h" 1 3 +# 29 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\mmintrin.h" 3 +extern "C" { + + + + +typedef union __declspec(intrin_type) __declspec(align(8)) __m64 +{ + unsigned __int64 m64_u64; + float m64_f32[2]; + __int8 m64_i8[8]; + __int16 m64_i16[4]; + __int32 m64_i32[2]; + __int64 m64_i64; + unsigned __int8 m64_u8[8]; + unsigned __int16 m64_u16[4]; + unsigned __int32 m64_u32[2]; +} __m64; + + + +void _m_empty(void); +__m64 _m_from_int(int _I); +int _m_to_int(__m64 _M); +__m64 _m_packsswb(__m64 _MM1, __m64 _MM2); +__m64 _m_packssdw(__m64 _MM1, __m64 _MM2); +__m64 _m_packuswb(__m64 _MM1, __m64 _MM2); +__m64 _m_punpckhbw(__m64 _MM1, __m64 _MM2); +__m64 _m_punpckhwd(__m64 _MM1, __m64 _MM2); +__m64 _m_punpckhdq(__m64 _MM1, __m64 _MM2); +__m64 _m_punpcklbw(__m64 _MM1, __m64 _MM2); +__m64 _m_punpcklwd(__m64 _MM1, __m64 _MM2); +__m64 _m_punpckldq(__m64 _MM1, __m64 _MM2); + + +__m64 _m_paddb(__m64 _MM1, __m64 _MM2); +__m64 _m_paddw(__m64 _MM1, __m64 _MM2); +__m64 _m_paddd(__m64 _MM1, __m64 _MM2); +__m64 _m_paddsb(__m64 _MM1, __m64 _MM2); +__m64 _m_paddsw(__m64 _MM1, __m64 _MM2); +__m64 _m_paddusb(__m64 _MM1, __m64 _MM2); +__m64 _m_paddusw(__m64 _MM1, __m64 _MM2); +__m64 _m_psubb(__m64 _MM1, __m64 _MM2); +__m64 _m_psubw(__m64 _MM1, __m64 _MM2); +__m64 _m_psubd(__m64 _MM1, __m64 _MM2); +__m64 _m_psubsb(__m64 _MM1, __m64 _MM2); +__m64 _m_psubsw(__m64 _MM1, __m64 _MM2); +__m64 _m_psubusb(__m64 _MM1, __m64 _MM2); +__m64 _m_psubusw(__m64 _MM1, __m64 _MM2); +__m64 _m_pmaddwd(__m64 _MM1, __m64 _MM2); +__m64 _m_pmulhw(__m64 _MM1, __m64 _MM2); +__m64 _m_pmullw(__m64 _MM1, __m64 _MM2); + + +__m64 _m_psllw(__m64 _M, __m64 _Count); +__m64 _m_psllwi(__m64 _M, int _Count); +__m64 _m_pslld(__m64 _M, __m64 _Count); +__m64 _m_pslldi(__m64 _M, int _Count); +__m64 _m_psllq(__m64 _M, __m64 _Count); +__m64 _m_psllqi(__m64 _M, int _Count); +__m64 _m_psraw(__m64 _M, __m64 _Count); +__m64 _m_psrawi(__m64 _M, int _Count); +__m64 _m_psrad(__m64 _M, __m64 _Count); +__m64 _m_psradi(__m64 _M, int _Count); +__m64 _m_psrlw(__m64 _M, __m64 _Count); +__m64 _m_psrlwi(__m64 _M, int _Count); +__m64 _m_psrld(__m64 _M, __m64 _Count); +__m64 _m_psrldi(__m64 _M, int _Count); +__m64 _m_psrlq(__m64 _M, __m64 _Count); +__m64 _m_psrlqi(__m64 _M, int _Count); + + +__m64 _m_pand(__m64 _MM1, __m64 _MM2); +__m64 _m_pandn(__m64 _MM1, __m64 _MM2); +__m64 _m_por(__m64 _MM1, __m64 _MM2); +__m64 _m_pxor(__m64 _MM1, __m64 _MM2); + + +__m64 _m_pcmpeqb(__m64 _MM1, __m64 _MM2); +__m64 _m_pcmpeqw(__m64 _MM1, __m64 _MM2); +__m64 _m_pcmpeqd(__m64 _MM1, __m64 _MM2); +__m64 _m_pcmpgtb(__m64 _MM1, __m64 _MM2); +__m64 _m_pcmpgtw(__m64 _MM1, __m64 _MM2); +__m64 _m_pcmpgtd(__m64 _MM1, __m64 _MM2); + + +__m64 _mm_setzero_si64(void); +__m64 _mm_set_pi32(int _I1, int _I0); +__m64 _mm_set_pi16(short _S3, short _S2, short _S1, short _S0); +__m64 _mm_set_pi8(char _B7, char _B6, char _B5, char _B4, + char _B3, char _B2, char _B1, char _B0); +__m64 _mm_set1_pi32(int _I); +__m64 _mm_set1_pi16(short _S); +__m64 _mm_set1_pi8(char _B); +__m64 _mm_setr_pi32(int _I1, int _I0); +__m64 _mm_setr_pi16(short _S3, short _S2, short _S1, short _S0); +__m64 _mm_setr_pi8(char _B7, char _B6, char _B5, char _B4, + char _B3, char _B2, char _B1, char _B0); +# 186 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\mmintrin.h" 3 +}; +# 46 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmmintrin.h" 2 3 +# 65 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmmintrin.h" 3 +typedef union __declspec(intrin_type) __declspec(align(16)) __m128 { + float m128_f32[4]; + unsigned __int64 m128_u64[2]; + __int8 m128_i8[16]; + __int16 m128_i16[8]; + __int32 m128_i32[4]; + __int64 m128_i64[2]; + unsigned __int8 m128_u8[16]; + unsigned __int16 m128_u16[8]; + unsigned __int32 m128_u32[4]; + } __m128; +# 188 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmmintrin.h" 3 +extern "C" { + + + + + + + +extern __m128 _mm_add_ss(__m128 _A, __m128 _B); +extern __m128 _mm_add_ps(__m128 _A, __m128 _B); +extern __m128 _mm_sub_ss(__m128 _A, __m128 _B); +extern __m128 _mm_sub_ps(__m128 _A, __m128 _B); +extern __m128 _mm_mul_ss(__m128 _A, __m128 _B); +extern __m128 _mm_mul_ps(__m128 _A, __m128 _B); +extern __m128 _mm_div_ss(__m128 _A, __m128 _B); +extern __m128 _mm_div_ps(__m128 _A, __m128 _B); +extern __m128 _mm_sqrt_ss(__m128 _A); +extern __m128 _mm_sqrt_ps(__m128 _A); +extern __m128 _mm_rcp_ss(__m128 _A); +extern __m128 _mm_rcp_ps(__m128 _A); +extern __m128 _mm_rsqrt_ss(__m128 _A); +extern __m128 _mm_rsqrt_ps(__m128 _A); +extern __m128 _mm_min_ss(__m128 _A, __m128 _B); +extern __m128 _mm_min_ps(__m128 _A, __m128 _B); +extern __m128 _mm_max_ss(__m128 _A, __m128 _B); +extern __m128 _mm_max_ps(__m128 _A, __m128 _B); + + + + + +extern __m128 _mm_and_ps(__m128 _A, __m128 _B); +extern __m128 _mm_andnot_ps(__m128 _A, __m128 _B); +extern __m128 _mm_or_ps(__m128 _A, __m128 _B); +extern __m128 _mm_xor_ps(__m128 _A, __m128 _B); + + + + + +extern __m128 _mm_cmpeq_ss(__m128 _A, __m128 _B); +extern __m128 _mm_cmpeq_ps(__m128 _A, __m128 _B); +extern __m128 _mm_cmplt_ss(__m128 _A, __m128 _B); +extern __m128 _mm_cmplt_ps(__m128 _A, __m128 _B); +extern __m128 _mm_cmple_ss(__m128 _A, __m128 _B); +extern __m128 _mm_cmple_ps(__m128 _A, __m128 _B); +extern __m128 _mm_cmpgt_ss(__m128 _A, __m128 _B); +extern __m128 _mm_cmpgt_ps(__m128 _A, __m128 _B); +extern __m128 _mm_cmpge_ss(__m128 _A, __m128 _B); +extern __m128 _mm_cmpge_ps(__m128 _A, __m128 _B); +extern __m128 _mm_cmpneq_ss(__m128 _A, __m128 _B); +extern __m128 _mm_cmpneq_ps(__m128 _A, __m128 _B); +extern __m128 _mm_cmpnlt_ss(__m128 _A, __m128 _B); +extern __m128 _mm_cmpnlt_ps(__m128 _A, __m128 _B); +extern __m128 _mm_cmpnle_ss(__m128 _A, __m128 _B); +extern __m128 _mm_cmpnle_ps(__m128 _A, __m128 _B); +extern __m128 _mm_cmpngt_ss(__m128 _A, __m128 _B); +extern __m128 _mm_cmpngt_ps(__m128 _A, __m128 _B); +extern __m128 _mm_cmpnge_ss(__m128 _A, __m128 _B); +extern __m128 _mm_cmpnge_ps(__m128 _A, __m128 _B); +extern __m128 _mm_cmpord_ss(__m128 _A, __m128 _B); +extern __m128 _mm_cmpord_ps(__m128 _A, __m128 _B); +extern __m128 _mm_cmpunord_ss(__m128 _A, __m128 _B); +extern __m128 _mm_cmpunord_ps(__m128 _A, __m128 _B); +extern int _mm_comieq_ss(__m128 _A, __m128 _B); +extern int _mm_comilt_ss(__m128 _A, __m128 _B); +extern int _mm_comile_ss(__m128 _A, __m128 _B); +extern int _mm_comigt_ss(__m128 _A, __m128 _B); +extern int _mm_comige_ss(__m128 _A, __m128 _B); +extern int _mm_comineq_ss(__m128 _A, __m128 _B); +extern int _mm_ucomieq_ss(__m128 _A, __m128 _B); +extern int _mm_ucomilt_ss(__m128 _A, __m128 _B); +extern int _mm_ucomile_ss(__m128 _A, __m128 _B); +extern int _mm_ucomigt_ss(__m128 _A, __m128 _B); +extern int _mm_ucomige_ss(__m128 _A, __m128 _B); +extern int _mm_ucomineq_ss(__m128 _A, __m128 _B); + + + + + +extern int _mm_cvt_ss2si(__m128 _A); +extern int _mm_cvtt_ss2si(__m128 _A); +extern __m128 _mm_cvt_si2ss(__m128, int); +extern float _mm_cvtss_f32(__m128 _A); + + + + + +extern __m64 _mm_cvt_ps2pi(__m128 _A); +extern __m64 _mm_cvtt_ps2pi(__m128 _A); +extern __m128 _mm_cvt_pi2ps(__m128, __m64); +# 296 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmmintrin.h" 3 +extern __m128 _mm_shuffle_ps(__m128 _A, __m128 _B, unsigned int _Imm8); +extern __m128 _mm_unpackhi_ps(__m128 _A, __m128 _B); +extern __m128 _mm_unpacklo_ps(__m128 _A, __m128 _B); +extern __m128 _mm_loadh_pi(__m128, __m64 const*); +extern __m128 _mm_movehl_ps(__m128, __m128); +extern __m128 _mm_movelh_ps(__m128, __m128); +extern void _mm_storeh_pi(__m64 *, __m128); +extern __m128 _mm_loadl_pi(__m128, __m64 const*); +extern void _mm_storel_pi(__m64 *, __m128); +extern int _mm_movemask_ps(__m128 _A); + + + + + + +extern int _m_pextrw(__m64, int); +extern __m64 _m_pinsrw(__m64, int, int); +extern __m64 _m_pmaxsw(__m64, __m64); +extern __m64 _m_pmaxub(__m64, __m64); +extern __m64 _m_pminsw(__m64, __m64); +extern __m64 _m_pminub(__m64, __m64); +extern int _m_pmovmskb(__m64); +extern __m64 _m_pmulhuw(__m64, __m64); +extern __m64 _m_pshufw(__m64, int); +extern void _m_maskmovq(__m64, __m64, char *); +extern __m64 _m_pavgb(__m64, __m64); +extern __m64 _m_pavgw(__m64, __m64); +extern __m64 _m_psadbw(__m64, __m64); + + + + + + +extern __m128 _mm_set_ss(float _A); +extern __m128 _mm_set_ps1(float _A); +extern __m128 _mm_set_ps(float _A, float _B, float _C, float _D); +extern __m128 _mm_setr_ps(float _A, float _B, float _C, float _D); +extern __m128 _mm_setzero_ps(void); +extern __m128 _mm_load_ss(float const*_A); +extern __m128 _mm_load_ps1(float const*_A); +extern __m128 _mm_load_ps(float const*_A); +extern __m128 _mm_loadr_ps(float const*_A); +extern __m128 _mm_loadu_ps(float const*_A); +extern void _mm_store_ss(float *_V, __m128 _A); +extern void _mm_store_ps1(float *_V, __m128 _A); +extern void _mm_store_ps(float *_V, __m128 _A); +extern void _mm_storer_ps(float *_V, __m128 _A); +extern void _mm_storeu_ps(float *_V, __m128 _A); +extern void _mm_prefetch(char const*_A, int _Sel); + +extern void _mm_stream_pi(__m64 *, __m64); + +extern void _mm_stream_ps(float *, __m128); +extern __m128 _mm_move_ss(__m128 _A, __m128 _B); + +extern void _mm_sfence(void); +extern unsigned int _mm_getcsr(void); +extern void _mm_setcsr(unsigned int); +# 401 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmmintrin.h" 3 +__inline __m128 _mm_cvtpi16_ps(__m64 _A) +{ + __m128 _Tmp; + __m64 _Ext_val = _m_pcmpgtw(_mm_setzero_si64(), _A); + + _Tmp = _mm_cvt_pi2ps(_mm_setzero_ps(), _m_punpckhwd(_A, _Ext_val)); + return(_mm_cvt_pi2ps(_mm_movelh_ps(_Tmp, _Tmp), + _m_punpcklwd(_A, _Ext_val))); +} +# 420 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmmintrin.h" 3 +__inline __m128 _mm_cvtpu16_ps(__m64 _A) +{ + __m128 _Tmp; + __m64 _Ext_val = _mm_setzero_si64(); + + _Tmp = _mm_cvt_pi2ps(_mm_setzero_ps(), _m_punpckhwd(_A, _Ext_val)); + return(_mm_cvt_pi2ps(_mm_movelh_ps(_Tmp, _Tmp), + _m_punpcklwd(_A, _Ext_val))); +} +# 439 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmmintrin.h" 3 +__inline __m64 _mm_cvtps_pi16(__m128 _A) +{ + return _m_packssdw(_mm_cvt_ps2pi(_A), + _mm_cvt_ps2pi(_mm_movehl_ps(_A, _A))); +} +# 454 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmmintrin.h" 3 +__inline __m128 _mm_cvtpi8_ps(__m64 _A) +{ + __m64 _Ext_val = _m_pcmpgtb(_mm_setzero_si64(), _A); + + return _mm_cvtpi16_ps(_m_punpcklbw(_A, _Ext_val)); +} +# 471 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmmintrin.h" 3 +__inline __m128 _mm_cvtpu8_ps(__m64 _A) +{ + return _mm_cvtpu16_ps(_m_punpcklbw(_A, _mm_setzero_si64())); +} +# 485 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmmintrin.h" 3 +__inline __m64 _mm_cvtps_pi8(__m128 _A) +{ + return _m_packsswb(_mm_cvtps_pi16(_A), _mm_setzero_si64()); +} +# 500 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmmintrin.h" 3 +__inline __m128 _mm_cvtpi32x2_ps(__m64 _A, __m64 _B) +{ + return _mm_movelh_ps(_mm_cvt_pi2ps(_mm_setzero_ps(), _A), + _mm_cvt_pi2ps(_mm_setzero_ps(), _B)); +} + + + + +}; +# 42 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\emmintrin.h" 2 3 + + +typedef union __declspec(intrin_type) __declspec(align(16)) __m128i { + __int8 m128i_i8[16]; + __int16 m128i_i16[8]; + __int32 m128i_i32[4]; + __int64 m128i_i64[2]; + unsigned __int8 m128i_u8[16]; + unsigned __int16 m128i_u16[8]; + unsigned __int32 m128i_u32[4]; + unsigned __int64 m128i_u64[2]; +} __m128i; + +typedef struct __declspec(intrin_type) __declspec(align(16)) __m128d { + double m128d_f64[2]; +} __m128d; +# 69 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\emmintrin.h" 3 +extern "C" { + + + + + + + +extern __m128d _mm_add_sd(__m128d _A, __m128d _B); +extern __m128d _mm_add_pd(__m128d _A, __m128d _B); +extern __m128d _mm_sub_sd(__m128d _A, __m128d _B); +extern __m128d _mm_sub_pd(__m128d _A, __m128d _B); +extern __m128d _mm_mul_sd(__m128d _A, __m128d _B); +extern __m128d _mm_mul_pd(__m128d _A, __m128d _B); +extern __m128d _mm_sqrt_sd(__m128d _A, __m128d _B); +extern __m128d _mm_sqrt_pd(__m128d _A); +extern __m128d _mm_div_sd(__m128d _A, __m128d _B); +extern __m128d _mm_div_pd(__m128d _A, __m128d _B); +extern __m128d _mm_min_sd(__m128d _A, __m128d _B); +extern __m128d _mm_min_pd(__m128d _A, __m128d _B); +extern __m128d _mm_max_sd(__m128d _A, __m128d _B); +extern __m128d _mm_max_pd(__m128d _A, __m128d _B); + + + + + +extern __m128d _mm_and_pd(__m128d _A, __m128d _B); +extern __m128d _mm_andnot_pd(__m128d _A, __m128d _B); +extern __m128d _mm_or_pd(__m128d _A, __m128d _B); +extern __m128d _mm_xor_pd(__m128d _A, __m128d _B); + + + + + +extern __m128d _mm_cmpeq_sd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpeq_pd(__m128d _A, __m128d _B); +extern __m128d _mm_cmplt_sd(__m128d _A, __m128d _B); +extern __m128d _mm_cmplt_pd(__m128d _A, __m128d _B); +extern __m128d _mm_cmple_sd(__m128d _A, __m128d _B); +extern __m128d _mm_cmple_pd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpgt_sd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpgt_pd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpge_sd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpge_pd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpneq_sd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpneq_pd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpnlt_sd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpnlt_pd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpnle_sd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpnle_pd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpngt_sd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpngt_pd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpnge_sd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpnge_pd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpord_pd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpord_sd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpunord_pd(__m128d _A, __m128d _B); +extern __m128d _mm_cmpunord_sd(__m128d _A, __m128d _B); +extern int _mm_comieq_sd(__m128d _A, __m128d _B); +extern int _mm_comilt_sd(__m128d _A, __m128d _B); +extern int _mm_comile_sd(__m128d _A, __m128d _B); +extern int _mm_comigt_sd(__m128d _A, __m128d _B); +extern int _mm_comige_sd(__m128d _A, __m128d _B); +extern int _mm_comineq_sd(__m128d _A, __m128d _B); +extern int _mm_ucomieq_sd(__m128d _A, __m128d _B); +extern int _mm_ucomilt_sd(__m128d _A, __m128d _B); +extern int _mm_ucomile_sd(__m128d _A, __m128d _B); +extern int _mm_ucomigt_sd(__m128d _A, __m128d _B); +extern int _mm_ucomige_sd(__m128d _A, __m128d _B); +extern int _mm_ucomineq_sd(__m128d _A, __m128d _B); + + + + + +extern __m128d _mm_cvtepi32_pd(__m128i _A); +extern __m128i _mm_cvtpd_epi32(__m128d _A); +extern __m128i _mm_cvttpd_epi32(__m128d _A); +extern __m128 _mm_cvtepi32_ps(__m128i _A); +extern __m128i _mm_cvtps_epi32(__m128 _A); +extern __m128i _mm_cvttps_epi32(__m128 _A); +extern __m128 _mm_cvtpd_ps(__m128d _A); +extern __m128d _mm_cvtps_pd(__m128 _A); +extern __m128 _mm_cvtsd_ss(__m128 _A, __m128d _B); +extern __m128d _mm_cvtss_sd(__m128d _A, __m128 _B); + +extern int _mm_cvtsd_si32(__m128d _A); +extern int _mm_cvttsd_si32(__m128d _A); +extern __m128d _mm_cvtsi32_sd(__m128d _A, int _B); + + +extern __m64 _mm_cvtpd_pi32(__m128d _A); +extern __m64 _mm_cvttpd_pi32(__m128d _A); +extern __m128d _mm_cvtpi32_pd(__m64 _A); + + + + + + +extern __m128d _mm_unpackhi_pd(__m128d _A, __m128d _B); +extern __m128d _mm_unpacklo_pd(__m128d _A, __m128d _B); +extern int _mm_movemask_pd(__m128d _A); +extern __m128d _mm_shuffle_pd(__m128d _A, __m128d _B, int _I); + + + + + +extern __m128d _mm_load_pd(double const*_Dp); +extern __m128d _mm_load1_pd(double const*_Dp); +extern __m128d _mm_loadr_pd(double const*_Dp); +extern __m128d _mm_loadu_pd(double const*_Dp); +extern __m128d _mm_load_sd(double const*_Dp); +extern __m128d _mm_loadh_pd(__m128d _A, double const*_Dp); +extern __m128d _mm_loadl_pd(__m128d _A, double const*_Dp); + + + + + +extern __m128d _mm_set_sd(double _W); +extern __m128d _mm_set1_pd(double _A); +extern __m128d _mm_set_pd(double _Z, double _Y); +extern __m128d _mm_setr_pd(double _Y, double _Z); +extern __m128d _mm_setzero_pd(void); +extern __m128d _mm_move_sd(__m128d _A, __m128d _B); + + + + + +extern void _mm_store_sd(double *_Dp, __m128d _A); +extern void _mm_store1_pd(double *_Dp, __m128d _A); +extern void _mm_store_pd(double *_Dp, __m128d _A); +extern void _mm_storeu_pd(double *_Dp, __m128d _A); +extern void _mm_storer_pd(double *_Dp, __m128d _A); +extern void _mm_storeh_pd(double *_Dp, __m128d _A); +extern void _mm_storel_pd(double *_Dp, __m128d _A); + + + + + +extern __m128i _mm_add_epi8(__m128i _A, __m128i _B); +extern __m128i _mm_add_epi16(__m128i _A, __m128i _B); +extern __m128i _mm_add_epi32(__m128i _A, __m128i _B); + +extern __m64 _mm_add_si64(__m64 _A, __m64 _B); + +extern __m128i _mm_add_epi64(__m128i _A, __m128i _B); +extern __m128i _mm_adds_epi8(__m128i _A, __m128i _B); +extern __m128i _mm_adds_epi16(__m128i _A, __m128i _B); +extern __m128i _mm_adds_epu8(__m128i _A, __m128i _B); +extern __m128i _mm_adds_epu16(__m128i _A, __m128i _B); +extern __m128i _mm_avg_epu8(__m128i _A, __m128i _B); +extern __m128i _mm_avg_epu16(__m128i _A, __m128i _B); +extern __m128i _mm_madd_epi16(__m128i _A, __m128i _B); +extern __m128i _mm_max_epi16(__m128i _A, __m128i _B); +extern __m128i _mm_max_epu8(__m128i _A, __m128i _B); +extern __m128i _mm_min_epi16(__m128i _A, __m128i _B); +extern __m128i _mm_min_epu8(__m128i _A, __m128i _B); +extern __m128i _mm_mulhi_epi16(__m128i _A, __m128i _B); +extern __m128i _mm_mulhi_epu16(__m128i _A, __m128i _B); +extern __m128i _mm_mullo_epi16(__m128i _A, __m128i _B); + +extern __m64 _mm_mul_su32(__m64 _A, __m64 _B); + +extern __m128i _mm_mul_epu32(__m128i _A, __m128i _B); +extern __m128i _mm_sad_epu8(__m128i _A, __m128i _B); +extern __m128i _mm_sub_epi8(__m128i _A, __m128i _B); +extern __m128i _mm_sub_epi16(__m128i _A, __m128i _B); +extern __m128i _mm_sub_epi32(__m128i _A, __m128i _B); + +extern __m64 _mm_sub_si64(__m64 _A, __m64 _B); + +extern __m128i _mm_sub_epi64(__m128i _A, __m128i _B); +extern __m128i _mm_subs_epi8(__m128i _A, __m128i _B); +extern __m128i _mm_subs_epi16(__m128i _A, __m128i _B); +extern __m128i _mm_subs_epu8(__m128i _A, __m128i _B); +extern __m128i _mm_subs_epu16(__m128i _A, __m128i _B); + + + + + +extern __m128i _mm_and_si128(__m128i _A, __m128i _B); +extern __m128i _mm_andnot_si128(__m128i _A, __m128i _B); +extern __m128i _mm_or_si128(__m128i _A, __m128i _B); +extern __m128i _mm_xor_si128(__m128i _A, __m128i _B); + + + + + +extern __m128i _mm_slli_si128(__m128i _A, int _Imm); +extern __m128i _mm_slli_epi16(__m128i _A, int _Count); +extern __m128i _mm_sll_epi16(__m128i _A, __m128i _Count); +extern __m128i _mm_slli_epi32(__m128i _A, int _Count); +extern __m128i _mm_sll_epi32(__m128i _A, __m128i _Count); +extern __m128i _mm_slli_epi64(__m128i _A, int _Count); +extern __m128i _mm_sll_epi64(__m128i _A, __m128i _Count); +extern __m128i _mm_srai_epi16(__m128i _A, int _Count); +extern __m128i _mm_sra_epi16(__m128i _A, __m128i _Count); +extern __m128i _mm_srai_epi32(__m128i _A, int _Count); +extern __m128i _mm_sra_epi32(__m128i _A, __m128i _Count); +extern __m128i _mm_srli_si128(__m128i _A, int _Imm); +extern __m128i _mm_srli_epi16(__m128i _A, int _Count); +extern __m128i _mm_srl_epi16(__m128i _A, __m128i _Count); +extern __m128i _mm_srli_epi32(__m128i _A, int _Count); +extern __m128i _mm_srl_epi32(__m128i _A, __m128i _Count); +extern __m128i _mm_srli_epi64(__m128i _A, int _Count); +extern __m128i _mm_srl_epi64(__m128i _A, __m128i _Count); + + + + + +extern __m128i _mm_cmpeq_epi8(__m128i _A, __m128i _B); +extern __m128i _mm_cmpeq_epi16(__m128i _A, __m128i _B); +extern __m128i _mm_cmpeq_epi32(__m128i _A, __m128i _B); +extern __m128i _mm_cmpgt_epi8(__m128i _A, __m128i _B); +extern __m128i _mm_cmpgt_epi16(__m128i _A, __m128i _B); +extern __m128i _mm_cmpgt_epi32(__m128i _A, __m128i _B); +extern __m128i _mm_cmplt_epi8(__m128i _A, __m128i _B); +extern __m128i _mm_cmplt_epi16(__m128i _A, __m128i _B); +extern __m128i _mm_cmplt_epi32(__m128i _A, __m128i _B); + + + + + +extern __m128i _mm_cvtsi32_si128(int _A); +extern int _mm_cvtsi128_si32(__m128i _A); + + + + + +extern __m128i _mm_packs_epi16(__m128i _A, __m128i _B); +extern __m128i _mm_packs_epi32(__m128i _A, __m128i _B); +extern __m128i _mm_packus_epi16(__m128i _A, __m128i _B); +extern int _mm_extract_epi16(__m128i _A, int _Imm); +extern __m128i _mm_insert_epi16(__m128i _A, int _B, int _Imm); +extern int _mm_movemask_epi8(__m128i _A); +extern __m128i _mm_shuffle_epi32(__m128i _A, int _Imm); +extern __m128i _mm_shufflehi_epi16(__m128i _A, int _Imm); +extern __m128i _mm_shufflelo_epi16(__m128i _A, int _Imm); +extern __m128i _mm_unpackhi_epi8(__m128i _A, __m128i _B); +extern __m128i _mm_unpackhi_epi16(__m128i _A, __m128i _B); +extern __m128i _mm_unpackhi_epi32(__m128i _A, __m128i _B); +extern __m128i _mm_unpackhi_epi64(__m128i _A, __m128i _B); +extern __m128i _mm_unpacklo_epi8(__m128i _A, __m128i _B); +extern __m128i _mm_unpacklo_epi16(__m128i _A, __m128i _B); +extern __m128i _mm_unpacklo_epi32(__m128i _A, __m128i _B); +extern __m128i _mm_unpacklo_epi64(__m128i _A, __m128i _B); + + + + + +extern __m128i _mm_load_si128(__m128i const*_P); +extern __m128i _mm_loadu_si128(__m128i const*_P); +extern __m128i _mm_loadl_epi64(__m128i const*_P); + + + + + + +extern __m128i _mm_set_epi64(__m64 _Q1, __m64 _Q0); + +extern __m128i _mm_set_epi64x(__int64 _I1,__int64 _I0); +extern __m128i _mm_set_epi32(int _I3, int _I2, int _I1, int _I0); +extern __m128i _mm_set_epi16(short _W7, short _W6, short _W5, short _W4, + short _W3, short _W2, short _W1, short _W0); +extern __m128i _mm_set_epi8(char _B15, char _B14, char _B13, char _B12, + char _B11, char _B10, char _B9, char _B8, + char _B7, char _B6, char _B5, char _B4, + char _B3, char _B2, char _B1, char _B0); + +extern __m128i _mm_set1_epi64(__m64 _Q); + +extern __m128i _mm_set1_epi64x(__int64 i); +extern __m128i _mm_set1_epi32(int _I); +extern __m128i _mm_set1_epi16(short _W); +extern __m128i _mm_set1_epi8(char _B); +extern __m128i _mm_setl_epi64(__m128i _Q); + +extern __m128i _mm_setr_epi64(__m64 _Q0, __m64 _Q1); + +extern __m128i _mm_setr_epi32(int _I0, int _I1, int _I2, int _I3); +extern __m128i _mm_setr_epi16(short _W0, short _W1, short _W2, short _W3, + short _W4, short _W5, short _W6, short _W7); +extern __m128i _mm_setr_epi8(char _B15, char _B14, char _B13, char _B12, + char _B11, char _B10, char _B9, char _B8, + char _B7, char _B6, char _B5, char _B4, + char _B3, char _B2, char _B1, char _B0); +extern __m128i _mm_setzero_si128(void); + + + + + +extern void _mm_store_si128(__m128i *_P, __m128i _B); +extern void _mm_storeu_si128(__m128i *_P, __m128i _B); +extern void _mm_storel_epi64(__m128i *_P, __m128i _Q); +extern void _mm_maskmoveu_si128(__m128i _D, __m128i _N, char *_P); + + + + + +extern __m128i _mm_move_epi64(__m128i _Q); + +extern __m128i _mm_movpi64_epi64(__m64 _Q); +extern __m64 _mm_movepi64_pi64(__m128i _Q); + + + + + + +extern void _mm_stream_pd(double *_Dp, __m128d _A); +extern void _mm_stream_si128(__m128i *_P, __m128i _A); +extern void _mm_clflush(void const*_P); +extern void _mm_lfence(void); +extern void _mm_mfence(void); +extern void _mm_stream_si32(int *_P, int _I); +extern void _mm_pause(void); + + + + + +extern double _mm_cvtsd_f64(__m128d _A); + + + + + + + +extern __m128 _mm_castpd_ps(__m128d); +extern __m128i _mm_castpd_si128(__m128d); +extern __m128d _mm_castps_pd(__m128); +extern __m128i _mm_castps_si128(__m128); +extern __m128 _mm_castsi128_ps(__m128i); +extern __m128d _mm_castsi128_pd(__m128i); +# 436 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\emmintrin.h" 3 +}; +# 34 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\pmmintrin.h" 2 3 +# 58 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\pmmintrin.h" 3 +extern "C" { + + + + + + + +extern __m128 _mm_addsub_ps(__m128 , __m128 ); +extern __m128 _mm_hadd_ps(__m128 , __m128 ); +extern __m128 _mm_hsub_ps(__m128 , __m128 ); +extern __m128 _mm_movehdup_ps(__m128 ); +extern __m128 _mm_moveldup_ps(__m128 ); + + + + + +extern __m128d _mm_addsub_pd(__m128d , __m128d ); +extern __m128d _mm_hadd_pd(__m128d , __m128d ); +extern __m128d _mm_hsub_pd(__m128d , __m128d ); +extern __m128d _mm_loaddup_pd(double const * ); +extern __m128d _mm_movedup_pd(__m128d ); + + + + +extern __m128i _mm_lddqu_si128(__m128i const * ); + + + + + + + +extern void _mm_monitor(void const * , unsigned , unsigned ); + + + + +extern void _mm_mwait(unsigned , unsigned ); + + +}; +# 25 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\tmmintrin.h" 2 3 +# 35 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\tmmintrin.h" 3 +extern "C" { +# 45 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\tmmintrin.h" 3 + extern __m128i _mm_hadd_epi16 (__m128i, __m128i); + extern __m128i _mm_hadd_epi32 (__m128i, __m128i); + extern __m128i _mm_hadds_epi16 (__m128i, __m128i); + + + extern __m64 _mm_hadd_pi16 (__m64, __m64); + extern __m64 _mm_hadd_pi32 (__m64, __m64); + extern __m64 _mm_hadds_pi16 (__m64, __m64); +# 63 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\tmmintrin.h" 3 + extern __m128i _mm_hsub_epi16 (__m128i, __m128i); + extern __m128i _mm_hsub_epi32 (__m128i, __m128i); + extern __m128i _mm_hsubs_epi16 (__m128i, __m128i); + + + extern __m64 _mm_hsub_pi16 (__m64, __m64); + extern __m64 _mm_hsub_pi32 (__m64, __m64); + extern __m64 _mm_hsubs_pi16 (__m64, __m64); +# 82 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\tmmintrin.h" 3 + extern __m128i _mm_maddubs_epi16 (__m128i, __m128i); + + + extern __m64 _mm_maddubs_pi16 (__m64, __m64); + + + + + + extern __m128i _mm_mulhrs_epi16 (__m128i, __m128i); + + + extern __m64 _mm_mulhrs_pi16 (__m64, __m64); + + + + + + extern __m128i _mm_shuffle_epi8 (__m128i, __m128i); + + + extern __m64 _mm_shuffle_pi8 (__m64, __m64); + + + + + + extern __m128i _mm_sign_epi8 (__m128i, __m128i); + extern __m128i _mm_sign_epi16 (__m128i, __m128i); + extern __m128i _mm_sign_epi32 (__m128i, __m128i); + + + extern __m64 _mm_sign_pi8 (__m64, __m64); + extern __m64 _mm_sign_pi16 (__m64, __m64); + extern __m64 _mm_sign_pi32 (__m64, __m64); + + + + + + extern __m128i _mm_alignr_epi8 (__m128i, __m128i, int); + + + extern __m64 _mm_alignr_pi8 (__m64, __m64, int); + + + + + + extern __m128i _mm_abs_epi8 (__m128i); + extern __m128i _mm_abs_epi16 (__m128i); + extern __m128i _mm_abs_epi32 (__m128i); + + + extern __m64 _mm_abs_pi8 (__m64); + extern __m64 _mm_abs_pi16 (__m64); + extern __m64 _mm_abs_pi32 (__m64); + + + +}; +# 32 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\smmintrin.h" 2 3 +# 83 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\smmintrin.h" 3 +extern "C" { + + + + + + extern __m128i _mm_blend_epi16 (__m128i, __m128i, const int ); + extern __m128i _mm_blendv_epi8 (__m128i, __m128i, __m128i mask); + + + + + extern __m128 _mm_blend_ps (__m128, __m128, const int ); + extern __m128 _mm_blendv_ps(__m128, __m128, __m128 ); + + + + + extern __m128d _mm_blend_pd (__m128d, __m128d, const int ); + extern __m128d _mm_blendv_pd(__m128d, __m128d, __m128d ); + + + + + extern __m128 _mm_dp_ps(__m128, __m128, const int ); + extern __m128d _mm_dp_pd(__m128d, __m128d, const int ); + + + + + extern __m128i _mm_cmpeq_epi64(__m128i, __m128i); + + + + extern __m128i _mm_min_epi8 (__m128i, __m128i); + extern __m128i _mm_max_epi8 (__m128i, __m128i); + + extern __m128i _mm_min_epu16(__m128i, __m128i); + extern __m128i _mm_max_epu16(__m128i, __m128i); + + extern __m128i _mm_min_epi32(__m128i, __m128i); + extern __m128i _mm_max_epi32(__m128i, __m128i); + extern __m128i _mm_min_epu32(__m128i, __m128i); + extern __m128i _mm_max_epu32(__m128i, __m128i); + + + + + extern __m128i _mm_mullo_epi32(__m128i, __m128i); + + + + + extern __m128i _mm_mul_epi32(__m128i, __m128i); + + + + + extern int _mm_testz_si128(__m128i , __m128i ); + + + + + extern int _mm_testc_si128(__m128i , __m128i ); + + + + + + extern int _mm_testnzc_si128(__m128i , __m128i ); + + + + + + + + extern __m128 _mm_insert_ps(__m128 , __m128 , const int ); +# 170 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\smmintrin.h" 3 + extern int _mm_extract_ps(__m128 , const int ); +# 188 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\smmintrin.h" 3 + extern __m128i _mm_insert_epi8 (__m128i , int , const int ); + extern __m128i _mm_insert_epi32(__m128i , int , const int ); + + + + + + + + extern int _mm_extract_epi8 (__m128i , const int ); + extern int _mm_extract_epi32(__m128i , const int ); +# 207 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\smmintrin.h" 3 + extern __m128i _mm_minpos_epu16(__m128i); + + + + extern __m128d _mm_round_pd(__m128d , int ); + extern __m128d _mm_round_sd(__m128d , __m128d , int ); + + + + extern __m128 _mm_round_ps(__m128 , int ); + extern __m128 _mm_round_ss(__m128 , __m128 , int ); + + + + extern __m128i _mm_cvtepi8_epi32 (__m128i); + extern __m128i _mm_cvtepi16_epi32(__m128i); + extern __m128i _mm_cvtepi8_epi64 (__m128i); + extern __m128i _mm_cvtepi32_epi64(__m128i); + extern __m128i _mm_cvtepi16_epi64(__m128i); + extern __m128i _mm_cvtepi8_epi16 (__m128i); + + + + extern __m128i _mm_cvtepu8_epi32 (__m128i); + extern __m128i _mm_cvtepu16_epi32(__m128i); + extern __m128i _mm_cvtepu8_epi64 (__m128i); + extern __m128i _mm_cvtepu32_epi64(__m128i); + extern __m128i _mm_cvtepu16_epi64(__m128i); + extern __m128i _mm_cvtepu8_epi16 (__m128i); + + + + + + extern __m128i _mm_packus_epi32(__m128i, __m128i); + + + + + + extern __m128i _mm_mpsadbw_epu8(__m128i , __m128i , const int ); + + + + + + extern __m128i _mm_stream_load_si128(const __m128i*); + + +}; +# 32 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\nmmintrin.h" 2 3 + + + + +extern "C" { +# 83 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\nmmintrin.h" 3 + extern __m128i _mm_cmpistrm (__m128i , __m128i , const int ); + extern int _mm_cmpistri (__m128i , __m128i , const int ); + + extern __m128i _mm_cmpestrm (__m128i , int , __m128i , int , const int ); + extern int _mm_cmpestri (__m128i , int , __m128i , int , const int ); + + + + + + extern int _mm_cmpistrz (__m128i , __m128i , const int ); + extern int _mm_cmpistrc (__m128i , __m128i , const int ); + extern int _mm_cmpistrs (__m128i , __m128i , const int ); + extern int _mm_cmpistro (__m128i , __m128i , const int ); + extern int _mm_cmpistra (__m128i , __m128i , const int ); + + extern int _mm_cmpestrz (__m128i , int , __m128i , int , const int ); + extern int _mm_cmpestrc (__m128i , int , __m128i , int , const int ); + extern int _mm_cmpestrs (__m128i , int , __m128i , int , const int ); + extern int _mm_cmpestro (__m128i , int , __m128i , int , const int ); + extern int _mm_cmpestra (__m128i , int , __m128i , int , const int ); + + + + + + + extern __m128i _mm_cmpgt_epi64(__m128i , __m128i ); + + + + + + extern int _mm_popcnt_u32(unsigned int ); +# 126 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\nmmintrin.h" 3 + extern unsigned int _mm_crc32_u8 (unsigned int , unsigned char ); + extern unsigned int _mm_crc32_u16(unsigned int , unsigned short ); + extern unsigned int _mm_crc32_u32(unsigned int , unsigned int ); + + + + + + +}; +# 31 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\wmmintrin.h" 2 3 + + + + +extern "C" { + + + + + + +extern __m128i _mm_aesdec_si128(__m128i , __m128i ); + + + + + +extern __m128i _mm_aesdeclast_si128(__m128i , __m128i ); + + + + + +extern __m128i _mm_aesenc_si128(__m128i , __m128i ); + + + + + +extern __m128i _mm_aesenclast_si128(__m128i , __m128i ); + + + + + +extern __m128i _mm_aesimc_si128(__m128i ); + + + + + + +extern __m128i _mm_aeskeygenassist_si128(__m128i , const int ); + + + + + + + +extern __m128i _mm_clmulepi64_si128(__m128i , __m128i , + const int ); + + + +}; +# 28 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 2 3 + + + +extern "C" { + + + + + +typedef union __declspec(intrin_type) __declspec(align(32)) __m256 { + float m256_f32[8]; +} __m256; + +typedef struct __declspec(intrin_type) __declspec(align(32)) __m256d { + double m256d_f64[4]; +} __m256d; + +typedef union __declspec(intrin_type) __declspec(align(32)) __m256i { + __int8 m256i_i8[32]; + __int16 m256i_i16[16]; + __int32 m256i_i32[8]; + __int64 m256i_i64[4]; + unsigned __int8 m256i_u8[32]; + unsigned __int16 m256i_u16[16]; + unsigned __int32 m256i_u32[8]; + unsigned __int64 m256i_u64[4]; +} __m256i; +# 106 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_add_pd(__m256d, __m256d); +# 116 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_add_ps(__m256, __m256); +# 129 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_addsub_pd(__m256d, __m256d); +# 142 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_addsub_ps(__m256, __m256); +# 151 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_and_pd(__m256d, __m256d); +# 160 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_and_ps(__m256, __m256); +# 169 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_andnot_pd(__m256d, __m256d); +# 178 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_andnot_ps(__m256, __m256); +# 192 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_blend_pd(__m256d, __m256d, const int); +# 206 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_blend_ps(__m256, __m256, const int); +# 216 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_blendv_pd(__m256d, __m256d, __m256d); +# 226 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_blendv_ps(__m256, __m256, __m256); +# 235 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_div_pd(__m256d, __m256d); +# 244 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_div_ps(__m256, __m256); +# 259 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_dp_ps(__m256, __m256, const int); +# 268 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_hadd_pd(__m256d, __m256d); +# 277 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_hadd_ps(__m256, __m256); +# 286 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_hsub_pd(__m256d, __m256d); +# 295 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_hsub_ps(__m256, __m256); +# 304 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_max_pd(__m256d, __m256d); +# 313 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_max_ps(__m256, __m256); +# 322 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_min_pd(__m256d, __m256d); +# 331 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_min_ps(__m256, __m256); +# 341 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_mul_pd(__m256d, __m256d); +# 351 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_mul_ps(__m256, __m256); +# 360 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_or_pd(__m256d, __m256d); +# 369 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_or_ps(__m256, __m256); +# 381 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_shuffle_pd(__m256d, __m256d, const int); +# 394 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_shuffle_ps(__m256, __m256, const int); +# 403 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_sub_pd(__m256d, __m256d); +# 413 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_sub_ps(__m256, __m256); +# 422 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_xor_pd(__m256d, __m256d); +# 431 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_xor_ps(__m256, __m256); +# 447 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m128d __cdecl _mm_cmp_pd(__m128d, __m128d, const int); +extern __m256d __cdecl _mm256_cmp_pd(__m256d, __m256d, const int); +# 464 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m128 __cdecl _mm_cmp_ps(__m128, __m128, const int); +extern __m256 __cdecl _mm256_cmp_ps(__m256, __m256, const int); +# 478 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m128d __cdecl _mm_cmp_sd(__m128d, __m128d, const int); + + + + + +extern int __cdecl _mm_comi_sd(__m128d, __m128d, const int); +# 497 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m128 __cdecl _mm_cmp_ss(__m128, __m128, const int); + + + + + +extern int __cdecl _mm_comi_ss(__m128, __m128, const int); +# 512 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_cvtepi32_pd(__m128i); +# 521 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_cvtepi32_ps(__m256i); +# 531 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m128 __cdecl _mm256_cvtpd_ps(__m256d); +# 540 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256i __cdecl _mm256_cvtps_epi32(__m256); +# 550 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_cvtps_pd(__m128); +# 563 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m128i __cdecl _mm256_cvttpd_epi32(__m256d); +# 572 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m128i __cdecl _mm256_cvtpd_epi32(__m256d); +# 585 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256i __cdecl _mm256_cvttps_epi32(__m256); + + + + + + + +extern __m128 __cdecl _mm256_extractf128_ps(__m256, const int); +extern __m128d __cdecl _mm256_extractf128_pd(__m256d, const int); +extern __m128i __cdecl _mm256_extractf128_si256(__m256i, const int); + + + + + + +extern void __cdecl _mm256_zeroall(void); + + + + + + + +extern void __cdecl _mm256_zeroupper(void); +# 620 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_permutevar_ps(__m256, __m256i); +extern __m128 __cdecl _mm_permutevar_ps(__m128, __m128i); +# 631 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_permute_ps(__m256, int); +extern __m128 __cdecl _mm_permute_ps(__m128, int); +# 642 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_permutevar_pd(__m256d, __m256i); +extern __m128d __cdecl _mm_permutevar_pd(__m128d, __m128i); +# 653 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_permute_pd(__m256d, int); +extern __m128d __cdecl _mm_permute_pd(__m128d, int); +# 663 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_permute2f128_ps(__m256, __m256, int); +extern __m256d __cdecl _mm256_permute2f128_pd(__m256d, __m256d, int); +extern __m256i __cdecl _mm256_permute2f128_si256(__m256i, __m256i, int); +# 674 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_broadcast_ss(float const *); +extern __m128 __cdecl _mm_broadcast_ss(float const *); + + + + + + + +extern __m256d __cdecl _mm256_broadcast_sd(double const *); + + + + + + + +extern __m256 __cdecl _mm256_broadcast_ps(__m128 const *); +extern __m256d __cdecl _mm256_broadcast_pd(__m128d const *); +# 702 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_insertf128_ps(__m256, __m128, int); +extern __m256d __cdecl _mm256_insertf128_pd(__m256d, __m128d, int); +extern __m256i __cdecl _mm256_insertf128_si256(__m256i, __m128i, int); +# 713 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_load_pd(double const *); +extern void __cdecl _mm256_store_pd(double *, __m256d); +# 723 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_load_ps(float const *); +extern void __cdecl _mm256_store_ps(float *, __m256); +# 733 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_loadu_pd(double const *); +extern void __cdecl _mm256_storeu_pd(double *, __m256d); +# 743 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_loadu_ps(float const *); +extern void __cdecl _mm256_storeu_ps(float *, __m256); +# 753 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256i __cdecl _mm256_load_si256(__m256i const *); +extern void __cdecl _mm256_store_si256(__m256i *, __m256i); +# 763 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256i __cdecl _mm256_loadu_si256(__m256i const *); +extern void __cdecl _mm256_storeu_si256(__m256i *, __m256i); +# 836 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_maskload_pd(double const *, __m256i); +extern void __cdecl _mm256_maskstore_pd(double *, __m256i, __m256d); +extern __m128d __cdecl _mm_maskload_pd(double const *, __m128i); +extern void __cdecl _mm_maskstore_pd(double *, __m128i, __m128d); +# 859 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_maskload_ps(float const *, __m256i); +extern void __cdecl _mm256_maskstore_ps(float *, __m256i, __m256); +extern __m128 __cdecl _mm_maskload_ps(float const *, __m128i); +extern void __cdecl _mm_maskstore_ps(float *, __m128i, __m128); + + + + + + + +extern __m256 __cdecl _mm256_movehdup_ps(__m256); + + + + + + + +extern __m256 __cdecl _mm256_moveldup_ps(__m256); + + + + + + + +extern __m256d __cdecl _mm256_movedup_pd(__m256d); +# 896 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256i __cdecl _mm256_lddqu_si256(__m256i const *); + + + + + + + +extern void __cdecl _mm256_stream_si256(__m256i *, __m256i); +# 913 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern void __cdecl _mm256_stream_pd(double *, __m256d); +# 922 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern void __cdecl _mm256_stream_ps(float *, __m256); +# 932 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_rcp_ps(__m256); +# 943 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_rsqrt_ps(__m256); +# 952 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_sqrt_pd(__m256d); +# 961 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_sqrt_ps(__m256); +# 974 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_round_pd(__m256d, int); +# 989 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256 __cdecl _mm256_round_ps(__m256, int); +# 999 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_unpackhi_pd(__m256d, __m256d); + + + + + + + +extern __m256 __cdecl _mm256_unpackhi_ps(__m256, __m256); + + + + + + + +extern __m256d __cdecl _mm256_unpacklo_pd(__m256d, __m256d); + + + + + + + +extern __m256 __cdecl _mm256_unpacklo_ps(__m256, __m256); +# 1033 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern int __cdecl _mm256_testz_si256(__m256i, __m256i); + + + +extern int __cdecl _mm256_testc_si256(__m256i, __m256i); + + + +extern int __cdecl _mm256_testnzc_si256(__m256i, __m256i); +# 1056 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern int __cdecl _mm256_testz_pd(__m256d, __m256d); +extern int __cdecl _mm256_testc_pd(__m256d, __m256d); +extern int __cdecl _mm256_testnzc_pd(__m256d, __m256d); +extern int __cdecl _mm_testz_pd(__m128d, __m128d); +extern int __cdecl _mm_testc_pd(__m128d, __m128d); +extern int __cdecl _mm_testnzc_pd(__m128d, __m128d); +# 1074 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern int __cdecl _mm256_testz_ps(__m256, __m256); +extern int __cdecl _mm256_testc_ps(__m256, __m256); +extern int __cdecl _mm256_testnzc_ps(__m256, __m256); +extern int __cdecl _mm_testz_ps(__m128, __m128); +extern int __cdecl _mm_testc_ps(__m128, __m128); +extern int __cdecl _mm_testnzc_ps(__m128, __m128); +# 1088 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern int __cdecl _mm256_movemask_pd(__m256d); +# 1097 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern int __cdecl _mm256_movemask_ps(__m256); + + + + +extern __m256d __cdecl _mm256_setzero_pd(void); +extern __m256 __cdecl _mm256_setzero_ps(void); +extern __m256i __cdecl _mm256_setzero_si256(void); + + + + +extern __m256d __cdecl _mm256_set_pd(double, double, double, double); +extern __m256 __cdecl _mm256_set_ps(float, float, float, float, + float, float, float, float); +extern __m256i __cdecl _mm256_set_epi8(char, char, char, char, + char, char, char, char, + char, char, char, char, + char, char, char, char, + char, char, char, char, + char, char, char, char, + char, char, char, char, + char, char, char, char); +extern __m256i __cdecl _mm256_set_epi16(short, short, short, short, + short, short, short, short, + short, short, short, short, + short, short, short, short); +extern __m256i __cdecl _mm256_set_epi32(int, int, int, int, + int, int, int, int); +extern __m256i __cdecl _mm256_set_epi64x(__int64, __int64, + __int64, __int64); +# 1138 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m256d __cdecl _mm256_setr_pd(double, double, double, double); +extern __m256 __cdecl _mm256_setr_ps(float, float, float, float, + float, float, float, float); +extern __m256i __cdecl _mm256_setr_epi8(char, char, char, char, + char, char, char, char, + char, char, char, char, + char, char, char, char, + char, char, char, char, + char, char, char, char, + char, char, char, char, + char, char, char, char); +extern __m256i __cdecl _mm256_setr_epi16(short, short, short, short, + short, short, short, short, + short, short, short, short, + short, short, short, short); +extern __m256i __cdecl _mm256_setr_epi32(int, int, int, int, + int, int, int, int); +extern __m256i __cdecl _mm256_setr_epi64x(__int64, __int64, + __int64, __int64); + + + + + + + +extern __m256d __cdecl _mm256_set1_pd(double); +extern __m256 __cdecl _mm256_set1_ps(float); +extern __m256i __cdecl _mm256_set1_epi8(char); +extern __m256i __cdecl _mm256_set1_epi16(short); +extern __m256i __cdecl _mm256_set1_epi32(int); +extern __m256i __cdecl _mm256_set1_epi64x(long long); + + + + + + + +extern __m256 __cdecl _mm256_castpd_ps(__m256d); +extern __m256d __cdecl _mm256_castps_pd(__m256); +extern __m256i __cdecl _mm256_castps_si256(__m256); +extern __m256i __cdecl _mm256_castpd_si256(__m256d); +extern __m256 __cdecl _mm256_castsi256_ps(__m256i); +extern __m256d __cdecl _mm256_castsi256_pd(__m256i); +extern __m128 __cdecl _mm256_castps256_ps128(__m256); +extern __m128d __cdecl _mm256_castpd256_pd128(__m256d); +extern __m128i __cdecl _mm256_castsi256_si128(__m256i); +extern __m256 __cdecl _mm256_castps128_ps256(__m128); +extern __m256d __cdecl _mm256_castpd128_pd256(__m128d); +extern __m256i __cdecl _mm256_castsi128_si256(__m128i); + + + + + + +extern __m128 __cdecl _mm_cvtph_ps(__m128i); +extern __m256 __cdecl _mm256_cvtph_ps(__m128i); +extern __m128i __cdecl _mm_cvtps_ph(__m128 , const int ); +extern __m128i __cdecl _mm256_cvtps_ph(__m256, int); +# 1219 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern unsigned __int64 __cdecl _xgetbv(unsigned int); + + +extern void __cdecl _xsetbv(unsigned int, unsigned __int64); + + + + + + +extern void __cdecl _xsave(void *, unsigned __int64); +# 1239 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern void __cdecl _xsaveopt(void *, unsigned __int64); +# 1248 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern void __cdecl _xsavec(void *, unsigned __int64); +# 1258 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern void __cdecl _xrstor(void const *, unsigned __int64); +# 1268 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern void __cdecl _xsaves(void *, unsigned __int64); +# 1278 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern void __cdecl _xrstors(void const *, unsigned __int64); +# 1287 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern void __cdecl _fxsave(void *); +# 1296 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern void __cdecl _fxrstor(void const *); +# 1307 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern int __cdecl _rdrand16_step(unsigned short *); +extern int __cdecl _rdrand32_step(unsigned int *); +# 1334 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern __m128 __cdecl _mm_fmadd_ps(__m128, __m128, __m128); +extern __m128d __cdecl _mm_fmadd_pd(__m128d, __m128d, __m128d); +extern __m128 __cdecl _mm_fmadd_ss(__m128, __m128, __m128); +extern __m128d __cdecl _mm_fmadd_sd(__m128d, __m128d, __m128d); +extern __m128 __cdecl _mm_fmsub_ps(__m128, __m128, __m128); +extern __m128d __cdecl _mm_fmsub_pd(__m128d, __m128d, __m128d); +extern __m128 __cdecl _mm_fmsub_ss(__m128, __m128, __m128); +extern __m128d __cdecl _mm_fmsub_sd(__m128d, __m128d, __m128d); +extern __m128 __cdecl _mm_fnmadd_ps(__m128, __m128, __m128); +extern __m128d __cdecl _mm_fnmadd_pd(__m128d, __m128d, __m128d); +extern __m128 __cdecl _mm_fnmadd_ss(__m128, __m128, __m128); +extern __m128d __cdecl _mm_fnmadd_sd(__m128d, __m128d, __m128d); +extern __m128 __cdecl _mm_fnmsub_ps(__m128, __m128, __m128); +extern __m128d __cdecl _mm_fnmsub_pd(__m128d, __m128d, __m128d); +extern __m128 __cdecl _mm_fnmsub_ss(__m128, __m128, __m128); +extern __m128d __cdecl _mm_fnmsub_sd(__m128d, __m128d, __m128d); + +extern __m256 __cdecl _mm256_fmadd_ps(__m256, __m256, __m256); +extern __m256d __cdecl _mm256_fmadd_pd(__m256d, __m256d, __m256d); +extern __m256 __cdecl _mm256_fmsub_ps(__m256, __m256, __m256); +extern __m256d __cdecl _mm256_fmsub_pd(__m256d, __m256d, __m256d); +extern __m256 __cdecl _mm256_fnmadd_ps(__m256, __m256, __m256); +extern __m256d __cdecl _mm256_fnmadd_pd(__m256d, __m256d, __m256d); +extern __m256 __cdecl _mm256_fnmsub_ps(__m256, __m256, __m256); +extern __m256d __cdecl _mm256_fnmsub_pd(__m256d, __m256d, __m256d); + + + + + +extern __m128 __cdecl _mm_fmaddsub_ps(__m128, __m128, __m128); +extern __m128d __cdecl _mm_fmaddsub_pd(__m128d, __m128d, __m128d); +extern __m128 __cdecl _mm_fmsubadd_ps(__m128, __m128, __m128); +extern __m128d __cdecl _mm_fmsubadd_pd(__m128d, __m128d, __m128d); + +extern __m256 __cdecl _mm256_fmaddsub_ps(__m256, __m256, __m256); +extern __m256d __cdecl _mm256_fmaddsub_pd(__m256d, __m256d, __m256d); +extern __m256 __cdecl _mm256_fmsubadd_ps(__m256, __m256, __m256); +extern __m256d __cdecl _mm256_fmsubadd_pd(__m256d, __m256d, __m256d); + + + + + +extern __m256i __cdecl _mm256_cmpeq_epi8(__m256i, __m256i); +extern __m256i __cdecl _mm256_cmpeq_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_cmpeq_epi32(__m256i, __m256i); +extern __m256i __cdecl _mm256_cmpeq_epi64(__m256i, __m256i); + +extern __m256i __cdecl _mm256_cmpgt_epi8(__m256i, __m256i); +extern __m256i __cdecl _mm256_cmpgt_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_cmpgt_epi32(__m256i, __m256i); +extern __m256i __cdecl _mm256_cmpgt_epi64(__m256i, __m256i); + + + + + +extern __m256i __cdecl _mm256_max_epi8(__m256i, __m256i); +extern __m256i __cdecl _mm256_max_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_max_epi32(__m256i, __m256i); +extern __m256i __cdecl _mm256_max_epu8(__m256i, __m256i); +extern __m256i __cdecl _mm256_max_epu16(__m256i, __m256i); +extern __m256i __cdecl _mm256_max_epu32(__m256i, __m256i); + +extern __m256i __cdecl _mm256_min_epi8(__m256i, __m256i); +extern __m256i __cdecl _mm256_min_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_min_epi32(__m256i, __m256i); +extern __m256i __cdecl _mm256_min_epu8(__m256i, __m256i); +extern __m256i __cdecl _mm256_min_epu16(__m256i, __m256i); +extern __m256i __cdecl _mm256_min_epu32(__m256i, __m256i); + + + + + +extern __m256i __cdecl _mm256_and_si256(__m256i, __m256i); +extern __m256i __cdecl _mm256_andnot_si256(__m256i, __m256i); +extern __m256i __cdecl _mm256_or_si256(__m256i, __m256i); +extern __m256i __cdecl _mm256_xor_si256(__m256i, __m256i); + + + + + +extern __m256i __cdecl _mm256_abs_epi8(__m256i); +extern __m256i __cdecl _mm256_abs_epi16(__m256i); +extern __m256i __cdecl _mm256_abs_epi32(__m256i); + +extern __m256i __cdecl _mm256_add_epi8(__m256i, __m256i); +extern __m256i __cdecl _mm256_add_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_add_epi32(__m256i, __m256i); +extern __m256i __cdecl _mm256_add_epi64(__m256i, __m256i); + +extern __m256i __cdecl _mm256_adds_epi8(__m256i, __m256i); +extern __m256i __cdecl _mm256_adds_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_adds_epu8(__m256i, __m256i); +extern __m256i __cdecl _mm256_adds_epu16(__m256i, __m256i); + +extern __m256i __cdecl _mm256_sub_epi8(__m256i, __m256i); +extern __m256i __cdecl _mm256_sub_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_sub_epi32(__m256i, __m256i); +extern __m256i __cdecl _mm256_sub_epi64(__m256i, __m256i); + +extern __m256i __cdecl _mm256_subs_epi8(__m256i, __m256i); +extern __m256i __cdecl _mm256_subs_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_subs_epu8(__m256i, __m256i); +extern __m256i __cdecl _mm256_subs_epu16(__m256i, __m256i); + +extern __m256i __cdecl _mm256_avg_epu8(__m256i, __m256i); +extern __m256i __cdecl _mm256_avg_epu16(__m256i, __m256i); + +extern __m256i __cdecl _mm256_hadd_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_hadd_epi32(__m256i, __m256i); +extern __m256i __cdecl _mm256_hadds_epi16(__m256i, __m256i); + +extern __m256i __cdecl _mm256_hsub_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_hsub_epi32(__m256i, __m256i); +extern __m256i __cdecl _mm256_hsubs_epi16(__m256i, __m256i); + +extern __m256i __cdecl _mm256_madd_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_maddubs_epi16(__m256i, __m256i); + +extern __m256i __cdecl _mm256_mulhi_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_mulhi_epu16(__m256i, __m256i); + +extern __m256i __cdecl _mm256_mullo_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_mullo_epi32(__m256i, __m256i); + +extern __m256i __cdecl _mm256_mul_epu32(__m256i, __m256i); +extern __m256i __cdecl _mm256_mul_epi32(__m256i, __m256i); + +extern __m256i __cdecl _mm256_sign_epi8(__m256i, __m256i); +extern __m256i __cdecl _mm256_sign_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_sign_epi32(__m256i, __m256i); + +extern __m256i __cdecl _mm256_mulhrs_epi16(__m256i, __m256i); + +extern __m256i __cdecl _mm256_sad_epu8(__m256i, __m256i); +extern __m256i __cdecl _mm256_mpsadbw_epu8(__m256i, __m256i, const int); + + + + + +extern __m256i __cdecl _mm256_slli_si256(__m256i, const int); + +extern __m256i __cdecl _mm256_srli_si256(__m256i, const int); + + +extern __m256i __cdecl _mm256_sll_epi16(__m256i, __m128i); +extern __m256i __cdecl _mm256_sll_epi32(__m256i, __m128i); +extern __m256i __cdecl _mm256_sll_epi64(__m256i, __m128i); + +extern __m256i __cdecl _mm256_slli_epi16(__m256i, int); +extern __m256i __cdecl _mm256_slli_epi32(__m256i, int); +extern __m256i __cdecl _mm256_slli_epi64(__m256i, int); + +extern __m256i __cdecl _mm256_sllv_epi32(__m256i, __m256i); +extern __m256i __cdecl _mm256_sllv_epi64(__m256i, __m256i); + +extern __m128i __cdecl _mm_sllv_epi32(__m128i, __m128i); +extern __m128i __cdecl _mm_sllv_epi64(__m128i, __m128i); + +extern __m256i __cdecl _mm256_sra_epi16(__m256i, __m128i); +extern __m256i __cdecl _mm256_sra_epi32(__m256i, __m128i); + +extern __m256i __cdecl _mm256_srai_epi16(__m256i, int); +extern __m256i __cdecl _mm256_srai_epi32(__m256i, int); + +extern __m256i __cdecl _mm256_srav_epi32(__m256i, __m256i); + +extern __m128i __cdecl _mm_srav_epi32(__m128i, __m128i); + +extern __m256i __cdecl _mm256_srl_epi16(__m256i, __m128i); +extern __m256i __cdecl _mm256_srl_epi32(__m256i, __m128i); +extern __m256i __cdecl _mm256_srl_epi64(__m256i, __m128i); + +extern __m256i __cdecl _mm256_srli_epi16(__m256i, int); +extern __m256i __cdecl _mm256_srli_epi32(__m256i, int); +extern __m256i __cdecl _mm256_srli_epi64(__m256i, int); + +extern __m256i __cdecl _mm256_srlv_epi32(__m256i, __m256i); +extern __m256i __cdecl _mm256_srlv_epi64(__m256i, __m256i); + +extern __m128i __cdecl _mm_srlv_epi32(__m128i, __m128i); +extern __m128i __cdecl _mm_srlv_epi64(__m128i, __m128i); + + + + + +extern __m128i __cdecl _mm_blend_epi32(__m128i, __m128i, const int); + +extern __m256i __cdecl _mm256_blend_epi32(__m256i,__m256i, const int); + +extern __m256i __cdecl _mm256_alignr_epi8(__m256i, __m256i, const int); + +extern __m256i __cdecl _mm256_blendv_epi8(__m256i, __m256i, __m256i); +extern __m256i __cdecl _mm256_blend_epi16(__m256i, __m256i, const int); + +extern __m256i __cdecl _mm256_packs_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_packs_epi32(__m256i, __m256i); +extern __m256i __cdecl _mm256_packus_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_packus_epi32(__m256i, __m256i); + +extern __m256i __cdecl _mm256_unpackhi_epi8(__m256i, __m256i); +extern __m256i __cdecl _mm256_unpackhi_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_unpackhi_epi32(__m256i, __m256i); +extern __m256i __cdecl _mm256_unpackhi_epi64(__m256i, __m256i); + +extern __m256i __cdecl _mm256_unpacklo_epi8(__m256i, __m256i); +extern __m256i __cdecl _mm256_unpacklo_epi16(__m256i, __m256i); +extern __m256i __cdecl _mm256_unpacklo_epi32(__m256i, __m256i); +extern __m256i __cdecl _mm256_unpacklo_epi64(__m256i, __m256i); + +extern __m256i __cdecl _mm256_shuffle_epi8(__m256i, __m256i); +extern __m256i __cdecl _mm256_shuffle_epi32(__m256i, const int); + +extern __m256i __cdecl _mm256_shufflehi_epi16(__m256i, const int); +extern __m256i __cdecl _mm256_shufflelo_epi16(__m256i, const int); + +extern __m128i __cdecl _mm256_extracti128_si256(__m256i, const int); +extern __m256i __cdecl _mm256_inserti128_si256(__m256i, __m128i, const int); + + + + + +extern __m128 __cdecl _mm_broadcastss_ps(__m128); +extern __m128d __cdecl _mm_broadcastsd_pd(__m128d); + +extern __m128i __cdecl _mm_broadcastb_epi8(__m128i); +extern __m128i __cdecl _mm_broadcastw_epi16(__m128i); +extern __m128i __cdecl _mm_broadcastd_epi32(__m128i); +extern __m128i __cdecl _mm_broadcastq_epi64(__m128i); + +extern __m256 __cdecl _mm256_broadcastss_ps(__m128); +extern __m256d __cdecl _mm256_broadcastsd_pd(__m128d); + +extern __m256i __cdecl _mm256_broadcastb_epi8(__m128i); +extern __m256i __cdecl _mm256_broadcastw_epi16(__m128i); +extern __m256i __cdecl _mm256_broadcastd_epi32(__m128i); +extern __m256i __cdecl _mm256_broadcastq_epi64(__m128i); + +extern __m256i __cdecl _mm256_broadcastsi128_si256(__m128i); + + + + + + +extern __m256i __cdecl _mm256_cvtepi8_epi16(__m128i); +extern __m256i __cdecl _mm256_cvtepi8_epi32(__m128i); +extern __m256i __cdecl _mm256_cvtepi8_epi64(__m128i); +extern __m256i __cdecl _mm256_cvtepi16_epi32(__m128i); +extern __m256i __cdecl _mm256_cvtepi16_epi64(__m128i); +extern __m256i __cdecl _mm256_cvtepi32_epi64(__m128i); + +extern __m256i __cdecl _mm256_cvtepu8_epi16(__m128i); +extern __m256i __cdecl _mm256_cvtepu8_epi32(__m128i); +extern __m256i __cdecl _mm256_cvtepu8_epi64(__m128i); +extern __m256i __cdecl _mm256_cvtepu16_epi32(__m128i); +extern __m256i __cdecl _mm256_cvtepu16_epi64(__m128i); +extern __m256i __cdecl _mm256_cvtepu32_epi64(__m128i); + + + + + + +extern int __cdecl _mm256_movemask_epi8(__m256i); + + + + + +extern __m128i __cdecl _mm_maskload_epi32(int const * , + __m128i ); +extern __m128i __cdecl _mm_maskload_epi64(__int64 const * , + __m128i ); + +extern void __cdecl _mm_maskstore_epi32(int * , + __m128i , + __m128i ); +extern void __cdecl _mm_maskstore_epi64(__int64 * , + __m128i , + __m128i ); + +extern __m256i __cdecl _mm256_maskload_epi32(int const * , + __m256i ); +extern __m256i __cdecl _mm256_maskload_epi64(__int64 const * , + __m256i ); + +extern void __cdecl _mm256_maskstore_epi32(int * , + __m256i , + __m256i ); +extern void __cdecl _mm256_maskstore_epi64(__int64 * , + __m256i , + __m256i ); + + + + + +extern __m256i __cdecl _mm256_permutevar8x32_epi32(__m256i, __m256i); +extern __m256 __cdecl _mm256_permutevar8x32_ps(__m256, __m256i); + +extern __m256i __cdecl _mm256_permute4x64_epi64(__m256i, const int); +extern __m256d __cdecl _mm256_permute4x64_pd(__m256d, const int); + +extern __m256i __cdecl _mm256_permute2x128_si256(__m256i, __m256i, const int); + + + + + +extern __m256i __cdecl _mm256_stream_load_si256(__m256i const *); + + + + + + +extern __m256d __cdecl _mm256_mask_i32gather_pd(__m256d , + double const * , + __m128i , + __m256d , + const int ); +extern __m256 __cdecl _mm256_mask_i32gather_ps(__m256 , + float const * , + __m256i , + __m256 , + const int ); +extern __m256d __cdecl _mm256_mask_i64gather_pd(__m256d , + double const * , + __m256i , + __m256d , + const int ); +extern __m128 __cdecl _mm256_mask_i64gather_ps(__m128 , + float const * , + __m256i , + __m128 , + const int ); + +extern __m128d __cdecl _mm_mask_i32gather_pd(__m128d , + double const * , + __m128i , + __m128d , + const int ); +extern __m128 __cdecl _mm_mask_i32gather_ps(__m128 , + float const * , + __m128i , + __m128 , + const int ); +extern __m128d __cdecl _mm_mask_i64gather_pd(__m128d , + double const * , + __m128i , + __m128d , + const int ); +extern __m128 __cdecl _mm_mask_i64gather_ps(__m128 , + float const * , + __m128i , + __m128 , + const int ); + + +extern __m256i __cdecl _mm256_mask_i32gather_epi32(__m256i , + int const * , + __m256i , + __m256i , + const int ); +extern __m256i __cdecl _mm256_mask_i32gather_epi64(__m256i , + __int64 const * , + __m128i , + __m256i , + const int ); +extern __m128i __cdecl _mm256_mask_i64gather_epi32(__m128i , + int const * , + __m256i , + __m128i , + const int ); +extern __m256i __cdecl _mm256_mask_i64gather_epi64(__m256i , + __int64 const * , + __m256i , + __m256i , + const int ); + +extern __m128i __cdecl _mm_mask_i32gather_epi32(__m128i , + int const * , + __m128i , + __m128i , + const int ); +extern __m128i __cdecl _mm_mask_i32gather_epi64(__m128i , + __int64 const * , + __m128i , + __m128i , + const int ); +extern __m128i __cdecl _mm_mask_i64gather_epi32(__m128i , + int const * , + __m128i , + __m128i , + const int ); +extern __m128i __cdecl _mm_mask_i64gather_epi64(__m128i , + __int64 const * , + __m128i , + __m128i , + const int ); + + + + + +extern __m256d __cdecl _mm256_i32gather_pd(double const * , + __m128i , + const int ); +extern __m256 __cdecl _mm256_i32gather_ps(float const * , + __m256i , + const int ); +extern __m256d __cdecl _mm256_i64gather_pd(double const * , + __m256i , + const int ); +extern __m128 __cdecl _mm256_i64gather_ps(float const * , + __m256i , + const int ); + +extern __m128d __cdecl _mm_i32gather_pd(double const * , + __m128i , + const int ); +extern __m128 __cdecl _mm_i32gather_ps(float const * , + __m128i , + const int ); +extern __m128d __cdecl _mm_i64gather_pd(double const * , + __m128i , + const int ); +extern __m128 __cdecl _mm_i64gather_ps(float const * , + __m128i , + const int ); + +extern __m256i __cdecl _mm256_i32gather_epi32(int const * , + __m256i , + const int ); +extern __m256i __cdecl _mm256_i32gather_epi64(__int64 const * , + __m128i , + const int ); +extern __m128i __cdecl _mm256_i64gather_epi32(int const * , + __m256i , + const int ); +extern __m256i __cdecl _mm256_i64gather_epi64(__int64 const * , + __m256i , + const int ); + +extern __m128i __cdecl _mm_i32gather_epi32(int const * , + __m128i , + const int ); +extern __m128i __cdecl _mm_i32gather_epi64(__int64 const * , + __m128i , + const int ); +extern __m128i __cdecl _mm_i64gather_epi32(int const * , + __m128i , + const int ); +extern __m128i __cdecl _mm_i64gather_epi64(__int64 const * , + __m128i , + const int ); + + + + + + + +extern unsigned int _bextr_u32(unsigned int , + unsigned int , + unsigned int ); +extern unsigned int _blsi_u32(unsigned int); +extern unsigned int _blsmsk_u32(unsigned int); +extern unsigned int _blsr_u32(unsigned int); +extern unsigned int _bzhi_u32(unsigned int , + unsigned int ); +extern unsigned int _mulx_u32(unsigned int , + unsigned int , + unsigned int * ); +extern unsigned int _pdep_u32(unsigned int , + unsigned int ); +extern unsigned int _pext_u32(unsigned int , + unsigned int ); +extern unsigned int _rorx_u32(unsigned int , + const unsigned int ); +extern int _sarx_i32(int , + unsigned int ); +extern unsigned int _shlx_u32(unsigned int , + unsigned int ); +extern unsigned int _shrx_u32(unsigned int , + unsigned int ); +# 1862 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern unsigned int _lzcnt_u32(unsigned int); +# 1874 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern unsigned int _tzcnt_u32(unsigned int); +# 1884 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern void __cdecl _invpcid(unsigned int , void * ); + + +extern void _Store_HLERelease(long volatile *,long); +extern void _StorePointer_HLERelease(void * volatile *,void *); + +extern long _InterlockedExchange_HLEAcquire(long volatile *,long); +extern long _InterlockedExchange_HLERelease(long volatile *,long); +extern void * _InterlockedExchangePointer_HLEAcquire(void *volatile *,void *); +extern void * _InterlockedExchangePointer_HLERelease(void *volatile *,void *); + +extern long _InterlockedCompareExchange_HLEAcquire(long volatile *,long,long); +extern long _InterlockedCompareExchange_HLERelease(long volatile *,long,long); +extern __int64 _InterlockedCompareExchange64_HLEAcquire(__int64 volatile *,__int64,__int64); +extern __int64 _InterlockedCompareExchange64_HLERelease(__int64 volatile *,__int64,__int64); +extern void * _InterlockedCompareExchangePointer_HLEAcquire(void *volatile *,void *,void *); +extern void * _InterlockedCompareExchangePointer_HLERelease(void *volatile *,void *,void *); + +extern long _InterlockedExchangeAdd_HLEAcquire(long volatile *,long); +extern long _InterlockedExchangeAdd_HLERelease(long volatile *,long); + +extern long _InterlockedAnd_HLEAcquire(long volatile *,long); +extern long _InterlockedAnd_HLERelease(long volatile *,long); +extern long _InterlockedOr_HLEAcquire(long volatile *,long); +extern long _InterlockedOr_HLERelease(long volatile *,long); +extern long _InterlockedXor_HLEAcquire(long volatile *,long); +extern long _InterlockedXor_HLERelease(long volatile *,long); + +extern unsigned char _interlockedbittestandset_HLEAcquire(long *,long); +extern unsigned char _interlockedbittestandset_HLERelease(long *,long); +extern unsigned char _interlockedbittestandreset_HLEAcquire(long *,long); +extern unsigned char _interlockedbittestandreset_HLERelease(long *,long); +# 1948 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern unsigned int __cdecl _xbegin(void); +extern void __cdecl _xend(void); +extern void __cdecl _xabort(const unsigned int); +extern unsigned char __cdecl _xtest(void); +# 1960 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern int __cdecl _rdseed16_step(unsigned short *); +extern int __cdecl _rdseed32_step(unsigned int *); +# 1975 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern unsigned char __cdecl _addcarryx_u32(unsigned char , + unsigned int , + unsigned int , + unsigned int * ); +# 1992 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\immintrin.h" 3 +extern unsigned short __cdecl _load_be_u16(void const*); +extern unsigned int __cdecl _load_be_u32(void const*); +extern unsigned __int64 __cdecl _load_be_u64(void const*); + + + + + + + +extern void __cdecl _store_be_u16(void *, unsigned short); +extern void __cdecl _store_be_u32(void *, unsigned int); +extern void __cdecl _store_be_u64(void *, unsigned __int64); + + + + + + + +extern __m128i __cdecl _mm_sha1msg1_epu32(__m128i, __m128i); +extern __m128i __cdecl _mm_sha1msg2_epu32(__m128i, __m128i); +extern __m128i __cdecl _mm_sha1nexte_epu32(__m128i, __m128i); +extern __m128i __cdecl _mm_sha1rnds4_epu32(__m128i, __m128i, const int); + +extern __m128i __cdecl _mm_sha256msg1_epu32(__m128i, __m128i); +extern __m128i __cdecl _mm_sha256msg2_epu32(__m128i, __m128i); +extern __m128i __cdecl _mm_sha256rnds2_epu32(__m128i, __m128i, __m128i); + + + + +extern void * __cdecl _bnd_set_ptr_bounds(const void *, size_t); +extern void * __cdecl _bnd_narrow_ptr_bounds(const void *, const void *, size_t); +extern void * __cdecl _bnd_copy_ptr_bounds(const void *, const void *); +extern void * __cdecl _bnd_init_ptr_bounds(const void *); +extern void __cdecl _bnd_store_ptr_bounds(const void **, const void *); +extern void __cdecl _bnd_chk_ptr_lbounds(const void *); +extern void __cdecl _bnd_chk_ptr_ubounds(const void *); +extern void __cdecl _bnd_chk_ptr_bounds(const void *, size_t); +extern void * __cdecl _bnd_load_ptr_bounds(const void **, const void *); +extern const void * __cdecl _bnd_get_ptr_lbound(const void *); +extern const void * __cdecl _bnd_get_ptr_ubound(const void *); + + +}; +# 24 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ammintrin.h" 1 3 +# 32 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ammintrin.h" 3 +extern "C" { +# 127 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ammintrin.h" 3 +__m128 _mm_macc_ps(__m128, __m128, __m128); +__m128d _mm_macc_pd(__m128d, __m128d, __m128d); +__m128 _mm_macc_ss(__m128, __m128, __m128); +__m128d _mm_macc_sd(__m128d, __m128d, __m128d); +__m128 _mm_maddsub_ps(__m128, __m128, __m128); +__m128d _mm_maddsub_pd(__m128d, __m128d, __m128d); +__m128 _mm_msubadd_ps(__m128, __m128, __m128); +__m128d _mm_msubadd_pd(__m128d, __m128d, __m128d); +__m128 _mm_msub_ps(__m128, __m128, __m128); +__m128d _mm_msub_pd(__m128d, __m128d, __m128d); +__m128 _mm_msub_ss(__m128, __m128, __m128); +__m128d _mm_msub_sd(__m128d, __m128d, __m128d); +__m128 _mm_nmacc_ps(__m128, __m128, __m128); +__m128d _mm_nmacc_pd(__m128d, __m128d, __m128d); +__m128 _mm_nmacc_ss(__m128, __m128, __m128); +__m128d _mm_nmacc_sd(__m128d, __m128d, __m128d); +__m128 _mm_nmsub_ps(__m128, __m128, __m128); +__m128d _mm_nmsub_pd(__m128d, __m128d, __m128d); +__m128 _mm_nmsub_ss(__m128, __m128, __m128); +__m128d _mm_nmsub_sd(__m128d, __m128d, __m128d); + + +__m128i _mm_maccs_epi16(__m128i, __m128i, __m128i); +__m128i _mm_macc_epi16(__m128i, __m128i, __m128i); +__m128i _mm_maccsd_epi16(__m128i, __m128i, __m128i); +__m128i _mm_maccd_epi16(__m128i, __m128i, __m128i); +__m128i _mm_maccs_epi32(__m128i, __m128i, __m128i); +__m128i _mm_macc_epi32(__m128i, __m128i, __m128i); +__m128i _mm_maccslo_epi32(__m128i, __m128i, __m128i); +__m128i _mm_macclo_epi32(__m128i, __m128i, __m128i); +__m128i _mm_maccshi_epi32(__m128i, __m128i, __m128i); +__m128i _mm_macchi_epi32(__m128i, __m128i, __m128i); +__m128i _mm_maddsd_epi16(__m128i, __m128i, __m128i); +__m128i _mm_maddd_epi16(__m128i, __m128i, __m128i); + + +__m128i _mm_haddw_epi8(__m128i); +__m128i _mm_haddd_epi8(__m128i); +__m128i _mm_haddq_epi8(__m128i); +__m128i _mm_haddd_epi16(__m128i); +__m128i _mm_haddq_epi16(__m128i); +__m128i _mm_haddq_epi32(__m128i); +__m128i _mm_haddw_epu8(__m128i); +__m128i _mm_haddd_epu8(__m128i); +__m128i _mm_haddq_epu8(__m128i); +__m128i _mm_haddd_epu16(__m128i); +__m128i _mm_haddq_epu16(__m128i); +__m128i _mm_haddq_epu32(__m128i); +__m128i _mm_hsubw_epi8(__m128i); +__m128i _mm_hsubd_epi16(__m128i); +__m128i _mm_hsubq_epi32(__m128i); + + +__m128i _mm_cmov_si128(__m128i, __m128i, __m128i); +__m128i _mm_perm_epi8(__m128i, __m128i, __m128i); + + +__m128i _mm_rot_epi8(__m128i, __m128i); +__m128i _mm_rot_epi16(__m128i, __m128i); +__m128i _mm_rot_epi32(__m128i, __m128i); +__m128i _mm_rot_epi64(__m128i, __m128i); +__m128i _mm_roti_epi8(__m128i, int); +__m128i _mm_roti_epi16(__m128i, int); +__m128i _mm_roti_epi32(__m128i, int); +__m128i _mm_roti_epi64(__m128i, int); +__m128i _mm_shl_epi8(__m128i, __m128i); +__m128i _mm_shl_epi16(__m128i, __m128i); +__m128i _mm_shl_epi32(__m128i, __m128i); +__m128i _mm_shl_epi64(__m128i, __m128i); +__m128i _mm_sha_epi8(__m128i, __m128i); +__m128i _mm_sha_epi16(__m128i, __m128i); +__m128i _mm_sha_epi32(__m128i, __m128i); +__m128i _mm_sha_epi64(__m128i, __m128i); + + + +__m128i _mm_com_epu8(__m128i, __m128i, int); +__m128i _mm_com_epu16(__m128i, __m128i, int); +__m128i _mm_com_epu32(__m128i, __m128i, int); +__m128i _mm_com_epu64(__m128i, __m128i, int); +__m128i _mm_com_epi8(__m128i, __m128i, int); +__m128i _mm_com_epi16(__m128i, __m128i, int); +__m128i _mm_com_epi32(__m128i, __m128i, int); +__m128i _mm_com_epi64(__m128i, __m128i, int); + + + +__m128 _mm_frcz_ps(__m128); +__m128d _mm_frcz_pd(__m128d); +__m128 _mm_frcz_ss(__m128, __m128); +__m128d _mm_frcz_sd(__m128d, __m128d); +# 226 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ammintrin.h" 3 +__m128 _mm_permute2_ps(__m128, __m128, __m128i, int); +__m128d _mm_permute2_pd(__m128d, __m128d, __m128i, int); + + + +__m256 _mm256_macc_ps(__m256, __m256, __m256); +__m256d _mm256_macc_pd(__m256d, __m256d, __m256d); +__m256 _mm256_maddsub_ps(__m256, __m256, __m256); +__m256d _mm256_maddsub_pd(__m256d, __m256d, __m256d); +__m256 _mm256_msubadd_ps(__m256, __m256, __m256); +__m256d _mm256_msubadd_pd(__m256d, __m256d, __m256d); +__m256 _mm256_msub_ps(__m256, __m256, __m256); +__m256d _mm256_msub_pd(__m256d, __m256d, __m256d); +__m256 _mm256_nmacc_ps(__m256, __m256, __m256); +__m256d _mm256_nmacc_pd(__m256d, __m256d, __m256d); +__m256 _mm256_nmsub_ps(__m256, __m256, __m256); +__m256d _mm256_nmsub_pd(__m256d, __m256d, __m256d); +__m256i _mm256_cmov_si256(__m256i, __m256i, __m256i); +__m256 _mm256_frcz_ps(__m256); +__m256d _mm256_frcz_pd(__m256d); +__m256 _mm256_permute2_ps(__m256, __m256, __m256i, int); +__m256d _mm256_permute2_pd(__m256d, __m256d, __m256i, int); + + +void __llwpcb(void *); +void *__slwpcb(); +void __lwpval32(unsigned int, unsigned int, unsigned int); +unsigned char __lwpins32(unsigned int, unsigned int, unsigned int); + + + + + + +unsigned int _bextr_u32(unsigned int, unsigned int, unsigned int); +unsigned int _andn_u32(unsigned int, unsigned int); +unsigned int _tzcnt_u32(unsigned int); +unsigned int _lzcnt_u32(unsigned int); +unsigned int _blsr_u32(unsigned int); +unsigned int _blsmsk_u32(unsigned int); +unsigned int _blsi_u32(unsigned int); +# 278 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ammintrin.h" 3 +unsigned int _bextri_u32(unsigned int, unsigned int); +unsigned int _blcfill_u32(unsigned int); +unsigned int _blsfill_u32(unsigned int); +unsigned int _blcs_u32(unsigned int); +unsigned int _tzmsk_u32(unsigned int); +unsigned int _blcic_u32(unsigned int); +unsigned int _blsic_u32(unsigned int); +unsigned int _t1mskc_u32(unsigned int); +unsigned int _blcmsk_u32(unsigned int); +unsigned int _blci_u32(unsigned int); +# 301 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ammintrin.h" 3 +void _mm_monitorx(void const *, unsigned int, unsigned int); +void _mm_mwaitx(unsigned int, unsigned int, unsigned int); + +void _mm_clzero(void const *); + + +}; +# 25 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 2 3 + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\mm3dnow.h" 1 3 +# 30 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\mm3dnow.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 1 3 +# 30 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\mm3dnow.h" 2 3 + + + + + +extern "C" { + + + + +void _m_femms(void); +__m64 _m_pavgusb(__m64, __m64); +__m64 _m_pf2id(__m64); +__m64 _m_pfacc(__m64, __m64); +__m64 _m_pfadd(__m64, __m64); +__m64 _m_pfcmpeq(__m64, __m64); +__m64 _m_pfcmpge(__m64, __m64); +__m64 _m_pfcmpgt(__m64, __m64); +__m64 _m_pfmax(__m64, __m64); +__m64 _m_pfmin(__m64, __m64); +__m64 _m_pfmul(__m64, __m64); +__m64 _m_pfrcp(__m64); +__m64 _m_pfrcpit1(__m64, __m64); +__m64 _m_pfrcpit2(__m64, __m64); +__m64 _m_pfrsqrt(__m64); +__m64 _m_pfrsqit1(__m64, __m64); +__m64 _m_pfsub(__m64, __m64); +__m64 _m_pfsubr(__m64, __m64); +__m64 _m_pi2fd(__m64); +__m64 _m_pmulhrw(__m64, __m64); +void _m_prefetch(void*); +void _m_prefetchw(volatile const void*_Source); + +__m64 _m_from_float(float); +float _m_to_float(__m64); + + + +__m64 _m_pf2iw(__m64); +__m64 _m_pfnacc(__m64, __m64); +__m64 _m_pfpnacc(__m64, __m64); +__m64 _m_pi2fw(__m64); +__m64 _m_pswapd(__m64); + + +}; +# 29 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 2 3 +# 44 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +extern "C" { +# 129 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +void * _AddressOfReturnAddress(void); +unsigned char _BitScanForward(unsigned long * _Index, unsigned long _Mask); + + +unsigned char _BitScanReverse(unsigned long * _Index, unsigned long _Mask); +# 155 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +long _InterlockedAddLargeStatistic(__int64 volatile * _Addend, long _Value); + + + +long _InterlockedAnd(long volatile * _Value, long _Mask); +short _InterlockedAnd16(short volatile * _Value, short _Mask); +# 170 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +char _InterlockedAnd8(char volatile * _Value, char _Mask); +# 179 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +long __cdecl _InterlockedCompareExchange(long volatile * _Destination, long _Exchange, long _Comparand); + + + + + + +short _InterlockedCompareExchange16(short volatile * _Destination, short _Exchange, short _Comparand); + + + + +__int64 _InterlockedCompareExchange64(__int64 volatile * _Destination, __int64 _Exchange, __int64 _Comparand); + + + + +char _InterlockedCompareExchange8(char volatile * _Destination, char _Exchange, char _Comparand); + + + +void * _InterlockedCompareExchangePointer(void * volatile * _Destination, void * _Exchange, void * _Comparand); +# 209 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +long __cdecl _InterlockedDecrement(long volatile * _Addend); + +short _InterlockedDecrement16(short volatile * _Addend); +# 222 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +long __cdecl _InterlockedExchange(long volatile * _Target, long _Value); + +short _InterlockedExchange16(short volatile * _Target, short _Value); + + + + + + + +char _InterlockedExchange8(char volatile * _Target, char _Value); + + + +long __cdecl _InterlockedExchangeAdd(long volatile * _Addend, long _Value); +short _InterlockedExchangeAdd16(short volatile * _Addend, short _Value); + + + + + + + +char _InterlockedExchangeAdd8(char volatile * _Addend, char _Value); + + + + + + +void * _InterlockedExchangePointer(void * volatile * _Target, void * _Value); + + + + + + +long __cdecl _InterlockedIncrement(long volatile * _Addend); + +short _InterlockedIncrement16(short volatile * _Addend); +# 272 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +long _InterlockedOr(long volatile * _Value, long _Mask); +short _InterlockedOr16(short volatile * _Value, short _Mask); +# 283 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +char _InterlockedOr8(char volatile * _Value, char _Mask); +# 292 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +long _InterlockedXor(long volatile * _Value, long _Mask); +short _InterlockedXor16(short volatile * _Value, short _Mask); +# 303 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +char _InterlockedXor8(char volatile * _Value, char _Mask); +# 320 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +void _ReadBarrier(void); + + + + + + +void _ReadWriteBarrier(void); +void * _ReturnAddress(void); + +void _WriteBarrier(void); + + + + + + +void __addfsbyte(unsigned long, unsigned char); +void __addfsdword(unsigned long, unsigned long); +void __addfsword(unsigned long, unsigned short); +# 348 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +void __code_seg(const char *); +void __cpuid(int[4], int); +void __cpuidex(int[4], int, int); +void __cdecl __debugbreak(void); + +__int64 __emul(int, int); +unsigned __int64 __emulu(unsigned int, unsigned int); +__declspec(noreturn) void __fastfail(unsigned int); + +unsigned int __getcallerseflags(void); +void __halt(void); + + +unsigned char __inbyte(unsigned short); +void __inbytestring(unsigned short, unsigned char *, unsigned long); +void __incfsbyte(unsigned long); +void __incfsdword(unsigned long); +void __incfsword(unsigned long); +# 374 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +unsigned long __indword(unsigned short); +void __indwordstring(unsigned short, unsigned long *, unsigned long); +void __int2c(void); +void __invlpg(void *); +unsigned short __inword(unsigned short); +void __inwordstring(unsigned short, unsigned short *, unsigned long); +# 389 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +void __lidt(void *); +unsigned __int64 __ll_lshift(unsigned __int64, int); +__int64 __ll_rshift(__int64, int); +unsigned int __lzcnt(unsigned int); +unsigned short __lzcnt16(unsigned short); + +void __movsb(unsigned char *, unsigned char const *, size_t); +void __movsd(unsigned long *, unsigned long const *, size_t); + +void __movsw(unsigned short *, unsigned short const *, size_t); + +void __nop(void); +void __nvreg_restore_fence(void); +void __nvreg_save_fence(void); +void __outbyte(unsigned short, unsigned char); +void __outbytestring(unsigned short, unsigned char *, unsigned long); +void __outdword(unsigned short, unsigned long); +void __outdwordstring(unsigned short, unsigned long *, unsigned long); +void __outword(unsigned short, unsigned short); +void __outwordstring(unsigned short, unsigned short *, unsigned long); +unsigned int __popcnt(unsigned int); +unsigned short __popcnt16(unsigned short); + + + + +unsigned __int64 __rdtsc(void); +unsigned __int64 __rdtscp(unsigned int *); + +unsigned long __readcr0(void); + +unsigned long __readcr2(void); + +unsigned long __readcr3(void); + +unsigned long __readcr4(void); + +unsigned long __readcr8(void); + +unsigned int __readdr(unsigned int); + +unsigned int __readeflags(void); +unsigned char __readfsbyte(unsigned long); +unsigned long __readfsdword(unsigned long); +unsigned __int64 __readfsqword(unsigned long); +unsigned short __readfsword(unsigned long); + + + + +unsigned __int64 __readmsr(unsigned long); +unsigned __int64 __readpmc(unsigned long); + + + + +unsigned long __segmentlimit(unsigned long); + + + +void __sidt(void *); + +void __stosb(unsigned char *, unsigned char, size_t); +void __stosd(unsigned long *, unsigned long, size_t); + +void __stosw(unsigned short *, unsigned short, size_t); +void __svm_clgi(void); +void __svm_invlpga(void *, int); +void __svm_skinit(int); +void __svm_stgi(void); +void __svm_vmload(size_t); +void __svm_vmrun(size_t); +void __svm_vmsave(size_t); + + + + + +void __ud2(void); +unsigned __int64 __ull_rshift(unsigned __int64, int); + +void __vmx_off(void); + + + + +void __vmx_vmptrst(unsigned __int64 *); + + + +void __wbinvd(void); + + + +void __writecr0(unsigned int); + +void __writecr3(unsigned int); + +void __writecr4(unsigned int); + +void __writecr8(unsigned int); + +void __writedr(unsigned int, unsigned int); + +void __writeeflags(unsigned int); +void __writefsbyte(unsigned long, unsigned char); +void __writefsdword(unsigned long, unsigned long); +void __writefsqword(unsigned long, unsigned __int64); +void __writefsword(unsigned long, unsigned short); + + + + +void __writemsr(unsigned long, unsigned __int64); + + + + + +unsigned char _bittest(long const *, long); + +unsigned char _bittestandcomplement(long *, long); + +unsigned char _bittestandreset(long *, long); + +unsigned char _bittestandset(long *, long); + +unsigned __int64 __cdecl _byteswap_uint64( unsigned __int64); +unsigned long __cdecl _byteswap_ulong( unsigned long); +unsigned short __cdecl _byteswap_ushort( unsigned short); +void __cdecl _disable(void); +void __cdecl _enable(void); +unsigned char _interlockedbittestandreset(long volatile *, long); + + + + + + + +unsigned char _interlockedbittestandset(long volatile *, long); +# 547 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\intrin.h" 3 +unsigned long __cdecl _lrotl( unsigned long, int); +unsigned long __cdecl _lrotr( unsigned long, int); +void _m_empty(void); +void _m_femms(void); +__m64 _m_from_float(float); +__m64 _m_from_int(int); +void _m_maskmovq(__m64, __m64, char *); +__m64 _m_packssdw(__m64, __m64); +__m64 _m_packsswb(__m64, __m64); +__m64 _m_packuswb(__m64, __m64); +__m64 _m_paddb(__m64, __m64); +__m64 _m_paddd(__m64, __m64); +__m64 _m_paddsb(__m64, __m64); +__m64 _m_paddsw(__m64, __m64); +__m64 _m_paddusb(__m64, __m64); +__m64 _m_paddusw(__m64, __m64); +__m64 _m_paddw(__m64, __m64); +__m64 _m_pand(__m64, __m64); +__m64 _m_pandn(__m64, __m64); +__m64 _m_pavgb(__m64, __m64); +__m64 _m_pavgusb(__m64, __m64); +__m64 _m_pavgw(__m64, __m64); +__m64 _m_pcmpeqb(__m64, __m64); +__m64 _m_pcmpeqd(__m64, __m64); +__m64 _m_pcmpeqw(__m64, __m64); +__m64 _m_pcmpgtb(__m64, __m64); +__m64 _m_pcmpgtd(__m64, __m64); +__m64 _m_pcmpgtw(__m64, __m64); +int _m_pextrw(__m64, int); +__m64 _m_pf2id(__m64); +__m64 _m_pf2iw(__m64); +__m64 _m_pfacc(__m64, __m64); +__m64 _m_pfadd(__m64, __m64); +__m64 _m_pfcmpeq(__m64, __m64); +__m64 _m_pfcmpge(__m64, __m64); +__m64 _m_pfcmpgt(__m64, __m64); +__m64 _m_pfmax(__m64, __m64); +__m64 _m_pfmin(__m64, __m64); +__m64 _m_pfmul(__m64, __m64); +__m64 _m_pfnacc(__m64, __m64); +__m64 _m_pfpnacc(__m64, __m64); +__m64 _m_pfrcp(__m64); +__m64 _m_pfrcpit1(__m64, __m64); +__m64 _m_pfrcpit2(__m64, __m64); +__m64 _m_pfrsqit1(__m64, __m64); +__m64 _m_pfrsqrt(__m64); +__m64 _m_pfsub(__m64, __m64); +__m64 _m_pfsubr(__m64, __m64); +__m64 _m_pi2fd(__m64); +__m64 _m_pi2fw(__m64); +__m64 _m_pinsrw(__m64, int, int); +__m64 _m_pmaddwd(__m64, __m64); +__m64 _m_pmaxsw(__m64, __m64); +__m64 _m_pmaxub(__m64, __m64); +__m64 _m_pminsw(__m64, __m64); +__m64 _m_pminub(__m64, __m64); +int _m_pmovmskb(__m64); +__m64 _m_pmulhrw(__m64, __m64); +__m64 _m_pmulhuw(__m64, __m64); +__m64 _m_pmulhw(__m64, __m64); +__m64 _m_pmullw(__m64, __m64); +__m64 _m_por(__m64, __m64); +void _m_prefetch(void *); +void _m_prefetchw(volatile const void *); +__m64 _m_psadbw(__m64, __m64); +__m64 _m_pshufw(__m64, int); +__m64 _m_pslld(__m64, __m64); +__m64 _m_pslldi(__m64, int); +__m64 _m_psllq(__m64, __m64); +__m64 _m_psllqi(__m64, int); +__m64 _m_psllw(__m64, __m64); +__m64 _m_psllwi(__m64, int); +__m64 _m_psrad(__m64, __m64); +__m64 _m_psradi(__m64, int); +__m64 _m_psraw(__m64, __m64); +__m64 _m_psrawi(__m64, int); +__m64 _m_psrld(__m64, __m64); +__m64 _m_psrldi(__m64, int); +__m64 _m_psrlq(__m64, __m64); +__m64 _m_psrlqi(__m64, int); +__m64 _m_psrlw(__m64, __m64); +__m64 _m_psrlwi(__m64, int); +__m64 _m_psubb(__m64, __m64); +__m64 _m_psubd(__m64, __m64); +__m64 _m_psubsb(__m64, __m64); +__m64 _m_psubsw(__m64, __m64); +__m64 _m_psubusb(__m64, __m64); +__m64 _m_psubusw(__m64, __m64); +__m64 _m_psubw(__m64, __m64); +__m64 _m_pswapd(__m64); +__m64 _m_punpckhbw(__m64, __m64); +__m64 _m_punpckhdq(__m64, __m64); +__m64 _m_punpckhwd(__m64, __m64); +__m64 _m_punpcklbw(__m64, __m64); +__m64 _m_punpckldq(__m64, __m64); +__m64 _m_punpcklwd(__m64, __m64); +__m64 _m_pxor(__m64, __m64); +float _m_to_float(__m64); +int _m_to_int(__m64); +__m128i _mm_abs_epi16(__m128i); +__m128i _mm_abs_epi32(__m128i); +__m128i _mm_abs_epi8(__m128i); +__m64 _mm_abs_pi16(__m64); +__m64 _mm_abs_pi32(__m64); +__m64 _mm_abs_pi8(__m64); +__m128i _mm_add_epi16(__m128i, __m128i); +__m128i _mm_add_epi32(__m128i, __m128i); +__m128i _mm_add_epi64(__m128i, __m128i); +__m128i _mm_add_epi8(__m128i, __m128i); +__m128d _mm_add_pd(__m128d, __m128d); +__m128 _mm_add_ps(__m128, __m128); +__m128d _mm_add_sd(__m128d, __m128d); +__m64 _mm_add_si64(__m64, __m64); +__m128 _mm_add_ss(__m128, __m128); +__m128i _mm_adds_epi16(__m128i, __m128i); +__m128i _mm_adds_epi8(__m128i, __m128i); +__m128i _mm_adds_epu16(__m128i, __m128i); +__m128i _mm_adds_epu8(__m128i, __m128i); +__m128d _mm_addsub_pd(__m128d, __m128d); +__m128 _mm_addsub_ps(__m128, __m128); +__m128i _mm_alignr_epi8(__m128i, __m128i, int); +__m64 _mm_alignr_pi8(__m64, __m64, int); +__m128d _mm_and_pd(__m128d, __m128d); +__m128 _mm_and_ps(__m128, __m128); +__m128i _mm_and_si128(__m128i, __m128i); +__m128d _mm_andnot_pd(__m128d, __m128d); +__m128 _mm_andnot_ps(__m128, __m128); +__m128i _mm_andnot_si128(__m128i, __m128i); +__m128i _mm_avg_epu16(__m128i, __m128i); +__m128i _mm_avg_epu8(__m128i, __m128i); +__m128i _mm_blend_epi16(__m128i, __m128i, int); +__m128d _mm_blend_pd(__m128d, __m128d, int); +__m128 _mm_blend_ps(__m128, __m128, int); +__m128i _mm_blendv_epi8(__m128i, __m128i, __m128i); +__m128d _mm_blendv_pd(__m128d, __m128d, __m128d); +__m128 _mm_blendv_ps(__m128, __m128, __m128); +void _mm_clflush(void const *); +void _mm_clflushopt(void const *); +void _mm_clwb(void const *); +void _mm_clzero(void const *); +__m128i _mm_cmpeq_epi16(__m128i, __m128i); +__m128i _mm_cmpeq_epi32(__m128i, __m128i); +__m128i _mm_cmpeq_epi64(__m128i, __m128i); +__m128i _mm_cmpeq_epi8(__m128i, __m128i); +__m128d _mm_cmpeq_pd(__m128d, __m128d); +__m128 _mm_cmpeq_ps(__m128, __m128); +__m128d _mm_cmpeq_sd(__m128d, __m128d); +__m128 _mm_cmpeq_ss(__m128, __m128); +int _mm_cmpestra(__m128i, int, __m128i, int, int); +int _mm_cmpestrc(__m128i, int, __m128i, int, int); +int _mm_cmpestri(__m128i, int, __m128i, int, int); +__m128i _mm_cmpestrm(__m128i, int, __m128i, int, int); +int _mm_cmpestro(__m128i, int, __m128i, int, int); +int _mm_cmpestrs(__m128i, int, __m128i, int, int); +int _mm_cmpestrz(__m128i, int, __m128i, int, int); +__m128d _mm_cmpge_pd(__m128d, __m128d); +__m128 _mm_cmpge_ps(__m128, __m128); +__m128d _mm_cmpge_sd(__m128d, __m128d); +__m128 _mm_cmpge_ss(__m128, __m128); +__m128i _mm_cmpgt_epi16(__m128i, __m128i); +__m128i _mm_cmpgt_epi32(__m128i, __m128i); +__m128i _mm_cmpgt_epi64(__m128i, __m128i); +__m128i _mm_cmpgt_epi8(__m128i, __m128i); +__m128d _mm_cmpgt_pd(__m128d, __m128d); +__m128 _mm_cmpgt_ps(__m128, __m128); +__m128d _mm_cmpgt_sd(__m128d, __m128d); +__m128 _mm_cmpgt_ss(__m128, __m128); +int _mm_cmpistra(__m128i, __m128i, int); +int _mm_cmpistrc(__m128i, __m128i, int); +int _mm_cmpistri(__m128i, __m128i, int); +__m128i _mm_cmpistrm(__m128i, __m128i, int); +int _mm_cmpistro(__m128i, __m128i, int); +int _mm_cmpistrs(__m128i, __m128i, int); +int _mm_cmpistrz(__m128i, __m128i, int); +__m128d _mm_cmple_pd(__m128d, __m128d); +__m128 _mm_cmple_ps(__m128, __m128); +__m128d _mm_cmple_sd(__m128d, __m128d); +__m128 _mm_cmple_ss(__m128, __m128); +__m128i _mm_cmplt_epi16(__m128i, __m128i); +__m128i _mm_cmplt_epi32(__m128i, __m128i); +__m128i _mm_cmplt_epi8(__m128i, __m128i); +__m128d _mm_cmplt_pd(__m128d, __m128d); +__m128 _mm_cmplt_ps(__m128, __m128); +__m128d _mm_cmplt_sd(__m128d, __m128d); +__m128 _mm_cmplt_ss(__m128, __m128); +__m128d _mm_cmpneq_pd(__m128d, __m128d); +__m128 _mm_cmpneq_ps(__m128, __m128); +__m128d _mm_cmpneq_sd(__m128d, __m128d); +__m128 _mm_cmpneq_ss(__m128, __m128); +__m128d _mm_cmpnge_pd(__m128d, __m128d); +__m128 _mm_cmpnge_ps(__m128, __m128); +__m128d _mm_cmpnge_sd(__m128d, __m128d); +__m128 _mm_cmpnge_ss(__m128, __m128); +__m128d _mm_cmpngt_pd(__m128d, __m128d); +__m128 _mm_cmpngt_ps(__m128, __m128); +__m128d _mm_cmpngt_sd(__m128d, __m128d); +__m128 _mm_cmpngt_ss(__m128, __m128); +__m128d _mm_cmpnle_pd(__m128d, __m128d); +__m128 _mm_cmpnle_ps(__m128, __m128); +__m128d _mm_cmpnle_sd(__m128d, __m128d); +__m128 _mm_cmpnle_ss(__m128, __m128); +__m128d _mm_cmpnlt_pd(__m128d, __m128d); +__m128 _mm_cmpnlt_ps(__m128, __m128); +__m128d _mm_cmpnlt_sd(__m128d, __m128d); +__m128 _mm_cmpnlt_ss(__m128, __m128); +__m128d _mm_cmpord_pd(__m128d, __m128d); +__m128 _mm_cmpord_ps(__m128, __m128); +__m128d _mm_cmpord_sd(__m128d, __m128d); +__m128 _mm_cmpord_ss(__m128, __m128); +__m128d _mm_cmpunord_pd(__m128d, __m128d); +__m128 _mm_cmpunord_ps(__m128, __m128); +__m128d _mm_cmpunord_sd(__m128d, __m128d); +__m128 _mm_cmpunord_ss(__m128, __m128); +int _mm_comieq_sd(__m128d, __m128d); +int _mm_comieq_ss(__m128, __m128); +int _mm_comige_sd(__m128d, __m128d); +int _mm_comige_ss(__m128, __m128); +int _mm_comigt_sd(__m128d, __m128d); +int _mm_comigt_ss(__m128, __m128); +int _mm_comile_sd(__m128d, __m128d); +int _mm_comile_ss(__m128, __m128); +int _mm_comilt_sd(__m128d, __m128d); +int _mm_comilt_ss(__m128, __m128); +int _mm_comineq_sd(__m128d, __m128d); +int _mm_comineq_ss(__m128, __m128); +unsigned int _mm_crc32_u16(unsigned int, unsigned short); +unsigned int _mm_crc32_u32(unsigned int, unsigned int); + +unsigned int _mm_crc32_u8(unsigned int, unsigned char); +__m128 _mm_cvt_pi2ps(__m128, __m64); +__m64 _mm_cvt_ps2pi(__m128); +__m128 _mm_cvt_si2ss(__m128, int); +int _mm_cvt_ss2si(__m128); +__m128i _mm_cvtepi16_epi32(__m128i); +__m128i _mm_cvtepi16_epi64(__m128i); +__m128i _mm_cvtepi32_epi64(__m128i); +__m128d _mm_cvtepi32_pd(__m128i); +__m128 _mm_cvtepi32_ps(__m128i); +__m128i _mm_cvtepi8_epi16(__m128i); +__m128i _mm_cvtepi8_epi32(__m128i); +__m128i _mm_cvtepi8_epi64(__m128i); +__m128i _mm_cvtepu16_epi32(__m128i); +__m128i _mm_cvtepu16_epi64(__m128i); +__m128i _mm_cvtepu32_epi64(__m128i); +__m128i _mm_cvtepu8_epi16(__m128i); +__m128i _mm_cvtepu8_epi32(__m128i); +__m128i _mm_cvtepu8_epi64(__m128i); +__m128i _mm_cvtpd_epi32(__m128d); +__m64 _mm_cvtpd_pi32(__m128d); +__m128 _mm_cvtpd_ps(__m128d); +__m128d _mm_cvtpi32_pd(__m64); +__m128i _mm_cvtps_epi32(__m128); +__m128d _mm_cvtps_pd(__m128); +int _mm_cvtsd_si32(__m128d); + + +__m128 _mm_cvtsd_ss(__m128, __m128d); +int _mm_cvtsi128_si32(__m128i); + + +__m128d _mm_cvtsi32_sd(__m128d, int); +__m128i _mm_cvtsi32_si128(int); + + + + + + +__m128d _mm_cvtss_sd(__m128d, __m128); + + +__m64 _mm_cvtt_ps2pi(__m128); +int _mm_cvtt_ss2si(__m128); +__m128i _mm_cvttpd_epi32(__m128d); +__m64 _mm_cvttpd_pi32(__m128d); +__m128i _mm_cvttps_epi32(__m128); +int _mm_cvttsd_si32(__m128d); + + + + +__m128d _mm_div_pd(__m128d, __m128d); +__m128 _mm_div_ps(__m128, __m128); +__m128d _mm_div_sd(__m128d, __m128d); +__m128 _mm_div_ss(__m128, __m128); +__m128d _mm_dp_pd(__m128d, __m128d, int); +__m128 _mm_dp_ps(__m128, __m128, int); +int _mm_extract_epi16(__m128i, int); +int _mm_extract_epi32(__m128i, int); + +int _mm_extract_epi8(__m128i, int); +int _mm_extract_ps(__m128, int); +__m128i _mm_extract_si64(__m128i, __m128i); +__m128i _mm_extracti_si64(__m128i, int, int); +unsigned int _mm_getcsr(void); +__m128i _mm_hadd_epi16(__m128i, __m128i); +__m128i _mm_hadd_epi32(__m128i, __m128i); +__m128d _mm_hadd_pd(__m128d, __m128d); +__m64 _mm_hadd_pi16(__m64, __m64); +__m64 _mm_hadd_pi32(__m64, __m64); +__m128 _mm_hadd_ps(__m128, __m128); +__m128i _mm_hadds_epi16(__m128i, __m128i); +__m64 _mm_hadds_pi16(__m64, __m64); +__m128i _mm_hsub_epi16(__m128i, __m128i); +__m128i _mm_hsub_epi32(__m128i, __m128i); +__m128d _mm_hsub_pd(__m128d, __m128d); +__m64 _mm_hsub_pi16(__m64, __m64); +__m64 _mm_hsub_pi32(__m64, __m64); +__m128 _mm_hsub_ps(__m128, __m128); +__m128i _mm_hsubs_epi16(__m128i, __m128i); +__m64 _mm_hsubs_pi16(__m64, __m64); +__m128i _mm_insert_epi16(__m128i, int, int); +__m128i _mm_insert_epi32(__m128i, int, int); + +__m128i _mm_insert_epi8(__m128i, int, int); +__m128 _mm_insert_ps(__m128, __m128, int); +__m128i _mm_insert_si64(__m128i, __m128i); +__m128i _mm_inserti_si64(__m128i, __m128i, int, int); +__m128i _mm_lddqu_si128(__m128i const *); +void _mm_lfence(void); +__m128d _mm_load1_pd(double const *); +__m128d _mm_load_pd(double const *); +__m128 _mm_load_ps(float const *); +__m128 _mm_load_ps1(float const *); +__m128d _mm_load_sd(double const *); +__m128i _mm_load_si128(__m128i const *); +__m128 _mm_load_ss(float const *); +__m128d _mm_loaddup_pd(double const *); +__m128d _mm_loadh_pd(__m128d, double const *); +__m128 _mm_loadh_pi(__m128, __m64 const *); +__m128i _mm_loadl_epi64(__m128i const *); +__m128d _mm_loadl_pd(__m128d, double const *); +__m128 _mm_loadl_pi(__m128, __m64 const *); +__m128d _mm_loadr_pd(double const *); +__m128 _mm_loadr_ps(float const *); +__m128d _mm_loadu_pd(double const *); +__m128 _mm_loadu_ps(float const *); +__m128i _mm_loadu_si128(__m128i const *); +__m128i _mm_madd_epi16(__m128i, __m128i); +__m128i _mm_maddubs_epi16(__m128i, __m128i); +__m64 _mm_maddubs_pi16(__m64, __m64); +void _mm_maskmoveu_si128(__m128i, __m128i, char *); +__m128i _mm_max_epi16(__m128i, __m128i); +__m128i _mm_max_epi32(__m128i, __m128i); +__m128i _mm_max_epi8(__m128i, __m128i); +__m128i _mm_max_epu16(__m128i, __m128i); +__m128i _mm_max_epu32(__m128i, __m128i); +__m128i _mm_max_epu8(__m128i, __m128i); +__m128d _mm_max_pd(__m128d, __m128d); +__m128 _mm_max_ps(__m128, __m128); +__m128d _mm_max_sd(__m128d, __m128d); +__m128 _mm_max_ss(__m128, __m128); +void _mm_mfence(void); +__m128i _mm_min_epi16(__m128i, __m128i); +__m128i _mm_min_epi32(__m128i, __m128i); +__m128i _mm_min_epi8(__m128i, __m128i); +__m128i _mm_min_epu16(__m128i, __m128i); +__m128i _mm_min_epu32(__m128i, __m128i); +__m128i _mm_min_epu8(__m128i, __m128i); +__m128d _mm_min_pd(__m128d, __m128d); +__m128 _mm_min_ps(__m128, __m128); +__m128d _mm_min_sd(__m128d, __m128d); +__m128 _mm_min_ss(__m128, __m128); +__m128i _mm_minpos_epu16(__m128i); +void _mm_monitor(void const *, unsigned int, unsigned int); +__m128i _mm_move_epi64(__m128i); +__m128d _mm_move_sd(__m128d, __m128d); +__m128 _mm_move_ss(__m128, __m128); +__m128d _mm_movedup_pd(__m128d); +__m128 _mm_movehdup_ps(__m128); +__m128 _mm_movehl_ps(__m128, __m128); +__m128 _mm_moveldup_ps(__m128); +__m128 _mm_movelh_ps(__m128, __m128); +int _mm_movemask_epi8(__m128i); +int _mm_movemask_pd(__m128d); +int _mm_movemask_ps(__m128); +__m64 _mm_movepi64_pi64(__m128i); +__m128i _mm_movpi64_epi64(__m64); +__m128i _mm_mpsadbw_epu8(__m128i, __m128i, int); +__m128i _mm_mul_epi32(__m128i, __m128i); +__m128i _mm_mul_epu32(__m128i, __m128i); +__m128d _mm_mul_pd(__m128d, __m128d); +__m128 _mm_mul_ps(__m128, __m128); +__m128d _mm_mul_sd(__m128d, __m128d); +__m128 _mm_mul_ss(__m128, __m128); +__m64 _mm_mul_su32(__m64, __m64); +__m128i _mm_mulhi_epi16(__m128i, __m128i); +__m128i _mm_mulhi_epu16(__m128i, __m128i); +__m128i _mm_mulhrs_epi16(__m128i, __m128i); +__m64 _mm_mulhrs_pi16(__m64, __m64); +__m128i _mm_mullo_epi16(__m128i, __m128i); +__m128i _mm_mullo_epi32(__m128i, __m128i); +void _mm_mwait(unsigned int, unsigned int); +__m128d _mm_or_pd(__m128d, __m128d); +__m128 _mm_or_ps(__m128, __m128); +__m128i _mm_or_si128(__m128i, __m128i); +__m128i _mm_packs_epi16(__m128i, __m128i); +__m128i _mm_packs_epi32(__m128i, __m128i); +__m128i _mm_packus_epi16(__m128i, __m128i); +__m128i _mm_packus_epi32(__m128i, __m128i); +void _mm_pause(void); +int _mm_popcnt_u32(unsigned int); + +void _mm_prefetch(char const *, int); +__m128 _mm_rcp_ps(__m128); +__m128 _mm_rcp_ss(__m128); +__m128d _mm_round_pd(__m128d, int); +__m128 _mm_round_ps(__m128, int); +__m128d _mm_round_sd(__m128d, __m128d, int); +__m128 _mm_round_ss(__m128, __m128, int); +__m128 _mm_rsqrt_ps(__m128); +__m128 _mm_rsqrt_ss(__m128); +__m128i _mm_sad_epu8(__m128i, __m128i); +__m128i _mm_set1_epi16(short); +__m128i _mm_set1_epi32(int); +__m128i _mm_set1_epi64(__m64); +__m128i _mm_set1_epi64x(__int64); +__m128i _mm_set1_epi8(char); +__m128d _mm_set1_pd(double); +__m64 _mm_set1_pi16(short); +__m64 _mm_set1_pi32(int); +__m64 _mm_set1_pi8(char); +__m128i _mm_set_epi16(short, short, short, short, short, short, short, short); +__m128i _mm_set_epi32(int, int, int, int); +__m128i _mm_set_epi64(__m64, __m64); +__m128i _mm_set_epi64x(__int64, __int64); +__m128i _mm_set_epi8(char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char); +__m128d _mm_set_pd(double, double); +__m64 _mm_set_pi16(short, short, short, short); +__m64 _mm_set_pi32(int, int); +__m64 _mm_set_pi8(char, char, char, char, char, char, char, char); +__m128 _mm_set_ps(float, float, float, float); +__m128 _mm_set_ps1(float); +__m128d _mm_set_sd(double); +__m128 _mm_set_ss(float); +void _mm_setcsr(unsigned int); +__m128i _mm_setl_epi64(__m128i); +__m128i _mm_setr_epi16(short, short, short, short, short, short, short, short); +__m128i _mm_setr_epi32(int, int, int, int); +__m128i _mm_setr_epi64(__m64, __m64); +__m128i _mm_setr_epi64x(__int64, __int64); +__m128i _mm_setr_epi8(char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char); +__m128d _mm_setr_pd(double, double); +__m64 _mm_setr_pi16(short, short, short, short); +__m64 _mm_setr_pi32(int, int); +__m64 _mm_setr_pi8(char, char, char, char, char, char, char, char); +__m128 _mm_setr_ps(float, float, float, float); +__m128d _mm_setzero_pd(void); +__m128 _mm_setzero_ps(void); +__m128i _mm_setzero_si128(void); +__m64 _mm_setzero_si64(void); +void _mm_sfence(void); +__m128i _mm_shuffle_epi32(__m128i, int); +__m128i _mm_shuffle_epi8(__m128i, __m128i); +__m128d _mm_shuffle_pd(__m128d, __m128d, int); +__m64 _mm_shuffle_pi8(__m64, __m64); +__m128 _mm_shuffle_ps(__m128, __m128, unsigned int); +__m128i _mm_shufflehi_epi16(__m128i, int); +__m128i _mm_shufflelo_epi16(__m128i, int); +__m128i _mm_sign_epi16(__m128i, __m128i); +__m128i _mm_sign_epi32(__m128i, __m128i); +__m128i _mm_sign_epi8(__m128i, __m128i); +__m64 _mm_sign_pi16(__m64, __m64); +__m64 _mm_sign_pi32(__m64, __m64); +__m64 _mm_sign_pi8(__m64, __m64); +__m128i _mm_sll_epi16(__m128i, __m128i); +__m128i _mm_sll_epi32(__m128i, __m128i); +__m128i _mm_sll_epi64(__m128i, __m128i); +__m128i _mm_slli_epi16(__m128i, int); +__m128i _mm_slli_epi32(__m128i, int); +__m128i _mm_slli_epi64(__m128i, int); +__m128i _mm_slli_si128(__m128i, int); +__m128d _mm_sqrt_pd(__m128d); +__m128 _mm_sqrt_ps(__m128); +__m128d _mm_sqrt_sd(__m128d, __m128d); +__m128 _mm_sqrt_ss(__m128); +__m128i _mm_sra_epi16(__m128i, __m128i); +__m128i _mm_sra_epi32(__m128i, __m128i); +__m128i _mm_srai_epi16(__m128i, int); +__m128i _mm_srai_epi32(__m128i, int); +__m128i _mm_srl_epi16(__m128i, __m128i); +__m128i _mm_srl_epi32(__m128i, __m128i); +__m128i _mm_srl_epi64(__m128i, __m128i); +__m128i _mm_srli_epi16(__m128i, int); +__m128i _mm_srli_epi32(__m128i, int); +__m128i _mm_srli_epi64(__m128i, int); +__m128i _mm_srli_si128(__m128i, int); +void _mm_store1_pd(double *, __m128d); +void _mm_store_pd(double *, __m128d); +void _mm_store_ps(float *, __m128); +void _mm_store_ps1(float *, __m128); +void _mm_store_sd(double *, __m128d); +void _mm_store_si128(__m128i *, __m128i); +void _mm_store_ss(float *, __m128); +void _mm_storeh_pd(double *, __m128d); +void _mm_storeh_pi(__m64 *, __m128); +void _mm_storel_epi64(__m128i *, __m128i); +void _mm_storel_pd(double *, __m128d); +void _mm_storel_pi(__m64 *, __m128); +void _mm_storer_pd(double *, __m128d); +void _mm_storer_ps(float *, __m128); +void _mm_storeu_pd(double *, __m128d); +void _mm_storeu_ps(float *, __m128); +void _mm_storeu_si128(__m128i *, __m128i); +__m128i _mm_stream_load_si128(const __m128i *); +void _mm_stream_pd(double *, __m128d); +void _mm_stream_pi(__m64 *, __m64); +void _mm_stream_ps(float *, __m128); +void _mm_stream_sd(double *, __m128d); +void _mm_stream_si128(__m128i *, __m128i); +void _mm_stream_si32(int *, int); + +void _mm_stream_ss(float *, __m128); +__m128i _mm_sub_epi16(__m128i, __m128i); +__m128i _mm_sub_epi32(__m128i, __m128i); +__m128i _mm_sub_epi64(__m128i, __m128i); +__m128i _mm_sub_epi8(__m128i, __m128i); +__m128d _mm_sub_pd(__m128d, __m128d); +__m128 _mm_sub_ps(__m128, __m128); +__m128d _mm_sub_sd(__m128d, __m128d); +__m64 _mm_sub_si64(__m64, __m64); +__m128 _mm_sub_ss(__m128, __m128); +__m128i _mm_subs_epi16(__m128i, __m128i); +__m128i _mm_subs_epi8(__m128i, __m128i); +__m128i _mm_subs_epu16(__m128i, __m128i); +__m128i _mm_subs_epu8(__m128i, __m128i); +int _mm_testc_si128(__m128i, __m128i); +int _mm_testnzc_si128(__m128i, __m128i); +int _mm_testz_si128(__m128i, __m128i); +int _mm_ucomieq_sd(__m128d, __m128d); +int _mm_ucomieq_ss(__m128, __m128); +int _mm_ucomige_sd(__m128d, __m128d); +int _mm_ucomige_ss(__m128, __m128); +int _mm_ucomigt_sd(__m128d, __m128d); +int _mm_ucomigt_ss(__m128, __m128); +int _mm_ucomile_sd(__m128d, __m128d); +int _mm_ucomile_ss(__m128, __m128); +int _mm_ucomilt_sd(__m128d, __m128d); +int _mm_ucomilt_ss(__m128, __m128); +int _mm_ucomineq_sd(__m128d, __m128d); +int _mm_ucomineq_ss(__m128, __m128); +__m128i _mm_unpackhi_epi16(__m128i, __m128i); +__m128i _mm_unpackhi_epi32(__m128i, __m128i); +__m128i _mm_unpackhi_epi64(__m128i, __m128i); +__m128i _mm_unpackhi_epi8(__m128i, __m128i); +__m128d _mm_unpackhi_pd(__m128d, __m128d); +__m128 _mm_unpackhi_ps(__m128, __m128); +__m128i _mm_unpacklo_epi16(__m128i, __m128i); +__m128i _mm_unpacklo_epi32(__m128i, __m128i); +__m128i _mm_unpacklo_epi64(__m128i, __m128i); +__m128i _mm_unpacklo_epi8(__m128i, __m128i); +__m128d _mm_unpacklo_pd(__m128d, __m128d); +__m128 _mm_unpacklo_ps(__m128, __m128); +__m128d _mm_xor_pd(__m128d, __m128d); +__m128 _mm_xor_ps(__m128, __m128); +__m128i _mm_xor_si128(__m128i, __m128i); + +unsigned int __cdecl _rotl( unsigned int _Value, int _Shift); +unsigned short __cdecl _rotl16(unsigned short _Value, unsigned char _Shift); +unsigned __int64 __cdecl _rotl64( unsigned __int64 _Value, int _Shift); +unsigned char __cdecl _rotl8(unsigned char _Value, unsigned char _Shift); +unsigned int __cdecl _rotr( unsigned int _Value, int _Shift); +unsigned short __cdecl _rotr16(unsigned short _Value, unsigned char _Shift); +unsigned __int64 __cdecl _rotr64( unsigned __int64 _Value, int _Shift); +unsigned char __cdecl _rotr8(unsigned char _Value, unsigned char _Shift); +int __cdecl _setjmp(jmp_buf); + + +void _rsm(void); +void _lgdt(void *); +void _sgdt(void *); +void _clac(void); +void _stac(void); +unsigned char __cdecl _addcarry_u8(unsigned char, unsigned char, unsigned char, unsigned char *); +unsigned char __cdecl _subborrow_u8(unsigned char, unsigned char, unsigned char, unsigned char *); +unsigned char __cdecl _addcarry_u16(unsigned char, unsigned short, unsigned short, unsigned short *); +unsigned char __cdecl _subborrow_u16(unsigned char, unsigned short, unsigned short, unsigned short *); +unsigned char __cdecl _addcarry_u32(unsigned char, unsigned int, unsigned int, unsigned int *); +unsigned char __cdecl _subborrow_u32(unsigned char, unsigned int, unsigned int, unsigned int *); + + +void _mm_monitorx(void const *, unsigned int, unsigned int); +void _mm_mwaitx(unsigned int, unsigned int, unsigned int); + + +} +# 1151 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0" 2 3 +# 1168 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory0" 3 +#pragma warning(pop) +#pragma pack(pop) +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4700) + +namespace std { + +template inline + pair<_Ty *, ptrdiff_t> + get_temporary_buffer(ptrdiff_t _Count) noexcept + { + _Ty *_Pbuf; + + if (_Count < 0) + _Count = 0; + else if (((size_t)(-1) / sizeof (_Ty) < _Count)) + _Xbad_alloc(); + for (_Pbuf = 0; 0 < _Count; _Count /= 2) + if ((_Pbuf = (_Ty *)operator new( + (size_t)_Count * sizeof (_Ty), nothrow)) != 0) + break; + + return (pair<_Ty *, ptrdiff_t>(_Pbuf, _Count)); + } + + +template inline + void return_temporary_buffer(_Ty *_Pbuf) + { + operator delete(_Pbuf); + } + + +template inline + _FwdIt _Uninitialized_copy_unchecked1(_InIt _First, _InIt _Last, + _FwdIt _Dest, _General_ptr_iterator_tag) + { + _FwdIt _Next = _Dest; + + try { + for (; _First != _Last; ++_Dest, (void)++_First) + _Construct(_Unfancy(_Dest), *_First); + } catch (...) { + _Destroy_range(_Next, _Dest); + throw; + } + + return (_Dest); + } + +template inline + _FwdIt _Uninitialized_copy_unchecked1(_InIt _First, _InIt _Last, + _FwdIt _Dest, _Really_trivial_ptr_iterator_tag) + { + return (_Copy_memmove(_First, _Last, _Dest)); + } + +template inline + _FwdIt _Uninitialized_copy_unchecked(_InIt _First, _InIt _Last, + _FwdIt _Dest) + { + return (_Uninitialized_copy_unchecked1(_First, _Last, + _Dest, _Ptr_copy_cat(_First, _Dest))); + } + +template inline + _FwdIt _Uninitialized_copy1(_InIt _First, _InIt _Last, + _FwdIt _Dest, input_iterator_tag, forward_iterator_tag) + { + return (_Rechecked(_Dest, + _Uninitialized_copy_unchecked(_First, _Last, _Unchecked_idl0(_Dest)))); + } + +template inline + _FwdIt _Uninitialized_copy1(_InIt _First, _InIt _Last, + _FwdIt _Dest, random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_Dest) + ((_Last) - (_First))); + return (_Rechecked(_Dest, + _Uninitialized_copy_unchecked(_First, _Last, _Unchecked(_Dest)))); + } + +template inline + _FwdIt uninitialized_copy(_InIt _First, _InIt _Last, + _FwdIt _Dest) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "uninitialized_copy" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory", 103); + return (_Uninitialized_copy1(_Unchecked(_First), _Unchecked(_Last), + _Dest, _Iter_cat_t<_InIt>(), _Iter_cat_t<_FwdIt>())); + } + + +template inline + _OutTy *uninitialized_copy(_InIt _First, _InIt _Last, + _OutTy (&_Dest)[_OutSize]) + { + return (_Unchecked( + ::std:: uninitialized_copy(_First, _Last, + _Array_iterator<_OutTy, _OutSize>(_Dest)))); + } + + + +template inline + _FwdIt _Uninitialized_copy_n_unchecked1(_InIt _First, _Diff _Count, + _FwdIt _Dest, _General_ptr_iterator_tag) + { + _FwdIt _Next = _Dest; + + try { + for (; 0 < _Count; --_Count, (void)++_Dest, ++_First) + _Construct(_Unfancy(_Dest), *_First); + } catch (...) { + _Destroy_range(_Next, _Dest); + throw; + } + + return (_Dest); + } + +template inline + _FwdIt _Uninitialized_copy_n_unchecked1(_InIt _First, _Diff _Count, + _FwdIt _Dest, _Really_trivial_ptr_iterator_tag) + { + if (0 < _Count) + return (_Copy_memmove(_First, _First + _Count, _Dest)); + return (_Dest); + } + +template inline + _FwdIt _Uninitialized_copy_n_unchecked(_InIt _First, _Diff _Count, + _FwdIt _Dest) + { + return (_Uninitialized_copy_n_unchecked1(_First, _Count, + _Dest, _Ptr_copy_cat(_First, _Dest))); + } + +template inline + _FwdIt uninitialized_copy_n(_InIt _First, _Diff _Count, + _FwdIt _Dest) + { + + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "uninitialized_copy_n" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Rechecked(_Dest, + _Uninitialized_copy_n_unchecked(_Unchecked_n(_First, _Count), _Count, _Unchecked_n(_Dest, _Count)))); + } + + +template inline + _FwdIt uninitialized_copy_n(_InTy (&_First)[_InSize], _Diff _Count, + _FwdIt _Dest) + { + + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "uninitialized_copy_n" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + _Debug_array_size2(_First, _Count, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory", 184); + return (_Rechecked(_Dest, + _Uninitialized_copy_n_unchecked(_First, _Count, _Unchecked_n(_Dest, _Count)))); + } + +template inline + _OutTy *uninitialized_copy_n(_InIt _First, _Diff _Count, + _OutTy (&_Dest)[_OutSize]) + { + _Debug_array_size2(_Dest, _Count, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory", 196); + return (_Uninitialized_copy_n_unchecked(_Unchecked_n(_First, _Count), _Count, _Dest)); + } + +template inline + _OutTy *uninitialized_copy_n(_InTy (&_First)[_InSize], _Diff _Count, + _OutTy (&_Dest)[_OutSize]) + { + _Debug_array_size2(_First, _Count, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory", 208); + _Debug_array_size2(_Dest, _Count, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory", 209); + return (_Uninitialized_copy_n_unchecked(_First, _Count, _Dest)); + } + + + +template inline + _FwdIt _Uninitialized_copy_al_unchecked1(_InIt _First, _InIt _Last, _FwdIt _Dest, + _Wrap_alloc<_Alloc>& _Al, _General_ptr_iterator_tag, _Any_tag) + { + _FwdIt _Next = _Dest; + + try { + for (; _First != _Last; ++_Dest, (void)++_First) + _Al.construct(_Unfancy(_Dest), *_First); + } catch (...) { + _Destroy_range(_Next, _Dest, _Al); + throw; + } + + return (_Dest); + } + +template inline + _Ty2 *_Uninitialized_copy_al_unchecked1(_Ty1 *_First, _Ty1 *_Last, _Ty2 *_Dest, + _Wrap_alloc<_Alloc>&, _Really_trivial_ptr_iterator_tag, true_type) + { + return (_Copy_memmove(_First, _Last, _Dest)); + } + +template inline + _FwdIt _Uninitialized_copy_al_unchecked(_InIt _First, _InIt _Last, _FwdIt _Dest, + _Wrap_alloc<_Alloc>& _Al) + { + return (_Uninitialized_copy_al_unchecked1(_First, _Last, _Dest, _Al, + _Ptr_copy_cat(_First, _Dest), + _Uses_default_construct_t<_Alloc, decltype(_Unfancy(_Dest)), decltype(*_First)>())); + } + +template inline + _FwdIt _Uninitialized_copy(_InIt _First, _InIt _Last, _FwdIt _Dest, + _Wrap_alloc<_Alloc>& _Al) + { + + + return (_Rechecked(_Dest, + _Uninitialized_copy_al_unchecked(_Unchecked(_First), _Unchecked(_Last), + _Unchecked(_Dest), _Al))); + } + + +template inline + _FwdIt _Uninitialized_move_al_unchecked1(_InIt _First, _InIt _Last, _FwdIt _Dest, + _Wrap_alloc<_Alloc>& _Al, _General_ptr_iterator_tag, _Any_tag) + { + _FwdIt _Next = _Dest; + + try { + for (; _First != _Last; ++_Dest, (void)++_First) + _Al.construct(_Unfancy(_Dest), ::std:: move(*_First)); + } catch (...) { + _Destroy_range(_Next, _Dest, _Al); + throw; + } + + return (_Dest); + } + +template inline + _Ty2 *_Uninitialized_move_al_unchecked1(_Ty1 *_First, _Ty1 *_Last, _Ty2 *_Dest, + _Wrap_alloc<_Alloc>&, _Really_trivial_ptr_iterator_tag, true_type) + { + return (_Copy_memmove(_First, _Last, _Dest)); + } + +template inline + _FwdIt _Uninitialized_move_al_unchecked(_InIt _First, _InIt _Last, _FwdIt _Dest, + _Wrap_alloc<_Alloc>& _Al) + { + typedef decltype(::std:: move(*_First)) _Src_type; + return (_Uninitialized_move_al_unchecked1(_First, _Last, _Dest, _Al, + _Ptr_move_cat(_First, _Dest), + _Uses_default_construct_t<_Alloc, decltype(_Unfancy(_Dest)), _Src_type>())); + } + +template inline + _FwdIt _Uninitialized_move(_InIt _First, _InIt _Last, _FwdIt _Dest, + _Wrap_alloc<_Alloc>& _Al) + { + + + return (_Rechecked(_Dest, + _Uninitialized_move_al_unchecked(_Unchecked(_First), _Unchecked(_Last), + _Unchecked(_Dest), _Al))); + } + + +template inline + void _Uninitialized_fill_unchecked1(_FwdIt _First, _FwdIt _Last, const _Tval& _Val, false_type) + { + _FwdIt _Next = _First; + + try { + for (; _First != _Last; ++_First) + _Construct(_Unfancy(_First), _Val); + } catch (...) { + _Destroy_range(_Next, _First); + throw; + } + } + +template inline + void _Uninitialized_fill_unchecked1(_FwdIt _First, _FwdIt _Last, const _Tval& _Val, true_type) + { + :: memset(_First, _Val, _Last - _First); + } + +template inline + void _Uninitialized_fill_unchecked(_FwdIt _First, _FwdIt _Last, const _Tval& _Val) + { + _Uninitialized_fill_unchecked1(_First, _Last, _Val, _Fill_memset_is_safe(_First, _Val)); + } + +template inline + void uninitialized_fill(_FwdIt _First, _FwdIt _Last, const _Tval& _Val) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory", 355); + _Uninitialized_fill_unchecked(_Unchecked(_First), _Unchecked(_Last), _Val); + } + + +template inline + _FwdIt _Uninitialized_fill_n_unchecked1(_FwdIt _First, _Diff _Count, const _Tval& _Val, false_type) + { + _FwdIt _Next = _First; + + try { + for (; 0 < _Count; --_Count, (void)++_First) + _Construct(_Unfancy(_First), _Val); + } catch (...) { + _Destroy_range(_Next, _First); + throw; + } + + return (_First); + } + +template inline + _FwdIt _Uninitialized_fill_n_unchecked1(_FwdIt _First, _Diff _Count, const _Tval& _Val, true_type) + { + if (0 < _Count) + { + :: memset(_First, _Val, _Count); + return (_First + _Count); + } + + return (_First); + } + +template inline + _FwdIt _Uninitialized_fill_n_unchecked(_FwdIt _First, _Diff _Count, const _Tval& _Val) + { + return (_Uninitialized_fill_n_unchecked1(_First, _Count, _Val, _Fill_memset_is_safe(_First, _Val))); + } + +template inline + _FwdIt uninitialized_fill_n(_FwdIt _First, _Diff _Count, + const _Tval& _Val) + { + return (_Rechecked(_First, + _Uninitialized_fill_n_unchecked(_Unchecked_n(_First, _Count), _Count, _Val))); + } + + +template inline + void _Uninit_alloc_fill_n1(_FwdIt _First, _Diff _Count, const _Iter_value_t<_FwdIt> * _Pval, + _Wrap_alloc<_Alloc>& _Al, false_type) + { + _FwdIt _Next = _First; + + try { + for (; 0 < _Count; --_Count, (void)++_First) + _Al.construct(_Unfancy(_First), *_Pval); + } catch (...) { + _Destroy_range(_Next, _First, _Al); + throw; + } + } + +template inline + void _Uninit_alloc_fill_n1(_FwdIt _First, _Diff _Count, const _Iter_value_t<_FwdIt> * _Pval, + _Wrap_alloc<_Alloc>&, true_type) + { + :: memset(_First, *_Pval, _Count); + } + +template inline + void _Uninitialized_fill_n(_FwdIt _First, _Diff _Count, + const _Iter_value_t<_FwdIt> * _Pval, _Wrap_alloc<_Alloc>& _Al) + { + _Uninit_alloc_fill_n1(_First, _Count, _Pval, _Al, + typename conjunction>::type()); + } + +template inline + void _Uninitialized_default_fill_n1(_FwdIt _First, _Diff _Count, + _Wrap_alloc<_Alloc>& _Al, false_type) + { + _FwdIt _Next = _First; + + try { + for (; 0 < _Count; --_Count, (void)++_First) + _Al.construct(_Unfancy(_First)); + } catch (...) { + _Destroy_range(_Next, _First, _Al); + throw; + } + } + +template inline + void _Uninitialized_default_fill_n1(_FwdIt _First, _Diff _Count, + _Wrap_alloc<_Alloc>&, true_type) + { + :: memset(_First, 0, _Count * sizeof(_Iter_value_t<_FwdIt>)); + } + +template inline + void _Uninitialized_default_fill_n(_FwdIt _First, _Diff _Count, + _Wrap_alloc<_Alloc>& _Al) + { + typedef _Iter_value_t<_FwdIt> _Ty; + _Uninitialized_default_fill_n1(_First, _Count, _Al, + typename conjunction< + is_pointer<_FwdIt>, + is_scalar<_Ty>, + negation>, + negation>, + _Uses_default_construct<_Alloc, decltype(_Unfancy(_First))>>::type()); + } + + +template + class raw_storage_iterator + : public _Outit + { +public: + explicit raw_storage_iterator(_OutIt _First) + : _Next(_First) + { + } + + raw_storage_iterator& operator*() + { + return (*this); + } + + raw_storage_iterator& operator=(const _Ty& _Val) + { + _Construct(_Unfancy(_Next), _Val); + return (*this); + } + + raw_storage_iterator& operator=(_Ty&& _Val) + { + _Construct(_Unfancy(_Next), ::std:: move(_Val)); + return (*this); + } + + raw_storage_iterator& operator++() + { + ++_Next; + return (*this); + } + + raw_storage_iterator operator++(int) + { + raw_storage_iterator _Ans = *this; + ++_Next; + return (_Ans); + } + + _OutIt base() const + { + return (_Next); + } + +private: + _OutIt _Next; + }; + + +template + class _Temp_iterator + : public _Outit + { +public: + typedef _Ty *_Pty; + + _Temp_iterator(ptrdiff_t _Count = 0) + { + _Buf._Begin = 0; + _Buf._Current = 0; + _Buf._Hiwater = 0; + _Buf._Size = _Count; + _Pbuf = &_Buf; + } + + _Temp_iterator(const _Temp_iterator& _Right) + { + _Buf._Begin = 0; + _Buf._Current = 0; + _Buf._Hiwater = 0; + _Buf._Size = 0; + *this = _Right; + } + + ~_Temp_iterator() noexcept + { + if (_Buf._Begin != 0) + { + for (_Pty _Next = _Buf._Begin; + _Next != _Buf._Hiwater; ++_Next) + _Destroy(_Next); + ::std:: return_temporary_buffer(_Buf._Begin); + } + } + + _Temp_iterator& operator=(const _Temp_iterator& _Right) + { + _Pbuf = _Right._Pbuf; + return (*this); + } + + _Temp_iterator& operator=(const _Ty& _Val) + { + if (_Pbuf->_Current < _Pbuf->_Hiwater) + *_Pbuf->_Current++ = _Val; + else + { + _Pty _Ptr = _Pbuf->_Current; + _Construct(_Ptr, _Val); + _Pbuf->_Hiwater = ++_Pbuf->_Current; + } + + return (*this); + } + + _Temp_iterator& operator=(_Ty&& _Val) + { + if (_Pbuf->_Current < _Pbuf->_Hiwater) + *_Pbuf->_Current++ = + ::std:: forward<_Ty>(_Val); + else + { + _Pty _Ptr = _Pbuf->_Current; + _Construct(_Ptr, ::std:: forward<_Ty>(_Val)); + _Pbuf->_Hiwater = ++_Pbuf->_Current; + } + + return (*this); + } + + _Temp_iterator& operator*() + { + return (*this); + } + + _Temp_iterator& operator++() + { + return (*this); + } + + _Temp_iterator& operator++(int) + { + return (*this); + } + + _Temp_iterator& _Init() + { + _Pbuf->_Current = _Pbuf->_Begin; + return (*this); + } + + _Pty _First() const + { + return (_Pbuf->_Begin); + } + + _Pty _Last() const + { + return (_Pbuf->_Current); + } + + ptrdiff_t _Maxlen() + { + if (_Pbuf->_Begin == 0 && 0 < _Pbuf->_Size) + { + pair<_Pty, ptrdiff_t> _Pair = + + ::std:: get_temporary_buffer<_Ty>(_Pbuf->_Size); + + _Pbuf->_Begin = _Pair.first; + _Pbuf->_Current = _Pair.first; + _Pbuf->_Hiwater = _Pair.first; + _Pbuf->_Size = _Pair.second; + } + + return (_Pbuf->_Size); + } + +private: + struct _Bufpar + { + _Pty _Begin; + _Pty _Current; + _Pty _Hiwater; + ptrdiff_t _Size; + }; + _Bufpar _Buf; + _Bufpar *_Pbuf; + }; + + + +template + class auto_ptr; + +template + struct auto_ptr_ref + { + explicit auto_ptr_ref(_Ty *_Right) + : _Ref(_Right) + { + } + + _Ty *_Ref; + }; + +template + class auto_ptr + { +public: + typedef auto_ptr<_Ty> _Myt; + typedef _Ty element_type; + + explicit auto_ptr(_Ty *_Ptr = 0) noexcept + : _Myptr(_Ptr) + { + } + + auto_ptr(_Myt& _Right) noexcept + : _Myptr(_Right.release()) + { + } + + auto_ptr(auto_ptr_ref<_Ty> _Right) noexcept + { + _Ty *_Ptr = _Right._Ref; + _Right._Ref = 0; + _Myptr = _Ptr; + } + + template + operator auto_ptr<_Other>() noexcept + { + return (auto_ptr<_Other>(*this)); + } + + template + operator auto_ptr_ref<_Other>() noexcept + { + _Other *_Cvtptr = _Myptr; + auto_ptr_ref<_Other> _Ans(_Cvtptr); + _Myptr = 0; + return (_Ans); + } + + template + _Myt& operator=(auto_ptr<_Other>& _Right) noexcept + { + reset(_Right.release()); + return (*this); + } + + template + auto_ptr(auto_ptr<_Other>& _Right) noexcept + : _Myptr(_Right.release()) + { + } + + _Myt& operator=(_Myt& _Right) noexcept + { + reset(_Right.release()); + return (*this); + } + + _Myt& operator=(auto_ptr_ref<_Ty> _Right) noexcept + { + _Ty *_Ptr = _Right._Ref; + _Right._Ref = 0; + reset(_Ptr); + return (*this); + } + + ~auto_ptr() noexcept + { + delete _Myptr; + } + + _Ty& operator*() const noexcept + { + + if (_Myptr == 0) + _Debug_message(L"auto_ptr not dereferencable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory", 764); + + + return (*get()); + } + + _Ty *operator->() const noexcept + { + + if (_Myptr == 0) + _Debug_message(L"auto_ptr not dereferencable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xmemory", 774); + + + return (get()); + } + + _Ty *get() const noexcept + { + return (_Myptr); + } + + _Ty *release() noexcept + { + _Ty *_Tmp = _Myptr; + _Myptr = 0; + return (_Tmp); + } + + void reset(_Ty *_Ptr = 0) + { + if (_Ptr != _Myptr) + delete _Myptr; + _Myptr = _Ptr; + } + +private: + _Ty *_Myptr; + }; + +} + + +#pragma warning(pop) +#pragma pack(pop) +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdexcept" 1 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +namespace std { +#pragma warning(disable: 4127) + +#pragma warning(disable: 4251) + +template, + class _Ax = allocator<_Elem> > + class basic_string; + + +template + class _String_const_iterator + : public _Iterator012 + { +public: + typedef _String_const_iterator<_Mystr> _Myiter; + typedef random_access_iterator_tag iterator_category; + + typedef typename _Mystr::value_type value_type; + typedef typename _Mystr::difference_type difference_type; + typedef typename _Mystr::const_pointer pointer; + typedef typename _Mystr::const_reference reference; + + _String_const_iterator() + : _Ptr() + { + } + + _String_const_iterator(pointer _Parg, const _Container_base *_Pstring) + : _Ptr(_Parg) + { + this->_Adopt(_Pstring); + } + + typedef pointer _Unchecked_type; + + _Myiter& _Rechecked(_Unchecked_type _Right) + { + _Ptr = _Right; + return (*this); + } + + _Unchecked_type _Unchecked() const + { + return (_Ptr); + } + + reference operator*() const + { + + const auto _Mycont = static_cast(this->_Getcont()); + const auto _Contptr = _Mycont ? _Mycont->_Myptr() : 0; + if (_Mycont == 0 + || _Ptr == nullptr_t{} + || _Unfancy(_Ptr) < _Contptr + || _Contptr + _Mycont->_Mysize <= _Unfancy(_Ptr)) + { + _Debug_message(L"string iterator not dereferencable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 76); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 77, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 77, 0); }; + } +# 88 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring" 3 + ; + + return (*_Ptr); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + + const auto _Mycont = static_cast(this->_Getcont()); + if (_Mycont == 0 + || _Ptr == nullptr_t{} + || _Mycont->_Myptr() + _Mycont->_Mysize <= _Unfancy(_Ptr)) + { + _Debug_message(L"string iterator not incrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 106); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 107, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 107, 0); }; + } +# 117 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring" 3 + ++_Ptr; + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + + const auto _Mycont = static_cast(this->_Getcont()); + if (_Mycont == 0 + || _Ptr == nullptr_t{} + || _Unfancy(_Ptr) <= _Mycont->_Myptr()) + { + _Debug_message(L"string iterator not decrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 136); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 137, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 137, 0); }; + } +# 147 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring" 3 + --_Ptr; + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + + _Myiter& operator+=(difference_type _Off) + { + + if (_Off != 0) + { + const auto _Mycont = static_cast(this->_Getcont()); + const auto _Contptr = _Mycont ? _Mycont->_Myptr() : 0; + if (_Mycont == 0 + || _Ptr == nullptr_t{} + || _Unfancy(_Ptr) + _Off < _Contptr + || _Contptr + _Mycont->_Mysize < _Unfancy(_Ptr) + _Off) + { + _Debug_message(L"string iterator + offset out of range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 170); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 171, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 171, 0); }; + } + } +# 187 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring" 3 + _Ptr += _Off; + return (*this); + } + + _Myiter operator+(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp += _Off); + } + + _Myiter& operator-=(difference_type _Off) + { + return (*this += -_Off); + } + + _Myiter operator-(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp -= _Off); + } + + difference_type operator-(const _Myiter& _Right) const + { + _Compat(_Right); + return (_Ptr - _Right._Ptr); + } + + reference operator[](difference_type _Off) const + { + return (*(*this + _Off)); + } + + bool operator==(const _Myiter& _Right) const + { + _Compat(_Right); + return (_Ptr == _Right._Ptr); + } + + bool operator!=(const _Myiter& _Right) const + { + return (!(*this == _Right)); + } + + bool operator<(const _Myiter& _Right) const + { + _Compat(_Right); + return (_Ptr < _Right._Ptr); + } + + bool operator>(const _Myiter& _Right) const + { + return (_Right < *this); + } + + bool operator<=(const _Myiter& _Right) const + { + return (!(_Right < *this)); + } + + bool operator>=(const _Myiter& _Right) const + { + return (!(*this < _Right)); + } + + + void _Compat(const _Myiter& _Right) const + { + if (this->_Getcont() != _Right._Getcont()) + { + _Debug_message(L"string iterators incompatible", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 256); + { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 257, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 257, 0); }; + } + } +# 273 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring" 3 + pointer _Ptr; + }; + +template inline + typename _String_const_iterator<_Mystr>::_Unchecked_type + _Unchecked(_String_const_iterator<_Mystr> _Iter) + { + return (_Iter._Unchecked()); + } + +template inline + _String_const_iterator<_Mystr> + _Rechecked(_String_const_iterator<_Mystr>& _Iter, + typename _String_const_iterator<_Mystr> + ::_Unchecked_type _Right) + { + return (_Iter._Rechecked(_Right)); + } + +template inline + _String_const_iterator<_Mystr> operator+( + typename _String_const_iterator<_Mystr> + ::difference_type _Off, + _String_const_iterator<_Mystr> _Next) + { + return (_Next += _Off); + } + + +template + class _String_iterator + : public _String_const_iterator<_Mystr> + { +public: + typedef _String_iterator<_Mystr> _Myiter; + typedef _String_const_iterator<_Mystr> _Mybase; + typedef random_access_iterator_tag iterator_category; + + typedef typename _Mystr::value_type value_type; + typedef typename _Mystr::difference_type difference_type; + typedef typename _Mystr::pointer pointer; + typedef typename _Mystr::reference reference; + + _String_iterator() + { + } + + _String_iterator(pointer _Parg, const _Container_base *_Pstring) + : _Mybase(_Parg, _Pstring) + { + } + + typedef pointer _Unchecked_type; + + _Myiter& _Rechecked(_Unchecked_type _Right) + { + this->_Ptr = _Right; + return (*this); + } + + _Unchecked_type _Unchecked() const + { + return (_Const_cast(this->_Ptr)); + } + + reference operator*() const + { + return ((reference)**(_Mybase *)this); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + ++*(_Mybase *)this; + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + --*(_Mybase *)this; + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + + _Myiter& operator+=(difference_type _Off) + { + *(_Mybase *)this += _Off; + return (*this); + } + + _Myiter operator+(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp += _Off); + } + + _Myiter& operator-=(difference_type _Off) + { + return (*this += -_Off); + } + + _Myiter operator-(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp -= _Off); + } + + difference_type operator-(const _Mybase& _Right) const + { + return (*(_Mybase *)this - _Right); + } + + reference operator[](difference_type _Off) const + { + return (*(*this + _Off)); + } + }; + +template inline + typename _String_iterator<_Mystr>::_Unchecked_type + _Unchecked(_String_iterator<_Mystr> _Iter) + { + return (_Iter._Unchecked()); + } + +template inline + _String_iterator<_Mystr> + _Rechecked(_String_iterator<_Mystr>& _Iter, + typename _String_iterator<_Mystr> + ::_Unchecked_type _Right) + { + return (_Iter._Rechecked(_Right)); + } + +template inline + _String_iterator<_Mystr> operator+( + typename _String_iterator<_Mystr> + ::difference_type _Off, + _String_iterator<_Mystr> _Next) + { + return (_Next += _Off); + } + + +template + struct _String_iter_types + { + typedef _Value_type value_type; + typedef _Size_type size_type; + typedef _Difference_type difference_type; + typedef _Pointer pointer; + typedef _Const_pointer const_pointer; + typedef _Reference reference; + typedef _Const_reference const_reference; + }; + +template + struct _String_base_types + { + typedef _Alloc0 _Alloc; + typedef _String_base_types<_Ty, _Alloc> _Myt; + + typedef _Wrap_alloc<_Alloc> _Alty0; + typedef typename _Alty0::template rebind<_Ty>::other _Alty; + + + typedef typename _If<_Is_simple_alloc<_Alty>::value, + _Simple_types, + _String_iter_types >::type + _Val_types; + }; + + +template + class _String_val + : public _Container_base + { +public: + typedef _String_val<_Val_types> _Myt; + + typedef typename _Val_types::value_type value_type; + typedef typename _Val_types::size_type size_type; + typedef typename _Val_types::difference_type difference_type; + typedef typename _Val_types::pointer pointer; + typedef typename _Val_types::const_pointer const_pointer; + typedef typename _Val_types::reference reference; + typedef typename _Val_types::const_reference const_reference; + + typedef _String_iterator<_Myt> iterator; + typedef _String_const_iterator<_Myt> const_iterator; + + _String_val() + : _Bx(), + _Mysize(0), + _Myres(0) + { + } + + enum + { + _BUF_SIZE = 16 / sizeof (value_type) < 1 ? 1 + : 16 / sizeof (value_type)}; + enum + { + _ALLOC_MASK = sizeof (value_type) <= 1 ? 15 + : sizeof (value_type) <= 2 ? 7 + : sizeof (value_type) <= 4 ? 3 + : sizeof (value_type) <= 8 ? 1 : 0}; + + value_type *_Myptr() + { + return (this->_BUF_SIZE <= _Myres + ? _Unfancy(_Bx._Ptr) + : _Bx._Buf); + } + + const value_type *_Myptr() const + { + return (this->_BUF_SIZE <= _Myres + ? _Unfancy(_Bx._Ptr) + : _Bx._Buf); + } + + union _Bxty + { + _Bxty() + { + } + + ~_Bxty() noexcept + { + } + + value_type _Buf[_BUF_SIZE]; + pointer _Ptr; + char _Alias[_BUF_SIZE]; + } _Bx; + + size_type _Mysize; + size_type _Myres; + }; + + +template + class _String_alloc + { +public: + typedef _String_alloc<_Alloc_types> _Myt; + typedef typename _Alloc_types::_Alloc _Alloc; + typedef typename _Alloc_types::_Alty _Alty; + typedef typename _Alloc_types::_Val_types _Val_types; + + typedef typename _Val_types::value_type value_type; + typedef typename _Val_types::size_type size_type; + typedef typename _Val_types::difference_type difference_type; + typedef typename _Val_types::pointer pointer; + typedef typename _Val_types::const_pointer const_pointer; + typedef typename _Val_types::reference reference; + typedef typename _Val_types::const_reference const_reference; + + typedef _String_iterator<_String_val<_Val_types> > iterator; + typedef _String_const_iterator<_String_val<_Val_types> > const_iterator; + + enum + { + _BUF_SIZE = _String_val<_Val_types>::_BUF_SIZE + }; + + enum + { + _ALLOC_MASK = _String_val<_Val_types>::_ALLOC_MASK + }; + + value_type *_Myptr() + { + return (_Get_data()._Myptr()); + } + + const value_type *_Myptr() const + { + return (_Get_data()._Myptr()); + } +# 611 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring" 3 + _String_alloc() + : _Mypair(_Zero_then_variadic_args_t()) + { + _Alloc_proxy(); + } + + template, _Myt>::value> > + _String_alloc(_Any_alloc&& _Al) + : _Mypair(_One_then_variadic_args_t(), + ::std:: forward<_Any_alloc>(_Al)) + { + _Alloc_proxy(); + } + + ~_String_alloc() noexcept + { + _Free_proxy(); + } + + void _Copy_alloc(const _Alty& _Al) + { + _Free_proxy(); + _Pocca(_Getal(), _Al); + _Alloc_proxy(); + } + + void _Move_alloc(_Alty& _Al) + { + _Free_proxy(); + _Pocma(_Getal(), _Al); + _Alloc_proxy(); + } + + void _Alloc_proxy() + { + typename _Alty::template rebind<_Container_proxy>::other + _Alproxy(_Getal()); + _Myproxy() = _Unfancy(_Alproxy.allocate(1)); + _Alproxy.construct(_Myproxy(), _Container_proxy()); + _Myproxy()->_Mycont = &_Get_data(); + } + + void _Free_proxy() + { + typename _Alty::template rebind<_Container_proxy>::other + _Alproxy(_Getal()); + _Orphan_all(); + _Alproxy.destroy(_Myproxy()); + _Alproxy.deallocate(_Alproxy.address(*_Myproxy()), 1); + _Myproxy() = 0; + } + + _Iterator_base12 **_Getpfirst() const + { + return (_Get_data()._Getpfirst()); + } + + _Container_proxy * & _Myproxy() noexcept + { + return (_Get_data()._Myproxy); + } + + _Container_proxy * const & _Myproxy() const noexcept + { + return (_Get_data()._Myproxy); + } + + + void _Orphan_all() + { + _Get_data()._Orphan_all(); + } + + void _Swap_all(_Myt& _Right) + { + _Get_data()._Swap_all(_Right._Get_data()); + } + + _Alty& _Getal() noexcept + { + return (_Mypair._Get_first()); + } + + const _Alty& _Getal() const noexcept + { + return (_Mypair._Get_first()); + } + + _String_val<_Val_types>& _Get_data() noexcept + { + return (_Mypair._Get_second()); + } + + const _String_val<_Val_types>& _Get_data() const noexcept + { + return (_Mypair._Get_second()); + } + + typedef typename _String_val<_Val_types>::_Bxty _Bxty; + + _Bxty& _Bx() noexcept + { + return (_Get_data()._Bx); + } + + const _Bxty& _Bx() const noexcept + { + return (_Get_data()._Bx); + } + + size_type& _Mysize() noexcept + { + return (_Get_data()._Mysize); + } + + const size_type& _Mysize() const noexcept + { + return (_Get_data()._Mysize); + } + + size_type& _Myres() noexcept + { + return (_Get_data()._Myres); + } + + const size_type& _Myres() const noexcept + { + return (_Get_data()._Myres); + } + +private: + _Compressed_pair<_Alty, _String_val<_Val_types> > _Mypair; + }; + + +template + class basic_string + : public _String_alloc<_String_base_types<_Elem, _Alloc> > + { +public: + typedef basic_string<_Elem, _Traits, _Alloc> _Myt; + typedef _String_alloc<_String_base_types<_Elem, _Alloc> > _Mybase; + typedef _Traits traits_type; + typedef _Alloc allocator_type; + + typedef typename _Mybase::_Alty _Alty; + + typedef typename _Mybase::value_type value_type; + typedef typename _Mybase::size_type size_type; + typedef typename _Mybase::difference_type difference_type; + typedef typename _Mybase::pointer pointer; + typedef typename _Mybase::const_pointer const_pointer; + typedef typename _Mybase::reference reference; + typedef typename _Mybase::const_reference const_reference; + + typedef typename _Mybase::iterator iterator; + typedef typename _Mybase::const_iterator const_iterator; + + typedef ::std:: reverse_iterator reverse_iterator; + typedef ::std:: reverse_iterator const_reverse_iterator; + + basic_string(const _Myt& _Right) + + : _Mybase(_Right._Getal().select_on_container_copy_construction()) + + + { + _Tidy(); + assign(_Right, 0, npos); + } + + basic_string(const _Myt& _Right, const _Alloc& _Al) + : _Mybase(_Al) + { + _Tidy(); + assign(_Right, 0, npos); + } + + basic_string() noexcept(is_nothrow_default_constructible<_Alloc>::value) + : _Mybase() + { + _Tidy(); + } + + explicit basic_string(const _Alloc& _Al) noexcept + : _Mybase(_Al) + { + _Tidy(); + } + + basic_string(const _Myt& _Right, size_type _Roff, + size_type _Count = npos) + : _Mybase(_Right._Getal()) + { + _Tidy(); + assign(_Right, _Roff, _Count); + } + + basic_string(const _Myt& _Right, size_type _Roff, size_type _Count, + const _Alloc& _Al) + : _Mybase(_Al) + { + _Tidy(); + assign(_Right, _Roff, _Count); + } + + basic_string(const _Elem *_Ptr, size_type _Count) + : _Mybase() + { + _Tidy(); + assign(_Ptr, _Count); + } + + basic_string(const _Elem *_Ptr, size_type _Count, const _Alloc& _Al) + : _Mybase(_Al) + { + _Tidy(); + assign(_Ptr, _Count); + } + + basic_string(const _Elem *_Ptr) + : _Mybase() + { + _Tidy(); + assign(_Ptr); + } + + basic_string(const _Elem *_Ptr, const _Alloc& _Al) + : _Mybase(_Al) + { + _Tidy(); + assign(_Ptr); + } + + basic_string(size_type _Count, _Elem _Ch) + : _Mybase() + { + _Tidy(); + assign(_Count, _Ch); + } + + basic_string(size_type _Count, _Elem _Ch, const _Alloc& _Al) + : _Mybase(_Al) + { + _Tidy(); + assign(_Count, _Ch); + } + + template::value, + void>::type> + basic_string(_Iter _First, _Iter _Last, const _Alloc& _Al = _Alloc()) + : _Mybase(_Al) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 868); + _Tidy(); + _Construct(_Unchecked(_First), _Unchecked(_Last), _Iter_cat_t<_Iter>()); + } + + template + void _Construct(_Iter _First, + _Iter _Last, input_iterator_tag) + { + try { + for (; _First != _Last; ++_First) + append((size_type)1, (_Elem)*_First); + } catch (...) { + _Tidy(true); + throw; + } + } + + template + void _Construct(_Iter _First, + _Iter _Last, forward_iterator_tag) + { + size_type _Count = ::std:: distance(_First, _Last); + reserve(_Count); + _Construct(_First, _Last, input_iterator_tag()); + } + + void _Construct(_Elem *_First, + _Elem *_Last, random_access_iterator_tag) + { + if (_First != _Last) + assign(_First, _Last - _First); + } + + void _Construct(const _Elem *_First, + const _Elem *_Last, random_access_iterator_tag) + { + if (_First != _Last) + assign(_First, _Last - _First); + } + + basic_string(_Myt&& _Right) noexcept + : _Mybase(::std:: move(_Right._Getal())) + { + _Tidy(); + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + + basic_string(_Myt&& _Right, const _Alloc& _Al) + : _Mybase(_Al) + { + if (this->_Getal() != _Right._Getal()) + assign(_Right.begin(), _Right.end()); + else + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + + _Myt& operator=(_Myt&& _Right) + noexcept(_Alty::propagate_on_container_move_assignment::value || _Alty::is_always_equal::value) + + { + if (this != &_Right) + { + _Tidy(true); + + if (_Alty::propagate_on_container_move_assignment::value + && this->_Getal() != _Right._Getal()) + this->_Move_alloc(_Right._Getal()); + + if (this->_Getal() != _Right._Getal()) + assign(_Right.begin(), _Right.end()); + else + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + return (*this); + } + + _Myt& assign(_Myt&& _Right) noexcept + { + if (this == &_Right) + ; + else if (get_allocator() != _Right.get_allocator() + && this->_BUF_SIZE <= _Right._Myres()) + *this = _Right; + else + { + _Tidy(true); + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + return (*this); + } + + void _Assign_rv(_Myt&& _Right) + { + if (_Right._Myres() < this->_BUF_SIZE) + _Traits::move(this->_Bx()._Buf, _Right._Bx()._Buf, + _Right._Mysize() + 1); + else + { + this->_Getal().construct(::std:: addressof(this->_Bx()._Ptr), _Right._Bx()._Ptr); + _Right._Bx()._Ptr = pointer(); + } + this->_Mysize() = _Right._Mysize(); + this->_Myres() = _Right._Myres(); + _Right._Tidy(); + } + + basic_string(::std:: initializer_list<_Elem> _Ilist, + const _Alloc& _Al = allocator_type()) + : _Mybase(_Al) + { + _Tidy(); + assign(_Ilist.begin(), _Ilist.end()); + } + + _Myt& operator=(::std:: initializer_list<_Elem> _Ilist) + { + return (assign(_Ilist.begin(), _Ilist.end())); + } + + _Myt& operator+=(::std:: initializer_list<_Elem> _Ilist) + { + return (append(_Ilist.begin(), _Ilist.end())); + } + + _Myt& assign(::std:: initializer_list<_Elem> _Ilist) + { + return (assign(_Ilist.begin(), _Ilist.end())); + } + + _Myt& append(::std:: initializer_list<_Elem> _Ilist) + { + return (append(_Ilist.begin(), _Ilist.end())); + } + + iterator insert(const_iterator _Where, + ::std:: initializer_list<_Elem> _Ilist) + { + return (insert(_Where, _Ilist.begin(), _Ilist.end())); + } + + _Myt& replace(const_iterator _First, const_iterator _Last, + ::std:: initializer_list<_Elem> _Ilist) + { + return (replace(_First, _Last, _Ilist.begin(), _Ilist.end())); + } + + ~basic_string() noexcept + { + _Tidy(true); + } + + static const size_type npos; + + _Myt& operator=(const _Myt& _Right) + { + if (this != &_Right) + { + if (this->_Getal() != _Right._Getal() + && _Alty::propagate_on_container_copy_assignment::value) + { + _Tidy(true); + this->_Copy_alloc(_Right._Getal()); + } + + assign(_Right); + } + return (*this); + } + + _Myt& operator=(const _Elem *_Ptr) + { + return (assign(_Ptr)); + } + + _Myt& operator=(_Elem _Ch) + { + return (assign(1, _Ch)); + } + + _Myt& operator+=(const _Myt& _Right) + { + return (append(_Right)); + } + + _Myt& operator+=(const _Elem *_Ptr) + { + return (append(_Ptr)); + } + + _Myt& operator+=(_Elem _Ch) + { + return (append((size_type)1, _Ch)); + } + + _Myt& append(const _Myt& _Right) + { + return (append(_Right, 0, npos)); + } + + _Myt& append(const _Myt& _Right, + size_type _Roff, size_type _Count = npos) + { + _Right._Check_offset(_Roff); + _Count = _Right._Clamp_suffix_size(_Roff, _Count); + if (npos - this->_Mysize() <= _Count) + _Xlen(); + + const size_type _Num = this->_Mysize() + _Count; + if (0 < _Count && _Grow(_Num)) + { + _Traits::copy(this->_Myptr() + this->_Mysize(), + _Right._Myptr() + _Roff, _Count); + _Eos(_Num); + } + return (*this); + } + + _Myt& append(const _Elem *_Ptr, size_type _Count) + { + _Debug_pointer_if(_Count != 0, _Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1088); + if (_Inside(_Ptr)) + return (append(*this, + _Ptr - this->_Myptr(), _Count)); + if (npos - this->_Mysize() <= _Count) + _Xlen(); + + const size_type _Num = this->_Mysize() + _Count; + if (0 < _Count && _Grow(_Num)) + { + _Traits::copy(this->_Myptr() + this->_Mysize(), _Ptr, _Count); + _Eos(_Num); + } + return (*this); + } + + _Myt& append(const _Elem *_Ptr) + { + _Debug_pointer(_Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1106); + return (append(_Ptr, _Traits::length(_Ptr))); + } + + _Myt& append(size_type _Count, _Elem _Ch) + { + if (npos - this->_Mysize() <= _Count) + _Xlen(); + + const size_type _Num = this->_Mysize() + _Count; + if (0 < _Count && _Grow(_Num)) + { + _Chassign(this->_Mysize(), _Count, _Ch); + _Eos(_Num); + } + return (*this); + } + + template + typename enable_if<_Is_iterator<_Iter>::value, + _Myt&>::type + append(_Iter _First, _Iter _Last) + { + return (replace(end(), end(), _First, _Last)); + } + + _Myt& append(const_pointer _First, const_pointer _Last) + { + return (replace(end(), end(), _First, _Last)); + } + + _Myt& append(const_iterator _First, const_iterator _Last) + { + return (replace(end(), end(), _First, _Last)); + } + + _Myt& assign(const _Myt& _Right) + { + return (assign(_Right, 0, npos)); + } + + _Myt& assign(const _Myt& _Right, + size_type _Roff, size_type _Count = npos) + { + _Right._Check_offset(_Roff); + _Count = _Right._Clamp_suffix_size(_Roff, _Count); + + if (this == &_Right) + erase((size_type)(_Roff + _Count)), erase(0, _Roff); + else if (_Grow(_Count)) + { + _Traits::copy(this->_Myptr(), + _Right._Myptr() + _Roff, _Count); + _Eos(_Count); + } + return (*this); + } + + _Myt& assign(const _Elem *_Ptr, size_type _Count) + { + _Debug_pointer_if(_Count != 0, _Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1166); + if (_Inside(_Ptr)) + return (assign(*this, + _Ptr - this->_Myptr(), _Count)); + + if (_Grow(_Count)) + { + _Traits::copy(this->_Myptr(), _Ptr, _Count); + _Eos(_Count); + } + return (*this); + } + + _Myt& assign(const _Elem *_Ptr) + { + _Debug_pointer(_Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1181); + return (assign(_Ptr, _Traits::length(_Ptr))); + } + + _Myt& assign(size_type _Count, _Elem _Ch) + { + if (_Count == npos) + _Xlen(); + + if (_Grow(_Count)) + { + _Chassign(0, _Count, _Ch); + _Eos(_Count); + } + return (*this); + } + + template + typename enable_if<_Is_iterator<_Iter>::value, + _Myt&>::type + assign(_Iter _First, _Iter _Last) + { + return (replace(begin(), end(), _First, _Last)); + } + + _Myt& assign(const_pointer _First, const_pointer _Last) + { + return (replace(begin(), end(), _First, _Last)); + } + + _Myt& assign(const_iterator _First, const_iterator _Last) + { + return (replace(begin(), end(), _First, _Last)); + } + + _Myt& insert(size_type _Off, const _Myt& _Right) + { + return (insert(_Off, _Right, 0, npos)); + } + + _Myt& insert(size_type _Off, + const _Myt& _Right, size_type _Roff, size_type _Count = npos) + { + _Check_offset(_Off); + _Right._Check_offset(_Roff); + _Count = _Right._Clamp_suffix_size(_Roff, _Count); + if (npos - this->_Mysize() <= _Count) + _Xlen(); + + const size_type _Num = this->_Mysize() + _Count; + if (0 < _Count && _Grow(_Num)) + { + _Traits::move(this->_Myptr() + _Off + _Count, + this->_Myptr() + _Off, + this->_Mysize() - _Off); + if (this == &_Right) + _Traits::move(this->_Myptr() + _Off, + this->_Myptr() + (_Off < _Roff ? _Roff + _Count : _Roff), + _Count); + else + _Traits::copy(this->_Myptr() + _Off, + _Right._Myptr() + _Roff, _Count); + _Eos(_Num); + } + return (*this); + } + + _Myt& insert(size_type _Off, + const _Elem *_Ptr, size_type _Count) + { + _Debug_pointer_if(_Count != 0, _Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1251); + if (_Inside(_Ptr)) + return (insert(_Off, *this, + _Ptr - this->_Myptr(), _Count)); + _Check_offset(_Off); + if (npos - this->_Mysize() <= _Count) + _Xlen(); + const size_type _Num = this->_Mysize() + _Count; + if (0 < _Count && _Grow(_Num)) + { + _Traits::move(this->_Myptr() + _Off + _Count, + this->_Myptr() + _Off, + this->_Mysize() - _Off); + _Traits::copy(this->_Myptr() + _Off, _Ptr, _Count); + _Eos(_Num); + } + return (*this); + } + + _Myt& insert(size_type _Off, const _Elem *_Ptr) + { + _Debug_pointer(_Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1272); + return (insert(_Off, _Ptr, _Traits::length(_Ptr))); + } + + _Myt& insert(size_type _Off, + size_type _Count, _Elem _Ch) + { + _Check_offset(_Off); + if (npos - this->_Mysize() <= _Count) + _Xlen(); + const size_type _Num = this->_Mysize() + _Count; + if (0 < _Count && _Grow(_Num)) + { + _Traits::move(this->_Myptr() + _Off + _Count, + this->_Myptr() + _Off, + this->_Mysize() - _Off); + _Chassign(_Off, _Count, _Ch); + _Eos(_Num); + } + return (*this); + } + + iterator insert(const_iterator _Where) + { + return (insert(_Where, _Elem())); + } + + iterator insert(const_iterator _Where, _Elem _Ch) + { + size_type _Off = _Where - begin(); + insert(_Off, 1, _Ch); + return (begin() + _Off); + } + + iterator insert(const_iterator _Where, size_type _Count, _Elem _Ch) + { + size_type _Off = _Where - begin(); + insert(_Off, _Count, _Ch); + return (begin() + _Off); + } + + template + typename enable_if<_Is_iterator<_Iter>::value, + iterator>::type + insert(const_iterator _Where, _Iter _First, _Iter _Last) + { + size_type _Off = _Where - begin(); + replace(_Where, _Where, _First, _Last); + return (begin() + _Off); + } + + iterator insert(const_iterator _Where, + const_pointer _First, const_pointer _Last) + { + size_type _Off = _Where - begin(); + replace(_Where, _Where, _First, _Last); + return (begin() + _Off); + } + + iterator insert(const_iterator _Where, + const_iterator _First, const_iterator _Last) + { + size_type _Off = _Where - begin(); + replace(_Where, _Where, _First, _Last); + return (begin() + _Off); + } + + _Myt& erase(size_type _Off = 0) + { + _Check_offset(_Off); + _Eos(_Off); + return (*this); + } + + _Myt& erase(size_type _Off, size_type _Count) + { + _Check_offset(_Off); + if (this->_Mysize() - _Off <= _Count) + _Eos(_Off); + else if (0 < _Count) + { + value_type *_Ptr = this->_Myptr() + _Off; + size_type _Newsize = this->_Mysize() - _Count; + _Traits::move(_Ptr, _Ptr + _Count, _Newsize - _Off); + _Eos(_Newsize); + } + return (*this); + } + + iterator erase(const_iterator _Where) + { + size_type _Count = _Where - begin(); + erase(_Count, 1); + return (begin() + _Count); + } + + iterator erase(const_iterator _First, const_iterator _Last) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1370); + size_type _Count = _First - begin(); + erase(_Count, _Last - _First); + return (begin() + _Count); + } + + void clear() noexcept + { + _Eos(0); + } + + _Myt& replace(size_type _Off, size_type _N0, const _Myt& _Right) + { + return (replace(_Off, _N0, _Right, 0, npos)); + } + + _Myt& replace(size_type _Off, + size_type _N0, const _Myt& _Right, size_type _Roff, + size_type _Count = npos) + { + _Check_offset(_Off); + _Right._Check_offset(_Roff); + _N0 = _Clamp_suffix_size(_Off, _N0); + _Count = _Right._Clamp_suffix_size(_Roff, _Count); + if (npos - _Count <= this->_Mysize() - _N0) + _Xlen(); + + const size_type _Nm = this->_Mysize() - _N0 - _Off; + const size_type _Newsize = this->_Mysize() + _Count - _N0; + if (this->_Mysize() < _Newsize) + _Grow(_Newsize); + + if (_Count == _N0) + { + _Traits::move(this->_Myptr() + _Off, + _Right._Myptr() + _Roff, _Count); + } + else if (this != &_Right) + { + _Traits::move(this->_Myptr() + _Off + _Count, + this->_Myptr() + _Off + _N0, _Nm); + _Traits::copy(this->_Myptr() + _Off, + _Right._Myptr() + _Roff, _Count); + } + else if (_Count < _N0) + { + _Traits::move(this->_Myptr() + _Off, + this->_Myptr() + _Roff, _Count); + _Traits::move(this->_Myptr() + _Off + _Count, + this->_Myptr() + _Off + _N0, _Nm); + } + else if (_Roff <= _Off) + { + _Traits::move(this->_Myptr() + _Off + _Count, + this->_Myptr() + _Off + _N0, _Nm); + _Traits::move(this->_Myptr() + _Off, + this->_Myptr() + _Roff, _Count); + } + else if (_Off + _N0 <= _Roff) + { + _Traits::move(this->_Myptr() + _Off + _Count, + this->_Myptr() + _Off + _N0, _Nm); + _Traits::move(this->_Myptr() + _Off, + this->_Myptr() + (_Roff + _Count - _N0), + _Count); + } + else + { + _Traits::move(this->_Myptr() + _Off, + this->_Myptr() + _Roff, _N0); + _Traits::move(this->_Myptr() + _Off + _Count, + this->_Myptr() + _Off + _N0, _Nm); + _Traits::move(this->_Myptr() + _Off + _N0, + this->_Myptr() + _Roff + _Count, + _Count - _N0); + } + + _Eos(_Newsize); + return (*this); + } + + _Myt& replace(size_type _Off, + size_type _N0, const _Elem *_Ptr, size_type _Count) + { + _Debug_pointer_if(_Count != 0, _Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1454); + if (_Inside(_Ptr)) + return (replace(_Off, _N0, *this, + _Ptr - this->_Myptr(), + _Count)); + _Check_offset(_Off); + _N0 = _Clamp_suffix_size(_Off, _N0); + if (npos - _Count <= this->_Mysize() - _N0) + _Xlen(); + size_type _Nm = this->_Mysize() - _N0 - _Off; + + if (_Count < _N0) + _Traits::move(this->_Myptr() + _Off + _Count, + this->_Myptr() + _Off + _N0, + _Nm); + const size_type _Num = this->_Mysize() + _Count - _N0; + if ((0 < _Count || 0 < _N0) + && _Grow(_Num)) + { + if (_N0 < _Count) + _Traits::move(this->_Myptr() + _Off + _Count, + this->_Myptr() + _Off + _N0, _Nm); + _Traits::copy(this->_Myptr() + _Off, _Ptr, _Count); + _Eos(_Num); + } + return (*this); + } + + _Myt& replace(size_type _Off, size_type _N0, const _Elem *_Ptr) + { + _Debug_pointer(_Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1484); + return (replace(_Off, _N0, _Ptr, _Traits::length(_Ptr))); + } + + _Myt& replace(size_type _Off, + size_type _N0, size_type _Count, _Elem _Ch) + { + _Check_offset(_Off); + _N0 = _Clamp_suffix_size(_Off, _N0); + if (npos - _Count <= this->_Mysize() - _N0) + _Xlen(); + size_type _Nm = this->_Mysize() - _N0 - _Off; + + if (_Count < _N0) + _Traits::move(this->_Myptr() + _Off + _Count, + this->_Myptr() + _Off + _N0, + _Nm); + const size_type _Num = this->_Mysize() + _Count - _N0; + if ((0 < _Count || 0 < _N0) + && _Grow(_Num)) + { + if (_N0 < _Count) + _Traits::move(this->_Myptr() + _Off + _Count, + this->_Myptr() + _Off + _N0, _Nm); + _Chassign(_Off, _Count, _Ch); + _Eos(_Num); + } + return (*this); + } + + _Myt& replace(const_iterator _First, const_iterator _Last, + const _Myt& _Right) + { + return (replace(_First - begin(), _Last - _First, _Right)); + } + + _Myt& replace(const_iterator _First, const_iterator _Last, + const _Elem *_Ptr, size_type _Count) + { + return (replace(_First - begin(), _Last - _First, _Ptr, _Count)); + } + + _Myt& replace(const_iterator _First, const_iterator _Last, + const _Elem *_Ptr) + { + return (replace(_First - begin(), _Last - _First, _Ptr)); + } + + _Myt& replace(const_iterator _First, const_iterator _Last, + size_type _Count, _Elem _Ch) + { + return (replace(_First - begin(), _Last - _First, _Count, _Ch)); + } + + template + typename enable_if<_Is_iterator<_Iter>::value, + _Myt&>::type + replace(const_iterator _First, const_iterator _Last, + _Iter _First2, _Iter _Last2) + { + _Myt _Right(_First2, _Last2); + replace(_First, _Last, _Right); + return (*this); + } + + _Myt& replace(const_iterator _First, const_iterator _Last, + const_pointer _First2, const_pointer _Last2) + { + if (_First2 == _Last2) + erase(_First - begin(), _Last - _First); + else + replace(_First - begin(), _Last - _First, + &*_First2, _Last2 - _First2); + return (*this); + } + + _Myt& replace(const_iterator _First, const_iterator _Last, + pointer _First2, pointer _Last2) + { + if (_First2 == _Last2) + erase(_First - begin(), _Last - _First); + else + replace(_First - begin(), _Last - _First, + &*_First2, _Last2 - _First2); + return (*this); + } + + _Myt& replace(const_iterator _First, const_iterator _Last, + const_iterator _First2, const_iterator _Last2) + { + if (_First2 == _Last2) + erase(_First - begin(), _Last - _First); + else + replace(_First - begin(), _Last - _First, + &*_First2, _Last2 - _First2); + return (*this); + } + + _Myt& replace(const_iterator _First, const_iterator _Last, + iterator _First2, iterator _Last2) + { + if (_First2 == _Last2) + erase(_First - begin(), _Last - _First); + else + replace(_First - begin(), _Last - _First, + &*_First2, _Last2 - _First2); + return (*this); + } + + iterator begin() noexcept + { + auto _Mydata = &this->_Get_data(); + return (iterator(this->_Getal().address(*_Mydata->_Myptr()), _Mydata)); + } + + const_iterator begin() const noexcept + { + auto _Mydata = &this->_Get_data(); + return (const_iterator(this->_Getal().address(*_Mydata->_Myptr()), _Mydata)); + } + + iterator end() noexcept + { + auto _Mydata = &this->_Get_data(); + return (iterator(this->_Getal().address(*_Mydata->_Myptr()) + _Mydata->_Mysize, _Mydata)); + } + + const_iterator end() const noexcept + { + auto _Mydata = &this->_Get_data(); + return (const_iterator(this->_Getal().address(*_Mydata->_Myptr()) + _Mydata->_Mysize, _Mydata)); + } + + reverse_iterator rbegin() noexcept + { + return (reverse_iterator(end())); + } + + const_reverse_iterator rbegin() const noexcept + { + return (const_reverse_iterator(end())); + } + + reverse_iterator rend() noexcept + { + return (reverse_iterator(begin())); + } + + const_reverse_iterator rend() const noexcept + { + return (const_reverse_iterator(begin())); + } + + const_iterator cbegin() const noexcept + { + return (begin()); + } + + const_iterator cend() const noexcept + { + return (end()); + } + + const_reverse_iterator crbegin() const noexcept + { + return (rbegin()); + } + + const_reverse_iterator crend() const noexcept + { + return (rend()); + } + + void shrink_to_fit() + { + if ((size() | this->_ALLOC_MASK) < capacity()) + { + _Myt _Tmp(*this); + swap(_Tmp); + } + } + + reference at(size_type _Off) + { + _Check_offset_exclusive(_Off); + return (this->_Myptr()[_Off]); + } + + const_reference at(size_type _Off) const + { + _Check_offset_exclusive(_Off); + return (this->_Myptr()[_Off]); + } + + reference operator[](size_type _Off) + { + + if (this->_Mysize() < _Off) + _Debug_message(L"string subscript out of range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1682); + + + + + + return (this->_Myptr()[_Off]); + } + + const_reference operator[](size_type _Off) const + { + + if (this->_Mysize() < _Off) + _Debug_message(L"string subscript out of range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1695); + + + + + + return (this->_Myptr()[_Off]); + } + + void push_back(_Elem _Ch) + { + auto& _Dx = this->_Get_data(); + auto& _Sz = _Dx._Mysize; + if (_Sz == _Dx._Myres) + _Grow(_Sz + 1); + auto _Ptr = _Dx._Myptr(); + _Traits::assign(_Ptr[_Sz], _Ch); + ++_Sz; + _Traits::assign(_Ptr[_Sz], _Elem()); + } + + void pop_back() + { + erase(this->_Mysize() - 1); + } + + reference front() + { + return (*begin()); + } + + const_reference front() const + { + return (*begin()); + } + + reference back() + { + return (*(end() - 1)); + } + + const_reference back() const + { + return (*(end() - 1)); + } + + const _Elem *c_str() const noexcept + { + return (this->_Myptr()); + } + + const _Elem *data() const noexcept + { + return (this->_Myptr()); + } +# 1758 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring" 3 + size_type length() const noexcept + { + return (this->_Mysize()); + } + + size_type size() const noexcept + { + return (this->_Mysize()); + } + + size_type max_size() const noexcept + { + const size_type _Num = this->_Getal().max_size(); + return (_Num <= 1 ? 1 : _Num - 1); + } + + void resize(size_type _Newsize) + { + resize(_Newsize, _Elem()); + } + + void resize(size_type _Newsize, _Elem _Ch) + { + if (_Newsize <= this->_Mysize()) + _Eos(_Newsize); + else + append(_Newsize - this->_Mysize(), _Ch); + } + + size_type capacity() const noexcept + { + return (this->_Myres()); + } + + void reserve(size_type _Newcap = 0) + { + if (this->_Mysize() <= _Newcap && this->_Myres() != _Newcap) + { + size_type _Size = this->_Mysize(); + if (_Grow(_Newcap, true)) + _Eos(_Size); + } + } + + bool empty() const noexcept + { + return (this->_Mysize() == 0); + } + + __declspec(deprecated("Call to 'std::" "basic_string::copy" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) + size_type copy(_Elem *_Ptr, + size_type _Count, size_type _Off = 0) const + { + _Debug_pointer_if(_Count != 0, _Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1811); + _Check_offset(_Off); + _Count = _Clamp_suffix_size(_Off, _Count); + _Traits::copy(_Ptr, this->_Myptr() + _Off, _Count); + return (_Count); + } + + size_type _Copy_s(_Elem *_Dest, size_type _Dest_size, + size_type _Count, size_type _Off = 0) const + { + _Debug_pointer_if(_Count != 0, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1821); + _Check_offset(_Off); + _Count = _Clamp_suffix_size(_Off, _Count); + _Traits::_Copy_s(_Dest, _Dest_size, this->_Myptr() + _Off, _Count); + return (_Count); + } + + void _Swap_bx(_Myt& _Right) + { + if (this->_BUF_SIZE <= this->_Myres()) + if (this->_BUF_SIZE <= _Right._Myres()) + _Swap_adl(this->_Bx()._Ptr, _Right._Bx()._Ptr); + else + { + pointer _Ptr = this->_Bx()._Ptr; + this->_Getal().destroy(::std:: addressof(this->_Bx()._Ptr)); + _Traits::copy(this->_Bx()._Buf, + _Right._Bx()._Buf, _Right._Mysize() + 1); + this->_Getal().construct(::std:: addressof(_Right._Bx()._Ptr), _Ptr); + } + else + if (_Right._Myres() < this->_BUF_SIZE) + ::std:: swap(this->_Bx()._Buf, _Right._Bx()._Buf); + else + { + pointer _Ptr = _Right._Bx()._Ptr; + this->_Getal().destroy(::std:: addressof(_Right._Bx()._Ptr)); + _Traits::copy(_Right._Bx()._Buf, + this->_Bx()._Buf, this->_Mysize() + 1); + this->_Getal().construct(::std:: addressof(this->_Bx()._Ptr), _Ptr); + } + } + + void swap(_Myt& _Right) + noexcept(_Alty::propagate_on_container_swap::value || _Alty::is_always_equal::value) + + { + if (this != &_Right) + { + _Pocs(this->_Getal(), _Right._Getal()); + this->_Swap_all(_Right); + _Swap_bx(_Right); + ::std:: swap(this->_Mysize(), _Right._Mysize()); + ::std:: swap(this->_Myres(), _Right._Myres()); + } + } + + size_type find(const _Myt& _Right, size_type _Off = 0) const noexcept + { + return (find(_Right._Myptr(), _Off, _Right.size())); + } + + size_type find(const _Elem *_Ptr, + size_type _Off, size_type _Count) const + { + _Debug_pointer_if(_Count != 0, _Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1876); + if (_Count == 0 && _Off <= this->_Mysize()) + return (_Off); + + size_type _Nm; + if (_Off < this->_Mysize() && _Count <= (_Nm = this->_Mysize() - _Off)) + { + const _Elem *_Uptr, *_Vptr; + for (_Nm -= _Count - 1, _Vptr = this->_Myptr() + _Off; + (_Uptr = _Traits::find(_Vptr, _Nm, *_Ptr)) != 0; + _Nm -= _Uptr - _Vptr + 1, _Vptr = _Uptr + 1) + if (_Traits::compare(_Uptr, _Ptr, _Count) == 0) + return (_Uptr - this->_Myptr()); + } + + return (npos); + } + + size_type find(const _Elem *_Ptr, size_type _Off = 0) const + { + _Debug_pointer(_Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1896); + return (find(_Ptr, _Off, _Traits::length(_Ptr))); + } + + size_type find(_Elem _Ch, size_type _Off = 0) const + { + return (find((const _Elem *)&_Ch, _Off, 1)); + } + + size_type rfind(const _Myt& _Right, size_type _Off = npos) const noexcept + { + return (rfind(_Right._Myptr(), _Off, _Right.size())); + } + + size_type rfind(const _Elem *_Ptr, + size_type _Off, size_type _Count) const + { + _Debug_pointer_if(_Count != 0, _Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1913); + if (_Count == 0) + return (_Off < this->_Mysize() ? _Off + : this->_Mysize()); + if (_Count <= this->_Mysize()) + { + const _Elem *_Uptr = this->_Myptr() + + (_Off < this->_Mysize() - _Count ? _Off + : this->_Mysize() - _Count); + for (; ; --_Uptr) + if (_Traits::eq(*_Uptr, *_Ptr) + && _Traits::compare(_Uptr, _Ptr, _Count) == 0) + return (_Uptr - this->_Myptr()); + else if (_Uptr == this->_Myptr()) + break; + } + + return (npos); + } + + size_type rfind(const _Elem *_Ptr, size_type _Off = npos) const + { + _Debug_pointer(_Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1935); + return (rfind(_Ptr, _Off, _Traits::length(_Ptr))); + } + + size_type rfind(_Elem _Ch, size_type _Off = npos) const + { + return (rfind((const _Elem *)&_Ch, _Off, 1)); + } + + size_type find_first_of(const _Myt& _Right, + size_type _Off = 0) const noexcept + { + return (find_first_of(_Right._Myptr(), _Off, _Right.size())); + } + + size_type find_first_of(const _Elem *_Ptr, + size_type _Off, size_type _Count) const + { + _Debug_pointer_if(_Count != 0, _Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1953); + if (0 < _Count && _Off < this->_Mysize()) + { + const _Elem *const _Vptr = this->_Myptr() + this->_Mysize(); + for (const _Elem *_Uptr = this->_Myptr() + _Off; + _Uptr < _Vptr; ++_Uptr) + if (_Traits::find(_Ptr, _Count, *_Uptr) != 0) + return (_Uptr - this->_Myptr()); + } + + return (npos); + } + + size_type find_first_of(const _Elem *_Ptr, + size_type _Off = 0) const + { + _Debug_pointer(_Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1969); + return (find_first_of(_Ptr, _Off, _Traits::length(_Ptr))); + } + + size_type find_first_of(_Elem _Ch, + size_type _Off = 0) const + { + return (find((const _Elem *)&_Ch, _Off, 1)); + } + + size_type find_last_of(const _Myt& _Right, + size_type _Off = npos) const noexcept + { + return (find_last_of(_Right._Myptr(), _Off, _Right.size())); + } + + size_type find_last_of(const _Elem *_Ptr, + size_type _Off, size_type _Count) const + { + _Debug_pointer_if(_Count != 0, _Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 1988); + if (0 < _Count && 0 < this->_Mysize()) + { + const _Elem *_Uptr = this->_Myptr() + + (_Off < this->_Mysize() ? _Off : this->_Mysize() - 1); + for (; ; --_Uptr) + if (_Traits::find(_Ptr, _Count, *_Uptr) != 0) + return (_Uptr - this->_Myptr()); + else if (_Uptr == this->_Myptr()) + break; + } + + return (npos); + } + + size_type find_last_of(const _Elem *_Ptr, + size_type _Off = npos) const + { + _Debug_pointer(_Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 2006); + return (find_last_of(_Ptr, _Off, _Traits::length(_Ptr))); + } + + size_type find_last_of(_Elem _Ch, + size_type _Off = npos) const + { + return (rfind((const _Elem *)&_Ch, _Off, 1)); + } + + size_type find_first_not_of(const _Myt& _Right, + size_type _Off = 0) const noexcept + { + return (find_first_not_of(_Right._Myptr(), _Off, + _Right.size())); + } + + size_type find_first_not_of(const _Elem *_Ptr, + size_type _Off, size_type _Count) const + { + _Debug_pointer_if(_Count != 0, _Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 2026); + if (_Off < this->_Mysize()) + { + const _Elem *const _Vptr = this->_Myptr() + this->_Mysize(); + for (const _Elem *_Uptr = this->_Myptr() + _Off; + _Uptr < _Vptr; ++_Uptr) + if (_Traits::find(_Ptr, _Count, *_Uptr) == 0) + return (_Uptr - this->_Myptr()); + } + return (npos); + } + + size_type find_first_not_of(const _Elem *_Ptr, + size_type _Off = 0) const + { + _Debug_pointer(_Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 2041); + return (find_first_not_of(_Ptr, _Off, _Traits::length(_Ptr))); + } + + size_type find_first_not_of(_Elem _Ch, + size_type _Off = 0) const + { + return (find_first_not_of((const _Elem *)&_Ch, _Off, 1)); + } + + size_type find_last_not_of(const _Myt& _Right, + size_type _Off = npos) const noexcept + { + return (find_last_not_of(_Right._Myptr(), _Off, _Right.size())); + } + + size_type find_last_not_of(const _Elem *_Ptr, + size_type _Off, size_type _Count) const + { + _Debug_pointer_if(_Count != 0, _Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 2060); + if (0 < this->_Mysize()) + { + const _Elem *_Uptr = this->_Myptr() + + (_Off < this->_Mysize() ? _Off : this->_Mysize() - 1); + for (; ; --_Uptr) + if (_Traits::find(_Ptr, _Count, *_Uptr) == 0) + return (_Uptr - this->_Myptr()); + else if (_Uptr == this->_Myptr()) + break; + } + return (npos); + } + + size_type find_last_not_of(const _Elem *_Ptr, + size_type _Off = npos) const + { + _Debug_pointer(_Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 2077); + return (find_last_not_of(_Ptr, _Off, _Traits::length(_Ptr))); + } + + size_type find_last_not_of(_Elem _Ch, + size_type _Off = npos) const + { + return (find_last_not_of((const _Elem *)&_Ch, _Off, 1)); + } + + _Myt substr(size_type _Off = 0, size_type _Count = npos) const + { + return (_Myt(*this, _Off, _Count, get_allocator())); + } + + static int _Traits_compare(const _Elem * const _Left, const size_type _Left_size, + const _Elem * const _Right, const size_type _Right_size) + { + const size_type _Min_size = _Left_size < _Right_size ? _Left_size : _Right_size; + const int _Ans = _Traits::compare(_Left, _Right, _Min_size); + + if (_Ans != 0) + return (_Ans); + + if (_Left_size < _Right_size) + return (-1); + + if (_Left_size > _Right_size) + return (1); + + return (0); + } + + size_type _Clamp_suffix_size(const size_type _Off, const size_type _Size) const + { + const size_type _Max_effective_size = this->_Mysize() - _Off; + if (_Size <= _Max_effective_size) + return (_Size); + else + return (_Max_effective_size); + } + + int compare(const _Myt& _Right) const noexcept + { + return (_Traits_compare(this->_Myptr(), this->_Mysize(), + _Right._Myptr(), _Right._Mysize())); + } + + int compare(size_type _Off, + size_type _N0, const _Myt& _Right) const + { + _Check_offset(_Off); + return (_Traits_compare(this->_Myptr() + _Off, _Clamp_suffix_size(_Off, _N0), + _Right._Myptr(), _Right._Mysize())); + } + + int compare(size_type _Off, + size_type _N0, const _Myt& _Right, + size_type _Roff, size_type _Count = npos) const + { + _Check_offset(_Off); + _Right._Check_offset(_Roff); + return (_Traits_compare(this->_Myptr() + _Off, _Clamp_suffix_size(_Off, _N0), + _Right._Myptr() + _Roff, _Right._Clamp_suffix_size(_Roff, _Count))); + } + + int compare(const _Elem *_Ptr) const + { + _Debug_pointer(_Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 2145); + return (_Traits_compare(this->_Myptr(), this->_Mysize(), + _Ptr, _Traits::length(_Ptr))); + } + + int compare(size_type _Off, size_type _N0, const _Elem *_Ptr) const + { + _Debug_pointer(_Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 2152); + _Check_offset(_Off); + return (_Traits_compare(this->_Myptr() + _Off, _Clamp_suffix_size(_Off, _N0), + _Ptr, _Traits::length(_Ptr))); + } + + int compare(size_type _Off, + size_type _N0, const _Elem *_Ptr, size_type _Count) const + { + _Debug_pointer_if(_Count != 0, _Ptr, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xstring", 2161); + _Check_offset(_Off); + return (_Traits_compare(this->_Myptr() + _Off, _Clamp_suffix_size(_Off, _N0), + _Ptr, _Count)); + } + + allocator_type get_allocator() const noexcept + { + allocator_type _Ret(this->_Getal()); + return (_Ret); + } + + void _Chassign(size_type _Off, size_type _Count, _Elem _Ch) + { + if (_Count == 1) + _Traits::assign(*(this->_Myptr() + _Off), _Ch); + else + _Traits::assign(this->_Myptr() + _Off, _Count, _Ch); + } + + void _Copy(size_type _Newsize, size_type _Oldlen) + { + size_type _Newres = _Newsize | this->_ALLOC_MASK; + if (max_size() < _Newres) + _Newres = _Newsize; + else if (this->_Myres() / 2 <= _Newres / 3) + ; + else if (this->_Myres() <= max_size() - this->_Myres() / 2) + _Newres = this->_Myres() + + this->_Myres() / 2; + else + _Newres = max_size(); + + pointer _Ptr; + try { + _Ptr = this->_Getal().allocate(_Newres + 1); + } catch (...) { + _Newres = _Newsize; + try { + _Ptr = this->_Getal().allocate(_Newres + 1); + } catch (...) { + _Tidy(true); + throw; + } + } + + if (0 < _Oldlen) + _Traits::copy(_Unfancy(_Ptr), this->_Myptr(), + _Oldlen); + _Tidy(true); + this->_Getal().construct(::std:: addressof(this->_Bx()._Ptr), _Ptr); + this->_Myres() = _Newres; + _Eos(_Oldlen); + } + + void _Eos(size_type _Newsize) + { + auto& _Dx = this->_Get_data(); + _Traits::assign(_Dx._Myptr()[_Dx._Mysize = _Newsize], _Elem()); + } + + bool _Grow(size_type _Newsize, + bool _Trim = false) + { + if (max_size() < _Newsize) + _Xlen(); + if (this->_Myres() < _Newsize) + _Copy(_Newsize, this->_Mysize()); + else if (_Trim && _Newsize < this->_BUF_SIZE) + _Tidy(true, + _Newsize < this->_Mysize() ? _Newsize : this->_Mysize()); + else if (_Newsize == 0) + _Eos(0); + return (0 < _Newsize); + } + + bool _Inside(const _Elem *_Ptr) + { + if (_Ptr == nullptr_t{} || _Ptr < this->_Myptr() + || this->_Myptr() + this->_Mysize() <= _Ptr) + return (false); + else + return (true); + } + + void _Tidy(bool _Built = false, + size_type _Newsize = 0) + { + if (!_Built) + ; + else if (this->_BUF_SIZE <= this->_Myres()) + { + pointer _Ptr = this->_Bx()._Ptr; + this->_Getal().destroy(::std:: addressof(this->_Bx()._Ptr)); + if (0 < _Newsize) + _Traits::copy(this->_Bx()._Buf, + _Unfancy(_Ptr), _Newsize); + this->_Getal().deallocate(_Ptr, this->_Myres() + 1); + } + this->_Myres() = this->_BUF_SIZE - 1; + _Eos(_Newsize); + } + + [[noreturn]] void _Xlen() const + { + _Xlength_error("string too long"); + } + + void _Check_offset(const size_type _Off) const + { + if (this->_Mysize() < _Off) + _Xran(); + } + + void _Check_offset_exclusive(const size_type _Off) const + { + if (this->_Mysize() <= _Off) + _Xran(); + } + + [[noreturn]] void _Xran() const + { + _Xout_of_range("invalid string position"); + } + }; + + +template + const typename basic_string<_Elem, _Traits, _Alloc>::size_type + basic_string<_Elem, _Traits, _Alloc>::npos = + (typename basic_string<_Elem, _Traits, _Alloc>::size_type)(-1); + + + +template inline + void swap(basic_string<_Elem, _Traits, _Alloc>& _Left, + basic_string<_Elem, _Traits, _Alloc>& _Right) + noexcept(noexcept(_Left.swap(_Right))) + { + _Left.swap(_Right); + } + +template inline + basic_string<_Elem, _Traits, _Alloc> operator+( + const basic_string<_Elem, _Traits, _Alloc>& _Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) + { + basic_string<_Elem, _Traits, _Alloc> _Ans; + _Ans.reserve(_Left.size() + _Right.size()); + _Ans += _Left; + _Ans += _Right; + return (_Ans); + } + +template inline + basic_string<_Elem, _Traits, _Alloc> operator+( + const _Elem *_Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) + { + basic_string<_Elem, _Traits, _Alloc> _Ans; + _Ans.reserve(_Traits::length(_Left) + _Right.size()); + _Ans += _Left; + _Ans += _Right; + return (_Ans); + } + +template inline + basic_string<_Elem, _Traits, _Alloc> operator+( + const _Elem _Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) + { + basic_string<_Elem, _Traits, _Alloc> _Ans; + _Ans.reserve(1 + _Right.size()); + _Ans += _Left; + _Ans += _Right; + return (_Ans); + } + +template inline + basic_string<_Elem, _Traits, _Alloc> operator+( + const basic_string<_Elem, _Traits, _Alloc>& _Left, + const _Elem *_Right) + { + basic_string<_Elem, _Traits, _Alloc> _Ans; + _Ans.reserve(_Left.size() + _Traits::length(_Right)); + _Ans += _Left; + _Ans += _Right; + return (_Ans); + } + +template inline + basic_string<_Elem, _Traits, _Alloc> operator+( + const basic_string<_Elem, _Traits, _Alloc>& _Left, + const _Elem _Right) + { + basic_string<_Elem, _Traits, _Alloc> _Ans; + _Ans.reserve(_Left.size() + 1); + _Ans += _Left; + _Ans += _Right; + return (_Ans); + } + +template inline + basic_string<_Elem, _Traits, _Alloc> operator+( + const basic_string<_Elem, _Traits, _Alloc>& _Left, + basic_string<_Elem, _Traits, _Alloc>&& _Right) + { + return (::std:: move(_Right.insert(0, _Left))); + } + +template inline + basic_string<_Elem, _Traits, _Alloc> operator+( + basic_string<_Elem, _Traits, _Alloc>&& _Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) + { + return (::std:: move(_Left.append(_Right))); + } + +template inline + basic_string<_Elem, _Traits, _Alloc> operator+( + basic_string<_Elem, _Traits, _Alloc>&& _Left, + basic_string<_Elem, _Traits, _Alloc>&& _Right) + { + if (_Right.size() <= _Left.capacity() - _Left.size() + || _Right.capacity() - _Right.size() < _Left.size()) + return (::std:: move(_Left.append(_Right))); + else + return (::std:: move(_Right.insert(0, _Left))); + } + +template inline + basic_string<_Elem, _Traits, _Alloc> operator+( + const _Elem *_Left, + basic_string<_Elem, _Traits, _Alloc>&& _Right) + { + return (::std:: move(_Right.insert(0, _Left))); + } + +template inline + basic_string<_Elem, _Traits, _Alloc> operator+( + const _Elem _Left, + basic_string<_Elem, _Traits, _Alloc>&& _Right) + { + typedef typename basic_string<_Elem, _Traits, _Alloc>::size_type + size_type; + return (::std:: move(_Right.insert((size_type)0, (size_type)1, _Left))); + } + +template inline + basic_string<_Elem, _Traits, _Alloc> operator+( + basic_string<_Elem, _Traits, _Alloc>&& _Left, + const _Elem *_Right) + { + return (::std:: move(_Left.append(_Right))); + } + +template inline + basic_string<_Elem, _Traits, _Alloc> operator+( + basic_string<_Elem, _Traits, _Alloc>&& _Left, + const _Elem _Right) + { + return (::std:: move(_Left.append(1, _Right))); + } + +template inline + bool operator==( + const basic_string<_Elem, _Traits, _Alloc>& _Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) noexcept + { + return (_Left.compare(_Right) == 0); + } + +template inline + bool operator==( + const _Elem * _Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) + { + return (_Right.compare(_Left) == 0); + } + +template inline + bool operator==( + const basic_string<_Elem, _Traits, _Alloc>& _Left, + const _Elem *_Right) + { + return (_Left.compare(_Right) == 0); + } + +template inline + bool operator!=( + const basic_string<_Elem, _Traits, _Alloc>& _Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) noexcept + { + return (!(_Left == _Right)); + } + +template inline + bool operator!=( + const _Elem *_Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) + { + return (!(_Left == _Right)); + } + +template inline + bool operator!=( + const basic_string<_Elem, _Traits, _Alloc>& _Left, + const _Elem *_Right) + { + return (!(_Left == _Right)); + } + +template inline + bool operator<( + const basic_string<_Elem, _Traits, _Alloc>& _Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) noexcept + { + return (_Left.compare(_Right) < 0); + } + +template inline + bool operator<( + const _Elem * _Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) + { + return (_Right.compare(_Left) > 0); + } + +template inline + bool operator<( + const basic_string<_Elem, _Traits, _Alloc>& _Left, + const _Elem *_Right) + { + return (_Left.compare(_Right) < 0); + } + +template inline + bool operator>( + const basic_string<_Elem, _Traits, _Alloc>& _Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) noexcept + { + return (_Right < _Left); + } + +template inline + bool operator>( + const _Elem * _Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) + { + return (_Right < _Left); + } + +template inline + bool operator>( + const basic_string<_Elem, _Traits, _Alloc>& _Left, + const _Elem *_Right) + { + return (_Right < _Left); + } + +template inline + bool operator<=( + const basic_string<_Elem, _Traits, _Alloc>& _Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) noexcept + { + return (!(_Right < _Left)); + } + +template inline + bool operator<=( + const _Elem * _Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) + { + return (!(_Right < _Left)); + } + +template inline + bool operator<=( + const basic_string<_Elem, _Traits, _Alloc>& _Left, + const _Elem *_Right) + { + return (!(_Right < _Left)); + } + +template inline + bool operator>=( + const basic_string<_Elem, _Traits, _Alloc>& _Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) noexcept + { + return (!(_Left < _Right)); + } + +template inline + bool operator>=( + const _Elem * _Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) + { + return (!(_Left < _Right)); + } + +template inline + bool operator>=( + const basic_string<_Elem, _Traits, _Alloc>& _Left, + const _Elem *_Right) + { + return (!(_Left < _Right)); + } + +typedef basic_string, allocator > + string; +typedef basic_string, allocator > + wstring; + + +template + struct hash > + { + typedef basic_string<_Elem, _Traits, _Alloc> argument_type; + typedef size_t result_type; + + size_t operator()(const argument_type& _Keyval) const + { + return (_Hash_seq((const unsigned char *)_Keyval.c_str(), + _Keyval.size() * sizeof (_Elem))); + } + }; + +typedef basic_string, allocator > + u16string; +typedef basic_string, allocator > + u32string; +} + + +#pragma warning(pop) +#pragma pack(pop) +# 7 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdexcept" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + +namespace std { + +class logic_error + : public ::std:: exception + { +public: + typedef ::std:: exception _Mybase; + + explicit logic_error(const string& _Message) + : _Mybase(_Message.c_str()) + { + } + + explicit logic_error(const char *_Message) + : _Mybase(_Message) + { + } +# 40 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdexcept" 3 + }; + + +class domain_error + : public logic_error + { +public: + typedef logic_error _Mybase; + + explicit domain_error(const string& _Message) + : _Mybase(_Message.c_str()) + { + } + + explicit domain_error(const char *_Message) + : _Mybase(_Message) + { + } +# 68 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdexcept" 3 + }; + + +class invalid_argument + : public logic_error + { +public: + typedef logic_error _Mybase; + + explicit invalid_argument(const string& _Message) + : _Mybase(_Message.c_str()) + { + } + + explicit invalid_argument(const char *_Message) + : _Mybase(_Message) + { + } +# 96 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdexcept" 3 + }; + + +class length_error + : public logic_error + { +public: + typedef logic_error _Mybase; + + explicit length_error(const string& _Message) + : _Mybase(_Message.c_str()) + { + } + + explicit length_error(const char *_Message) + : _Mybase(_Message) + { + } +# 124 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdexcept" 3 + }; + + +class out_of_range + : public logic_error + { +public: + typedef logic_error _Mybase; + + explicit out_of_range(const string& _Message) + : _Mybase(_Message.c_str()) + { + } + + explicit out_of_range(const char *_Message) + : _Mybase(_Message) + { + } +# 152 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdexcept" 3 + }; + + +class runtime_error + : public ::std:: exception + { +public: + typedef ::std:: exception _Mybase; + + explicit runtime_error(const string& _Message) + : _Mybase(_Message.c_str()) + { + } + + explicit runtime_error(const char *_Message) + : _Mybase(_Message) + { + } +# 180 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdexcept" 3 + }; + + +class overflow_error + : public runtime_error + { +public: + typedef runtime_error _Mybase; + + explicit overflow_error(const string& _Message) + : _Mybase(_Message.c_str()) + { + } + + explicit overflow_error(const char *_Message) + : _Mybase(_Message) + { + } +# 208 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdexcept" 3 + }; + + +class underflow_error + : public runtime_error + { +public: + typedef runtime_error _Mybase; + + explicit underflow_error(const string& _Message) + : _Mybase(_Message.c_str()) + { + } + + explicit underflow_error(const char *_Message) + : _Mybase(_Message) + { + } +# 236 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdexcept" 3 + }; + + +class range_error + : public runtime_error + { +public: + typedef runtime_error _Mybase; + + explicit range_error(const string& _Message) + : _Mybase(_Message.c_str()) + { + } + + explicit range_error(const char *_Message) + : _Mybase(_Message) + { + } +# 264 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stdexcept" 3 + }; +} + +#pragma warning(pop) +#pragma pack(pop) +# 7 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4127) +#pragma warning(disable: 4244) + +namespace std { + + + +template + class _Vector_const_iterator + : public _Iterator012 + { +public: + typedef _Vector_const_iterator<_Myvec> _Myiter; + typedef random_access_iterator_tag iterator_category; + + typedef typename _Myvec::value_type value_type; + typedef typename _Myvec::difference_type difference_type; + typedef typename _Myvec::const_pointer pointer; + typedef typename _Myvec::const_reference reference; + typedef typename _Myvec::pointer _Tptr; + + _Vector_const_iterator() + : _Ptr() + { + } + + _Vector_const_iterator(_Tptr _Parg, const _Container_base *_Pvector) + : _Ptr(_Parg) + { + this->_Adopt(_Pvector); + } + + typedef pointer _Unchecked_type; + + _Myiter& _Rechecked(_Unchecked_type _Right) + { + _Ptr = _Const_cast(_Right); + return (*this); + } + + _Unchecked_type _Unchecked() const + { + return (_Ptr); + } + + reference operator*() const + { + + const auto _Mycont = static_cast(this->_Getcont()); + if (_Mycont == 0 + || _Ptr == _Tptr() + || _Ptr < _Mycont->_Myfirst + || _Mycont->_Mylast <= _Ptr) + { + _Debug_message(L"vector iterator not dereferencable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 73); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 74, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 74, 0); }; + } +# 84 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector" 3 + ; + + return (*_Ptr); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + + const auto _Mycont = static_cast(this->_Getcont()); + if (_Mycont == 0 + || _Ptr == nullptr_t{} + || _Mycont->_Mylast <= _Ptr) + { + _Debug_message(L"vector iterator not incrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 102); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 103, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 103, 0); }; + } +# 113 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector" 3 + ++_Ptr; + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + + const auto _Mycont = static_cast(this->_Getcont()); + if (_Mycont == 0 + || _Ptr == nullptr_t{} + || _Ptr <= _Mycont->_Myfirst) + { + _Debug_message(L"vector iterator not decrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 132); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 133, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 133, 0); }; + } +# 143 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector" 3 + --_Ptr; + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + + _Myiter& operator+=(difference_type _Off) + { + + if (_Off != 0) + { + const auto _Mycont = static_cast(this->_Getcont()); + if (_Mycont == 0 + || _Ptr + _Off < _Mycont->_Myfirst + || _Mycont->_Mylast < _Ptr + _Off) + { + _Debug_message(L"vector iterator + offset out of range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 164); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 165, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 165, 0); }; + } + } +# 179 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector" 3 + _Ptr += _Off; + return (*this); + } + + _Myiter operator+(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp += _Off); + } + + _Myiter& operator-=(difference_type _Off) + { + return (*this += -_Off); + } + + _Myiter operator-(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp -= _Off); + } + + difference_type operator-(const _Myiter& _Right) const + { + _Compat(_Right); + return (_Ptr - _Right._Ptr); + } + + reference operator[](difference_type _Off) const + { + return (*(*this + _Off)); + } + + bool operator==(const _Myiter& _Right) const + { + _Compat(_Right); + return (_Ptr == _Right._Ptr); + } + + bool operator!=(const _Myiter& _Right) const + { + return (!(*this == _Right)); + } + + bool operator<(const _Myiter& _Right) const + { + _Compat(_Right); + return (_Ptr < _Right._Ptr); + } + + bool operator>(const _Myiter& _Right) const + { + return (_Right < *this); + } + + bool operator<=(const _Myiter& _Right) const + { + return (!(_Right < *this)); + } + + bool operator>=(const _Myiter& _Right) const + { + return (!(*this < _Right)); + } + + + void _Compat(const _Myiter& _Right) const + { + if (this->_Getcont() != _Right._Getcont()) + { + _Debug_message(L"vector iterators incompatible", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 248); + { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 249, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 249, 0); }; + } + } +# 265 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector" 3 + _Tptr _Ptr; + }; + +template inline + typename _Vector_const_iterator<_Myvec>::_Unchecked_type + _Unchecked(_Vector_const_iterator<_Myvec> _Iter) + { + return (_Iter._Unchecked()); + } + +template inline + _Vector_const_iterator<_Myvec>& + _Rechecked(_Vector_const_iterator<_Myvec>& _Iter, + typename _Vector_const_iterator<_Myvec> + ::_Unchecked_type _Right) + { + return (_Iter._Rechecked(_Right)); + } + +template inline + _Vector_const_iterator<_Myvec> operator+( + typename _Vector_const_iterator<_Myvec>::difference_type _Off, + _Vector_const_iterator<_Myvec> _Next) + { + return (_Next += _Off); + } + + +template + class _Vector_iterator + : public _Vector_const_iterator<_Myvec> + { +public: + typedef _Vector_iterator<_Myvec> _Myiter; + typedef _Vector_const_iterator<_Myvec> _Mybase; + typedef random_access_iterator_tag iterator_category; + + typedef typename _Myvec::value_type value_type; + typedef typename _Myvec::difference_type difference_type; + typedef typename _Myvec::pointer pointer; + typedef typename _Myvec::reference reference; + + _Vector_iterator() + { + } + + _Vector_iterator(pointer _Parg, const _Container_base *_Pvector) + : _Mybase(_Parg, _Pvector) + { + } + + typedef pointer _Unchecked_type; + + _Myiter& _Rechecked(_Unchecked_type _Right) + { + this->_Ptr = _Right; + return (*this); + } + + _Unchecked_type _Unchecked() const + { + return (this->_Ptr); + } + + reference operator*() const + { + return ((reference)**(_Mybase *)this); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + ++*(_Mybase *)this; + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + --*(_Mybase *)this; + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + + _Myiter& operator+=(difference_type _Off) + { + *(_Mybase *)this += _Off; + return (*this); + } + + _Myiter operator+(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp += _Off); + } + + _Myiter& operator-=(difference_type _Off) + { + return (*this += -_Off); + } + + _Myiter operator-(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp -= _Off); + } + + difference_type operator-(const _Mybase& _Right) const + { + return (*(_Mybase *)this - _Right); + } + + reference operator[](difference_type _Off) const + { + return (*(*this + _Off)); + } + }; + +template inline + typename _Vector_iterator<_Myvec>::_Unchecked_type + _Unchecked(_Vector_iterator<_Myvec> _Iter) + { + return (_Iter._Unchecked()); + } + +template inline + _Vector_iterator<_Myvec>& + _Rechecked(_Vector_iterator<_Myvec>& _Iter, + typename _Vector_iterator<_Myvec> + ::_Unchecked_type _Right) + { + return (_Iter._Rechecked(_Right)); + } + +template inline + _Vector_iterator<_Myvec> operator+( + typename _Vector_iterator<_Myvec>::difference_type _Off, + _Vector_iterator<_Myvec> _Next) + { + return (_Next += _Off); + } + + +template + struct _Vec_iter_types + { + typedef _Value_type value_type; + typedef _Size_type size_type; + typedef _Difference_type difference_type; + typedef _Pointer pointer; + typedef _Const_pointer const_pointer; + typedef _Reference reference; + typedef _Const_reference const_reference; + }; + +template + struct _Vec_base_types + { + typedef _Alloc0 _Alloc; + typedef _Vec_base_types<_Ty, _Alloc> _Myt; + + typedef _Wrap_alloc<_Alloc> _Alty0; + typedef typename _Alty0::template rebind<_Ty>::other _Alty; + + + typedef typename _If<_Is_simple_alloc<_Alty>::value, + _Simple_types, + _Vec_iter_types >::type + _Val_types; + }; + + +template + class _Vector_val + : public _Container_base + { +public: + typedef _Vector_val<_Val_types> _Myt; + + typedef typename _Val_types::value_type value_type; + typedef typename _Val_types::size_type size_type; + typedef typename _Val_types::difference_type difference_type; + typedef typename _Val_types::pointer pointer; + typedef typename _Val_types::const_pointer const_pointer; + typedef typename _Val_types::reference reference; + typedef typename _Val_types::const_reference const_reference; + + typedef _Vector_iterator<_Myt> iterator; + typedef _Vector_const_iterator<_Myt> const_iterator; + + _Vector_val() + : _Myfirst(), + _Mylast(), + _Myend() + { + } + + pointer _Myfirst; + pointer _Mylast; + pointer _Myend; + }; + + +template + class _Vector_alloc + { +public: + typedef _Vector_alloc<_Alloc_types> _Myt; + typedef typename _Alloc_types::_Alloc _Alloc; + typedef typename _Alloc_types::_Alty _Alty; + typedef typename _Alloc_types::_Val_types _Val_types; + + typedef typename _Val_types::value_type value_type; + typedef typename _Val_types::size_type size_type; + typedef typename _Val_types::difference_type difference_type; + typedef typename _Val_types::pointer pointer; + typedef typename _Val_types::const_pointer const_pointer; + typedef typename _Val_types::reference reference; + typedef typename _Val_types::const_reference const_reference; + + typedef _Vector_iterator<_Vector_val<_Val_types> > iterator; + typedef _Vector_const_iterator<_Vector_val<_Val_types> > const_iterator; +# 542 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector" 3 + _Vector_alloc() + : _Mypair(_Zero_then_variadic_args_t()) + { + _Alloc_proxy(); + } + + template, _Myt>::value> > + _Vector_alloc(_Any_alloc&& _Al) + : _Mypair(_One_then_variadic_args_t(), + ::std:: forward<_Any_alloc>(_Al)) + { + _Alloc_proxy(); + } + + ~_Vector_alloc() noexcept + { + _Free_proxy(); + } + + void _Copy_alloc(const _Alty& _Al) + { + _Free_proxy(); + _Pocca(_Getal(), _Al); + _Alloc_proxy(); + } + + void _Move_alloc(_Alty& _Al) + { + _Free_proxy(); + _Pocma(_Getal(), _Al); + _Alloc_proxy(); + } + + void _Alloc_proxy() + { + typename _Alty::template rebind<_Container_proxy>::other + _Alproxy(_Getal()); + _Myproxy() = _Unfancy(_Alproxy.allocate(1)); + _Alproxy.construct(_Myproxy(), _Container_proxy()); + _Myproxy()->_Mycont = &_Get_data(); + } + + void _Free_proxy() + { + typename _Alty::template rebind<_Container_proxy>::other + _Alproxy(_Getal()); + _Orphan_all(); + _Alproxy.destroy(_Myproxy()); + _Alproxy.deallocate(_Alproxy.address(*_Myproxy()), 1); + _Myproxy() = 0; + } + + _Iterator_base12 **_Getpfirst() const + { + return (_Get_data()._Getpfirst()); + } + + _Container_proxy * & _Myproxy() noexcept + { + return (_Get_data()._Myproxy); + } + + _Container_proxy * const & _Myproxy() const noexcept + { + return (_Get_data()._Myproxy); + } + + + void _Orphan_all() + { + _Get_data()._Orphan_all(); + } + + void _Swap_all(_Myt& _Right) + { + _Get_data()._Swap_all(_Right._Get_data()); + } + + _Alty& _Getal() noexcept + { + return (_Mypair._Get_first()); + } + + const _Alty& _Getal() const noexcept + { + return (_Mypair._Get_first()); + } + + _Vector_val<_Val_types>& _Get_data() noexcept + { + return (_Mypair._Get_second()); + } + + const _Vector_val<_Val_types>& _Get_data() const noexcept + { + return (_Mypair._Get_second()); + } + + pointer& _Myfirst() noexcept + { + return (_Get_data()._Myfirst); + } + + const pointer& _Myfirst() const noexcept + { + return (_Get_data()._Myfirst); + } + + pointer& _Mylast() noexcept + { + return (_Get_data()._Mylast); + } + + const pointer& _Mylast() const noexcept + { + return (_Get_data()._Mylast); + } + + pointer& _Myend() noexcept + { + return (_Get_data()._Myend); + } + + const pointer& _Myend() const noexcept + { + return (_Get_data()._Myend); + } + +private: + _Compressed_pair<_Alty, _Vector_val<_Val_types> > _Mypair; + }; + + +template > + class vector + : public _Vector_alloc<_Vec_base_types<_Ty, _Alloc> > + { +public: + typedef vector<_Ty, _Alloc> _Myt; + typedef _Vector_alloc<_Vec_base_types<_Ty, _Alloc> > _Mybase; + typedef _Alloc allocator_type; + + typedef typename _Mybase::_Alty _Alty; + + typedef typename _Mybase::value_type value_type; + typedef typename _Mybase::size_type size_type; + typedef typename _Mybase::difference_type difference_type; + typedef typename _Mybase::pointer pointer; + typedef typename _Mybase::const_pointer const_pointer; + typedef typename _Mybase::reference reference; + typedef typename _Mybase::const_reference const_reference; + + + + + typedef typename _Mybase::iterator iterator; + typedef typename _Mybase::const_iterator const_iterator; + + typedef ::std:: reverse_iterator reverse_iterator; + typedef ::std:: reverse_iterator const_reverse_iterator; + + vector() noexcept(is_nothrow_default_constructible<_Alloc>::value) + : _Mybase() + { + } + + explicit vector(const _Alloc& _Al) noexcept + : _Mybase(_Al) + { + } + + explicit vector(size_type _Count) + : _Mybase() + { + if (_Buy(_Count)) + { + try { + _Uninitialized_default_fill_n(this->_Myfirst(), _Count, + this->_Getal()); + this->_Mylast() += _Count; + } catch (...) { + _Tidy(); + throw; + } + } + } + + vector(size_type _Count, const value_type& _Val) + : _Mybase() + { + _Construct_n(_Count, ::std:: addressof(_Val)); + } + + vector(size_type _Count, const value_type& _Val, const _Alloc& _Al) + : _Mybase(_Al) + { + _Construct_n(_Count, ::std:: addressof(_Val)); + } + + vector(const _Myt& _Right) + + : _Mybase(_Right._Getal().select_on_container_copy_construction()) + + + { + if (_Buy(_Right.size())) + try { + this->_Mylast() = _Ucopy(_Right.begin(), _Right.end(), + this->_Myfirst()); + } catch (...) { + _Tidy(); + throw; + } + } + + vector(const _Myt& _Right, const _Alloc& _Al) + : _Mybase(_Al) + { + if (_Buy(_Right.size())) + try { + this->_Mylast() = _Ucopy(_Right.begin(), _Right.end(), + this->_Myfirst()); + } catch (...) { + _Tidy(); + throw; + } + } + + template::value, + void>::type> + vector(_Iter _First, _Iter _Last) + : _Mybase() + { + _Construct(_First, _Last); + } + + template::value, + void>::type> + vector(_Iter _First, _Iter _Last, const _Alloc& _Al) + : _Mybase(_Al) + { + _Construct(_First, _Last); + } + + template + void _Construct(_Iter _First, _Iter _Last) + { + _Construct(_First, _Last, _Iter_cat_t<_Iter>()); + } + + template + void _Construct(_Iter _First, _Iter _Last, + input_iterator_tag) + { + try { + + for (; _First != _Last; ++_First) + emplace_back(*_First); + + } catch (...) { + _Tidy(); + throw; + } + } + + template + void _Construct(_Iter _First, _Iter _Last, + forward_iterator_tag) + { + if (_Buy(::std:: distance(_First, _Last))) + { + try { + this->_Mylast() = _Ucopy(_First, _Last, this->_Myfirst()); + } catch (...) { + _Tidy(); + throw; + } + } + } + + void _Construct_n(size_type _Count, const value_type *_Pval) + { + if (_Buy(_Count)) + { + try { + this->_Mylast() = _Ufill(this->_Myfirst(), _Count, _Pval); + } catch (...) { + _Tidy(); + throw; + } + } + } + + vector(_Myt&& _Right) noexcept + : _Mybase(::std:: move(_Right._Getal())) + { + _Assign_rv(::std:: forward<_Myt>(_Right), true_type()); + } + + vector(_Myt&& _Right, const _Alloc& _Al) + : _Mybase(_Al) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + + _Myt& operator=(_Myt&& _Right) + noexcept(_Alty::propagate_on_container_move_assignment::value || _Alty::is_always_equal::value) + + { + if (this != &_Right) + { + _Tidy(); + if (_Alty::propagate_on_container_move_assignment::value + && this->_Getal() != _Right._Getal()) + this->_Move_alloc(_Right._Getal()); + + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + return (*this); + } + + void _Assign_rv(_Myt&& _Right, true_type) + { + this->_Swap_all((_Myt&)_Right); + this->_Myfirst() = _Right._Myfirst(); + this->_Mylast() = _Right._Mylast(); + this->_Myend() = _Right._Myend(); + + _Right._Myfirst() = pointer(); + _Right._Mylast() = pointer(); + _Right._Myend() = pointer(); + } + + void _Assign_rv(_Myt&& _Right, false_type) + { + if (get_allocator() == _Right.get_allocator()) + _Assign_rv(::std:: forward<_Myt>(_Right), true_type()); + else + _Construct(::std:: make_move_iterator(_Right.begin()), + ::std:: make_move_iterator(_Right.end())); + } + + void _Assign_rv(_Myt&& _Right) + { + _Assign_rv(::std:: forward<_Myt>(_Right), + typename _Alty::propagate_on_container_move_assignment()); + } + + + void push_back(value_type&& _Val) + { + if (_Inside(::std:: addressof(_Val))) + { + size_type _Idx = ::std:: addressof(_Val) - _Unfancy(this->_Myfirst()); + if (this->_Mylast() == this->_Myend()) + _Reserve(1); + _Orphan_range(this->_Mylast(), this->_Mylast()); + this->_Getal().construct(_Unfancy(this->_Mylast()), + ::std:: forward(this->_Myfirst()[_Idx])); + ++this->_Mylast(); + } + else + { + if (this->_Mylast() == this->_Myend()) + _Reserve(1); + _Orphan_range(this->_Mylast(), this->_Mylast()); + this->_Getal().construct(_Unfancy(this->_Mylast()), + ::std:: forward(_Val)); + ++this->_Mylast(); + } + } + + iterator insert(const_iterator _Where, _Ty&& _Val) + { + return (emplace(_Where, ::std:: move(_Val))); + } + + template + void emplace_back(_Valty&&... _Val) + { + if (this->_Mylast() == this->_Myend()) + _Reserve(1); + _Orphan_range(this->_Mylast(), this->_Mylast()); + this->_Getal().construct(_Unfancy(this->_Mylast()), + ::std:: forward<_Valty>(_Val)...); + ++this->_Mylast(); + } + + template + iterator emplace(const_iterator _Where, _Valty&&... _Val) + { + size_type _Off = (_Where)._Ptr - this->_Myfirst(); + + + if (size() < _Off) + _Debug_message(L"vector emplace iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 941); + + + emplace_back(::std:: forward<_Valty>(_Val)...); + ::std:: rotate(begin() + _Off, end() - 1, end()); + return (begin() + _Off); + } + + + vector(::std:: initializer_list _Ilist, + const _Alloc& _Al = allocator_type()) + : _Mybase(_Al) + { + _Construct(_Ilist.begin(), _Ilist.end()); + } + + _Myt& operator=(::std:: initializer_list _Ilist) + { + assign(_Ilist.begin(), _Ilist.end()); + return (*this); + } + + void assign(::std:: initializer_list _Ilist) + { + assign(_Ilist.begin(), _Ilist.end()); + } + + iterator insert(const_iterator _Where, + ::std:: initializer_list _Ilist) + { + return (insert(_Where, _Ilist.begin(), _Ilist.end())); + } + + ~vector() noexcept + { + _Tidy(); + } + + _Myt& operator=(const _Myt& _Right) + { + if (this != &_Right) + { + if (this->_Getal() != _Right._Getal() + && _Alty::propagate_on_container_copy_assignment::value) + { + _Tidy(); + this->_Copy_alloc(_Right._Getal()); + } + + this->_Orphan_all(); + + if (_Right.empty()) + clear(); + else if (_Right.size() <= size()) + { + pointer _Ptr = _Copy_unchecked(_Right._Myfirst(), + _Right._Mylast(), this->_Myfirst()); + _Destroy(_Ptr, this->_Mylast()); + this->_Mylast() = this->_Myfirst() + _Right.size(); + } + else if (_Right.size() <= capacity()) + { + pointer _Ptr = _Right._Myfirst() + size(); + _Copy_unchecked(_Right._Myfirst(), + _Ptr, this->_Myfirst()); + this->_Mylast() = _Ucopy(_Ptr, _Right._Mylast(), + this->_Mylast()); + } + else + { + if (this->_Myfirst() != pointer()) + { + _Destroy(this->_Myfirst(), this->_Mylast()); + this->_Getal().deallocate(this->_Myfirst(), + this->_Myend() - this->_Myfirst()); + } + if (_Buy(_Right.size())) + try { + this->_Mylast() = + _Ucopy(_Right._Myfirst(), _Right._Mylast(), + this->_Myfirst()); + } catch (...) { + _Tidy(); + throw; + } + } + } + return (*this); + } + + void reserve(size_type _Count) + { + if (capacity() < _Count) + { + if (max_size() < _Count) + _Xlen(); + _Reallocate(_Count); + } + } + + size_type capacity() const noexcept + { + return (this->_Myend() - this->_Myfirst()); + } + + size_type _Unused_capacity() const noexcept + { + return (this->_Myend() - this->_Mylast()); + } + + size_type _Has_unused_capacity() const noexcept + { + return (this->_Myend() != this->_Mylast()); + } + + iterator begin() noexcept + { + return (iterator(this->_Myfirst(), &this->_Get_data())); + } + + const_iterator begin() const noexcept + { + return (const_iterator(this->_Myfirst(), &this->_Get_data())); + } + + iterator end() noexcept + { + return (iterator(this->_Mylast(), &this->_Get_data())); + } + + const_iterator end() const noexcept + { + return (const_iterator(this->_Mylast(), &this->_Get_data())); + } + + iterator _Make_iter(const_iterator _Where) const + { + return (iterator(_Where._Ptr, &this->_Get_data())); + } + + reverse_iterator rbegin() noexcept + { + return (reverse_iterator(end())); + } + + const_reverse_iterator rbegin() const noexcept + { + return (const_reverse_iterator(end())); + } + + reverse_iterator rend() noexcept + { + return (reverse_iterator(begin())); + } + + const_reverse_iterator rend() const noexcept + { + return (const_reverse_iterator(begin())); + } + + const_iterator cbegin() const noexcept + { + return (begin()); + } + + const_iterator cend() const noexcept + { + return (end()); + } + + const_reverse_iterator crbegin() const noexcept + { + return (rbegin()); + } + + const_reverse_iterator crend() const noexcept + { + return (rend()); + } + + void shrink_to_fit() + { + if (_Has_unused_capacity()) + { + if (empty()) + _Tidy(); + else + _Reallocate(size()); + } + } + + void resize(size_type _Newsize) + { + if (_Newsize < size()) + _Pop_back_n(size() - _Newsize); + else if (size() < _Newsize) + { + _Reserve(_Newsize - size()); + try { + _Uninitialized_default_fill_n(this->_Mylast(), _Newsize - size(), + this->_Getal()); + } catch (...) { + _Tidy(); + throw; + } + this->_Mylast() += _Newsize - size(); + } + } + + void resize(size_type _Newsize, const value_type& _Val) + { + if (_Newsize < size()) + _Pop_back_n(size() - _Newsize); + else if (size() < _Newsize) + { + const value_type *_Ptr = ::std:: addressof(_Val); + + if (_Inside(_Ptr)) + { + const difference_type _Idx = _Ptr + - _Unfancy(this->_Myfirst()); + _Reserve(_Newsize - size()); + _Ptr = _Unfancy(this->_Myfirst()) + _Idx; + } + else + _Reserve(_Newsize - size()); + + try { + _Ufill(this->_Mylast(), _Newsize - size(), _Ptr); + } catch (...) { + _Tidy(); + throw; + } + this->_Mylast() += _Newsize - size(); + } + } + + size_type size() const noexcept + { + return (this->_Mylast() - this->_Myfirst()); + } + + size_type max_size() const noexcept + { + return (this->_Getal().max_size()); + } + + bool empty() const noexcept + { + return (this->_Myfirst() == this->_Mylast()); + } + + _Alloc get_allocator() const noexcept + { + _Alloc _Ret(this->_Getal()); + return (_Ret); + } + + const_reference at(size_type _Pos) const + { + if (size() <= _Pos) + _Xran(); + return (*(this->_Myfirst() + _Pos)); + } + + reference at(size_type _Pos) + { + if (size() <= _Pos) + _Xran(); + return (*(this->_Myfirst() + _Pos)); + } + + const_reference operator[](size_type _Pos) const + { + + if (size() <= _Pos) + { + _Debug_message(L"vector subscript out of range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 1218); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 1219, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 1219, 0); }; + } + + + + + + return (*(this->_Myfirst() + _Pos)); + } + + reference operator[](size_type _Pos) + { + + if (size() <= _Pos) + { + _Debug_message(L"vector subscript out of range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 1234); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 1235, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 1235, 0); }; + } + + + + + + return (*(this->_Myfirst() + _Pos)); + } + + _Ty * data() noexcept + { + return (_Unfancy(this->_Myfirst())); + } + + const _Ty * data() const noexcept + { + return (_Unfancy(this->_Myfirst())); + } + + reference front() + { + return (*begin()); + } + + const_reference front() const + { + return (*begin()); + } + + reference back() + { + return (*(end() - 1)); + } + + const_reference back() const + { + return (*(end() - 1)); + } + + void push_back(const value_type& _Val) + { + if (_Inside(::std:: addressof(_Val))) + { + size_type _Idx = ::std:: addressof(_Val) - _Unfancy(this->_Myfirst()); + if (this->_Mylast() == this->_Myend()) + _Reserve(1); + _Orphan_range(this->_Mylast(), this->_Mylast()); + this->_Getal().construct(_Unfancy(this->_Mylast()), + this->_Myfirst()[_Idx]); + ++this->_Mylast(); + } + else + { + if (this->_Mylast() == this->_Myend()) + _Reserve(1); + _Orphan_range(this->_Mylast(), this->_Mylast()); + this->_Getal().construct(_Unfancy(this->_Mylast()), + _Val); + ++this->_Mylast(); + } + } + + + void pop_back() + { + if (empty()) + _Debug_message(L"vector empty before pop", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 1302); + else + { + _Orphan_range(this->_Mylast() - 1, this->_Mylast()); + this->_Getal().destroy(_Unfancy(this->_Mylast() - 1)); + --this->_Mylast(); + } + } +# 1319 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector" 3 + template + typename enable_if<_Is_iterator<_Iter>::value, + void>::type + assign(_Iter _First, _Iter _Last) + { + clear(); + _Assign(_First, _Last, _Iter_cat_t<_Iter>()); + } + + template + void _Assign(_Iter _First, _Iter _Last, + input_iterator_tag) + { + for (; _First != _Last; ++_First) + emplace_back(*_First); + } + + template + void _Assign(_Iter _First, _Iter _Last, + forward_iterator_tag) + { + size_type _Newsize = ::std:: distance(_First, _Last); + + if (capacity() < _Newsize) + { + size_type _Newcapacity = _Grow_to(_Newsize); + _Tidy(); + _Buy(_Newcapacity); + } + + this->_Mylast() = _Ucopy(_First, _Last, this->_Myfirst()); + } + + void assign(size_type _Count, const value_type& _Val) + { + clear(); + insert(begin(), _Count, _Val); + } + + iterator insert(const_iterator _Where, const _Ty& _Val) + { + return (_Insert_n(_Where, (size_type)1, _Val)); + } + + iterator insert(const_iterator _Where, size_type _Count, + const _Ty& _Val) + { + return (_Insert_n(_Where, _Count, _Val)); + } + + template + typename enable_if<_Is_iterator<_Iter>::value, + iterator>::type + insert(const_iterator _Where, _Iter _First, _Iter _Last) + { + size_type _Off = (_Where)._Ptr - this->_Myfirst(); + _Insert(_Where, _First, _Last, _Iter_cat_t<_Iter>()); + return (begin() + _Off); + } + + template + void _Insert(const_iterator _Where, + _Iter _First, _Iter _Last, + input_iterator_tag) + { + size_type _Off = (_Where)._Ptr - this->_Myfirst(); + + + if (size() < _Off) + _Debug_message(L"vector insert iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 1388); + + + if (_First != _Last) + { + size_type _Oldsize = size(); + + try { + for (; _First != _Last; ++_First) + push_back(*_First); + + } catch (...) { + erase(begin() + _Oldsize, end()); + throw; + } + + ::std:: rotate(begin() + _Off, begin() + _Oldsize, end()); + } + } + + template + void _Insert(const_iterator _Where, + _Iter _First, _Iter _Last, + forward_iterator_tag) + { + + if (_Where._Getcont() != &this->_Get_data() + || (_Where)._Ptr < this->_Myfirst() + || this->_Mylast() < (_Where)._Ptr) + _Debug_message(L"vector insert iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 1417); + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 1418); + + + size_type _Count = ::std:: distance(_First, _Last); + if (_Count == 0) + ; + else if (_Unused_capacity() < _Count) + { + if (max_size() - size() < _Count) + _Xlen(); + + size_type _Capacity = _Grow_to(size() + _Count); + pointer _Newvec = this->_Getal().allocate(_Capacity); + pointer _Ptr = _Newvec; + + try { + _Ptr = _Umove(this->_Myfirst(), (_Where)._Ptr, + _Newvec); + _Ptr = _Ucopy(_First, _Last, _Ptr); + _Umove((_Where)._Ptr, this->_Mylast(), + _Ptr); + } catch (...) { + _Destroy(_Newvec, _Ptr); + this->_Getal().deallocate(_Newvec, _Capacity); + throw; + } + + _Count += size(); + if (this->_Myfirst() != pointer()) + { + _Destroy(this->_Myfirst(), this->_Mylast()); + this->_Getal().deallocate(this->_Myfirst(), + this->_Myend() - this->_Myfirst()); + } + + this->_Orphan_all(); + this->_Myend() = _Newvec + _Capacity; + this->_Mylast() = _Newvec + _Count; + this->_Myfirst() = _Newvec; + } + else + { + _Ucopy(_First, _Last, this->_Mylast()); + ::std:: rotate((_Where)._Ptr, this->_Mylast(), + this->_Mylast() + _Count); + this->_Mylast() += _Count; + _Orphan_range((_Where)._Ptr, this->_Mylast()); + } + } + + + iterator erase(const_iterator _Where) + { + if (_Where._Getcont() != &this->_Get_data() + || (_Where)._Ptr < this->_Myfirst() + || this->_Mylast() <= (_Where)._Ptr) + _Debug_message(L"vector erase iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 1474); + _Move_unchecked((_Where)._Ptr + 1, this->_Mylast(), (_Where)._Ptr); + _Destroy(this->_Mylast() - 1, this->_Mylast()); + _Orphan_range((_Where)._Ptr, this->_Mylast()); + --this->_Mylast(); + return (_Make_iter(_Where)); + } +# 1493 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector" 3 + iterator erase(const_iterator _First_arg, + const_iterator _Last_arg) + { + if (_First_arg == begin() && _Last_arg == end()) + clear(); + else if (_First_arg != _Last_arg) + { + iterator _First = _Make_iter(_First_arg); + iterator _Last = _Make_iter(_Last_arg); + + if (_First != _Last) + { + + if (_Last < _First || _First._Getcont() != &this->_Get_data() + || (_First)._Ptr < this->_Myfirst() + || this->_Mylast() < (_Last)._Ptr) + _Debug_message(L"vector erase iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 1509); + pointer _Ptr = _Move_unchecked((_Last)._Ptr, this->_Mylast(), + (_First)._Ptr); + _Orphan_range((_First)._Ptr, this->_Mylast()); + + + + + + + _Destroy(_Ptr, this->_Mylast()); + this->_Mylast() = _Ptr; + } + } + return (_Make_iter(_First_arg)); + } + + void _Pop_back_n(size_type _Count) + { + pointer _Ptr = this->_Mylast() - _Count; + + + _Orphan_range(_Ptr, this->_Mylast()); + + + _Destroy(_Ptr, this->_Mylast()); + this->_Mylast() = _Ptr; + } + + void clear() noexcept + { + this->_Orphan_all(); + _Destroy(this->_Myfirst(), this->_Mylast()); + this->_Mylast() = this->_Myfirst(); + } + + void swap(_Myt& _Right) + noexcept(_Alty::propagate_on_container_swap::value || _Alty::is_always_equal::value) + + { + if (this != &_Right) + { + _Pocs(this->_Getal(), _Right._Getal()); + this->_Swap_all(_Right); + _Swap_adl(this->_Myfirst(), _Right._Myfirst()); + _Swap_adl(this->_Mylast(), _Right._Mylast()); + _Swap_adl(this->_Myend(), _Right._Myend()); + } + } + +protected: + bool _Buy(size_type _Capacity) + { + this->_Myfirst() = pointer(); + this->_Mylast() = pointer(); + this->_Myend() = pointer(); + + if (_Capacity == 0) + return (false); + else if (max_size() < _Capacity) + _Xlen(); + else + { + this->_Myfirst() = this->_Getal().allocate(_Capacity); + this->_Mylast() = this->_Myfirst(); + this->_Myend() = this->_Myfirst() + _Capacity; + } + return (true); + } + + void _Destroy(pointer _First, pointer _Last) + { + _Destroy_range(_First, _Last, this->_Getal()); + } + + size_type _Grow_to(size_type _Count) const + { + size_type _Capacity = capacity(); + + _Capacity = max_size() - _Capacity / 2 < _Capacity + ? 0 : _Capacity + _Capacity / 2; + if (_Capacity < _Count) + _Capacity = _Count; + return (_Capacity); + } + + bool _Inside(const value_type *_Ptr) const + { + return (_Ptr < _Unfancy(this->_Mylast()) && _Unfancy(this->_Myfirst()) <= _Ptr); + } + + void _Reallocate(size_type _Count) + { + pointer _Ptr = this->_Getal().allocate(_Count); + + try { + _Umove(this->_Myfirst(), this->_Mylast(), _Ptr); + } catch (...) { + this->_Getal().deallocate(_Ptr, _Count); + throw; + } + + size_type _Size = size(); + if (this->_Myfirst() != pointer()) + { + _Destroy(this->_Myfirst(), this->_Mylast()); + this->_Getal().deallocate(this->_Myfirst(), + this->_Myend() - this->_Myfirst()); + } + + this->_Orphan_all(); + this->_Myend() = _Ptr + _Count; + this->_Mylast() = _Ptr + _Size; + this->_Myfirst() = _Ptr; + } + + void _Reserve(size_type _Count) + { + if (_Unused_capacity() < _Count) + { + if (max_size() - size() < _Count) + _Xlen(); + _Reallocate(_Grow_to(size() + _Count)); + } + } + + void _Tidy() + { + if (this->_Myfirst() != pointer()) + { + this->_Orphan_all(); + _Destroy(this->_Myfirst(), this->_Mylast()); + this->_Getal().deallocate(this->_Myfirst(), + this->_Myend() - this->_Myfirst()); + this->_Myfirst() = pointer(); + this->_Mylast() = pointer(); + this->_Myend() = pointer(); + } + } + + template + pointer _Ucopy(_Iter _First, _Iter _Last, pointer _Ptr) + { + return (_Uninitialized_copy(_First, _Last, + _Ptr, this->_Getal())); + } + + template + pointer _Umove(_Iter _First, _Iter _Last, pointer _Ptr) + { + return (_Uninitialized_move(_First, _Last, + _Ptr, this->_Getal())); + } + + iterator _Insert_n(const_iterator _Where, + size_type _Count, const value_type& _Val) + { + + if (_Where._Getcont() != &this->_Get_data() + || (_Where)._Ptr < this->_Myfirst() + || this->_Mylast() < (_Where)._Ptr) + _Debug_message(L"vector insert iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 1670); + + + size_type _Off = (_Where)._Ptr - this->_Myfirst(); + if (_Count == 0) + ; + else if (_Unused_capacity() < _Count) + { + if (max_size() - size() < _Count) + _Xlen(); + + size_type _Capacity = _Grow_to(size() + _Count); + pointer _Newvec = this->_Getal().allocate(_Capacity); + size_type _Whereoff = (_Where)._Ptr - this->_Myfirst(); + int _Ncopied = 0; + + try { + _Ufill(_Newvec + _Whereoff, _Count, + ::std:: addressof(_Val)); + ++_Ncopied; + _Umove(this->_Myfirst(), (_Where)._Ptr, + _Newvec); + ++_Ncopied; + _Umove((_Where)._Ptr, this->_Mylast(), + _Newvec + (_Whereoff + _Count)); + } catch (...) { + if (1 < _Ncopied) + _Destroy(_Newvec, _Newvec + _Whereoff); + if (0 < _Ncopied) + _Destroy(_Newvec + _Whereoff, _Newvec + _Whereoff + _Count); + this->_Getal().deallocate(_Newvec, _Capacity); + throw; + } + + _Count += size(); + if (this->_Myfirst() != pointer()) + { + _Destroy(this->_Myfirst(), this->_Mylast()); + this->_Getal().deallocate(this->_Myfirst(), + this->_Myend() - this->_Myfirst()); + } + + this->_Orphan_all(); + this->_Myend() = _Newvec + _Capacity; + this->_Mylast() = _Newvec + _Count; + this->_Myfirst() = _Newvec; + } + else if ((size_type)(this->_Mylast() - (_Where)._Ptr) + < _Count) + { + value_type _Tmp = _Val; + + _Umove((_Where)._Ptr, this->_Mylast(), + (_Where)._Ptr + _Count); + + try { + _Ufill(this->_Mylast(), + _Count - (this->_Mylast() - (_Where)._Ptr), + ::std:: addressof(_Tmp)); + } catch (...) { + _Destroy((_Where)._Ptr + _Count, + this->_Mylast() + _Count); + throw; + } + + this->_Mylast() += _Count; + _Orphan_range((_Where)._Ptr, this->_Mylast()); + ::std:: fill((_Where)._Ptr, this->_Mylast() - _Count, + _Tmp); + } + else + { + value_type _Tmp = _Val; + + pointer _Oldend = this->_Mylast(); + this->_Mylast() = _Umove(_Oldend - _Count, _Oldend, + this->_Mylast()); + + _Orphan_range((_Where)._Ptr, this->_Mylast()); + _Move_backward_unchecked((_Where)._Ptr, _Oldend - _Count, + _Oldend); + ::std:: fill((_Where)._Ptr, + (_Where)._Ptr + _Count, _Tmp); + } + return (begin() + _Off); + } + + pointer _Ufill(pointer _Ptr, size_type _Count, const value_type *_Pval) + { + _Uninitialized_fill_n(_Ptr, _Count, _Pval, this->_Getal()); + return (_Ptr + _Count); + } + + [[noreturn]] void _Xlen() const + { + _Xlength_error("vector too long"); + } + + [[noreturn]] void _Xran() const + { + _Xout_of_range("invalid vector subscript"); + } + + + void _Orphan_range(pointer _First, pointer _Last) const + { + _Lockit _Lock(3); + const_iterator **_Pnext = (const_iterator **)this->_Getpfirst(); + if (_Pnext != 0) + { + while (*_Pnext != 0) + if ((*_Pnext)->_Ptr < _First || _Last < (*_Pnext)->_Ptr) + _Pnext = (const_iterator **)(*_Pnext)->_Getpnext(); + else + { + (*_Pnext)->_Clrcont(); + *_Pnext = *(const_iterator **)(*_Pnext)->_Getpnext(); + } + } + } + + + + + + + }; + + + +template inline + void swap(vector<_Ty, _Alloc>& _Left, vector<_Ty, _Alloc>& _Right) + noexcept(noexcept(_Left.swap(_Right))) + { + _Left.swap(_Right); + } + +template inline + bool operator==(const vector<_Ty, _Alloc>& _Left, + const vector<_Ty, _Alloc>& _Right) + { + return (_Left.size() == _Right.size() + && ::std:: equal(_Left.begin(), _Left.end(), _Right.begin())); + } + +template inline + bool operator!=(const vector<_Ty, _Alloc>& _Left, + const vector<_Ty, _Alloc>& _Right) + { + return (!(_Left == _Right)); + } + +template inline + bool operator<(const vector<_Ty, _Alloc>& _Left, + const vector<_Ty, _Alloc>& _Right) + { + return (::std:: lexicographical_compare(_Left.begin(), _Left.end(), + _Right.begin(), _Right.end())); + } + +template inline + bool operator>(const vector<_Ty, _Alloc>& _Left, + const vector<_Ty, _Alloc>& _Right) + { + return (_Right < _Left); + } + +template inline + bool operator<=(const vector<_Ty, _Alloc>& _Left, + const vector<_Ty, _Alloc>& _Right) + { + return (!(_Right < _Left)); + } + +template inline + bool operator>=(const vector<_Ty, _Alloc>& _Left, + const vector<_Ty, _Alloc>& _Right) + { + return (!(_Left < _Right)); + } + + + + +typedef unsigned int _Vbase; +const int _VBITS = 8 * sizeof (_Vbase); + + +template + class _Vb_iter_base + : public _Iterator012 + { +public: + typedef typename _Alloc::size_type _Sizet; + typedef vector _Mycont; + + _Vb_iter_base() + : _Myptr(0), _Myoff(0) + { + } + + _Vb_iter_base(const _Vbase *_Ptr, _Sizet _Off, + const _Container_base *_Mypvbool) + : _Myptr(_Ptr), _Myoff(_Off) + { + this->_Adopt(_Mypvbool); + } + + void _Advance(_Sizet _Off) + { + _Myoff += _Off; + _Myptr += _Myoff / _VBITS; + _Myoff %= _VBITS; + } + + int _Valid(_Sizet _Inc) const + { + + const auto _Cont = static_cast(this->_Getcont()); + _Sizet _Mysize = _Cont->_Mysize; + + _Inc += _Myoff; + _Inc += _VBITS * (_Myptr - _Cont->_Myvec.data()); + return (_Inc < _Mysize ? -1 : _Inc == _Mysize ? 0 : +1); + + + + + + } + + const _Vbase *_Myptr; + _Sizet _Myoff; + }; + + +template + class _Vb_reference + : public _Vb_iter_base<_Alloc> + { + typedef _Vb_iter_base<_Alloc> _Mybase; + typedef _Vb_reference<_Alloc> _Mytype; + + _Vb_reference() noexcept + { + } + +public: + _Vb_reference(const _Mybase& _Right) + : _Mybase(_Right._Myptr, _Right._Myoff, _Right._Getcont()) + { + } + + _Mytype& operator=(const _Mytype& _Right) noexcept + { + return (*this = bool(_Right)); + } + + _Mytype& operator=(bool _Val) noexcept + { + if (_Val) + *(_Vbase *)_Getptr() |= _Mask(); + else + *(_Vbase *)_Getptr() &= (~_Mask()); + return (*this); + } + + void flip() noexcept + { + *(_Vbase *)_Getptr() ^= _Mask(); + } + + operator bool() const noexcept + { + return ((*_Getptr() & _Mask()) != 0); + } + + const _Vbase *_Getptr() const + { + + if (this->_Getcont() == 0 + || this->_Myptr == 0 + || 0 <= this->_Valid(0)) + { + _Debug_message(L"vector iterator not dereferencable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 1966); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 1967, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 1967, 0); }; + } + + + + + + + return (this->_Myptr); + } + +protected: + _Vbase _Mask() const + { + return ((_Vbase)(1) << this->_Myoff); + } + }; + +template inline + void swap(_Vb_reference<_Alloc> _Left, + _Vb_reference<_Alloc> _Right) + { + bool _Val = _Left; + _Left = _Right; + _Right = _Val; + } + + +template + class _Vb_const_iterator + : public _Vb_iter_base<_Alloc> + { +public: + typedef _Vb_iter_base<_Alloc> _Mybase; + typedef _Vb_const_iterator<_Alloc> _Mytype; + + typedef _Vb_reference<_Alloc> _Reft; + typedef bool const_reference; + + typedef random_access_iterator_tag iterator_category; + typedef bool value_type; + typedef typename _Alloc::size_type size_type; + typedef typename _Alloc::difference_type difference_type; + typedef const_reference *pointer; + typedef const_reference reference; + + _Vb_const_iterator() + { + } + + _Vb_const_iterator(const _Vbase *_Ptr, const _Container_base *_Mypvbool) + : _Mybase(_Ptr, 0, _Mypvbool) + { + } + + const_reference operator*() const + { + return (_Reft(*this)); + } + + _Mytype& operator++() + { + _Inc(); + return (*this); + } + + _Mytype operator++(int) + { + _Mytype _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Mytype& operator--() + { + _Dec(); + return (*this); + } + + _Mytype operator--(int) + { + _Mytype _Tmp = *this; + --*this; + return (_Tmp); + } + + _Mytype& operator+=(difference_type _Off) + { + if (_Off < 0 && this->_Myoff < 0 - (size_type)_Off) + { + this->_Myoff += _Off; + this->_Myptr -= 1 + ((size_type)(-1) - this->_Myoff) / _VBITS; + this->_Myoff %= _VBITS; + } + else + { + this->_Myoff += _Off; + this->_Myptr += this->_Myoff / _VBITS; + this->_Myoff %= _VBITS; + } + return (*this); + } + + _Mytype operator+(difference_type _Off) const + { + _Mytype _Tmp = *this; + return (_Tmp += _Off); + } + + _Mytype& operator-=(difference_type _Off) + { + return (*this += -_Off); + } + + _Mytype operator-(difference_type _Off) const + { + _Mytype _Tmp = *this; + return (_Tmp -= _Off); + } + + difference_type operator-( + const _Mytype& _Right) const + { + _Compat(_Right); + return (_VBITS * (this->_Myptr - _Right._Myptr) + + (difference_type)this->_Myoff + - (difference_type)_Right._Myoff); + } + + const_reference operator[](difference_type _Off) const + { + return (*(*this + _Off)); + } + + bool operator==(const _Mytype& _Right) const + { + _Compat(_Right); + return (this->_Myptr == _Right._Myptr + && this->_Myoff == _Right._Myoff); + } + + bool operator!=(const _Mytype& _Right) const + { + return (!(*this == _Right)); + } + + bool operator<(const _Mytype& _Right) const + { + _Compat(_Right); + return (this->_Myptr < _Right._Myptr + || (this->_Myptr == _Right._Myptr + && this->_Myoff < _Right._Myoff)); + } + + bool operator>(const _Mytype& _Right) const + { + return (_Right < *this); + } + + bool operator<=(const _Mytype& _Right) const + { + return (!(_Right < *this)); + } + + bool operator>=(const _Mytype& _Right) const + { + return (!(*this < _Right)); + } + + + void _Compat(const _Mytype& _Right) const + { + if (this->_Getcont() != _Right._Getcont()) + _Debug_message(L"vector iterators incompatible", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 2140); + } +# 2155 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector" 3 + void _Dec() + { + if (this->_Myoff != 0) + --this->_Myoff; + else + { + + if (this->_Getcont() == 0 || 0 < this->_Valid((size_type)-1)) + { + _Debug_message(L"vector iterator not decrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 2164); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 2165, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 2165, 0); }; + } + + + + + + + this->_Myoff = _VBITS - 1; + --this->_Myptr; + } + } + + void _Inc() + { + if (this->_Myoff < _VBITS - 1) + ++this->_Myoff; + else + { + + if (this->_Getcont() == 0 || 0 < this->_Valid(1)) + { + _Debug_message(L"vector iterator not incrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 2187); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 2188, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 2188, 0); }; + } + + + + + + + this->_Myoff = 0; + ++this->_Myptr; + } + } + }; + +template inline + _Vb_const_iterator<_Alloc> operator+( + typename _Alloc::difference_type _Off, + _Vb_const_iterator<_Alloc> _Right) + { + return (_Right += _Off); + } + +template + struct _Is_checked_helper<_Vb_const_iterator<_Alloc> > + : public true_type + { + }; + + +template + class _Vb_iterator + : public _Vb_const_iterator<_Alloc> + { +public: + typedef _Vb_const_iterator<_Alloc> _Mybase; + typedef _Vb_iterator<_Alloc> _Mytype; + + typedef _Vb_reference<_Alloc> _Reft; + typedef bool const_reference; + + typedef random_access_iterator_tag iterator_category; + typedef bool value_type; + typedef typename _Alloc::size_type size_type; + typedef typename _Alloc::difference_type difference_type; + typedef _Reft *pointer; + typedef _Reft reference; + + _Vb_iterator() + { + } + + _Vb_iterator(_Vbase *_Ptr, _Container_base *_Mypvbool) + : _Mybase(_Ptr, _Mypvbool) + { + } + + reference operator*() const + { + return (_Reft(*this)); + } + + _Mytype& operator++() + { + ++*(_Mybase *)this; + return (*this); + } + + _Mytype operator++(int) + { + _Mytype _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Mytype& operator--() + { + --*(_Mybase *)this; + return (*this); + } + + _Mytype operator--(int) + { + _Mytype _Tmp = *this; + --*this; + return (_Tmp); + } + + _Mytype& operator+=(difference_type _Off) + { + *(_Mybase *)this += _Off; + return (*this); + } + + _Mytype operator+(difference_type _Off) const + { + _Mytype _Tmp = *this; + return (_Tmp += _Off); + } + + _Mytype& operator-=(difference_type _Off) + { + return (*this += -_Off); + } + + _Mytype operator-(difference_type _Off) const + { + _Mytype _Tmp = *this; + return (_Tmp -= _Off); + } + + difference_type operator-(const _Mybase& _Right) const + { + return (*(_Mybase *)this - _Right); + } + + reference operator[](difference_type _Off) const + { + return (*(*this + _Off)); + } + }; + +template inline + _Vb_iterator<_Alloc> operator+(typename _Alloc::difference_type _Off, + _Vb_iterator<_Alloc> _Right) + { + return (_Right += _Off); + } + +template + struct _Is_checked_helper<_Vb_iterator<_Alloc> > + : public true_type + { + }; + + +template + class _Vb_val + : public _Container_base + { +public: + typedef vector<_Vbase, _Alloc> _Vectype; + typedef typename _Vectype::_Alty _Alty; + typedef typename _Alty::size_type size_type; + + _Vb_val(size_type _Count, const bool& _Val) + : _Myvec(_Nw(_Count), (_Vbase) (_Val ? -1 : 0)) + { + _Alloc_proxy(); + _Mysize = 0; + } + + _Vb_val(size_type _Count, const bool& _Val, const _Alloc& _Al) + : _Myvec(_Nw(_Count), (_Vbase)(_Val ? -1 : 0), _Al) + { + _Alloc_proxy(); + _Mysize = 0; + } + + _Vb_val(const _Vb_val& _Right) + : _Myvec(_Right._Myvec), + _Mysize(_Right._Mysize) + { + _Alloc_proxy(); + } + + _Vb_val(const _Vb_val& _Right, const _Alloc& _Al) + : _Myvec(_Right._Myvec, _Al), + _Mysize(_Right._Mysize) + { + _Alloc_proxy(); + } + + _Vb_val(_Vb_val&& _Right) + : _Myvec(::std:: forward<_Vectype>(_Right._Myvec)), + _Mysize(_Right._Mysize) + { + _Right._Mysize = 0; + _Alloc_proxy(); + } + + _Vb_val(_Vb_val&& _Right, const _Alloc& _Al) + : _Myvec(::std:: forward<_Vectype>(_Right._Myvec), _Al), + _Mysize(_Right._Mysize) + { + _Right._Mysize = 0; + _Alloc_proxy(); + } + + ~_Vb_val() noexcept + { + _Free_proxy(); + } +# 2391 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector" 3 + void _Alloc_proxy() + { + typename _Alty::template rebind<_Container_proxy>::other + _Alproxy(_Myvec._Getal()); + this->_Myproxy = _Unfancy(_Alproxy.allocate(1)); + _Alproxy.construct(this->_Myproxy, _Container_proxy()); + this->_Myproxy->_Mycont = this; + } + + void _Free_proxy() + { + typename _Alty::template rebind<_Container_proxy>::other + _Alproxy(_Myvec._Getal()); + this->_Orphan_all(); + _Alproxy.destroy(this->_Myproxy); + _Alproxy.deallocate(_Alproxy.address(*this->_Myproxy), 1); + this->_Myproxy = 0; + } + + + static size_type _Nw(size_type _Count) + { + return ((_Count + _VBITS - 1) / _VBITS); + } + + _Vectype _Myvec; + typename _Alty::size_type _Mysize; + }; + + + +template + class vector + : public _Vb_val<_Alloc> + { +public: + typedef vector _Myt; + typedef _Vb_val<_Alloc> _Mybase; + typedef typename _Mybase::_Alty _Alty; + typedef typename _Mybase::_Vectype _Vectype; + + typedef typename _Alty::size_type size_type; + typedef typename _Alty::difference_type difference_type; + typedef bool _Ty; + typedef _Alloc allocator_type; + + typedef _Vb_reference<_Alty> reference; + typedef bool const_reference; + typedef bool value_type; + + typedef reference _Reft; + typedef _Vb_const_iterator<_Alty> const_iterator; + typedef _Vb_iterator<_Alty> iterator; + + typedef iterator pointer; + typedef const_iterator const_pointer; + typedef ::std:: reverse_iterator reverse_iterator; + typedef ::std:: reverse_iterator const_reverse_iterator; + + static const int _VBITS = ::std:: _VBITS; + enum {_EEN_VBITS = _VBITS}; + vector() + : _Mybase(0, false) + { + } + + explicit vector(const _Alloc& _Al) + : _Mybase(0, false, _Al) + { + } + + explicit vector(size_type _Count, const _Alloc& _Al = _Alloc()) + : _Mybase(_Count, false, _Al) + { + _Trim(_Count); + } + + vector(size_type _Count, const bool& _Val, const _Alloc& _Al = _Alloc()) + : _Mybase(_Count, _Val, _Al) + { + _Trim(_Count); + } + + vector(const _Myt& _Right) + : _Mybase(_Right) + { + } + + vector(const _Myt& _Right, const _Alloc& _Al) + : _Mybase(_Right, _Al) + { + } + + template::value, + void>::type> + vector(_Iter _First, _Iter _Last, const _Alloc& _Al = _Alloc()) + : _Mybase(0, false, _Al) + { + _BConstruct(_First, _Last); + } + + template + void _BConstruct(_Iter _First, _Iter _Last) + { + insert(begin(), _First, _Last); + } + + vector(_Myt&& _Right) + : _Mybase(::std:: forward<_Myt>(_Right)) + { + } + + vector(_Myt&& _Right, const _Alloc& _Al) + : _Mybase(::std:: forward<_Myt>(_Right), _Al) + { + } + + _Myt& operator=(_Myt&& _Right) + { + if (this != &_Right) + { + clear(); + + if (_Alty::propagate_on_container_move_assignment::value + && this->get_allocator() != _Right.get_allocator()) + { + this->_Free_proxy(); + this->_Myvec = ::std:: move(_Right._Myvec); + this->_Alloc_proxy(); + } + else + this->_Myvec = ::std:: move(_Right._Myvec); + + + this->_Mysize = _Right._Mysize; + _Right._Mysize = 0; + } + return (*this); + } + + template + void emplace_back(_Valty&&... _Val) + { + bool _Tmp(::std:: forward<_Valty>(_Val)...); + push_back(_Tmp); + } + + template + iterator emplace(const_iterator _Where, _Valty&&... _Val) + { + bool _Tmp(::std:: forward<_Valty>(_Val)...); + return (insert(_Where, _Tmp)); + } + + + vector(::std:: initializer_list _Ilist, + const _Alloc& _Al = allocator_type()) + : _Mybase(0, false, _Al) + { + insert(begin(), _Ilist.begin(), _Ilist.end()); + } + + _Myt& operator=(::std:: initializer_list _Ilist) + { + assign(_Ilist.begin(), _Ilist.end()); + return (*this); + } + + void assign(::std:: initializer_list _Ilist) + { + assign(_Ilist.begin(), _Ilist.end()); + } + + iterator insert(const_iterator _Where, + ::std:: initializer_list _Ilist) + { + return (insert(_Where, _Ilist.begin(), _Ilist.end())); + } + + ~vector() noexcept + { + } + + _Myt& operator=(const _Myt& _Right) + { + this->_Mysize = _Right._Mysize; + this->_Myvec = _Right._Myvec; + return (*this); + } + + void reserve(size_type _Count) + { + this->_Myvec.reserve(this->_Nw(_Count)); + } + + size_type capacity() const noexcept + { + return (this->_Myvec.capacity() * _VBITS); + } + + iterator begin() noexcept + { + return (iterator(this->_Myvec.data(), this)); + } + + const_iterator begin() const noexcept + { + return (const_iterator(this->_Myvec.data(), this)); + } + + iterator end() noexcept + { + iterator _Tmp = begin(); + if (0 < this->_Mysize) + _Tmp += this->_Mysize; + return (_Tmp); + } + + const_iterator end() const noexcept + { + const_iterator _Tmp = begin(); + if (0 < this->_Mysize) + _Tmp += this->_Mysize; + return (_Tmp); + } + + const_iterator cbegin() const noexcept + { + return (begin()); + } + + const_iterator cend() const noexcept + { + return (end()); + } + + const_reverse_iterator crbegin() const noexcept + { + return (rbegin()); + } + + const_reverse_iterator crend() const noexcept + { + return (rend()); + } + + void shrink_to_fit() + { + if (this->_Myvec._Has_unused_capacity()) + { + _Myt _Tmp(*this); + swap(_Tmp); + } + } + + iterator _Make_iter(const_iterator _Where) + { + iterator _Tmp = begin(); + if (0 < this->_Mysize) + _Tmp += _Where - begin(); + return (_Tmp); + } + + reverse_iterator rbegin() noexcept + { + return (reverse_iterator(end())); + } + + const_reverse_iterator rbegin() const noexcept + { + return (const_reverse_iterator(end())); + } + + reverse_iterator rend() noexcept + { + return (reverse_iterator(begin())); + } + + const_reverse_iterator rend() const noexcept + { + return (const_reverse_iterator(begin())); + } + + void resize(size_type _Newsize, bool _Val = false) + { + if (size() < _Newsize) + _Insert_n(end(), _Newsize - size(), _Val); + else if (_Newsize < size()) + erase(begin() + _Newsize, end()); + } + + size_type size() const noexcept + { + return (this->_Mysize); + } + + size_type max_size() const noexcept + { + const size_type _Maxsize = this->_Myvec.max_size(); + return (_Maxsize < (size_type)(-1) / _VBITS + ? _Maxsize * _VBITS : (size_type)(-1)); + } + + bool empty() const noexcept + { + return (size() == 0); + } + + _Alloc get_allocator() const noexcept + { + _Alloc _Ret(this->_Myvec.get_allocator()); + return (_Ret); + } + + const_reference at(size_type _Off) const + { + if (size() <= _Off) + _Xran(); + return ((*this)[_Off]); + } + + reference at(size_type _Off) + { + if (size() <= _Off) + _Xran(); + return ((*this)[_Off]); + } + + const_reference operator[](size_type _Off) const + { + const_iterator _It = begin(); + _It._Advance(_Off); + return (*_It); + } + + reference operator[](size_type _Off) + { + iterator _It = begin(); + _It._Advance(_Off); + return (*_It); + } + + reference front() + { + return (*begin()); + } + + const_reference front() const + { + return (*begin()); + } + + reference back() + { + return (*(end() - 1)); + } + + const_reference back() const + { + return (*(end() - 1)); + } + + void push_back(const bool& _Val) + { + insert(end(), _Val); + } + + void pop_back() + { + erase(end() - 1); + } + + template + typename enable_if<_Is_iterator<_Iter>::value, + void>::type + assign(_Iter _First, _Iter _Last) + { + erase(begin(), end()); + insert(begin(), _First, _Last); + } + + void assign(size_type _Count, const bool& _Val) + { + erase(begin(), end()); + _Insert_n(begin(), _Count, _Val); + } + + iterator insert(const_iterator _Where, const bool& _Val) + { + return (_Insert_n(_Where, (size_type)1, _Val)); + } + + iterator insert(const_iterator _Where, size_type _Count, + const bool& _Val) + { + return (_Insert_n(_Where, _Count, _Val)); + } + + template + typename enable_if<_Is_iterator<_Iter>::value, + iterator>::type + insert(const_iterator _Where, _Iter _First, _Iter _Last) + { + size_type _Off = _Where - begin(); + _Insert(_Where, _First, _Last, _Iter_cat_t<_Iter>()); + return (begin() + _Off); + } + + template + void _Insert(const_iterator _Where, + _Iter _First, _Iter _Last, + input_iterator_tag) + { + size_type _Off = _Where - begin(); + + for (; _First != _Last; ++_First, (void)++_Off) + insert(begin() + _Off, *_First); + } + + template + void _Insert(const_iterator _Where, + _Iter _First, _Iter _Last, + forward_iterator_tag) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 2816); + size_type _Count = ::std:: distance(_First, _Last); + size_type _Off = _Insert_x(_Where, _Count); + ::std:: copy(_First, _Last, begin() + _Off); + } + + iterator erase(const_iterator _Where_arg) + { + iterator _Where = _Make_iter(_Where_arg); + size_type _Off = _Where - begin(); + + + if (end() <= _Where) + _Debug_message(L"vector erase iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 2829); + ::std:: copy(_Where + 1, end(), _Where); + _Orphan_range(_Off, this->_Mysize); + + + + + + _Trim(this->_Mysize - 1); + return (begin() + _Off); + } + + iterator erase(const_iterator _First_arg, + const_iterator _Last_arg) + { + iterator _First = _Make_iter(_First_arg); + iterator _Last = _Make_iter(_Last_arg); + size_type _Off = _First - begin(); + + if (_First != _Last) + { + + if (_Last < _First || end() < _Last) + _Debug_message(L"vector erase iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 2852); + iterator _Next = ::std:: copy(_Last, end(), _First); + size_type _Newsize = _Next - begin(); + _Orphan_range(_Newsize, this->_Mysize); + _Trim(_Newsize); + + + + + + } + return (begin() + _Off); + } + + void clear() noexcept + { + erase(begin(), end()); + } + + void flip() noexcept + { + for (typename _Vectype::iterator _Next = this->_Myvec.begin(); + _Next != this->_Myvec.end(); ++_Next) + *_Next = (_Vbase)~*_Next; + _Trim(this->_Mysize); + } + + void swap(_Myt& _Right) + { + if (this != &_Right) + { + this->_Swap_all(_Right); + this->_Myvec.swap(_Right._Myvec); + ::std:: swap(this->_Mysize, _Right._Mysize); + } + } + + static void swap(reference _Left, reference _Right) noexcept + { + bool _Val = _Left; + + _Left = _Right; + _Right = _Val; + } + + size_t hash() const + { + return (_Hash_seq((const unsigned char *)this->_Myvec.data(), + this->_Myvec.size() * sizeof (_Vbase))); + } + + iterator _Insert_n(const_iterator _Where, + size_type _Count, const bool& _Val) + { + size_type _Off = _Insert_x(_Where, _Count); + ::std:: fill(begin() + _Off, begin() + (_Off + _Count), _Val); + return (begin() + _Off); + } + + size_type _Insert_x(const_iterator _Where, size_type _Count) + { + size_type _Off = _Where - begin(); + + + if (end() < _Where) + _Debug_message(L"vector insert iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vector", 2917); + bool _Realloc = capacity() - size() < _Count; + + + if (_Count == 0) + ; + else if (max_size() - size() < _Count) + _Xlen(); + else + { + this->_Myvec.resize(this->_Nw(size() + _Count), 0); + if (empty()) + this->_Mysize += _Count; + else + { + iterator _Oldend = end(); + this->_Mysize += _Count; + ::std:: copy_backward(begin() + _Off, _Oldend, end()); + } + + + _Orphan_range(_Realloc ? 0 : _Off, this->_Mysize); + + } + return (_Off); + } + + + void _Orphan_range(size_type _Offlo, size_type _Offhi) const + { + typedef _Vb_iter_base<_Alty> _Myiterbase; + + _Lockit _Lock(3); + auto _Base = const_cast<_Vbase *>(this->_Myvec.data()); + + const_iterator **_Pnext = (const_iterator **)this->_Getpfirst(); + if (_Pnext != 0) + while (*_Pnext != 0) + { + size_type _Off = _VBITS * ((*_Pnext)->_Myptr - _Base) + + (*_Pnext)->_Myoff; + if (_Off < _Offlo || _Offhi < _Off) + _Pnext = (const_iterator **)(*_Pnext)->_Getpnext(); + else + { + (*_Pnext)->_Clrcont(); + *_Pnext = *(const_iterator **)(*_Pnext)->_Getpnext(); + } + } + } + + + + + + + + void _Trim(size_type _Size) + { + if (max_size() < _Size) + _Xlen(); + size_type _Words = this->_Nw(_Size); + + if (_Words < this->_Myvec.size()) + this->_Myvec.erase(this->_Myvec.begin() + _Words, + this->_Myvec.end()); + this->_Mysize = _Size; + _Size %= _VBITS; + if (0 < _Size) + this->_Myvec[_Words - 1] &= ((_Vbase)(1) << _Size) - 1; + } + + [[noreturn]] void _Xlen() const + { + _Xlength_error("vector too long"); + } + + [[noreturn]] void _Xran() const + { + _Xout_of_range("invalid vector subscript"); + } + }; + +template inline + bool operator==(const vector& _Left, + const vector& _Right) + { + return (_Left.size() == _Right.size() + && ::std:: equal(_Left._Myvec.begin(), _Left._Myvec.end(), + _Right._Myvec.begin())); + } + +template inline + bool operator!=(const vector& _Left, + const vector& _Right) + { + return (!(_Left == _Right)); + } + + +template + struct hash > + { + typedef vector argument_type; + typedef size_t result_type; + + size_t operator()(const argument_type& _Keyval) const + { + return (_Keyval.hash()); + } + }; +} + + +#pragma warning(pop) +#pragma pack(pop) +# 4 "../LEngine/Scene.h" 2 + + +# 1 "../LEngine/ForwardDeclarations.h" 1 + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\memory" 1 3 +# 13 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\memory" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\typeinfo" 1 3 +# 23 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\typeinfo" 3 +#pragma pack(push,8) +#pragma warning(push, 3) + + +#pragma warning(disable: 4275) + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_typeinfo.h" 1 3 +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_typeinfo.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 1 3 +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_typeinfo.h" 2 3 + + + +#pragma pack(push, 8) + + + + + + + + struct __type_info_node; + + + + + + extern __type_info_node __type_info_root_node; + + + + +#pragma pack(push, 8) +# 32 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_typeinfo.h" 3 + extern "C" { + + +#pragma warning(push) +#pragma warning(disable: 4510 4512 4610) +struct __std_type_info_data +{ + char const* _UndecoratedName; + char const _DecoratedName[1]; +}; +#pragma warning(pop) + + int __cdecl __std_type_info_compare( + __std_type_info_data const* _Lhs, + __std_type_info_data const* _Rhs + ); + + size_t __cdecl __std_type_info_hash( + __std_type_info_data const* _Data + ); + + char const* __cdecl __std_type_info_name( + __std_type_info_data* _Data, + __type_info_node* _RootNode + ); + +} +# 58 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_typeinfo.h" 3 +#pragma pack(pop) + + + +class type_info +{ +public: + + type_info(type_info const&) = delete; + type_info& operator=(type_info const&) = delete; + + size_t hash_code() const throw() + { + return __std_type_info_hash(&_Data); + } + + bool operator==(type_info const& _Other) const throw() + { + return __std_type_info_compare(&_Data, &_Other._Data) == 0; + } + + bool operator!=(type_info const& _Other) const throw() + { + return __std_type_info_compare(&_Data, &_Other._Data) != 0; + } + + bool before(type_info const& _Other) const throw() + { + return __std_type_info_compare(&_Data, &_Other._Data) < 0; + } + + char const* name() const throw() + { + + + + return __std_type_info_name(&_Data, &__type_info_root_node); + + } + + char const* raw_name() const throw() + { + return _Data._DecoratedName; + } + + virtual ~type_info() throw(); + +private: + + mutable __std_type_info_data _Data; +}; + +namespace std { + using ::type_info; +} + + + +namespace std { + +class bad_cast + : public exception +{ +public: + + bad_cast() throw() + : exception("bad cast", 1) + { + } + + static bad_cast __construct_from_string_literal(char const* const _Message) throw() + { + return bad_cast(_Message, 1); + } + +private: + + bad_cast(char const* const _Message, int) throw() + : exception(_Message, 1) + { + } +}; + +class bad_typeid + : public exception +{ +public: + + bad_typeid() throw() + : exception("bad typeid", 1) + { + } + + static bad_typeid __construct_from_string_literal(char const* const _Message) throw() + { + return bad_typeid(_Message, 1); + } + +private: + + friend class __non_rtti_object; + + bad_typeid(char const* const _Message, int) throw() + : exception(_Message, 1) + { + } +}; + +class __non_rtti_object + : public bad_typeid +{ +public: + + static __non_rtti_object __construct_from_string_literal(char const* const _Message) throw() + { + return __non_rtti_object(_Message, 1); + } + +private: + + __non_rtti_object(char const* const _Message, int) throw() + : bad_typeid(_Message, 1) + { + } +}; + +} + + + +#pragma pack(pop) +# 29 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\typeinfo" 2 3 +# 90 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\typeinfo" 3 +#pragma pack(pop) +#pragma warning(pop) +# 13 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\memory" 2 3 + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 28197) + +namespace std { +template + struct default_delete; + +template > + class unique_ptr; + + +class bad_weak_ptr + : public ::std:: exception + { +public: + bad_weak_ptr() noexcept + { + } + + virtual const char * what() const throw() + { + return ("bad_weak_ptr"); + } + }; + + +class _Ref_count_base + { +private: + virtual void _Destroy() noexcept = 0; + virtual void _Delete_this() noexcept = 0; + +private: + _Atomic_counter_t _Uses; + _Atomic_counter_t _Weaks; + +protected: + _Ref_count_base() + { + _Init_atomic_counter(_Uses, 1); + _Init_atomic_counter(_Weaks, 1); + } + +public: + virtual ~_Ref_count_base() noexcept + { + } + + bool _Incref_nz() + { + for (; ; ) + { + + _Atomic_integral_t _Count = + static_cast(_Uses); + + if (_Count == 0) + return (false); + + if (static_cast<_Atomic_integral_t>(_InterlockedCompareExchange( + reinterpret_cast(&_Uses), + _Count + 1, _Count)) == _Count) + return (true); +# 95 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\memory" 3 + } + } + + void _Incref() + { + _InterlockedIncrement(reinterpret_cast(&_Uses)); + } + + void _Incwref() + { + _InterlockedIncrement(reinterpret_cast(&_Weaks)); + } + + void _Decref() + { + if (_InterlockedDecrement(reinterpret_cast(&_Uses)) == 0) + { + _Destroy(); + _Decwref(); + } + } + + void _Decwref() + { + if (_InterlockedDecrement(reinterpret_cast(&_Weaks)) == 0) + _Delete_this(); + } + + long _Use_count() const noexcept + { + return (_Get_atomic_count(_Uses)); + } + + bool _Expired() const noexcept + { + return (_Use_count() == 0); + } + + virtual void *_Get_deleter(const type_info&) const noexcept + { + return (0); + } + }; + + +template + class _Ref_count + : public _Ref_count_base + { +public: + _Ref_count(_Ty *_Px) + : _Ref_count_base(), _Ptr(_Px) + { + } + +private: + virtual void _Destroy() noexcept + { + delete _Ptr; + } + + virtual void _Delete_this() noexcept + { + delete this; + } + + _Ty * _Ptr; + }; + + +template + class _Ref_count_del + : public _Ref_count_base + { +public: + _Ref_count_del(_Ty *_Px, _Dx _Dt) + : _Ref_count_base(), _Mypair(_One_then_variadic_args_t(), _Dt, _Px) + { + } + + virtual void *_Get_deleter( + const type_info& _Typeid) const noexcept + { + return ((void *)(_Typeid == typeid(_Dx) + ? ::std:: addressof(_Mypair._Get_first()) : 0)); + } + +private: + virtual void _Destroy() noexcept + { + _Mypair._Get_first()(_Mypair._Get_second()); + } + + virtual void _Delete_this() noexcept + { + delete this; + } + + _Compressed_pair<_Dx, _Ty *> _Mypair; + }; + + +template + class _Ref_count_del_alloc + : public _Ref_count_base + { +public: + typedef _Ref_count_del_alloc<_Ty, _Dx, _Alloc> _Myt; + typedef _Wrap_alloc<_Alloc> _Myalty0; + typedef typename _Myalty0::template rebind<_Myt>::other _Myalty; + + _Ref_count_del_alloc(_Ty *_Px, _Dx _Dt, const _Alloc& _Ax) + : _Ref_count_base(), _Mypair(_One_then_variadic_args_t(), _Dt, + _One_then_variadic_args_t(), _Ax, _Px) + { + } + + virtual void *_Get_deleter( + const type_info& _Typeid) const noexcept + { + return ((void *)(_Typeid == typeid(_Dx) + ? ::std:: addressof(_Mypair._Get_first()) : 0)); + } + +private: + virtual void _Destroy() noexcept + { + _Mypair._Get_first()(_Mypair._Get_second()._Get_second()); + } + + virtual void _Delete_this() noexcept + { + _Myalty _Al = _Mypair._Get_second()._Get_first(); + _Al.destroy(this); + _Al.deallocate(this, 1); + } + + _Compressed_pair<_Dx, _Compressed_pair<_Myalty, _Ty *> > _Mypair; + }; + + +template + class weak_ptr; +template + class shared_ptr; +template + class enable_shared_from_this; + +template + void _Do_enable(_Ty1 *, enable_shared_from_this<_Ty2> *, + _Ref_count_base *); + +template + inline void _Enable_shared(_Ty *_Ptr, _Ref_count_base *_Refptr, + typename _Ty::_EStype * = 0) + { + if (_Ptr) + _Do_enable(_Ptr, + (enable_shared_from_this*)_Ptr, _Refptr); + } + +inline void _Enable_shared(const volatile void *, const volatile void *) + { + } + + +template + class _Ptr_base + { +public: + typedef _Ptr_base<_Ty> _Myt; + typedef _Ty element_type; + + constexpr _Ptr_base() noexcept + : _Ptr(0), _Rep(0) + { + } + + _Ptr_base(_Myt&& _Right) + : _Ptr(_Right._Ptr), _Rep(_Right._Rep) + { + _Right._Ptr = 0; + _Right._Rep = 0; + } + + template + _Ptr_base(_Ptr_base<_Ty2>&& _Right) + : _Ptr(_Right._Ptr), _Rep(_Right._Rep) + { + _Right._Ptr = 0; + _Right._Rep = 0; + } + + _Myt& operator=(_Myt&& _Right) + { + _Assign_rv(::std:: move(_Right)); + return (*this); + } + + void _Assign_rv(_Myt&& _Right) + { + _Swap(_Right); + } + + long use_count() const noexcept + { + return (_Rep ? _Rep->_Use_count() : 0); + } + + void _Swap(_Ptr_base& _Right) noexcept + { + ::std:: swap(_Rep, _Right._Rep); + ::std:: swap(_Ptr, _Right._Ptr); + } + + template + bool owner_before(const _Ptr_base<_Ty2>& _Right) const + { + return (_Rep < _Right._Rep); + } + + void *_Get_deleter(const type_info& _Typeid) const noexcept + { + return (_Rep ? _Rep->_Get_deleter(_Typeid) : 0); + } + + _Ty *_Get() const noexcept + { + return (_Ptr); + } + + bool _Expired() const noexcept + { + return (!_Rep || _Rep->_Expired()); + } + + void _Decref() + { + if (_Rep != 0) + _Rep->_Decref(); + } + + void _Reset() + { + _Reset(0, 0); + } + + template + void _Reset(const _Ptr_base<_Ty2>& _Other) + { + _Reset(_Other._Ptr, _Other._Rep); + } + + template + void _Reset(const _Ptr_base<_Ty2>& _Other, bool _Throw) + { + _Reset(_Other._Ptr, _Other._Rep, _Throw); + } + + + template + void _Reset(auto_ptr<_Ty2>&& _Other) + { + _Ty2 *_Px = _Other.get(); + _Reset0(_Px, new _Ref_count<_Ty>(_Px)); + _Other.release(); + _Enable_shared(_Px, _Rep); + } + + + template + void _Reset(_Ty *_Other_ptr, const _Ptr_base<_Ty2>& _Other) + { + _Reset(_Other_ptr, _Other._Rep); + } + + void _Reset(_Ty *_Other_ptr, _Ref_count_base *_Other_rep) + { + if (_Other_rep) + _Other_rep->_Incref(); + _Reset0(_Other_ptr, _Other_rep); + } + + void _Reset(_Ty *_Other_ptr, _Ref_count_base *_Other_rep, bool _Throw) + { + + + if (_Other_rep && _Other_rep->_Incref_nz()) + _Reset0(_Other_ptr, _Other_rep); + else if (_Throw) + throw bad_weak_ptr(); + } + + void _Reset0(_Ty *_Other_ptr, _Ref_count_base *_Other_rep) + { + if (_Rep != 0) + _Rep->_Decref(); + _Rep = _Other_rep; + _Ptr = _Other_ptr; + } + + void _Decwref() + { + if (_Rep != 0) + _Rep->_Decwref(); + } + + void _Resetw() + { + _Resetw((_Ty *)0, 0); + } + + template + void _Resetw(const _Ptr_base<_Ty2>& _Other) + { + _Resetw(_Other._Ptr, _Other._Rep); + } + + template + void _Resetw(_Ty2 *_Other_ptr, _Ref_count_base *_Other_rep) + { + if (_Other_rep) + _Other_rep->_Incwref(); + if (_Rep != 0) + _Rep->_Decwref(); + _Rep = _Other_rep; + _Ptr = const_cast *>(_Other_ptr); + } + +private: + _Ty *_Ptr; + _Ref_count_base *_Rep; + template + friend class _Ptr_base; + }; + + +template + class shared_ptr + : public _Ptr_base<_Ty> + { +public: + typedef shared_ptr<_Ty> _Myt; + typedef _Ptr_base<_Ty> _Mybase; + + constexpr shared_ptr() noexcept + { + } + + template + explicit shared_ptr(_Ux *_Px) + { + _Resetp(_Px); + } + + template + shared_ptr(_Ux *_Px, _Dx _Dt) + { + _Resetp(_Px, _Dt); + } + + constexpr shared_ptr(nullptr_t) noexcept + { + } + + template + shared_ptr(nullptr_t, _Dx _Dt) + { + _Resetp((_Ty *)0, _Dt); + } + + template + shared_ptr(nullptr_t, _Dx _Dt, _Alloc _Ax) + { + _Resetp((_Ty *)0, _Dt, _Ax); + } + + template + shared_ptr(_Ux *_Px, _Dx _Dt, _Alloc _Ax) + { + _Resetp(_Px, _Dt, _Ax); + } + + template + shared_ptr(const shared_ptr<_Ty2>& _Right, _Ty *_Px) noexcept + { + this->_Reset(_Px, _Right); + } + + shared_ptr(const _Myt& _Other) noexcept + { + this->_Reset(_Other); + } + + template::value, + void>::type> + shared_ptr(const shared_ptr<_Ty2>& _Other) noexcept + { + this->_Reset(_Other); + } + + template + explicit shared_ptr(const weak_ptr<_Ty2>& _Other, + bool _Throw = true) + { + this->_Reset(_Other, _Throw); + } + + + template + shared_ptr(auto_ptr<_Ty2>&& _Other) + { + this->_Reset(::std:: move(_Other)); + } + + + shared_ptr(_Myt&& _Right) noexcept + : _Mybase(::std:: move(_Right)) + { + } + + template::value, + void>::type> + shared_ptr(shared_ptr<_Ty2>&& _Right) noexcept + : _Mybase(::std:: move(_Right)) + { + } + + + template::pointer, _Ty *>::value, + void>::type> + shared_ptr(unique_ptr<_Ux, _Dx>&& _Right) + { + _Resetp(_Right.release(), _Right.get_deleter()); + } + + template + _Myt& operator=(unique_ptr<_Ux, _Dx>&& _Right) + { + shared_ptr(::std:: move(_Right)).swap(*this); + return (*this); + } + + _Myt& operator=(_Myt&& _Right) noexcept + { + shared_ptr(::std:: move(_Right)).swap(*this); + return (*this); + } + + template + _Myt& operator=(shared_ptr<_Ty2>&& _Right) noexcept + { + shared_ptr(::std:: move(_Right)).swap(*this); + return (*this); + } + + ~shared_ptr() noexcept + { + this->_Decref(); + } + + _Myt& operator=(const _Myt& _Right) noexcept + { + shared_ptr(_Right).swap(*this); + return (*this); + } + + template + _Myt& operator=(const shared_ptr<_Ty2>& _Right) noexcept + { + shared_ptr(_Right).swap(*this); + return (*this); + } + + + template + _Myt& operator=(auto_ptr<_Ty2>&& _Right) + { + shared_ptr(::std:: move(_Right)).swap(*this); + return (*this); + } + + + void reset() noexcept + { + shared_ptr().swap(*this); + } + + template + void reset(_Ux *_Px) + { + shared_ptr(_Px).swap(*this); + } + + template + void reset(_Ux *_Px, _Dx _Dt) + { + shared_ptr(_Px, _Dt).swap(*this); + } + + template + void reset(_Ux *_Px, _Dx _Dt, _Alloc _Ax) + { + shared_ptr(_Px, _Dt, _Ax).swap(*this); + } + + void swap(_Myt& _Other) noexcept + { + this->_Swap(_Other); + } + + _Ty *get() const noexcept + { + return (this->_Get()); + } + + typename add_lvalue_reference<_Ty>::type operator*() const noexcept + { + return (*this->_Get()); + } + + _Ty *operator->() const noexcept + { + return (this->_Get()); + } + + bool unique() const noexcept + { + return (this->use_count() == 1); + } + + explicit operator bool() const noexcept + { + return (this->_Get() != 0); + } + +private: + template + void _Resetp(_Ux *_Px) + { + try { + _Resetp0(_Px, new _Ref_count<_Ux>(_Px)); + } catch (...) { + delete _Px; + throw; + } + } + + template + void _Resetp(_Ux *_Px, _Dx _Dt) + { + try { + _Resetp0(_Px, new _Ref_count_del<_Ux, _Dx>(_Px, _Dt)); + } catch (...) { + _Dt(_Px); + throw; + } + } + + template + void _Resetp(_Ux *_Px, _Dx _Dt, _Alloc _Ax) + { + typedef _Ref_count_del_alloc<_Ux, _Dx, _Alloc> _Refd; + typedef _Wrap_alloc<_Alloc> _Alref0; + typename _Alref0::template rebind<_Refd>::other _Alref(_Ax); + + try { + _Refd *_Pref = _Alref.allocate(1); + _Alref.construct(_Pref, _Px, _Dt, _Ax); + _Resetp0(_Px, _Pref); + } catch (...) { + _Dt(_Px); + throw; + } + } + +public: + template + void _Resetp0(_Ux *_Px, _Ref_count_base *_Rx) + { + this->_Reset0(_Px, _Rx); + _Enable_shared(_Px, _Rx); + } + }; + +template + bool operator==(const shared_ptr<_Ty1>& _Left, + const shared_ptr<_Ty2>& _Right) noexcept + { + return (_Left.get() == _Right.get()); + } + +template + bool operator!=(const shared_ptr<_Ty1>& _Left, + const shared_ptr<_Ty2>& _Right) noexcept + { + return (!(_Left == _Right)); + } + +template + bool operator<(const shared_ptr<_Ty1>& _Left, + const shared_ptr<_Ty2>& _Right) noexcept + { + return (less::value + ? _Left.get() : _Right.get())>()( + _Left.get(), _Right.get())); + } + +template + bool operator>=(const shared_ptr<_Ty1>& _Left, + const shared_ptr<_Ty2>& _Right) noexcept + { + return (!(_Left < _Right)); + } + +template + bool operator>(const shared_ptr<_Ty1>& _Left, + const shared_ptr<_Ty2>& _Right) noexcept + { + return (_Right < _Left); + } + +template + bool operator<=(const shared_ptr<_Ty1>& _Left, + const shared_ptr<_Ty2>& _Right) noexcept + { + return (!(_Right < _Left)); + } + +template + bool operator==(const shared_ptr<_Ty>& _Left, + nullptr_t) noexcept + { + return (_Left.get() == (_Ty *)0); + } + +template + bool operator==(nullptr_t, + const shared_ptr<_Ty>& _Right) noexcept + { + return ((_Ty *)0 == _Right.get()); + } + +template + bool operator!=(const shared_ptr<_Ty>& _Left, + nullptr_t _Right) noexcept + { + return (!(_Left == _Right)); + } + +template + bool operator!=(nullptr_t _Left, + const shared_ptr<_Ty>& _Right) noexcept + { + return (!(_Left == _Right)); + } + +template + bool operator<(const shared_ptr<_Ty>& _Left, + nullptr_t _Right) noexcept + { + return (less<_Ty *>()(_Left.get(), (_Ty *)0)); + } + +template + bool operator<(nullptr_t _Left, + const shared_ptr<_Ty>& _Right) noexcept + { + return (less<_Ty *>()((_Ty *)0, _Right.get())); + } + +template + bool operator>=(const shared_ptr<_Ty>& _Left, + nullptr_t _Right) noexcept + { + return (!(_Left < _Right)); + } + +template + bool operator>=(nullptr_t _Left, + const shared_ptr<_Ty>& _Right) noexcept + { + return (!(_Left < _Right)); + } + +template + bool operator>(const shared_ptr<_Ty>& _Left, + nullptr_t _Right) noexcept + { + return (_Right < _Left); + } + +template + bool operator>(nullptr_t _Left, + const shared_ptr<_Ty>& _Right) noexcept + { + return (_Right < _Left); + } + +template + bool operator<=(const shared_ptr<_Ty>& _Left, + nullptr_t _Right) noexcept + { + return (!(_Right < _Left)); + } + +template + bool operator<=(nullptr_t _Left, + const shared_ptr<_Ty>& _Right) noexcept + { + return (!(_Right < _Left)); + } + +template + basic_ostream<_Elem, _Traits>& + operator<<(basic_ostream<_Elem, _Traits>& _Out, + const shared_ptr<_Ty>& _Px) + { + return (_Out << _Px.get()); + } + +template + void swap(shared_ptr<_Ty>& _Left, + shared_ptr<_Ty>& _Right) noexcept + { + _Left.swap(_Right); + } + +template + shared_ptr<_Ty1> + static_pointer_cast(const shared_ptr<_Ty2>& _Other) noexcept + { + typedef typename shared_ptr<_Ty1>::element_type _Elem1; + _Elem1 *_Ptr = static_cast<_Elem1 *>(_Other.get()); + return (shared_ptr<_Ty1>(_Other, _Ptr)); + } + +template + shared_ptr<_Ty1> + const_pointer_cast(const shared_ptr<_Ty2>& _Other) noexcept + { + typedef typename shared_ptr<_Ty1>::element_type _Elem1; + _Elem1 *_Ptr = const_cast<_Elem1 *>(_Other.get()); + return (shared_ptr<_Ty1>(_Other, _Ptr)); + } + +template + shared_ptr<_Ty1> + dynamic_pointer_cast(const shared_ptr<_Ty2>& _Other) noexcept + { + typedef typename shared_ptr<_Ty1>::element_type _Elem1; + _Elem1 *_Ptr = dynamic_cast<_Elem1 *>(_Other.get()); + if (_Ptr) + return (shared_ptr<_Ty1>(_Other, _Ptr)); + else + return (shared_ptr<_Ty1>()); + } + +template + _Dx *get_deleter(const shared_ptr<_Ty>& _Sx) noexcept + { + return ((_Dx *)_Sx._Get_deleter(typeid(_Dx))); + } + + +template + class _Ref_count_obj + : public _Ref_count_base + { +public: + template + _Ref_count_obj(_Types&&... _Args) + : _Ref_count_base() + { + ::new ((void *)&_Storage) _Ty(::std:: forward<_Types>(_Args)...); + } + + + _Ty *_Getptr() const + { + return ((_Ty *)&_Storage); + } + +private: + virtual void _Destroy() noexcept + { + _Getptr()->~_Ty(); + } + + virtual void _Delete_this() noexcept + { + delete this; + } + + typename aligned_union<1, _Ty>::type _Storage; + }; + + +template + class _Ref_count_obj_alloc + : public _Ref_count_base + { +public: + typedef _Ref_count_obj_alloc<_Ty, _Alloc> _Myt; + typedef _Wrap_alloc<_Alloc> _Myalty0; + typedef typename _Myalty0::template rebind<_Myt>::other _Myalty; + typedef typename aligned_union<1, _Ty>::type _Mystoragety; + + template + _Ref_count_obj_alloc(const _Alloc& _Al_arg, _Types&&... _Args) + : _Ref_count_base(), _Mypair(_One_then_variadic_args_t(), _Al_arg) + { + ::new ((void *)_Getptr()) _Ty(::std:: forward<_Types>(_Args)...); + } + + + _Ty *_Getptr() const + { + return ((_Ty *)&_Mypair._Get_second()); + } + +private: + virtual void _Destroy() noexcept + { + _Getptr()->~_Ty(); + } + + virtual void _Delete_this() noexcept + { + _Myalty _Al = _Mypair._Get_first(); + _Al.destroy(this); + _Al.deallocate(this, 1); + } + + _Compressed_pair<_Myalty, _Mystoragety> _Mypair; + }; + + +template inline + shared_ptr<_Ty> make_shared(_Types&&... _Args) + { + _Ref_count_obj<_Ty> *_Rx = + new _Ref_count_obj<_Ty>(::std:: forward<_Types>(_Args)...); + + shared_ptr<_Ty> _Ret; + _Ret._Resetp0(_Rx->_Getptr(), _Rx); + return (_Ret); + } + + +template inline + shared_ptr<_Ty> allocate_shared( + const _Alloc& _Al_arg, _Types&&... _Args) + { + typedef _Ref_count_obj_alloc<_Ty, _Alloc> _Refoa; + typedef _Wrap_alloc<_Alloc> _Alref0; + typename _Alref0::template rebind<_Refoa>::other _Alref(_Al_arg); + + _Refoa *_Rx = _Alref.allocate(1); + + try { + _Alref.construct(_Rx, _Al_arg, ::std:: forward<_Types>(_Args)...); + } catch (...) { + _Alref.deallocate(_Rx, 1); + throw; + } + + shared_ptr<_Ty> _Ret; + _Ret._Resetp0(_Rx->_Getptr(), _Rx); + return (_Ret); + } + + + +template + class weak_ptr + : public _Ptr_base<_Ty> + { +public: + typedef weak_ptr<_Ty> _Myt; + typedef _Ptr_base<_Ty> _Mybase; + + constexpr weak_ptr() noexcept + { + } + + weak_ptr(const weak_ptr& _Other) noexcept + { + this->_Resetw(_Other); + } + + template::value, + void>::type> + weak_ptr(const shared_ptr<_Ty2>& _Other) noexcept + { + this->_Resetw(_Other); + } + + template::value, + void>::type> + weak_ptr(const weak_ptr<_Ty2>& _Other) noexcept + { + this->_Resetw(_Other.lock()); + } + + weak_ptr(_Myt&& _Other) noexcept + : _Mybase(::std:: move(_Other)) + { + } + + template::value, + void>::type> + weak_ptr(weak_ptr<_Ty2>&& _Other) noexcept + { + this->_Resetw(_Other.lock()); + _Other.reset(); + } + + ~weak_ptr() noexcept + { + this->_Decwref(); + } + + weak_ptr& operator=(const weak_ptr& _Right) noexcept + { + this->_Resetw(_Right); + return (*this); + } + + template + weak_ptr& operator=(const weak_ptr<_Ty2>& _Right) noexcept + { + this->_Resetw(_Right.lock()); + return (*this); + } + + _Myt& operator=(_Myt&& _Right) noexcept + { + weak_ptr(::std:: move(_Right)).swap(*this); + return (*this); + } + + template + _Myt& operator=(weak_ptr<_Ty2>&& _Right) noexcept + { + weak_ptr(::std:: move(_Right)).swap(*this); + return (*this); + } + + template + weak_ptr& operator=(const shared_ptr<_Ty2>& _Right) noexcept + { + this->_Resetw(_Right); + return (*this); + } + + void reset() noexcept + { + this->_Resetw(); + } + + void swap(weak_ptr& _Other) noexcept + { + this->_Swap(_Other); + } + + bool expired() const noexcept + { + return (this->_Expired()); + } + + shared_ptr<_Ty> lock() const noexcept + { + return (shared_ptr<_Ty>(*this, false)); + } + }; + +template + void swap(weak_ptr<_Ty>& _W1, weak_ptr<_Ty>& _W2) noexcept + { + _W1.swap(_W2); + } + + +template + class enable_shared_from_this + { +public: + typedef _Ty _EStype; + + shared_ptr<_Ty> shared_from_this() + { + return (shared_ptr<_Ty>(_Wptr)); + } + + shared_ptr shared_from_this() const + { + return (shared_ptr(_Wptr)); + } + +protected: + constexpr enable_shared_from_this() noexcept + { + } + + enable_shared_from_this(const enable_shared_from_this&) noexcept + { + } + + enable_shared_from_this& + operator=(const enable_shared_from_this&) noexcept + { + return (*this); + } + + ~enable_shared_from_this() noexcept + { + } + +private: + template + friend void _Do_enable( + _Ty1 *, + enable_shared_from_this<_Ty2>*, + _Ref_count_base *); + + weak_ptr<_Ty> _Wptr; + }; + +template + inline void _Do_enable( + _Ty1 *_Ptr, + enable_shared_from_this<_Ty2> *_Es, + _Ref_count_base *_Refptr) + { + _Es->_Wptr._Resetw(_Ptr, _Refptr); + } +} + +namespace std { + + + +template + struct default_delete + { + constexpr default_delete() noexcept = default; + + template::value, + void>::type> + default_delete(const default_delete<_Ty2>&) noexcept + { + } + + void operator()(_Ty *_Ptr) const noexcept + { + static_assert(0 < sizeof (_Ty), + "can't delete an incomplete type"); + delete _Ptr; + } + }; + +template + struct default_delete<_Ty[]> + { + constexpr default_delete() noexcept = default; + + template::value, + void>::type> + default_delete(const default_delete<_Uty[]>&) noexcept + { + } + + template::value, + void>::type> + void operator()(_Uty *_Ptr) const noexcept + { + static_assert(0 < sizeof (_Uty), + "can't delete an incomplete type"); + delete[] _Ptr; + } + }; + + +template + struct _Get_deleter_pointer_type + { template static auto _Fn(int) -> _Identity; template static auto _Fn(_Wrap_int) -> _Identity<_Val *>; typedef decltype(_Fn<_Ty>(0)) _Decltype; typedef typename _Decltype::type type; }; + + + +template + class _Unique_ptr_base + { +public: + typedef typename remove_reference<_Dx>::type _Dx_noref; + typedef typename _Get_deleter_pointer_type<_Ty, _Dx_noref>::type pointer; + + template + _Unique_ptr_base(_Ptr2 _Ptr, _Dx2&& _Dt) + : _Mypair(_One_then_variadic_args_t(), ::std:: forward<_Dx2>(_Dt), _Ptr) + { + } + + template + constexpr _Unique_ptr_base(_Ptr2 _Ptr) + : _Mypair(_Zero_then_variadic_args_t(), _Ptr) + { + } + + _Dx& get_deleter() noexcept + { + return (_Mypair._Get_first()); + } + + const _Dx& get_deleter() const noexcept + { + return (_Mypair._Get_first()); + } + + pointer& _Myptr() noexcept + { + return (_Mypair._Get_second()); + } + + const pointer& _Myptr() const noexcept + { + return (_Mypair._Get_second()); + } + + _Compressed_pair<_Dx, pointer> _Mypair; + }; + + +template + class unique_ptr + : public _Unique_ptr_base<_Ty, _Dx> + { +public: + typedef unique_ptr<_Ty, _Dx> _Myt; + typedef _Unique_ptr_base<_Ty, _Dx> _Mybase; + typedef typename _Mybase::pointer pointer; + typedef _Ty element_type; + typedef _Dx deleter_type; + + using _Mybase::get_deleter; + + constexpr unique_ptr() noexcept + : _Mybase(pointer()) + { + static_assert(!is_pointer<_Dx>::value, + "unique_ptr constructed with null deleter pointer"); + } + + constexpr unique_ptr(nullptr_t) noexcept + : _Mybase(pointer()) + { + static_assert(!is_pointer<_Dx>::value, + "unique_ptr constructed with null deleter pointer"); + } + + _Myt& operator=(nullptr_t) noexcept + { + reset(); + return (*this); + } + + explicit unique_ptr(pointer _Ptr) noexcept + : _Mybase(_Ptr) + { + static_assert(!is_pointer<_Dx>::value, + "unique_ptr constructed with null deleter pointer"); + } + + unique_ptr(pointer _Ptr, + typename _If::value, _Dx, + const typename remove_reference<_Dx>::type&>::type _Dt) noexcept + : _Mybase(_Ptr, _Dt) + { + } + + unique_ptr(pointer _Ptr, + typename remove_reference<_Dx>::type&& _Dt) noexcept + : _Mybase(_Ptr, ::std:: move(_Dt)) + { + static_assert(!is_reference<_Dx>::value, + "unique_ptr constructed with reference to rvalue deleter"); + } + + unique_ptr(unique_ptr&& _Right) noexcept + : _Mybase(_Right.release(), + ::std:: forward<_Dx>(_Right.get_deleter())) + { + } + + template::value + && is_convertible::pointer, + pointer>::value + && (is_reference<_Dx>::value + ? is_same<_Dx2, _Dx>::value + : is_convertible<_Dx2, _Dx>::value), + void>::type> + unique_ptr(unique_ptr<_Ty2, _Dx2>&& _Right) noexcept + : _Mybase(_Right.release(), + ::std:: forward<_Dx2>(_Right.get_deleter())) + { + } + + + template::value + && is_same<_Dx, default_delete<_Ty> >::value, + void>::type> + unique_ptr(auto_ptr<_Ty2>&& _Right) noexcept + : _Mybase(_Right.release()) + { + } + + + template + typename enable_if::value + && is_assignable<_Dx&, _Dx2&&>::value + && is_convertible::pointer, + pointer>::value, + _Myt&>::type + operator=(unique_ptr<_Ty2, _Dx2>&& _Right) noexcept + { + reset(_Right.release()); + this->get_deleter() = ::std:: forward<_Dx2>(_Right.get_deleter()); + return (*this); + } + + _Myt& operator=(_Myt&& _Right) noexcept + { + if (this != &_Right) + { + reset(_Right.release()); + this->get_deleter() = ::std:: forward<_Dx>(_Right.get_deleter()); + } + return (*this); + } + + void swap(_Myt& _Right) noexcept + { + _Swap_adl(this->_Myptr(), _Right._Myptr()); + _Swap_adl(this->get_deleter(), + _Right.get_deleter()); + } + + ~unique_ptr() noexcept + { + if (get() != pointer()) + this->get_deleter()(get()); + } + + typename add_lvalue_reference<_Ty>::type operator*() const + { + return (*get()); + } + + pointer operator->() const noexcept + { + return (pointer_traits::pointer_to(**this)); + } + + pointer get() const noexcept + { + return (this->_Myptr()); + } + + explicit operator bool() const noexcept + { + return (get() != pointer()); + } + + pointer release() noexcept + { + pointer _Ans = get(); + this->_Myptr() = pointer(); + return (_Ans); + } + + void reset(pointer _Ptr = pointer()) noexcept + { + pointer _Old = get(); + this->_Myptr() = _Ptr; + if (_Old != pointer()) + this->get_deleter()(_Old); + } + + unique_ptr(const _Myt&) = delete; + _Myt& operator=(const _Myt&) = delete; + }; + + +template + class unique_ptr<_Ty[], _Dx> + : public _Unique_ptr_base<_Ty, _Dx> + { +public: + typedef unique_ptr<_Ty[], _Dx> _Myt; + typedef _Unique_ptr_base<_Ty, _Dx> _Mybase; + typedef typename _Mybase::pointer pointer; + typedef _Ty element_type; + typedef _Dx deleter_type; + + using _Mybase::get_deleter; + + constexpr unique_ptr() noexcept + : _Mybase(pointer()) + { + static_assert(!is_pointer<_Dx>::value, + "unique_ptr constructed with null deleter pointer"); + } + + template + using _Enable_ctor_reset = enable_if_t< + is_same<_Uty, pointer>::value + || (is_same::value + && is_pointer<_Uty>::value + && is_convertible< + remove_pointer_t<_Uty>(*)[], + element_type(*)[] + >::value)>; + + template > + explicit unique_ptr(_Uty _Ptr) noexcept + : _Mybase(_Ptr) + { + static_assert(!is_pointer<_Dx>::value, + "unique_ptr constructed with null deleter pointer"); + } + + template > + unique_ptr(_Uty _Ptr, + typename _If::value, _Dx, + const typename remove_reference<_Dx>::type&>::type _Dt) noexcept + : _Mybase(_Ptr, _Dt) + { + } + + template > + unique_ptr(_Uty _Ptr, + typename remove_reference<_Dx>::type&& _Dt) noexcept + : _Mybase(_Ptr, ::std:: move(_Dt)) + { + static_assert(!is_reference<_Dx>::value, + "unique_ptr constructed with reference to rvalue deleter"); + } + + unique_ptr(unique_ptr&& _Right) noexcept + : _Mybase(_Right.release(), + ::std:: forward<_Dx>(_Right.get_deleter())) + { + } + + _Myt& operator=(_Myt&& _Right) noexcept + { + if (this != &_Right) + { + reset(_Right.release()); + this->get_deleter() = ::std:: move(_Right.get_deleter()); + } + return (*this); + } + + template::pointer, + class _UP_element_type = typename unique_ptr<_Uty, _Ex>::element_type> + using _Enable_conversion = enable_if_t< + is_array<_Uty>::value + && is_same::value + && is_same<_UP_pointer, _UP_element_type *>::value + && is_convertible<_UP_element_type(*)[], element_type(*)[]>::value + && _More>; + + template::value + ? is_same<_Ex, _Dx>::value + : is_convertible<_Ex, _Dx>::value> > + unique_ptr(unique_ptr<_Uty, _Ex>&& _Right) noexcept + : _Mybase(_Right.release(), + ::std:: forward<_Ex>(_Right.get_deleter())) + { + } + + template::value> > + _Myt& operator=(unique_ptr<_Uty, _Ex>&& _Right) noexcept + { + reset(_Right.release()); + this->get_deleter() = ::std:: forward<_Ex>(_Right.get_deleter()); + return (*this); + } + + constexpr unique_ptr(nullptr_t) noexcept + : _Mybase(pointer()) + { + static_assert(!is_pointer<_Dx>::value, + "unique_ptr constructed with null deleter pointer"); + } + + _Myt& operator=(nullptr_t) noexcept + { + reset(); + return (*this); + } + + void reset(nullptr_t = nullptr_t{}) noexcept + { + reset(pointer()); + } + + void swap(_Myt& _Right) noexcept + { + _Swap_adl(this->_Myptr(), _Right._Myptr()); + _Swap_adl(this->get_deleter(), _Right.get_deleter()); + } + + ~unique_ptr() noexcept + { + _Delete(); + } + + _Ty& operator[](size_t _Idx) const + { + return (get()[_Idx]); + } + + pointer get() const noexcept + { + return (this->_Myptr()); + } + + explicit operator bool() const noexcept + { + return (get() != pointer()); + } + + pointer release() noexcept + { + pointer _Ans = get(); + this->_Myptr() = pointer(); + return (_Ans); + } + + template > + void reset(_Uty _Ptr) noexcept + { + pointer _Old = get(); + this->_Myptr() = _Ptr; + if (_Old != pointer()) + this->get_deleter()(_Old); + } + + unique_ptr(const _Myt&) = delete; + + _Myt& operator=(const _Myt&) = delete; + +private: + void _Delete() + { + if (get() != pointer()) + this->get_deleter()(get()); + } + }; + + + +template inline + typename enable_if::value, + unique_ptr<_Ty> >::type make_unique(_Types&&... _Args) + { + return (unique_ptr<_Ty>(new _Ty(::std:: forward<_Types>(_Args)...))); + } + +template inline + typename enable_if::value && extent<_Ty>::value == 0, + unique_ptr<_Ty> >::type make_unique(size_t _Size) + { + typedef typename remove_extent<_Ty>::type _Elem; + return (unique_ptr<_Ty>(new _Elem[_Size]())); + } + +template + typename enable_if::value != 0, + void>::type make_unique(_Types&&...) = delete; + + +template::value>> + void swap(unique_ptr<_Ty, _Dx>& _Left, + unique_ptr<_Ty, _Dx>& _Right) noexcept + { + _Left.swap(_Right); + } + +template + bool operator==(const unique_ptr<_Ty1, _Dx1>& _Left, + const unique_ptr<_Ty2, _Dx2>& _Right) + { + return (_Left.get() == _Right.get()); + } + +template + bool operator!=(const unique_ptr<_Ty1, _Dx1>& _Left, + const unique_ptr<_Ty2, _Dx2>& _Right) + { + return (!(_Left == _Right)); + } + +template + bool operator<(const unique_ptr<_Ty1, _Dx1>& _Left, + const unique_ptr<_Ty2, _Dx2>& _Right) + { + typedef typename unique_ptr<_Ty1, _Dx1>::pointer _Ptr1; + typedef typename unique_ptr<_Ty2, _Dx2>::pointer _Ptr2; + typedef typename common_type<_Ptr1, _Ptr2>::type _Common; + return (less<_Common>()(_Left.get(), _Right.get())); + + } + +template + bool operator>=(const unique_ptr<_Ty1, _Dx1>& _Left, + const unique_ptr<_Ty2, _Dx2>& _Right) + { + return (!(_Left < _Right)); + } + +template + bool operator>(const unique_ptr<_Ty1, _Dx1>& _Left, + const unique_ptr<_Ty2, _Dx2>& _Right) + { + return (_Right < _Left); + } + +template + bool operator<=(const unique_ptr<_Ty1, _Dx1>& _Left, + const unique_ptr<_Ty2, _Dx2>& _Right) + { + return (!(_Right < _Left)); + } + +template + bool operator==(const unique_ptr<_Ty, _Dx>& _Left, + nullptr_t) noexcept + { + return (!_Left); + } + +template + bool operator==(nullptr_t, + const unique_ptr<_Ty, _Dx>& _Right) noexcept + { + return (!_Right); + } + +template + bool operator!=(const unique_ptr<_Ty, _Dx>& _Left, + nullptr_t _Right) noexcept + { + return (!(_Left == _Right)); + } + +template + bool operator!=(nullptr_t _Left, + const unique_ptr<_Ty, _Dx>& _Right) noexcept + { + return (!(_Left == _Right)); + } + +template + bool operator<(const unique_ptr<_Ty, _Dx>& _Left, + nullptr_t _Right) + { + typedef typename unique_ptr<_Ty, _Dx>::pointer _Ptr; + return (less<_Ptr>()(_Left.get(), _Right)); + } + +template + bool operator<(nullptr_t _Left, + const unique_ptr<_Ty, _Dx>& _Right) + { + typedef typename unique_ptr<_Ty, _Dx>::pointer _Ptr; + return (less<_Ptr>()(_Left, _Right.get())); + } + +template + bool operator>=(const unique_ptr<_Ty, _Dx>& _Left, + nullptr_t _Right) + { + return (!(_Left < _Right)); + } + +template + bool operator>=(nullptr_t _Left, + const unique_ptr<_Ty, _Dx>& _Right) + { + return (!(_Left < _Right)); + } + +template + bool operator>(const unique_ptr<_Ty, _Dx>& _Left, + nullptr_t _Right) + { + return (_Right < _Left); + } + +template + bool operator>(nullptr_t _Left, + const unique_ptr<_Ty, _Dx>& _Right) + { + return (_Right < _Left); + } + +template + bool operator<=(const unique_ptr<_Ty, _Dx>& _Left, + nullptr_t _Right) + { + return (!(_Right < _Left)); + } + +template + bool operator<=(nullptr_t _Left, + const unique_ptr<_Ty, _Dx>& _Right) + { + return (!(_Right < _Left)); + } + + + +enum class pointer_safety { + relaxed, + preferred, + strict + }; + +typedef pointer_safety _Pointer_safety; + +inline void declare_reachable(void *) + { + } + +template inline + _Ty *undeclare_reachable(_Ty *_Ptr) + { + return (_Ptr); + } + +inline void declare_no_pointers(char *, size_t) + { + } + +inline void undeclare_no_pointers(char *, size_t) + { + } + +inline _Pointer_safety get_pointer_safety() noexcept + { + return (pointer_safety::relaxed); + } + + +namespace tr1 { +using ::std:: allocate_shared; +using ::std:: bad_weak_ptr; +using ::std:: const_pointer_cast; +using ::std:: dynamic_pointer_cast; +using ::std:: enable_shared_from_this; +using ::std:: get_deleter; +using ::std:: make_shared; +using ::std:: shared_ptr; +using ::std:: static_pointer_cast; +using ::std:: swap; +using ::std:: weak_ptr; +} + + + +template + struct owner_less; + +template + struct owner_less > + { + typedef shared_ptr<_Ty> first_argument_type; + typedef shared_ptr<_Ty> second_argument_type; + typedef bool result_type; + + bool operator()(const shared_ptr<_Ty>& _Left, + const shared_ptr<_Ty>& _Right) const + { + return (_Left.owner_before(_Right)); + } + + bool operator()(const shared_ptr<_Ty>& _Left, + const weak_ptr<_Ty>& _Right) const + { + return (_Left.owner_before(_Right)); + } + + bool operator()(const weak_ptr<_Ty>& _Left, + const shared_ptr<_Ty>& _Right) const + { + return (_Left.owner_before(_Right)); + } + }; + +template + struct owner_less > + { + typedef weak_ptr<_Ty> first_argument_type; + typedef weak_ptr<_Ty> second_argument_type; + typedef bool result_type; + + bool operator()(const weak_ptr<_Ty>& _Left, + const weak_ptr<_Ty>& _Right) const + { + return (_Left.owner_before(_Right)); + } + + bool operator()(const weak_ptr<_Ty>& _Left, + const shared_ptr<_Ty>& _Right) const + { + return (_Left.owner_before(_Right)); + } + + bool operator()(const shared_ptr<_Ty>& _Left, + const weak_ptr<_Ty>& _Right) const + { + return (_Left.owner_before(_Right)); + } + }; + +template<> + struct owner_less + { + typedef int is_transparent; + + template + bool operator()(const shared_ptr<_Ty>& _Left, const shared_ptr<_Uty>& _Right) const + { + return (_Left.owner_before(_Right)); + } + + template + bool operator()(const shared_ptr<_Ty>& _Left, const weak_ptr<_Uty>& _Right) const + { + return (_Left.owner_before(_Right)); + } + + template + bool operator()(const weak_ptr<_Ty>& _Left, const shared_ptr<_Uty>& _Right) const + { + return (_Left.owner_before(_Right)); + } + + template + bool operator()(const weak_ptr<_Ty>& _Left, const weak_ptr<_Uty>& _Right) const + { + return (_Left.owner_before(_Right)); + } + }; + + +template + struct hash > + { + typedef unique_ptr<_Ty, _Dx> argument_type; + typedef size_t result_type; + + size_t operator()(const argument_type& _Keyval) const + { + typedef typename argument_type::pointer _Ptrtype; + return (hash<_Ptrtype>()(_Keyval.get())); + } + }; + +template + struct hash > + { + typedef shared_ptr<_Ty> argument_type; + typedef size_t result_type; + + size_t operator()(const argument_type& _Keyval) const + { + return (hash<_Ty *>()(_Keyval.get())); + } + }; + + +inline void *align(size_t _Bound, size_t _Size, + void *& _Ptr, size_t& _Space) noexcept + { + size_t _Off = (size_t)((uintptr_t)_Ptr & (_Bound - 1)); + if (0 < _Off) + _Off = _Bound - _Off; + if (_Space < _Off || _Space - _Off < _Size) + return (0); + else + { + _Ptr = (char *)_Ptr + _Off; + _Space -= _Off; + return (_Ptr); + } + } + + +struct _Shared_ptr_spin_lock + { + _Shared_ptr_spin_lock() + { + _Lock_shared_ptr_spin_lock(); + } + + ~_Shared_ptr_spin_lock() noexcept + { + _Unlock_shared_ptr_spin_lock(); + } + }; + +template inline + bool atomic_is_lock_free(const shared_ptr<_Ty> *) + { + return (false); + } + +template inline + shared_ptr<_Ty> atomic_load_explicit(const shared_ptr<_Ty> *_Ptr, + memory_order) + { + _Shared_ptr_spin_lock _Lock; + shared_ptr<_Ty> _Result = *_Ptr; + return (_Result); + } + +template inline + shared_ptr<_Ty> atomic_load(const shared_ptr<_Ty> *_Ptr) + { + return (::std:: atomic_load_explicit(_Ptr, memory_order_seq_cst)); + } + +template inline + void atomic_store_explicit(shared_ptr<_Ty> *_Ptr, shared_ptr<_Ty> _Other, + memory_order) + { + _Shared_ptr_spin_lock _Lock; + _Ptr->swap(_Other); + } + +template inline + void atomic_store(shared_ptr<_Ty> *_Ptr, shared_ptr<_Ty> _Other) + { + ::std:: atomic_store_explicit(_Ptr, ::std:: move(_Other), memory_order_seq_cst); + } + +template inline + shared_ptr<_Ty> atomic_exchange_explicit( + shared_ptr<_Ty> *_Ptr, shared_ptr<_Ty> _Other, + memory_order) + { + _Shared_ptr_spin_lock _Lock; + _Ptr->swap(_Other); + return (_Other); + } + +template inline + shared_ptr<_Ty> atomic_exchange( + shared_ptr<_Ty> *_Ptr, shared_ptr<_Ty> _Other) + { + return (::std:: atomic_exchange_explicit(_Ptr, ::std:: move(_Other), memory_order_seq_cst)); + } + +template inline + bool atomic_compare_exchange_weak_explicit( + shared_ptr<_Ty> *_Ptr, shared_ptr<_Ty> *_Exp, shared_ptr<_Ty> _Value, + memory_order, memory_order) + { + shared_ptr<_Ty> _Old_exp; + _Shared_ptr_spin_lock _Lock; + bool _Success = _Ptr->get() == _Exp->get() + && !_Ptr->owner_before(*_Exp) + && !_Exp->owner_before(*_Ptr); + if (_Success) + _Ptr->swap(_Value); + else + { + _Exp->swap(_Old_exp); + *_Exp = *_Ptr; + } + return (_Success); + } + +template inline + bool atomic_compare_exchange_weak( + shared_ptr<_Ty> *_Ptr, shared_ptr<_Ty> *_Exp, + shared_ptr<_Ty> _Value) + { + return (::std:: atomic_compare_exchange_weak_explicit(_Ptr, _Exp, ::std:: move(_Value), + memory_order_seq_cst, memory_order_seq_cst)); + } + +template inline + bool atomic_compare_exchange_strong_explicit( + shared_ptr<_Ty> *_Ptr, shared_ptr<_Ty> *_Exp, shared_ptr<_Ty> _Value, + memory_order, memory_order) + { + return (::std:: atomic_compare_exchange_weak_explicit(_Ptr, _Exp, ::std:: move(_Value), + memory_order_seq_cst, memory_order_seq_cst)); + } + +template inline + bool atomic_compare_exchange_strong( + shared_ptr<_Ty> *_Ptr, shared_ptr<_Ty> *_Exp, + shared_ptr<_Ty> _Value) + { + return (::std:: atomic_compare_exchange_strong_explicit(_Ptr, _Exp, ::std:: move(_Value), + memory_order_seq_cst, memory_order_seq_cst)); + } +} + +#pragma warning(pop) +#pragma pack(pop) +# 4 "../LEngine/ForwardDeclarations.h" 2 + +# 1 "D:/lmath/lmath\\lmath.h" 1 + + + +# 1 "D:/lmath/lmath/lm_vector.h" 1 + + + +# 1 "D:/lmath/lmath/lm_vector_traits.h" 1 + + + + + +namespace lm { +struct Vector_base { + +}; + +namespace vector_traits { + + template + struct is_vector { + static constexpr bool value = std::is_base_of::value; + }; + + + template::value> + struct field_type { + typedef typename T::element_type type; + }; + + template + struct field_type { + typedef T type; + }; + + template::value && is_vector::value)> + struct is_same_extent { + static constexpr bool value = T1::size == T2::size; + }; + + template + struct is_same_extent { + static constexpr bool value = false; + }; +} +} +# 4 "D:/lmath/lmath/lm_vector.h" 2 + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\array" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + +#pragma warning(disable: 4244 28309 28285) + +namespace std { + +const int _ISORT_MAX = 32; + +template inline + pair<_Iter1, _Iter2> + _Rechecked_both(_Iter1 _Dest1, _Iter2 _Dest2, pair<_UIter1, _UIter2> _Src) + { + return (pair<_Iter1, _Iter2>( + _Rechecked(_Dest1, _Src.first), + _Rechecked(_Dest2, _Src.second) + )); + } + + +template inline + pair())), decltype(_Unchecked(::std:: declval<_Iter2>()))> + _Unchecked_both(pair<_Iter1, _Iter2> _Src) + { + return (pair())), decltype(_Unchecked(::std:: declval<_Iter2>()))>( + _Unchecked(_Src.first), + _Unchecked(_Src.second))); + } + +template inline + pair())), _Iter2> + _Unchecked_first(pair<_Iter1, _Iter2> _Src) + { + return (pair())), _Iter2>( + _Unchecked(_Src.first), + _Src.second)); + } + +template inline + pair<_Iter1, decltype(_Unchecked(::std:: declval<_Iter2>()))> + _Unchecked_second(pair<_Iter1, _Iter2> _Src) + { + return (pair<_Iter1, decltype(_Unchecked(::std:: declval<_Iter2>()))>( + _Src.first, + _Unchecked(_Src.second))); + } + + + +template inline + void _For_each_unchecked(_InIt _First, _InIt _Last, _Fn1& _Func) + { + for (; _First != _Last; ++_First) + _Func(*_First); + } + +template inline + _Fn1 for_each(_InIt _First, _InIt _Last, _Fn1 _Func) + { + _Debug_range_ptr(_First, _Last, _Func, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 76); + _For_each_unchecked(_Unchecked(_First), _Unchecked(_Last), _Func); + return (_Func); + } + + +template inline + _InIt _Find_if_unchecked(_InIt _First, _InIt _Last, _Pr& _Pred) + { + for (; _First != _Last; ++_First) + if (_Pred(*_First)) + break; + return (_First); + } + +template inline + _InIt find_if(_InIt _First, _InIt _Last, _Pr _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 96); + return (_Rechecked(_First, + _Find_if_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred))); + } + + +template inline + _FwdIt _Adjacent_find_unchecked(_FwdIt _First, _FwdIt _Last, _Pr& _Pred) + { + if (_First != _Last) + for (_FwdIt _Firstb; (void)(_Firstb = _First), ++_First != _Last; ) + if (_Pred(*_Firstb, *_First)) + return (_Firstb); + return (_Last); + } + +template inline + _FwdIt adjacent_find(_FwdIt _First, _FwdIt _Last, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 117); + _Debug_pointer_if(_First != _Last && ::std:: next(_First) != _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 118); + return (_Rechecked(_First, + _Adjacent_find_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred))); + } + + +template inline + _FwdIt adjacent_find(_FwdIt _First, _FwdIt _Last) + { + return (::std:: adjacent_find(_First, _Last, equal_to<>())); + } + + +template inline + typename iterator_traits<_InIt>::difference_type + _Count_if_unchecked(_InIt _First, _InIt _Last, _Pr& _Pred) + { + typename iterator_traits<_InIt>::difference_type _Count = 0; + + for (; _First != _Last; ++_First) + if (_Pred(*_First)) + ++_Count; + return (_Count); + } + +template inline + typename iterator_traits<_InIt>::difference_type + count_if(_InIt _First, _InIt _Last, _Pr _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 149); + return (_Count_if_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred)); + } + + +template inline + pair<_InIt1, _InIt2> + _Mismatch_unchecked(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Pr& _Pred) + { + for (; _First1 != _Last1 && _Pred(*_First1, *_First2); ) + { + ++_First1; + ++_First2; + } + + return (pair<_InIt1, _InIt2>(_First1, _First2)); + } + +template inline + auto _Mismatch_no_deprecate1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Pr& _Pred, input_iterator_tag, input_iterator_tag) + -> pair<_InIt1, decltype(_Unchecked_idl0(_First2))> + { + return (_Mismatch_unchecked(_First1, _Last1, + _Unchecked_idl0(_First2), _Pred)); + } + +template inline + pair<_InIt1, decltype(_Unchecked(::std:: declval<_InIt2>()))> + _Mismatch_no_deprecate1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Pr& _Pred, random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_First2) + ((_Last1) - (_First1))); + return (_Mismatch_unchecked(_First1, _Last1, _Unchecked(_First2), _Pred)); + } + +template inline + pair<_InIt1, _InIt2> + _Mismatch_no_deprecate(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Pr& _Pred) + { + _Debug_range_ptr(_First1, _Last1, _First2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 199); + _Debug_pointer_if(_First1 != _Last1, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 200); + return (_Rechecked_both(_First1, _First2, + _Mismatch_no_deprecate1(_Unchecked(_First1), _Unchecked(_Last1), + _First2, _Pred, _Iter_cat_t<_InIt1>(), _Iter_cat_t<_InIt2>()))); + } + +template inline + pair<_InIt1, _InIt2> + mismatch(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Pr _Pred) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "mismatch" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_First2))); + return (_Mismatch_no_deprecate(_First1, _Last1, _First2, _Pred)); + } + + +template::value>> inline + pair<_InIt1, _InTy *> + mismatch(_InIt1 _First1, _InIt1 _Last1, + _InTy (&_First2)[_InSize], _Pr _Pred) + { + return (_Unchecked_second(_Mismatch_no_deprecate(_First1, _Last1, + _Array_iterator<_InTy, _InSize>(_First2), _Pred))); + } + + + +template inline + pair<_InIt1, _InIt2> + mismatch(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2) + { + return (::std:: mismatch(_First1, _Last1, _First2, + equal_to<>())); + } + + +template inline + pair<_InIt1, _InTy *> + mismatch(_InIt1 _First1, _InIt1 _Last1, + _InTy (&_First2)[_InSize]) + { + return (::std:: mismatch(_First1, _Last1, _First2, + equal_to<>())); + } + + + +template inline + pair<_InIt1, _InIt2> + _Mismatch_unchecked(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _Pr& _Pred) + { + for (; _First1 != _Last1 && _First2 != _Last2 + && _Pred(*_First1, *_First2); ) + { + ++_First1; + ++_First2; + } + + return (pair<_InIt1, _InIt2>(_First1, _First2)); + } + +template inline + pair<_InIt1, _InIt2> + mismatch(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _Pr _Pred) + { + _Debug_range(_First1, _Last1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 281); + _Debug_range(_First2, _Last2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 282); + _Debug_pointer_if(_First1 != _Last1 && _First2 != _Last2, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 283); + return (_Rechecked_both(_First1, _First2, + _Mismatch_unchecked(_Unchecked(_First1), _Unchecked(_Last1), + _Unchecked(_First2), _Unchecked(_Last2), _Pred))); + } + + +template inline + pair<_InIt1, _InIt2> + mismatch(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2) + { + return (::std:: mismatch(_First1, _Last1, _First2, _Last2, + equal_to<>())); + } + + +template inline + bool _All_of_unchecked(_InIt _First, _InIt _Last, _Pr& _Pred) + { + for (; _First != _Last; ++_First) + if (!_Pred(*_First)) + return (false); + return (true); + } + +template inline + bool all_of(_InIt _First, _InIt _Last, _Pr _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 315); + return (_All_of_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred)); + } + + +template inline + bool _Any_of_unchecked(_InIt _First, _InIt _Last, _Pr& _Pred) + { + for (; _First != _Last; ++_First) + if (_Pred(*_First)) + return (true); + return (false); + } + +template inline + bool any_of(_InIt _First, _InIt _Last, _Pr _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 334); + return (_Any_of_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred)); + } + + +template inline + bool _None_of_unchecked(_InIt _First, _InIt _Last, _Pr& _Pred) + { + for (; _First != _Last; ++_First) + if (_Pred(*_First)) + return (false); + return (true); + } + +template inline + bool none_of(_InIt _First, _InIt _Last, _Pr _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 353); + return (_None_of_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred)); + } + + +template inline + _InIt _Find_if_not_unchecked(_InIt _First, _InIt _Last, _Pr& _Pred) + { + for (; _First != _Last; ++_First) + if (!_Pred(*_First)) + break; + return (_First); + } + +template inline + _InIt find_if_not(_InIt _First, _InIt _Last, _Pr _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 372); + return (_Rechecked(_First, + _Find_if_not_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred))); + } + + +template inline + _OutIt _Copy_if_unchecked(_InIt _First, _InIt _Last, _OutIt _Dest, + _Pr& _Pred) + { + for (; _First != _Last; ++_First) + if (_Pred(*_First)) + { + _Debug_pointer(_Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 387); + *_Dest++ = *_First; + } + + return (_Dest); + } + +template inline + _OutIt _Copy_if_no_deprecate(_InIt _First, _InIt _Last, _OutIt _Dest, + _Pr& _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 400); + return (_Rechecked(_Dest, + _Copy_if_unchecked(_Unchecked(_First), _Unchecked(_Last), + _Unchecked_idl0(_Dest), _Pred))); + } + +template inline + _OutIt copy_if(_InIt _First, _InIt _Last, _OutIt _Dest, + _Pr _Pred) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "copy_if" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Copy_if_no_deprecate(_First, _Last, _Dest, _Pred)); + } + + +template inline + _OutTy *copy_if(_InIt _First, _InIt _Last, _OutTy (&_Dest)[_OutSize], + _Pr _Pred) + { + return (_Unchecked( + _Copy_if_no_deprecate(_First, _Last, + _Array_iterator<_OutTy, _OutSize>(_Dest), _Pred))); + } + + + +template inline + pair<_OutIt1, _OutIt2> + _Partition_copy_unchecked(_InIt _First, _InIt _Last, + _OutIt1 _Dest1, _OutIt2 _Dest2, _Pr& _Pred) + { + for (; _First != _Last; ++_First) + if (_Pred(*_First)) + { + _Debug_pointer(_Dest1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 442); + *_Dest1++ = *_First; + } + else + { + _Debug_pointer(_Dest2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 447); + *_Dest2++ = *_First; + } + + return (pair<_OutIt1, _OutIt2>(_Dest1, _Dest2)); + } + +template inline + pair<_OutIt1, _OutIt2> + _Partition_copy_no_deprecate(_InIt _First, _InIt _Last, + _OutIt1 _Dest1, _OutIt2 _Dest2, _Pr& _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 462); + return (_Rechecked_both(_Dest1, _Dest2, + _Partition_copy_unchecked(_Unchecked(_First), _Unchecked(_Last), + _Unchecked_idl0(_Dest1), _Unchecked_idl0(_Dest2), _Pred))); + } + +template inline + pair<_OutIt1, _OutIt2> + partition_copy(_InIt _First, _InIt _Last, + _OutIt1 _Dest1, _OutIt2 _Dest2, _Pr _Pred) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "partition_copy" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; + (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest1))); + (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest2))); + return (_Partition_copy_no_deprecate(_First, _Last, _Dest1, _Dest2, _Pred)); + } + + +template inline + pair<_OutTy1 *, _OutIt2> + partition_copy(_InIt _First, _InIt _Last, + _OutTy1 (&_Dest1)[_OutSize1], _OutIt2 _Dest2, _Pr _Pred) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "partition_copy" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest2))); + return (_Unchecked_first( + _Partition_copy_no_deprecate(_First, _Last, + _Array_iterator<_OutTy1, _OutSize1>(_Dest1), _Dest2, _Pred))); + } + +template inline + pair<_OutIt1, _OutTy2 *> + partition_copy(_InIt _First, _InIt _Last, + _OutIt1 _Dest1, _OutTy2 (&_Dest2)[_OutSize2], _Pr _Pred) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "partition_copy" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest1))); + return (_Unchecked_second( + _Partition_copy_no_deprecate(_First, _Last, + _Dest1, _Array_iterator<_OutTy2, _OutSize2>(_Dest2), _Pred))); + } + +template inline + pair<_OutTy1 *, _OutTy2 *> + partition_copy(_InIt _First, _InIt _Last, + _OutTy1 (&_Dest1)[_OutSize1], _OutTy2 (&_Dest2)[_OutSize2], + _Pr _Pred) + { + return (_Unchecked_both( + _Partition_copy_no_deprecate(_First, _Last, + _Array_iterator<_OutTy1, _OutSize1>(_Dest1), + _Array_iterator<_OutTy2, _OutSize2>(_Dest2), _Pred))); + } + + + +template inline + bool _Is_partitioned_unchecked(_InIt _First, _InIt _Last, _Pr& _Pred) + { + for (; _First != _Last; ++_First) + if (!_Pred(*_First)) + break; + for (; _First != _Last; ++_First) + if (_Pred(*_First)) + return (false); + return (true); + } + +template inline + bool is_partitioned(_InIt _First, _InIt _Last, _Pr _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 549); + return (_Is_partitioned_unchecked(_Unchecked(_First), _Unchecked(_Last), + _Pred)); + } + + +template inline + _FwdIt _Partition_point_unchecked(_FwdIt _First, _FwdIt _Last, _Pr& _Pred) + { + _Iter_diff_t<_FwdIt> _Count = ::std:: distance(_First, _Last); + while (0 < _Count) + { + _Iter_diff_t<_FwdIt> _Count2 = _Count / 2; + _FwdIt _Mid = _First; + ::std:: advance(_Mid, _Count2); + + if (_Pred(*_Mid)) + { + _First = ++_Mid; + _Count -= _Count2 + 1; + } + else + _Count = _Count2; + } + + return (_First); + } + +template inline + _FwdIt partition_point(_FwdIt _First, _FwdIt _Last, _Pr _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 582); + return (_Rechecked(_First, + _Partition_point_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred))); + } + + +template inline + _FwdIt1 _Search_unchecked(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _FwdIt2 _Last2, _Pr& _Pred, + forward_iterator_tag, forward_iterator_tag) + { + for (; ; ++_First1) + { + _FwdIt1 _Mid1 = _First1; + for (_FwdIt2 _Mid2 = _First2; ; ++_Mid1, (void)++_Mid2) + if (_Mid2 == _Last2) + return (_First1); + else if (_Mid1 == _Last1) + return (_Last1); + else if (!_Pred(*_Mid1, *_Mid2)) + break; + } + } + +template inline + _FwdIt1 _Search_unchecked(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _FwdIt2 _Last2, _Pr& _Pred, + random_access_iterator_tag, random_access_iterator_tag) + { + _Iter_diff_t<_FwdIt1> _Count1 = _Last1 - _First1; + _Iter_diff_t<_FwdIt2> _Count2 = _Last2 - _First2; + + for (; _Count2 <= _Count1; ++_First1, (void)--_Count1) + { + _FwdIt1 _Mid1 = _First1; + for (_FwdIt2 _Mid2 = _First2; ; ++_Mid1, (void)++_Mid2) + if (_Mid2 == _Last2) + return (_First1); + else if (!_Pred(*_Mid1, *_Mid2)) + break; + } + + return (_Last1); + } + +template inline + _FwdIt1 search(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _FwdIt2 _Last2, _Pr _Pred) + { + _Debug_range(_First1, _Last1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 637); + _Debug_range(_First2, _Last2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 638); + _Debug_pointer_if(_First1 != _Last1 && _First2 != _Last2, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 639); + return (_Rechecked(_First1, + _Search_unchecked(_Unchecked(_First1), _Unchecked(_Last1), + _Unchecked(_First2), _Unchecked(_Last2), _Pred, + _Iter_cat_t<_FwdIt1>(), _Iter_cat_t<_FwdIt2>()))); + } + + +template inline + _FwdIt1 search(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _FwdIt2 _Last2) + { + return (::std:: search(_First1, _Last1, _First2, _Last2, + equal_to<>())); + } + + +template inline + _FwdIt _Search_n_unchecked(_FwdIt _First, _FwdIt _Last, + _Diff _Count, const _Ty& _Val, _Pr& _Pred, forward_iterator_tag) + { + if (_Count <= 0) + return (_First); + + for (; _First != _Last; ++_First) + if (_Pred(*_First, _Val)) + { + _FwdIt _Mid = _First; + + for (_Diff _Count1 = _Count; ; ) + if (--_Count1 == 0) + return (_First); + else if (++_Mid == _Last) + return (_Last); + else if (!_Pred(*_Mid, _Val)) + { + break; + } + + _First = _Mid; + } + + return (_Last); + } + +template inline + _FwdIt _Search_n_unchecked(_FwdIt _First, _FwdIt _Last, + _Diff _Count, const _Ty& _Val, _Pr& _Pred, random_access_iterator_tag) + { + if (_Count <= 0) + return (_First); + + _FwdIt _Oldfirst = _First; + for (_Diff _Inc = 0; _Count <= _Last - _Oldfirst; ) + { + _First = _Oldfirst + _Inc; + if (_Pred(*_First, _Val)) + { + _Diff _Count1 = _Count; + _FwdIt _Mid = _First; + + for (; _Oldfirst != _First && _Pred(_First[-1], _Val); + --_First) + --_Count1; + + if (_Count1 <= _Last - _Mid) + for (; ; ) + { + if (--_Count1 == 0) + return (_First); + else if (!_Pred(*++_Mid, _Val)) + { + break; + } + } + _Oldfirst = ++_Mid; + _Inc = 0; + } + else + { + _Oldfirst = _First + 1; + _Inc = _Count - 1; + } + } + + return (_Last); + } + +template inline + _FwdIt search_n(_FwdIt _First, _FwdIt _Last, + _Diff _Count, const _Ty& _Val, _Pr _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 741); + return (_Rechecked(_First, + _Search_n_unchecked(_Unchecked(_First), _Unchecked(_Last), _Count, _Val, + _Pred, _Iter_cat_t<_FwdIt>()))); + } + + +template inline + _FwdIt search_n(_FwdIt _First, _FwdIt _Last, + _Diff _Count, const _Ty& _Val) + { + return (::std:: search_n(_First, _Last, _Count, _Val, + equal_to<>())); + } + + +template inline + _FwdIt1 _Find_end_unchecked(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _FwdIt2 _Last2, _Pr& _Pred) + { + _Iter_diff_t<_FwdIt1> _Count1 = ::std:: distance(_First1, _Last1); + _Iter_diff_t<_FwdIt2> _Count2 = ::std:: distance(_First2, _Last2); + _FwdIt1 _Ans = _Last1; + + if (0 < _Count2) + { + _Debug_pointer_if(_Count2 <= _Count1, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 771); + for (; _Count2 <= _Count1; ++_First1, (void)--_Count1) + { + _FwdIt1 _Mid1 = _First1; + for (_FwdIt2 _Mid2 = _First2; ; ++_Mid1) + if (!_Pred(*_Mid1, *_Mid2)) + break; + else if (++_Mid2 == _Last2) + { + _Ans = _First1; + break; + } + } + } + + return (_Ans); + } + +template inline + _FwdIt1 find_end(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _FwdIt2 _Last2, _Pr _Pred) + { + _Debug_range(_First1, _Last1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 795); + _Debug_range(_First2, _Last2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 796); + return (_Rechecked(_First1, + _Find_end_unchecked(_Unchecked(_First1), _Unchecked(_Last1), + _Unchecked(_First2), _Unchecked(_Last2), _Pred))); + } + + +template inline + _FwdIt1 find_end(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _FwdIt2 _Last2) + { + return (::std:: find_end(_First1, _Last1, _First2, _Last2, + equal_to<>())); + } + + +template inline + _FwdIt1 _Find_first_of_unchecked(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _FwdIt2 _Last2, _Pr& _Pred) + { + for (; _First1 != _Last1; ++_First1) + for (_FwdIt2 _Mid2 = _First2; _Mid2 != _Last2; ++_Mid2) + if (_Pred(*_First1, *_Mid2)) + return (_First1); + return (_First1); + } + +template inline + _FwdIt1 find_first_of(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _FwdIt2 _Last2, _Pr _Pred) + { + _Debug_range(_First1, _Last1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 832); + _Debug_range(_First2, _Last2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 833); + _Debug_pointer_if(_First1 != _Last1 && _First2 != _Last2, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 834); + return (_Rechecked(_First1, + _Find_first_of_unchecked(_Unchecked(_First1), _Unchecked(_Last1), + _Unchecked(_First2), _Unchecked(_Last2), _Pred))); + } + + +template inline + _FwdIt1 find_first_of(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _First2, _FwdIt2 _Last2) + { + return (::std:: find_first_of(_First1, _Last1, _First2, _Last2, + equal_to<>())); + } + + +template inline + _FwdIt2 _Swap_ranges_unchecked(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _Dest) + { + for (; _First1 != _Last1; ++_First1, (void)++_Dest) + ::std:: iter_swap(_First1, _Dest); + return (_Dest); + } + +template inline + _FwdIt2 _Swap_ranges1(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _Dest, + forward_iterator_tag, forward_iterator_tag) + { + return (_Rechecked(_Dest, + _Swap_ranges_unchecked(_First1, _Last1, _Unchecked_idl0(_Dest)))); + } + +template inline + _FwdIt2 _Swap_ranges1(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _Dest, + random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_Dest) + ((_Last1) - (_First1))); + return (_Rechecked(_Dest, + _Swap_ranges_unchecked(_First1, _Last1, _Unchecked(_Dest)))); + } + +template inline + _FwdIt2 swap_ranges(_FwdIt1 _First1, _FwdIt1 _Last1, + _FwdIt2 _Dest) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "swap_ranges" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + _Debug_range_ptr(_First1, _Last1, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 888); + return (_Swap_ranges1(_Unchecked(_First1), _Unchecked(_Last1), + _Dest, _Iter_cat_t<_FwdIt1>(), _Iter_cat_t<_FwdIt2>())); + } + + +template inline + _OutTy *swap_ranges(_FwdIt1 _First1, _FwdIt1 _Last1, + _OutTy (&_Dest)[_OutSize]) + { + return (_Unchecked( + ::std:: swap_ranges(_First1, _Last1, + _Array_iterator<_OutTy, _OutSize>(_Dest)))); + } + + + +template inline + _OutIt _Transform_unchecked(_InIt _First, _InIt _Last, + _OutIt _Dest, _Fn1& _Func) + { + for (; _First != _Last; ++_First, (void)++_Dest) + *_Dest = _Func(*_First); + return (_Dest); + } + +template inline + _OutIt _Transform_no_deprecate1(_InIt _First, _InIt _Last, + _OutIt _Dest, _Fn1& _Func, + input_iterator_tag, _Any_tag) + { + return (_Rechecked(_Dest, + _Transform_unchecked(_First, _Last, _Unchecked_idl0(_Dest), _Func))); + } + +template inline + _OutIt _Transform_no_deprecate1(_InIt _First, _InIt _Last, + _OutIt _Dest, _Fn1& _Func, + random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_Dest) + ((_Last) - (_First))); + return (_Rechecked(_Dest, + _Transform_unchecked(_First, _Last, _Unchecked(_Dest), _Func))); + } + +template inline + _OutIt _Transform_no_deprecate(_InIt _First, _InIt _Last, + _OutIt _Dest, _Fn1& _Func) + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 947); + _Debug_pointer_if(_First != _Last, _Func, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 948); + return (_Transform_no_deprecate1(_Unchecked(_First), _Unchecked(_Last), + _Dest, _Func, _Iter_cat_t<_InIt>(), _Iter_cat_t<_OutIt>())); + } + +template inline + _OutIt transform(_InIt _First, _InIt _Last, + _OutIt _Dest, _Fn1 _Func) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "transform" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Transform_no_deprecate(_First, _Last, _Dest, _Func)); + } + + +template inline + _OutTy *transform(_InIt _First, _InIt _Last, + _OutTy (&_Dest)[_OutSize], _Fn1 _Func) + { + return (_Unchecked( + _Transform_no_deprecate(_First, _Last, + _Array_iterator<_OutTy, _OutSize>(_Dest), _Func))); + } + + + +template inline + _OutIt _Transform_unchecked(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _OutIt _Dest, _Fn2& _Func) + { + for (; _First1 != _Last1; ++_First1, (void)++_First2, ++_Dest) + *_Dest = _Func(*_First1, *_First2); + return (_Dest); + } + +template inline + _OutIt _Transform_no_deprecate2(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _OutIt _Dest, _Fn2& _Func, + input_iterator_tag, _Any_tag) + { + return (_Rechecked(_Dest, + _Transform_unchecked(_First1, _Last1, _First2, _Unchecked_idl0(_Dest), _Func))); + } + +template inline + _OutIt _Transform_no_deprecate2(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _OutIt _Dest, _Fn2& _Func, + random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_Dest) + ((_Last1) - (_First1))); + return (_Rechecked(_Dest, + _Transform_unchecked(_First1, _Last1, _First2, _Unchecked(_Dest), _Func))); + } + +template inline + _OutIt _Transform_no_deprecate1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _OutIt _Dest, _Fn2& _Func, + input_iterator_tag, input_iterator_tag) + { + return (_Transform_no_deprecate2(_First1, _Last1, + _Unchecked_idl0(_First2), _Dest, _Func, + _Iter_cat_t<_InIt1>(), _Iter_cat_t<_OutIt>())); + } + +template inline + _OutIt _Transform_no_deprecate1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _OutIt _Dest, _Fn2& _Func, + random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_First2) + ((_Last1) - (_First1))); + return (_Transform_no_deprecate2(_First1, _Last1, + _Unchecked(_First2), _Dest, _Func, + _Iter_cat_t<_InIt1>(), _Iter_cat_t<_OutIt>())); + } + +template inline + _OutIt _Transform_no_deprecate(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _OutIt _Dest, _Fn2& _Func) + { + _Debug_range_ptr(_First1, _Last1, _First2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1049); + _Debug_pointer_if(_First1 != _Last1, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1050); + _Debug_pointer_if(_First1 != _Last1, _Func, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1051); + return (_Transform_no_deprecate1(_Unchecked(_First1), _Unchecked(_Last1), + _First2, _Dest, _Func, + _Iter_cat_t<_InIt1>(), _Iter_cat_t<_InIt2>())); + } + +template inline + _OutIt transform(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _OutIt _Dest, _Fn2 _Func) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "transform" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; + (_Unchecked_iterators::_Deprecate(_Is_checked(_First2))); + (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Transform_no_deprecate(_First1, _Last1, _First2, _Dest, _Func)); + } + + +template inline + _OutIt transform(_InIt1 _First1, _InIt1 _Last1, + _InTy (&_First2)[_InSize], _OutIt _Dest, _Fn2 _Func) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "transform" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Transform_no_deprecate(_First1, _Last1, + _Array_iterator<_InTy, _InSize>(_First2), _Dest, _Func)); + } + +template inline + _OutTy *transform(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _OutTy (&_Dest)[_OutSize], _Fn2 _Func) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "transform" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_First2))); + return (_Unchecked( + _Transform_no_deprecate(_First1, _Last1, + _First2, _Array_iterator<_OutTy, _OutSize>(_Dest), _Func))); + } + +template inline + _OutTy *transform(_InIt1 _First1, _InIt1 _Last1, + _InTy (&_First2)[_InSize], _OutTy (&_Dest)[_OutSize], _Fn2 _Func) + { + return (_Unchecked( + _Transform_no_deprecate(_First1, _Last1, + _Array_iterator<_InTy, _InSize>(_First2), + _Array_iterator<_OutTy, _OutSize>(_Dest), _Func))); + } + + + +template inline + void _Replace_unchecked(_FwdIt _First, _FwdIt _Last, + const _Ty& _Oldval, const _Ty& _Newval) + { + for (; _First != _Last; ++_First) + if (*_First == _Oldval) + *_First = _Newval; + } + +template inline + void replace(_FwdIt _First, _FwdIt _Last, + const _Ty& _Oldval, const _Ty& _Newval) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1130); + _Replace_unchecked(_Unchecked(_First), _Unchecked(_Last), + _Oldval, _Newval); + } + + +template inline + void _Replace_if_unchecked(_FwdIt _First, _FwdIt _Last, _Pr& _Pred, const _Ty& _Val) + { + for (; _First != _Last; ++_First) + if (_Pred(*_First)) + *_First = _Val; + } + +template inline + void replace_if(_FwdIt _First, _FwdIt _Last, _Pr _Pred, const _Ty& _Val) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1151); + _Replace_if_unchecked(_Unchecked(_First), _Unchecked(_Last), + _Pred, _Val); + } + + +template inline + _OutIt _Replace_copy_unchecked(_InIt _First, _InIt _Last, + _OutIt _Dest, const _Ty& _Oldval, const _Ty& _Newval) + { + for (; _First != _Last; ++_First, (void)++_Dest) + *_Dest = *_First == _Oldval ? _Newval : *_First; + return (_Dest); + } + +template inline + _OutIt _Replace_copy1(_InIt _First, _InIt _Last, + _OutIt _Dest, const _Ty& _Oldval, const _Ty& _Newval, + input_iterator_tag, _Any_tag) + { + return (_Rechecked(_Dest, + _Replace_copy_unchecked(_First, _Last, _Unchecked_idl0(_Dest), + _Oldval, _Newval))); + } + +template inline + _OutIt _Replace_copy1(_InIt _First, _InIt _Last, + _OutIt _Dest, const _Ty& _Oldval, const _Ty& _Newval, + random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_Dest) + ((_Last) - (_First))); + return (_Rechecked(_Dest, + _Replace_copy_unchecked(_First, _Last, _Unchecked(_Dest), + _Oldval, _Newval))); + } + +template inline + _OutIt replace_copy(_InIt _First, _InIt _Last, + _OutIt _Dest, const _Ty& _Oldval, const _Ty& _Newval) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "replace_copy" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1200); + return (_Replace_copy1(_Unchecked(_First), _Unchecked(_Last), + _Dest, _Oldval, _Newval, + _Iter_cat_t<_InIt>(), _Iter_cat_t<_OutIt>())); + } + + +template inline + _OutTy *replace_copy(_InIt _First, _InIt _Last, + _OutTy (&_Dest)[_OutSize], const _Ty& _Oldval, const _Ty& _Newval) + { + return (_Unchecked( + ::std:: replace_copy(_First, _Last, + _Array_iterator<_OutTy, _OutSize>(_Dest), _Oldval, _Newval))); + } + + + +template inline + _OutIt _Replace_copy_if_unchecked(_InIt _First, _InIt _Last, + _OutIt _Dest, _Pr& _Pred, const _Ty& _Val) + { + for (; _First != _Last; ++_First, (void)++_Dest) + *_Dest = _Pred(*_First) ? _Val : *_First; + return (_Dest); + } + +template inline + _OutIt _Replace_copy_if_no_deprecate1(_InIt _First, _InIt _Last, + _OutIt _Dest, _Pr& _Pred, const _Ty& _Val, + input_iterator_tag, _Any_tag) + { + return (_Rechecked(_Dest, + _Replace_copy_if_unchecked(_First, _Last, _Unchecked_idl0(_Dest), _Pred, _Val))); + } + +template inline + _OutIt _Replace_copy_if_no_deprecate1(_InIt _First, _InIt _Last, + _OutIt _Dest, _Pr& _Pred, const _Ty& _Val, + random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_Dest) + ((_Last) - (_First))); + return (_Rechecked(_Dest, + _Replace_copy_if_unchecked(_First, _Last, _Unchecked(_Dest), _Pred, _Val))); + } + +template inline + _OutIt _Replace_copy_if_no_deprecate(_InIt _First, _InIt _Last, + _OutIt _Dest, _Pr& _Pred, const _Ty& _Val) + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1265); + _Debug_pointer_if(_First != _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1266); + return (_Replace_copy_if_no_deprecate1(_Unchecked(_First), _Unchecked(_Last), + _Dest, _Pred, _Val, + _Iter_cat_t<_InIt>(), _Iter_cat_t<_OutIt>())); + } + +template inline + _OutIt replace_copy_if(_InIt _First, _InIt _Last, + _OutIt _Dest, _Pr _Pred, const _Ty& _Val) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "replace_copy_if" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Replace_copy_if_no_deprecate(_First, _Last, _Dest, _Pred, _Val)); + } + + +template inline + _OutTy *replace_copy_if(_InIt _First, _InIt _Last, + _OutTy (&_Dest)[_OutSize], _Pr _Pred, const _Ty& _Val) + { + return (_Unchecked( + _Replace_copy_if_no_deprecate(_First, _Last, + _Array_iterator<_OutTy, _OutSize>(_Dest), _Pred, _Val))); + } + + + +template inline + void _Generate_unchecked(_FwdIt _First, _FwdIt _Last, _Fn0& _Func) + { + for (; _First != _Last; ++_First) + *_First = _Func(); + } + +template inline + void generate(_FwdIt _First, _FwdIt _Last, _Fn0 _Func) + { + _Debug_range_ptr(_First, _Last, _Func, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1311); + _Generate_unchecked(_Unchecked(_First), _Unchecked(_Last), _Func); + } + + +template inline + _OutIt _Generate_n_unchecked(_OutIt _Dest, _Diff _Count, _Fn0& _Func) + { + for (; 0 < _Count; --_Count, (void)++_Dest) + *_Dest = _Func(); + return (_Dest); + } + +template inline + _OutIt generate_n(_OutIt _Dest, _Diff _Count, _Fn0 _Func) + { + return (_Rechecked(_Dest, + _Generate_n_unchecked(_Unchecked_n(_Dest, _Count), _Count, _Func))); + } + + +template inline + _OutTy *generate_n(_OutTy (&_Dest)[_OutSize], _Diff _Count, _Fn0 _Func) + { + _Debug_array_size2(_Dest, _Count, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1342); + return (_Generate_n_unchecked(_Dest, _Count, _Func)); + } + + + +template inline + _OutIt _Remove_copy_unchecked(_InIt _First, _InIt _Last, + _OutIt _Dest, const _Ty& _Val) + { + for (; _First != _Last; ++_First) + if (!(*_First == _Val)) + { + _Debug_pointer(_Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1357); + *_Dest++ = *_First; + } + + return (_Dest); + } + +template inline + _OutIt remove_copy(_InIt _First, _InIt _Last, + _OutIt _Dest, const _Ty& _Val) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "remove_copy" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1371); + return (_Rechecked(_Dest, + _Remove_copy_unchecked(_Unchecked(_First), _Unchecked(_Last), + _Unchecked_idl0(_Dest), _Val))); + } + + +template inline + _OutTy *remove_copy(_InIt _First, _InIt _Last, + _OutTy (&_Dest)[_OutSize], const _Ty& _Val) + { + return (_Unchecked( + ::std:: remove_copy(_First, _Last, + _Array_iterator<_OutTy, _OutSize>(_Dest), _Val))); + } + + + +template inline + _OutIt _Remove_copy_if_unchecked(_InIt _First, _InIt _Last, + _OutIt _Dest, _Pr& _Pred) + { + for (; _First != _Last; ++_First) + if (!_Pred(*_First)) + { + _Debug_pointer(_Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1401); + *_Dest++ = *_First; + } + + return (_Dest); + } + +template inline + _OutIt _Remove_copy_if_no_deprecate(_InIt _First, _InIt _Last, + _OutIt _Dest, _Pr& _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1414); + return (_Rechecked(_Dest, + _Remove_copy_if_unchecked(_Unchecked(_First), _Unchecked(_Last), + _Unchecked_idl0(_Dest), _Pred))); + } + +template inline + _OutIt remove_copy_if(_InIt _First, _InIt _Last, + _OutIt _Dest, _Pr _Pred) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "remove_copy_if" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Remove_copy_if_no_deprecate(_First, _Last, _Dest, _Pred)); + } + + +template inline + _OutTy *remove_copy_if(_InIt _First, _InIt _Last, + _OutTy (&_Dest)[_OutSize], _Pr _Pred) + { + return (_Unchecked( + _Remove_copy_if_no_deprecate(_First, _Last, + _Array_iterator<_OutTy, _OutSize>(_Dest), _Pred))); + } + + + +template inline + _FwdIt _Remove_unchecked(_FwdIt _First, _FwdIt _Last, const _Ty& _Val) + { + _First = _Find_unchecked(_First, _Last, _Val); + _FwdIt _Next = _First; + if (_First != _Last) + { + for (++_First; _First != _Last; ++_First) + if (!(*_First == _Val)) + *_Next++ = ::std:: move(*_First); + } + + return (_Next); + } + +template inline + _FwdIt remove(_FwdIt _First, _FwdIt _Last, const _Ty& _Val) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1465); + return (_Rechecked(_First, + _Remove_unchecked(_Unchecked(_First), _Unchecked(_Last), _Val))); + } + + +template inline + _FwdIt _Remove_if_unchecked(_FwdIt _First, _FwdIt _Last, _Pr& _Pred) + { + _First = _Find_if_unchecked(_First, _Last, _Pred); + _FwdIt _Next = _First; + if (_First != _Last) + { + for (++_First; _First != _Last; ++_First) + if (!_Pred(*_First)) + *_Next++ = ::std:: move(*_First); + } + + return (_Next); + } + +template inline + _FwdIt remove_if(_FwdIt _First, _FwdIt _Last, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1491); + return (_Rechecked(_First, + _Remove_if_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred))); + } + + +template inline + _FwdIt _Unique_unchecked(_FwdIt _First, _FwdIt _Last, _Pr& _Pred) + { + if (_First != _Last) + for (_FwdIt _Firstb; (void)(_Firstb = _First), ++_First != _Last; ) + if (_Pred(*_Firstb, *_First)) + { + for (; ++_First != _Last; ) + if (!_Pred(*_Firstb, *_First)) + *++_Firstb = ::std:: move(*_First); + return (++_Firstb); + } + + return (_Last); + } + +template inline + _FwdIt unique(_FwdIt _First, _FwdIt _Last, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1518); + _Debug_pointer_if(_First != _Last && ::std:: next(_First) != _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1519); + return (_Rechecked(_First, + _Unique_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred))); + } + + +template inline + _FwdIt unique(_FwdIt _First, _FwdIt _Last) + { + return (::std:: unique(_First, _Last, equal_to<>())); + } + + +template inline + _OutIt _Unique_copy_unchecked(_InIt _First, _InIt _Last, + _OutIt _Dest, _Pr& _Pred, input_iterator_tag) + { + if (_First != _Last) + { + _Iter_value_t<_InIt> _Val = *_First; + + for (*_Dest++ = _Val; ++_First != _Last; ) + if (!_Pred(_Val, *_First)) + { + _Val = *_First; + *_Dest++ = _Val; + } + } + + return (_Dest); + } + +template inline + _OutIt _Unique_copy_unchecked(_FwdIt _First, _FwdIt _Last, + _OutIt _Dest, _Pr& _Pred, forward_iterator_tag) + { + if (_First != _Last) + { + _FwdIt _Firstb = _First; + + for (*_Dest++ = *_Firstb; ++_First != _Last; ) + if (!_Pred(*_Firstb, *_First)) + { + _Firstb = _First; + *_Dest++ = *_Firstb; + } + } + + return (_Dest); + } + +template inline + _OutIt _Unique_copy_no_deprecate(_InIt _First, _InIt _Last, + _OutIt _Dest, _Pr& _Pred) + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1580); + _Debug_pointer_if(_First != _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1581); + return (_Rechecked(_Dest, + _Unique_copy_unchecked(_Unchecked(_First), _Unchecked(_Last), + _Unchecked_idl0(_Dest), _Pred, _Iter_cat_t<_InIt>()))); + } + +template inline + _OutIt unique_copy(_InIt _First, _InIt _Last, + _OutIt _Dest, _Pr _Pred) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "unique_copy" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Unique_copy_no_deprecate(_First, _Last, _Dest, _Pred)); + } + + +template inline + _OutTy *unique_copy(_InIt _First, _InIt _Last, + _OutTy (&_Dest)[_OutSize], _Pr _Pred) + { + return (_Unchecked( + _Unique_copy_no_deprecate(_First, _Last, + _Array_iterator<_OutTy, _OutSize>(_Dest), _Pred))); + } + + + +template inline + _OutIt unique_copy(_InIt _First, _InIt _Last, _OutIt _Dest) + { + return (::std:: unique_copy(_First, _Last, _Dest, + equal_to<>())); + } + + +template inline + _OutTy *unique_copy(_InIt _First, _InIt _Last, + _OutTy (&_Dest)[_OutSize]) + { + return (::std:: unique_copy(_First, _Last, _Dest, + equal_to<>())); + } + + + +template inline + _OutIt _Reverse_copy_unchecked(_BidIt _First, _BidIt _Last, + _OutIt _Dest) + { + for (; _First != _Last; ++_Dest) + *_Dest = *--_Last; + return (_Dest); + } + +template inline + _OutIt _Reverse_copy1(_BidIt _First, _BidIt _Last, + _OutIt _Dest, + bidirectional_iterator_tag, _Any_tag) + { + return (_Rechecked(_Dest, + _Reverse_copy_unchecked(_First, _Last, _Unchecked_idl0(_Dest)))); + } + +template inline + _OutIt _Reverse_copy1(_BidIt _First, _BidIt _Last, + _OutIt _Dest, + random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_Dest) + ((_Last) - (_First))); + return (_Rechecked(_Dest, + _Reverse_copy_unchecked(_First, _Last, _Unchecked(_Dest)))); + } + +template inline + _OutIt reverse_copy(_BidIt _First, _BidIt _Last, + _OutIt _Dest) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "reverse_copy" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1670); + return (_Reverse_copy1(_Unchecked(_First), _Unchecked(_Last), + _Dest, _Iter_cat_t<_BidIt>(), _Iter_cat_t<_OutIt>())); + } + + +template inline + _OutTy *reverse_copy(_BidIt _First, _BidIt _Last, + _OutTy (&_Dest)[_OutSize]) + { + return (_Unchecked( + ::std:: reverse_copy(_First, _Last, + _Array_iterator<_OutTy, _OutSize>(_Dest)))); + } + + + +template inline + _OutIt _Rotate_copy_unchecked(_FwdIt _First, _FwdIt _Mid, _FwdIt _Last, + _OutIt _Dest) + { + _Dest = _Copy_unchecked(_Mid, _Last, _Dest); + return (_Copy_unchecked(_First, _Mid, _Dest)); + } + +template inline + _OutIt _Rotate_copy1(_FwdIt _First, _FwdIt _Mid, _FwdIt _Last, + _OutIt _Dest, forward_iterator_tag, _Any_tag) + { + return (_Rechecked(_Dest, + _Rotate_copy_unchecked(_First, _Mid, _Last, _Unchecked_idl0(_Dest)))); + } + +template inline + _OutIt _Rotate_copy1(_FwdIt _First, _FwdIt _Mid, _FwdIt _Last, + _OutIt _Dest, random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_Dest) + ((_Last) - (_First))); + return (_Rechecked(_Dest, + _Rotate_copy_unchecked(_First, _Mid, _Last, _Unchecked(_Dest)))); + } + +template inline + _OutIt rotate_copy(_FwdIt _First, _FwdIt _Mid, _FwdIt _Last, + _OutIt _Dest) + { + _Debug_range(_First, _Mid, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1722); + _Debug_range(_Mid, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1723); + return (_Rotate_copy1(_Unchecked(_First), _Unchecked(_Mid), + _Unchecked(_Last), _Dest, _Iter_cat_t<_FwdIt>(), _Iter_cat_t<_OutIt>())); + } + + +template inline + void _Random_shuffle_unchecked(_RanIt _First, _RanIt _Last, _Fn1& _Func) + { + if (_Last - _First < 2) + return; + + _RanIt _Next = _First; + for (_Iter_diff_t<_RanIt> _Index = 2; ++_Next != _Last; ++_Index) + { + _Iter_diff_t<_RanIt> _Off = _Func(_Index); + + + if (_Off < 0 || _Index <= _Off) + { + _Debug_message(L"random value out of range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1744); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1745, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1745, 0); }; + } + + + + + + ::std:: iter_swap(_Next, _First + _Off); + } + } + +template inline + void _Random_shuffle1(_RanIt _First, _RanIt _Last, _Fn1& _Func) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1760); + _Random_shuffle_unchecked(_Unchecked(_First), _Unchecked(_Last), _Func); + } + +template inline + void shuffle(_RanIt _First, _RanIt _Last, _Urng&& _Func) + { + typedef typename iterator_traits<_RanIt>::difference_type _Diff; + typedef typename remove_reference<_Urng>::type _Urng0; + _Rng_from_urng<_Diff, _Urng0> _Rng(_Func); + _Random_shuffle1(_First, _Last, _Rng); + } + + + +template inline + void random_shuffle(_RanIt _First, _RanIt _Last, _Fn1&& _Func) + { + _Random_shuffle1(_First, _Last, _Func); + } + + +struct _Rand_urng_from_func + { + typedef unsigned int result_type; + + static result_type (min)() + { + return (0); + } + + static result_type (max)() + { + return (0x7fff); + } + + result_type operator()() + { + return (:: rand()); + } + }; + + +template inline + void random_shuffle(_RanIt _First, _RanIt _Last) + { + _Rand_urng_from_func _Func; + ::std:: shuffle(_First, _Last, _Func); + } + + + +template inline + _FwdIt _Partition_unchecked(_FwdIt _First, _FwdIt _Last, _Pr& _Pred, + forward_iterator_tag) + { + while (_First != _Last && _Pred(*_First)) + ++_First; + + if (_First == _Last) + return (_First); + + for (_FwdIt _Next = ::std:: next(_First); _Next != _Last; ++_Next) + if (_Pred(*_Next)) + ::std:: iter_swap(_First++, _Next); + + return (_First); + } + +template inline + _BidIt _Partition_unchecked(_BidIt _First, _BidIt _Last, _Pr& _Pred, + bidirectional_iterator_tag) + { + for (; ; ++_First) + { + for (; _First != _Last && _Pred(*_First); ++_First) + ; + if (_First == _Last) + break; + + for (; _First != --_Last && !_Pred(*_Last); ) + ; + if (_First == _Last) + break; + + ::std:: iter_swap(_First, _Last); + } + + return (_First); + } + +template inline + _FwdIt partition(_FwdIt _First, _FwdIt _Last, _Pr _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1859); + return (_Rechecked(_First, + _Partition_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred, + _Iter_cat_t<_FwdIt>()))); + } + + +template inline + _BidIt _Buffered_rotate_unchecked(_BidIt _First, _BidIt _Mid, _BidIt _Last, + _Diff _Count1, _Diff _Count2, _Temp_iterator<_Ty>& _Tempbuf) + { + if (_Count1 == 0 || _Count2 == 0) + { + ::std:: advance(_First, _Count2); + return (_First); + } + else if (_Count1 <= _Count2 && _Count1 <= _Tempbuf._Maxlen()) + { + _Move_unchecked(_First, _Mid, _Tempbuf._Init()); + _Move_unchecked(_Mid, _Last, _First); + return (_Move_backward_unchecked(_Tempbuf._First(), _Tempbuf._Last(), + _Last)); + } + else if (_Count2 <= _Tempbuf._Maxlen()) + { + _Move_unchecked(_Mid, _Last, _Tempbuf._Init()); + _Move_backward_unchecked(_First, _Mid, _Last); + return (_Move_unchecked(_Tempbuf._First(), _Tempbuf._Last(), _First)); + } + else + { + return (_Rotate_unchecked(_First, _Mid, _Last)); + } + } + +template inline + _BidIt _Stable_partition_unchecked1(_BidIt _First, _BidIt _Last, _Pr& _Pred, + _Diff _Count, _Temp_iterator<_Ty>& _Tempbuf) + { + if (_Count == 0) + return (_First); + else if (_Count == 1) + return (_Pred(*_First) ? _Last : _First); + else if (_Count <= _Tempbuf._Maxlen()) + { + _BidIt _Next = _First; + for (_Tempbuf._Init(); _First != _Last; ++_First) + if (_Pred(*_First)) + *_Next++ = ::std:: move(*_First); + else + *_Tempbuf++ = ::std:: move(*_First); + + _Move_unchecked(_Tempbuf._First(), _Tempbuf._Last(), _Next); + return (_Next); + } + else + { + _BidIt _Mid = _First; + ::std:: advance(_Mid, _Count / 2); + + _BidIt _Left = _Stable_partition_unchecked1(_First, _Mid, _Pred, + _Count / 2, _Tempbuf); + _BidIt _Right = _Stable_partition_unchecked1(_Mid, _Last, _Pred, + _Count - _Count / 2, _Tempbuf); + + _Diff _Count1 = ::std:: distance(_Left, _Mid); + _Diff _Count2 = ::std:: distance(_Mid, _Right); + + return (_Buffered_rotate_unchecked(_Left, _Mid, _Right, + _Count1, _Count2, _Tempbuf)); + } + } + +template inline + _BidIt _Stable_partition_unchecked(_BidIt _First, _BidIt _Last, _Pr& _Pred) + { + if (_First == _Last) + return (_First); + _Iter_diff_t<_BidIt> _Count = ::std:: distance(_First, _Last); + _Temp_iterator<_Iter_value_t<_BidIt>> _Tempbuf(_Count); + return (_Stable_partition_unchecked1(_First, _Last, _Pred, _Count, _Tempbuf)); + } + +template inline + _BidIt stable_partition(_BidIt _First, _BidIt _Last, _Pr _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1952); + return (_Rechecked(_First, + _Stable_partition_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred))); + } + + + +template inline + void _Debug_heap(_RanIt _First, _RanIt _Last, _Pr& _Pred) + { + if (_First != _Last) + for (_RanIt _Root = _First; ++_First != _Last; ++_Root) + { + if (_Debug_lt_pred(_Pred, *_Root, *_First, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1966)) + _Debug_message(L"invalid heap", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1967); + else if (++_First == _Last) + break; + else if (_Debug_lt_pred(_Pred, *_Root, *_First, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1970)) + _Debug_message(L"invalid heap", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1971); + } + } +# 1983 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm" 3 +template inline + void _Push_heap_by_index(_RanIt _First, _Diff _Hole, + _Diff _Top, _Ty&& _Val, _Pr& _Pred) + { + for (_Diff _Idx = (_Hole - 1) / 2; + _Top < _Hole && _Debug_lt_pred(_Pred, *(_First + _Idx), _Val, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 1991); + _Idx = (_Hole - 1) / 2) + { + *(_First + _Hole) = ::std:: move(*(_First + _Idx)); + _Hole = _Idx; + } + + *(_First + _Hole) = ::std:: move(_Val); + } + +template inline + void _Push_heap_unchecked(_RanIt _First, _RanIt _Last, _Pr& _Pred) + { + typedef _Iter_diff_t<_RanIt> _Diff; + _Diff _Count = _Last - _First; + if (2 <= _Count) + { + _Iter_value_t<_RanIt> _Val = ::std:: move(*--_Last); + _Push_heap_by_index(_First, --_Count, _Diff(0), ::std:: move(_Val), _Pred); + } + } + +template inline + void push_heap(_RanIt _First, _RanIt _Last, _Pr _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2018); + _Push_heap_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred); + } + + +template inline + void push_heap(_RanIt _First, _RanIt _Last) + { + ::std:: push_heap(_First, _Last, less<>()); + } + + +template inline + void _Pop_heap_hole_by_index(_RanIt _First, _Diff _Hole, _Diff _Bottom, + _Ty&& _Val, _Pr& _Pred) + { + + const _Diff _Top = _Hole; + _Diff _Idx = _Hole; + + + + const _Diff _Max_sequence_non_leaf = (_Bottom - 1) / 2; + while (_Idx < _Max_sequence_non_leaf) + { + _Idx = 2 * _Idx + 2; + if (_Debug_lt_pred(_Pred, *(_First + _Idx), *(_First + (_Idx - 1)), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2047)) + --_Idx; + *(_First + _Hole) = ::std:: move(*(_First + _Idx)); + _Hole = _Idx; + } + + if (_Idx == _Max_sequence_non_leaf && _Bottom % 2 == 0) + { + *(_First + _Hole) = ::std:: move(*(_First + (_Bottom - 1))); + _Hole = _Bottom - 1; + } + + _Push_heap_by_index(_First, _Hole, _Top, ::std:: move(_Val), _Pred); + } + +template inline + void _Pop_heap_hole_unchecked(_RanIt _First, _RanIt _Last, _RanIt _Dest, + _Ty&& _Val, _Pr& _Pred) + { + + + *_Dest = ::std:: move(*_First); + _Pop_heap_hole_by_index(_First, _Iter_diff_t<_RanIt>(0), _Iter_diff_t<_RanIt>(_Last - _First), + ::std:: move(_Val), _Pred); + } + +template inline + void _Pop_heap_unchecked(_RanIt _First, _RanIt _Last, _Pr& _Pred) + { + if (2 <= _Last - _First) + { + --_Last; + _Iter_value_t<_RanIt> _Val = ::std:: move(*_Last); + _Pop_heap_hole_unchecked(_First, _Last, _Last, + ::std:: move(_Val), _Pred); + } + } + +template inline + void pop_heap(_RanIt _First, _RanIt _Last, _Pr _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2092); + _Debug_heap(_Unchecked(_First), _Unchecked(_Last), _Pred); + _Pop_heap_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred); + } + + +template inline + void pop_heap(_RanIt _First, _RanIt _Last) + { + ::std:: pop_heap(_First, _Last, less<>()); + } + + +template inline + void _Make_heap_unchecked(_RanIt _First, _RanIt _Last, _Pr& _Pred) + { + _Iter_diff_t<_RanIt> _Bottom = _Last - _First; + if (2 <= _Bottom) + { + for (_Iter_diff_t<_RanIt> _Hole = _Bottom / 2; 0 < _Hole; ) + { + --_Hole; + _Iter_value_t<_RanIt> _Val = ::std:: move(*(_First + _Hole)); + _Pop_heap_hole_by_index(_First, _Hole, _Bottom, + ::std:: move(_Val), _Pred); + } + } + } + +template inline + void make_heap(_RanIt _First, _RanIt _Last, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2126); + _Make_heap_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred); + } + + +template inline + void make_heap(_RanIt _First, _RanIt _Last) + { + ::std:: make_heap(_First, _Last, less<>()); + } + + +template inline + void _Sort_heap_unchecked(_RanIt _First, _RanIt _Last, _Pr& _Pred) + { + for (; 2 <= _Last - _First; --_Last) + _Pop_heap_unchecked(_First, _Last, _Pred); + } + +template inline + void sort_heap(_RanIt _First, _RanIt _Last, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2150); + _Debug_pointer_if(2 <= _Last - _First, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2151); + _Debug_heap(_Unchecked(_First), _Unchecked(_Last), _Pred); + _Sort_heap_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred); + } + + +template inline + void sort_heap(_RanIt _First, _RanIt _Last) + { + ::std:: sort_heap(_First, _Last, less<>()); + } + + +template inline + _FwdIt _Lower_bound_unchecked(_FwdIt _First, _FwdIt _Last, + const _Ty& _Val, _Pr& _Pred) + { + _Iter_diff_t<_FwdIt> _Count = ::std:: distance(_First, _Last); + + while (0 < _Count) + { + _Iter_diff_t<_FwdIt> _Count2 = _Count / 2; + _FwdIt _Mid = _First; + ::std:: advance(_Mid, _Count2); + + if (_Pred(*_Mid, _Val)) + { + _First = ++_Mid; + _Count -= _Count2 + 1; + } + else + _Count = _Count2; + } + + return (_First); + } + +template inline + _FwdIt lower_bound(_FwdIt _First, _FwdIt _Last, + const _Ty& _Val, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2196); + return (_Rechecked(_First, + _Lower_bound_unchecked(_Unchecked(_First), _Unchecked(_Last), _Val, _Pred))); + } + + +template inline + _FwdIt lower_bound(_FwdIt _First, _FwdIt _Last, const _Ty& _Val) + { + return (::std:: lower_bound(_First, _Last, _Val, less<>())); + } + + +template inline + _FwdIt _Upper_bound_unchecked(_FwdIt _First, _FwdIt _Last, + const _Ty& _Val, _Pr& _Pred) + { + _Iter_diff_t<_FwdIt> _Count = ::std:: distance(_First, _Last); + + while (0 < _Count) + { + _Iter_diff_t<_FwdIt> _Count2 = _Count / 2; + _FwdIt _Mid = _First; + ::std:: advance(_Mid, _Count2); + + if (!_Pred(_Val, *_Mid)) + { + _First = ++_Mid; + _Count -= _Count2 + 1; + } + else + _Count = _Count2; + } + + return (_First); + } + +template inline + _FwdIt upper_bound(_FwdIt _First, _FwdIt _Last, + const _Ty& _Val, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2242); + return (_Rechecked(_First, + _Upper_bound_unchecked(_Unchecked(_First), _Unchecked(_Last), _Val, _Pred))); + } + + +template inline + _FwdIt upper_bound(_FwdIt _First, _FwdIt _Last, const _Ty& _Val) + { + return (::std:: upper_bound(_First, _Last, _Val, less<>())); + } + + +template inline + pair<_FwdIt, _FwdIt> + _Equal_range_unchecked(_FwdIt _First, _FwdIt _Last, + const _Ty& _Val, _Pr& _Pred) + { + _Iter_diff_t<_FwdIt> _Count = ::std:: distance(_First, _Last); + + while (0 < _Count) + { + _Iter_diff_t<_FwdIt> _Count2 = _Count / 2; + _FwdIt _Mid = _First; + ::std:: advance(_Mid, _Count2); + + if (_Debug_lt_pred(_Pred, *_Mid, _Val, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2271)) + { + _First = ++_Mid; + _Count -= _Count2 + 1; + } + else if (_Pred(_Val, *_Mid)) + _Count = _Count2; + else + { + _FwdIt _First2 = _Lower_bound_unchecked(_First, _Mid, _Val, _Pred); + ::std:: advance(_First, _Count); + _FwdIt _Last2 = _Upper_bound_unchecked(++_Mid, _First, _Val, _Pred); + return (pair<_FwdIt, _FwdIt>(_First2, _Last2)); + } + } + + return (pair<_FwdIt, _FwdIt>(_First, _First)); + } + +template inline + pair<_FwdIt, _FwdIt> + equal_range(_FwdIt _First, _FwdIt _Last, + const _Ty& _Val, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2297); + return (_Rechecked_both(_First, _Last, + _Equal_range_unchecked(_Unchecked(_First), _Unchecked(_Last), _Val, _Pred))); + } + + +template inline + pair<_FwdIt, _FwdIt> + equal_range(_FwdIt _First, _FwdIt _Last, + const _Ty& _Val) + { + return (::std:: equal_range(_First, _Last, _Val, less<>())); + } + + +template inline + bool _Binary_search_unchecked(_FwdIt _First, _FwdIt _Last, + const _Ty& _Val, _Pr& _Pred) + { + _First = _Lower_bound_unchecked(_First, _Last, _Val, _Pred); + return (_First != _Last && !_Pred(_Val, *_First)); + } + +template inline + bool binary_search(_FwdIt _First, _FwdIt _Last, + const _Ty& _Val, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2329); + return (_Binary_search_unchecked(_Unchecked(_First), _Unchecked(_Last), + _Val, _Pred)); + } + + +template inline + bool binary_search(_FwdIt _First, _FwdIt _Last, const _Ty& _Val) + { + return (::std:: binary_search(_First, _Last, _Val, less<>())); + } + + +template inline + _OutIt _Merge_unchecked(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutIt _Dest, _Pr& _Pred) + { + if (_First1 != _Last1 && _First2 != _Last2) + for (; ; ) + { + if (_Debug_lt_pred(_Pred, *_First2, *_First1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2354)) + { + *_Dest++ = *_First2++; + if (_First2 == _Last2) + break; + } + else + { + *_Dest++ = *_First1++; + if (_First1 == _Last1) + break; + } + } + + _Dest = _Copy_unchecked(_First1, _Last1, _Dest); + return (_Copy_unchecked(_First2, _Last2, _Dest)); + } + +template inline + _OutIt _Merge_no_deprecate1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutIt _Dest, _Pr& _Pred, input_iterator_tag, + input_iterator_tag, _Any_tag) + { + return (_Rechecked(_Dest, + _Merge_unchecked(_First1, _Last1, _First2, _Last2, _Unchecked_idl0(_Dest), _Pred))); + } + +template inline + _OutIt _Merge_no_deprecate1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutIt _Dest, _Pr& _Pred, random_access_iterator_tag, + random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_Dest) + ((_Last1 - _First1) + (_Last2 - _First2))); + return (_Rechecked(_Dest, + _Merge_unchecked(_First1, _Last1, _First2, _Last2, _Unchecked(_Dest), _Pred))); + } + +template inline + _OutIt _Merge_no_deprecate(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutIt _Dest, _Pr& _Pred) + { + _Debug_order(_First1, _Last1, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2407); + _Debug_order(_First2, _Last2, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2408); + _Debug_pointer_if(_First1 != _Last1 || _First2 != _Last2, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2409); + return (_Merge_no_deprecate1(_Unchecked(_First1), _Unchecked(_Last1), + _Unchecked(_First2), _Unchecked(_Last2), + _Dest, _Pred, + _Iter_cat_t<_InIt1>(), _Iter_cat_t<_InIt2>(), _Iter_cat_t<_OutIt>())); + } + +template inline + _OutIt merge(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutIt _Dest, _Pr _Pred) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "merge" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Merge_no_deprecate(_First1, _Last1, _First2, _Last2, _Dest, _Pred)); + } + + +template inline + _OutTy *merge(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutTy (&_Dest)[_OutSize], _Pr _Pred) + { + return (_Unchecked( + _Merge_no_deprecate(_First1, _Last1, + _First2, _Last2, + _Array_iterator<_OutTy, _OutSize>(_Dest), _Pred))); + } + + + +template inline + _OutIt merge(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutIt _Dest) + { + return (::std:: merge(_First1, _Last1, _First2, _Last2, _Dest, + less<>())); + } + + +template inline + _OutTy *merge(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutTy (&_Dest)[_OutSize]) + { + return (::std:: merge(_First1, _Last1, _First2, _Last2, _Dest, + less<>())); + } + + + +template inline + _BidIt3 _Buffered_merge_backward_unchecked(_BidIt1 _First1, _BidIt1 _Last1, + _BidIt2 _First2, _BidIt2 _Last2, _BidIt3 _Dest, _Pr& _Pred, + bool _In_place = false) + { + if (_First1 != _Last1 && _First2 != _Last2) + for (; ; ) + { + if (_Debug_lt_pred(_Pred, *--_Last2, *--_Last1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2483)) + { + *--_Dest = ::std:: move(*_Last1); + ++_Last2; + if (_First1 == _Last1) + break; + } + else + { + *--_Dest = ::std:: move(*_Last2); + ++_Last1; + if (_First2 == _Last2) + break; + } + } + + _Dest = _Move_backward_unchecked(_First2, _Last2, _Dest); + if (!_In_place) + _Dest = _Move_backward_unchecked(_First1, _Last1, _Dest); + return (_Dest); + } + +template inline + _OutIt _Buffered_merge_unchecked(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutIt _Dest, _Pr& _Pred, bool _In_place = false) + { + if (_First1 != _Last1 && _First2 != _Last2) + for (; ; ) + { + if (_Debug_lt_pred(_Pred, *_First2, *_First1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2516)) + { + *_Dest++ = ::std:: move(*_First2++); + if (_First2 == _Last2) + break; + } + else + { + *_Dest++ = ::std:: move(*_First1++); + if (_First1 == _Last1) + break; + } + } + + _Dest = _Move_unchecked(_First1, _Last1, _Dest); + if (!_In_place) + _Dest = _Move_unchecked(_First2, _Last2, _Dest); + return (_Dest); + } + +template inline + void _Buffered_merge_unchecked(_BidIt _First, _BidIt _Mid, _BidIt _Last, + _Diff _Count1, _Diff _Count2, + _Temp_iterator<_Ty>& _Tempbuf, _Pr& _Pred) + { + if (_Count1 == 0 || _Count2 == 0) + ; + else if (_Count1 + _Count2 == 2) + { + if (_Debug_lt_pred(_Pred, *_Mid, *_First, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2548)) + ::std:: iter_swap(_First, _Mid); + } + else if (_Count1 <= _Count2 && _Count1 <= _Tempbuf._Maxlen()) + { + _Move_unchecked(_First, _Mid, _Tempbuf._Init()); + _Buffered_merge_unchecked(_Tempbuf._First(), _Tempbuf._Last(), + _Mid, _Last, _First, _Pred, true); + } + else if (_Count2 <= _Tempbuf._Maxlen()) + { + _Move_unchecked(_Mid, _Last, _Tempbuf._Init()); + _Buffered_merge_backward_unchecked(_First, _Mid, + _Tempbuf._First(), _Tempbuf._Last(), _Last, _Pred, true); + } + else + { + _BidIt _Firstn, _Lastn; + _Diff _Count1n, _Count2n; + if (_Count2 < _Count1) + { + _Count1n = _Count1 / 2; + _Firstn = _First; + ::std:: advance(_Firstn, _Count1n); + _Lastn = _Lower_bound_unchecked(_Mid, _Last, *_Firstn, _Pred); + _Count2n = ::std:: distance(_Mid, _Lastn); + } + else + { + _Count2n = _Count2 / 2; + _Lastn = _Mid; + ::std:: advance(_Lastn, _Count2n); + _Firstn = _Upper_bound_unchecked(_First, _Mid, *_Lastn, _Pred); + _Count1n = ::std:: distance(_First, _Firstn); + } + _BidIt _Midn = _Buffered_rotate_unchecked(_Firstn, _Mid, _Lastn, + _Count1 - _Count1n, _Count2n, _Tempbuf); + _Buffered_merge_unchecked(_First, _Firstn, _Midn, + _Count1n, _Count2n, _Tempbuf, _Pred); + _Buffered_merge_unchecked(_Midn, _Lastn, _Last, + _Count1 - _Count1n, _Count2 - _Count2n, _Tempbuf, _Pred); + } + } + +template inline + void _Inplace_merge_unchecked(_BidIt _First, _BidIt _Mid, _BidIt _Last, _Pr& _Pred) + { + if (_First != _Mid && _Mid != _Last) + { + _Iter_diff_t<_BidIt> _Count1 = ::std:: distance(_First, _Mid); + _Iter_diff_t<_BidIt> _Count2 = ::std:: distance(_Mid, _Last); + _Temp_iterator<_Iter_value_t<_BidIt>> _Tempbuf(_Count1 < _Count2 ? _Count1 : _Count2); + _Buffered_merge_unchecked(_First, _Mid, _Last, + _Count1, _Count2, _Tempbuf, _Pred); + } + } + +template inline + void inplace_merge(_BidIt _First, _BidIt _Mid, _BidIt _Last, _Pr _Pred) + { + _Debug_order(_First, _Mid, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2610); + _Debug_order(_Mid, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2611); + _Inplace_merge_unchecked( + _Unchecked(_First), _Unchecked(_Mid), _Unchecked(_Last), _Pred); + } + + +template inline + void inplace_merge(_BidIt _First, _BidIt _Mid, _BidIt _Last) + { + ::std:: inplace_merge(_First, _Mid, _Last, less<>()); + } + + +template inline + void _Insertion_sort_unchecked(_BidIt _First, _BidIt _Last, _Pr& _Pred) + { + if (_First != _Last) + for (_BidIt _Next = _First; ++_Next != _Last; ) + { + _BidIt _Next1 = _Next; + _Iter_value_t<_BidIt> _Val = ::std:: move(*_Next); + + if (_Debug_lt_pred(_Pred, _Val, *_First, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2634)) + { + _Move_backward_unchecked(_First, _Next, ++_Next1); + *_First = ::std:: move(_Val); + } + else + { + for (_BidIt _First1 = _Next1; + _Debug_lt_pred(_Pred, _Val, *--_First1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2642); + _Next1 = _First1) + *_Next1 = ::std:: move(*_First1); + *_Next1 = ::std:: move(_Val); + } + } + } + +template inline + void _Med3_unchecked(_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr& _Pred) + { + if (_Debug_lt_pred(_Pred, *_Mid, *_First, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2654)) + ::std:: iter_swap(_Mid, _First); + if (_Debug_lt_pred(_Pred, *_Last, *_Mid, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2656)) + { + ::std:: iter_swap(_Last, _Mid); + if (_Debug_lt_pred(_Pred, *_Mid, *_First, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2659)) + ::std:: iter_swap(_Mid, _First); + } + } + +template inline + void _Guess_median_unchecked(_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr& _Pred) + { + if (40 < _Last - _First) + { + size_t _Step = (_Last - _First + 1) / 8; + _Med3_unchecked(_First, _First + _Step, _First + 2 * _Step, _Pred); + _Med3_unchecked(_Mid - _Step, _Mid, _Mid + _Step, _Pred); + _Med3_unchecked(_Last - 2 * _Step, _Last - _Step, _Last, _Pred); + _Med3_unchecked(_First + _Step, _Mid, _Last - _Step, _Pred); + } + else + _Med3_unchecked(_First, _Mid, _Last, _Pred); + } + +template inline + pair<_RanIt, _RanIt> + _Partition_by_median_guess_unchecked(_RanIt _First, _RanIt _Last, _Pr& _Pred) + { + _RanIt _Mid = _First + (_Last - _First) / 2; + _Guess_median_unchecked(_First, _Mid, _Last - 1, _Pred); + _RanIt _Pfirst = _Mid; + _RanIt _Plast = _Pfirst + 1; + + while (_First < _Pfirst + && !_Debug_lt_pred(_Pred, *(_Pfirst - 1), *_Pfirst, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2691) + && !_Pred(*_Pfirst, *(_Pfirst - 1))) + --_Pfirst; + while (_Plast < _Last + && !_Debug_lt_pred(_Pred, *_Plast, *_Pfirst, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2695) + && !_Pred(*_Pfirst, *_Plast)) + ++_Plast; + + _RanIt _Gfirst = _Plast; + _RanIt _Glast = _Pfirst; + + for (; ; ) + { + for (; _Gfirst < _Last; ++_Gfirst) + if (_Debug_lt_pred(_Pred, *_Pfirst, *_Gfirst, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2705)) + ; + else if (_Pred(*_Gfirst, *_Pfirst)) + break; + else if (_Plast++ != _Gfirst) + ::std:: iter_swap(_Plast - 1, _Gfirst); + for (; _First < _Glast; --_Glast) + if (_Debug_lt_pred(_Pred, *(_Glast - 1), *_Pfirst, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2712)) + ; + else if (_Pred(*_Pfirst, *(_Glast - 1))) + break; + else if (--_Pfirst != _Glast - 1) + ::std:: iter_swap(_Pfirst, _Glast - 1); + if (_Glast == _First && _Gfirst == _Last) + return (pair<_RanIt, _RanIt>(_Pfirst, _Plast)); + + if (_Glast == _First) + { + if (_Plast != _Gfirst) + ::std:: iter_swap(_Pfirst, _Plast); + ++_Plast; + ::std:: iter_swap(_Pfirst++, _Gfirst++); + } + else if (_Gfirst == _Last) + { + if (--_Glast != --_Pfirst) + ::std:: iter_swap(_Glast, _Pfirst); + ::std:: iter_swap(_Pfirst, --_Plast); + } + else + ::std:: iter_swap(_Gfirst++, --_Glast); + } + } + +template inline + void _Sort_unchecked1(_RanIt _First, _RanIt _Last, _Diff _Ideal, _Pr& _Pred) + { + _Diff _Count; + while (_ISORT_MAX < (_Count = _Last - _First) && 0 < _Ideal) + { + pair<_RanIt, _RanIt> _Mid = + _Partition_by_median_guess_unchecked(_First, _Last, _Pred); + _Ideal /= 2, _Ideal += _Ideal / 2; + + if (_Mid.first - _First < _Last - _Mid.second) + { + _Sort_unchecked1(_First, _Mid.first, _Ideal, _Pred); + _First = _Mid.second; + } + else + { + _Sort_unchecked1(_Mid.second, _Last, _Ideal, _Pred); + _Last = _Mid.first; + } + } + + if (_ISORT_MAX < _Count) + { + _Make_heap_unchecked(_First, _Last, _Pred); + _Sort_heap_unchecked(_First, _Last, _Pred); + } + else if (2 <= _Count) + _Insertion_sort_unchecked(_First, _Last, _Pred); + } + +template inline + void _Sort_unchecked(_RanIt _First, _RanIt _Last, _Pr& _Pred) + { + _Sort_unchecked1(_First, _Last, _Last - _First, _Pred); + } + +template inline + void sort(_RanIt _First, _RanIt _Last, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2783); + _Sort_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred); + } + + +template inline + void sort(_RanIt _First, _RanIt _Last) + { + ::std:: sort(_First, _Last, less<>()); + } + + +template inline + void _Chunked_merge_unchecked(_BidIt _First, _BidIt _Last, _OutIt _Dest, + _Diff _Chunk, _Diff _Count, _Pr& _Pred) + { + for (_Diff _Chunk2 = _Chunk * 2; _Chunk2 <= _Count; _Count -= _Chunk2) + { + _BidIt _Mid1 = _First; + ::std:: advance(_Mid1, _Chunk); + _BidIt _Mid2 = _Mid1; + ::std:: advance(_Mid2, _Chunk); + + _Dest = _Buffered_merge_unchecked(_First, _Mid1, _Mid1, _Mid2, _Dest, _Pred); + _First = _Mid2; + } + + if (_Count <= _Chunk) + _Move_unchecked(_First, _Last, _Dest); + else + { + _BidIt _Mid1 = _First; + ::std:: advance(_Mid1, _Chunk); + + _Buffered_merge_unchecked(_First, _Mid1, _Mid1, _Last, _Dest, _Pred); + } + } + +template inline + void _Buffered_merge_sort_unchecked(_BidIt _First, _BidIt _Last, _Diff _Count, + _Temp_iterator<_Ty>& _Tempbuf, _Pr& _Pred) + { + _BidIt _Mid = _First; + for (_Diff _Nleft = _Count; _ISORT_MAX <= _Nleft; _Nleft -= _ISORT_MAX) + { + _BidIt _Midn = _Mid; + ::std:: advance(_Midn, (int)_ISORT_MAX); + + _Insertion_sort_unchecked(_Mid, _Midn, _Pred); + _Mid = _Midn; + } + _Insertion_sort_unchecked(_Mid, _Last, _Pred); + + for (_Diff _Chunk = _ISORT_MAX; _Chunk < _Count; _Chunk *= 2) + { + _Chunked_merge_unchecked(_First, _Last, _Tempbuf._Init(), + _Chunk, _Count, _Pred); + _Chunked_merge_unchecked(_Tempbuf._First(), _Tempbuf._Last(), _First, + _Chunk *= 2, _Count, _Pred); + } + } + +template inline + void _Stable_sort_unchecked1(_BidIt _First, _BidIt _Last, _Diff _Count, + _Temp_iterator<_Ty>& _Tempbuf, _Pr& _Pred) + { + if (_Count <= _ISORT_MAX) + _Insertion_sort_unchecked(_First, _Last, _Pred); + else + { + _Diff _Count2 = (_Count + 1) / 2; + _BidIt _Mid = _First; + ::std:: advance(_Mid, _Count2); + + if (_Count2 <= _Tempbuf._Maxlen()) + { + _Buffered_merge_sort_unchecked(_First, _Mid, _Count2, _Tempbuf, _Pred); + _Buffered_merge_sort_unchecked(_Mid, _Last, _Count - _Count2, + _Tempbuf, _Pred); + } + else + { + _Stable_sort_unchecked1(_First, _Mid, _Count2, _Tempbuf, _Pred); + _Stable_sort_unchecked1(_Mid, _Last, _Count - _Count2, _Tempbuf, _Pred); + } + + _Buffered_merge_unchecked(_First, _Mid, _Last, + _Count2, _Count - _Count2, _Tempbuf, _Pred); + } + } + +template inline + void _Stable_sort_unchecked(_BidIt _First, _BidIt _Last, _Pr& _Pred) + { + if (_First != _Last) + { + _Iter_diff_t<_BidIt> _Count = ::std:: distance(_First, _Last); + _Temp_iterator<_Iter_value_t<_BidIt>> _Tempbuf((_Count + 1) / 2); + _Stable_sort_unchecked1(_First, _Last, _Count, _Tempbuf, _Pred); + } + } + +template inline + void stable_sort(_BidIt _First, _BidIt _Last, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2899); + _Stable_sort_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred); + } + + +template inline + void stable_sort(_BidIt _First, _BidIt _Last) + { + ::std:: stable_sort(_First, _Last, less<>()); + } + + +template inline + void _Partial_sort_unchecked(_RanIt _First, _RanIt _Mid, _RanIt _Last, + _Pr& _Pred) + { + if (_First == _Mid) + return; + _Make_heap_unchecked(_First, _Mid, _Pred); + for (_RanIt _Next = _Mid; _Next < _Last; ++_Next) + if (_Debug_lt_pred(_Pred, *_Next, *_First, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2920)) + { + _Iter_value_t<_RanIt> _Val = ::std:: move(*_Next); + _Pop_heap_hole_unchecked(_First, _Mid, _Next, ::std:: move(_Val), _Pred); + } + _Sort_heap_unchecked(_First, _Mid, _Pred); + } + +template inline + void partial_sort(_RanIt _First, _RanIt _Mid, _RanIt _Last, _Pr _Pred) + { + _Debug_range(_First, _Mid, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2932); + _Debug_range(_Mid, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2933); + _Debug_pointer_if(2 <= _Last - _First, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2934); + _Partial_sort_unchecked( + _Unchecked(_First), _Unchecked(_Mid), _Unchecked(_Last), _Pred); + } + + +template inline + void partial_sort(_RanIt _First, _RanIt _Mid, _RanIt _Last) + { + ::std:: partial_sort(_First, _Mid, _Last, less<>()); + } + + +template inline + _RanIt _Partial_sort_copy_unchecked(_InIt _First1, _InIt _Last1, + _RanIt _First2, _RanIt _Last2, _Pr& _Pred) + { + _RanIt _Mid2 = _First2; + if (_First1 != _Last1 && _First2 != _Last2) + { + for (; _First1 != _Last1 && _Mid2 != _Last2; ++_First1, (void)++_Mid2) + *_Mid2 = *_First1; + _Make_heap_unchecked(_First2, _Mid2, _Pred); + + for (; _First1 != _Last1; ++_First1) + if (_Debug_lt_pred(_Pred, *_First1, *_First2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2961)) + _Pop_heap_hole_by_index(_First2, _Iter_diff_t<_RanIt>(0), _Iter_diff_t<_RanIt>(_Mid2 - _First2), + _Iter_value_t<_InIt>(*_First1), _Pred); + + _Sort_heap_unchecked(_First2, _Mid2, _Pred); + } + + return (_Mid2); + } + +template inline + _RanIt partial_sort_copy(_InIt _First1, _InIt _Last1, + _RanIt _First2, _RanIt _Last2, _Pr _Pred) + { + _Debug_range(_First1, _Last1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2977); + _Debug_range(_First2, _Last2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 2978); + return (_Rechecked(_First2, + _Partial_sort_copy_unchecked( + _Unchecked(_First1), _Unchecked(_Last1), + _Unchecked(_First2), _Unchecked(_Last2), _Pred))); + } + + +template inline + _RanIt partial_sort_copy(_InIt _First1, _InIt _Last1, + _RanIt _First2, _RanIt _Last2) + { + return (::std:: partial_sort_copy(_First1, _Last1, _First2, _Last2, + less<>())); + } + + +template inline + void _Nth_element_unchecked(_RanIt _First, _RanIt _Nth, _RanIt _Last, _Pr& _Pred) + { + if (_Nth == _Last) + return; + + for (; _ISORT_MAX < _Last - _First; ) + { + pair<_RanIt, _RanIt> _Mid = + _Partition_by_median_guess_unchecked(_First, _Last, _Pred); + + if (_Mid.second <= _Nth) + _First = _Mid.second; + else if (_Mid.first <= _Nth) + return; + else + _Last = _Mid.first; + } + + _Insertion_sort_unchecked(_First, _Last, _Pred); + } + +template inline + void nth_element(_RanIt _First, _RanIt _Nth, _RanIt _Last, _Pr _Pred) + { + _Debug_range(_First, _Nth, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3023); + _Debug_range(_Nth, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3024); + _Debug_pointer_if(2 <= _Last - _First, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3025); + _Nth_element_unchecked( + _Unchecked(_First), _Unchecked(_Nth), _Unchecked(_Last), _Pred); + } + + +template inline + void nth_element(_RanIt _First, _RanIt _Nth, _RanIt _Last) + { + ::std:: nth_element(_First, _Nth, _Last, less<>()); + } + + +template inline + bool _Includes_unchecked(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _Pr& _Pred) + { + for (; _First1 != _Last1 && _First2 != _Last2; ) + if (_Debug_lt_pred(_Pred, *_First2, *_First1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3045)) + return (false); + else if (_Pred(*_First1, *_First2)) + ++_First1; + else + { + ++_First1; + ++_First2; + } + + return (_First2 == _Last2); + } + +template inline + bool includes(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _Pr _Pred) + { + _Debug_order(_First1, _Last1, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3064); + _Debug_order(_First2, _Last2, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3065); + return (_Includes_unchecked(_Unchecked(_First1), _Unchecked(_Last1), + _Unchecked(_First2), _Unchecked(_Last2), _Pred)); + } + + +template inline + bool includes(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2) + { + return (::std:: includes(_First1, _Last1, _First2, _Last2, + less<>())); + } + + +template inline + _OutIt _Set_union_no_deprecate1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr& _Pred) + { + for (; _First1 != _Last1 && _First2 != _Last2; ) + if (_Debug_lt_pred(_Pred, *_First1, *_First2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3089)) + { + *_Dest++ = *_First1; + ++_First1; + } + else if (_Pred(*_First2, *_First1)) + { + *_Dest++ = *_First2; + ++_First2; + } + else + { + *_Dest++ = *_First1; + ++_First1; + ++_First2; + } + _Dest = _Copy_no_deprecate(_First1, _Last1, _Dest); + return (_Copy_no_deprecate(_First2, _Last2, _Dest)); + } + +template inline + _OutIt _Set_union_no_deprecate(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr& _Pred) + { + _Debug_order(_First1, _Last1, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3116); + _Debug_order(_First2, _Last2, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3117); + _Debug_pointer_if(_First1 != _Last1 || _First2 != _Last2, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3118); + return (_Rechecked(_Dest, + _Set_union_no_deprecate1(_Unchecked(_First1), _Unchecked(_Last1), + _Unchecked(_First2), _Unchecked(_Last2), + _Unchecked_idl0(_Dest), _Pred))); + } + +template inline + _OutIt set_union(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "set_union" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Set_union_no_deprecate(_First1, _Last1, _First2, _Last2, _Dest, _Pred)); + } + + +template inline + _OutTy *set_union(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _OutTy (&_Dest)[_OutSize], _Pr _Pred) + { + return (_Unchecked( + _Set_union_no_deprecate(_First1, _Last1, + _First2, _Last2, + _Array_iterator<_OutTy, _OutSize>(_Dest), _Pred))); + } + + + +template inline + _OutIt set_union(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest) + { + return (::std:: set_union(_First1, _Last1, _First2, _Last2, _Dest, + less<>())); + } + + +template inline + _OutTy *set_union(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _OutTy (&_Dest)[_OutSize]) + { + return (::std:: set_union(_First1, _Last1, _First2, _Last2, _Dest, + less<>())); + } + + + +template inline + _OutIt _Set_intersection_no_deprecate1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr& _Pred) + { + for (; _First1 != _Last1 && _First2 != _Last2; ) + if (_Debug_lt_pred(_Pred, *_First1, *_First2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3185)) + ++_First1; + else if (_Pred(*_First2, *_First1)) + ++_First2; + else + { + _Debug_pointer(_Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3191); + *_Dest++ = *_First1++; + ++_First2; + } + + return (_Dest); + } + +template inline + _OutIt _Set_intersection_no_deprecate(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr& _Pred) + { + _Debug_order(_First1, _Last1, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3206); + _Debug_order(_First2, _Last2, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3207); + return (_Rechecked(_Dest, + _Set_intersection_no_deprecate1(_Unchecked(_First1), _Unchecked(_Last1), + _Unchecked(_First2), _Unchecked(_Last2), + _Unchecked_idl0(_Dest), _Pred))); + } + +template inline + _OutIt set_intersection(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest, _Pr _Pred) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "set_intersection" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Set_intersection_no_deprecate(_First1, _Last1, _First2, _Last2, _Dest, _Pred)); + } + + +template inline + _OutTy *set_intersection(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _OutTy (&_Dest)[_OutSize], _Pr _Pred) + { + return (_Unchecked( + _Set_intersection_no_deprecate(_First1, _Last1, + _First2, _Last2, + _Array_iterator<_OutTy, _OutSize>(_Dest), _Pred))); + } + + + +template inline + _OutIt set_intersection(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _OutIt _Dest) + { + return (::std:: set_intersection(_First1, _Last1, _First2, _Last2, _Dest, + less<>())); + } + + +template inline + _OutTy *set_intersection(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, _OutTy (&_Dest)[_OutSize]) + { + return (::std:: set_intersection(_First1, _Last1, _First2, _Last2, _Dest, + less<>())); + } + + + +template inline + _OutIt _Set_difference_no_deprecate1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutIt _Dest, _Pr& _Pred) + { + for (; _First1 != _Last1 && _First2 != _Last2; ) + if (_Debug_lt_pred(_Pred, *_First1, *_First2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3275)) + { + _Debug_pointer(_Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3277); + *_Dest++ = *_First1; + ++_First1; + } + else if (_Pred(*_First2, *_First1)) + ++_First2; + else + { + ++_First1; + ++_First2; + } + + return (_Copy_no_deprecate(_First1, _Last1, _Dest)); + } + +template inline + _OutIt _Set_difference_no_deprecate(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutIt _Dest, _Pr& _Pred) + { + _Debug_order(_First1, _Last1, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3300); + _Debug_order(_First2, _Last2, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3301); + return (_Rechecked(_Dest, + _Set_difference_no_deprecate1(_Unchecked(_First1), _Unchecked(_Last1), + _Unchecked(_First2), _Unchecked(_Last2), + _Unchecked_idl0(_Dest), _Pred))); + } + +template inline + _OutIt set_difference(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutIt _Dest, _Pr _Pred) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "set_difference" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Set_difference_no_deprecate(_First1, _Last1, _First2, _Last2, _Dest, _Pred)); + } + + +template inline + _OutTy *set_difference(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutTy (&_Dest)[_OutSize], _Pr _Pred) + { + return (_Unchecked( + _Set_difference_no_deprecate(_First1, _Last1, + _First2, _Last2, + _Array_iterator<_OutTy, _OutSize>(_Dest), _Pred))); + } + + + +template inline + _OutIt set_difference(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutIt _Dest) + { + return (::std:: set_difference(_First1, _Last1, _First2, _Last2, _Dest, + less<>())); + } + + +template inline + _OutTy *set_difference(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutTy (&_Dest)[_OutSize]) + { + return (::std:: set_difference(_First1, _Last1, _First2, _Last2, _Dest, + less<>())); + } + + + +template inline + _OutIt _Set_symmetric_difference_no_deprecate1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutIt _Dest, _Pr& _Pred) + { + for (; _First1 != _Last1 && _First2 != _Last2; ) + if (_Debug_lt_pred(_Pred, *_First1, *_First2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3373)) + { + _Debug_pointer(_Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3375); + *_Dest++ = *_First1; + ++_First1; + } + else if (_Pred(*_First2, *_First1)) + { + _Debug_pointer(_Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3381); + *_Dest++ = *_First2; + ++_First2; + } + else + { + ++_First1; + ++_First2; + } + _Dest = _Copy_no_deprecate(_First1, _Last1, _Dest); + return (_Copy_no_deprecate(_First2, _Last2, _Dest)); + } + +template inline + _OutIt _Set_symmetric_difference_no_deprecate(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutIt _Dest, _Pr& _Pred) + { + _Debug_order(_First1, _Last1, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3402); + _Debug_order(_First2, _Last2, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3403); + return (_Rechecked(_Dest, + _Set_symmetric_difference_no_deprecate1( + _Unchecked(_First1), _Unchecked(_Last1), + _Unchecked(_First2), _Unchecked(_Last2), + _Unchecked_idl0(_Dest), _Pred))); + } + +template inline + _OutIt set_symmetric_difference(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutIt _Dest, _Pr _Pred) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "set_symmetric_difference" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Set_symmetric_difference_no_deprecate( + _First1, _Last1, _First2, _Last2, _Dest, _Pred)); + } + + +template inline + _OutTy *set_symmetric_difference(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutTy (&_Dest)[_OutSize], _Pr _Pred) + { + return (_Unchecked( + _Set_symmetric_difference_no_deprecate(_First1, _Last1, + _First2, _Last2, + _Array_iterator<_OutTy, _OutSize>(_Dest), _Pred))); + } + + + +template inline + _OutIt set_symmetric_difference(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutIt _Dest) + { + return (::std:: set_symmetric_difference(_First1, _Last1, _First2, _Last2, + _Dest, less<>())); + } + + +template inline + _OutTy *set_symmetric_difference(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _InIt2 _Last2, + _OutTy (&_Dest)[_OutSize]) + { + return (::std:: set_symmetric_difference(_First1, _Last1, _First2, _Last2, + _Dest, less<>())); + } + + + +template inline + _FwdIt _Max_element_unchecked(_FwdIt _First, _FwdIt _Last, _Pr& _Pred) + { + _FwdIt _Found = _First; + if (_First != _Last) + for (; ++_First != _Last; ) + if (_Debug_lt_pred(_Pred, *_Found, *_First, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3475)) + _Found = _First; + return (_Found); + } + +template inline + _FwdIt max_element(_FwdIt _First, _FwdIt _Last, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3484); + return (_Rechecked(_First, + _Max_element_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred))); + } + + +template inline + _FwdIt max_element(_FwdIt _First, _FwdIt _Last) + { + return (::std:: max_element(_First, _Last, less<>())); + } + + +template inline + _FwdIt _Min_element_unchecked(_FwdIt _First, _FwdIt _Last, _Pr& _Pred) + { + _FwdIt _Found = _First; + if (_First != _Last) + for (; ++_First != _Last; ) + if (_Debug_lt_pred(_Pred, *_First, *_Found, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3504)) + _Found = _First; + return (_Found); + } + +template inline + _FwdIt min_element(_FwdIt _First, _FwdIt _Last, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3513); + return (_Rechecked(_First, + _Min_element_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred))); + } + + +template inline + _FwdIt min_element(_FwdIt _First, _FwdIt _Last) + { + return (::std:: min_element(_First, _Last, less<>())); + } + + +template inline + pair<_FwdIt, _FwdIt> + _Minmax_element_unchecked(_FwdIt _First, _FwdIt _Last, _Pr& _Pred) + { + pair<_FwdIt, _FwdIt> _Found(_First, _First); + + if (_First != _Last) + for (; ++_First != _Last; ) + { + _FwdIt _Next = _First; + if (++_Next == _Last) + { + if (_Debug_lt_pred(_Pred, *_First, *_Found.first, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3539)) + _Found.first = _First; + else if (!_Debug_lt_pred(_Pred, *_First, *_Found.second, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3541)) + _Found.second = _First; + } + else + { + if (_Debug_lt_pred(_Pred, *_Next, *_First, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3546)) + { + if (_Debug_lt_pred(_Pred, *_Next, *_Found.first, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3548)) + _Found.first = _Next; + if (!_Debug_lt_pred(_Pred, *_First, *_Found.second, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3550)) + _Found.second = _First; + } + else + { + if (_Debug_lt_pred(_Pred, *_First, *_Found.first, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3555)) + _Found.first = _First; + if (!_Debug_lt_pred(_Pred, *_Next, *_Found.second, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3557)) + _Found.second = _Next; + } + _First = _Next; + } + } + + return (_Found); + } + +template inline + pair<_FwdIt, _FwdIt> + minmax_element(_FwdIt _First, _FwdIt _Last, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3572); + return (_Rechecked_both(_First, _Last, + _Minmax_element_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred))); + } + + +template inline + pair<_FwdIt, _FwdIt> + minmax_element(_FwdIt _First, _FwdIt _Last) + { + return (::std:: minmax_element(_First, _Last, less<>())); + } + + +template inline + constexpr const _Ty& (max)(const _Ty& _Left, const _Ty& _Right, + _Pr _Pred) + noexcept(noexcept(_Debug_lt_pred(_Pred, _Left, _Right, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3590))) + { + return (_Debug_lt_pred(_Pred, _Left, _Right, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3592) ? _Right : _Left); + } + +template inline + + _Ty (max)(::std:: initializer_list<_Ty> _Ilist, _Pr _Pred) + { + const _Ty *_Res = _Max_element_unchecked(_Ilist.begin(), _Ilist.end(), _Pred); + return (*_Res); + } + + +template inline + + + + constexpr const _Ty& (max)(const _Ty& _Left, const _Ty& _Right) + noexcept(noexcept(_Debug_lt(_Left, _Right, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3610))) + { + return (_Debug_lt(_Left, _Right, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3612) ? _Right : _Left); + } + +template inline + + _Ty (max)(::std:: initializer_list<_Ty> _Ilist) + { + return ((::std:: max)(_Ilist, less<>())); + } + + +template inline + constexpr const _Ty& (min)(const _Ty& _Left, const _Ty& _Right, + _Pr _Pred) + noexcept(noexcept(_Debug_lt_pred(_Pred, _Right, _Left, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3627))) + { + return (_Debug_lt_pred(_Pred, _Right, _Left, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3629) ? _Right : _Left); + } + +template inline + + _Ty (min)(::std:: initializer_list<_Ty> _Ilist, _Pr _Pred) + { + const _Ty *_Res = _Min_element_unchecked(_Ilist.begin(), _Ilist.end(), _Pred); + return (*_Res); + } + + +template inline + + + + constexpr const _Ty& (min)(const _Ty& _Left, const _Ty& _Right) + noexcept(noexcept(_Debug_lt(_Right, _Left, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3647))) + { + return (_Debug_lt(_Right, _Left, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3649) ? _Right : _Left); + } + +template inline + + _Ty (min)(::std:: initializer_list<_Ty> _Ilist) + { + return ((::std:: min)(_Ilist, less<>())); + } + + + +template inline + constexpr pair + minmax(const _Ty& _Left, const _Ty& _Right, _Pr _Pred) + { + return (_Pred(_Right, _Left) + ? pair(_Right, _Left) + : pair(_Left, _Right)); + } + +template inline + + pair<_Ty, _Ty> minmax(::std:: initializer_list<_Ty> _Ilist, + _Pr _Pred) + { + pair _Res = _Minmax_element_unchecked( + _Ilist.begin(), _Ilist.end(), _Pred); + return (pair<_Ty, _Ty>(*_Res.first, *_Res.second)); + } + + +template inline + constexpr pair + minmax(const _Ty& _Left, const _Ty& _Right) + { + return (_Right < _Left + ? pair(_Right, _Left) + : pair(_Left, _Right)); + } + +template inline + + pair<_Ty, _Ty> minmax(::std:: initializer_list<_Ty> _Ilist) + { + return (::std:: minmax(_Ilist, less<>())); + } + + +template inline + bool _Next_permutation_unchecked(_BidIt _First, _BidIt _Last, _Pr& _Pred) + { + _BidIt _Next = _Last; + if (_First == _Last || _First == --_Next) + return (false); + + for (; ; ) + { + _BidIt _Next1 = _Next; + if (_Debug_lt_pred(_Pred, *--_Next, *_Next1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3711)) + { + _BidIt _Mid = _Last; + for (; !_Debug_lt_pred(_Pred, *_Next, *--_Mid, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3714); ) + ; + ::std:: iter_swap(_Next, _Mid); + _Reverse_unchecked(_Next1, _Last); + return (true); + } + + if (_Next == _First) + { + _Reverse_unchecked(_First, _Last); + return (false); + } + } + } + +template inline + bool next_permutation(_BidIt _First, _BidIt _Last, _Pr _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3733); + return (_Next_permutation_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred)); + } + + +template inline + bool next_permutation(_BidIt _First, _BidIt _Last) + { + return (::std:: next_permutation(_First, _Last, less<>())); + } + + +template inline + bool _Prev_permutation_unchecked(_BidIt _First, _BidIt _Last, _Pr& _Pred) + { + _BidIt _Next = _Last; + if (_First == _Last || _First == --_Next) + return (false); + + for (; ; ) + { + _BidIt _Next1 = _Next; + if (_Debug_lt_pred(_Pred, *_Next1, *--_Next, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3756)) + { + _BidIt _Mid = _Last; + for (; !_Debug_lt_pred(_Pred, *--_Mid, *_Next, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3759); ) + ; + ::std:: iter_swap(_Next, _Mid); + _Reverse_unchecked(_Next1, _Last); + return (true); + } + + if (_Next == _First) + { + _Reverse_unchecked(_First, _Last); + return (false); + } + } + } + +template inline + bool prev_permutation(_BidIt _First, _BidIt _Last, _Pr _Pred) + { + _Debug_range_ptr(_First, _Last, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3778); + return (_Prev_permutation_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred)); + } + + +template inline + bool prev_permutation(_BidIt _First, _BidIt _Last) + { + return (::std:: prev_permutation(_First, _Last, less<>())); + } + + +template inline + _RanIt _Is_heap_until_unchecked(_RanIt _First, _RanIt _Last, _Pr& _Pred) + { + _Iter_diff_t<_RanIt> _Size = _Last - _First; + + if (2 <= _Size) + for (_Iter_diff_t<_RanIt> _Off = 0; ++_Off < _Size; ) + if (_Debug_lt_pred(_Pred, *(_First + (_Off - 1) / 2), *(_First + _Off), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3799)) + + return (_First + _Off); + return (_Last); + } + +template inline + _RanIt is_heap_until(_RanIt _First, _RanIt _Last, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3808); + return (_Rechecked(_First, + _Is_heap_until_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred))); + } + +template inline + bool is_heap(_RanIt _First, _RanIt _Last, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3817); + return (_Is_heap_until_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred) == _Unchecked(_Last)); + } + + +template inline + _RanIt is_heap_until(_RanIt _First, _RanIt _Last) + { + return (::std:: is_heap_until(_First, _Last, less<>())); + } + +template inline + bool is_heap(_RanIt _First, _RanIt _Last) + { + return (::std:: is_heap(_First, _Last, less<>())); + } + + +template inline + _FwdIt _Is_sorted_until_unchecked(_FwdIt _First, _FwdIt _Last, _Pr& _Pred) + { + if (_First != _Last) + for (_FwdIt _Next = _First; ++_Next != _Last; ++_First) + if (_Debug_lt_pred(_Pred, *_Next, *_First, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3841)) + return (_Next); + return (_Last); + } + +template inline + _FwdIt is_sorted_until(_FwdIt _First, _FwdIt _Last, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3850); + return (_Rechecked(_First, + _Is_sorted_until_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred))); + } + +template inline + bool is_sorted(_FwdIt _First, _FwdIt _Last, _Pr _Pred) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm", 3859); + return (_Is_sorted_until_unchecked(_Unchecked(_First), _Unchecked(_Last), _Pred) == _Unchecked(_Last)); + } + + +template inline + _FwdIt is_sorted_until(_FwdIt _First, _FwdIt _Last) + { + return (::std:: is_sorted_until(_First, _Last, less<>())); + } + +template inline + bool is_sorted(_FwdIt _First, _FwdIt _Last) + { + return (::std:: is_sorted(_First, _Last, less<>())); + } +# 3908 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\algorithm" 3 +} + +#pragma warning(pop) +#pragma pack(pop) +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\array" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\istream" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ostream" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ios" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum" 1 3 +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\streambuf" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xiosbase" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale" 1 3 +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocinfo" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocinfo.h" 1 3 + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\locale.h" 1 3 +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\locale.h" 3 +#pragma pack(push, 8) +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\locale.h" 3 + extern "C" { +# 29 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\locale.h" 3 +struct lconv +{ + char* decimal_point; + char* thousands_sep; + char* grouping; + char* int_curr_symbol; + char* currency_symbol; + char* mon_decimal_point; + char* mon_thousands_sep; + char* mon_grouping; + char* positive_sign; + char* negative_sign; + char int_frac_digits; + char frac_digits; + char p_cs_precedes; + char p_sep_by_space; + char n_cs_precedes; + char n_sep_by_space; + char p_sign_posn; + char n_sign_posn; + wchar_t* _W_decimal_point; + wchar_t* _W_thousands_sep; + wchar_t* _W_int_curr_symbol; + wchar_t* _W_currency_symbol; + wchar_t* _W_mon_decimal_point; + wchar_t* _W_mon_thousands_sep; + wchar_t* _W_positive_sign; + wchar_t* _W_negative_sign; +}; + +struct tm; +# 83 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\locale.h" 3 + void __cdecl _lock_locales(void); + void __cdecl _unlock_locales(void); + + + int __cdecl _configthreadlocale( + int _Flag + ); + + + char* __cdecl setlocale( + int _Category, + char const* _Locale + ); + + + struct lconv* __cdecl localeconv(void); + + + _locale_t __cdecl _get_current_locale(void); + + + _locale_t __cdecl _create_locale( + int _Category, + char const* _Locale + ); + + void __cdecl _free_locale( + _locale_t _Locale + ); + + + + wchar_t* __cdecl _wsetlocale( + int _Category, + wchar_t const* _Locale + ); + + + _locale_t __cdecl _wcreate_locale( + int _Category, + wchar_t const* _Locale + ); + + + + wchar_t** __cdecl ___lc_locale_name_func(void); + unsigned int __cdecl ___lc_codepage_func (void); + unsigned int __cdecl ___lc_collate_cp_func (void); + + + + + + + + char* __cdecl _Getdays(void); + + + + char* __cdecl _Getmonths(void); + + void* __cdecl _Gettnames(void); + + + + wchar_t* __cdecl _W_Getdays(void); + + + + wchar_t* __cdecl _W_Getmonths(void); + + void* __cdecl _W_Gettnames(void); + + + size_t __cdecl _Strftime( + char* _Buffer, + size_t _Max_size, + char const* _Format, + struct tm const* _Timeptr, + void* _Lc_time_arg); + + + size_t __cdecl _Wcsftime( + wchar_t* _Buffer, + size_t _Max_size, + wchar_t const* _Format, + struct tm const* _Timeptr, + void* _Lc_time_arg + ); + + + + +} +# 176 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\locale.h" 3 +#pragma pack(pop) +# 7 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocinfo.h" 2 3 + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + + + + +extern "C" { +# 56 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocinfo.h" 3 +typedef struct _Collvec + { + unsigned int _Page; + wchar_t *_LocaleName; + } _Collvec; + +typedef struct _Ctypevec + { + unsigned int _Page; + const short *_Table; + int _Delfl; + wchar_t *_LocaleName; + } _Ctypevec; + +typedef struct _Cvtvec + { + unsigned int _Page; + unsigned int _Mbcurmax; + int _Isclocale; + unsigned char _Isleadbyte[32]; + } _Cvtvec; + + + _Collvec __cdecl _Getcoll(void); + _Ctypevec __cdecl _Getctype(void); + _Cvtvec __cdecl _Getcvt(void); + int __cdecl _Getdateorder(void); +# 93 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocinfo.h" 3 + int __cdecl _Mbrtowc( wchar_t *, const char *, size_t, + mbstate_t *, const _Cvtvec *); + + + float __cdecl _Stof(const char *, + char **, long); + double __cdecl _Stod(const char *, + char **, long); + long double __cdecl _Stold(const char *, + char **, long); + + int __cdecl _Strcoll(const char *, const char *, + const char *, const char *, const _Collvec *); + size_t __cdecl _Strxfrm( + char *_String1, + char *_End1, const char *, const char *, const _Collvec *); + int __cdecl _Tolower(int, const _Ctypevec *); + int __cdecl _Toupper(int, const _Ctypevec *); + int __cdecl _Wcrtomb( char *, wchar_t, mbstate_t *, + const _Cvtvec *); + int __cdecl _Wcscoll(const wchar_t *, const wchar_t *, + const wchar_t *, const wchar_t *, const _Collvec *); + size_t __cdecl _Wcsxfrm( + wchar_t *_String1, + wchar_t *_End1, const wchar_t *, const wchar_t *, const _Collvec *); + + short __cdecl _Getwctype(wchar_t, const _Ctypevec *); + const wchar_t *__cdecl _Getwctypes(const wchar_t *, + const wchar_t *, short *, const _Ctypevec *); + wchar_t __cdecl _Towlower(wchar_t, const _Ctypevec *); + wchar_t __cdecl _Towupper(wchar_t, const _Ctypevec *); + + + +} + + + + +extern "C" { + + + char *__cdecl _Getdays(void); + + + + char *__cdecl _Getmonths(void); + + void *__cdecl _Gettnames(void); + + + size_t __cdecl _Strftime( char *, + size_t _Maxsize, const char *, const struct tm *, + void *); + + + + wchar_t *__cdecl _W_Getdays(void); + + + + wchar_t *__cdecl _W_Getmonths(void); + + void *__cdecl _W_Gettnames(void); + + + size_t __cdecl _Wcsftime( wchar_t *, + size_t _Maxsize, const wchar_t *, const struct tm *, + void *); +} +# 172 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocinfo.h" 3 + _locale_t __cdecl _GetLocaleForCP(unsigned int); + + + +#pragma warning(pop) +#pragma pack(pop) +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocinfo" 2 3 + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4412) + +namespace std { + +class _Timevec + { +public: + _Timevec(void *_Ptr = 0) + : _Timeptr(_Ptr) + { + } + + _Timevec(const _Timevec& _Right) + { + *this = _Right; + } + + ~_Timevec() noexcept + { + free(_Timeptr); + } + + _Timevec& operator=(const _Timevec& _Right) + { + _Timeptr = _Right._Timeptr; + ((_Timevec *)&_Right)->_Timeptr = 0; + return (*this); + } + + void * _Getptr() const + { + return (_Timeptr); + } + +private: + void *_Timeptr; + }; + + +class _Locinfo + { +public: + typedef ::_Collvec _Collvec; + typedef ::_Ctypevec _Ctypevec; + typedef ::_Cvtvec _Cvtvec; + typedef ::std:: _Timevec _Timevec; + + static void __cdecl _Locinfo_ctor( + _Locinfo *, const char *); + static void __cdecl _Locinfo_ctor( + _Locinfo *, int, const char *); + static void __cdecl _Locinfo_dtor( + _Locinfo *); + static _Locinfo& __cdecl _Locinfo_Addcats( + _Locinfo *, int, const char *); + + _Locinfo(const char *_Pch = "C") + + : _Lock(0) + + + { + if (_Pch == 0) + throw runtime_error("bad locale name"); + _Locinfo_ctor(this, _Pch); + } + + _Locinfo(int _Cat, const char *_Pch) + + : _Lock(0) + + + { + if (_Pch == 0) + throw runtime_error("bad locale name"); + _Locinfo_ctor(this, _Cat, _Pch); + } + + ~_Locinfo() noexcept + { + _Locinfo_dtor(this); + } + + _Locinfo& _Addcats(int _Cat, const char *_Pch) + { + if (_Pch == 0) + throw runtime_error("bad locale name"); + return (_Locinfo_Addcats(this, _Cat, _Pch)); + } + + const char * _Getname() const + { + return (_Newlocname._C_str()); + } + + _Collvec _Getcoll() const + { + return (::_Getcoll()); + } + + _Ctypevec _Getctype() const + { + return (::_Getctype()); + } + + _Cvtvec _Getcvt() const + { + return (::_Getcvt()); + } + + const lconv * _Getlconv() const + { + return (localeconv()); + } + + _Timevec _Gettnames() const + { + return (_Timevec(::_Gettnames())); + } + + const char * _Getdays() const + { + const char *_Ptr = ::_Getdays(); + + if (_Ptr != 0) + { + ((_Locinfo *)this)->_Days = _Ptr; + free((void *)_Ptr); + } + return (!_Days._Empty() ? _Days._C_str() + : ":Sun:Sunday:Mon:Monday:Tue:Tuesday:Wed:Wednesday" + ":Thu:Thursday:Fri:Friday:Sat:Saturday"); + } + + const char * _Getmonths() const + { + const char *_Ptr = ::_Getmonths(); + + if (_Ptr != 0) + { + ((_Locinfo *)this)->_Months = _Ptr; + free((void *)_Ptr); + } + return (!_Months._Empty() ? _Months._C_str() + : ":Jan:January:Feb:February:Mar:March" + ":Apr:April:May:May:Jun:June" + ":Jul:July:Aug:August:Sep:September" + ":Oct:October:Nov:November:Dec:December"); + } + + const char * _Getfalse() const + { + return ("false"); + } + + const char * _Gettrue() const + { + return ("true"); + } + + int _Getdateorder() const + { + return (::_Getdateorder()); + } + + _Timevec _W_Gettnames() const + { + return (_Timevec(::_W_Gettnames())); + } + + const unsigned short * _W_Getdays() const + { + const wchar_t *_Ptr = ::_W_Getdays(); + + if (_Ptr != 0) + { + ((_Locinfo *)this)->_W_Days = _Ptr; + free((void *)_Ptr); + } + return ((const unsigned short *)(!_W_Days._Empty() + ? _W_Days._C_str() + : L":Sun:Sunday:Mon:Monday:Tue:Tuesday:Wed:Wednesday" + L":Thu:Thursday:Fri:Friday:Sat:Saturday")); + } + + const unsigned short * _W_Getmonths() const + { + const wchar_t *_Ptr = ::_W_Getmonths(); + + if (_Ptr != 0) + { + ((_Locinfo *)this)->_W_Months = _Ptr; + free((void *)_Ptr); + } + return ((const unsigned short *)(!_W_Months._Empty() + ? _W_Months._C_str() + : L":Jan:January:Feb:February:Mar:March" + L":Apr:April:May:May:Jun:June" + L":Jul:July:Aug:August:Sep:September" + L":Oct:October:Nov:November:Dec:December")); + } + + _Locinfo(const _Locinfo&) = delete; + _Locinfo& operator=(const _Locinfo&) = delete; + +private: + + + + + _Lockit _Lock; + + + _Yarn _Days; + _Yarn _Months; + _Yarn _W_Days; + _Yarn _W_Months; + _Yarn _Oldlocname; + _Yarn _Newlocname; + }; + + +template inline + int __cdecl _LStrcoll(const _Elem *_First1, const _Elem *_Last1, + const _Elem *_First2, const _Elem *_Last2, + const _Locinfo::_Collvec *) + { + for (; _First1 != _Last1 && _First2 != _Last2; ++_First1, ++_First2) + if (*_First1 < *_First2) + return (-1); + else if (*_First2 < *_First1) + return (+1); + return (_First2 != _Last2 ? -1 : _First1 != _Last1 ? +1 : 0); + } + +template<> inline + int __cdecl _LStrcoll(const char *_First1, const char *_Last1, + const char *_First2, const char *_Last2, + const _Locinfo::_Collvec *_Vector) + { + return (_Strcoll(_First1, _Last1, _First2, _Last2, _Vector)); + } + +template<> inline + int __cdecl _LStrcoll(const wchar_t *_First1, const wchar_t *_Last1, + const wchar_t *_First2, const wchar_t *_Last2, + const _Locinfo::_Collvec *_Vector) + { + return (_Wcscoll(_First1, _Last1, _First2, _Last2, _Vector)); + } + + +template inline + size_t __cdecl _LStrxfrm(_Elem *_First1, _Elem *_Last1, + const _Elem *_First2, const _Elem *_Last2, + const _Locinfo::_Collvec *) + { + size_t _Count = _Last2 - _First2; + if (_Count <= (size_t)(_Last1 - _First1)) + ::memcpy_s((_First1), ((_Last1 - _First1) * sizeof (_Elem)), (_First2), (_Count * sizeof (_Elem))); + + return (_Count); + } + +template<> inline + size_t __cdecl _LStrxfrm( + char *_First1, char *_Last1, + const char *_First2, const char *_Last2, + const _Locinfo::_Collvec *_Vector) + { + return (_Strxfrm(_First1, _Last1, _First2, _Last2, _Vector)); + } + +template<> inline + size_t __cdecl _LStrxfrm( + wchar_t *_First1, wchar_t *_Last1, + const wchar_t *_First2, const wchar_t *_Last2, + const _Locinfo::_Collvec *_Vector) + { + return (_Wcsxfrm(_First1, _Last1, _First2, _Last2, _Vector)); + } +} + +#pragma warning(pop) +#pragma pack(pop) +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale" 2 3 + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xfacet" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + + + + + + +namespace std { + +class _Facet_base + { +public: + virtual ~_Facet_base() noexcept + { + } + + + virtual void _Incref() = 0; + + + virtual _Facet_base * _Decref() = 0; + }; + + + + + +void __cdecl _Facet_Register(_Facet_base *); + +} + +#pragma warning(pop) +#pragma pack(pop) +# 12 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4412 28197) + +namespace std { + +template + class _Locbase + { +public: + static const int collate = ((1 << (1)) >> 1); + static const int ctype = ((1 << (2)) >> 1); + static const int monetary = ((1 << (3)) >> 1); + static const int numeric = ((1 << (4)) >> 1); + static const int time = ((1 << (5)) >> 1); + static const int messages = ((1 << (6)) >> 1); + static const int all = (((1 << ((6 + 1))) >> 1) - 1); + static const int none = 0; + }; + +template + const int _Locbase<_Dummy>::collate; +template + const int _Locbase<_Dummy>::ctype; +template + const int _Locbase<_Dummy>::monetary; +template + const int _Locbase<_Dummy>::numeric; +template + const int _Locbase<_Dummy>::time; +template + const int _Locbase<_Dummy>::messages; +template + const int _Locbase<_Dummy>::all; +template + const int _Locbase<_Dummy>::none; + + +class locale; +template + const _Facet& __cdecl use_facet(const locale&); +template + class collate; + +struct _Crt_new_delete + { + + void * __cdecl operator new(size_t _Size) + { + void * _Ptr = operator new(_Size, nothrow); + if (!_Ptr) + _Xbad_alloc(); + return (_Ptr); + } + + void * __cdecl operator new(size_t _Size, const nothrow_t&) noexcept + { + return (_malloc_dbg(_Size > 0 ? _Size : 1, 2, "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 74)); + } + + void __cdecl operator delete(void * _Ptr) noexcept + { + :: free(_Ptr); + } + + void __cdecl operator delete(void * _Ptr, const nothrow_t&) noexcept + { + operator delete(_Ptr); + } + + void * __cdecl operator new(size_t, void *_Ptr) noexcept + { + return (_Ptr); + } + + void __cdecl operator delete(void *, void *) noexcept + { + } + + }; + +class locale + : public _Locbase, public _Crt_new_delete + { +public: + typedef int category; + + + class id + { + public: + id(size_t _Val = 0) + : _Id(_Val) + { + } + + operator size_t() + { + if (_Id == 0) + { + { ::std:: _Lockit _Lock(0); + if (_Id == 0) + _Id = ++_Id_cnt; + } + } + return (_Id); + } + + private: + size_t _Id; + + static int _Id_cnt; + + public: + id(const id&) = delete; + id& operator=(const id&) = delete; + }; + + class _Locimp; + + + class facet + : public _Facet_base, public _Crt_new_delete + { + public: + static size_t __cdecl _Getcat(const facet ** = 0, + const locale * = 0) + { + return ((size_t)(-1)); + } + + virtual void _Incref() + { + _InterlockedIncrement(reinterpret_cast(&_Myrefs)); + } + + virtual _Facet_base * _Decref() + { + if (_InterlockedDecrement(reinterpret_cast(&_Myrefs)) == 0) + return (this); + else + return (0); + } + + private: + _Atomic_counter_t _Myrefs; + + protected: + explicit facet(size_t _Initrefs = 0) + { + _Init_atomic_counter(_Myrefs, (_Atomic_integral_t)_Initrefs); + } + + virtual ~facet() noexcept + { + } + + public: + facet(const facet&) = delete; + facet& operator=(const facet&) = delete; + }; + + +#pragma warning(push) +#pragma warning(disable: 4275) + + class _Locimp + : public facet + { + protected: + ~_Locimp() noexcept + { + _Locimp_dtor(this); + } + + private: + static _Locimp *__cdecl + _New_Locimp(bool _Transparent = false); + static _Locimp *__cdecl + _New_Locimp(const _Locimp& _Right); + + static void __cdecl + _Locimp_dtor(_Locimp *); + static void __cdecl + _Locimp_Addfac(_Locimp *, facet *, size_t); + static void __cdecl + _Locimp_ctor(_Locimp *, const _Locimp&); + + friend class locale; + + _Locimp(bool _Transparent) + : locale::facet(1), _Facetvec(0), _Facetcount(0), + _Catmask(none), _Xparent(_Transparent), + _Name("*") + { + } + + _Locimp(const _Locimp& _Right) + : locale::facet(1), _Facetvec(0), _Facetcount(_Right._Facetcount), + _Catmask(_Right._Catmask), _Xparent(_Right._Xparent), + _Name(_Right._Name.c_str()) + { + _Locimp_ctor(this, _Right); + } + + void _Addfac(facet *_Pfacet, size_t _Id) + { + _Locimp_Addfac(this, _Pfacet, _Id); + } + + static _Locimp *__cdecl _Makeloc(const _Locinfo&, + category, _Locimp *, const locale *); + + static void __cdecl _Makewloc(const _Locinfo&, + category, _Locimp *, const locale *); + + + static void __cdecl _Makeushloc(const _Locinfo&, + category, _Locimp *, const locale *); + + + static void __cdecl _Makexloc(const _Locinfo&, + category, _Locimp *, const locale *); + + facet **_Facetvec; + size_t _Facetcount; + category _Catmask; + bool _Xparent; + _Yarn _Name; + + static _Locimp *_Clocptr; + +public: + _Locimp& operator=(const _Locimp&) = delete; + }; + +#pragma warning(pop) + + template + bool operator()(const basic_string<_Elem, _Traits, _Alloc>& _Left, + const basic_string<_Elem, _Traits, _Alloc>& _Right) const + { + const ::std:: collate<_Elem>& _Coll_fac = + use_facet< ::std:: collate<_Elem> >(*this); + + return (_Coll_fac.compare(_Left.c_str(), _Left.c_str() + _Left.size(), + _Right.c_str(), _Right.c_str() + _Right.size()) < 0); + } + + template + locale combine(const locale& _Loc) const + { + _Facet *_Facptr; + + try { + _Facptr = (_Facet *)&use_facet<_Facet>(_Loc); + } catch (...) { + _Xruntime_error("locale::combine facet missing"); + } + + _Locimp *_Newimp = _Locimp::_New_Locimp(*_Ptr); + _Newimp->_Addfac(_Facptr, _Facet::id); + _Newimp->_Catmask = none; + _Newimp->_Name = "*"; + return (locale(_Newimp)); + } + + template + locale(const locale& _Loc, const _Facet *_Facptr) + : _Ptr(_Locimp::_New_Locimp(*_Loc._Ptr)) + { + if (_Facptr != 0) + { + _Ptr->_Addfac((_Facet *)_Facptr, _Facet::id); + _Ptr->_Catmask = none; + _Ptr->_Name = "*"; + } + } + + locale(_Uninitialized) + { + } +# 323 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale" 3 + locale(const locale& _Right) noexcept + : _Ptr(_Right._Ptr) + { + _Ptr->_Incref(); + } + + locale() noexcept + : _Ptr(_Init(true)) + { + } + + + locale(const locale& _Loc, const locale& _Other, + category _Cat) + : _Ptr(_Locimp::_New_Locimp(*_Loc._Ptr)) + { + if (_Cat != none) + { + try { + { _Locinfo _Lobj; + _Locimp::_Makeloc(_Lobj, _Cat, _Ptr, &_Other); + _Lobj._Addcats(_Loc._Ptr->_Catmask, + _Loc.name().c_str()); + _Lobj._Addcats(_Other._Ptr->_Catmask, + _Other.name().c_str()); + _Ptr->_Catmask = _Loc._Ptr->_Catmask + | _Other._Ptr->_Catmask; + _Ptr->_Name = _Lobj._Getname(); + } + } catch (...) { + delete _Ptr->_Decref(); + throw; + } + } + } + +private: + void _Construct(const string &_Str, + category _Cat) + { + bool _Bad = false; + _Init(); + if (_Cat != none) + { + try { + { _Locinfo _Lobj(_Cat, _Str.c_str()); + if (_Badname(_Lobj)) + _Bad = true; + else + { + _Locimp::_Makeloc(_Lobj, _Cat, _Ptr, 0); + _Ptr->_Catmask = _Cat; + _Ptr->_Name = _Str.c_str(); + } + } + } catch (...) { + delete _Ptr->_Decref(); + throw; + } + } + + if (_Bad) + { + delete _Ptr->_Decref(); + _Xruntime_error("bad locale name"); + } + } + +public: + explicit locale(const char *_Locname, + category _Cat = all) + : _Ptr(_Locimp::_New_Locimp()) + { + + + if (_Locname == 0) + _Xruntime_error("bad locale name"); + _Construct(_Locname, _Cat); + } + + locale(const locale& _Loc, const char *_Locname, + category _Cat) + : _Ptr(_Locimp::_New_Locimp(*_Loc._Ptr)) + { + + + if (_Locname == 0) + _Xruntime_error("bad locale name"); + _Construct(_Locname, _Cat); + } + + explicit locale(const string& _Str, + category _Cat = all) + : _Ptr(_Locimp::_New_Locimp()) + { + _Construct(_Str, _Cat); + } + + locale(const locale& _Loc, const string& _Str, + category _Cat) + : _Ptr(_Locimp::_New_Locimp(*_Loc._Ptr)) + { + _Construct(_Str, _Cat); + } + + + ~locale() noexcept + { + if (_Ptr != 0) + delete _Ptr->_Decref(); + } + + locale& operator=(const locale& _Right) noexcept + { + if (_Ptr != _Right._Ptr) + { + delete _Ptr->_Decref(); + _Ptr = _Right._Ptr; + _Ptr->_Incref(); + } + return (*this); + } + + + string name() const + { + return (_Ptr == 0 ? string() : _Ptr->_Name.c_str()); + } + + const char *c_str() const + { + return (_Ptr == 0 ? "" : _Ptr->_Name.c_str()); + } + + const facet *_Getfacet(size_t _Id) const + { + const facet *_Facptr = _Id < _Ptr->_Facetcount + ? _Ptr->_Facetvec[_Id] : 0; + if (_Facptr != 0 || !_Ptr->_Xparent) + return (_Facptr); + else + { + locale::_Locimp *_Ptr0 = _Getgloballocale(); + return (_Id < _Ptr0->_Facetcount + ? _Ptr0->_Facetvec[_Id] + : 0); + } + } + + bool operator==(const locale& _Loc) const + { + return (_Ptr == _Loc._Ptr + || (name().compare("*") != 0 + && name().compare(_Loc.name()) == 0)); + } + + bool operator!=(const locale& _Right) const + { + return (!(*this == _Right)); + } + + static const locale& __cdecl + classic(); + + static locale __cdecl + global(const locale&); + + static locale __cdecl + empty(); + +private: + locale(_Locimp *_Ptrimp) + : _Ptr(_Ptrimp) + { + } + + static _Locimp *__cdecl + _Init(bool _Do_incref = false); + static _Locimp *__cdecl + _Getgloballocale(); + static void __cdecl + _Setgloballocale(void *); + + bool _Badname(const _Locinfo& _Lobj) + { + return (:: strcmp(_Lobj._Getname(), "*") == 0); + } + + _Locimp *_Ptr; + }; +# 535 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale" 3 +template + struct _Facetptr + { + static const locale::facet *_Psave; + }; + +template + const locale::facet *_Facetptr<_Facet>:: + _Psave = 0; + + + + + + +template inline + const _Facet& __cdecl use_facet(const locale& _Loc) + + { + + + + + + { ::std:: _Lockit _Lock(0); + const locale::facet *_Psave = + _Facetptr<_Facet>::_Psave; + + size_t _Id = _Facet::id; + const locale::facet *_Pf = _Loc._Getfacet(_Id); + + if (_Pf != 0) + ; + else if (_Psave != 0) + _Pf = _Psave; + else if (_Facet::_Getcat(&_Psave, &_Loc) == (size_t)(-1)) + + + + throw ::std:: bad_cast(); + + + + + + else + { + _Pf = _Psave; + _Facetptr<_Facet>::_Psave = _Psave; + + locale::facet *_Pfmod = (_Facet *)_Psave; + _Pfmod->_Incref(); + + + + + + _Facet_Register(_Pfmod); + + } + + return ((const _Facet&)(*_Pf)); + } + + } + + +template inline + int __cdecl _Getloctxt(_InIt& _First, _InIt& _Last, size_t _Numfields, + const _Elem *_Ptr) + { + for (size_t _Off = 0; _Ptr[_Off] != (_Elem)0; ++_Off) + if (_Ptr[_Off] == _Ptr[0]) + ++_Numfields; + string _Str(_Numfields, '\0'); + + int _Ans = -2; + for (size_t _Column = 1; ; ++_Column, (void)++_First, _Ans = -1) + { + bool _Prefix = false; + size_t _Off = 0; + size_t _Field = 0; + + for (; _Field < _Numfields; ++_Field) + { + for (; _Ptr[_Off] != (_Elem)0 && _Ptr[_Off] != _Ptr[0]; ++_Off) + ; + + if (_Str[_Field] != '\0') + _Off += _Str[_Field]; + else if (_Ptr[_Off += _Column] == _Ptr[0] + || _Ptr[_Off] == (_Elem)0) + { + _Str[_Field] = (char)(_Column < 127 + ? _Column : 127); + _Ans = (int)_Field; + } + else if (_First == _Last || _Ptr[_Off] != *_First) + _Str[_Field] = (char)(_Column < 127 + ? _Column : 127); + else + _Prefix = true; + } + + if (!_Prefix || _First == _Last) + break; + } + return (_Ans); + } + + + + + +template inline + char __cdecl _Maklocbyte(_Elem _Char, + const _Locinfo::_Cvtvec&) + { + return ((char)(unsigned char)_Char); + } + +template<> inline + char __cdecl _Maklocbyte(wchar_t _Char, + const _Locinfo::_Cvtvec& _Cvt) + { + char _Byte = '\0'; + mbstate_t _Mbst1 = {}; + _Wcrtomb(&_Byte, _Char, &_Mbst1, &_Cvt); + return (_Byte); + } + + +template<> inline + char __cdecl _Maklocbyte(unsigned short _Char, + const _Locinfo::_Cvtvec &_Cvt) + { + char _Byte = '\0'; + mbstate_t _Mbst1 = {}; + _Wcrtomb(&_Byte, (wchar_t)_Char, &_Mbst1, &_Cvt); + return (_Byte); + } + + + + + + +template inline + _Elem __cdecl _Maklocchr(char _Byte, _Elem *, + const _Locinfo::_Cvtvec&) + { + return ((_Elem)(unsigned char)_Byte); + } + +template<> inline + wchar_t __cdecl _Maklocchr(char _Byte, wchar_t *, + const _Locinfo::_Cvtvec& _Cvt) + { + wchar_t _Wc = L'\0'; + mbstate_t _Mbst1 = {}; + _Mbrtowc(&_Wc, &_Byte, 1, &_Mbst1, &_Cvt); + return (_Wc); + } + + +template<> inline + unsigned short __cdecl _Maklocchr(char _Byte, unsigned short *, + const _Locinfo::_Cvtvec &_Cvt) + { + unsigned short _Wc = (unsigned short)0; + mbstate_t _Mbst1 = {}; + _Mbrtowc((wchar_t *)&_Wc, &_Byte, 1, &_Mbst1, &_Cvt); + return (_Wc); + } + + + + + + +template inline + _Elem *__cdecl _Maklocstr(const char *_Ptr, _Elem *, + const _Locinfo::_Cvtvec&) + { + size_t _Count = :: strlen(_Ptr) + 1; + + _Elem *_Ptrdest = (_Elem *)_calloc_dbg(_Count, sizeof (_Elem), + 2, "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 723); + + if (!_Ptrdest) + _Xbad_alloc(); + +#pragma warning(push) +#pragma warning(disable: 6011) + for (_Elem *_Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) + *_Ptrnext = (_Elem)(unsigned char)*_Ptr; +#pragma warning(pop) + + return (_Ptrdest); + } + +template<> inline + wchar_t *__cdecl _Maklocstr(const char *_Ptr, wchar_t *, + const _Locinfo::_Cvtvec& _Cvt) + { + size_t _Count, _Count1; + size_t _Wchars; + const char *_Ptr1; + int _Bytes; + wchar_t _Wc; + mbstate_t _Mbst1 = {}; + + _Count1 = :: strlen(_Ptr) + 1; + for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; + _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) + if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) + break; + ++_Wchars; + + wchar_t *_Ptrdest = (wchar_t *)_calloc_dbg(_Wchars, sizeof (wchar_t), + 2, "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 756); + + if (!_Ptrdest) + _Xbad_alloc(); + wchar_t *_Ptrnext = _Ptrdest; + mbstate_t _Mbst2 = {}; + +#pragma warning(push) +#pragma warning(disable: 6011) + for (; 0 < _Wchars; + _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) + if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) + break; + *_Ptrnext = L'\0'; +#pragma warning(pop) + + return (_Ptrdest); + } + + +template<> inline + unsigned short *__cdecl _Maklocstr(const char *_Ptr, unsigned short *, + const _Locinfo::_Cvtvec &_Cvt) + { + size_t _Count, _Count1; + size_t _Wchars; + const char *_Ptr1; + int _Bytes; + unsigned short _Wc; + mbstate_t _Mbst1 = {}; + + _Count1 = :: strlen(_Ptr) + 1; + for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; + _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) + if ((_Bytes = + _Mbrtowc((wchar_t *)&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) + break; + ++_Wchars; + + wchar_t *_Ptrdest = (wchar_t *)_calloc_dbg(_Wchars, sizeof (wchar_t), + 2, "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 796); + + if (!_Ptrdest) + _Xbad_alloc(); + + wchar_t *_Ptrnext = _Ptrdest; + mbstate_t _Mbst2 = {}; + for (; 0 < _Wchars; + _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) + if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) + break; + *_Ptrnext = L'\0'; + return ((unsigned short *)_Ptrdest); + } + + + +#pragma warning(push) +#pragma warning(disable: 4275) + +class codecvt_base + : public locale::facet + { +public: + enum + { + ok, partial, error, noconv}; + typedef int result; + + codecvt_base(size_t _Refs = 0) + : locale::facet(_Refs) + { + } + + bool always_noconv() const noexcept + { + return (do_always_noconv()); + } + + int max_length() const noexcept + { + return (do_max_length()); + } + + int encoding() const noexcept + { + return (do_encoding()); + } + + ~codecvt_base() noexcept + { + } + +protected: + virtual bool do_always_noconv() const noexcept + { + return (false); + } + + virtual int do_max_length() const noexcept + { + return (1); + } + + virtual int do_encoding() const noexcept + { + return (1); + } + }; + +#pragma warning(pop) + + +template + class codecvt + : public codecvt_base + { +public: + typedef _Elem intern_type; + typedef _Byte extern_type; + typedef _Statype state_type; + + result in(_Statype& _State, + const _Byte *_First1, const _Byte *_Last1, const _Byte *& _Mid1, + _Elem *_First2, _Elem *_Last2, _Elem *& _Mid2) const + { + return (do_in(_State, + _First1, _Last1, _Mid1, _First2, _Last2, _Mid2)); + } + + result out(_Statype& _State, + const _Elem *_First1, const _Elem *_Last1, const _Elem *& _Mid1, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + return (do_out(_State, + _First1, _Last1, _Mid1, _First2, _Last2, _Mid2)); + } + + result unshift(_Statype& _State, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + return (do_unshift(_State, _First2, _Last2, _Mid2)); + } + + int length(_Statype& _State, const _Byte *_First1, + const _Byte *_Last1, size_t _Count) const + { + return (do_length(_State, _First1, _Last1, _Count)); + } + + static locale::id id; + + explicit codecvt(size_t _Refs = 0) + : codecvt_base(_Refs) + { + _Init(_Locinfo()); + } + + codecvt(const _Locinfo& _Lobj, size_t _Refs = 0) + : codecvt_base(_Refs) + { + _Init(_Lobj); + } + + static size_t __cdecl _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new codecvt<_Elem, _Byte, _Statype>( + _Locinfo(_Ploc->c_str())); + return (2); + } + +protected: + virtual ~codecvt() noexcept + { + } + + void _Init(const _Locinfo&) + { + } + + virtual bool do_always_noconv() const noexcept + { + return (is_same<_Byte, _Elem>::value); + } + + virtual result do_in(_Statype&, + const _Byte *_First1, const _Byte *_Last1, const _Byte *& _Mid1, + _Elem *_First2, _Elem *_Last2, _Elem *& _Mid2) const + { + _Mid1 = _First1, _Mid2 = _First2; + if (is_same<_Byte, _Elem>::value) + return (noconv); + else + { + for (; _Mid1 != _Last1 && _Mid2 != _Last2; ++_Mid1, ++_Mid2) + *_Mid2 = (_Elem)*_Mid1; + return (ok); + } + } + + virtual result do_out(_Statype&, + const _Elem *_First1, const _Elem *_Last1, const _Elem *& _Mid1, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + _Mid1 = _First1, _Mid2 = _First2; + if (is_same<_Byte, _Elem>::value) + return (noconv); + else + { + for (; _Mid1 != _Last1 && _Mid2 != _Last2; ++_Mid1, ++_Mid2) + *_Mid2 = (_Byte)*_Mid1; + return (ok); + } + } + + virtual result do_unshift(_Statype&, + _Byte *_First2, _Byte *, _Byte *&_Mid2) const + { + _Mid2 = _First2; + return (ok); + } + + virtual int do_length(_Statype&, const _Byte *_First1, + const _Byte *_Last1, size_t _Count) const + { + return ((int)(_Count < (size_t)(_Last1 - _First1) + ? _Count : _Last1 - _First1)); + } + }; + + +template + locale::id codecvt<_Elem, _Byte, _Statype>::id; + + +enum _Codecvt_mode { + _Consume_header = 4, + _Generate_header = 2 + }; + + +template<> + class codecvt + : public codecvt_base + { +public: + typedef codecvt _Mybase; + typedef char16_t _Elem; + typedef char _Byte; + typedef _Mbstatet _Statype; + typedef _Elem intern_type; + typedef _Byte extern_type; + typedef _Statype state_type; + + result in(_Statype& _State, + const _Byte *_First1, const _Byte *_Last1, const _Byte *& _Mid1, + _Elem *_First2, _Elem *_Last2, _Elem *& _Mid2) const + { + return (do_in(_State, + _First1, _Last1, _Mid1, _First2, _Last2, _Mid2)); + } + + result out(_Statype& _State, + const _Elem *_First1, const _Elem *_Last1, const _Elem *& _Mid1, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + return (do_out(_State, + _First1, _Last1, _Mid1, _First2, _Last2, _Mid2)); + } + + result unshift(_Statype& _State, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + return (do_unshift(_State, + _First2, _Last2, _Mid2)); + } + + int length(_Statype& _State, const _Byte *_First1, + const _Byte *_Last1, size_t _Count) const + { + return (do_length(_State, _First1, _Last1, _Count)); + } + + static locale::id id; + + explicit codecvt(size_t _Refs = 0) + : codecvt_base(_Refs), _Maxcode(0x10ffff), _Mode(_Consume_header) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + codecvt(const _Locinfo& _Lobj, size_t _Refs = 0) + : codecvt_base(_Refs), _Maxcode(0x10ffff), _Mode(_Consume_header) + { + _Init(_Lobj); + } + + codecvt(const _Locinfo& _Lobj, unsigned long _Maxcode_arg, + _Codecvt_mode _Mode_arg, size_t _Refs = 0) + : codecvt_base(_Refs), _Maxcode(_Maxcode_arg), _Mode(_Mode_arg) + { + _Init(_Lobj); + } + + static size_t __cdecl _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new codecvt<_Elem, _Byte, _Statype>( + _Locinfo(_Ploc->c_str())); + return (2); + } + +protected: + virtual ~codecvt() noexcept + { + } + + void _Init(const _Locinfo&) + { + } + + virtual result do_in(_Statype& _State, + const _Byte *_First1, const _Byte *_Last1, const _Byte *& _Mid1, + _Elem *_First2, _Elem *_Last2, _Elem *& _Mid2) const + { + unsigned short *_Pstate = (unsigned short *)&_State; + _Mid1 = _First1; + _Mid2 = _First2; + + for (; _Mid1 != _Last1 && _Mid2 != _Last2; ) + { + unsigned char _By = (unsigned char)*_Mid1; + unsigned long _Ch; + int _Nextra, _Nskip; + + if (*_Pstate <= 1) + ; + else if (_By < 0x80 || 0xc0 <= _By) + return (_Mybase::error); + else + { + ++_Mid1; + *_Mid2++ = (_Elem)(*_Pstate | (_By & 0x3f)); + *_Pstate = 1; + continue; + } + + if (_By < 0x80) + _Ch = _By, _Nextra = 0; + else if (_By < 0xc0) + { + ++_Mid1; + return (_Mybase::error); + } + else if (_By < 0xe0) + _Ch = _By & 0x1f, _Nextra = 1; + else if (_By < 0xf0) + _Ch = _By & 0x0f, _Nextra = 2; + else if (_By < 0xf8) + _Ch = _By & 0x07, _Nextra = 3; + else + _Ch = _By & 0x03, _Nextra = _By < 0xfc ? 4 : 5; + + _Nskip = _Nextra < 3 ? 0 : 1; + _First1 = _Mid1; + + if (_Nextra == 0) + ++_Mid1; + else if (_Last1 - _Mid1 < _Nextra + 1 - _Nskip) + break; + else + for (++_Mid1; _Nskip < _Nextra; --_Nextra, ++_Mid1) + if ((_By = (unsigned char)*_Mid1) < 0x80 || 0xc0 <= _By) + return (_Mybase::error); + else + _Ch = _Ch << 6 | (_By & 0x3f); + if (0 < _Nskip) + _Ch <<= 6; + + if ((_Maxcode < 0x10ffff ? _Maxcode : 0x10ffff) < _Ch) + return (_Mybase::error); + else if (0xffff < _Ch) + { + unsigned short _Ch0 = + (unsigned short)(0xd800 | (_Ch >> 10) - 0x0040); + + *_Mid2++ = (_Elem)_Ch0; + *_Pstate = (unsigned short)(0xdc00 | (_Ch & 0x03ff)); + continue; + } + + if (_Nskip == 0) + ; + else if (_Mid1 == _Last1) + { + _Mid1 = _First1; + break; + } + else if ((_By = (unsigned char)*_Mid1++) < 0x80 || 0xc0 <= _By) + return (_Mybase::error); + else + _Ch |= _By & 0x3f; + + if (*_Pstate == 0) + { + *_Pstate = 1; + + if ((_Mode & _Consume_header) != 0 && _Ch == 0xfeff) + { + result _Ans = do_in(_State, _Mid1, _Last1, _Mid1, + _First2, _Last2, _Mid2); + + if (_Ans == _Mybase::partial) + { + *_Pstate = 0; + _Mid1 = _First1; + } + return (_Ans); + } + } + + *_Mid2++ = (_Elem)_Ch; + } + + return (_First1 == _Mid1 ? _Mybase::partial : _Mybase::ok); + } + + virtual result do_out(_Statype& _State, + const _Elem *_First1, const _Elem *_Last1, const _Elem *& _Mid1, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + unsigned short *_Pstate = (unsigned short *)&_State; + _Mid1 = _First1; + _Mid2 = _First2; + + for (; _Mid1 != _Last1 && _Mid2 != _Last2; ) + { + unsigned long _Ch; + unsigned short _Ch1 = (unsigned short)*_Mid1; + bool _Save = false; + + if (1 < *_Pstate) + { + if (_Ch1 < 0xdc00 || 0xe000 <= _Ch1) + return (_Mybase::error); + _Ch = (*_Pstate << 10) | (_Ch1 - 0xdc00); + } + else if (0xd800 <= _Ch1 && _Ch1 < 0xdc00) + { + _Ch = (_Ch1 - 0xd800 + 0x0040) << 10; + _Save = true; + } + else + _Ch = _Ch1; + + _Byte _By; + int _Nextra; + + if (_Ch < 0x0080) + _By = (_Byte)_Ch, _Nextra = 0; + else if (_Ch < 0x0800) + _By = (_Byte)(0xc0 | _Ch >> 6), _Nextra = 1; + else if (_Ch < 0x10000) + _By = (_Byte)(0xe0 | _Ch >> 12), _Nextra = 2; + else + _By = (_Byte)(0xf0 | _Ch >> 18), _Nextra = 3; + + int _Nput = _Nextra < 3 ? _Nextra + 1 : _Save ? 1 : 3; + + if (_Last2 - _Mid2 < _Nput) + break; + else if (*_Pstate != 0 || (_Mode & _Generate_header) == 0) + ; + else if (_Last2 - _Mid2 < 3 + _Nput) + break; + else + { + *_Mid2++ = (_Byte)(unsigned char)0xef; + *_Mid2++ = (_Byte)(unsigned char)0xbb; + *_Mid2++ = (_Byte)(unsigned char)0xbf; + } + + ++_Mid1; + if (_Save || _Nextra < 3) + { + *_Mid2++ = _By; + --_Nput; + } + for (; 0 < _Nput; --_Nput) + *_Mid2++ = (_Byte)((_Ch >> 6 * --_Nextra & 0x3f) | 0x80); + + *_Pstate = (unsigned short)(_Save ? _Ch >> 10 : 1); + } + + return (_First1 == _Mid1 ? _Mybase::partial : _Mybase::ok); + } + + virtual result do_unshift(_Statype& _State, + _Byte *_First2, _Byte *, _Byte *& _Mid2) const + { + unsigned short *_Pstate = (unsigned short *)&_State; + _Mid2 = _First2; + + return (1 < *_Pstate + ? _Mybase::error : _Mybase::ok); + } + + virtual int do_length(_Statype& _State, const _Byte *_First1, + const _Byte *_Last1, size_t _Count) const + { + size_t _Wchars = 0; + _Statype _Mystate = _State; + + for (; _Wchars < _Count && _First1 != _Last1; ) + { + const _Byte *_Mid1; + _Elem *_Mid2; + _Elem _Ch; + + switch (do_in(_Mystate, _First1, _Last1, _Mid1, + &_Ch, &_Ch + 1, _Mid2)) + { + case _Mybase::noconv: + return ((int)(_Wchars + (_Last1 - _First1))); + + case _Mybase::ok: + if (_Mid2 == &_Ch + 1) + ++_Wchars; + _First1 = _Mid1; + break; + + default: + return ((int)_Wchars); + } + } + + return ((int)_Wchars); + } + + virtual bool do_always_noconv() const noexcept + { + return (false); + } + + virtual int do_max_length() const noexcept + { + return ((_Mode & _Consume_header) != 0 ? 9 + : (_Mode & _Generate_header) != 0 ? 7 + : 6); + } + + virtual int do_encoding() const noexcept + { + return (0); + } + +private: + unsigned long _Maxcode; + _Codecvt_mode _Mode; + }; + + +template<> + class codecvt + : public codecvt_base + { +public: + typedef codecvt _Mybase; + typedef char32_t _Elem; + typedef char _Byte; + typedef _Mbstatet _Statype; + typedef _Elem intern_type; + typedef _Byte extern_type; + typedef _Statype state_type; + + result in(_Statype& _State, + const _Byte *_First1, const _Byte *_Last1, const _Byte *& _Mid1, + _Elem *_First2, _Elem *_Last2, _Elem *& _Mid2) const + { + return (do_in(_State, + _First1, _Last1, _Mid1, _First2, _Last2, _Mid2)); + } + + result out(_Statype& _State, + const _Elem *_First1, const _Elem *_Last1, const _Elem *& _Mid1, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + return (do_out(_State, + _First1, _Last1, _Mid1, _First2, _Last2, _Mid2)); + } + + result unshift(_Statype& _State, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + return (do_unshift(_State, + _First2, _Last2, _Mid2)); + } + + int length(_Statype& _State, const _Byte *_First1, + const _Byte *_Last1, size_t _Count) const + { + return (do_length(_State, _First1, _Last1, _Count)); + } + + static locale::id id; + + explicit codecvt(size_t _Refs = 0) + : codecvt_base(_Refs), _Maxcode(0xffffffff), _Mode(_Consume_header) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + codecvt(const _Locinfo& _Lobj, size_t _Refs = 0) + : codecvt_base(_Refs), _Maxcode(0xffffffff), _Mode(_Consume_header) + { + _Init(_Lobj); + } + + codecvt(const _Locinfo& _Lobj, unsigned long _Maxcode_arg, + _Codecvt_mode _Mode_arg, size_t _Refs = 0) + : codecvt_base(_Refs), _Maxcode(_Maxcode_arg), _Mode(_Mode_arg) + { + _Init(_Lobj); + } + + static size_t __cdecl _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new codecvt<_Elem, _Byte, _Statype>( + _Locinfo(_Ploc->c_str())); + return (2); + } + +protected: + virtual ~codecvt() noexcept + { + } + + void _Init(const _Locinfo&) + { + } + + virtual result do_in(_Statype& _State, + const _Byte *_First1, const _Byte *_Last1, const _Byte *& _Mid1, + _Elem *_First2, _Elem *_Last2, _Elem *& _Mid2) const + { + char *_Pstate = (char *)&_State; + _Mid1 = _First1; + _Mid2 = _First2; + + for (; _Mid1 != _Last1 && _Mid2 != _Last2; ) + { + unsigned char _By = (unsigned char)*_Mid1; + unsigned long _Ch; + int _Nextra; + + if (_By < 0x80) + _Ch = _By, _Nextra = 0; + else if (_By < 0xc0) + { + ++_Mid1; + return (_Mybase::error); + } + else if (_By < 0xe0) + _Ch = _By & 0x1f, _Nextra = 1; + else if (_By < 0xf0) + _Ch = _By & 0x0f, _Nextra = 2; + else if (_By < 0xf8) + _Ch = _By & 0x07, _Nextra = 3; + else + _Ch = _By & 0x03, _Nextra = _By < 0xfc ? 4 : 5; + + if (_Nextra == 0) + ++_Mid1; + else if (_Last1 - _Mid1 < _Nextra + 1) + break; + else + for (++_Mid1; 0 < _Nextra; --_Nextra, ++_Mid1) + if ((_By = (unsigned char)*_Mid1) < 0x80 || 0xc0 <= _By) + return (_Mybase::error); + else + _Ch = _Ch << 6 | (_By & 0x3f); + + if (*_Pstate == 0) + { + *_Pstate = 1; + + if ((_Mode & _Consume_header) != 0 && _Ch == 0xfeff) + { + result _Ans = do_in(_State, _Mid1, _Last1, _Mid1, + _First2, _Last2, _Mid2); + + if (_Ans == _Mybase::partial) + { + *_Pstate = 0; + _Mid1 = _First1; + } + return (_Ans); + } + } + + if (_Maxcode < _Ch) + return (_Mybase::error); + *_Mid2++ = (_Elem)_Ch; + } + + return (_First1 == _Mid1 ? _Mybase::partial : _Mybase::ok); + } + + virtual result do_out(_Statype& _State, + const _Elem *_First1, const _Elem *_Last1, const _Elem *& _Mid1, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + char *_Pstate = (char *)&_State; + _Mid1 = _First1; + _Mid2 = _First2; + + for (; _Mid1 != _Last1 && _Mid2 != _Last2; ) + { + _Byte _By; + int _Nextra; + unsigned long _Ch = (unsigned long)*_Mid1; + + if (_Maxcode < _Ch) + return (_Mybase::error); + + if (_Ch < 0x0080) + _By = (_Byte)_Ch, _Nextra = 0; + else if (_Ch < 0x0800) + _By = (_Byte)(0xc0 | _Ch >> 6), _Nextra = 1; + else if (_Ch < 0x00010000) + _By = (_Byte)(0xe0 | _Ch >> 12), _Nextra = 2; + else if (_Ch < 0x00200000) + _By = (_Byte)(0xf0 | _Ch >> 18), _Nextra = 3; + else if (_Ch < 0x04000000) + _By = (_Byte)(0xf8 | _Ch >> 24), _Nextra = 4; + else + _By = (_Byte)(0xfc | (_Ch >> 30 & 0x03)), _Nextra = 5; + + if (*_Pstate == 0) + { + *_Pstate = 1; + if ((_Mode & _Generate_header) == 0) + ; + else if (_Last2 - _Mid2 < 3 + 1 + _Nextra) + return (_Mybase::partial); + else + { + *_Mid2++ = (_Byte)(unsigned char)0xef; + *_Mid2++ = (_Byte)(unsigned char)0xbb; + *_Mid2++ = (_Byte)(unsigned char)0xbf; + } + } + + if (_Last2 - _Mid2 < 1 + _Nextra) + break; + + ++_Mid1; + for (*_Mid2++ = _By; 0 < _Nextra; ) + *_Mid2++ = (_Byte)((_Ch >> 6 * --_Nextra & 0x3f) | 0x80); + } + return (_First1 == _Mid1 ? _Mybase::partial : _Mybase::ok); + } + + virtual result do_unshift(_Statype&, + _Byte *_First2, _Byte *, _Byte *& _Mid2) const + { + _Mid2 = _First2; + return (_Mybase::ok); + } + + virtual int do_length(_Statype& _State, const _Byte *_First1, + const _Byte *_Last1, size_t _Count) const + { + int _Wchars = 0; + _Statype _Mystate = _State; + + for (; (size_t)_Wchars < _Count && _First1 != _Last1; ) + { + const _Byte *_Mid1; + _Elem *_Mid2; + _Elem _Ch; + + switch (do_in(_Mystate, _First1, _Last1, _Mid1, + &_Ch, &_Ch + 1, _Mid2)) + { + case _Mybase::noconv: + return ((int)(_Wchars + (int)(_Last1 - _First1))); + + case _Mybase::ok: + if (_Mid2 == &_Ch + 1) + ++_Wchars; + _First1 = _Mid1; + break; + + default: + return ((int)_Wchars); + } + } + + return ((int)_Wchars); + } + + virtual bool do_always_noconv() const noexcept + { + return (false); + } + + virtual int do_max_length() const noexcept + { + return ((_Mode & (_Consume_header | _Generate_header)) != 0 + ? 9 : 6); + } + + virtual int do_encoding() const noexcept + { + return ((_Mode & (_Consume_header | _Generate_header)) != 0 + ? -1 : 0); + } + +private: + unsigned long _Maxcode; + _Codecvt_mode _Mode; + }; + + +template<> + class codecvt + : public codecvt_base + { +public: + typedef wchar_t _Elem; + typedef char _Byte; + typedef _Mbstatet _Statype; + typedef _Elem intern_type; + typedef _Byte extern_type; + typedef _Statype state_type; + + result in(_Statype& _State, + const _Byte *_First1, const _Byte *_Last1, const _Byte *& _Mid1, + _Elem *_First2, _Elem *_Last2, _Elem *& _Mid2) const + { + return (do_in(_State, + _First1, _Last1, _Mid1, _First2, _Last2, _Mid2)); + } + + result out(_Statype& _State, + const _Elem *_First1, const _Elem *_Last1, const _Elem *& _Mid1, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + return (do_out(_State, + _First1, _Last1, _Mid1, _First2, _Last2, _Mid2)); + } + + result unshift(_Statype& _State, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + return (do_unshift(_State, + _First2, _Last2, _Mid2)); + } + + int length(_Statype& _State, const _Byte *_First1, + const _Byte *_Last1, size_t _Count) const + { + return (do_length(_State, _First1, _Last1, _Count)); + } + + static locale::id id; + + explicit codecvt(size_t _Refs = 0) + : codecvt_base(_Refs) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + codecvt(const _Locinfo& _Lobj, size_t _Refs = 0) + : codecvt_base(_Refs) + { + _Init(_Lobj); + } + + static size_t __cdecl _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new codecvt<_Elem, _Byte, _Statype>( + _Locinfo(_Ploc->c_str())); + return (2); + } + +protected: + virtual ~codecvt() noexcept + { + } + + void _Init(const _Locinfo& _Lobj) + { + _Cvt = _Lobj._Getcvt(); + } + + virtual result do_in(_Statype& _State, + const _Byte *_First1, const _Byte *_Last1, const _Byte *& _Mid1, + _Elem *_First2, _Elem *_Last2, _Elem *& _Mid2) const + { + _Debug_range(_First1, _Last1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 1674); + _Debug_range(_First2, _Last2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 1675); + _Mid1 = _First1, _Mid2 = _First2; + result _Ans = _Mid1 == _Last1 ? ok : partial; + int _Bytes; + + while (_Mid1 != _Last1 && _Mid2 != _Last2) + switch (_Bytes = _Mbrtowc(_Mid2, _Mid1, _Last1 - _Mid1, + &_State, &_Cvt)) + { + case -2: + _Mid1 = _Last1; + return (_Ans); + + case -1: + return (error); + + case 0: + if (*_Mid2 == (_Elem)0) + _Bytes = (int):: strlen(_Mid1) + 1; + + + default: + if (_Bytes == -3) + _Bytes = 0; + _Mid1 += _Bytes; + ++_Mid2; + _Ans = ok; + } + return (_Ans); + } + + virtual result do_out(_Statype& _State, + const _Elem *_First1, const _Elem *_Last1, const _Elem *& _Mid1, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + _Debug_range(_First1, _Last1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 1710); + _Debug_range(_First2, _Last2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 1711); + _Mid1 = _First1, _Mid2 = _First2; + int _Bytes; + + while (_Mid1 != _Last1 && _Mid2 != _Last2) + if ((int)5 <= _Last2 - _Mid2) + if ((_Bytes = _Wcrtomb(_Mid2, *_Mid1, + &_State, &_Cvt)) < 0) + return (error); + else + ++_Mid1, _Mid2 += _Bytes; + else + { + _Byte _Buf[5]; + _Statype _Stsave = _State; + + if ((_Bytes = _Wcrtomb(_Buf, *_Mid1, + &_State, &_Cvt)) < 0) + return (error); + else if (_Last2 - _Mid2 < _Bytes) + { + _State = _Stsave; + break; + } + else + { + :: memcpy(_Mid2, _Buf, _Bytes); + ++_Mid1, _Mid2 += _Bytes; + } + } + return (_Mid1 == _Last1 ? ok : partial); + } + + virtual result do_unshift(_Statype& _State, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + _Debug_range(_First2, _Last2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 1747); + _Mid2 = _First2; + result _Ans = ok; + int _Bytes; + _Byte _Buf[5]; + _Statype _Stsave = _State; + + if ((_Bytes = _Wcrtomb(_Buf, L'\0', &_State, &_Cvt)) <= 0) + _Ans = error; + else if (_Last2 - _Mid2 < --_Bytes) + { + _State = _Stsave; + _Ans = partial; + } + else if (0 < _Bytes) + { + :: memcpy(_Mid2, _Buf, _Bytes); + _Mid2 += _Bytes; + } + return (_Ans); + } + + virtual int do_length(_Statype& _State, const _Byte *_First1, + const _Byte *_Last1, size_t _Count) const + { + _Debug_range(_First1, _Last1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 1772); + int _Wchars; + const _Byte *_Mid1; + _Statype _Mystate = _State; + + for (_Wchars = 0, _Mid1 = _First1; + (size_t)_Wchars < _Count && _Mid1 != _Last1; ) + { + int _Bytes; + _Elem _Ch; + + switch (_Bytes = _Mbrtowc(&_Ch, _Mid1, _Last1 - _Mid1, + &_Mystate, &_Cvt)) + { + case -2: + return (_Wchars); + + case -1: + return (_Wchars); + + case 0: + if (_Ch == (_Elem)0) + _Bytes = (int):: strlen(_Mid1) + 1; + + + default: + if (_Bytes == -3) + _Bytes = 0; + _Mid1 += _Bytes; + ++_Wchars; + } + } + return (_Wchars); + } + + virtual bool do_always_noconv() const noexcept + { + return (false); + } + + virtual int do_max_length() const noexcept + { + return (5); + } + + virtual int do_encoding() const noexcept + { + return (0); + } + +private: + _Locinfo::_Cvtvec _Cvt; + }; + + + +template<> + class codecvt + : public codecvt_base + { +public: + typedef unsigned short _Elem; + typedef char _Byte; + typedef _Mbstatet _Statype; + typedef _Elem intern_type; + typedef _Byte extern_type; + typedef _Statype state_type; + + result in(_Statype& _State, + const _Byte *_First1, const _Byte *_Last1, const _Byte *& _Mid1, + _Elem *_First2, _Elem *_Last2, _Elem *& _Mid2) const + { + return (do_in(_State, + _First1, _Last1, _Mid1, _First2, _Last2, _Mid2)); + } + + result out(_Statype& _State, + const _Elem *_First1, const _Elem *_Last1, const _Elem *& _Mid1, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + return (do_out(_State, + _First1, _Last1, _Mid1, _First2, _Last2, _Mid2)); + } + + result unshift(_Statype& _State, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + return (do_unshift(_State, + _First2, _Last2, _Mid2)); + } + + int length(_Statype& _State, const _Byte *_First1, + const _Byte *_Last1, size_t _Count) const + { + return (do_length(_State, _First1, _Last1, _Count)); + } + + static locale::id id; + + explicit codecvt(size_t _Refs = 0) + : codecvt_base(_Refs) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + codecvt(const _Locinfo& _Lobj, size_t _Refs = 0) + : codecvt_base(_Refs) + { + _Init(_Lobj); + } + + static size_t __cdecl _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new codecvt<_Elem, _Byte, _Statype>( + _Locinfo(_Ploc->c_str())); + return (2); + } + +protected: + virtual ~codecvt() noexcept + { + } + + void _Init(const _Locinfo& _Lobj) + { + _Cvt = _Lobj._Getcvt(); + } + + virtual result do_in(_Statype& _State, + const _Byte *_First1, const _Byte *_Last1, const _Byte *& _Mid1, + _Elem *_First2, _Elem *_Last2, _Elem *& _Mid2) const + { + _Debug_range(_First1, _Last1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 1908); + _Debug_range(_First2, _Last2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 1909); + _Mid1 = _First1, _Mid2 = _First2; + result _Ans = _Mid1 == _Last1 ? ok : partial; + int _Bytes; + + while (_Mid1 != _Last1 && _Mid2 != _Last2) + switch (_Bytes = _Mbrtowc((wchar_t *)_Mid2, _Mid1, _Last1 - _Mid1, + &_State, &_Cvt)) + { + case -2: + _Mid1 = _Last1; + return (_Ans); + + case -1: + return (error); + + case 0: + if (*_Mid2 == (_Elem)0) + _Bytes = (int):: strlen(_Mid1) + 1; + + + default: + if (_Bytes == -3) + _Bytes = 0; + _Mid1 += _Bytes; + ++_Mid2; + _Ans = ok; + } + return (_Ans); + } + + virtual result do_out(_Statype& _State, + const _Elem *_First1, const _Elem *_Last1, const _Elem *& _Mid1, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + _Debug_range(_First1, _Last1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 1944); + _Debug_range(_First2, _Last2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 1945); + _Mid1 = _First1, _Mid2 = _First2; + int _Bytes; + + while (_Mid1 != _Last1 && _Mid2 != _Last2) + if ((int)5 <= _Last2 - _Mid2) + if ((_Bytes = _Wcrtomb(_Mid2, *_Mid1, + &_State, &_Cvt)) < 0) + return (error); + else + ++_Mid1, _Mid2 += _Bytes; + else + { + _Byte _Buf[5]; + _Statype _Stsave = _State; + + if ((_Bytes = _Wcrtomb(_Buf, *_Mid1, + &_State, &_Cvt)) < 0) + return (error); + else if (_Last2 - _Mid2 < _Bytes) + { + _State = _Stsave; + break; + } + else + { + :: memcpy(_Mid2, _Buf, _Bytes); + ++_Mid1, _Mid2 += _Bytes; + } + } + return (_Mid1 == _Last1 ? ok : partial); + } + + virtual result do_unshift(_Statype& _State, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + _Debug_range(_First2, _Last2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 1981); + _Mid2 = _First2; + result _Ans = ok; + int _Bytes; + _Byte _Buf[5]; + _Statype _Stsave = _State; + + if ((_Bytes = _Wcrtomb(_Buf, L'\0', &_State, &_Cvt)) <= 0) + _Ans = error; + else if (_Last2 - _Mid2 < --_Bytes) + { + _State = _Stsave; + _Ans = partial; + } + else if (0 < _Bytes) + { + :: memcpy(_Mid2, _Buf, _Bytes); + _Mid2 += _Bytes; + } + return (_Ans); + } + + virtual int do_length(_Statype& _State, const _Byte *_First1, + const _Byte *_Last1, size_t _Count) const + { + _Debug_range(_First1, _Last1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2006); + int _Wchars; + const _Byte *_Mid1; + _Statype _Mystate = _State; + + for (_Wchars = 0, _Mid1 = _First1; + (size_t)_Wchars < _Count && _Mid1 != _Last1; ) + { + int _Bytes; + _Elem _Ch; + + switch (_Bytes = _Mbrtowc((wchar_t *)&_Ch, _Mid1, _Last1 - _Mid1, + &_Mystate, &_Cvt)) + { + case -2: + return (_Wchars); + + case -1: + return (_Wchars); + + case 0: + if (_Ch == (_Elem)0) + _Bytes = (int):: strlen(_Mid1) + 1; + + + default: + if (_Bytes == -3) + _Bytes = 0; + _Mid1 += _Bytes; + ++_Wchars; + } + } + return (_Wchars); + } + + virtual bool do_always_noconv() const noexcept + { + return (false); + } + + virtual int do_max_length() const noexcept + { + return (5); + } + + virtual int do_encoding() const noexcept + { + return (0); + } + +private: + _Locinfo::_Cvtvec _Cvt; + }; + + + +template + class codecvt_byname + : public codecvt<_Elem, _Byte, _Statype> + { +public: + explicit codecvt_byname(const char *_Locname, size_t _Refs = 0) + : codecvt<_Elem, _Byte, _Statype>(_Locinfo(_Locname), _Refs) + { + } + + explicit codecvt_byname(const string& _Str, size_t _Refs = 0) + : codecvt<_Elem, _Byte, _Statype>(_Locinfo(_Str.c_str()), _Refs) + { + } + +protected: + virtual ~codecvt_byname() noexcept + { + } + }; + + +#pragma warning(push) +#pragma warning(disable: 4275) + +struct ctype_base + : public locale::facet + { + enum + { + alnum = 0x04 | 0x02 | 0x01 | 0x100, alpha = 0x02 | 0x01 | 0x100, + cntrl = 0x20, digit = 0x04, graph = 0x04 | 0x02 | 0x10 | 0x01 | 0x100, + lower = 0x02, print = 0x04 | 0x02 | 0x10 | 0x40 | 0x01 | 0x100 | 0x80, + punct = 0x10, space = 0x08 | 0x40 | 0x000, upper = 0x01, + xdigit = 0x80, blank = 0x08 | 0x40 | 0x000 | 0x000}; + typedef short mask; + + ctype_base(size_t _Refs = 0) + : locale::facet(_Refs) + { + } + + ~ctype_base() noexcept + { + } + }; + +#pragma warning(pop) + + +template + class ctype + : public ctype_base + { +public: + typedef _Elem char_type; + + bool is(mask _Maskval, _Elem _Ch) const + { + return (do_is(_Maskval, _Ch)); + } + + const _Elem * is(const _Elem *_First, const _Elem *_Last, + mask *_Dest) const + { + return (do_is(_First, _Last, _Dest)); + } + + const _Elem * scan_is(mask _Maskval, const _Elem *_First, + const _Elem *_Last) const + { + return (do_scan_is(_Maskval, _First, _Last)); + } + + const _Elem * scan_not(mask _Maskval, const _Elem *_First, + const _Elem *_Last) const + { + return (do_scan_not(_Maskval, _First, _Last)); + } + + _Elem tolower(_Elem _Ch) const + { + return (do_tolower(_Ch)); + } + + const _Elem * tolower(_Elem *_First, const _Elem *_Last) const + { + return (do_tolower(_First, _Last)); + } + + _Elem toupper(_Elem _Ch) const + { + return (do_toupper(_Ch)); + } + + const _Elem * toupper(_Elem *_First, const _Elem *_Last) const + { + return (do_toupper(_First, _Last)); + } + + _Elem widen(char _Byte) const + { + return (do_widen(_Byte)); + } + + const char * widen(const char *_First, const char *_Last, + _Elem *_Dest) const + { + return (do_widen(_First, _Last, _Dest)); + } + + char narrow(_Elem _Ch, char _Dflt = '\0') const + { + return (do_narrow(_Ch, _Dflt)); + } + + const _Elem * narrow(const _Elem *_First, const _Elem *_Last, + char _Dflt, char *_Dest) const + { + return (do_narrow(_First, _Last, _Dflt, _Dest)); + } + + static locale::id id; + + explicit ctype(size_t _Refs = 0) + : ctype_base(_Refs) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + ctype(const _Locinfo& _Lobj, size_t _Refs = 0) + : ctype_base(_Refs) + { + _Init(_Lobj); + } + + static size_t __cdecl _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new ctype<_Elem>( + _Locinfo(_Ploc->c_str())); + return (2); + } + +protected: + virtual ~ctype() noexcept + { + if (_Ctype._Delfl) + :: free((void *)_Ctype._Table); + + :: free(_Ctype._LocaleName); + } + + void _Init(const _Locinfo& _Lobj) + { + _Ctype = _Lobj._Getctype(); + _Cvt = _Lobj._Getcvt(); + } + + virtual bool do_is(mask _Maskval, _Elem _Ch) const + { + return ((_Ctype._Table[(unsigned char)narrow(_Ch)] + & _Maskval) != 0); + } + + virtual const _Elem * do_is(const _Elem *_First, const _Elem *_Last, + mask *_Dest) const + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2235); + for (; _First != _Last; ++_First, ++_Dest) + *_Dest = _Ctype._Table[(unsigned char)narrow(*_First)]; + return (_First); + } + + virtual const _Elem * do_scan_is(mask _Maskval, + const _Elem *_First, const _Elem *_Last) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2244); + for (; _First != _Last && !is(_Maskval, *_First); ++_First) + ; + return (_First); + } + + virtual const _Elem * do_scan_not(mask _Maskval, + const _Elem *_First, const _Elem *_Last) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2253); + for (; _First != _Last && is(_Maskval, *_First); ++_First) + ; + return (_First); + } + + virtual _Elem do_tolower(_Elem _Ch) const + { + unsigned char _Byte = (unsigned char)narrow(_Ch, '\0'); + if (_Byte == '\0') + return (_Ch); + else + return (widen((char)_Tolower(_Byte, &_Ctype))); + } + + virtual const _Elem * do_tolower(_Elem *_First, + const _Elem *_Last) const + { + _Debug_range((const _Elem *)_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2271); + for (; _First != _Last; ++_First) + { + unsigned char _Byte = (unsigned char)narrow(*_First, '\0'); + if (_Byte != '\0') + *_First = (widen((char)_Tolower(_Byte, &_Ctype))); + } + return ((const _Elem *)_First); + } + + virtual _Elem do_toupper(_Elem _Ch) const + { + unsigned char _Byte = (unsigned char)narrow(_Ch, '\0'); + if (_Byte == '\0') + return (_Ch); + else + return (widen((char)_Toupper(_Byte, &_Ctype))); + } + + virtual const _Elem * do_toupper(_Elem *_First, + const _Elem *_Last) const + { + _Debug_range((const _Elem *)_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2293); + for (; _First != _Last; ++_First) + { + unsigned char _Byte = (unsigned char)narrow(*_First, '\0'); + if (_Byte != '\0') + *_First = (widen((char)_Toupper(_Byte, &_Ctype))); + } + return ((const _Elem *)_First); + } + + virtual _Elem do_widen(char _Byte) const + { + return (_Maklocchr(_Byte, (_Elem *)0, _Cvt)); + } + + virtual const char * do_widen(const char *_First, + const char *_Last, _Elem *_Dest) const + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2311); + for (; _First != _Last; ++_First, ++_Dest) + *_Dest = _Maklocchr(*_First, (_Elem *)0, _Cvt); + return (_First); + } + + char _Donarrow(_Elem _Ch, char _Dflt) const + { + char _Byte; + if (_Ch == (_Elem)0) + return ('\0'); + else if ((_Byte = _Maklocbyte((_Elem)_Ch, _Cvt)) == '\0') + return (_Dflt); + else + return (_Byte); + } + + virtual char do_narrow(_Elem _Ch, char _Dflt) const + { + return (_Donarrow(_Ch, _Dflt)); + } + + virtual const _Elem * do_narrow(const _Elem *_First, + const _Elem *_Last, char _Dflt, char *_Dest) const + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2336); + for (; _First != _Last; ++_First, ++_Dest) + *_Dest = _Donarrow(*_First, _Dflt); + return (_First); + } + +private: + _Locinfo::_Ctypevec _Ctype; + _Locinfo::_Cvtvec _Cvt; + }; + + +template + locale::id ctype<_Elem>::id; + + +template<> + class ctype + : public ctype_base + { + typedef ctype _Myt; + +public: + typedef char _Elem; + typedef _Elem char_type; + + bool is(mask _Maskval, _Elem _Ch) const + { + return ((_Ctype._Table[(unsigned char)_Ch] & _Maskval) != 0); + } + + const _Elem * is(const _Elem *_First, + const _Elem *_Last, mask *_Dest) const + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2370); + for (; _First != _Last; ++_First, ++_Dest) + *_Dest = _Ctype._Table[(unsigned char)*_First]; + return (_First); + } + + const _Elem * scan_is(mask _Maskval, + const _Elem *_First, const _Elem *_Last) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2379); + for (; _First != _Last && !is(_Maskval, *_First); ++_First) + ; + return (_First); + } + + const _Elem * scan_not(mask _Maskval, + const _Elem *_First, const _Elem *_Last) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2388); + for (; _First != _Last && is(_Maskval, *_First); ++_First) + ; + return (_First); + } + + _Elem tolower(_Elem _Ch) const + { + return (do_tolower(_Ch)); + } + + const _Elem * tolower(_Elem *_First, const _Elem *_Last) const + { + return (do_tolower(_First, _Last)); + } + + _Elem toupper(_Elem _Ch) const + { + return (do_toupper(_Ch)); + } + + const _Elem * toupper(_Elem *_First, const _Elem *_Last) const + { + return (do_toupper(_First, _Last)); + } + + _Elem widen(char _Byte) const + { + return (do_widen(_Byte)); + } + + const _Elem * widen(const char *_First, const char *_Last, + _Elem *_Dest) const + { + return (do_widen(_First, _Last, _Dest)); + } + + _Elem narrow(_Elem _Ch, char _Dflt = '\0') const + { + return (do_narrow(_Ch, _Dflt)); + } + + const _Elem * narrow(const _Elem *_First, const _Elem *_Last, + char _Dflt, char *_Dest) const + { + return (do_narrow(_First, _Last, _Dflt, _Dest)); + } + + static locale::id id; + + explicit ctype(const mask *_Table = 0, + bool _Deletetable = false, + size_t _Refs = 0) + : ctype_base(_Refs) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + + _Tidy(); + if (_Table != 0) + { + _Ctype._Table = _Table; + _Ctype._Delfl = _Deletetable ? -1 : 0; + } + else + { + _Ctype._Table = classic_table(); + _Ctype._Delfl = 0; + } + } + + ctype(const _Locinfo& _Lobj, size_t _Refs = 0) + : ctype_base(_Refs) + { + _Init(_Lobj); + } + + static size_t __cdecl _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new ctype<_Elem>( + _Locinfo(_Ploc->c_str())); + return (2); + } + + const mask * table() const noexcept + { + return (_Ctype._Table); + } + + static const mask *__cdecl classic_table() noexcept + { + const _Myt& _Ctype_fac = use_facet< _Myt >(locale::classic()); + return (_Ctype_fac.table()); + } + + static const size_t table_size = + 1 << 8; + +protected: + virtual ~ctype() noexcept + { + _Tidy(); + } + + void _Init(const _Locinfo& _Lobj) + { + _Ctype = _Lobj._Getctype(); + } + + void _Tidy() + { + if (0 < _Ctype._Delfl) + :: free((void *)_Ctype._Table); + else if (_Ctype._Delfl < 0) + delete[] _Ctype._Table; + + :: free(_Ctype._LocaleName); + } + + virtual _Elem do_tolower(_Elem _Ch) const + { + return ((_Elem)_Tolower((unsigned char)_Ch, &_Ctype)); + } + + virtual const _Elem * do_tolower(_Elem *_First, + const _Elem *_Last) const + { + _Debug_range((const _Elem *)_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2518); + for (; _First != _Last; ++_First) + *_First = (_Elem)_Tolower((unsigned char)*_First, &_Ctype); + return ((const _Elem *)_First); + } + + virtual _Elem do_toupper(_Elem _Ch) const + { + return ((_Elem)_Toupper((unsigned char)_Ch, &_Ctype)); + } + + virtual const _Elem * do_toupper(_Elem *_First, + const _Elem *_Last) const + { + _Debug_range((const _Elem *)_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2532); + for (; _First != _Last; ++_First) + *_First = (_Elem)_Toupper((unsigned char)*_First, &_Ctype); + return ((const _Elem *)_First); + } + + virtual _Elem do_widen(char _Byte) const + { + return (_Byte); + } + + virtual const _Elem * do_widen(const char *_First, + const char *_Last, _Elem *_Dest) const + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2546); + :: memcpy(_Dest, _First, _Last - _First); + return (_Last); + } + + virtual _Elem do_narrow(_Elem _Ch, char) const + { + return (_Ch); + } + + virtual const _Elem * do_narrow(const _Elem *_First, + const _Elem *_Last, char, char *_Dest) const + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2559); + :: memcpy(_Dest, _First, _Last - _First); + return (_Last); + } + +private: + _Locinfo::_Ctypevec _Ctype; + }; + + +template<> + class ctype + : public ctype_base + { + typedef ctype _Myt; + +public: + typedef wchar_t _Elem; + typedef _Elem char_type; + + bool is(mask _Maskval, _Elem _Ch) const + { + return (do_is(_Maskval, _Ch)); + } + + const _Elem * is(const _Elem *_First, const _Elem *_Last, + mask *_Dest) const + { + return (do_is(_First, _Last, _Dest)); + } + + const _Elem * scan_is(mask _Maskval, const _Elem *_First, + const _Elem *_Last) const + { + return (do_scan_is(_Maskval, _First, _Last)); + } + + const _Elem * scan_not(mask _Maskval, const _Elem *_First, + const _Elem *_Last) const + { + return (do_scan_not(_Maskval, _First, _Last)); + } + + _Elem tolower(_Elem _Ch) const + { + return (do_tolower(_Ch)); + } + + const _Elem * tolower(_Elem *_First, const _Elem *_Last) const + { + return (do_tolower(_First, _Last)); + } + + _Elem toupper(_Elem _Ch) const + { + return (do_toupper(_Ch)); + } + + const _Elem * toupper(_Elem *_First, const _Elem *_Last) const + { + return (do_toupper(_First, _Last)); + } + + _Elem widen(char _Byte) const + { + return (do_widen(_Byte)); + } + + const char * widen(const char *_First, const char *_Last, + _Elem *_Dest) const + { + return (do_widen(_First, _Last, _Dest)); + } + + char narrow(_Elem _Ch, char _Dflt = '\0') const + { + return (do_narrow(_Ch, _Dflt)); + } + + const _Elem * narrow(const _Elem *_First, const _Elem *_Last, + char _Dflt, char *_Dest) const + { + return (do_narrow(_First, _Last, _Dflt, _Dest)); + } + + static locale::id id; + + explicit ctype(size_t _Refs = 0) + : ctype_base(_Refs) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + ctype(const _Locinfo& _Lobj, size_t _Refs = 0) + : ctype_base(_Refs) + { + _Init(_Lobj); + } + + static size_t __cdecl _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new ctype<_Elem>( + _Locinfo(_Ploc->c_str())); + return (2); + } + +protected: + virtual ~ctype() noexcept + { + if (_Ctype._Delfl) + :: free((void *)_Ctype._Table); + + :: free(_Ctype._LocaleName); + } + + void _Init(const _Locinfo& _Lobj) + { + _Ctype = _Lobj._Getctype(); + _Cvt = _Lobj._Getcvt(); + } + + virtual bool do_is(mask _Maskval, _Elem _Ch) const + { + return ((:: _Getwctype(_Ch, &_Ctype) & _Maskval) != 0); + } + + virtual const _Elem * do_is(const _Elem *_First, + const _Elem *_Last, mask *_Dest) const + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2692); + return (:: _Getwctypes(_First, _Last, _Dest, &_Ctype)); + } + + virtual const _Elem * do_scan_is(mask _Maskval, + const _Elem *_First, const _Elem *_Last) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2699); + for (; _First != _Last && !is(_Maskval, *_First); ++_First) + ; + return (_First); + } + + virtual const _Elem * do_scan_not(mask _Maskval, + const _Elem *_First, const _Elem *_Last) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2708); + for (; _First != _Last && is(_Maskval, *_First); ++_First) + ; + return (_First); + } + + virtual _Elem do_tolower(_Elem _Ch) const + { + return (_Towlower(_Ch, &_Ctype)); + } + + virtual const _Elem * do_tolower(_Elem *_First, + const _Elem *_Last) const + { + _Debug_range((const _Elem *)_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2722); + for (; _First != _Last; ++_First) + *_First = _Towlower(*_First, &_Ctype); + return ((const _Elem *)_First); + } + + virtual _Elem do_toupper(_Elem _Ch) const + { + return (_Towupper(_Ch, &_Ctype)); + } + + virtual const _Elem * do_toupper(_Elem *_First, + const _Elem *_Last) const + { + _Debug_range((const _Elem *)_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2736); + for (; _First != _Last; ++_First) + *_First = _Towupper(*_First, &_Ctype); + return ((const _Elem *)_First); + } + + _Elem _Dowiden(char _Byte) const + { + mbstate_t _Mbst = {}; + wchar_t _Wc; + return (_Mbrtowc(&_Wc, &_Byte, 1, &_Mbst, &_Cvt) < 0 + ? (wchar_t)((wint_t)(0xFFFF)) : _Wc); + } + + virtual _Elem do_widen(char _Byte) const + { + return (_Dowiden(_Byte)); + } + + virtual const char * do_widen(const char *_First, + const char *_Last, _Elem *_Dest) const + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2758); + for (; _First != _Last; ++_First, ++_Dest) + *_Dest = _Dowiden(*_First); + return (_First); + } + + char _Donarrow(_Elem _Ch, char _Dflt) const + { + char _Buf[5]; + mbstate_t _Mbst = {}; + return (_Wcrtomb(_Buf, _Ch, &_Mbst, &_Cvt) != 1 + ? _Dflt : _Buf[0]); + } + + virtual char do_narrow(_Elem _Ch, char _Dflt) const + { + return (_Donarrow(_Ch, _Dflt)); + } + + virtual const _Elem * do_narrow(const _Elem *_First, + const _Elem *_Last, char _Dflt, char *_Dest) const + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2780); + for (; _First != _Last; ++_First, ++_Dest) + *_Dest = _Donarrow(*_First, _Dflt); + return (_First); + } + +private: + _Locinfo::_Ctypevec _Ctype; + _Locinfo::_Cvtvec _Cvt; + }; + + + +template<> + class ctype + : public ctype_base + { + typedef ctype _Myt; + +public: + typedef unsigned short _Elem; + typedef _Elem char_type; + + bool is(mask _Maskval, _Elem _Ch) const + { + return (do_is(_Maskval, _Ch)); + } + + const _Elem * is(const _Elem *_First, const _Elem *_Last, + mask *_Dest) const + { + return (do_is(_First, _Last, _Dest)); + } + + const _Elem * scan_is(mask _Maskval, const _Elem *_First, + const _Elem *_Last) const + { + return (do_scan_is(_Maskval, _First, _Last)); + } + + const _Elem * scan_not(mask _Maskval, const _Elem *_First, + const _Elem *_Last) const + { + return (do_scan_not(_Maskval, _First, _Last)); + } + + _Elem tolower(_Elem _Ch) const + { + return (do_tolower(_Ch)); + } + + const _Elem * tolower(_Elem *_First, const _Elem *_Last) const + { + return (do_tolower(_First, _Last)); + } + + _Elem toupper(_Elem _Ch) const + { + return (do_toupper(_Ch)); + } + + const _Elem * toupper(_Elem *_First, const _Elem *_Last) const + { + return (do_toupper(_First, _Last)); + } + + _Elem widen(char _Byte) const + { + return (do_widen(_Byte)); + } + + const char * widen(const char *_First, const char *_Last, + _Elem *_Dest) const + { + return (do_widen(_First, _Last, _Dest)); + } + + char narrow(_Elem _Ch, char _Dflt = '\0') const + { + return (do_narrow(_Ch, _Dflt)); + } + + const _Elem * narrow(const _Elem *_First, const _Elem *_Last, + char _Dflt, char *_Dest) const + { + return (do_narrow(_First, _Last, _Dflt, _Dest)); + } + + static locale::id id; + + explicit ctype(size_t _Refs = 0) + : ctype_base(_Refs) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + ctype(const _Locinfo& _Lobj, size_t _Refs = 0) + : ctype_base(_Refs) + { + _Init(_Lobj); + } + + static size_t __cdecl _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new ctype<_Elem>( + _Locinfo(_Ploc->c_str())); + return (2); + } + +protected: + virtual ~ctype() noexcept + { + if (_Ctype._Delfl) + :: free((void *)_Ctype._Table); + + :: free(_Ctype._LocaleName); + } + + void _Init(const _Locinfo& _Lobj) + { + _Ctype = _Lobj._Getctype(); + _Cvt = _Lobj._Getcvt(); + } + + virtual bool do_is(mask _Maskval, _Elem _Ch) const + { + return ((:: _Getwctype(_Ch, &_Ctype) & _Maskval) != 0); + } + + virtual const _Elem * do_is(const _Elem *_First, + const _Elem *_Last, mask *_Dest) const + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2916); + return ((const _Elem *):: _Getwctypes((const wchar_t *)_First, + (const wchar_t *)_Last, _Dest, &_Ctype)); + } + + virtual const _Elem * do_scan_is(mask _Maskval, + const _Elem *_First, const _Elem *_Last) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2924); + for (; _First != _Last && !is(_Maskval, *_First); ++_First) + ; + return (_First); + } + + virtual const _Elem * do_scan_not(mask _Maskval, + const _Elem *_First, const _Elem *_Last) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2933); + for (; _First != _Last && is(_Maskval, *_First); ++_First) + ; + return (_First); + } + + virtual _Elem do_tolower(_Elem _Ch) const + { + return (_Towlower(_Ch, &_Ctype)); + } + + virtual const _Elem * do_tolower(_Elem *_First, + const _Elem *_Last) const + { + _Debug_range((const _Elem *)_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2947); + for (; _First != _Last; ++_First) + *_First = _Towlower(*_First, &_Ctype); + return ((const _Elem *)_First); + } + + virtual _Elem do_toupper(_Elem _Ch) const + { + return (_Towupper(_Ch, &_Ctype)); + } + + virtual const _Elem * do_toupper(_Elem *_First, + const _Elem *_Last) const + { + _Debug_range((const _Elem *)_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2961); + for (; _First != _Last; ++_First) + *_First = _Towupper(*_First, &_Ctype); + return ((const _Elem *)_First); + } + + _Elem _Dowiden(char _Byte) const + { + mbstate_t _Mbst = {}; + unsigned short _Wc; + return (_Mbrtowc((wchar_t *)&_Wc, &_Byte, 1, &_Mbst, &_Cvt) < 0 + ? (unsigned short)((wint_t)(0xFFFF)) : _Wc); + } + + virtual _Elem do_widen(char _Byte) const + { + return (_Dowiden(_Byte)); + } + + virtual const char * do_widen(const char *_First, + const char *_Last, _Elem *_Dest) const + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 2983); + for (; _First != _Last; ++_First, ++_Dest) + *_Dest = _Dowiden(*_First); + return (_First); + } + + char _Donarrow(_Elem _Ch, char _Dflt) const + { + char _Buf[5]; + mbstate_t _Mbst = {}; + return (_Wcrtomb(_Buf, _Ch, &_Mbst, &_Cvt) != 1 + ? _Dflt : _Buf[0]); + } + + virtual char do_narrow(_Elem _Ch, char _Dflt) const + { + return (_Donarrow(_Ch, _Dflt)); + } + + virtual const _Elem * do_narrow(const _Elem *_First, + const _Elem *_Last, char _Dflt, char *_Dest) const + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocale", 3005); + for (; _First != _Last; ++_First, ++_Dest) + *_Dest = _Donarrow(*_First, _Dflt); + return (_First); + } + +private: + _Locinfo::_Ctypevec _Ctype; + _Locinfo::_Cvtvec _Cvt; + }; + + + +template + class ctype_byname + : public ctype<_Elem> + { +public: + explicit ctype_byname(const char *_Locname, size_t _Refs = 0) + : ctype<_Elem>(_Locinfo(_Locname), _Refs) + { + } + + explicit ctype_byname(const string& _Str, size_t _Refs = 0) + : ctype<_Elem>(_Locinfo(_Str.c_str()), _Refs) + { + } + +protected: + virtual ~ctype_byname() noexcept + { + } + }; + + +template<> + class ctype_byname + : public ctype + { +public: + explicit ctype_byname(const char *_Locname, size_t _Refs = 0) + : ctype(_Locinfo(_Locname), _Refs) + { + } + + explicit ctype_byname(const string& _Str, size_t _Refs = 0) + : ctype(_Locinfo(_Str.c_str()), _Refs) + { + } + +protected: + virtual ~ctype_byname() noexcept + { + } + }; + + + + + + + +} + +#pragma warning(pop) +#pragma pack(pop) +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xiosbase" 2 3 + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\system_error" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cerrno" 1 3 +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\system_error" 2 3 + + + + +#pragma pack(push,8) +#pragma warning(push, 3) +# 21 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\system_error" 3 +namespace std { + + +enum class errc { + address_family_not_supported = 102, + address_in_use = 100, + address_not_available = 101, + already_connected = 113, + argument_list_too_long = 7, + argument_out_of_domain = 33, + bad_address = 14, + bad_file_descriptor = 9, + bad_message = 104, + broken_pipe = 32, + connection_aborted = 106, + connection_already_in_progress = 103, + connection_refused = 107, + connection_reset = 108, + cross_device_link = 18, + destination_address_required = 109, + device_or_resource_busy = 16, + directory_not_empty = 41, + executable_format_error = 8, + file_exists = 17, + file_too_large = 27, + filename_too_long = 38, + function_not_supported = 40, + host_unreachable = 110, + identifier_removed = 111, + illegal_byte_sequence = 42, + inappropriate_io_control_operation = 25, + interrupted = 4, + invalid_argument = 22, + invalid_seek = 29, + io_error = 5, + is_a_directory = 21, + message_size = 115, + network_down = 116, + network_reset = 117, + network_unreachable = 118, + no_buffer_space = 119, + no_child_process = 10, + no_link = 121, + no_lock_available = 39, + no_message_available = 120, + no_message = 122, + no_protocol_option = 123, + no_space_on_device = 28, + no_stream_resources = 124, + no_such_device_or_address = 6, + no_such_device = 19, + no_such_file_or_directory = 2, + no_such_process = 3, + not_a_directory = 20, + not_a_socket = 128, + not_a_stream = 125, + not_connected = 126, + not_enough_memory = 12, + not_supported = 129, + operation_canceled = 105, + operation_in_progress = 112, + operation_not_permitted = 1, + operation_not_supported = 130, + operation_would_block = 140, + owner_dead = 133, + permission_denied = 13, + protocol_error = 134, + protocol_not_supported = 135, + read_only_file_system = 30, + resource_deadlock_would_occur = 36, + resource_unavailable_try_again = 11, + result_out_of_range = 34, + state_not_recoverable = 127, + stream_timeout = 137, + text_file_busy = 139, + timed_out = 138, + too_many_files_open_in_system = 23, + too_many_files_open = 24, + too_many_links = 31, + too_many_symbolic_link_levels = 114, + value_too_large = 132, + wrong_protocol_type = 136 + }; + +typedef errc _Errc; + + + +enum class io_errc { + stream = 1 + }; + +typedef io_errc _Io_errc; + + +template + struct is_error_code_enum + : public false_type + { + }; + +template<> + struct is_error_code_enum<_Io_errc> + : public true_type + { + }; + + +template + constexpr bool is_error_code_enum_v = is_error_code_enum<_Ty>::value; + + + +template + struct is_error_condition_enum + : public false_type + { + }; + +template<> + struct is_error_condition_enum<_Errc> + : public true_type + { + }; + + +template + constexpr bool is_error_condition_enum_v = is_error_condition_enum<_Ty>::value; + + +class error_code; +class error_condition; +error_code make_error_code(_Errc) noexcept; +error_code make_error_code(_Io_errc) noexcept; +error_condition make_error_condition(_Errc) noexcept; +error_condition make_error_condition(_Io_errc) noexcept; + + +class error_category; + +const error_category& generic_category() noexcept; +const error_category& iostream_category() noexcept; +const error_category& system_category() noexcept; + +class error_category + { +public: + error_category() noexcept + { + _Addr = reinterpret_cast(this); + } + + virtual ~error_category() noexcept + { + } + + virtual const char *name() const noexcept = 0; + + virtual string message(int _Errval) const = 0; + + virtual error_condition + default_error_condition(int _Errval) const noexcept; + + virtual bool equivalent(int _Errval, + const error_condition& _Cond) const noexcept; + + virtual bool equivalent(const error_code& _Code, + int _Errval) const noexcept; + + bool operator==(const error_category& _Right) const noexcept + { + return (_Addr == _Right._Addr); + } + + bool operator!=(const error_category& _Right) const noexcept + { + return (!(*this == _Right)); + } + + bool operator<(const error_category& _Right) const noexcept + { + return (_Addr < _Right._Addr); + } + + error_category(const error_category&) = delete; + error_category& operator=(const error_category&) = delete; + +protected: + uintptr_t _Addr; + + enum : uintptr_t + { + _Future_addr = 1, + _Generic_addr = 3, + _Iostream_addr = 5, + _System_addr = 7 + }; + }; + + +class error_code + { +public: + typedef error_code _Myt; + + error_code() noexcept + : _Myval(0), + _Mycat(&system_category()) + { + } + + error_code(int _Val, const error_category& _Cat) noexcept + : _Myval(_Val), _Mycat(&_Cat) + { + } + + template::value, + void>::type> + error_code(_Enum _Errcode) noexcept + : _Myval(0), _Mycat(0) + { + *this = make_error_code(_Errcode); + } + + void assign(int _Val, const error_category& _Cat) noexcept + { + _Myval = _Val; + _Mycat = &_Cat; + } + + template + typename enable_if::value, + error_code>::type& operator=(_Enum _Errcode) noexcept + { + *this = make_error_code(_Errcode); + return (*this); + } + + void clear() noexcept + { + _Myval = 0; + _Mycat = &system_category(); + } + + int value() const noexcept + { + return (_Myval); + } + + const error_category& category() const noexcept + { + return (*_Mycat); + } + + error_condition default_error_condition() const noexcept; + + string message() const + { + return (category().message(value())); + } + + explicit operator bool() const noexcept + { + return (value() != 0); + } + +private: + int _Myval; + const error_category *_Mycat; + }; + + +class error_condition + { +public: + typedef error_condition _Myt; + + error_condition() noexcept + : _Myval(0), + _Mycat(&generic_category()) + { + } + + error_condition(int _Val, const error_category& _Cat) noexcept + : _Myval(_Val), _Mycat(&_Cat) + { + } + + template::value, + void>::type> + error_condition(_Enum _Errcode) noexcept + : _Myval(0), _Mycat(0) + { + *this = make_error_condition(_Errcode); + } + + void assign(int _Val, const error_category& _Cat) noexcept + { + _Myval = _Val; + _Mycat = &_Cat; + } + + template + typename enable_if::value, + error_condition>::type& operator=(_Enum _Errcode) noexcept + { + *this = make_error_condition(_Errcode); + return (*this); + } + + void clear() noexcept + { + _Myval = 0; + _Mycat = &generic_category(); + } + + int value() const noexcept + { + return (_Myval); + } + + const error_category& category() const noexcept + { + return (*_Mycat); + } + + string message() const + { + return (category().message(value())); + } + + explicit operator bool() const noexcept + { + return (value() != 0); + } + +private: + int _Myval; + const error_category *_Mycat; + }; + + +inline bool operator==( + const error_code& _Left, + const error_code& _Right) noexcept + { + return (_Left.category() == _Right.category() + && _Left.value() == _Right.value()); + } + +inline bool operator==( + const error_code& _Left, + const error_condition& _Right) noexcept + { + return (_Left.category().equivalent(_Left.value(), _Right) + || _Right.category().equivalent(_Left, _Right.value())); + } + +inline bool operator==( + const error_condition& _Left, + const error_code& _Right) noexcept + { + return (_Right.category().equivalent(_Right.value(), _Left) + || _Left.category().equivalent(_Right, _Left.value())); + } + +inline bool operator==( + const error_condition& _Left, + const error_condition& _Right) noexcept + { + return (_Left.category() == _Right.category() + && _Left.value() == _Right.value()); + } + + +inline bool operator!=( + const error_code& _Left, + const error_code& _Right) noexcept + { + return (!(_Left == _Right)); + } + +inline bool operator!=( + const error_code& _Left, + const error_condition& _Right) noexcept + { + return (!(_Left == _Right)); + } + +inline bool operator!=( + const error_condition& _Left, + const error_code& _Right) noexcept + { + return (!(_Left == _Right)); + } + +inline bool operator!=( + const error_condition& _Left, + const error_condition& _Right) noexcept + { + return (!(_Left == _Right)); + } + + +inline bool operator<( + const error_code& _Left, + const error_code& _Right) noexcept + { + return (_Left.category() < _Right.category() + || (_Left.category() == _Right.category() + && _Left.value() < _Right.value())); + } + +inline bool operator<( + const error_condition& _Left, + const error_condition& _Right) noexcept + { + return (_Left.category() < _Right.category() + || (_Left.category() == _Right.category() + && _Left.value() < _Right.value())); + } + + +inline error_condition + error_category::default_error_condition(int _Errval) const noexcept + { + return (error_condition(_Errval, *this)); + } + +inline bool + error_category::equivalent(int _Errval, + const error_condition& _Cond) const noexcept + { + return (default_error_condition(_Errval) == _Cond); + } + +inline bool + error_category::equivalent(const error_code& _Code, + int _Errval) const noexcept + { + return (*this == _Code.category() && _Code.value() == _Errval); + } + + +inline error_condition error_code::default_error_condition() const noexcept + { + return (category().default_error_condition(value())); + } + + +inline error_code make_error_code(_Errc _Errno) noexcept + { + return (error_code((int)_Errno, generic_category())); + } + +inline error_code make_error_code(_Io_errc _Errno) noexcept + { + return (error_code((int)_Errno, iostream_category())); + } + + +inline error_condition make_error_condition(_Errc _Errno) noexcept + { + return (error_condition((int)_Errno, generic_category())); + } + +inline error_condition make_error_condition(_Io_errc _Errno) noexcept + { + return (error_condition((int)_Errno, iostream_category())); + } + + +template<> + struct hash + { + typedef error_code argument_type; + typedef size_t result_type; + + size_t operator()(const argument_type& _Keyval) const + { + return (hash()(_Keyval.value())); + } + }; + + +class _System_error + : public runtime_error + { +private: + static string _Makestr(error_code _Errcode, string _Message) + { + if (!_Message.empty()) + _Message.append(": "); + _Message.append(_Errcode.message()); + return (_Message); + } + +protected: + _System_error(error_code _Errcode, const string& _Message) + : runtime_error(_Makestr(_Errcode, _Message)), _Mycode(_Errcode) + { + } + + error_code _Mycode; + }; + +class system_error + : public _System_error + { +private: + typedef _System_error _Mybase; + +public: + system_error(error_code _Errcode) + : _Mybase(_Errcode, "") + { + } + + system_error(error_code _Errcode, const string& _Message) + : _Mybase(_Errcode, _Message) + { + } + + system_error(error_code _Errcode, const char *_Message) + : _Mybase(_Errcode, _Message) + { + } + + system_error(int _Errval, const error_category& _Errcat) + : _Mybase(error_code(_Errval, _Errcat), "") + { + } + + system_error(int _Errval, const error_category& _Errcat, + const string& _Message) + : _Mybase(error_code(_Errval, _Errcat), _Message) + { + } + + system_error(int _Errval, const error_category& _Errcat, + const char *_Message) + : _Mybase(error_code(_Errval, _Errcat), _Message) + { + } + + const error_code& code() const noexcept + { + return (_Mycode); + } +# 582 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\system_error" 3 + }; + + const char *__cdecl _Syserror_map(int); + int __cdecl _Winerror_map(int); + unsigned long __cdecl _Winerror_message( + unsigned long _Message_id, char *_Narrow, unsigned long _Size); + + +class _Generic_error_category + : public error_category + { +public: + _Generic_error_category() noexcept + { + _Addr = _Generic_addr; + } + + virtual const char *name() const noexcept + { + return ("generic"); + } + + virtual string message(int _Errcode) const + { + return (_Syserror_map(_Errcode)); + } + }; + + +class _Iostream_error_category + : public _Generic_error_category + { +public: + _Iostream_error_category() noexcept + { + _Addr = _Iostream_addr; + } + + virtual const char *name() const noexcept + { + return ("iostream"); + } + + virtual string message(int _Errcode) const + { + if (_Errcode == (int)io_errc::stream) + return ("iostream stream error"); + else + return (_Generic_error_category::message(_Errcode)); + } + }; + + +class _System_error_category + : public error_category + { +public: + _System_error_category() noexcept + { + _Addr = _System_addr; + } + + virtual const char *name() const noexcept + { + return ("system"); + } + + virtual string message(int _Errcode) const + { + const unsigned long _Size = 32767; + string _Narrow(_Size, '\0'); + + const unsigned long _Val = _Winerror_message( + static_cast(_Errcode), &_Narrow[0], _Size); + + if (_Val == 0) + return ("unknown error"); + + _Narrow.resize(_Val); + _Narrow.shrink_to_fit(); + return (_Narrow); + } + + virtual error_condition + default_error_condition(int _Errval) const noexcept + { + int _Posv = _Winerror_map(_Errval); + + if (_Posv != 0) + return (error_condition(_Posv, generic_category())); + else + return (error_condition(_Errval, system_category())); + } + }; + +template + struct _Immortalizer + { + _Immortalizer() + { + ::new (static_cast(&_Storage)) _Ty(); + } + + ~_Immortalizer() noexcept + { + } + + _Immortalizer(const _Immortalizer&) = delete; + _Immortalizer& operator=(const _Immortalizer&) = delete; + + typename aligned_union<1, _Ty>::type _Storage; + }; + +template inline + _Ty& _Immortalize() + { + static _Immortalizer<_Ty> _Static; + return (*reinterpret_cast<_Ty *>(&_Static._Storage)); + } + +inline const error_category& generic_category() noexcept + { + return (_Immortalize<_Generic_error_category>()); + } + +inline const error_category& iostream_category() noexcept + { + return (_Immortalize<_Iostream_error_category>()); + } + +inline const error_category& system_category() noexcept + { + return (_Immortalize<_System_error_category>()); + } +} + +#pragma warning(pop) +#pragma pack(pop) +# 8 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xiosbase" 2 3 + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\share.h" 1 3 +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xiosbase" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4412) + + + +namespace std { +# 47 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xiosbase" 3 +template + class _Iosb + { +public: + enum _Dummy_enum {_Dummy_enum_val = 1}; + enum _Fmtflags + { + _Fmtmask = 0xffff, _Fmtzero = 0}; + + static constexpr _Fmtflags skipws = (_Fmtflags)0x0001; + static constexpr _Fmtflags unitbuf = (_Fmtflags)0x0002; + static constexpr _Fmtflags uppercase = (_Fmtflags)0x0004; + static constexpr _Fmtflags showbase = (_Fmtflags)0x0008; + static constexpr _Fmtflags showpoint = (_Fmtflags)0x0010; + static constexpr _Fmtflags showpos = (_Fmtflags)0x0020; + static constexpr _Fmtflags left = (_Fmtflags)0x0040; + static constexpr _Fmtflags right = (_Fmtflags)0x0080; + static constexpr _Fmtflags internal = (_Fmtflags)0x0100; + static constexpr _Fmtflags dec = (_Fmtflags)0x0200; + static constexpr _Fmtflags oct = (_Fmtflags)0x0400; + static constexpr _Fmtflags hex = (_Fmtflags)0x0800; + static constexpr _Fmtflags scientific = (_Fmtflags)0x1000; + static constexpr _Fmtflags fixed = (_Fmtflags)0x2000; + + static constexpr _Fmtflags hexfloat = + (_Fmtflags)0x3000; + + static constexpr _Fmtflags boolalpha = (_Fmtflags)0x4000; + static constexpr _Fmtflags _Stdio = (_Fmtflags)0x8000; + static constexpr _Fmtflags adjustfield = (_Fmtflags)(0x0040 + | 0x0080 | 0x0100); + static constexpr _Fmtflags basefield = (_Fmtflags)(0x0200 + | 0x0400 | 0x0800); + static constexpr _Fmtflags floatfield = (_Fmtflags)(0x1000 + | 0x2000); + + enum _Iostate + { + _Statmask = 0x17}; + + static constexpr _Iostate goodbit = (_Iostate)0x0; + static constexpr _Iostate eofbit = (_Iostate)0x1; + static constexpr _Iostate failbit = (_Iostate)0x2; + static constexpr _Iostate badbit = (_Iostate)0x4; + + enum _Openmode + { + _Openmask = 0xff}; + + static constexpr _Openmode in = (_Openmode)0x01; + static constexpr _Openmode out = (_Openmode)0x02; + static constexpr _Openmode ate = (_Openmode)0x04; + static constexpr _Openmode app = (_Openmode)0x08; + static constexpr _Openmode trunc = (_Openmode)0x10; + static constexpr _Openmode _Nocreate = (_Openmode)0x40; + static constexpr _Openmode _Noreplace = (_Openmode)0x80; + static constexpr _Openmode binary = (_Openmode)0x20; + + enum _Seekdir + { + _Seekbeg, + _Seekcur, + _Seekend + }; + + static constexpr _Seekdir beg = _Seekbeg; + static constexpr _Seekdir cur = _Seekcur; + static constexpr _Seekdir end = _Seekend; + + enum + { + _Openprot = 0x40}; + }; + +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::skipws; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::unitbuf; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::uppercase; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::showbase; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::showpoint; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::showpos; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::left; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::right; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::internal; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::dec; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::oct; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::hex; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::scientific; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::fixed; + +template + const typename _Iosb<_Dummy>::_Fmtflags + _Iosb<_Dummy>::hexfloat; + +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::boolalpha; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::_Stdio; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::adjustfield; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::basefield; +template + const typename _Iosb<_Dummy>::_Fmtflags _Iosb<_Dummy>::floatfield; + +template + const typename _Iosb<_Dummy>::_Iostate _Iosb<_Dummy>::goodbit; +template + const typename _Iosb<_Dummy>::_Iostate _Iosb<_Dummy>::eofbit; +template + const typename _Iosb<_Dummy>::_Iostate _Iosb<_Dummy>::failbit; +template + const typename _Iosb<_Dummy>::_Iostate _Iosb<_Dummy>::badbit; + +template + const typename _Iosb<_Dummy>::_Openmode _Iosb<_Dummy>::in; +template + const typename _Iosb<_Dummy>::_Openmode _Iosb<_Dummy>::out; +template + const typename _Iosb<_Dummy>::_Openmode _Iosb<_Dummy>::ate; +template + const typename _Iosb<_Dummy>::_Openmode _Iosb<_Dummy>::app; +template + const typename _Iosb<_Dummy>::_Openmode _Iosb<_Dummy>::trunc; +template + const typename _Iosb<_Dummy>::_Openmode _Iosb<_Dummy>::_Nocreate; +template + const typename _Iosb<_Dummy>::_Openmode _Iosb<_Dummy>::_Noreplace; +template + const typename _Iosb<_Dummy>::_Openmode _Iosb<_Dummy>::binary; + +template + const typename _Iosb<_Dummy>::_Seekdir _Iosb<_Dummy>::beg; +template + const typename _Iosb<_Dummy>::_Seekdir _Iosb<_Dummy>::cur; +template + const typename _Iosb<_Dummy>::_Seekdir _Iosb<_Dummy>::end; + + +class ios_base + : public _Iosb + { +public: + typedef int fmtflags; + typedef int iostate; + typedef int openmode; + typedef int seekdir; + + + typedef ::std:: streamoff streamoff; + typedef ::std:: streampos streampos; + + + enum event + { + erase_event, imbue_event, copyfmt_event}; + + typedef void (__cdecl *event_callback)(event, ios_base&, int); + + + typedef unsigned int io_state, open_mode, seek_dir; + + + + class failure + + : public system_error + { + public: + explicit failure(const string &_Message, + const error_code& _Errcode = make_error_code(io_errc::stream)) + : system_error(_Errcode, _Message) + { + } + + explicit failure(const char *_Message, + const error_code& _Errcode = make_error_code(io_errc::stream)) + : system_error(_Errcode, _Message) + { + } +# 251 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xiosbase" 3 + }; + + + class Init + { + public: + Init() + { + _Init_ctor(this); + } + + ~Init() noexcept + { + _Init_dtor(this); + } + + private: + static void __cdecl _Init_ctor(Init *); + static void __cdecl _Init_dtor(Init *); + + static int _Init_cnt; + + static int& __cdecl _Init_cnt_func(); + }; + + explicit operator bool() const + { + return (!fail()); + } + + bool operator!() const + { + return (fail()); + } + + void clear(iostate _State, bool _Reraise) + { + _Mystate = (iostate)(_State & _Statmask); + if ((_Mystate & _Except) == 0) + ; + else if (_Reraise) + throw; + else if (_Mystate & _Except & badbit) + throw failure("ios_base::badbit set"); + else if (_Mystate & _Except & failbit) + throw failure("ios_base::failbit set"); + else + throw failure("ios_base::eofbit set"); + } + + void clear(iostate _State = goodbit) + { + clear(_State, false); + } + + + void clear(io_state _State) + { + clear((iostate)_State); + } + + + iostate rdstate() const + { + return (_Mystate); + } + + void setstate(iostate _State, bool _Exreraise) + { + if (_State != goodbit) + clear((iostate)((int)rdstate() | (int)_State), _Exreraise); + } + + void setstate(iostate _State) + { + if (_State != goodbit) + clear((iostate)((int)rdstate() | (int)_State), false); + } + + + void setstate(io_state _State) + { + setstate((iostate)_State); + } + + + bool good() const + { + return (rdstate() == goodbit); + } + + bool eof() const + { + return ((int)rdstate() & (int)eofbit); + } + + bool fail() const + { + return (((int)rdstate() + & ((int)badbit | (int)failbit)) != 0); + } + + bool bad() const + { + return (((int)rdstate() & (int)badbit) != 0); + } + + iostate exceptions() const + { + return (_Except); + } + + void exceptions(iostate _Newexcept) + { + _Except = (iostate)((int)_Newexcept & (int)_Statmask); + clear(_Mystate); + } + + + void exceptions(io_state _State) + { + exceptions((iostate)_State); + } + + + fmtflags flags() const + { + return (_Fmtfl); + } + + fmtflags flags(fmtflags _Newfmtflags) + { + fmtflags _Oldfmtflags = _Fmtfl; + _Fmtfl = (fmtflags)((int)_Newfmtflags & (int)_Fmtmask); + return (_Oldfmtflags); + } + + fmtflags setf(fmtflags _Newfmtflags) + { + ios_base::fmtflags _Oldfmtflags = _Fmtfl; + _Fmtfl = (fmtflags)((int)_Fmtfl + | ((int)_Newfmtflags & (int)_Fmtmask)); + return (_Oldfmtflags); + } + + fmtflags setf(fmtflags _Newfmtflags, fmtflags _Mask) + { + ios_base::fmtflags _Oldfmtflags = _Fmtfl; + _Fmtfl = (fmtflags)(((int)_Fmtfl & (int)~_Mask) + | ((int)_Newfmtflags & (int)_Mask & (int)_Fmtmask)); + return (_Oldfmtflags); + } + + void unsetf(fmtflags _Mask) + { + _Fmtfl = (fmtflags)((int)_Fmtfl & (int)~_Mask); + } + + streamsize precision() const + { + return (_Prec); + } + + streamsize precision(streamsize _Newprecision) + { + streamsize _Oldprecision = _Prec; + _Prec = _Newprecision; + return (_Oldprecision); + } + + streamsize width() const + { + return (_Wide); + } + + streamsize width(streamsize _Newwidth) + { + streamsize _Oldwidth = _Wide; + _Wide = _Newwidth; + return (_Oldwidth); + } + + locale getloc() const + { + return (*_Ploc); + } + + locale imbue(const locale& _Loc) + { + locale _Oldlocale = *_Ploc; + *_Ploc = _Loc; + _Callfns(imbue_event); + return (_Oldlocale); + } + + static int __cdecl xalloc() + { + { ::std:: _Lockit _Lock(2); + return (_Index++); + } + } + + long& iword(int _Idx) + { + return (_Findarr(_Idx)._Lo); + } + + void *& pword(int _Idx) + { + return (_Findarr(_Idx)._Vp); + } + + void register_callback(event_callback _Pfn, + int _Idx) + { + _Calls = new _Fnarray(_Idx, _Pfn, _Calls); + } + + ios_base& copyfmt(const ios_base& _Other) + { + if (this != &_Other) + { + _Tidy(); + *_Ploc = *_Other._Ploc; + _Fmtfl = _Other._Fmtfl; + _Prec = _Other._Prec; + _Wide = _Other._Wide; + _Iosarray *_Ptr = _Other._Arr; + + for (_Arr = 0; _Ptr != 0; _Ptr = _Ptr->_Next) + if (_Ptr->_Lo != 0 || _Ptr->_Vp != 0) + { + iword(_Ptr->_Index) = _Ptr->_Lo; + pword(_Ptr->_Index) = _Ptr->_Vp; + } + + for (_Fnarray *_Pfa = _Other._Calls; _Pfa != 0; + _Pfa = _Pfa->_Next) + register_callback(_Pfa->_Pfn, _Pfa->_Index); + + _Callfns(copyfmt_event); + exceptions(_Other._Except); + } + return (*this); + } + + static bool __cdecl sync_with_stdio(bool _Newsync = true) + { + { ::std:: _Lockit _Lock(2); + const bool _Oldsync = _Sync; + _Sync = _Newsync; + return (_Oldsync); + } + } + + void swap(ios_base& _Right) + { + if (this != &_Right) + { + ::std:: swap(_Mystate, _Right._Mystate); + ::std:: swap(_Except, _Right._Except); + ::std:: swap(_Fmtfl, _Right._Fmtfl); + ::std:: swap(_Prec, _Right._Prec); + ::std:: swap(_Wide, _Right._Wide); + + ::std:: swap(_Arr, _Right._Arr); + ::std:: swap(_Calls, _Right._Calls); + ::std:: swap(_Ploc, _Right._Ploc); + } + } + + virtual ~ios_base() noexcept + { + _Ios_base_dtor(this); + } + + static void __cdecl + _Addstd(ios_base *); + + size_t _Stdstr; + +protected: + ios_base() + { + } + + void _Init() + { + _Ploc = 0; + _Stdstr = 0; + _Except = goodbit; + _Fmtfl = (fmtflags)(skipws | dec); + _Prec = 6; + _Wide = 0; + _Arr = 0; + _Calls = 0; + clear(goodbit); + _Ploc = new locale; + } + +private: + + struct _Iosarray + : public _Crt_new_delete + { + public: + _Iosarray(int _Idx, _Iosarray *_Link) + : _Next(_Link), _Index(_Idx), _Lo(0), _Vp(0) + { + } + + _Iosarray *_Next; + int _Index; + long _Lo; + void *_Vp; + }; + + + struct _Fnarray + : public _Crt_new_delete + { + _Fnarray(int _Idx, event_callback _Pnew, _Fnarray *_Link) + : _Next(_Link), _Index(_Idx), _Pfn(_Pnew) + { + } + + _Fnarray *_Next; + int _Index; + event_callback _Pfn; + }; + + void _Callfns(event _Ev) + { + for (_Fnarray *_Pfa = _Calls; _Pfa != 0; _Pfa = _Pfa->_Next) + (*_Pfa->_Pfn)(_Ev, *this, _Pfa->_Index); + } + + _Iosarray& _Findarr(int _Idx) + { + _Iosarray *_Ptr1, *_Ptr2; + + for (_Ptr1 = _Arr, _Ptr2 = 0; _Ptr1 != 0; _Ptr1 = _Ptr1->_Next) + if (_Ptr1->_Index == _Idx) + return (*_Ptr1); + else if (_Ptr2 == 0 && _Ptr1->_Lo == 0 && _Ptr1->_Vp == 0) + _Ptr2 = _Ptr1; + + if (_Ptr2 != 0) + { + _Ptr2->_Index = _Idx; + return (*_Ptr2); + } + + _Arr = new _Iosarray(_Idx, _Arr); + return (*_Arr); + } + + void _Tidy() + { + _Callfns(erase_event); + _Iosarray *_Ptr1, *_Ptr2; + + for (_Ptr1 = _Arr; _Ptr1 != 0; _Ptr1 = _Ptr2) + { + _Ptr2 = _Ptr1->_Next; + delete _Ptr1; + } + _Arr = 0; + + _Fnarray *_Pfa1, *_Pfa2; + for (_Pfa1 = _Calls; _Pfa1 != 0; _Pfa1 = _Pfa2) + { + _Pfa2 = _Pfa1->_Next; + delete _Pfa1; + } + _Calls = 0; + } + + iostate _Mystate; + iostate _Except; + fmtflags _Fmtfl; + streamsize _Prec; + streamsize _Wide; + _Iosarray *_Arr; + _Fnarray *_Calls; + locale *_Ploc; + + static int _Index; + static bool _Sync; + + static void __cdecl + _Ios_base_dtor(ios_base *); + +public: + ios_base(const ios_base&) = delete; + ios_base& operator=(const ios_base&) = delete; + }; + + + + + +} + +#pragma warning(pop) +#pragma pack(pop) +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\streambuf" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4251) + +namespace std { + +template + class basic_streambuf + { + typedef basic_streambuf<_Elem, _Traits> _Myt; + +protected: + basic_streambuf() + : _Plocale(new locale) + { + _Init(); + } + + basic_streambuf(_Uninitialized) + { + } + + basic_streambuf(const _Myt& _Right) + : _Plocale(new locale(_Right.getloc())) + { + _Init(); + setp(_Right.pbase(), _Right.pptr(), _Right.epptr()); + setg(_Right.eback(), _Right.gptr(), _Right.egptr()); + } + + _Myt& operator=(const _Myt& _Right) + { + if (this != &_Right) + { + setp(_Right.pbase(), _Right.pptr(), _Right.epptr()); + setg(_Right.eback(), _Right.gptr(), _Right.egptr()); + pubimbue(_Right.getloc()); + } + return (*this); + } + + void swap(_Myt& _Right) + { + if (this != &_Right) + { + _Elem *_Pfirst0 = pbase(); + _Elem *_Pnext0 = pptr(); + _Elem *_Pend = epptr(); + _Elem *_Gfirst0 = eback(); + _Elem *_Gnext0 = gptr(); + _Elem *_Gend = egptr(); + + setp(_Right.pbase(), _Right.pptr(), _Right.epptr()); + _Right.setp(_Pfirst0, _Pnext0, _Pend); + + setg(_Right.eback(), _Right.gptr(), _Right.egptr()); + _Right.setg(_Gfirst0, _Gnext0, _Gend); + + ::std:: swap(_Plocale, _Right._Plocale); + } + } + +public: + typedef _Elem char_type; + typedef _Traits traits_type; + + virtual ~basic_streambuf() noexcept + { + delete _Plocale; + } + + typedef typename _Traits::int_type int_type; + typedef typename _Traits::pos_type pos_type; + typedef typename _Traits::off_type off_type; + + pos_type pubseekoff(off_type _Off, + ios_base::seekdir _Way, + ios_base::openmode _Mode = ios_base::in | ios_base::out) + { + return (seekoff(_Off, _Way, _Mode)); + } + + + pos_type pubseekoff(off_type _Off, + ios_base::seek_dir _Way, + ios_base::open_mode _Mode) + { + return (pubseekoff(_Off, (ios_base::seekdir)_Way, + (ios_base::openmode)_Mode)); + } + + + pos_type pubseekpos(pos_type _Pos, + ios_base::openmode _Mode = ios_base::in | ios_base::out) + { + return (seekpos(_Pos, _Mode)); + } + + + pos_type pubseekpos(pos_type _Pos, + ios_base::open_mode _Mode) + { + return (seekpos(_Pos, (ios_base::openmode)_Mode)); + } + + + _Myt * pubsetbuf(_Elem *_Buffer, + streamsize _Count) + { + return (setbuf(_Buffer, _Count)); + } + + locale pubimbue(const locale &_Newlocale) + { + locale _Oldlocale = *_Plocale; + imbue(_Newlocale); + *_Plocale = _Newlocale; + return (_Oldlocale); + } + + locale getloc() const + { + return (*_Plocale); + } + + streamsize in_avail() + { + streamsize _Res = _Gnavail(); + return (0 < _Res ? _Res : showmanyc()); + } + + int pubsync() + { + return (sync()); + } + + int_type sbumpc() + { + return (0 < _Gnavail() + ? _Traits::to_int_type(*_Gninc()) : uflow()); + } + + int_type sgetc() + { + return (0 < _Gnavail() + ? _Traits::to_int_type(*gptr()) : underflow()); + } + + streamsize sgetn(_Elem *_Ptr, + streamsize _Count) + { + return (xsgetn(_Ptr, _Count)); + } + + int_type snextc() + { + return (1 < _Gnavail() + ? _Traits::to_int_type(*_Gnpreinc()) + : _Traits::eq_int_type(_Traits::eof(), sbumpc()) + ? _Traits::eof() : sgetc()); + } + + int_type sputbackc(_Elem _Ch) + { + return (gptr() != 0 && eback() < gptr() + && _Traits::eq(_Ch, gptr()[-1]) + ? _Traits::to_int_type(*_Gndec()) + : pbackfail(_Traits::to_int_type(_Ch))); + } + + + void stossc() + { + if (0 < _Gnavail()) + _Gninc(); + else + uflow(); + } + + + int_type sungetc() + { + return (gptr() != 0 && eback() < gptr() + ? _Traits::to_int_type(*_Gndec()) : pbackfail()); + } + + int_type sputc(_Elem _Ch) + { + return (0 < _Pnavail() + ? _Traits::to_int_type(*_Pninc() = _Ch) + : overflow(_Traits::to_int_type(_Ch))); + } + + streamsize sputn(const _Elem *_Ptr, + streamsize _Count) + { + return (xsputn(_Ptr, _Count)); + } + + virtual void _Lock() + { + } + + virtual void _Unlock() + { + } + +protected: + _Elem * eback() const + { + return (*_IGfirst); + } + + _Elem * gptr() const + { + return (*_IGnext); + } + + _Elem * pbase() const + { + return (*_IPfirst); + } + + _Elem * pptr() const + { + return (*_IPnext); + } + + _Elem * egptr() const + { + return (*_IGnext + *_IGcount); + } + + void gbump(int _Off) + { + *_IGcount -= _Off; + *_IGnext += _Off; + } + + void setg(_Elem *_First, _Elem *_Next, _Elem *_Last) + { + *_IGfirst = _First; + *_IGnext = _Next; + *_IGcount = (int)(_Last - _Next); + } + + _Elem * epptr() const + { + return (*_IPnext + *_IPcount); + } + + _Elem * _Gndec() + { + ++*_IGcount; + return (--*_IGnext); + } + + _Elem * _Gninc() + { + --*_IGcount; + return ((*_IGnext)++); + } + + _Elem * _Gnpreinc() + { + --*_IGcount; + return (++(*_IGnext)); + } + + streamsize _Gnavail() const + { + return (*_IGnext != 0 ? *_IGcount : 0); + } + + void pbump(int _Off) + { + *_IPcount -= _Off; + *_IPnext += _Off; + } + + void setp(_Elem *_First, _Elem *_Last) + { + *_IPfirst = _First; + *_IPnext = _First; + *_IPcount = (int)(_Last - _First); + } + + void setp(_Elem *_First, _Elem *_Next, _Elem *_Last) + { + *_IPfirst = _First; + *_IPnext = _Next; + *_IPcount = (int)(_Last - _Next); + } + + _Elem * _Pninc() + { + --*_IPcount; + return ((*_IPnext)++); + } + + streamsize _Pnavail() const + { + return (*_IPnext != 0 ? *_IPcount : 0); + } + + void _Init() + { + _IGfirst = &_Gfirst; + _IPfirst = &_Pfirst; + _IGnext = &_Gnext; + _IPnext = &_Pnext; + _IGcount = &_Gcount; + _IPcount = &_Pcount; + setp(0, 0); + setg(0, 0, 0); + } + + void _Init(_Elem **_Gf, _Elem **_Gn, int *_Gc, + _Elem **_Pf, _Elem **_Pn, int *_Pc) + { + _IGfirst = _Gf; + _IPfirst = _Pf; + _IGnext = _Gn; + _IPnext = _Pn; + _IGcount = _Gc; + _IPcount = _Pc; + } + + virtual int_type overflow(int_type = _Traits::eof()) + { + return (_Traits::eof()); + } + + virtual int_type pbackfail(int_type = _Traits::eof()) + { + return (_Traits::eof()); + } + + virtual streamsize showmanyc() + { + return (0); + } + + virtual int_type underflow() + { + return (_Traits::eof()); + } + + virtual int_type uflow() + { + return (_Traits::eq_int_type(_Traits::eof(), underflow()) + ? _Traits::eof() : _Traits::to_int_type(*_Gninc())); + } + + virtual streamsize xsgetn(_Elem * _Ptr, + streamsize _Count) + { + int_type _Meta; + streamsize _Size, _Copied; + + for (_Copied = 0; 0 < _Count; ) + if (0 < (_Size = _Gnavail())) + { + if (_Count < _Size) + _Size = _Count; + _Traits::copy(_Ptr, gptr(), (size_t)_Size); + _Ptr += _Size; + _Copied += _Size; + _Count -= _Size; + gbump((int)_Size); + } + else if (_Traits::eq_int_type(_Traits::eof(), _Meta = uflow())) + break; + else + { + *_Ptr++ = _Traits::to_char_type(_Meta); + ++_Copied; + --_Count; + } + + return (_Copied); + } + + virtual streamsize xsputn(const _Elem *_Ptr, + streamsize _Count) + { + streamsize _Size, _Copied; + + for (_Copied = 0; 0 < _Count; ) + if (0 < (_Size = _Pnavail())) + { + if (_Count < _Size) + _Size = _Count; + _Traits::copy(pptr(), _Ptr, (size_t)_Size); + _Ptr += _Size; + _Copied += _Size; + _Count -= _Size; + pbump((int)_Size); + } + else if (_Traits::eq_int_type(_Traits::eof(), + overflow(_Traits::to_int_type(*_Ptr)))) + break; + else + { + ++_Ptr; + ++_Copied; + --_Count; + } + + return (_Copied); + } + + virtual pos_type seekoff(off_type, + ios_base::seekdir, + ios_base::openmode = ios_base::in | ios_base::out) + { + return (streampos(_BADOFF)); + } + + virtual pos_type seekpos(pos_type, + ios_base::openmode = ios_base::in | ios_base::out) + { + return (streampos(_BADOFF)); + } + + virtual _Myt * setbuf(_Elem *, streamsize) + { + return (this); + } + + virtual int sync() + { + return (0); + } + + virtual void imbue(const locale&) + { + } + +private: + _Elem *_Gfirst; + _Elem *_Pfirst; + _Elem **_IGfirst; + _Elem **_IPfirst; + _Elem *_Gnext; + _Elem *_Pnext; + _Elem **_IGnext; + _Elem **_IPnext; + + int _Gcount; + int _Pcount; + int *_IGcount; + int *_IPcount; + +protected: + locale *_Plocale; + }; +# 484 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\streambuf" 3 +template + class istreambuf_iterator + : public iterator + { + typedef istreambuf_iterator<_Elem, _Traits> _Myt; +public: + typedef _Elem char_type; + typedef _Traits traits_type; + typedef basic_streambuf<_Elem, _Traits> streambuf_type; + typedef basic_istream<_Elem, _Traits> istream_type; + + typedef typename traits_type::int_type int_type; + typedef const _Elem *pointer; + + constexpr istreambuf_iterator(streambuf_type *_Sb = 0) noexcept + : _Strbuf(_Sb), _Got(_Sb == 0), _Val() + { + } + + istreambuf_iterator(istream_type& _Istr) noexcept + : _Strbuf(_Istr.rdbuf()), _Got(_Istr.rdbuf() == 0) + { + } + + _Elem operator*() const + { + if (!_Got) + _Peek(); + + + if (_Strbuf == 0) + _Debug_message(L"istreambuf_iterator is not dereferencable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\streambuf", 517); + + + return (_Val); + } + + const _Elem *operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myt& operator++() + { + + if (_Strbuf == 0) + _Debug_message(L"istreambuf_iterator is not incrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\streambuf", 532); + + + _Inc(); + return (*this); + } + + _Myt operator++(int) + { + if (!_Got) + _Peek(); + _Myt _Tmp = *this; + ++*this; + return (_Tmp); + } + + bool equal(const _Myt& _Right) const + { + if (!_Got) + _Peek(); + if (!_Right._Got) + _Right._Peek(); + return ((_Strbuf == 0 && _Right._Strbuf == 0) + || (_Strbuf != 0 && _Right._Strbuf != 0)); + } + +private: + void _Inc() + { + if (_Strbuf == 0 + || traits_type::eq_int_type(traits_type::eof(), + _Strbuf->sbumpc())) + _Strbuf = 0, _Got = true; + else + _Got = false; + } + + _Elem _Peek() const + { + int_type _Meta; + if (_Strbuf == 0 + || traits_type::eq_int_type(traits_type::eof(), + _Meta = _Strbuf->sgetc())) + _Strbuf = 0; + else + _Val = traits_type::to_char_type(_Meta); + _Got = true; + return (_Val); + } + + mutable streambuf_type *_Strbuf; + mutable bool _Got; + mutable _Elem _Val; + }; + +template + struct _Is_checked_helper > + : public true_type + { + }; + + +template inline + bool operator==( + const istreambuf_iterator<_Elem, _Traits>& _Left, + const istreambuf_iterator<_Elem, _Traits>& _Right) + { + return (_Left.equal(_Right)); + } + +template inline + bool operator!=( + const istreambuf_iterator<_Elem, _Traits>& _Left, + const istreambuf_iterator<_Elem, _Traits>& _Right) + { + return (!(_Left == _Right)); + } + + +template + class ostreambuf_iterator + : public _Outit + { + typedef ostreambuf_iterator<_Elem, _Traits> _Myt; +public: + typedef _Elem char_type; + typedef _Traits traits_type; + typedef basic_streambuf<_Elem, _Traits> streambuf_type; + typedef basic_ostream<_Elem, _Traits> ostream_type; + + ostreambuf_iterator(streambuf_type *_Sb) noexcept + : _Failed(false), _Strbuf(_Sb) + { + } + + ostreambuf_iterator(ostream_type& _Ostr) noexcept + : _Failed(false), _Strbuf(_Ostr.rdbuf()) + { + } + + _Myt& operator=(_Elem _Right) + { + if (_Strbuf == 0 + || traits_type::eq_int_type(_Traits::eof(), + _Strbuf->sputc(_Right))) + _Failed = true; + return (*this); + } + + _Myt& operator*() + { + return (*this); + } + + _Myt& operator++() + { + return (*this); + } + + _Myt& operator++(int) + { + return (*this); + } + + bool failed() const noexcept + { + return (_Failed); + } + +private: + bool _Failed; + streambuf_type *_Strbuf; + }; + +template + struct _Is_checked_helper > + : public true_type + { + }; +} + + +#pragma warning(pop) +#pragma pack(pop) +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4189 4275) + + + + +extern "C" { + + +extern float __cdecl _Stofx(const char *, + char **, + long, int *); +extern double __cdecl _Stodx(const char *, + char **, + long, int *); +extern long double __cdecl _Stoldx(const char *, + char **, + long, int *); +extern long __cdecl _Stolx(const char *, + char **, + int, int *); +extern unsigned long __cdecl _Stoulx(const char *, + char **, + int, int *); +extern long long __cdecl _Stollx(const char *, + char **, + int, int *); +extern unsigned long long __cdecl _Stoullx(const char *, + char **, + int, int *); + + +} + + +namespace std { + + +inline double _Stodx_v2(const char *_Str, char **_Endptr, int _Pten, int *_Perr) + { + int& _Errno_ref = (*_errno()); + const int _Orig = _Errno_ref; + + _Errno_ref = 0; + double _Val = :: strtod(_Str, _Endptr); + *_Perr = _Errno_ref; + _Errno_ref = _Orig; + + if (_Pten != 0) + _Val *= :: pow(10.0, static_cast(_Pten)); + + return (_Val); + } + + +inline float _Stofx_v2(const char *_Str, char **_Endptr, int _Pten, int *_Perr) + { + int& _Errno_ref = (*_errno()); + const int _Orig = _Errno_ref; + + _Errno_ref = 0; + float _Val = :: strtof(_Str, _Endptr); + *_Perr = _Errno_ref; + _Errno_ref = _Orig; + + if (_Pten != 0) + _Val *= :: powf(10.0f, static_cast(_Pten)); + + return (_Val); + } + + +template inline + size_t _Find_elem(_Elem *_Base, _Elem _Ch) + { + _Elem *_Ptr = _Base; + for (; *_Ptr != (_Elem)0 && *_Ptr != _Ch; ++_Ptr) + ; + return ((size_t)(_Ptr - _Base)); + } + +inline wchar_t *_Maklocwcs(const wchar_t *_Ptr) + { + size_t _Count = :: wcslen(_Ptr) + 1; + + wchar_t *_Ptrdest = (wchar_t *)_calloc_dbg(_Count, sizeof (wchar_t), + 2, "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum", 102); + + if (!_Ptrdest) + _Xbad_alloc(); + :: wmemcpy(_Ptrdest, _Ptr, _Count); + return (_Ptrdest); + } + + +template + class numpunct + : public locale::facet + { +public: + typedef basic_string<_Elem, char_traits<_Elem>, allocator<_Elem> > + string_type; + typedef _Elem char_type; + + static locale::id id; + + _Elem decimal_point() const + { + return (do_decimal_point()); + } + + _Elem thousands_sep() const + { + return (do_thousands_sep()); + } + + string grouping() const + { + return (do_grouping()); + } + + string_type falsename() const + { + return (do_falsename()); + } + + string_type truename() const + { + return (do_truename()); + } + + explicit numpunct(size_t _Refs = 0) + : locale::facet(_Refs) + { + { _Locinfo _Lobj; + _Init(_Lobj); + if (_Kseparator == 0) + _Kseparator = + _Maklocchr(',', (_Elem *)0, _Lobj._Getcvt()); + } + } + + numpunct(const _Locinfo& _Lobj, size_t _Refs = 0, bool _Isdef = false) + : locale::facet(_Refs) + { + _Init(_Lobj, _Isdef); + } + + static size_t _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new numpunct<_Elem>( + _Locinfo(_Ploc->c_str()), 0, true); + return (4); + } + +protected: + virtual ~numpunct() noexcept + { + _Tidy(); + } + + numpunct(const char *_Locname, size_t _Refs = 0, bool _Isdef = false) + : locale::facet(_Refs) + { + { _Locinfo _Lobj(_Locname); + _Init(_Lobj, _Isdef); + } + } + + template + void _Getvals(_Elem2, const lconv *_Ptr, _Locinfo::_Cvtvec _Cvt) + { + _Dp = _Maklocchr(_Ptr->decimal_point[0], (_Elem2 *)0, _Cvt); + _Kseparator = _Maklocchr(_Ptr->thousands_sep[0], (_Elem2 *)0, _Cvt); + } + + template<> + void _Getvals(wchar_t, const lconv *_Ptr, _Locinfo::_Cvtvec) + { + _Dp = (_Elem)_Ptr->_W_decimal_point[0]; + _Kseparator = (_Elem)_Ptr->_W_thousands_sep[0]; + } + + void _Init(const _Locinfo& _Lobj, bool _Isdef = false) + { + const lconv *_Ptr = _Lobj._Getlconv(); + _Locinfo::_Cvtvec _Cvt = _Lobj._Getcvt(); + + _Grouping = 0; + _Falsename = 0; + _Truename = 0; + + try { + _Grouping = _Maklocstr(_Isdef ? "" : _Ptr->grouping, (char *)0, _Lobj._Getcvt()); + + _Falsename = _Maklocstr(_Lobj._Getfalse(), (_Elem *)0, _Cvt); + _Truename = _Maklocstr(_Lobj._Gettrue(), (_Elem *)0, _Cvt); + } catch (...) { + _Tidy(); + throw; + } + + if (_Isdef) + { + + _Dp = _Maklocchr('.', (_Elem *)0, _Cvt); + _Kseparator = _Maklocchr(',', (_Elem *)0, _Cvt); + } + else + _Getvals((_Elem)0, _Ptr, _Cvt); + } + + virtual _Elem do_decimal_point() const + { + return (_Dp); + } + + virtual _Elem do_thousands_sep() const + { + return (_Kseparator); + } + + virtual string do_grouping() const + { + return (string(_Grouping)); + } + + virtual string_type do_falsename() const + { + return (string_type(_Falsename)); + } + + virtual string_type do_truename() const + { + return (string_type(_Truename)); + } + +private: + void _Tidy() + { + :: free((void *)_Grouping); + :: free((void *)_Falsename); + :: free((void *)_Truename); + } + + const char *_Grouping; + _Elem _Dp; + _Elem _Kseparator; + const _Elem *_Falsename; + const _Elem *_Truename; + }; + + +template + class numpunct_byname + : public numpunct<_Elem> + { +public: + explicit numpunct_byname(const char *_Locname, size_t _Refs = 0) + : numpunct<_Elem>(_Locname, _Refs) + { + } + + explicit numpunct_byname(const string& _Str, size_t _Refs = 0) + : numpunct<_Elem>(_Str.c_str(), _Refs) + { + } + +protected: + virtual ~numpunct_byname() noexcept + { + } + }; + + +template + locale::id numpunct<_Elem>::id; + + +template > > + class num_get + : public locale::facet + { +public: + typedef numpunct<_Elem> _Mypunct; + typedef basic_string<_Elem, char_traits<_Elem>, allocator<_Elem> > + _Mystr; + + static size_t __cdecl _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new num_get<_Elem, _InIt>( + _Locinfo(_Ploc->c_str())); + return (4); + } + + static locale::id id; + +protected: + virtual ~num_get() noexcept + { + } + + void _Init(const _Locinfo&) + { + } + +public: + explicit num_get(size_t _Refs = 0) + : locale::facet(_Refs) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + num_get(const _Locinfo& _Lobj, size_t _Refs = 0) + : locale::facet(_Refs) + { + _Init(_Lobj); + } + + typedef _Elem char_type; + typedef _InIt iter_type; + + _InIt get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + bool& _Val) const + { + return (do_get(_First, _Last, _Iosbase, _State, _Val)); + } + + _InIt get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + unsigned short& _Val) const + { + return (do_get(_First, _Last, _Iosbase, _State, _Val)); + } + + _InIt get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + unsigned int& _Val) const + { + return (do_get(_First, _Last, _Iosbase, _State, _Val)); + } + + _InIt get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + long& _Val) const + { + return (do_get(_First, _Last, _Iosbase, _State, _Val)); + } + + _InIt get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + unsigned long& _Val) const + { + return (do_get(_First, _Last, _Iosbase, _State, _Val)); + } + + _InIt get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + long long& _Val) const + { + return (do_get(_First, _Last, _Iosbase, _State, _Val)); + } + + _InIt get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + unsigned long long& _Val) const + { + return (do_get(_First, _Last, _Iosbase, _State, _Val)); + } + + _InIt get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + float& _Val) const + { + return (do_get(_First, _Last, _Iosbase, _State, _Val)); + } + + _InIt get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + double& _Val) const + { + return (do_get(_First, _Last, _Iosbase, _State, _Val)); + } + + _InIt get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + long double& _Val) const + { + return (do_get(_First, _Last, _Iosbase, _State, _Val)); + } + + _InIt get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + void *& _Val) const + { + return (do_get(_First, _Last, _Iosbase, _State, _Val)); + } + +protected: + virtual _InIt do_get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + bool& _Val) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum", 427); + int _Ans = -1; + + if (_Iosbase.flags() & ios_base::boolalpha) + { + typedef typename _Mystr::size_type _Mystrsize; + const _Mypunct& _Punct_fac = use_facet< _Mypunct >(_Iosbase.getloc()); + _Mystr _Str((_Mystrsize)1, (char_type)0); + _Str += _Punct_fac.falsename(); + _Str += (char_type)0; + _Str += _Punct_fac.truename(); + _Ans = _Getloctxt(_First, _Last, (size_t)2, _Str.c_str()); + } + else + { + char _Ac[32], *_Ep; + int _Errno = 0; + const unsigned long _Ulo = :: _Stoulx(_Ac, &_Ep, + _Getifld(_Ac, _First, _Last, _Iosbase.flags(), + _Iosbase.getloc()), &_Errno); + if (_Ep != _Ac && _Errno == 0 && _Ulo <= 1) + _Ans = _Ulo; + } + + if (_First == _Last) + _State |= ios_base::eofbit; + if (_Ans < 0) + _State |= ios_base::failbit; + else + _Val = _Ans != 0; + return (_First); + } + + virtual _InIt do_get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + unsigned short& _Val) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum", 464); + char _Ac[32], *_Ep; + int _Errno = 0; + int _Base = _Getifld(_Ac, _First, _Last, _Iosbase.flags(), + _Iosbase.getloc()); + char *_Ptr = _Ac[0] == '-' ? _Ac + 1 : _Ac; + const unsigned long _Ans = + :: _Stoulx(_Ptr, &_Ep, _Base, &_Errno); + + if (_First == _Last) + _State |= ios_base::eofbit; + if (_Ep == _Ptr || _Errno != 0 || 0xffff < _Ans) + _State |= ios_base::failbit; + else + _Val = (unsigned short)(_Ac[0] == '-' + ? 0 -_Ans : _Ans); + return (_First); + } + + virtual _InIt do_get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + unsigned int& _Val) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum", 487); + char _Ac[32], *_Ep; + int _Errno = 0; + int _Base = _Getifld(_Ac, _First, _Last, _Iosbase.flags(), + _Iosbase.getloc()); + char *_Ptr = _Ac[0] == '-' ? _Ac + 1 : _Ac; + const unsigned long _Ans = + :: _Stoulx(_Ptr, &_Ep, _Base, &_Errno); + + if (_First == _Last) + _State |= ios_base::eofbit; + if (_Ep == _Ptr || _Errno != 0 || 0xffffffff < _Ans) + _State |= ios_base::failbit; + else + _Val = _Ac[0] == '-' ? 0 -_Ans : _Ans; + return (_First); + } + + virtual _InIt do_get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + long& _Val) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum", 509); + char _Ac[32], *_Ep; + int _Errno = 0; + const long _Ans = :: _Stolx(_Ac, &_Ep, + _Getifld(_Ac, _First, _Last, _Iosbase.flags(), + _Iosbase.getloc()), &_Errno); + + if (_First == _Last) + _State |= ios_base::eofbit; + if (_Ep == _Ac || _Errno != 0) + _State |= ios_base::failbit; + else + _Val = _Ans; + return (_First); + } + + virtual _InIt do_get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + unsigned long& _Val) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum", 529); + char _Ac[32], *_Ep; + int _Errno = 0; + const unsigned long _Ans = :: _Stoulx(_Ac, &_Ep, + _Getifld(_Ac, _First, _Last, _Iosbase.flags(), + _Iosbase.getloc()), &_Errno); + + if (_First == _Last) + _State |= ios_base::eofbit; + if (_Ep == _Ac || _Errno != 0) + _State |= ios_base::failbit; + else + _Val = _Ans; + return (_First); + } + + virtual _InIt do_get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + long long& _Val) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum", 549); + char _Ac[32], *_Ep; + int _Errno = 0; + const long long _Ans = :: _Stollx(_Ac, &_Ep, + _Getifld(_Ac, _First, _Last, _Iosbase.flags(), + _Iosbase.getloc()), &_Errno); + + if (_First == _Last) + _State |= ios_base::eofbit; + if (_Ep == _Ac || _Errno != 0) + _State |= ios_base::failbit; + else + _Val = _Ans; + return (_First); + } + + virtual _InIt do_get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + unsigned long long& _Val) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum", 569); + char _Ac[32], *_Ep; + int _Errno = 0; + const unsigned long long _Ans = :: _Stoullx(_Ac, &_Ep, + _Getifld(_Ac, _First, _Last, _Iosbase.flags(), + _Iosbase.getloc()), &_Errno); + + if (_First == _Last) + _State |= ios_base::eofbit; + if (_Ep == _Ac || _Errno != 0) + _State |= ios_base::failbit; + else + _Val = _Ans; + return (_First); + } + + + + + + + + virtual _InIt do_get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + float& _Val) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum", 595); + char _Ac[(8 + 768 + 16)], *_Ep; + int _Errno = 0; + int _Hexexp = 1000000000; + float _Ans = _Stofx_v2(_Ac, &_Ep, + _Getffld(_Ac, _First, _Last, + _Iosbase, &_Hexexp), &_Errno); + + if (_Hexexp != 1000000000 && _Hexexp != 0) + _Ans = :: ldexpf(_Ans, 4 * _Hexexp); + + if (_First == _Last) + _State |= ios_base::eofbit; + if (_Ep == _Ac || _Errno != 0) + _State |= ios_base::failbit; + else + _Val = _Ans; + return (_First); + } + + virtual _InIt do_get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + double& _Val) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum", 619); + char _Ac[(8 + 768 + 16)], *_Ep; + int _Errno = 0; + int _Hexexp = 1000000000; + double _Ans = _Stodx_v2(_Ac, &_Ep, + _Getffld(_Ac, _First, _Last, + _Iosbase, &_Hexexp), &_Errno); + + if (_Hexexp != 1000000000 && _Hexexp != 0) + _Ans = :: ldexp(_Ans, 4 * _Hexexp); + + if (_First == _Last) + _State |= ios_base::eofbit; + if (_Ep == _Ac || _Errno != 0) + _State |= ios_base::failbit; + else + _Val = _Ans; + return (_First); + } + + virtual _InIt do_get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + long double& _Val) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum", 643); + char _Ac[(8 + 768 + 16)], *_Ep; + int _Errno = 0; + int _Hexexp = 1000000000; + long double _Ans = _Stodx_v2(_Ac, &_Ep, + _Getffld(_Ac, _First, _Last, + _Iosbase, &_Hexexp), &_Errno); + + if (_Hexexp != 1000000000 && _Hexexp != 0) + _Ans = :: ldexpl(_Ans, 4 * _Hexexp); + + if (_First == _Last) + _State |= ios_base::eofbit; + if (_Ep == _Ac || _Errno != 0) + _State |= ios_base::failbit; + else + _Val = _Ans; + return (_First); + } + + + + virtual _InIt do_get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, + void *& _Val) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum", 669); + char _Ac[32], *_Ep; + int _Errno = 0; + + int _Base = _Getifld(_Ac, _First, _Last, ios_base::hex, + _Iosbase.getloc()); + const unsigned long long _Ans = + (sizeof (void *) == sizeof (unsigned long)) + ? (unsigned long long):: _Stoulx(_Ac, &_Ep, _Base, &_Errno) + : :: _Stoullx(_Ac, &_Ep, _Base, &_Errno); + + if (_First == _Last) + _State |= ios_base::eofbit; + if (_Ep == _Ac || _Errno != 0) + _State |= ios_base::failbit; + else + _Val = (void *)((char *)0 + _Ans); + return (_First); + } + +private: + int __cdecl _Getifld(char *_Ac, + _InIt& _First, _InIt& _Last, ios_base::fmtflags _Basefield, + const locale& _Loc) const + { + const _Mypunct& _Punct_fac = use_facet< _Mypunct >(_Loc); + const string _Grouping = _Punct_fac.grouping(); + const _Elem _Kseparator = _Grouping.size() == 0 + ? (_Elem)0 : _Punct_fac.thousands_sep(); + + enum { + _NUMGET_SIGNOFF = 22, + _NUMGET_XOFF = 24}; + static const char _Src[] = {"0123456789ABCDEFabcdef-+Xx"}; + _Elem _Atoms[sizeof (_Src)]; + const ctype<_Elem>& _Ctype_fac = + use_facet< ctype<_Elem> >(_Loc); + _Ctype_fac.widen(&_Src[0], &_Src[sizeof (_Src)], _Atoms); + + char *_Ptr = _Ac; + + if (_First == _Last) + ; + else if (*_First == _Atoms[_NUMGET_SIGNOFF + 1]) + *_Ptr++ = '+', ++_First; + else if (*_First == _Atoms[_NUMGET_SIGNOFF]) + *_Ptr++ = '-', ++_First; + + _Basefield &= ios_base::basefield; + int _Base = _Basefield == ios_base::oct ? 8 + : _Basefield == ios_base::hex ? 16 + : _Basefield == ios_base::_Fmtzero ? 0 : 10; + + bool _Seendigit = false; + bool _Nonzero = false; + + if (_First != _Last && *_First == _Atoms[0]) + { + _Seendigit = true, ++_First; + if (_First != _Last && (*_First == _Atoms[_NUMGET_XOFF + 1] + || *_First == _Atoms[_NUMGET_XOFF]) + && (_Base == 0 || _Base == 16)) + _Base = 16, _Seendigit = false, ++_First; + else if (_Base == 0) + _Base = 8; + } + + size_t _Dlen = _Base == 0 || _Base == 10 ? 10 + : _Base == 8 ? 8 : 16 + 6; + string _Groups((size_t)1, (char)_Seendigit); + size_t _Group = 0; + + for (char *const _Pe = &_Ac[32 - 1]; + _First != _Last; ++_First) + { + size_t _Idx = _Find_elem(_Atoms, *_First); + if (_Idx < _Dlen) + { + *_Ptr = _Src[_Idx]; + if ((_Nonzero || *_Ptr != '0') && _Ptr < _Pe) + ++_Ptr, _Nonzero = true; + _Seendigit = true; + if (_Groups[_Group] != 127) + ++_Groups[_Group]; + } + else if (_Groups[_Group] == '\0' + || _Kseparator == (_Elem)0 + || *_First != _Kseparator) + break; + else + { + _Groups.append((string::size_type)1, '\0'); + ++_Group; + } + } + + if (_Group == 0) + ; + else if ('\0' < _Groups[_Group]) + ++_Group; + else + _Seendigit = false; + + for (const char *_Pg = &_Grouping[0]; _Seendigit && 0 < _Group; ) + if (*_Pg == 127) + break; + else if ((0 < --_Group && *_Pg != _Groups[_Group]) + || (0 == _Group && *_Pg < _Groups[_Group])) + _Seendigit = false; + else if ('\0' < _Pg[1]) + ++_Pg; + + if (_Seendigit && !_Nonzero) + *_Ptr++ = '0'; + else if (!_Seendigit) + _Ptr = _Ac; + *_Ptr = '\0'; + return (_Base); + } + + int __cdecl _Getffld(char *_Ac, + _InIt& _First, _InIt &_Last, + ios_base& _Iosbase, int *_Phexexp) const + { + if ((_Iosbase.flags() & ios_base::floatfield) == ios_base::hexfloat) + return (_Getffldx(_Ac, _First, _Last, + _Iosbase, _Phexexp)); + + const _Mypunct& _Punct_fac = use_facet< _Mypunct >(_Iosbase.getloc()); + const string _Grouping = _Punct_fac.grouping(); + char *_Ptr = _Ac; + bool _Bad = false; + bool _Sticky = false; + + enum { + _NUMGET_SIGNOFF = 10, + _NUMGET_EOFF = 12}; + static const char _Src[] = {"0123456789-+Ee"}; + _Elem _Atoms[sizeof (_Src)]; + const ctype<_Elem>& _Ctype_fac = + use_facet< ctype<_Elem> >(_Iosbase.getloc()); + _Ctype_fac.widen(&_Src[0], &_Src[sizeof (_Src)], _Atoms); + + if (_First == _Last) + ; + else if (*_First == _Atoms[_NUMGET_SIGNOFF + 1]) + *_Ptr++ = '+', ++_First; + else if (*_First == _Atoms[_NUMGET_SIGNOFF]) + *_Ptr++ = '-', ++_First; + + char *_Leading = _Ptr; + *_Ptr++ = '0'; + + bool _Seendigit = false; + int _Significant = 0; + int _Pten = 0; + size_t _Idx; + + const int _Max_sig_dig = (*_Phexexp == 1000000000 ? 768 : 36); + + const char *_Pg = &_Grouping[0]; + if (*_Pg == 127 || *_Pg <= '\0') + for (; _First != _Last + && (_Idx = _Find_elem(_Atoms, *_First)) < 10; + _Seendigit = true, ++_First) + if (_Max_sig_dig <= _Significant) + { + ++_Pten; + if (0 < _Idx) + _Sticky = true; + } + else if (_Idx == 0 && _Significant == 0) + ; + else + { + *_Ptr++ = _Src[_Idx]; + ++_Significant; + } + else + { + const _Elem _Kseparator = _Grouping.size() == 0 + ? (_Elem)0 : _Punct_fac.thousands_sep(); + string _Groups((size_t)1, '\0'); + size_t _Group = 0; + + for (; _First != _Last; ++_First) + if ((_Idx = _Find_elem(_Atoms, *_First)) < 10) + { + _Seendigit = true; + if (_Max_sig_dig <= _Significant) + { + ++_Pten; + if (0 < _Idx) + _Sticky = true; + } + else if (_Idx == 0 && _Significant == 0) + ; + else + { + *_Ptr++ = _Src[_Idx]; + ++_Significant; + } + if (_Groups[_Group] != 127) + ++_Groups[_Group]; + } + else if (_Groups[_Group] == '\0' + || _Kseparator == (_Elem)0 + || *_First != _Kseparator) + break; + else + { + _Groups.append((size_t)1, '\0'); + ++_Group; + } + if (_Group == 0) + ; + else if ('\0' < _Groups[_Group]) + ++_Group; + else + _Bad = true; + + while (!_Bad && 0 < _Group) + if (*_Pg == 127) + break; + else if ((0 < --_Group && *_Pg != _Groups[_Group]) + || (0 == _Group && *_Pg < _Groups[_Group])) + _Bad = true; + else if ('\0' < _Pg[1]) + ++_Pg; + } + + if (_First != _Last && *_First == _Punct_fac.decimal_point()) + *_Ptr++ = localeconv()->decimal_point[0], ++_First; + + if (*_Phexexp != 1000000000 && _Significant == 0) + { + for (; _First != _Last && *_First == _Atoms[0]; + _Seendigit = true, ++_First) + --_Pten; + if (_Pten < 0) + *_Ptr++ = '0', ++_Pten; + } + + for (; _First != _Last + && (_Idx = _Find_elem(_Atoms, *_First)) < 10; + _Seendigit = true, ++_First) + if (_Significant < _Max_sig_dig) + { + *_Ptr++ = _Src[_Idx]; + ++_Significant; + } + else if (0 < _Idx) + _Sticky = true; + + if (_Sticky) + { + char *_Px = _Ptr; + for (; --_Px != _Leading; ) + { + if (*_Px == localeconv()->decimal_point[0]) + ; + else if (*_Px != '9') + { + ++*_Px; + break; + } + else + *_Px = '0'; + } + + if (_Px == _Leading) + { + *_Px = '1'; + ++_Pten; + } + } + + if (_Seendigit && _First != _Last + && (*_First == _Atoms[_NUMGET_EOFF + 1] + || *_First == _Atoms[_NUMGET_EOFF])) + { + *_Ptr++ = 'e', ++_First; + _Seendigit = false, _Significant = 0; + + if (_First == _Last) + ; + else if (*_First == _Atoms[_NUMGET_SIGNOFF + 1]) + *_Ptr++ = '+', ++_First; + else if (*_First == _Atoms[_NUMGET_SIGNOFF]) + *_Ptr++ = '-', ++_First; + for (; _First != _Last && *_First == _Atoms[0]; ) + _Seendigit = true, ++_First; + if (_Seendigit) + *_Ptr++ = '0'; + for (; _First != _Last + && (_Idx = _Find_elem(_Atoms, *_First)) < 10; + _Seendigit = true, ++_First) + if (_Significant < 8) + { + *_Ptr++ = _Src[_Idx]; + ++_Significant; + } + } + + if (_Bad || !_Seendigit) + _Ptr = _Ac; + *_Ptr = '\0'; + return (_Pten); + } + + int __cdecl _Getffldx(char *_Ac, + _InIt& _First, _InIt &_Last, + ios_base& _Iosbase, int *_Phexexp) const + { + const _Mypunct& _Punct_fac = use_facet< _Mypunct >(_Iosbase.getloc()); + const string _Grouping = _Punct_fac.grouping(); + + enum { + _NUMGET_SIGNOFF = 22, + _NUMGET_XOFF = 24, + _NUMGET_POFF = 26}; + static const char _Src[] = {"0123456789ABCDEFabcdef-+XxPp"}; + _Elem _Atoms[sizeof (_Src)]; + const ctype<_Elem>& _Ctype_fac = + use_facet< ctype<_Elem> >(_Iosbase.getloc()); + _Ctype_fac.widen(&_Src[0], &_Src[sizeof (_Src)], _Atoms); + + char *_Ptr = _Ac; + bool _Bad = false; + size_t _Idx; + + if (_First == _Last) + ; + else if (*_First == _Atoms[_NUMGET_SIGNOFF + 1]) + *_Ptr++ = '+', ++_First; + else if (*_First == _Atoms[_NUMGET_SIGNOFF]) + *_Ptr++ = '-', ++_First; + + *_Ptr++ = '0'; + *_Ptr++ = 'x'; + + bool _Seendigit = false; + int _Significant = 0; + int _Phex = 0; + + if (_First == _Last || *_First != _Atoms[0]) + ; + else if (++_First != _Last + && (*_First == _Atoms[_NUMGET_XOFF + 1] + || *_First == _Atoms[_NUMGET_XOFF])) + ++_First; + else + _Seendigit = true; + + const int _Max_sig_dig = (*_Phexexp == 1000000000 ? 768 : 36); + + const char *_Pg = &_Grouping[0]; + if (*_Pg == 127 || *_Pg <= '\0') + for (; _First != _Last + && (_Idx = _Find_elem(_Atoms, *_First)) < _NUMGET_SIGNOFF; + _Seendigit = true, ++_First) + if (_Max_sig_dig <= _Significant) + ++_Phex; + else if (_Idx == 0 && _Significant == 0) + ; + else + { + *_Ptr++ = _Src[_Idx]; + ++_Significant; + } + else + { + const _Elem _Kseparator = _Grouping.size() == 0 + ? (_Elem)0 : _Punct_fac.thousands_sep(); + string _Groups((size_t)1, '\0'); + size_t _Group = 0; + + for (; _First != _Last; ++_First) + if ((_Idx = _Find_elem(_Atoms, *_First)) < _NUMGET_SIGNOFF) + { + _Seendigit = true; + if (_Max_sig_dig <= _Significant) + ++_Phex; + else if (_Idx == 0 && _Significant == 0) + ; + else + { + *_Ptr++ = _Src[_Idx]; + ++_Significant; + } + if (_Groups[_Group] != 127) + ++_Groups[_Group]; + } + else if (_Groups[_Group] == '\0' + || _Kseparator == (_Elem)0 + || *_First != _Kseparator) + break; + else + { + _Groups.append((size_t)1, '\0'); + ++_Group; + } + if (_Group == 0) + ; + else if ('\0' < _Groups[_Group]) + ++_Group; + else + _Bad = true; + + while (!_Bad && 0 < _Group) + if (*_Pg == 127) + break; + else if ((0 < --_Group && *_Pg != _Groups[_Group]) + || (0 == _Group && *_Pg < _Groups[_Group])) + _Bad = true; + else if ('\0' < _Pg[1]) + ++_Pg; + } + + if (_Seendigit && _Significant == 0) + *_Ptr++ = '0'; + + if (_First != _Last && *_First == _Punct_fac.decimal_point()) + *_Ptr++ = localeconv()->decimal_point[0], ++_First; + + if (_Significant == 0) + { + for (; _First != _Last && *_First == _Atoms[0]; + _Seendigit = true, ++_First) + --_Phex; + if (_Phex < 0) + *_Ptr++ = '0', ++_Phex; + } + + for (; _First != _Last + && (_Idx = _Find_elem(_Atoms, *_First)) < _NUMGET_SIGNOFF; + _Seendigit = true, ++_First) + if (_Significant < _Max_sig_dig) + { + *_Ptr++ = _Src[_Idx]; + ++_Significant; + } + + if (_Seendigit && _First != _Last + && (*_First == _Atoms[_NUMGET_POFF + 1] + || *_First == _Atoms[_NUMGET_POFF])) + { + *_Ptr++ = 'p', ++_First; + _Seendigit = false, _Significant = 0; + + if (_First == _Last) + ; + else if (*_First == _Atoms[_NUMGET_SIGNOFF + 1]) + *_Ptr++ = '+', ++_First; + else if (*_First == _Atoms[_NUMGET_SIGNOFF]) + *_Ptr++ = '-', ++_First; + for (; _First != _Last && *_First == _Atoms[0]; ) + _Seendigit = true, ++_First; + if (_Seendigit) + *_Ptr++ = '0'; + for (; _First != _Last + && (_Idx = _Find_elem(_Atoms, *_First)) < _NUMGET_SIGNOFF; + _Seendigit = true, ++_First) + if (_Significant < 8) + { + *_Ptr++ = _Src[_Idx]; + ++_Significant; + } + } + + if (_Bad || !_Seendigit) + _Ptr = _Ac; + *_Ptr = '\0'; + *_Phexexp = _Phex; + return (0); + } + + + + }; + + +template + locale::id num_get<_Elem, _InIt>::id; + + +template > > + class num_put + : public locale::facet + { +public: + typedef numpunct<_Elem> _Mypunct; + typedef basic_string<_Elem, char_traits<_Elem>, allocator<_Elem> > + _Mystr; + + static size_t __cdecl _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new num_put<_Elem, _OutIt>( + _Locinfo(_Ploc->c_str())); + return (4); + } + + static locale::id id; + +protected: + virtual ~num_put() noexcept + { + } + + void _Init(const _Locinfo&) + { + } + +public: + explicit num_put(size_t _Refs = 0) + : locale::facet(_Refs) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + num_put(const _Locinfo& _Lobj, size_t _Refs = 0) + : locale::facet(_Refs) + { + _Init(_Lobj); + } + + typedef _Elem char_type; + typedef _OutIt iter_type; + + _OutIt put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, bool _Val) const + { + return (do_put(_Dest, _Iosbase, _Fill, _Val)); + } + + _OutIt put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, long _Val) const + { + return (do_put(_Dest, _Iosbase, _Fill, _Val)); + } + + _OutIt put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, unsigned long _Val) const + { + return (do_put(_Dest, _Iosbase, _Fill, _Val)); + } + + _OutIt put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, long long _Val) const + { + return (do_put(_Dest, _Iosbase, _Fill, _Val)); + } + + _OutIt put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, unsigned long long _Val) const + { + return (do_put(_Dest, _Iosbase, _Fill, _Val)); + } + + _OutIt put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, double _Val) const + { + return (do_put(_Dest, _Iosbase, _Fill, _Val)); + } + + _OutIt put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, long double _Val) const + { + return (do_put(_Dest, _Iosbase, _Fill, _Val)); + } + + _OutIt put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, const void *_Val) const + { + return (do_put(_Dest, _Iosbase, _Fill, _Val)); + } + +protected: + virtual _OutIt do_put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, bool _Val) const + { + _Debug_pointer(_Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum", 1256); + if (!(_Iosbase.flags() & ios_base::boolalpha)) + return (do_put(_Dest, _Iosbase, _Fill, (long)_Val)); + else + { + const _Mypunct& _Punct_fac = use_facet< _Mypunct >(_Iosbase.getloc()); + _Mystr _Str; + if (_Val) + _Str.assign(_Punct_fac.truename()); + else + _Str.assign(_Punct_fac.falsename()); + + size_t _Fillcount = _Iosbase.width() <= 0 + || (size_t)_Iosbase.width() <= _Str.size() + ? 0 : (size_t)_Iosbase.width() - _Str.size(); + + if ((_Iosbase.flags() & ios_base::adjustfield) != ios_base::left) + { + _Dest = _Rep(_Dest, _Fill, _Fillcount); + _Fillcount = 0; + } + _Dest = _Put(_Dest, _Str.c_str(), _Str.size()); + _Iosbase.width(0); + return (_Rep(_Dest, _Fill, _Fillcount)); + } + } + + virtual _OutIt do_put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, long _Val) const + { + char _Buf[2 * 32], _Fmt[6]; + + return (_Iput(_Dest, _Iosbase, _Fill, _Buf, + :: sprintf_s(_Buf, sizeof (_Buf), _Ifmt(_Fmt, "ld", + _Iosbase.flags()), _Val))); + } + + virtual _OutIt do_put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, unsigned long _Val) const + { + char _Buf[2 * 32], _Fmt[6]; + + return (_Iput(_Dest, _Iosbase, _Fill, _Buf, + :: sprintf_s(_Buf, sizeof (_Buf), _Ifmt(_Fmt, "lu", + _Iosbase.flags()), _Val))); + } + + virtual _OutIt do_put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, long long _Val) const + { + char _Buf[2 * 32], _Fmt[8]; + + return (_Iput(_Dest, _Iosbase, _Fill, _Buf, + :: sprintf_s(_Buf, sizeof (_Buf), _Ifmt(_Fmt, "Ld", + _Iosbase.flags()), _Val))); + } + + virtual _OutIt do_put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, unsigned long long _Val) const + { + char _Buf[2 * 32], _Fmt[8]; + + return (_Iput(_Dest, _Iosbase, _Fill, _Buf, + :: sprintf_s(_Buf, sizeof (_Buf), _Ifmt(_Fmt, "Lu", + _Iosbase.flags()), _Val))); + } + + virtual _OutIt do_put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, double _Val) const + { + string _Buf; + char _Fmt[8]; + bool _Isfixed = (_Iosbase.flags() & ios_base::floatfield) + == ios_base::fixed; + streamsize _Precision = _Iosbase.precision() <= 0 && !_Isfixed + ? 6 : _Iosbase.precision(); + size_t _Bufsize = (size_t)_Precision; + if (_Isfixed && 1e10 < :: fabs(_Val)) + { + int _Ptwo; + (void):: frexp(_Val, &_Ptwo); + _Bufsize += :: abs(_Ptwo) * 30103L / 100000L; + } + _Buf.resize(_Bufsize + 50); + + int _Ngen = :: sprintf_s((char *)_Buf.c_str(), _Buf.size(), + _Ffmt(_Fmt, 0, _Iosbase.flags()), (int)_Precision, _Val); + + return (_Fput(_Dest, _Iosbase, _Fill, _Buf.c_str(), _Ngen)); + } + + virtual _OutIt do_put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, long double _Val) const + { + string _Buf; + char _Fmt[8]; + bool _Isfixed = (_Iosbase.flags() & ios_base::floatfield) + == ios_base::fixed; + streamsize _Precision = _Iosbase.precision() <= 0 && !_Isfixed + ? 6 : _Iosbase.precision(); + size_t _Bufsize = (size_t)_Precision; + if (_Isfixed && 1e10 < :: fabsl(_Val)) + { + int _Ptwo; + (void):: frexpl(_Val, &_Ptwo); + _Bufsize += :: abs(_Ptwo) * 30103L / 100000L; + } + _Buf.resize(_Bufsize + 50); + + int _Ngen = :: sprintf_s((char *)_Buf.c_str(), _Buf.size(), + _Ffmt(_Fmt, 'L', _Iosbase.flags()), (int)_Precision, _Val); + + return (_Fput(_Dest, _Iosbase, _Fill, _Buf.c_str(), _Ngen)); + } + + virtual _OutIt do_put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, const void *_Val) const + { + char _Buf[2 * 32]; + + return (_Iput(_Dest, _Iosbase, _Fill, _Buf, + :: sprintf_s(_Buf, sizeof (_Buf), "%p", _Val))); + } + +private: + char *__cdecl _Ffmt(char *_Fmt, + char _Spec, ios_base::fmtflags _Flags) const + { + char *_Ptr = _Fmt; + *_Ptr++ = '%'; + + if (_Flags & ios_base::showpos) + *_Ptr++ = '+'; + if (_Flags & ios_base::showpoint) + *_Ptr++ = '#'; + *_Ptr++ = '.'; + *_Ptr++ = '*'; + if (_Spec != '\0') + *_Ptr++ = _Spec; + + ios_base::fmtflags _Ffl = _Flags & ios_base::floatfield; + if (_Flags & ios_base::uppercase) + *_Ptr++ = _Ffl == ios_base::fixed ? 'f' + : _Ffl == ios_base::hexfloat ? 'A' + : _Ffl == ios_base::scientific ? 'E' : 'G'; + else + *_Ptr++ = _Ffl == ios_base::fixed ? 'f' + : _Ffl == ios_base::hexfloat ? 'a' + : _Ffl == ios_base::scientific ? 'e' : 'g'; + + *_Ptr = '\0'; + return (_Fmt); + } + + _OutIt __cdecl _Fput(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, const char *_Buf, + size_t _Count) const + { + _Debug_pointer(_Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum", 1414); + size_t _Prefix = 0 < _Count && (*_Buf == '+' || *_Buf == '-') + ? 1 : 0; + + const char *_Exps; + if ((_Iosbase.flags() & ios_base::floatfield) != ios_base::hexfloat) + _Exps = "eE"; + else + { + _Exps = "pP"; + if (_Prefix + 2 <= _Count && _Buf[_Prefix] == '0' + && (_Buf[_Prefix + 1] == 'x' || _Buf[_Prefix + 1] == 'X')) + _Prefix += 2; + } + const size_t _Eoff = + :: strcspn(&_Buf[0], _Exps); + char _Dp[2] = {"."}; + _Dp[0] = :: localeconv()->decimal_point[0]; + const size_t _Poff = + :: strcspn(&_Buf[0], &_Dp[0]); + + const ctype<_Elem>& _Ctype_fac = + use_facet< ctype<_Elem> >(_Iosbase.getloc()); + _Mystr _Groupstring(_Count, _Elem(0)); + _Ctype_fac.widen(&_Buf[0], &_Buf[_Count], &_Groupstring[0]); + + const _Mypunct& _Punct_fac = use_facet< _Mypunct >(_Iosbase.getloc()); + const string _Grouping = _Punct_fac.grouping(); + const _Elem _Kseparator = _Punct_fac.thousands_sep(); + + if (_Poff != _Count) + _Groupstring[_Poff] = _Punct_fac.decimal_point(); + + size_t _Off = _Poff == _Count ? _Eoff : _Poff; + const char *_Pg = &_Grouping[0]; + while (*_Pg != 127 && '\0' < *_Pg + && (size_t)*_Pg < _Off - _Prefix) + { + _Groupstring.insert(_Off -= *_Pg, (size_t)1, _Kseparator); + if ('\0' < _Pg[1]) + ++_Pg; + } + + _Count = _Groupstring.size(); + size_t _Fillcount = _Iosbase.width() <= 0 + || (size_t)_Iosbase.width() <= _Count + ? 0 : (size_t)_Iosbase.width() - _Count; + + ios_base::fmtflags _Adjustfield = + _Iosbase.flags() & ios_base::adjustfield; + if (_Adjustfield != ios_base::left + && _Adjustfield != ios_base::internal) + { + _Dest = _Rep(_Dest, _Fill, _Fillcount); + _Fillcount = 0; + _Dest = _Put(_Dest, &_Groupstring[0], _Prefix); + } + else if (_Adjustfield == ios_base::internal) + { + _Dest = _Put(_Dest, &_Groupstring[0], _Prefix); + _Dest = _Rep(_Dest, _Fill, _Fillcount); + _Fillcount = 0; + } + else + _Dest = _Put(_Dest, &_Groupstring[0], _Prefix); + + _Dest = _Put(_Dest, &_Groupstring[_Prefix], _Count - _Prefix); + _Iosbase.width(0); + return (_Rep(_Dest, _Fill, _Fillcount)); + } + + char *__cdecl _Ifmt(char *_Fmt, + const char *_Spec, ios_base::fmtflags _Flags) const + { + char *_Ptr = _Fmt; + *_Ptr++ = '%'; + + if (_Flags & ios_base::showpos) + *_Ptr++ = '+'; + if (_Flags & ios_base::showbase) + *_Ptr++ = '#'; + if (_Spec[0] != 'L') + *_Ptr++ = _Spec[0]; + else + + { + *_Ptr++ = 'I'; + *_Ptr++ = '6'; + *_Ptr++ = '4'; + } + + ios_base::fmtflags _Basefield = _Flags & ios_base::basefield; + *_Ptr++ = _Basefield == ios_base::oct ? 'o' + : _Basefield != ios_base::hex ? _Spec[1] + : _Flags & ios_base::uppercase ? 'X' : 'x'; + *_Ptr = '\0'; + return (_Fmt); + } + + _OutIt __cdecl _Iput(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, char *_Buf, size_t _Count) const + { + _Debug_pointer(_Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum", 1516); + size_t _Prefix = 0 < _Count && (*_Buf == '+' || *_Buf == '-') + ? 1 : 0; + if ((_Iosbase.flags() & ios_base::basefield) == ios_base::hex + && _Prefix + 2 <= _Count && _Buf[_Prefix] == '0' + && (_Buf[_Prefix + 1] == 'x' || _Buf[_Prefix + 1] == 'X')) + _Prefix += 2; + + const ctype<_Elem>& _Ctype_fac = + use_facet< ctype<_Elem> >(_Iosbase.getloc()); + _Mystr _Groupstring(_Count, _Elem(0)); + _Ctype_fac.widen(&_Buf[0], &_Buf[_Count], &_Groupstring[0]); + + const _Mypunct& _Punct_fac = use_facet< _Mypunct >(_Iosbase.getloc()); + const string _Grouping = _Punct_fac.grouping(); + const char *_Pg = &_Grouping[0]; + if (*_Pg != 127 && '\0' < *_Pg) + { + const _Elem _Kseparator = _Punct_fac.thousands_sep(); + while (*_Pg != 127 && '\0' < *_Pg + && (size_t)*_Pg < _Count - _Prefix) + { + _Count -= *_Pg; + _Groupstring.insert(_Count, 1, _Kseparator); + if ('\0' < _Pg[1]) + ++_Pg; + } + } + + _Count = _Groupstring.size(); + size_t _Fillcount = _Iosbase.width() <= 0 + || (size_t)_Iosbase.width() <= _Count + ? 0 : (size_t)_Iosbase.width() - _Count; + + ios_base::fmtflags _Adjustfield = + _Iosbase.flags() & ios_base::adjustfield; + if (_Adjustfield != ios_base::left + && _Adjustfield != ios_base::internal) + { + _Dest = _Rep(_Dest, _Fill, _Fillcount); + _Fillcount = 0; + _Dest = _Put(_Dest, &_Groupstring[0], _Prefix); + } + else if (_Adjustfield == ios_base::internal) + { + _Dest = _Put(_Dest, &_Groupstring[0], _Prefix); + _Dest = _Rep(_Dest, _Fill, _Fillcount); + _Fillcount = 0; + } + else + _Dest = _Put(_Dest, &_Groupstring[0], _Prefix); + + _Dest = _Put(_Dest, &_Groupstring[_Prefix], _Count - _Prefix); + _Iosbase.width(0); + return (_Rep(_Dest, _Fill, _Fillcount)); + } + + _OutIt __cdecl _Put(_OutIt _Dest, + const _Elem *_Ptr, size_t _Count) const + { + for (; 0 < _Count; --_Count, (void)++_Dest, ++_Ptr) + *_Dest = *_Ptr; + return (_Dest); + } + + _OutIt __cdecl _Rep(_OutIt _Dest, + _Elem _Ch, size_t _Count) const + { + for (; 0 < _Count; --_Count, (void)++_Dest) + *_Dest = _Ch; + return (_Dest); + } + }; + + +template + locale::id num_put<_Elem, _OutIt>::id; +# 1619 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocnum" 3 +} + +#pragma warning(pop) +#pragma pack(pop) +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ios" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4189) + +namespace std { + +template + class basic_ios + : public ios_base + { +public: + typedef basic_ios<_Elem, _Traits> _Myt; + typedef basic_ostream<_Elem, _Traits> _Myos; + typedef basic_streambuf<_Elem, _Traits> _Mysb; + typedef ctype<_Elem> _Ctype; + typedef _Elem char_type; + typedef _Traits traits_type; + typedef typename _Traits::int_type int_type; + typedef typename _Traits::pos_type pos_type; + typedef typename _Traits::off_type off_type; + + explicit basic_ios(_Mysb *_Strbuf) + { + init(_Strbuf); + } + + virtual ~basic_ios() noexcept + { + } + + void clear(iostate _State = goodbit, + bool _Reraise = false) + { + ios_base::clear((iostate)(_Mystrbuf == 0 + ? (int)_State | (int)badbit : (int)_State), _Reraise); + } + + + void clear(io_state _State) + { + clear((iostate)_State); + } + + + void setstate(iostate _State, + bool _Reraise = false) + { + if (_State != goodbit) + clear((iostate)((int)rdstate() | (int)_State), _Reraise); + } + + + void setstate(io_state _State) + { + setstate((iostate)_State); + } + + + _Myt& copyfmt(const _Myt& _Right) + { + _Tiestr = _Right.tie(); + _Fillch = _Right.fill(); + ios_base::copyfmt(_Right); + return (*this); + } + + _Myos * tie() const + { + return (_Tiestr); + } + + _Myos * tie(_Myos *_Newtie) + { + _Myos *_Oldtie = _Tiestr; + _Tiestr = _Newtie; + return (_Oldtie); + } + + _Mysb * rdbuf() const + { + return (_Mystrbuf); + } + + _Mysb * rdbuf(_Mysb *_Strbuf) + { + _Mysb *_Oldstrbuf = _Mystrbuf; + _Mystrbuf = _Strbuf; + clear(); + return (_Oldstrbuf); + } + + locale imbue(const locale& _Loc) + { + locale _Oldlocale = ios_base::imbue(_Loc); + if (rdbuf() != 0) + rdbuf()->pubimbue(_Loc); + return (_Oldlocale); + } + + _Elem fill() const + { + return (_Fillch); + } + + _Elem fill(_Elem _Newfill) + { + _Elem _Oldfill = _Fillch; + _Fillch = _Newfill; + return (_Oldfill); + } + + char narrow(_Elem _Ch, char _Dflt = '\0') const + { + const _Ctype& _Ctype_fac = use_facet< _Ctype >(getloc()); + return (_Ctype_fac.narrow(_Ch, _Dflt)); + } + + _Elem widen(char _Byte) const + { + const _Ctype& _Ctype_fac = use_facet< _Ctype >(getloc()); + return (_Ctype_fac.widen(_Byte)); + } + + void move(_Myt& _Right) + { + if (this != &_Right) + { + _Mystrbuf = 0; + _Tiestr = 0; + this->swap(_Right); + } + } + + void move(_Myt&& _Right) + { + if (this != &_Right) + { + _Mystrbuf = 0; + _Tiestr = 0; + this->swap(_Right); + } + } + + void swap(_Myt& _Right) noexcept + { + ios_base::swap(_Right); + ::std:: swap(_Fillch, _Right._Fillch); + ::std:: swap(_Tiestr, _Right._Tiestr); + } + + void set_rdbuf(_Mysb *_Strbuf) + { + _Mystrbuf = _Strbuf; + } + +protected: + void init(_Mysb *_Strbuf = 0, + bool _Isstd = false) + { + _Init(); + _Mystrbuf = _Strbuf; + _Tiestr = 0; + _Fillch = widen(' '); + + if (_Mystrbuf == 0) + setstate(badbit); + + if (_Isstd) + _Addstd(this); + } + + basic_ios() + { + } + +private: + _Mysb *_Mystrbuf; + _Myos *_Tiestr; + _Elem _Fillch; + +public: + basic_ios(const _Myt&) = delete; + _Myt& operator=(const _Myt&) = delete; + }; +# 213 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ios" 3 +inline ios_base& __cdecl boolalpha(ios_base& _Iosbase) + { + _Iosbase.setf(ios_base::boolalpha); + return (_Iosbase); + } + +inline ios_base& __cdecl dec(ios_base& _Iosbase) + { + _Iosbase.setf(ios_base::dec, ios_base::basefield); + return (_Iosbase); + } + +inline ios_base& __cdecl defaultfloat(ios_base& _Iosbase) + { + _Iosbase.unsetf(ios_base::floatfield); + return (_Iosbase); + } + +inline ios_base& __cdecl fixed(ios_base& _Iosbase) + { + _Iosbase.setf(ios_base::fixed, ios_base::floatfield); + return (_Iosbase); + } + +inline ios_base& __cdecl hex(ios_base& _Iosbase) + { + _Iosbase.setf(ios_base::hex, ios_base::basefield); + return (_Iosbase); + } + +inline ios_base& __cdecl hexfloat(ios_base& _Iosbase) + { + _Iosbase.setf(ios_base::hexfloat, ios_base::floatfield); + return (_Iosbase); + } + + +namespace tr1 { +using ::std:: hexfloat; +} + + +inline ios_base& __cdecl internal(ios_base& _Iosbase) + { + _Iosbase.setf(ios_base::internal, ios_base::adjustfield); + return (_Iosbase); + } + +inline ios_base& __cdecl left(ios_base& _Iosbase) + { + _Iosbase.setf(ios_base::left, ios_base::adjustfield); + return (_Iosbase); + } + +inline ios_base& __cdecl noboolalpha(ios_base& _Iosbase) + { + _Iosbase.unsetf(ios_base::boolalpha); + return (_Iosbase); + } + +inline ios_base& __cdecl noshowbase(ios_base& _Iosbase) + { + _Iosbase.unsetf(ios_base::showbase); + return (_Iosbase); + } + +inline ios_base& __cdecl noshowpoint(ios_base& _Iosbase) + { + _Iosbase.unsetf(ios_base::showpoint); + return (_Iosbase); + } + +inline ios_base& __cdecl noshowpos(ios_base& _Iosbase) + { + _Iosbase.unsetf(ios_base::showpos); + return (_Iosbase); + } + +inline ios_base& __cdecl noskipws(ios_base& _Iosbase) + { + _Iosbase.unsetf(ios_base::skipws); + return (_Iosbase); + } + +inline ios_base& __cdecl nounitbuf(ios_base& _Iosbase) + { + _Iosbase.unsetf(ios_base::unitbuf); + return (_Iosbase); + } + +inline ios_base& __cdecl nouppercase(ios_base& _Iosbase) + { + _Iosbase.unsetf(ios_base::uppercase); + return (_Iosbase); + } + +inline ios_base& __cdecl oct(ios_base& _Iosbase) + { + _Iosbase.setf(ios_base::oct, ios_base::basefield); + return (_Iosbase); + } + +inline ios_base& __cdecl right(ios_base& _Iosbase) + { + _Iosbase.setf(ios_base::right, ios_base::adjustfield); + return (_Iosbase); + } + +inline ios_base& __cdecl scientific(ios_base& _Iosbase) + { + _Iosbase.setf(ios_base::scientific, ios_base::floatfield); + return (_Iosbase); + } + +inline ios_base& __cdecl showbase(ios_base& _Iosbase) + { + _Iosbase.setf(ios_base::showbase); + return (_Iosbase); + } + +inline ios_base& __cdecl showpoint(ios_base& _Iosbase) + { + _Iosbase.setf(ios_base::showpoint); + return (_Iosbase); + } + +inline ios_base& __cdecl showpos(ios_base& _Iosbase) + { + _Iosbase.setf(ios_base::showpos); + return (_Iosbase); + } + +inline ios_base& __cdecl skipws(ios_base& _Iosbase) + { + _Iosbase.setf(ios_base::skipws); + return (_Iosbase); + } + +inline ios_base& __cdecl unitbuf(ios_base& _Iosbase) + { + _Iosbase.setf(ios_base::unitbuf); + return (_Iosbase); + } + +inline ios_base& __cdecl uppercase(ios_base& _Iosbase) + { + _Iosbase.setf(ios_base::uppercase); + return (_Iosbase); + } +} + + +#pragma warning(pop) +#pragma pack(pop) +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ostream" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4189 4390) + +namespace std { +# 35 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ostream" 3 +#pragma vtordisp(push, 2) + + +template + class basic_ostream + : virtual public basic_ios<_Elem, _Traits> + { +public: + typedef basic_ostream<_Elem, _Traits> _Myt; + typedef basic_ios<_Elem, _Traits> _Myios; + typedef basic_streambuf<_Elem, _Traits> _Mysb; + typedef ostreambuf_iterator<_Elem, _Traits> _Iter; + typedef num_put<_Elem, _Iter> _Nput; + + explicit basic_ostream( + basic_streambuf<_Elem, _Traits> *_Strbuf, + + bool _Isstd = false) + { + _Myios::init(_Strbuf, _Isstd); + } + + basic_ostream(_Uninitialized, bool _Addit = true) + { + if (_Addit) + this->_Addstd(this); + } + +protected: + basic_ostream(_Myt&& _Right) + { + _Myios::init(); + _Myios::move(::std:: move(_Right)); + } + + _Myt& operator=(_Myt&& _Right) + { + this->swap(_Right); + return (*this); + } + + void swap(_Myt& _Right) + { + if (this != &_Right) + _Myios::swap(_Right); + } + +public: + basic_ostream(const _Myt&) = delete; + _Myt& operator=(const _Myt&) = delete; + + virtual ~basic_ostream() noexcept + { + } + + typedef typename _Traits::int_type int_type; + typedef typename _Traits::pos_type pos_type; + typedef typename _Traits::off_type off_type; + + class _Sentry_base + { + public: + _Sentry_base(_Myt& _Ostr) + : _Myostr(_Ostr) + { + if (_Myostr.rdbuf() != 0) + _Myostr.rdbuf()->_Lock(); + } + + ~_Sentry_base() noexcept + { + if (_Myostr.rdbuf() != 0) + _Myostr.rdbuf()->_Unlock(); + } + + _Myt& _Myostr; + + private: + _Sentry_base& operator=(const _Sentry_base&); + }; + + class sentry + : public _Sentry_base + { + public: + explicit sentry(_Myt& _Ostr) + : _Sentry_base(_Ostr) + { + if (_Ostr.good() && _Ostr.tie() != 0 && _Ostr.tie() != &_Ostr) + _Ostr.tie()->flush(); + _Ok = _Ostr.good(); + } + + ~sentry() noexcept + { + + if (!::std:: uncaught_exception()) + this->_Myostr._Osfx(); + + + + + } + + explicit operator bool() const + { + return (_Ok); + } + + sentry(const sentry&) = delete; + sentry& operator=(const sentry&) = delete; + + private: + bool _Ok; + }; + + bool opfx() + { + if (this->good() && _Myios::tie() != 0 && _Myios::tie() != this) + _Myios::tie()->flush(); + return (this->good()); + } + + void osfx() + { + _Osfx(); + } + + void _Osfx() + { + try { + if (this->good() && this->flags() & ios_base::unitbuf) + if (_Myios::rdbuf()->pubsync() == -1) + _Myios::setstate(ios_base::badbit); + } catch (...) { + } + } +# 196 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ostream" 3 + _Myt& operator<<(_Myt& (__cdecl *_Pfn)(_Myt&)) + { + _Debug_pointer(_Pfn, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ostream", 198); + return ((*_Pfn)(*this)); + } + + _Myt& operator<<(_Myios& (__cdecl *_Pfn)(_Myios&)) + { + _Debug_pointer(_Pfn, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ostream", 204); + (*_Pfn)(*(_Myios *)this); + return (*this); + } + + _Myt& operator<<(ios_base& (__cdecl *_Pfn)(ios_base&)) + { + _Debug_pointer(_Pfn, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ostream", 211); + (*_Pfn)(*(ios_base *)this); + return (*this); + } + + _Myt& operator<<(bool _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nput& _Nput_fac = use_facet< _Nput >(this->getloc()); + + try { + if (_Nput_fac.put(_Iter(_Myios::rdbuf()), *this, + _Myios::fill(), _Val).failed()) + _State |= ios_base::badbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator<<(short _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nput& _Nput_fac = use_facet< _Nput >(this->getloc()); + ios_base::fmtflags _Bfl = + this->flags() & ios_base::basefield; + long _Tmp = (_Bfl == ios_base::oct + || _Bfl == ios_base::hex) + ? (long)(unsigned short)_Val : (long)_Val; + + try { + if (_Nput_fac.put(_Iter(_Myios::rdbuf()), *this, + _Myios::fill(), _Tmp).failed()) + _State |= ios_base::badbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } +# 270 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ostream" 3 + _Myt& operator<<(unsigned short _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nput& _Nput_fac = use_facet< _Nput >(this->getloc()); + + try { + if (_Nput_fac.put(_Iter(_Myios::rdbuf()), *this, + _Myios::fill(), (unsigned long)_Val).failed()) + _State |= ios_base::badbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator<<(int _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nput& _Nput_fac = use_facet< _Nput >(this->getloc()); + ios_base::fmtflags _Bfl = + this->flags() & ios_base::basefield; + long _Tmp = (_Bfl == ios_base::oct + || _Bfl == ios_base::hex) + ? (long)(unsigned int)_Val : (long)_Val; + + try { + if (_Nput_fac.put(_Iter(_Myios::rdbuf()), *this, + _Myios::fill(), _Tmp).failed()) + _State |= ios_base::badbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator<<(unsigned int _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nput& _Nput_fac = use_facet< _Nput >(this->getloc()); + + try { + if (_Nput_fac.put(_Iter(_Myios::rdbuf()), *this, + _Myios::fill(), (unsigned long)_Val).failed()) + _State |= ios_base::badbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator<<(long _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nput& _Nput_fac = use_facet< _Nput >(this->getloc()); + + try { + if (_Nput_fac.put(_Iter(_Myios::rdbuf()), *this, + _Myios::fill(), _Val).failed()) + _State |= ios_base::badbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator<<(unsigned long _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nput& _Nput_fac = use_facet< _Nput >(this->getloc()); + + try { + if (_Nput_fac.put(_Iter(_Myios::rdbuf()), *this, + _Myios::fill(), _Val).failed()) + _State |= ios_base::badbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator<<(long long _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nput& _Nput_fac = use_facet< _Nput >(this->getloc()); + + try { + if (_Nput_fac.put(_Iter(_Myios::rdbuf()), *this, + _Myios::fill(), _Val).failed()) + _State |= ios_base::badbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator<<(unsigned long long _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nput& _Nput_fac = use_facet< _Nput >(this->getloc()); + + try { + if (_Nput_fac.put(_Iter(_Myios::rdbuf()), *this, + _Myios::fill(), _Val).failed()) + _State |= ios_base::badbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator<<(float _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nput& _Nput_fac = use_facet< _Nput >(this->getloc()); + + try { + if (_Nput_fac.put(_Iter(_Myios::rdbuf()), *this, + _Myios::fill(), (double)_Val).failed()) + _State |= ios_base::badbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator<<(double _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nput& _Nput_fac = use_facet< _Nput >(this->getloc()); + + try { + if (_Nput_fac.put(_Iter(_Myios::rdbuf()), *this, + _Myios::fill(), _Val).failed()) + _State |= ios_base::badbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator<<(long double _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nput& _Nput_fac = use_facet< _Nput >(this->getloc()); + + try { + if (_Nput_fac.put(_Iter(_Myios::rdbuf()), *this, + _Myios::fill(), _Val).failed()) + _State |= ios_base::badbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator<<(const void *_Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nput& _Nput_fac = use_facet< _Nput >(this->getloc()); + + try { + if (_Nput_fac.put(_Iter(_Myios::rdbuf()), *this, + _Myios::fill(), _Val).failed()) + _State |= ios_base::badbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator<<(_Mysb *_Strbuf) + { + ios_base::iostate _State = ios_base::goodbit; + bool _Copied = false; + const sentry _Ok(*this); + + if (_Ok && _Strbuf != 0) + for (int_type _Meta = _Traits::eof(); ; _Copied = true) + { + try { + _Meta = _Traits::eq_int_type(_Traits::eof(), _Meta) + ? _Strbuf->sgetc() : _Strbuf->snextc(); + } catch (...) { + _Myios::setstate(ios_base::failbit); + throw; + } + + if (_Traits::eq_int_type(_Traits::eof(), _Meta)) + break; + + try { + if (_Traits::eq_int_type(_Traits::eof(), + _Myios::rdbuf()->sputc( + _Traits::to_char_type(_Meta)))) + { + _State |= ios_base::badbit; + break; + } + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + this->width(0); + _Myios::setstate(_Strbuf == 0 ? ios_base::badbit + : !_Copied ? _State | ios_base::failbit : _State); + return (*this); + } + + _Myt& put(_Elem _Ch) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (!_Ok) + _State |= ios_base::badbit; + else + { + try { + if (_Traits::eq_int_type(_Traits::eof(), + _Myios::rdbuf()->sputc(_Ch))) + _State |= ios_base::badbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& write(const _Elem *_Str, + streamsize _Count) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (!_Ok) + _State |= ios_base::badbit; + else if (0 < _Count) + { + _Debug_pointer(_Str, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ostream", 562); + try { + if (_Myios::rdbuf()->sputn(_Str, _Count) != _Count) + _State |= ios_base::badbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& flush() + { + if (_Myios::rdbuf() != 0) + { + const sentry _Ok(*this); + + if (_Ok && _Myios::rdbuf()->pubsync() == -1) + _Myios::setstate(ios_base::badbit); + } + return (*this); + } + + _Myt& seekp(pos_type _Pos) + { + const sentry _Ok(*this); + + if (!this->fail() + && (off_type)_Myios::rdbuf()->pubseekpos(_Pos, + ios_base::out) == _BADOFF) + _Myios::setstate(ios_base::failbit); + return (*this); + } + + _Myt& seekp(off_type _Off, ios_base::seekdir _Way) + { + const sentry _Ok(*this); + + if (!this->fail() + && (off_type)_Myios::rdbuf()->pubseekoff(_Off, _Way, + ios_base::out) == _BADOFF) + _Myios::setstate(ios_base::failbit); + return (*this); + } + + pos_type tellp() + { + const sentry _Ok(*this); + + if (!this->fail()) + return (_Myios::rdbuf()->pubseekoff(0, + ios_base::cur, ios_base::out)); + else + return (pos_type(_BADOFF)); + } + }; + +#pragma vtordisp(pop) +# 690 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ostream" 3 +template inline + basic_ostream<_Elem, _Traits>& operator<<( + basic_ostream<_Elem, _Traits>& _Ostr, const char *_Val) + { + ios_base::iostate _State = ios_base::goodbit; + streamsize _Count = (streamsize):: strlen(_Val); + streamsize _Pad = _Ostr.width() <= 0 || _Ostr.width() <= _Count + ? 0 : _Ostr.width() - _Count; + const typename basic_ostream<_Elem, _Traits>::sentry _Ok(_Ostr); + + if (!_Ok) + _State |= ios_base::badbit; + else + { + try { + const ctype<_Elem>& _Ctype_fac = use_facet< ctype<_Elem> >(_Ostr.getloc()); + if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) + for (; 0 < _Pad; --_Pad) + if (_Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ostr.fill()))) + { + _State |= ios_base::badbit; + break; + } + + for (; _State == ios_base::goodbit && 0 < _Count; --_Count, ++_Val) + if (_Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ctype_fac.widen(*_Val)))) + _State |= ios_base::badbit; + + if (_State == ios_base::goodbit) + for (; 0 < _Pad; --_Pad) + if (_Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ostr.fill()))) + { + _State |= ios_base::badbit; + break; + } + _Ostr.width(0); + } catch (...) { (_Ostr).setstate(ios_base::badbit, true); } + } + + _Ostr.setstate(_State); + return (_Ostr); + } + +template inline + basic_ostream<_Elem, _Traits>& operator<<( + basic_ostream<_Elem, _Traits>& _Ostr, char _Ch) + { + ios_base::iostate _State = ios_base::goodbit; + const typename basic_ostream<_Elem, _Traits>::sentry _Ok(_Ostr); + + if (_Ok) + { + const ctype<_Elem>& _Ctype_fac = use_facet< ctype<_Elem> >(_Ostr.getloc()); + streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; + + try { + if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) + for (; _State == ios_base::goodbit && 0 < _Pad; + --_Pad) + if (_Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ostr.fill()))) + _State |= ios_base::badbit; + + if (_State == ios_base::goodbit + && _Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ctype_fac.widen(_Ch)))) + _State |= ios_base::badbit; + + for (; _State == ios_base::goodbit && 0 < _Pad; + --_Pad) + if (_Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ostr.fill()))) + _State |= ios_base::badbit; + } catch (...) { (_Ostr).setstate(ios_base::badbit, true); } + } + + _Ostr.width(0); + _Ostr.setstate(_State); + return (_Ostr); + } + +template inline + basic_ostream& operator<<( + basic_ostream& _Ostr, + const char *_Val) + { + typedef char _Elem; + typedef basic_ostream<_Elem, _Traits> _Myos; + ios_base::iostate _State = ios_base::goodbit; + streamsize _Count = (streamsize)_Traits::length(_Val); + streamsize _Pad = _Ostr.width() <= 0 || _Ostr.width() <= _Count + ? 0 : _Ostr.width() - _Count; + const typename _Myos::sentry _Ok(_Ostr); + + if (!_Ok) + _State |= ios_base::badbit; + else + { + try { + if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) + for (; 0 < _Pad; --_Pad) + if (_Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ostr.fill()))) + { + _State |= ios_base::badbit; + break; + } + + if (_State == ios_base::goodbit + && _Ostr.rdbuf()->sputn(_Val, _Count) != _Count) + _State |= ios_base::badbit; + + if (_State == ios_base::goodbit) + for (; 0 < _Pad; --_Pad) + if (_Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ostr.fill()))) + { + _State |= ios_base::badbit; + break; + } + _Ostr.width(0); + } catch (...) { (_Ostr).setstate(ios_base::badbit, true); } + } + + _Ostr.setstate(_State); + return (_Ostr); + } + +template inline + basic_ostream& operator<<( + basic_ostream& _Ostr, char _Ch) + { + typedef char _Elem; + typedef basic_ostream<_Elem, _Traits> _Myos; + ios_base::iostate _State = ios_base::goodbit; + const typename _Myos::sentry _Ok(_Ostr); + + if (_Ok) + { + streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; + + try { + if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) + for (; _State == ios_base::goodbit && 0 < _Pad; + --_Pad) + if (_Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ostr.fill()))) + _State |= ios_base::badbit; + + if (_State == ios_base::goodbit + && _Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ch))) + _State |= ios_base::badbit; + + for (; _State == ios_base::goodbit && 0 < _Pad; + --_Pad) + if (_Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ostr.fill()))) + _State |= ios_base::badbit; + } catch (...) { (_Ostr).setstate(ios_base::badbit, true); } + } + + _Ostr.width(0); + _Ostr.setstate(_State); + return (_Ostr); + } + +template inline + basic_ostream<_Elem, _Traits>& operator<<( + basic_ostream<_Elem, _Traits>& _Ostr, const _Elem *_Val) + { + typedef basic_ostream<_Elem, _Traits> _Myos; + + ios_base::iostate _State = ios_base::goodbit; + streamsize _Count = (streamsize)_Traits::length(_Val); + streamsize _Pad = _Ostr.width() <= 0 || _Ostr.width() <= _Count + ? 0 : _Ostr.width() - _Count; + const typename _Myos::sentry _Ok(_Ostr); + + if (!_Ok) + _State |= ios_base::badbit; + else + { + try { + if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) + for (; 0 < _Pad; --_Pad) + if (_Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ostr.fill()))) + { + _State |= ios_base::badbit; + break; + } + + if (_State == ios_base::goodbit + && _Ostr.rdbuf()->sputn(_Val, _Count) != _Count) + _State |= ios_base::badbit; + + if (_State == ios_base::goodbit) + for (; 0 < _Pad; --_Pad) + if (_Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ostr.fill()))) + { + _State |= ios_base::badbit; + break; + } + _Ostr.width(0); + } catch (...) { (_Ostr).setstate(ios_base::badbit, true); } + } + + _Ostr.setstate(_State); + return (_Ostr); + } + +template inline + basic_ostream<_Elem, _Traits>& operator<<( + basic_ostream<_Elem, _Traits>& _Ostr, _Elem _Ch) + { + typedef basic_ostream<_Elem, _Traits> _Myos; + + ios_base::iostate _State = ios_base::goodbit; + const typename _Myos::sentry _Ok(_Ostr); + + if (_Ok) + { + streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; + + try { + if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) + for (; _State == ios_base::goodbit && 0 < _Pad; + --_Pad) + if (_Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ostr.fill()))) + _State |= ios_base::badbit; + + if (_State == ios_base::goodbit + && _Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ch))) + _State |= ios_base::badbit; + + for (; _State == ios_base::goodbit && 0 < _Pad; + --_Pad) + if (_Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ostr.fill()))) + _State |= ios_base::badbit; + } catch (...) { (_Ostr).setstate(ios_base::badbit, true); } + } + + _Ostr.width(0); + _Ostr.setstate(_State); + return (_Ostr); + } + +template inline + basic_ostream& operator<<( + basic_ostream& _Ostr, const signed char *_Val) + { + return (_Ostr << (const char *)_Val); + } + +template inline + basic_ostream& operator<<( + basic_ostream& _Ostr, signed char _Ch) + { + return (_Ostr << (char)_Ch); + } + +template inline + basic_ostream& operator<<( + basic_ostream& _Ostr, const unsigned char *_Val) + { + return (_Ostr << (const char *)_Val); + } + +template inline + basic_ostream& operator<<( + basic_ostream& _Ostr, unsigned char _Ch) + { + return (_Ostr << (char)_Ch); + } + +template inline + basic_ostream<_Elem, _Traits>& + operator<<(basic_ostream<_Elem, _Traits>&& _Ostr, const _Ty& _Val) + { + return (_Ostr << _Val); + } + + +template inline + basic_ostream<_Elem, _Traits>& + __cdecl endl(basic_ostream<_Elem, _Traits>& _Ostr) + { + _Ostr.put(_Ostr.widen('\n')); + _Ostr.flush(); + return (_Ostr); + } + +template inline + basic_ostream<_Elem, _Traits>& + __cdecl ends(basic_ostream<_Elem, _Traits>& _Ostr) + { + _Ostr.put(_Elem()); + return (_Ostr); + } + +template inline + basic_ostream<_Elem, _Traits>& + __cdecl flush(basic_ostream<_Elem, _Traits>& _Ostr) + { + _Ostr.flush(); + return (_Ostr); + } + + +template inline + basic_ostream<_Elem, _Traits>& + operator<<(basic_ostream<_Elem, _Traits>& _Ostr, + const error_code& _Errcode) + { + return (_Ostr << _Errcode.category().name() << ':' << _Errcode.value()); + } +} + + +#pragma warning(pop) +#pragma pack(pop) +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\istream" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4189) + +namespace std { +#pragma vtordisp(push, 2) + + +template + class basic_istream + : virtual public basic_ios<_Elem, _Traits> + { +public: + typedef basic_istream<_Elem, _Traits> _Myt; + typedef basic_ios<_Elem, _Traits> _Myios; + typedef basic_streambuf<_Elem, _Traits> _Mysb; + typedef istreambuf_iterator<_Elem, _Traits> _Iter; + typedef ctype<_Elem> _Ctype; + typedef num_get<_Elem, _Iter> _Nget; +# 42 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\istream" 3 + explicit basic_istream(_Mysb *_Strbuf, + bool _Isstd = false) + + : _Chcount(0) + { + _Myios::init(_Strbuf, _Isstd); + } + + basic_istream(_Uninitialized) + { + this->_Addstd(this); + } + +protected: + basic_istream(_Myt&& _Right) + : _Chcount(_Right._Chcount) + { + _Myios::init(); + _Myios::move(::std:: move(_Right)); + _Right._Chcount = 0; + } + + _Myt& operator=(_Myt&& _Right) + { + this->swap(_Right); + return (*this); + } + + void swap(_Myt& _Right) + { + _Myios::swap(_Right); + ::std:: swap(_Chcount, _Right._Chcount); + } + +public: + basic_istream(const _Myt&) = delete; + _Myt& operator=(const _Myt&) = delete; + + virtual ~basic_istream() noexcept + { + } + + typedef typename _Traits::int_type int_type; + typedef typename _Traits::pos_type pos_type; + typedef typename _Traits::off_type off_type; + + + class _Sentry_base + { + public: + _Sentry_base(_Myt& _Istr) + : _Myistr(_Istr) + { + if (_Myistr.rdbuf() != 0) + _Myistr.rdbuf()->_Lock(); + } + + ~_Sentry_base() noexcept + { + if (_Myistr.rdbuf() != 0) + _Myistr.rdbuf()->_Unlock(); + } + + _Myt& _Myistr; + + private: + _Sentry_base& operator=(const _Sentry_base&); + }; + + class sentry + : public _Sentry_base + { + public: + explicit sentry(_Myt& _Istr, bool _Noskip = false) + : _Sentry_base(_Istr) + { + _Ok = this->_Myistr._Ipfx(_Noskip); + } + + explicit operator bool() const + { + return (_Ok); + } + + sentry(const sentry&) = delete; + sentry& operator=(const sentry&) = delete; + + private: + bool _Ok; + }; + + bool _Ipfx(bool _Noskip = false) + { + if (this->good()) + { + if (_Myios::tie() != 0) + _Myios::tie()->flush(); + + if (!_Noskip && this->flags() & ios_base::skipws) + { + const _Ctype& _Ctype_fac = use_facet< _Ctype >(this->getloc()); + + try { + int_type _Meta = _Myios::rdbuf()->sgetc(); + + for (; ; _Meta = _Myios::rdbuf()->snextc()) + if (_Traits::eq_int_type(_Traits::eof(), _Meta)) + { + _Myios::setstate(ios_base::eofbit); + break; + } + else if (!_Ctype_fac.is(_Ctype::space, + _Traits::to_char_type(_Meta))) + break; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + if (this->good()) + return (true); + } + _Myios::setstate(ios_base::failbit); + return (false); + } + + bool ipfx(bool _Noskip = false) + { + return (_Ipfx(_Noskip)); + } + + void isfx() + { + } +# 197 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\istream" 3 + _Myt& operator>>(_Myt& (__cdecl *_Pfn)(_Myt&)) + { + _Debug_pointer(_Pfn, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\istream", 199); + return ((*_Pfn)(*this)); + } + + _Myt& operator>>(_Myios& (__cdecl *_Pfn)(_Myios&)) + { + _Debug_pointer(_Pfn, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\istream", 205); + (*_Pfn)(*(_Myios *)this); + return (*this); + } + + _Myt& operator>>(ios_base& (__cdecl *_Pfn)(ios_base&)) + { + _Debug_pointer(_Pfn, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\istream", 212); + (*_Pfn)(*(ios_base *)this); + return (*this); + } + + _Myt& operator>>(bool& _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nget& _Nget_fac = use_facet< _Nget >(this->getloc()); + + try { + _Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0), + *this, _State, _Val); + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator>>(short& _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + long _Tmp = 0; + const _Nget& _Nget_fac = use_facet< _Nget >(this->getloc()); + + try { + _Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0), + *this, _State, _Tmp); + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + + if (_State & ios_base::failbit + || _Tmp < (-32768) || 32767 < _Tmp) + _State |= ios_base::failbit; + else + _Val = (short)_Tmp; + } + + _Myios::setstate(_State); + return (*this); + } +# 271 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\istream" 3 + _Myt& operator>>(unsigned short& _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nget& _Nget_fac = use_facet< _Nget >(this->getloc()); + + try { + _Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0), + *this, _State, _Val); + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator>>(int& _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + long _Tmp = 0; + const _Nget& _Nget_fac = use_facet< _Nget >(this->getloc()); + + try { + _Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0), + *this, _State, _Tmp); + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + + if (_State & ios_base::failbit + || _Tmp < (-2147483647 - 1) || 2147483647 < _Tmp) + _State |= ios_base::failbit; + else + _Val = _Tmp; + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator>>(unsigned int& _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + if (_Ok) + { + const _Nget& _Nget_fac = use_facet< _Nget >(this->getloc()); + + try { + _Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0), + *this, _State, _Val); + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator>>(long& _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nget& _Nget_fac = use_facet< _Nget >(this->getloc()); + try { + _Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0), + *this, _State, _Val); + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator>>(unsigned long& _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nget& _Nget_fac = use_facet< _Nget >(this->getloc()); + + try { + _Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0), + *this, _State, _Val); + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator>>(long long& _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nget& _Nget_fac = use_facet< _Nget >(this->getloc()); + + try { + _Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0), + *this, _State, _Val); + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator>>(unsigned long long& _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + if (_Ok) + { + const _Nget& _Nget_fac = use_facet< _Nget >(this->getloc()); + + try { + _Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0), + *this, _State, _Val); + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator>>(float& _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nget& _Nget_fac = use_facet< _Nget >(this->getloc()); + + try { + _Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0), + *this, _State, _Val); + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator>>(double& _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + if (_Ok) + { + const _Nget& _Nget_fac = use_facet< _Nget >(this->getloc()); + + try { + _Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0), + *this, _State, _Val); + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator>>(long double& _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nget& _Nget_fac = use_facet< _Nget >(this->getloc()); + try { + _Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0), + *this, _State, _Val); + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator>>(void *& _Val) + { + ios_base::iostate _State = ios_base::goodbit; + const sentry _Ok(*this); + + if (_Ok) + { + const _Nget& _Nget_fac = use_facet< _Nget >(this->getloc()); + + try { + _Nget_fac.get(_Iter(_Myios::rdbuf()), _Iter(0), + *this, _State, _Val); + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& operator>>(_Mysb *_Strbuf) + { + ios_base::iostate _State = ios_base::goodbit; + bool _Copied = false; + const sentry _Ok(*this); + + if (_Ok && _Strbuf != 0) + { + try { + int_type _Meta = _Myios::rdbuf()->sgetc(); + + for (; ; _Meta = _Myios::rdbuf()->snextc()) + if (_Traits::eq_int_type(_Traits::eof(), _Meta)) + { + _State |= ios_base::eofbit; + break; + } + else + { + try { + if (_Traits::eq_int_type(_Traits::eof(), + _Strbuf->sputc(_Traits::to_char_type(_Meta)))) + break; + } catch (...) { + break; + } + _Copied = true; + } + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(!_Copied ? _State | ios_base::failbit : _State); + return (*this); + } + + int_type get() + { + int_type _Meta = 0; + ios_base::iostate _State = ios_base::goodbit; + _Chcount = 0; + const sentry _Ok(*this, true); + + if (!_Ok) + _Meta = _Traits::eof(); + else + { + try { + _Meta = _Myios::rdbuf()->sgetc(); + + if (_Traits::eq_int_type(_Traits::eof(), _Meta)) + _State |= ios_base::eofbit | ios_base::failbit; + else + { + _Myios::rdbuf()->sbumpc(); + ++_Chcount; + } + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (_Meta); + } + + _Myt& get(_Elem *_Str, streamsize _Count) + { + return (get(_Str, _Count, _Myios::widen('\n'))); + } + + _Myt& get(_Elem *_Str, + streamsize _Count, _Elem _Delim) + { + ios_base::iostate _State = ios_base::goodbit; + _Chcount = 0; + const sentry _Ok(*this, true); + + if (_Ok && 0 < _Count) + { + try { + int_type _Meta = _Myios::rdbuf()->sgetc(); + + for (; 0 < --_Count; _Meta = _Myios::rdbuf()->snextc()) + if (_Traits::eq_int_type(_Traits::eof(), _Meta)) + { + _State |= ios_base::eofbit; + break; + } + else if (_Traits::to_char_type(_Meta) == _Delim) + break; + else + { + _Debug_pointer(_Str, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\istream", 572); + *_Str++ = _Traits::to_char_type(_Meta); + ++_Chcount; + } + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_Chcount == 0 + ? _State | ios_base::failbit : _State); + *_Str = _Elem(); + return (*this); + } + + _Myt& get(_Elem& _Ch) + { + int_type _Meta = get(); + if (!_Traits::eq_int_type(_Traits::eof(), _Meta)) + _Ch = _Traits::to_char_type(_Meta); + return (*this); + } + + _Myt& get(_Mysb& _Strbuf) + { + return (get(_Strbuf, _Myios::widen('\n'))); + } + + _Myt& get(_Mysb& _Strbuf, _Elem _Delim) + { + ios_base::iostate _State = ios_base::goodbit; + _Chcount = 0; + const sentry _Ok(*this, true); + + if (_Ok) + { + try { + int_type _Meta = _Myios::rdbuf()->sgetc(); + + for (; ; _Meta = _Myios::rdbuf()->snextc()) + if (_Traits::eq_int_type(_Traits::eof(), _Meta)) + { + _State |= ios_base::eofbit; + break; + } + else + { + try { + _Elem _Ch = _Traits::to_char_type(_Meta); + if (_Ch == _Delim + || _Traits::eq_int_type(_Traits::eof(), + _Strbuf.sputc(_Ch))) + break; + } catch (...) { + break; + } + ++_Chcount; + } + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + if (_Chcount == 0) + _State |= ios_base::failbit; + _Myios::setstate(_State); + return (*this); + } + + _Myt& getline(_Elem *_Str, streamsize _Count) + { + return (getline(_Str, _Count, _Myios::widen('\n'))); + } + + _Myt& getline(_Elem *_Str, + streamsize _Count, _Elem _Delim) + { + ios_base::iostate _State = ios_base::goodbit; + _Chcount = 0; + const sentry _Ok(*this, true); + + if (_Ok && 0 < _Count) + { + int_type _Metadelim = _Traits::to_int_type(_Delim); + + try { + int_type _Meta = _Myios::rdbuf()->sgetc(); + + for (; ; _Meta = _Myios::rdbuf()->snextc()) + if (_Traits::eq_int_type(_Traits::eof(), _Meta)) + { + _State |= ios_base::eofbit; + break; + } + else if (_Meta == _Metadelim) + { + ++_Chcount; + _Myios::rdbuf()->sbumpc(); + break; + } + else if (--_Count <= 0) + { + _State |= ios_base::failbit; + break; + } + else + { + _Debug_pointer(_Str, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\istream", 675); + *_Str++ = _Traits::to_char_type(_Meta); + ++_Chcount; + } + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + *_Str = _Elem(); + _Myios::setstate(_Chcount == 0 ? _State | ios_base::failbit : _State); + return (*this); + } + + _Myt& ignore(streamsize _Count = 1, + int_type _Metadelim = _Traits::eof()) + { + ios_base::iostate _State = ios_base::goodbit; + _Chcount = 0; + const sentry _Ok(*this, true); + + if (_Ok && 0 < _Count) + { + try { + for (; ; ) + { + int_type _Meta; + if (_Count != (numeric_limits::max)() + && --_Count < 0) + break; + else if (_Traits::eq_int_type(_Traits::eof(), + _Meta = _Myios::rdbuf()->sbumpc())) + { + _State |= ios_base::eofbit; + break; + } + else + { + ++_Chcount; + if (_Meta == _Metadelim) + break; + } + } + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& read(_Elem *_Str, streamsize _Count) + { + ios_base::iostate _State = ios_base::goodbit; + _Chcount = 0; + const sentry _Ok(*this, true); + + if (_Ok && 0 < _Count) + { + try { + _Debug_pointer(_Str, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\istream", 732); + const streamsize _Num = _Myios::rdbuf()->sgetn(_Str, _Count); + _Chcount += _Num; + if (_Num != _Count) + _State |= ios_base::eofbit | ios_base::failbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + streamsize readsome(_Elem *_Str, + streamsize _Count) + { + ios_base::iostate _State = ios_base::goodbit; + _Chcount = 0; + const sentry _Ok(*this, true); + streamsize _Num; + + if (!_Ok) + _State |= ios_base::failbit; + else if ((_Num = _Myios::rdbuf()->in_avail()) < 0) + _State |= ios_base::eofbit; + else if (0 < _Count && 0 < _Num) + { + _Debug_pointer(_Str, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\istream", 758); + read(_Str, _Num < _Count ? _Num : _Count); + } + + _Myios::setstate(_State); + return (gcount()); + } + + int_type peek() + { + ios_base::iostate _State = ios_base::goodbit; + _Chcount = 0; + int_type _Meta = 0; + const sentry _Ok(*this, true); + + if (!_Ok) + _Meta = _Traits::eof(); + else + { + try { + if (_Traits::eq_int_type(_Traits::eof(), + _Meta = _Myios::rdbuf()->sgetc())) + _State |= ios_base::eofbit; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (_Meta); + } + + _Myt& putback(_Elem _Ch) + { + _Chcount = 0; + ios_base::iostate _State = ios_base::goodbit; + ios_base::iostate _Oldstate = _Myios::rdstate(); + _Myios::clear(_Oldstate & ~ios_base::eofbit); + const sentry _Ok(*this, true); + + if (_Ok) + { + try { + if (_Traits::eq_int_type(_Traits::eof(), + _Myios::rdbuf()->sputbackc(_Ch))) + _State |= ios_base::badbit | _Oldstate; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + _Myt& unget() + { + _Chcount = 0; + ios_base::iostate _State = ios_base::goodbit; + ios_base::iostate _Oldstate = _Myios::rdstate(); + _Myios::clear(_Oldstate & ~ios_base::eofbit); + const sentry _Ok(*this, true); + + if (_Ok) + { + try { + if (_Traits::eq_int_type(_Traits::eof(), + _Myios::rdbuf()->sungetc())) + _State |= ios_base::badbit | _Oldstate; + } catch (...) { _Myios::setstate(ios_base::badbit, true); } + } + + _Myios::setstate(_State); + return (*this); + } + + streamsize gcount() const + { + return (_Chcount); + } + + int sync() + { + const sentry _Ok(*this, true); + + if (_Myios::rdbuf() == 0) + return (-1); + else if (_Myios::rdbuf()->pubsync() == -1) + { + _Myios::setstate(ios_base::badbit); + return (-1); + } + else + return (0); + } + + _Myt& seekg(pos_type _Pos) + { + ios_base::iostate _State = ios_base::goodbit; + ios_base::iostate _Oldstate = _Myios::rdstate(); + _Myios::clear(_Oldstate & ~ios_base::eofbit); + const sentry _Ok(*this, true); + + if (!this->fail() + && (off_type)_Myios::rdbuf()->pubseekpos(_Pos, + ios_base::in) == _BADOFF) + _Myios::setstate(_State | ios_base::failbit); + return (*this); + } + + _Myt& seekg(off_type _Off, ios_base::seekdir _Way) + { + ios_base::iostate _State = ios_base::goodbit; + ios_base::iostate _Oldstate = _Myios::rdstate(); + _Myios::clear(_Oldstate & ~ios_base::eofbit); + const sentry _Ok(*this, true); + + if (!this->fail() + && (off_type)_Myios::rdbuf()->pubseekoff(_Off, _Way, + ios_base::in) == _BADOFF) + _Myios::setstate(_State | ios_base::failbit); + return (*this); + } + + pos_type tellg() + { + const sentry _Ok(*this, true); + + if (!this->fail()) + return (_Myios::rdbuf()->pubseekoff(0, + ios_base::cur, ios_base::in)); + else + return (pos_type(_BADOFF)); + } + +private: + streamsize _Chcount; + }; + + + +#pragma vtordisp(pop) +# 934 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\istream" 3 +template + class basic_iostream + : public basic_istream<_Elem, _Traits>, + public basic_ostream<_Elem, _Traits> + { +public: + typedef basic_iostream<_Elem, _Traits> _Myt; + typedef basic_istream<_Elem, _Traits> _Myis; + typedef basic_ostream<_Elem, _Traits> _Myos; + typedef basic_ios<_Elem, _Traits> _Myios; + typedef _Elem char_type; + typedef _Traits traits_type; + typedef typename _Traits::int_type int_type; + typedef typename _Traits::pos_type pos_type; + typedef typename _Traits::off_type off_type; + + explicit basic_iostream(basic_streambuf<_Elem, _Traits> *_Strbuf) + : _Myis(_Strbuf, false), + _Myos(_Noinit, false) + { + } + +protected: + basic_iostream(_Myt&& _Right) + : _Myis(_Right.rdbuf(), false), + _Myos(_Noinit, false) + { + _Myios::init(); + _Myios::move(::std:: forward<_Myt>(_Right)); + } + + _Myt& operator=(_Myt&& _Right) + { + this->swap(_Right); + return (*this); + } + + void swap(_Myt& _Right) + { + if (this != &_Right) + _Myios::swap(_Right); + } + +public: + basic_iostream(const _Myt&) = delete; + _Myt& operator=(const _Myt&) = delete; + + virtual ~basic_iostream() noexcept + { + } + }; +# 1004 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\istream" 3 +template inline + basic_istream<_Elem, _Traits>& operator>>( + basic_istream<_Elem, _Traits>& _Istr, _Elem *_Str) + { + _Debug_pointer(_Str, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\istream", 1009); + typedef basic_istream<_Elem, _Traits> _Myis; + typedef ctype<_Elem> _Ctype; + ios_base::iostate _State = ios_base::goodbit; + _Elem *_Str0 = _Str; + const typename _Myis::sentry _Ok(_Istr); + + if (_Ok) + { + const _Ctype& _Ctype_fac = use_facet< _Ctype >(_Istr.getloc()); + + try { + streamsize _Count = 0 < _Istr.width() ? _Istr.width() + : (numeric_limits::max)(); + typename _Myis::int_type _Meta = _Istr.rdbuf()->sgetc(); + _Elem _Ch; + for (; 0 < --_Count; _Meta = _Istr.rdbuf()->snextc()) + if (_Traits::eq_int_type(_Traits::eof(), _Meta)) + { + _State |= ios_base::eofbit; + break; + } + else if (_Ctype_fac.is(_Ctype::space, + _Ch = _Traits::to_char_type(_Meta)) + || _Ch == _Elem()) + break; + else + *_Str++ = _Traits::to_char_type(_Meta); + } catch (...) { (_Istr).setstate(ios_base::badbit, true); } + } + + *_Str = _Elem(); + _Istr.width(0); + _Istr.setstate(_Str == _Str0 ? _State | ios_base::failbit : _State); + return (_Istr); + } + +template inline + basic_istream<_Elem, _Traits>& operator>>( + basic_istream<_Elem, _Traits>& _Istr, _Elem& _Ch) + { + typedef basic_istream<_Elem, _Traits> _Myis; + + typename _Myis::int_type _Meta; + ios_base::iostate _State = ios_base::goodbit; + const typename _Myis::sentry _Ok(_Istr); + + if (_Ok) + { + try { + _Meta = _Istr.rdbuf()->sbumpc(); + if (_Traits::eq_int_type(_Traits::eof(), _Meta)) + _State |= ios_base::eofbit | ios_base::failbit; + else + _Ch = _Traits::to_char_type(_Meta); + } catch (...) { (_Istr).setstate(ios_base::badbit, true); } + } + + _Istr.setstate(_State); + return (_Istr); + } + +template inline + basic_istream& operator>>( + basic_istream& _Istr, signed char *_Str) + { + return (_Istr >> (char *)_Str); + } + +template inline + basic_istream& operator>>( + basic_istream& _Istr, signed char& _Ch) + { + return (_Istr >> (char&)_Ch); + } + +template inline + basic_istream& operator>>( + basic_istream& _Istr, unsigned char *_Str) + { + return (_Istr >> (char *)_Str); + } + +template inline + basic_istream& operator>>( + basic_istream& _Istr, unsigned char& _Ch) + { + return (_Istr >> (char&)_Ch); + } + +template inline + basic_istream<_Elem, _Traits>& + operator>>(basic_istream<_Elem, _Traits>&& _Istr, _Ty& _Val) + { + return (_Istr >> _Val); + } + + +template inline + basic_istream<_Elem, _Traits>& + __cdecl ws(basic_istream<_Elem, _Traits>& _Istr) + { + typedef basic_istream<_Elem, _Traits> _Myis; + typedef ctype<_Elem> _Ctype; + + if (!_Istr.eof()) + { + ios_base::iostate _State = ios_base::goodbit; + const typename _Myis::sentry _Ok(_Istr, true); + + if (_Ok) + { + const _Ctype& _Ctype_fac = use_facet< _Ctype >(_Istr.getloc()); + + try { + for (typename _Traits::int_type _Meta = _Istr.rdbuf()->sgetc(); ; + _Meta = _Istr.rdbuf()->snextc()) + if (_Traits::eq_int_type(_Traits::eof(), _Meta)) + { + _State |= ios_base::eofbit; + break; + } + else if (!_Ctype_fac.is(_Ctype::space, + _Traits::to_char_type(_Meta))) + break; + } catch (...) { (_Istr).setstate(ios_base::badbit, true); } + } + + _Istr.setstate(_State); + } + return (_Istr); + } +} + + +#pragma warning(pop) +#pragma pack(pop) +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator" 2 3 + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +namespace std { + +template + class back_insert_iterator + : public _Outit + { +public: + typedef back_insert_iterator<_Container> _Myt; + typedef _Container container_type; + typedef typename _Container::value_type _Valty; + + explicit back_insert_iterator(_Container& _Cont) + : container(::std:: addressof(_Cont)) + { + } + + _Myt& operator=(const _Valty& _Val) + { + container->push_back(_Val); + return (*this); + } + + _Myt& operator=(_Valty&& _Val) + { + container->push_back(::std:: forward<_Valty>(_Val)); + return (*this); + } + + _Myt& operator*() + { + return (*this); + } + + _Myt& operator++() + { + return (*this); + } + + _Myt operator++(int) + { + return (*this); + } + +protected: + _Container *container; + }; + +template + struct _Is_checked_helper > + : public true_type + { + }; + + +template inline + back_insert_iterator<_Container> back_inserter(_Container& _Cont) + { + return (back_insert_iterator<_Container>(_Cont)); + } + + +template + class front_insert_iterator + : public _Outit + { +public: + typedef front_insert_iterator<_Container> _Myt; + typedef _Container container_type; + typedef typename _Container::value_type _Valty; + + explicit front_insert_iterator(_Container& _Cont) + : container(::std:: addressof(_Cont)) + { + } + + _Myt& operator=(const _Valty& _Val) + { + container->push_front(_Val); + return (*this); + } + + _Myt& operator=(_Valty&& _Val) + { + container->push_front(::std:: forward<_Valty>(_Val)); + return (*this); + } + + _Myt& operator*() + { + return (*this); + } + + _Myt& operator++() + { + return (*this); + } + + _Myt operator++(int) + { + return (*this); + } + +protected: + _Container *container; + }; + +template + struct _Is_checked_helper > + : public true_type + { + }; + + +template inline + front_insert_iterator<_Container> front_inserter(_Container& _Cont) + { + return (front_insert_iterator<_Container>(_Cont)); + } + + +template + class insert_iterator + : public _Outit + { +public: + typedef insert_iterator<_Container> _Myt; + typedef _Container container_type; + typedef typename _Container::value_type _Valty; + + insert_iterator(_Container& _Cont, typename _Container::iterator _Where) + : container(::std:: addressof(_Cont)), iter(_Where) + { + } + + _Myt& operator=(const _Valty& _Val) + { + iter = container->insert(iter, _Val); + ++iter; + return (*this); + } + + _Myt& operator=(_Valty&& _Val) + { + iter = container->insert(iter, ::std:: forward<_Valty>(_Val)); + ++iter; + return (*this); + } + + _Myt& operator*() + { + return (*this); + } + + _Myt& operator++() + { + return (*this); + } + + _Myt& operator++(int) + { + return (*this); + } + +protected: + _Container *container; + typename _Container::iterator iter; + }; + +template + struct _Is_checked_helper > + : public true_type + { + }; + + +template inline + insert_iterator<_Container> inserter(_Container& _Cont, + typename _Container::iterator _Where) + { + return (insert_iterator<_Container>(_Cont, _Where)); + } + + + +template, + class _Diff = ptrdiff_t> + class istream_iterator + : public iterator + { + typedef istream_iterator<_Ty, _Elem, _Traits, _Diff> _Myt; +public: + typedef _Elem char_type; + typedef _Traits traits_type; + typedef basic_istream<_Elem, _Traits> istream_type; + + typedef const _Ty *pointer; + + constexpr istream_iterator() + : _Myistr(0), _Myval() + { + } + + istream_iterator(istream_type& _Istr) + : _Myistr(&_Istr) + { + _Getval(); + } + + const _Ty& operator*() const + { + return (_Myval); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myt& operator++() + { + _Getval(); + return (*this); + } + + _Myt operator++(int) + { + _Myt _Tmp = *this; + ++*this; + return (_Tmp); + } + + bool _Equal(const _Myt& _Right) const + { + return (_Myistr == _Right._Myistr); + } + +protected: + void _Getval() + { + if (_Myistr != 0 && !(*_Myistr >> _Myval)) + _Myistr = 0; + } + + istream_type *_Myistr; + _Ty _Myval; + }; + +template + struct _Is_checked_helper > + : public true_type + { + }; + + +template inline + bool operator==( + const istream_iterator<_Ty, _Elem, _Traits, _Diff>& _Left, + const istream_iterator<_Ty, _Elem, _Traits, _Diff>& _Right) + { + return (_Left._Equal(_Right)); + } + +template inline + bool operator!=( + const istream_iterator<_Ty, _Elem, _Traits, _Diff>& _Left, + const istream_iterator<_Ty, _Elem, _Traits, _Diff>& _Right) + { + return (!(_Left == _Right)); + } + + + +template > + class ostream_iterator + : public _Outit + { +public: + typedef _Elem char_type; + typedef _Traits traits_type; + typedef basic_ostream<_Elem, _Traits> ostream_type; + + ostream_iterator(ostream_type& _Ostr, + const _Elem *_Delim = 0) + : _Myostr(&_Ostr), _Mydelim(_Delim) + { + } + + ostream_iterator& operator=(const _Ty& _Val) + { + *_Myostr << _Val; + if (_Mydelim != 0) + *_Myostr << _Mydelim; + return (*this); + } + + ostream_iterator& operator*() + { + return (*this); + } + + ostream_iterator& operator++() + { + return (*this); + } + + ostream_iterator& operator++(int) + { + return (*this); + } + +protected: + const _Elem *_Mydelim; + ostream_type *_Myostr; + }; + +template + struct _Is_checked_helper > + : public true_type + { + }; +} + +namespace stdext { +using ::std:: iterator_traits; +using ::std:: size_t; + + +template + class checked_array_iterator + { +public: + typedef checked_array_iterator<_Iterator> _Myt; + + typedef typename iterator_traits<_Iterator>::iterator_category + iterator_category; + typedef typename iterator_traits<_Iterator>::value_type + value_type; + typedef typename iterator_traits<_Iterator>::difference_type + difference_type; + typedef typename iterator_traits<_Iterator>::pointer + pointer; + typedef typename iterator_traits<_Iterator>::reference + reference; + + checked_array_iterator() + : _Myarray(), _Mysize(0), _Myindex(0) + { + } + + checked_array_iterator(_Iterator _Array, size_t _Size, + size_t _Index = 0) + : _Myarray(_Array), _Mysize(_Size), _Myindex(_Index) + { + { if (!(_Index <= _Size)) { (void)( (!!(("_Index <= _Size" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator", 383, 0, L"%ls", L"\"_Index <= _Size\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator", 383, 0); } ; }; + } + + _Iterator base() const + { + return (_Myarray + _Myindex); + } + + typedef _Iterator _Unchecked_type; + + _Myt& _Rechecked(_Unchecked_type _Right) + { + _Myindex = _Right - _Myarray; + return (*this); + } + + _Unchecked_type _Unchecked() const + { + return (base()); + } + + reference operator*() const + { + { if (!(_Myarray != 0 && _Myindex < _Mysize)) { (void)( (!!(("_Myarray != 0 && _Myindex < _Mysize" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator", 407, 0, L"%ls", L"\"_Myarray != 0 && _Myindex < _Mysize\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator", 407, 0); } ; }; + + return (_Myarray[_Myindex]); + } + + pointer operator->() const + { + return (::std:: pointer_traits::pointer_to(**this)); + } + + _Myt& operator++() + { + { if (!(_Myarray != 0 && _Myindex < _Mysize)) { (void)( (!!(("_Myarray != 0 && _Myindex < _Mysize" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator", 419, 0, L"%ls", L"\"_Myarray != 0 && _Myindex < _Mysize\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator", 419, 0); } ; }; + + ++_Myindex; + return (*this); + } + + _Myt operator++(int) + { + _Myt _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myt& operator--() + { + { if (!(_Myarray != 0 && 0 < _Myindex)) { (void)( (!!(("_Myarray != 0 && 0 < _Myindex" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator", 434, 0, L"%ls", L"\"_Myarray != 0 && 0 < _Myindex\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator", 434, 0); } ; }; + + --_Myindex; + return (*this); + } + + _Myt operator--(int) + { + _Myt _Tmp = *this; + --*this; + return (_Tmp); + } + + _Myt& operator+=(difference_type _Off) + { + { if (!(_Myarray != 0 && _Myindex + _Off <= _Mysize)) { (void)( (!!(("_Myarray != 0 && _Myindex + _Off <= _Mysize" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator", 449, 0, L"%ls", L"\"_Myarray != 0 && _Myindex + _Off <= _Mysize\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator", 449, 0); } ; }; + + _Myindex += _Off; + return (*this); + } + + _Myt operator+(difference_type _Off) const + { + _Myt _Tmp = *this; + return (_Tmp += _Off); + } + + _Myt& operator-=(difference_type _Off) + { + return (*this += -_Off); + } + + _Myt operator-(difference_type _Off) const + { + _Myt _Tmp = *this; + return (_Tmp -= _Off); + } + + difference_type operator-(const _Myt& _Right) const + { + { if (!(_Myarray == _Right._Myarray)) { (void)( (!!(("_Myarray == _Right._Myarray" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator", 473, 0, L"%ls", L"\"_Myarray == _Right._Myarray\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator", 473, 0); } ; }; + return (_Myindex - _Right._Myindex); + } + + reference operator[](difference_type _Off) const + { + return (*(*this + _Off)); + } + + bool operator==(const _Myt& _Right) const + { + { if (!(_Myarray == _Right._Myarray)) { (void)( (!!(("_Myarray == _Right._Myarray" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator", 484, 0, L"%ls", L"\"_Myarray == _Right._Myarray\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator", 484, 0); } ; }; + return (_Myindex == _Right._Myindex); + } + + bool operator!=(const _Myt& _Right) const + { + return (!(*this == _Right)); + } + + bool operator<(const _Myt& _Right) const + { + { if (!(_Myarray == _Right._Myarray)) { (void)( (!!(("_Myarray == _Right._Myarray" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator", 495, 0, L"%ls", L"\"_Myarray == _Right._Myarray\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iterator", 495, 0); } ; }; + return (_Myindex < _Right._Myindex); + } + + bool operator>(const _Myt& _Right) const + { + return (_Right < *this); + } + + bool operator<=(const _Myt& _Right) const + { + return (!(_Right < *this)); + } + + bool operator>=(const _Myt& _Right) const + { + return (!(*this < _Right)); + } + +private: + _Iterator _Myarray; + size_t _Mysize; + size_t _Myindex; + }; + +template inline + typename checked_array_iterator<_Iterator>::_Unchecked_type + _Unchecked(checked_array_iterator<_Iterator> _Iter) + { + return (_Iter._Unchecked()); + } + +template inline + checked_array_iterator<_Iterator>& + _Rechecked(checked_array_iterator<_Iterator>& _Iter, + typename checked_array_iterator<_Iterator> + ::_Unchecked_type _Right) + { + return (_Iter._Rechecked(_Right)); + } + +template inline + checked_array_iterator<_Iterator> operator+( + typename checked_array_iterator<_Iterator>::difference_type _Off, + checked_array_iterator<_Iterator> _Next) + { + return (_Next += _Off); + } + +template inline + checked_array_iterator<_Iterator> make_checked_array_iterator( + _Iterator _Array, size_t _Size, size_t _Index = 0) + { + return (checked_array_iterator<_Iterator>(_Array, _Size, _Index)); + } + + +template + class unchecked_array_iterator + { +public: + typedef unchecked_array_iterator<_Iterator> _Myt; + + typedef typename iterator_traits<_Iterator>::iterator_category + iterator_category; + typedef typename iterator_traits<_Iterator>::value_type + value_type; + typedef typename iterator_traits<_Iterator>::difference_type + difference_type; + typedef typename iterator_traits<_Iterator>::pointer + pointer; + typedef typename iterator_traits<_Iterator>::reference + reference; + + unchecked_array_iterator() + : _Myptr() + { + } + + explicit unchecked_array_iterator(_Iterator _Ptr) + : _Myptr(_Ptr) + { + } + + _Iterator base() const + { + return (_Myptr); + } + + typedef _Iterator _Unchecked_type; + + _Myt& _Rechecked(_Unchecked_type _Right) + { + _Myptr = _Right; + return (*this); + } + + _Unchecked_type _Unchecked() const + { + return (base()); + } + + reference operator*() const + { + return (*_Myptr); + } + + pointer operator->() const + { + return (::std:: pointer_traits::pointer_to(**this)); + } + + _Myt& operator++() + { + ++_Myptr; + return (*this); + } + + _Myt operator++(int) + { + _Myt _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myt& operator--() + { + --_Myptr; + return (*this); + } + + _Myt operator--(int) + { + _Myt _Tmp = *this; + --*this; + return (_Tmp); + } + + _Myt& operator+=(difference_type _Off) + { + _Myptr += _Off; + return (*this); + } + + _Myt operator+(difference_type _Off) const + { + _Myt _Tmp = *this; + return (_Tmp += _Off); + } + + _Myt& operator-=(difference_type _Off) + { + return (*this += -_Off); + } + + _Myt operator-(difference_type _Off) const + { + _Myt _Tmp = *this; + return (_Tmp -= _Off); + } + + difference_type operator-(const _Myt& _Right) const + { + return (_Myptr - _Right._Myptr); + } + + reference operator[](difference_type _Off) const + { + return (*(*this + _Off)); + } + + bool operator==(const _Myt& _Right) const + { + return (_Myptr == _Right._Myptr); + } + + bool operator!=(const _Myt& _Right) const + { + return (!(*this == _Right)); + } + + bool operator<(const _Myt& _Right) const + { + return (_Myptr < _Right._Myptr); + } + + bool operator>(const _Myt& _Right) const + { + return (_Right < *this); + } + + bool operator<=(const _Myt& _Right) const + { + return (!(_Right < *this)); + } + + bool operator>=(const _Myt& _Right) const + { + return (!(*this < _Right)); + } + +private: + _Iterator _Myptr; + }; + +template inline + typename unchecked_array_iterator<_Iterator>::_Unchecked_type + _Unchecked(unchecked_array_iterator<_Iterator> _Iter) + { + return (_Iter._Unchecked()); + } + +template inline + unchecked_array_iterator<_Iterator>& + _Rechecked(unchecked_array_iterator<_Iterator>& _Iter, + typename unchecked_array_iterator<_Iterator> + ::_Unchecked_type _Right) + { + return (_Iter._Rechecked(_Right)); + } + +template inline + unchecked_array_iterator<_Iterator> operator+( + typename unchecked_array_iterator<_Iterator>::difference_type _Off, + unchecked_array_iterator<_Iterator> _Next) + { + return (_Next += _Off); + } + +template inline + unchecked_array_iterator<_Iterator> make_unchecked_array_iterator( + _Iterator _Ptr) + { + return (unchecked_array_iterator<_Iterator>(_Ptr)); + } +} + + +#pragma warning(pop) +#pragma pack(pop) +# 7 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\array" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\tuple" 1 3 +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\tuple" 3 +#pragma pack(push,8) +#pragma warning(push, 3) + + + +namespace std { + +template + struct _Tuple_implicit_val0 + : false_type + { + }; + +template + struct _Tuple_implicit_val0, _Srcs...> + : conjunction< + is_constructible<_Dests, _Srcs>..., + is_convertible<_Srcs, _Dests>... + >::type + { + }; + +template + struct _Tuple_implicit_val + : _Tuple_implicit_val0::value == sizeof...(_Srcs), _Dest, _Srcs...>::type + { + }; + +template + using _Tuple_implicit_t = enable_if_t<_Tuple_implicit_val<_Dest, _Srcs...>::value, int>; + + +template + struct _Tuple_explicit_val0 + : false_type + { + }; + +template + struct _Tuple_explicit_val0, _Srcs...> + : conjunction< + is_constructible<_Dests, _Srcs>..., + negation...>> + >::type + { + }; + +template + struct _Tuple_explicit_val + : _Tuple_explicit_val0::value == sizeof...(_Srcs), _Dest, _Srcs...>::type + { + }; + +template + using _Tuple_explicit_t = enable_if_t<_Tuple_explicit_val<_Dest, _Srcs...>::value, int>; + + +template + struct _Tuple_convert_copy + { + typedef int type; + }; + +template + struct _Tuple_convert_copy, _Uty> + : enable_if::value + && !is_constructible<_This, const tuple<_Uty>&>::value + && !is_convertible&, _This>::value, int> + { + }; + +template + using _Tuple_convert_copy_t = typename _Tuple_convert_copy<_Myt, _Other...>::type; + + +template + struct _Tuple_convert_move + { + typedef int type; + }; + +template + struct _Tuple_convert_move, _Uty> + : enable_if::value + && !is_constructible<_This, tuple<_Uty> >::value + && !is_convertible, _This>::value, int> + { + }; + +template + using _Tuple_convert_move_t = typename _Tuple_convert_move<_Myt, _Other...>::type; + + +template + struct _Tuple_perfect_val + : true_type + { + }; + +template + struct _Tuple_perfect_val<_Myt, _This2> + : negation>>>::type + { + }; + + +struct _Ignore + { + template + void operator=(const _Ty&) const + { + } + }; + +constexpr _Ignore ignore{}; + + +struct _Tuple_alloc_t + { + }; + +constexpr _Tuple_alloc_t _Tuple_alloc{}; + + +template + struct _Tuple_val + { + constexpr _Tuple_val() + : _Val() + { + } + + template + constexpr _Tuple_val(_Other&& _Arg) + : _Val(::std:: forward<_Other>(_Arg)) + { + } + + template + _Tuple_val& operator=(_Other&& _Right) + { + _Val = ::std:: forward<_Other>(_Right); + return (*this); + } + + template + _Tuple_val(const _Alloc&, + typename enable_if::value, + _Tuple_alloc_t>::type, _Other&&... _Arg) + : _Val(::std:: forward<_Other>(_Arg)...) + { + } + + template + _Tuple_val(const _Alloc& _Al, + typename enable_if::value + && is_constructible<_Ty, + allocator_arg_t, _Alloc>::value, + _Tuple_alloc_t>::type, _Other&&... _Arg) + : _Val(allocator_arg, _Al, ::std:: forward<_Other>(_Arg)...) + { + } + + template + _Tuple_val(const _Alloc& _Al, + typename enable_if::value + && !is_constructible<_Ty, + allocator_arg_t, _Alloc>::value, + _Tuple_alloc_t>::type, _Other&&... _Arg) + : _Val(::std:: forward<_Other>(_Arg)..., _Al) + { + } + + _Ty _Val; + }; + + +struct _Exact_args_t + { + }; + +struct _Unpack_tuple_t + { + }; + +struct _Alloc_exact_args_t + { + }; + +struct _Alloc_unpack_tuple_t + { + }; + +template + class tuple; + +template<> + class tuple<> + { +public: + typedef tuple<> _Myt; + + constexpr tuple() noexcept + { + } + + template + tuple(allocator_arg_t, const _Alloc&) noexcept + { + } + + constexpr tuple(const tuple&) noexcept + { + } + + template + tuple(allocator_arg_t, const _Alloc&, const _Myt&) noexcept + { + } + + template::value, int> = 0> + constexpr tuple(_Tag) noexcept + { + } + + template::value, int> = 0> + constexpr tuple(_Tag, const _Myt&) noexcept + { + } + + template::value, int> = 0> + tuple(_Tag, const _Alloc&) noexcept + { + } + + void swap(_Myt&) noexcept + { + } + + constexpr bool _Equals(const _Myt&) const noexcept + { + return (true); + } + + constexpr bool _Less(const _Myt&) const noexcept + { + return (false); + } + }; + +template + class tuple<_This, _Rest...> + : private tuple<_Rest...> + { +public: + typedef _This _This_type; + typedef tuple<_This, _Rest...> _Myt; + typedef tuple<_Rest...> _Mybase; + static constexpr size_t _Mysize = 1 + sizeof...(_Rest); + + template::value, int> = 0> + constexpr tuple(_Tag, _This2&& _This_arg, _Rest2&&... _Rest_arg) + : _Mybase(_Exact_args_t{}, ::std:: forward<_Rest2>(_Rest_arg)...), + _Myfirst(::std:: forward<_This2>(_This_arg)) + { + } +# 326 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\tuple" 3 + template::value, int> = 0> + constexpr tuple(_Tag, const tuple<_Other...>& _Right) + : _Mybase(_Unpack_tuple_t{}, _Right._Get_rest()), + _Myfirst(_Right._Myfirst._Val) + { + } + + template::value, int> = 0> + constexpr tuple(_Tag, tuple<_Other...>&& _Right) + : _Mybase(_Unpack_tuple_t{}, (typename tuple<_Other...>::_Mybase&&) _Right), + _Myfirst(::std:: forward::_This_type>(_Right._Myfirst._Val)) + { + } + + template::value, int> = 0> + tuple(_Tag, const _Alloc& _Al, _This2&& _This_arg, _Rest2&&... _Rest_arg) + : _Mybase(_Alloc_exact_args_t{}, _Al, ::std:: forward<_Rest2>(_Rest_arg)...), + _Myfirst(_Al, _Tuple_alloc, ::std:: forward<_This2>(_This_arg)) + { + } + + template::value, int> = 0> inline + tuple(_Tag, const _Alloc& _Al, _Tpl&& _Right, integer_sequence); + + template::value, int> = 0> + tuple(_Tag, const _Alloc& _Al, _Tpl&& _Right) + : tuple(_Alloc_unpack_tuple_t{}, _Al, ::std:: forward<_Tpl>(_Right), + make_integer_sequence>::value>{}) + { + } + + template, + is_default_constructible<_Rest>...>::value> > + constexpr tuple() + : _Mybase(), _Myfirst() + { + } + + template = 0, + _Tuple_convert_copy_t<_Myt, _Other...> = 0> + constexpr tuple(const tuple<_Other...>& _Right) + + + : _Mybase(_Unpack_tuple_t{}, _Right._Get_rest()), + _Myfirst(_Right._Myfirst._Val) + { + } + + template = 0, + _Tuple_convert_copy_t<_Myt, _Other...> = 0> + constexpr explicit tuple(const tuple<_Other...>& _Right) + + + : _Mybase(_Unpack_tuple_t{}, _Right._Get_rest()), + _Myfirst(_Right._Myfirst._Val) + { + } + + template = 0, + _Tuple_convert_copy_t<_Myt, _Other...> = 0> + tuple(allocator_arg_t, const _Alloc& _Al, + const tuple<_Other...>& _Right) + : tuple(_Alloc_unpack_tuple_t{}, _Al, _Right) + { + } + + template = 0, + _Tuple_convert_copy_t<_Myt, _Other...> = 0> + explicit tuple(allocator_arg_t, const _Alloc& _Al, + const tuple<_Other...>& _Right) + : tuple(_Alloc_unpack_tuple_t{}, _Al, _Right) + { + } + + template = 0> + constexpr tuple(const _This& _This_arg, const _Rest&... _Rest_arg) + + + : _Mybase(_Exact_args_t{}, _Rest_arg...), _Myfirst(_This_arg) + { + } + + template = 0> + constexpr explicit tuple(const _This& _This_arg, const _Rest&... _Rest_arg) + + + : _Mybase(_Exact_args_t{}, _Rest_arg...), _Myfirst(_This_arg) + { + } + + template = 0> + tuple(allocator_arg_t, const _Alloc& _Al, + const _This& _This_arg, const _Rest&... _Rest_arg) + : tuple(_Alloc_exact_args_t{}, _Al, _This_arg, _Rest_arg...) + { + } + + template = 0> + explicit tuple(allocator_arg_t, const _Alloc& _Al, + const _This& _This_arg, const _Rest&... _Rest_arg) + : tuple(_Alloc_exact_args_t{}, _Al, _This_arg, _Rest_arg...) + { + } + + template, + _Tuple_implicit_val<_Myt, _This2, _Rest2...> + >::value, int> = 0> + constexpr tuple(_This2&& _This_arg, _Rest2&&... _Rest_arg) + + + : _Mybase(_Exact_args_t{}, ::std:: forward<_Rest2>(_Rest_arg)...), + _Myfirst(::std:: forward<_This2>(_This_arg)) + { + } + + template, + _Tuple_explicit_val<_Myt, _This2, _Rest2...> + >::value, int> = 0> + constexpr explicit tuple(_This2&& _This_arg, _Rest2&&... _Rest_arg) + + + : _Mybase(_Exact_args_t{}, ::std:: forward<_Rest2>(_Rest_arg)...), + _Myfirst(::std:: forward<_This2>(_This_arg)) + { + } + + template, + _Tuple_implicit_val<_Myt, _This2, _Rest2...> + >::value, int> = 0> + tuple(allocator_arg_t, const _Alloc& _Al, + _This2&& _This_arg, _Rest2&&... _Rest_arg) + : tuple(_Alloc_exact_args_t{}, _Al, ::std:: forward<_This2>(_This_arg), ::std:: forward<_Rest2>(_Rest_arg)...) + { + } + + template, + _Tuple_explicit_val<_Myt, _This2, _Rest2...> + >::value, int> = 0> + explicit tuple(allocator_arg_t, const _Alloc& _Al, + _This2&& _This_arg, _Rest2&&... _Rest_arg) + : tuple(_Alloc_exact_args_t{}, _Al, ::std:: forward<_This2>(_This_arg), ::std:: forward<_Rest2>(_Rest_arg)...) + { + } + + template = 0, + _Tuple_convert_move_t<_Myt, _Other...> = 0> + constexpr tuple(tuple<_Other...>&& _Right) + + + : _Mybase(_Unpack_tuple_t{}, (typename tuple<_Other...>::_Mybase&&) _Right), + _Myfirst(::std:: forward::_This_type>(_Right._Myfirst._Val)) + { + } + + template = 0, + _Tuple_convert_move_t<_Myt, _Other...> = 0> + constexpr explicit tuple(tuple<_Other...>&& _Right) + + + : _Mybase(_Unpack_tuple_t{}, (typename tuple<_Other...>::_Mybase&&) _Right), + _Myfirst(::std:: forward::_This_type>(_Right._Myfirst._Val)) + { + } + + template = 0, + _Tuple_convert_move_t<_Myt, _Other...> = 0> + tuple(allocator_arg_t, const _Alloc& _Al, + tuple<_Other...>&& _Right) + : tuple(_Alloc_unpack_tuple_t{}, _Al, ::std:: move(_Right)) + { + } + + template = 0, + _Tuple_convert_move_t<_Myt, _Other...> = 0> + explicit tuple(allocator_arg_t, const _Alloc& _Al, + tuple<_Other...>&& _Right) + : tuple(_Alloc_unpack_tuple_t{}, _Al, ::std:: move(_Right)) + { + } + + template + _Myt& operator=(const tuple<_Other...>& _Right) + { + _Myfirst._Val = _Right._Myfirst._Val; + _Get_rest() = _Right._Get_rest(); + return (*this); + } + + template + _Myt& operator=(tuple<_Other...>&& _Right) + { + _Myfirst._Val = ::std:: forward::_This_type> + (_Right._Myfirst._Val); + _Get_rest() = ::std:: forward::_Mybase> + (_Right._Get_rest()); + return (*this); + } + + template + constexpr bool _Equals(const tuple<_Other...>& _Right) const + { + static_assert(_Mysize == sizeof...(_Other), + "comparing tuple to object with different size"); + return (_Myfirst._Val == _Right._Myfirst._Val + && _Mybase::_Equals(_Right._Get_rest())); + } + + template + constexpr bool _Less(const tuple<_Other...>& _Right) const + { + static_assert(_Mysize == sizeof...(_Other), + "comparing tuple to object with different size"); + return (_Myfirst._Val < _Right._Myfirst._Val + || (!(_Right._Myfirst._Val < _Myfirst._Val) + && _Mybase::_Less(_Right._Get_rest()))); + } + + template, + is_default_constructible<_Rest>...>::value> > + tuple(allocator_arg_t, const _Alloc& _Al) + : _Mybase(allocator_arg, _Al), _Myfirst(_Al, _Tuple_alloc) + { + } + + template + tuple(allocator_arg_t, const _Alloc& _Al, + const _Myt& _Right) + : tuple(_Alloc_unpack_tuple_t{}, _Al, _Right) + { + } + + tuple(const _Myt&) = default; + tuple(_Myt&&) = default; + + template = 0> + constexpr tuple(const pair<_First, _Second>& _Right) + + + : _Mybase(_Exact_args_t{}, _Right.second), _Myfirst(_Right.first) + { + } + + template = 0> + constexpr explicit tuple(const pair<_First, _Second>& _Right) + + + : _Mybase(_Exact_args_t{}, _Right.second), _Myfirst(_Right.first) + { + } + + template = 0> + tuple(allocator_arg_t, const _Alloc& _Al, + const pair<_First, _Second>& _Right) + : tuple(_Alloc_unpack_tuple_t{}, _Al, _Right) + { + } + + template = 0> + explicit tuple(allocator_arg_t, const _Alloc& _Al, + const pair<_First, _Second>& _Right) + : tuple(_Alloc_unpack_tuple_t{}, _Al, _Right) + { + } + + _Myt& operator=(const _Myt& _Right) + { + _Myfirst._Val = _Right._Myfirst._Val; + _Get_rest() = _Right._Get_rest(); + return (*this); + } + + template + _Myt& operator=(const pair<_First, _Second>& _Right) + { + static_assert(_Mysize == 2, + "assigning to tuple from object with different size"); + _Myfirst._Val = _Right.first; + _Get_rest()._Myfirst._Val = _Right.second; + return (*this); + } + + template + tuple(allocator_arg_t, const _Alloc& _Al, + _Myt&& _Right) + : tuple(_Alloc_unpack_tuple_t{}, _Al, ::std:: move(_Right)) + { + } + + template = 0> + constexpr tuple(pair<_First, _Second>&& _Right) + + + : _Mybase(_Exact_args_t{}, ::std:: forward<_Second>(_Right.second)), + _Myfirst(::std:: forward<_First>(_Right.first)) + { + } + + template = 0> + constexpr explicit tuple(pair<_First, _Second>&& _Right) + + + : _Mybase(_Exact_args_t{}, ::std:: forward<_Second>(_Right.second)), + _Myfirst(::std:: forward<_First>(_Right.first)) + { + } + + template = 0> + tuple(allocator_arg_t, const _Alloc& _Al, + pair<_First, _Second>&& _Right) + : tuple(_Alloc_unpack_tuple_t{}, _Al, ::std:: move(_Right)) + { + } + + template = 0> + explicit tuple(allocator_arg_t, const _Alloc& _Al, + pair<_First, _Second>&& _Right) + : tuple(_Alloc_unpack_tuple_t{}, _Al, ::std:: move(_Right)) + { + } + + _Myt& operator=(_Myt&& _Right) + noexcept(is_nothrow_move_assignable<_This>::value && is_nothrow_move_assignable<_Mybase>::value) + + { + _Myfirst._Val = ::std:: forward<_This>(_Right._Myfirst._Val); + _Get_rest() = ::std:: forward<_Mybase>(_Right._Get_rest()); + return (*this); + } + + template + _Myt& operator=(pair<_First, _Second>&& _Right) + { + static_assert(_Mysize == 2, + "assigning to tuple from object with different size"); + _Myfirst._Val = ::std:: forward<_First>(_Right.first); + _Get_rest()._Myfirst._Val = ::std:: forward<_Second>(_Right.second); + return (*this); + } + + _Mybase& _Get_rest() noexcept + { + return (*this); + } + + constexpr const _Mybase& _Get_rest() const noexcept + { + return (*this); + } + + _Tuple_val<_This> _Myfirst; + + void swap(tuple& _Right) + noexcept((conjunction<_Is_nothrow_swappable<_This>, _Is_nothrow_swappable<_Rest>...>::value)) + + { + _Swap_adl(_Myfirst._Val, _Right._Myfirst._Val); + _Mybase::swap(_Right._Get_rest()); + } + }; + + + + +template inline + constexpr bool operator==(const tuple<_Types1...>& _Left, + const tuple<_Types2...>& _Right) + { + return (_Left._Equals(_Right)); + } + +template inline + constexpr bool operator!=(const tuple<_Types1...>& _Left, + const tuple<_Types2...>& _Right) + { + return (!(_Left == _Right)); + } + +template inline + constexpr bool operator<(const tuple<_Types1...>& _Left, + const tuple<_Types2...>& _Right) + { + return (_Left._Less(_Right)); + } + +template inline + constexpr bool operator>=(const tuple<_Types1...>& _Left, + const tuple<_Types2...>& _Right) + { + return (!(_Left < _Right)); + } + +template inline + constexpr bool operator>(const tuple<_Types1...>& _Left, + const tuple<_Types2...>& _Right) + { + return (_Right < _Left); + } + +template inline + constexpr bool operator<=(const tuple<_Types1...>& _Left, + const tuple<_Types2...>& _Right) + { + return (!(_Right < _Left)); + } + +template...>::value>> inline + void swap(tuple<_Types...>& _Left, + tuple<_Types...>& _Right) + noexcept(noexcept(_Left.swap(_Right))) + { + return (_Left.swap(_Right)); + } + + + +template + struct _Tuple_element; + +template + struct _Tuple_element<_This, tuple<_This, _Rest...> > + { + typedef int _Check_type; + static_assert(is_void >::_Check_type>::value, + "duplicate type T in get(tuple)"); + + typedef _This type; + typedef tuple<_This, _Rest...> _Ttype; + }; + +template + struct _Tuple_element<_Ty, tuple<_This, _Rest...> > + : public _Tuple_element<_Ty, tuple<_Rest...> > + { + }; + +template + struct _Tuple_element<_Ty, tuple<> > + { + typedef void _Check_type; + }; + +template + struct _Tuple_element<_Ty, const _Tuple> + : public _Tuple_element<_Ty, _Tuple> + { + typedef _Tuple_element<_Ty, _Tuple> _Mybase; + typedef typename add_const::type type; + }; + +template + struct _Tuple_element<_Ty, volatile _Tuple> + : public _Tuple_element<_Ty, _Tuple> + { + typedef _Tuple_element<_Ty, _Tuple> _Mybase; + typedef typename add_volatile::type type; + }; + +template + struct _Tuple_element<_Ty, const volatile _Tuple> + : public _Tuple_element<_Ty, _Tuple> + { + typedef _Tuple_element<_Ty, _Tuple> _Mybase; + typedef typename add_cv::type type; + }; + + +template inline + constexpr typename tuple_element<_Index, tuple<_Types...> >::type& + get(tuple<_Types...>& _Tuple) noexcept + { + typedef typename tuple_element<_Index, tuple<_Types...> >::_Ttype + _Ttype; + return (((_Ttype&)_Tuple)._Myfirst._Val); + } + +template inline + constexpr const typename tuple_element<_Index, tuple<_Types...> >::type& + get(const tuple<_Types...>& _Tuple) noexcept + { + typedef typename tuple_element<_Index, tuple<_Types...> >::_Ttype + _Ttype; + return (((_Ttype&)_Tuple)._Myfirst._Val); + } + +template inline + constexpr typename tuple_element<_Index, tuple<_Types...> >::type&& + get(tuple<_Types...>&& _Tuple) noexcept + { + typedef typename tuple_element<_Index, tuple<_Types...> >::_Ttype + _Ttype; + typedef typename tuple_element<_Index, tuple<_Types...> >::type&& + _RRtype; + return (::std:: forward<_RRtype>(((_Ttype&)_Tuple)._Myfirst._Val)); + } + + +template inline + constexpr _Ty& get(tuple<_Types...>& _Tuple) noexcept + { + typedef typename _Tuple_element<_Ty, tuple<_Types...> >::_Ttype _Ttype; + return (((_Ttype&)_Tuple)._Myfirst._Val); + } + +template inline + constexpr const _Ty& get(const tuple<_Types...>& _Tuple) noexcept + { + typedef typename _Tuple_element<_Ty, tuple<_Types...> >::_Ttype _Ttype; + return (((_Ttype&)_Tuple)._Myfirst._Val); + } + +template inline + constexpr _Ty&& get(tuple<_Types...>&& _Tuple) noexcept + { + typedef typename _Tuple_element<_Ty, tuple<_Types...> >::_Ttype _Ttype; + return (::std:: forward<_Ty&&>(((_Ttype&)_Tuple)._Myfirst._Val)); + } +# 950 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\tuple" 3 +template + template::value, int>> inline + tuple<_This, _Rest...>::tuple(_Tag, const _Alloc& _Al, _Tpl&& _Right, integer_sequence) + : tuple(_Alloc_exact_args_t{}, _Al, ::std:: get<_Indices>(::std:: forward<_Tpl>(_Right))...) + { + } + + +template inline + constexpr tuple::type...> + make_tuple(_Types&&... _Args) + { + typedef tuple::type...> _Ttype; + return (_Ttype(::std:: forward<_Types>(_Args)...)); + } + + +template inline + constexpr tuple<_Types&...> + tie(_Types&... _Args) noexcept + { + typedef tuple<_Types&...> _Ttype; + return (_Ttype(_Args...)); + } + + + + +template inline + constexpr tuple<_Types&&...> + forward_as_tuple(_Types&&... _Args) noexcept + { + return (tuple<_Types&&...>(::std:: forward<_Types>(_Args)...)); + } + + + +template + struct _Cat_sequences; + +template + struct _Cat_sequences, + integer_sequence > + { + typedef integer_sequence type; + }; + + +template + class array; + +template + constexpr _Ty& get(array<_Ty, _Size>& _Arr) noexcept; + +template + constexpr const _Ty& get(const array<_Ty, _Size>& _Arr) noexcept; + +template + constexpr _Ty&& get(array<_Ty, _Size>&& _Arr) noexcept; + + +template + struct _View_as_tuple + { + static_assert(_Always_false<_Ty>::value, + "Unsupported tuple_cat arguments."); + }; + +template + struct _View_as_tuple > + { + typedef tuple<_Types...> type; + }; + +template + struct _View_as_tuple > + { + typedef tuple<_Ty1, _Ty2> type; + }; + +template + struct _View_as_tuple, _Types...> + { + typedef tuple<_Types...> type; + }; + +template + struct _View_as_tuple, _Types...> + : _View_as_tuple, _Ty, _Types...> + { + }; + + +template + struct _Repeat_for + : integral_constant + { + }; + + +template + struct _Tuple_cat2 + { + static_assert(sizeof...(_Tuples) == 0, + "Unsupported tuple_cat arguments."); + typedef _Ret type; + typedef _Kx_arg _Kx_arg_seq; + typedef _Ix_arg _Ix_arg_seq; + }; + +template + struct _Tuple_cat2, _Kx_arg, + integer_sequence, _Ix_next, + tuple<_Types2...>, _Rest...> + : _Tuple_cat2< + tuple<_Types1..., _Types2...>, + typename _Cat_sequences<_Kx_arg, + make_integer_sequence >::type, + integer_sequence::value...>, + _Ix_next + 1, + _Rest...> + { + }; + +template + struct _Tuple_cat1 + : _Tuple_cat2, integer_sequence, + integer_sequence, 0, + typename _View_as_tuple::type>::type...> + { + }; + +template inline + constexpr _Ret _Tuple_cat(integer_sequence, + integer_sequence, _Ty&& _Arg) + { + return (_Ret(::std:: get<_Kx>(::std:: get<_Ix>(::std:: forward<_Ty>(_Arg)))...)); + } + +template inline + constexpr _Ret _Tuple_cat(integer_sequence, + integer_sequence, _Ty&&) + { + return (_Ret()); + } + +template inline + constexpr typename _Tuple_cat1<_Tuples...>::type + tuple_cat(_Tuples&&... _Tpls) + { + typedef _Tuple_cat1<_Tuples...> _Cat1; + return (_Tuple_cat( + typename _Cat1::_Kx_arg_seq(), typename _Cat1::_Ix_arg_seq(), + ::std:: forward_as_tuple(::std:: forward<_Tuples>(_Tpls)...))); + } + + + +template inline + void _For_each_tuple_element_impl(_Tpl&& _Tuple, + _Fx _Func, integer_sequence) + { + int _Ignored[] = { (static_cast(_Func( + ::std:: get<_Indices>(::std:: forward<_Tpl>(_Tuple)) + )), 0)... }; + (void)_Ignored; + } + +template inline + void _For_each_tuple_element(_Tpl&& _Tuple, _Fx _Func) + { + _For_each_tuple_element_impl( + ::std:: forward<_Tpl>(_Tuple), + _Func, + make_integer_sequence>::value>() + ); + } + + + +template + template inline + pair<_Ty1, _Ty2>::pair(_Tuple1& _Val1, + _Tuple2& _Val2, + integer_sequence, + integer_sequence) + : first(::std:: get<_Indexes1>(::std:: move(_Val1))...), + second(::std:: get<_Indexes2>(::std:: move(_Val2))...) + { + (void) _Val1; + (void) _Val2; + } + + +template + template inline + pair<_Ty1, _Ty2>::pair(piecewise_construct_t, + tuple<_Types1...> _Val1, + tuple<_Types2...> _Val2) + : pair(_Val1, _Val2, + make_integer_sequence(), + make_integer_sequence()) + { + } + +} + +namespace std { + +template + struct uses_allocator, _Alloc> + : true_type + { + }; + +} + + +namespace std { +namespace tr1 { +using ::std:: get; +using ::std:: ignore; +using ::std:: make_tuple; +using ::std:: ref; +using ::std:: tie; +using ::std:: tuple; +} +} + + + +#pragma warning(pop) +#pragma pack(pop) +# 8 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\array" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4702 6385) + +namespace std { + +template + class array + { +public: + typedef array<_Ty, _Size> _Myt; + typedef _Ty value_type; + typedef size_t size_type; + typedef ptrdiff_t difference_type; + typedef _Ty *pointer; + typedef const _Ty *const_pointer; + typedef _Ty& reference; + typedef const _Ty& const_reference; + + typedef _Array_iterator<_Ty, _Size> iterator; + typedef _Array_const_iterator<_Ty, _Size> const_iterator; + + typedef ::std:: reverse_iterator reverse_iterator; + typedef ::std:: reverse_iterator const_reverse_iterator; + + + void assign(const _Ty& _Value) + { + _Fill_n_unchecked(_Elems, _Size, _Value); + } + + + void fill(const _Ty& _Value) + { + _Fill_n_unchecked(_Elems, _Size, _Value); + } + + iterator begin() noexcept + { + return (iterator(::std:: addressof(_Elems[0]), 0)); + } + + const_iterator begin() const noexcept + { + return (const_iterator(::std:: addressof(_Elems[0]), 0)); + } + + iterator end() noexcept + { + return (iterator(::std:: addressof(_Elems[0]), _Size)); + } + + const_iterator end() const noexcept + { + return (const_iterator(::std:: addressof(_Elems[0]), _Size)); + } + + reverse_iterator rbegin() noexcept + { + return (reverse_iterator(end())); + } + + const_reverse_iterator rbegin() const noexcept + { + return (const_reverse_iterator(end())); + } + + reverse_iterator rend() noexcept + { + return (reverse_iterator(begin())); + } + + const_reverse_iterator rend() const noexcept + { + return (const_reverse_iterator(begin())); + } + + const_iterator cbegin() const noexcept + { + return (begin()); + } + + const_iterator cend() const noexcept + { + return (end()); + } + + const_reverse_iterator crbegin() const noexcept + { + return (rbegin()); + } + + const_reverse_iterator crend() const noexcept + { + return (rend()); + } + + constexpr size_type size() const noexcept + { + return (_Size); + } + + constexpr size_type max_size() const noexcept + { + return (_Size); + } + + constexpr bool empty() const noexcept + { + return (false); + } + + reference at(size_type _Pos) + { + if (_Size <= _Pos) + _Xran(); + return (_Elems[_Pos]); + } + + constexpr const_reference at(size_type _Pos) const + { + return (_Size <= _Pos + ? (_Xran(), _Elems[_Pos]) + : _Elems[_Pos]); + } + + reference operator[](size_type _Pos) + { + + if (_Size <= _Pos) + _Debug_message(L"array subscript out of range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\array", 144); + + + + + + ; + + return (_Elems[_Pos]); + } + + static void _Bad_subscript() + { + + _Debug_message(L"array subscript out of range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\array", 158); + + + + + } + + constexpr const_reference operator[](size_type _Pos) const + { + + + + + return (_Size <= _Pos + ? (_Bad_subscript(), _Elems[_Pos]) + : _Elems[_Pos]); + + } + + reference front() + { + return (_Elems[0]); + } + + constexpr const_reference front() const + { + return (_Elems[0]); + } + + reference back() + { + return (_Elems[_Size - 1]); + } + + constexpr const_reference back() const + { + return (_Elems[_Size - 1]); + } + + _Ty *data() noexcept + { + return (_Elems); + } + + const _Ty *data() const noexcept + { + return (_Elems); + } + + [[noreturn]] void _Xran() const + { + _Xout_of_range("invalid array subscript"); + } + + _Ty _Elems[_Size]; + + void swap(_Myt& _Other) + noexcept(_Is_nothrow_swappable<_Ty>::value) + { + _Swap_ranges_unchecked(::std:: addressof(_Elems[0]), + ::std:: addressof(_Elems[0]) + _Size, + ::std:: addressof(_Other._Elems[0])); + } + }; + +template + class array<_Ty, 0> + { +public: + typedef array<_Ty, 0> _Myt; + typedef _Ty value_type; + typedef size_t size_type; + typedef ptrdiff_t difference_type; + typedef _Ty *pointer; + typedef const _Ty *const_pointer; + typedef _Ty& reference; + typedef const _Ty& const_reference; + + typedef _Array_iterator<_Ty, 0> iterator; + typedef _Array_const_iterator<_Ty, 0> const_iterator; + typedef ::std:: reverse_iterator reverse_iterator; + typedef ::std:: reverse_iterator const_reverse_iterator; + + + void assign(const _Ty&) + { + } + + + void fill(const _Ty&) + { + } + + void swap(_Myt&) noexcept + { + } + + iterator begin() + { + return (iterator(0, 0)); + } + + const_iterator begin() const + { + return (iterator(0, 0)); + } + + iterator end() + { + return (iterator(0, 0)); + } + + const_iterator end() const + { + return (iterator(0, 0)); + } + + reverse_iterator rbegin() + { + return (reverse_iterator(end())); + } + + const_reverse_iterator rbegin() const + { + return (const_reverse_iterator(end())); + } + + reverse_iterator rend() + { + return (reverse_iterator(begin())); + } + + const_reverse_iterator rend() const + { + return (const_reverse_iterator(begin())); + } + + const_iterator cbegin() const + { + return (iterator(0, 0)); + } + + const_iterator cend() const + { + return (iterator(0, 0)); + } + + const_reverse_iterator crbegin() const + { + return (rbegin()); + } + + const_reverse_iterator crend() const + { + return (rend()); + } + + constexpr size_type size() const + { + return (0); + } + + constexpr size_type max_size() const + { + return (0); + } + + constexpr bool empty() const + { + return (true); + } + + [[noreturn]] reference at(size_type) + { + _Xran(); + } + + [[noreturn]] const_reference at(size_type) const + { + _Xran(); + } + + reference operator[](size_type) + { + + _Debug_message(L"array subscript out of range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\array", 343); + + + + + + return (_Elems[0]); + } + + const_reference operator[](size_type) const + { + + _Debug_message(L"array subscript out of range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\array", 355); + + + + + + return (_Elems[0]); + } + + reference front() + { + + _Debug_message(L"array::front() invalid", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\array", 367); + + + + + + return (_Elems[0]); + } + + const_reference front() const + { + + _Debug_message(L"array::front() invalid", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\array", 379); + + + + + + return (_Elems[0]); + } + + reference back() + { + + _Debug_message(L"array::back() invalid", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\array", 391); + + + + + + return (_Elems[0]); + } + + const_reference back() const + { + + _Debug_message(L"array::back() invalid", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\array", 403); + + + + + + return (_Elems[0]); + } + + _Ty *data() + { + return (_Elems); + } + + const _Ty *data() const + { + return (_Elems); + } + + [[noreturn]] void _Xran() const + { + _Xout_of_range("invalid array subscript"); + } + + _Ty _Elems[1]; + }; + +template::value>> + void swap(array<_Ty,_Size>& _Left, + array<_Ty,_Size>& _Right) + noexcept(noexcept(_Left.swap(_Right))) + { + return (_Left.swap(_Right)); + } + +template + bool operator==(const array<_Ty,_Size>& _Left, + const array<_Ty,_Size>& _Right) + { + return (::std:: equal(_Left.begin(), _Left.end(), _Right.begin())); + } + +template + bool operator!=(const array<_Ty,_Size>& _Left, + const array<_Ty,_Size>& _Right) + { + return (!(_Left == _Right)); + } + +template + bool operator<(const array<_Ty,_Size>& _Left, + const array<_Ty,_Size>& _Right) + { + return (::std:: lexicographical_compare(_Left.begin(), _Left.end(), + _Right.begin(), _Right.end())); + } + +template + bool operator>(const array<_Ty,_Size>& _Left, + const array<_Ty,_Size>& _Right) + { + return (_Right < _Left); + } + +template + bool operator<=(const array<_Ty,_Size>& _Left, + const array<_Ty,_Size>& _Right) + { + return (!(_Right < _Left)); + } + +template + bool operator>=(const array<_Ty,_Size>& _Left, + const array<_Ty,_Size>& _Right) + { + return (!(_Left < _Right)); + } + + +template + constexpr _Ty& get(array<_Ty, _Size>& _Arr) noexcept + { + static_assert(_Idx < _Size, "array index out of bounds"); + return (_Arr._Elems[_Idx]); + } + +template + constexpr const _Ty& get(const array<_Ty, _Size>& _Arr) noexcept + { + static_assert(_Idx < _Size, "array index out of bounds"); + return (_Arr._Elems[_Idx]); + } + +template + constexpr _Ty&& get(array<_Ty, _Size>&& _Arr) noexcept + { + static_assert(_Idx < _Size, "array index out of bounds"); + return (::std:: move(_Arr._Elems[_Idx])); + } + + +namespace tr1 { +using ::std:: array; +using ::std:: get; + } + +} + + +#pragma warning(pop) +#pragma pack(pop) +# 6 "D:/lmath/lmath/lm_vector.h" 2 + +# 1 "D:/lmath/lmath/lm_types.h" 1 +# 16 "D:/lmath/lmath/lm_types.h" +namespace lm { + + + + + + + typedef uint32_t lm_size_type; +} +# 7 "D:/lmath/lmath/lm_vector.h" 2 + +# 1 "D:/lmath/lmath/lm_detail.h" 1 + + + +namespace lm +{ + namespace detail + { + + } +} +# 8 "D:/lmath/lmath/lm_vector.h" 2 + + +namespace lm { + template + struct Vector_data { + T data[Size]; + }; + + template + struct Vector : public Vector_base, public Vector_data { + public: + static constexpr lm_size_type size = Size; + typedef T element_type; + + constexpr Vector() {} + + constexpr Vector(T value) : Vector_data(value) {} + + template::type> + constexpr Vector(T x, T y) : Vector_data(x, y) {} + + template::type> + constexpr Vector(T x, T y, T z) : Vector_data(x, y, z) {} + + template::type> + constexpr Vector(T x, T y, T z, T w) : Vector_data(x, y, z, w) {} + + + + template::type> + constexpr Vector(const Vector& xyz, T w) : Vector_data(xyz.x, xyz.y, xyz.z, w) {} + template::type> + constexpr Vector(T x, const Vector& yzw) : Vector_data(x, yzw.x, yzw.y, yzw.z) {} + template::type> + constexpr Vector(const Vector& xy, T z, T w) : Vector_data(xy.x, xy.y, z, w) {} + template::type> + constexpr Vector(T x, const Vector& yz, T w) : Vector_data(x, yz.x, yz.y, w) {} + template::type> + constexpr Vector(T x, T y, const Vector& zw) : Vector_data(x, y, zw.x, zw.y) {} + + + template::type> + static constexpr Vector right() { + return Vector(1, 0, 0); + } + + template::type> + static constexpr Vector up() { + return Vector(0, 1, 0); + } + + template::type> + static constexpr Vector forward() { + return Vector(0, 0, 1); + } + + template + static constexpr Vector zero(typename std::enable_if::type* p = nullptr) { + return Vector(0, 0, 0); + } + + template + static constexpr Vector zero(typename std::enable_if::type* p = nullptr) { + return Vector(0, 0); + } +# 114 "D:/lmath/lmath/lm_vector.h" + bool operator==(const Vector& value) const { + for (lm_size_type i = 0; i < Size; ++i) { + if(this->data[i] != value.data[i]){ + return false; + } + } + return true; + } + + bool operator!=(const Vector& value) const { + for (lm_size_type i = 0; i < Size; ++i) { + if (this->data[i] != value.data[i]) { + return true; + } + } + return false; + } + + + template::value>::type> + auto operator+(U value) const { + Vectordata[0] + value), Size> result; + for (lm_size_type i = 0; i < Size; ++i) { + result.data[i] = this->data[i] + value; + } + return result; + } + + template::value && (U::size == Size)>::type> + auto operator+(const U& value) const { + Vectordata[0] + value.data[0]), Size> result; + for (lm_size_type i = 0; i < Size; ++i) { + result.data[i] = this->data[i] + value.data[i]; + } + return result; + } + + + template::value>::type> + auto operator+=(U value) { + for (lm_size_type i = 0; i < Size; ++i) { + this->data[i] += value; + } + return *this; + } + + template::value && (U::size == Size)>::type> + auto operator+=(const U& value) { + for (lm_size_type i = 0; i < Size; ++i) { + this->data[i] += value.data[i]; + } + return *this; + } + + + + + template::value>::type> + auto operator-(U value) const { + Vectordata[0] - value), Size> result; + for (lm_size_type i = 0; i < Size; ++i) { + result.data[i] = this->data[i] - value; + } + return result; + } + + template::value && (U::size == Size)>::type> + auto operator-(const U& value) const { + Vectordata[0] - value.data[0]), Size> result; + for (lm_size_type i = 0; i < Size; ++i) { + result.data[i] = this->data[i] - value.data[i]; + } + return result; + } + + + template::value>::type> + Vector& operator-=(U value) { + for (lm_size_type i = 0; i < Size; ++i) { this->data[i] -= value; } + return *this; + } + + template::value && (U::size == Size)>::type> + Vector& operator -=(const U& value) { + for (lm_size_type i = 0; i < Size; ++i) { this->data[i] -= value.data[i]; } + return *this; + } + + + template::value>::type> + auto operator*(U value) const { + Vectordata[0] * value), Size> result; + for (lm_size_type i = 0; i < Size; ++i) { + result.data[i] = this->data[i] * value; + } + return result; + } + + template::value && (U::size == Size)>::type> + auto operator *(const U& value) const { + Vectordata[0] * value.data[0]), Size> result; + for (lm_size_type i = 0; i < Size; ++i) { + result.data[i] = this->data[i] * value.data[i]; + } + return result; + } + + + template::value>::type> + Vector& operator*=(U value) { + for (lm_size_type i = 0; i < Size; ++i) { this->data[i] *= value; } + return *this; + } + + template::value && (U::size == Size)>::type> + Vector& operator *=(const U& value) { + for (lm_size_type i = 0; i < Size; ++i) { this->data[i] *= value.data[i]; } + return *this; + } + + + + + template::value>::type> + auto operator/(U value) const { + Vectordata[0] / value), Size> result; + for (lm_size_type i = 0; i < Size; ++i) { + result.data[i] = this->data[i] / value; + } + return result; + } + + template::value && (U::size == Size)>::type> + auto operator /(const U& value) const { + Vectordata[0] / value.data[0]), Size> result; + for (lm_size_type i = 0; i < Size; ++i) { + result.data[i] = this->data[i] / value.data[i]; + } + return result; + } + + + template::value>::type> + Vector& operator /=(U value) { + for (lm_size_type i = 0; i < Size; ++i) { this->data[i] /= value; } + return *this; + } + + template::value && (U::size == Size)>::type> + Vector& operator /=(const U& value) { + for (lm_size_type i = 0; i < Size; ++i) { this->data[i] /= value.data[i]; } + return *this; + } + + + Vector& operator=(const Vector& value) { + for (lm_size_type i = 0; i < Size; ++i) { + this->data[i] = value.data[i]; + } + return *this; + } + }; + + template + struct Vector_data { + union { + T data[1]; + T x; + }; + }; + + template + struct Vector_data { + constexpr Vector_data() : data{ 0,0 } {} + constexpr Vector_data(T _x, T _y) : data{ _x, _y } {} + constexpr Vector_data(T value) : data{ value, value } {} + + + + + + + + union { + T data[2]; + struct { + T x; + T y; + }; + struct { + T u; + T v; + }; + }; + }; + + template + struct Vector_data { + constexpr Vector_data() : data{ 0,0,0 } {} + constexpr Vector_data(T _x, T _y, T _z) : data{ _x, _y, _z } {} + constexpr Vector_data(T value) : data{ value, value, value } {} + + + + + + + union { + T data[3]; + Vector xy; + struct { + T x; + union { + struct { + T y; + T z; + }; + Vector yz; + }; + }; + }; + }; + + template + struct Vector_data { + constexpr Vector_data() : data{ 0,0,0,0 } {} + constexpr Vector_data(T value) : data { value, value, value, value } {} + constexpr Vector_data(T _x, T _y, T _z, T _w) : data{ _x, _y, _z, _w } {} + + + + + + + union { + T data[4]; + Vector xyz; + Vector xy; + struct { + T x; + union { + struct { + T y; + union { + struct { + T z; + T w; + }; + Vector zw; + }; + }; + Vector yz; + Vector yzw; + }; + }; + }; + }; + + typedef Vector float2; + typedef Vector float3; + typedef Vector float4; + typedef Vector double2; + typedef Vector double3; + typedef Vector double4; +} +# 4 "D:/lmath/lmath\\lmath.h" 2 + +# 1 "D:/lmath/lmath/lm_vector_intrin.h" 1 + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\numeric" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + +namespace std { + +template inline + _Ty _Accumulate_unchecked(_InIt _First, _InIt _Last, _Ty _Val, _Fn2& _Func) + { + for (; _First != _Last; ++_First) + _Val = _Func(_Val, *_First); + return (_Val); + } + +template inline + _Ty accumulate(_InIt _First, _InIt _Last, _Ty _Val, _Fn2 _Func) + { + _Debug_range_ptr(_First, _Last, _Func, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\numeric", 29); + return (_Accumulate_unchecked(_Unchecked(_First), _Unchecked(_Last), _Val, _Func)); + } + + +template inline + _Ty accumulate(_InIt _First, _InIt _Last, _Ty _Val) + { + return (::std:: accumulate(_First, _Last, _Val, plus<>())); + } + + +template inline + _Ty _Inner_product_unchecked(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Ty _Val, + _Fn21& _Func1, _Fn22& _Func2) + { + for (; _First1 != _Last1; ++_First1, (void)++_First2) + _Val = _Func1(_Val, _Func2(*_First1, *_First2)); + return (_Val); + } + +template inline + _Ty _Inner_product_no_deprecate1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Ty _Val, + _Fn21& _Func1, _Fn22& _Func2, + input_iterator_tag, input_iterator_tag) + { + return (_Inner_product_unchecked(_First1, _Last1, + _Unchecked_idl0(_First2), _Val, _Func1, _Func2)); + } + +template inline + _Ty _Inner_product_no_deprecate1(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Ty _Val, + _Fn21& _Func1, _Fn22& _Func2, + random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_First2) + ((_Last1) - (_First1))); + return (_Inner_product_unchecked(_First1, _Last1, + _Unchecked(_First2), _Val, _Func1, _Func2)); + } + +template inline + _Ty _Inner_product_no_deprecate(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Ty _Val, + _Fn21& _Func1, _Fn22& _Func2) + { + _Debug_range_ptr(_First1, _Last1, _First2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\numeric", 94); + _Debug_pointer_if(_First1 != _Last1, _Func1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\numeric", 95); + _Debug_pointer_if(_First1 != _Last1, _Func2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\numeric", 96); + return (_Inner_product_no_deprecate1(_Unchecked(_First1), _Unchecked(_Last1), + _First2, _Val, _Func1, _Func2, _Iter_cat_t<_InIt1>(), _Iter_cat_t<_InIt2>())); + } + +template inline + _Ty inner_product(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Ty _Val, + _Fn21 _Func1, _Fn22 _Func2) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "inner_product" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_First2))); + return (_Inner_product_no_deprecate(_First1, _Last1, _First2, _Val, _Func1, _Func2)); + } + + +template inline + _Ty inner_product(_InIt1 _First1, _InIt1 _Last1, + _InTy (&_First2)[_InSize], _Ty _Val, + _Fn21 _Func1, _Fn22 _Func2) + { + return (_Inner_product_no_deprecate(_First1, _Last1, + _Array_iterator<_InTy, _InSize>(_First2), _Val, + _Func1, _Func2)); + } + + + +template inline + _Ty inner_product(_InIt1 _First1, _InIt1 _Last1, + _InIt2 _First2, _Ty _Val) + { + return (::std:: inner_product(_First1, _Last1, _First2, _Val, + plus<>(), multiplies<>())); + } + + +template inline + _Ty inner_product(_InIt1 _First1, _InIt1 _Last1, + _InTy (&_First2)[_InSize], _Ty _Val) + { + return (::std:: inner_product(_First1, _Last1, _First2, _Val, + plus<>(), multiplies<>())); + } + + + +template inline + _OutIt _Partial_sum_unchecked(_InIt _First, _InIt _Last, + _OutIt _Dest, _Fn2& _Func) + { + if (_First != _Last) + { + _Iter_value_t<_InIt> _Val = *_First; + for (*_Dest = _Val; ++_First != _Last; *++_Dest = _Val) + _Val = _Func(_Val, *_First); + ++_Dest; + } + + return (_Dest); + } + +template inline + _OutIt _Partial_sum_no_deprecate1(_InIt _First, _InIt _Last, + _OutIt _Dest, _Fn2& _Func, + input_iterator_tag, _Any_tag) + { + return (_Rechecked(_Dest, + _Partial_sum_unchecked(_First, _Last, + _Unchecked_idl0(_Dest), _Func))); + } + +template inline + _OutIt _Partial_sum_no_deprecate1(_InIt _First, _InIt _Last, + _OutIt _Dest, _Fn2& _Func, + random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_Dest) + ((_Last) - (_First))); + return (_Rechecked(_Dest, + _Partial_sum_unchecked(_First, _Last, + _Unchecked(_Dest), _Func))); + } + +template inline + _OutIt _Partial_sum_no_deprecate(_InIt _First, _InIt _Last, + _OutIt _Dest, _Fn2& _Func) + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\numeric", 204); + _Debug_pointer_if(_First != _Last, _Func, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\numeric", 205); + return (_Partial_sum_no_deprecate1(_Unchecked(_First), _Unchecked(_Last), + _Dest, _Func, _Iter_cat_t<_InIt>(), _Iter_cat_t<_OutIt>())); + } + +template inline + _OutIt partial_sum(_InIt _First, _InIt _Last, + _OutIt _Dest, _Fn2 _Func) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "partial_sum" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Partial_sum_no_deprecate(_First, _Last, _Dest, _Func)); + } + + +template inline + _OutTy *partial_sum(_InIt _First, _InIt _Last, + _OutTy (&_Dest)[_OutSize], _Fn2 _Func) + { + return (_Unchecked( + _Partial_sum_no_deprecate(_First, _Last, + _Array_iterator<_OutTy, _OutSize>(_Dest), _Func))); + } + + + +template inline + _OutIt partial_sum(_InIt _First, _InIt _Last, + _OutIt _Dest) + { + return (::std:: partial_sum(_First, _Last, _Dest, plus<>())); + } + + +template inline + _OutTy *partial_sum(_InIt _First, _InIt _Last, + _OutTy (&_Dest)[_OutSize]) + { + return (::std:: partial_sum(_First, _Last, _Dest, plus<>())); + } + + + +template inline + _OutIt _Adjacent_difference_unchecked(_InIt _First, _InIt _Last, + _OutIt _Dest, _Fn2& _Func) + { + if (_First != _Last) + { + _Iter_value_t<_InIt> _Val = *_First; + for (*_Dest = _Val; ++_First != _Last; ) + { + _Iter_value_t<_InIt> _Tmp = *_First; + *++_Dest = _Func(_Tmp, _Val); + _Val = ::std:: move(_Tmp); + } + ++_Dest; + } + + return (_Dest); + } + +template inline + _OutIt _Adjacent_difference_no_deprecate1(_InIt _First, _InIt _Last, + _OutIt _Dest, _Fn2& _Func, + input_iterator_tag, _Any_tag) + { + return (_Rechecked(_Dest, + _Adjacent_difference_unchecked(_First, _Last, + _Unchecked_idl0(_Dest), _Func))); + } + +template inline + _OutIt _Adjacent_difference_no_deprecate1(_InIt _First, _InIt _Last, + _OutIt _Dest, _Fn2& _Func, + random_access_iterator_tag, random_access_iterator_tag) + { + static_cast((_Dest) + ((_Last) - (_First))); + return (_Rechecked(_Dest, + _Adjacent_difference_unchecked(_First, _Last, + _Unchecked(_Dest), _Func))); + } + +template inline + _OutIt _Adjacent_difference_no_deprecate(_InIt _First, _InIt _Last, + _OutIt _Dest, _Fn2& _Func) + { + _Debug_range_ptr(_First, _Last, _Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\numeric", 307); + _Debug_pointer_if(_First != _Last, _Func, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\numeric", 308); + return (_Adjacent_difference_no_deprecate1(_Unchecked(_First), _Unchecked(_Last), + _Dest, _Func, _Iter_cat_t<_InIt>(), _Iter_cat_t<_OutIt>())); + } + +template inline + _OutIt adjacent_difference(_InIt _First, _InIt _Last, + _OutIt _Dest, _Fn2 _Func) + { + struct _Unchecked_iterators { static void __declspec(deprecated("Call to 'std::" "adjacent_difference" "' with parameters that may be unsafe - " "this call relies on the caller to check that the passed values are correct. " "To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. " "See documentation on how to use Visual C++ 'Checked Iterators'")) _Deprecate(false_type) { } static void _Deprecate(true_type) { } }; (_Unchecked_iterators::_Deprecate(_Is_checked(_Dest))); + return (_Adjacent_difference_no_deprecate(_First, _Last, _Dest, _Func)); + } + + +template inline + _OutTy *adjacent_difference(_InIt _First, _InIt _Last, + _OutTy (&_Dest)[_OutSize], _Fn2 _Func) + { + return (_Unchecked( + _Adjacent_difference_no_deprecate(_First, _Last, + _Array_iterator<_OutTy, _OutSize>(_Dest), _Func))); + } + + + +template inline + _OutIt adjacent_difference(_InIt _First, _InIt _Last, + _OutIt _Dest) + { + return (::std:: adjacent_difference(_First, _Last, _Dest, + minus<>())); + } + + +template inline + _OutTy *adjacent_difference(_InIt _First, _InIt _Last, + _OutTy (&_Dest)[_OutSize]) + { + return (::std:: adjacent_difference(_First, _Last, _Dest, + minus<>())); + } + + +template inline + void _Iota_unchecked(_FwdIt _First, _FwdIt _Last, _Ty _Val) + { + for (; _First != _Last; ++_First, (void)++_Val) + *_First = _Val; + } + +template inline + void iota(_FwdIt _First, _FwdIt _Last, _Ty _Val) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\numeric", 371); + _Iota_unchecked(_Unchecked(_First), _Unchecked(_Last), _Val); + } +} + +#pragma warning(pop) +#pragma pack(pop) +# 5 "D:/lmath/lmath/lm_vector_intrin.h" 2 + + + +namespace lm { + + template + inline auto length_sq(const T& v) { + auto result = static_cast(0); + for (lm_size_type i = 0; i < T::size; ++i) { + result += v.data[i] * v.data[i]; + } + return result; + } + + template + inline auto length(const T& v) { + return std::sqrt(lm::length_sq(v)); + } +# 46 "D:/lmath/lmath/lm_vector_intrin.h" + template + inline auto normalize(const T& v) { + return v / lm::length(v); + } + + template::value>::type> + inline auto distance(const T1& v1, const T2& v2) { + auto result = (decltype(v1.data[0] * v2.data[0]))0; + for (lm_size_type i = 0; i < T1::size; ++i) { + auto val = v1.data[i] - v2.data[i]; + result += val * val; + } + return std::sqrt(result); + } + + template::value>::type> + inline auto dot(const T1& v1, const T2& v2) { + + typename T1::element_type accumulator = (typename T1::element_type)0; + for (lm_size_type i = 0; i < T1::size; ++i) { + accumulator += v1.data[i] * v2.data[i]; + } + return accumulator; + } + + template + inline auto cross(const Vector& v1, const Vector& v2) { + return Vector( + (v1.y * v2.z) - (v1.z * v2.y), + (v1.z * v2.x) - (v1.x * v2.z), + (v1.x * v2.y) - (v1.y * v2.x)); + } +} +# 5 "D:/lmath/lmath\\lmath.h" 2 + + +# 1 "D:/lmath/lmath/lm_matrix.h" 1 + + + + + + +# 1 "D:/lmath/lmath/lm_matrix_traits.h" 1 + + + + + +namespace lm{ +struct Matrix_base { + +}; +namespace matrix_traits { + + template::value> + struct is_matrix { + + }; + + template + struct is_matrix { + static constexpr bool value = true; + }; + + template + struct is_matrix { + static constexpr bool value = false; + }; + + + template::value> + struct field_type { + + }; + + template + struct field_type { + typedef typename T::element_type type; + }; + + template + struct field_type { + typedef T type; + }; + + template::value> + struct is_square { + static constexpr bool value = T::rows_count == T::columns_count; + }; + + template + struct is_square { + static constexpr bool value = false; + }; + + template::value && is_matrix::value)> + struct can_multiply { + static constexpr bool value = T1::columns_count == T2::rows_count; + }; + + template + struct can_multiply { + static constexpr bool value = false; + }; +} +} +# 7 "D:/lmath/lmath/lm_matrix.h" 2 + + +namespace lm { + + template + struct Matrix_data { + static constexpr lm_size_type rows_count = RowsCount; + static constexpr lm_size_type columns_count = ColumnsCount; + static constexpr lm_size_type size = rows_count * columns_count; + typedef Vector row_type; + typedef Vector column_type; + typedef T element_type; + + Matrix_data() { + for(lm_size_type i= 0; i < (RowsCount * ColumnsCount); ++i){ + data[i] = (T)0; + } + } + + Matrix_data(element_type value) { + for (lm_size_type i = 0; i < (RowsCount * ColumnsCount); ++i) { + data[i] = value; + } + } + + template::type> + constexpr Matrix_data(row_type r0) : rows{ r0} {} + + template::type> + constexpr Matrix_data(row_type r0, row_type r1) : rows{ r0,r1} {} + + template::type> + constexpr Matrix_data(row_type r0, row_type r1, row_type r2) : rows{ r0,r1,r2} {} + + template::type> + constexpr Matrix_data(row_type r0, row_type r1, row_type r2, row_type r3) : rows{ r0,r1,r2,r3 } {} +# 58 "D:/lmath/lmath/lm_matrix.h" + union { + T data[RowsCount * ColumnsCount]; + T data_2d[RowsCount][ColumnsCount]; + Vector rows[RowsCount]; + }; + }; + + template + struct Matrix : public Matrix_base, public Matrix_data { + typedef Matrix_data data_t; + + template::type> + constexpr Matrix(typename data_t::row_type r0) : data_t{ r0 } {} + + template::type> + constexpr Matrix(typename data_t::row_type r0, typename data_t::row_type r1) : data_t { r0,r1} {} + + template::type> + constexpr Matrix(typename data_t::row_type r0, typename data_t::row_type r1, typename data_t::row_type r2) : data_t { r0,r1,r2 } {} + + template::type> + constexpr Matrix(typename data_t::row_type r0, typename data_t::row_type r1, typename data_t::row_type r2, typename data_t::row_type r3) : data_t { r0,r1,r2,r3 } {} + + + Matrix& operator=(const Matrix& value) { + for (lm_size_type i = 0; i < RowsCount * ColumnsCount; ++i) { + this->data[i] = value.data[i]; + } + return *this; + } +# 118 "D:/lmath/lmath/lm_matrix.h" + Matrix() {} + + Matrix(typename data_t::element_type value) : data_t(value){} + + template + static constexpr U identity(typename std::enable_if<(U::rows_count == 4) && (U::columns_count == 4)>::type* = 0) { + return U(typename data_t::row_type(1, 0, 0, 0), typename data_t::row_type(0, 1, 0, 0), typename data_t::row_type(0, 0, 1, 0), typename data_t::row_type(0, 0, 0, 1)); + } + + template + static constexpr U identity(typename std::enable_if<(U::rows_count == 3) && (U::columns_count == 3)>::type* = 0) { + return U(typename data_t::row_type(1, 0, 0), typename data_t::row_type(0, 1, 0), typename data_t::row_type(0, 0, 1)); + } + + template + static constexpr U identity(typename std::enable_if<(U::rows_count == 2) && (U::columns_count == 2)>::type* = 0) { + return U(typename data_t::row_type(1, 0), typename data_t::row_type(0, 1)); + } + + template + static U identity(typename std::enable_if<(matrix_traits::is_square::value && ((U::rows_count < 2) || (U::rows_count > 4)))>::type* = 0) { + U result; + for(lm_size_type y = 0; y < U::rows_count; ++y) { + result.data_2d[y][y] = (typename U::element_type)1; + } + return result; + } + + auto get_column(lm_size_type id) const { + typename data_t::column_type result; + for(lm_size_type y = 0; y < data_t::rows_count; ++y) { + result.data[y] = this->data_2d[y][id]; + } + return result; + } + + template= ResultRowsCount) && (data_t::columns_count >= ResultColumnsCount)>::type> + operator Matrix() const { + Matrix result; + for(lm_size_type y = 0; y < ResultRowsCount; ++y) + { + for (lm_size_type x = 0; x < ResultColumnsCount; ++x) { + result.data_2d[y][x] = this->data_2d[y][x]; + } + } + return result; + } + }; + + typedef Matrix float2x2; + typedef Matrix float2x3; + typedef Matrix float3x3; + typedef Matrix float3x4; + typedef Matrix float4x3; + typedef Matrix float4x4; + typedef Matrix double2x2; + typedef Matrix double2x3; + typedef Matrix double3x3; + typedef Matrix double3x4; + typedef Matrix double4x3; + typedef Matrix double4x4; +} +# 7 "D:/lmath/lmath\\lmath.h" 2 + +# 1 "D:/lmath/lmath/lm_matrix_intrin.h" 1 + + + + + +namespace lm { + template::value>::type> + auto mul(T1 l, T2 r) { + typedef Matrix result_t; + result_t result; + + for (lm_size_type y = 0; y < T1::rows_count; ++y) { + for (lm_size_type x = 0; x < T2::columns_count; ++x) { + typename result_t::element_type e = (typename result_t::element_type)0; + + for (lm_size_type i = 0; i < T2::rows_count; ++i) { + e += l.data_2d[y][i] * r.data_2d[i][x]; + } + + result.data_2d[y][x] = e; + } + } + return result; + } + + template + static inline Vector mul(const Matrix& matrix, const Vector& coord) { + return matrix.rows[0] * coord.x + + matrix.rows[1] * coord.y + + matrix.rows[2] * coord.z + + matrix.rows[3] * coord.w; + } + + template + static inline Vector mul(const Matrix& matrix, const Vector& coord) { + return matrix.rows[0] * coord.x + + matrix.rows[1] * coord.y + + matrix.rows[2] * coord.z + + matrix.rows[3]; + } + + template + static inline Vector mul(const Matrix& matrix, const Vector& coord) { + return matrix.rows[0] * coord.x + + matrix.rows[1] * coord.y + + matrix.rows[2] * coord.z; + } + + + template::value && (T::rows_count == 3 || T::rows_count == 4)>::type> + auto matrix_determinant_affine(const T& src) { + return (src.data_2d[0][0] * src.data_2d[1][1] * src.data_2d[2][2] + + src.data_2d[1][0] * src.data_2d[2][1] * src.data_2d[0][2] + + src.data_2d[0][1] * src.data_2d[1][2] * src.data_2d[2][0]) - + (src.data_2d[0][2] * src.data_2d[1][1] * src.data_2d[2][0] + + src.data_2d[0][1] * src.data_2d[1][0] * src.data_2d[2][2] + + src.data_2d[1][2] * src.data_2d[2][1] * src.data_2d[0][0]); + } + + template::value && (T::rows_count == 2)>::type> + auto determinant(const T& src) { + return src.data_2d[0][0] * src.data_2d[1][1] - src.data_2d[0][1] * src.data_2d[1][0]; + } + + + template + Matrix matrix4x4_inverse(const Matrix& u, bool affine = true) { + Matrix result; + if (affine) { + T s = static_cast(1) / matrix_determinant_affine(u); + result.data_2d[0][0] = (u.data_2d[1][1] * u.data_2d[2][2] - u.data_2d[1][2] * u.data_2d[2][1]) * s; + result.data_2d[0][1] = (u.data_2d[2][1] * u.data_2d[0][2] - u.data_2d[2][2] * u.data_2d[0][1]) * s; + result.data_2d[0][2] = (u.data_2d[0][1] * u.data_2d[1][2] - u.data_2d[0][2] * u.data_2d[1][1]) * s; + result.data_2d[0][3] = u.data_2d[0][3]; + result.data_2d[1][0] = (u.data_2d[1][2] * u.data_2d[2][0] - u.data_2d[1][0] * u.data_2d[2][2]) * s; + result.data_2d[1][1] = (u.data_2d[2][2] * u.data_2d[0][0] - u.data_2d[2][0] * u.data_2d[0][2]) * s; + result.data_2d[1][2] = (u.data_2d[0][2] * u.data_2d[1][0] - u.data_2d[0][0] * u.data_2d[1][2]) * s; + result.data_2d[1][3] = u.data_2d[1][3]; + result.data_2d[2][0] = (u.data_2d[1][0] * u.data_2d[2][1] - u.data_2d[1][1] * u.data_2d[2][0]) * s; + result.data_2d[2][1] = (u.data_2d[2][0] * u.data_2d[0][1] - u.data_2d[2][1] * u.data_2d[0][0]) * s; + result.data_2d[2][2] = (u.data_2d[0][0] * u.data_2d[1][1] - u.data_2d[0][1] * u.data_2d[1][0]) * s; + result.data_2d[2][3] = u.data_2d[2][3]; + result.data_2d[3][0] = -(result.data_2d[0][0] * u.data_2d[3][0] + result.data_2d[1][0] * u.data_2d[3][1] + result.data_2d[2][0] * u.data_2d[3][2]); + result.data_2d[3][1] = -(result.data_2d[0][1] * u.data_2d[3][0] + result.data_2d[1][1] * u.data_2d[3][1] + result.data_2d[2][1] * u.data_2d[3][2]); + result.data_2d[3][2] = -(result.data_2d[0][2] * u.data_2d[3][0] + result.data_2d[1][2] * u.data_2d[3][1] + result.data_2d[2][2] * u.data_2d[3][2]); + result.data_2d[3][3] = u.data_2d[3][3]; + } else { + + T src[16]; + for (size_t i = 0; i < 4; ++i) { + src[i] = u.data[i * 4]; + src[i + 4] = u.data[i * 4 + 1]; + src[i + 8] = u.data[i * 4 + 2]; + src[i + 12] = u.data[i * 4 + 3]; + } + + + T tmp[12]; + tmp[0] = src[10] * src[15]; + tmp[1] = src[11] * src[14]; + tmp[2] = src[9] * src[15]; + tmp[3] = src[11] * src[13]; + tmp[4] = src[9] * src[14]; + tmp[5] = src[10] * src[13]; + tmp[6] = src[8] * src[15]; + tmp[7] = src[11] * src[12]; + tmp[8] = src[8] * src[14]; + tmp[9] = src[10] * src[12]; + tmp[10] = src[8] * src[13]; + tmp[11] = src[9] * src[12]; + + + result.data[0] = (tmp[0] * src[5] + tmp[3] * src[6] + tmp[4] * src[7]) - (tmp[1] * src[5] + tmp[2] * src[6] + tmp[5] * src[7]); + result.data[1] = (tmp[1] * src[4] + tmp[6] * src[6] + tmp[9] * src[7]) - (tmp[0] * src[4] + tmp[7] * src[6] + tmp[8] * src[7]); + result.data[2] = (tmp[2] * src[4] + tmp[7] * src[5] + tmp[10] * src[7]) - (tmp[3] * src[4] + tmp[6] * src[5] + tmp[11] * src[7]); + result.data[3] = (tmp[5] * src[4] + tmp[8] * src[5] + tmp[11] * src[6]) - (tmp[4] * src[4] + tmp[9] * src[5] + tmp[10] * src[6]); + result.data[4] = (tmp[1] * src[1] + tmp[2] * src[2] + tmp[5] * src[3]) - (tmp[0] * src[1] + tmp[3] * src[2] + tmp[4] * src[3]); + result.data[5] = (tmp[0] * src[0] + tmp[7] * src[2] + tmp[8] * src[3]) - (tmp[1] * src[0] + tmp[6] * src[2] + tmp[9] * src[3]); + result.data[6] = (tmp[3] * src[0] + tmp[6] * src[1] + tmp[11] * src[3]) - (tmp[2] * src[0] + tmp[7] * src[1] + tmp[10] * src[3]); + result.data[7] = (tmp[4] * src[0] + tmp[9] * src[1] + tmp[10] * src[2]) - (tmp[5] * src[0] + tmp[8] * src[1] + tmp[11] * src[2]); + + + tmp[0] = src[2] * src[7]; + tmp[1] = src[3] * src[6]; + tmp[2] = src[1] * src[7]; + tmp[3] = src[3] * src[5]; + tmp[4] = src[1] * src[6]; + tmp[5] = src[2] * src[5]; + tmp[6] = src[0] * src[7]; + tmp[7] = src[3] * src[4]; + tmp[8] = src[0] * src[6]; + tmp[9] = src[2] * src[4]; + tmp[10] = src[0] * src[5]; + tmp[11] = src[1] * src[4]; + + + result.data[8] = (tmp[0] * src[13] + tmp[3] * src[14] + tmp[4] * src[15]) - (tmp[1] * src[13] + tmp[2] * src[14] + tmp[5] * src[15]); + result.data[9] = (tmp[1] * src[12] + tmp[6] * src[14] + tmp[9] * src[15]) - (tmp[0] * src[12] + tmp[7] * src[14] + tmp[8] * src[15]); + result.data[10] = (tmp[2] * src[12] + tmp[7] * src[13] + tmp[10] * src[15]) - (tmp[3] * src[12] + tmp[6] * src[13] + tmp[11] * src[15]); + result.data[11] = (tmp[5] * src[12] + tmp[8] * src[13] + tmp[11] * src[14]) - (tmp[4] * src[12] + tmp[9] * src[13] + tmp[10] * src[14]); + result.data[12] = (tmp[2] * src[10] + tmp[5] * src[11] + tmp[1] * src[9]) - (tmp[4] * src[11] + tmp[0] * src[9] + tmp[3] * src[10]); + result.data[13] = (tmp[8] * src[11] + tmp[0] * src[8] + tmp[7] * src[10]) - (tmp[6] * src[10] + tmp[9] * src[11] + tmp[1] * src[8]); + result.data[14] = (tmp[6] * src[9] + tmp[11] * src[11] + tmp[3] * src[8]) - (tmp[10] * src[11] + tmp[2] * src[8] + tmp[7] * src[9]); + result.data[15] = (tmp[10] * src[10] + tmp[4] * src[8] + tmp[9] * src[9]) - (tmp[8] * src[9] + tmp[11] * src[10] + tmp[5] * src[8]); + + + T det = src[0] * result.data[0] + src[1] * result.data[1] + src[2] * result.data[2] + src[3] * result.data[3]; + + + det = 1 / det; + for (int j = 0; j < 16; ++j) + result.data[j] *= det; + } + return result; + } +} +# 8 "D:/lmath/lmath\\lmath.h" 2 + + +# 1 "D:/lmath/lmath/lm_plane.h" 1 + + + + + +namespace lm +{ + template + struct Plane { + union{ + T data[4]; + struct + { + lm::Vector normal; + T d; + }; + }; + + Plane() : normal(0,1,0), d(0) {} + + Plane(T _a, T _b, T _c, T _d) : normal(_a,_b,_c), d(_d) {} + + Plane(Vector& _normal, float _d) : normal(_normal), d(_d) {} + + Plane& operator=(const Plane& v) { + normal = v.normal; + d = v.d; + return *this; + } + }; +} +# 10 "D:/lmath/lmath\\lmath.h" 2 + +# 1 "D:/lmath/lmath/lm_common_intrin.h" 1 +# 10 "D:/lmath/lmath/lm_common_intrin.h" +# 1 "D:/lmath/lmath/lm_common.h" 1 + + + + + + +namespace lm{ + namespace common_traits { + template::value || lm::matrix_traits::is_matrix::value> + struct is_lm_type { + static constexpr bool value = true; + }; + + template + struct is_lm_type { + static constexpr bool value = false; + }; + + template::value> + struct field_type { + typedef typename T::element_type type; + }; + + template + struct field_type { + typedef T type; + }; + } + + template::value> + struct transform_copy_helper { + template + static auto execute(const T& v, OpUnary op) { + std::remove_cv::type result; + for (lm_size_type i = 0; i < T::size; ++i) { + result.data[i] = op(v.data[i]); + } + return result; + } +# 50 "D:/lmath/lmath/lm_common.h" + }; + + + template + struct transform_copy_helper { + template + static auto execute(const T& v, OpUnary op) { + return op(v); + } + + + + + + + }; +} +# 10 "D:/lmath/lmath/lm_common_intrin.h" 2 + + +# 1 "D:/lmath/lmath/lm_quaternion.h" 1 + + + + + + + +namespace lm { + template + struct Quaternion { + union{ + T data[4]; + struct{ + T x; + T y; + T z; + T w; + }; + }; + + Quaternion() : data{0,0,0,0} {} + + Quaternion(T _x, T _y, T _z, T _w) : data{ _x,_y,_z,_w } {} + + static Quaternion angle_axis(T angle, Vector axis) { + T theta = angle / static_cast(2); + T s = static_cast(std::sin(theta) / lm::length(axis)); + T c = static_cast(std::cos(theta)); + + return Quaternion( + axis.x * s, + axis.y * s, + axis.z * s, c); + } + }; + + typedef Quaternion Quaternion_f; +} +# 12 "D:/lmath/lmath/lm_common_intrin.h" 2 + + + + + +namespace lm { +# 29 "D:/lmath/lmath/lm_common_intrin.h" + inline double asdouble(uint32_t lowbits, uint32_t highbits) { + double result; + uint32_t* memory = reinterpret_cast(&result); + memory[0] = lowbits; + memory[1] = highbits; + return result; + } + + template::value && (T::size == 2) && std::is_same::value>::type> + auto asdouble(const T& lowbits, const T& highbits) { + return Vector(asdouble(lowbits.x, highbits.x), asdouble(lowbits.y, highbits.y)); + } + + template::value>> + auto ceil(const T& v) { + return transform_copy_helper::execute(v, [](auto x) {return (std::ceil)(x); }); + } +# 59 "D:/lmath/lmath/lm_common_intrin.h" + template::value>> + auto floor(const T& v) { + return transform_copy_helper::execute(v, [](auto x) {return std::floor(x); }); + } + + + + + template::value>> + auto clamp(const T& v, typename T::element_type min_value, typename T::element_type max_value) { + return transform_copy_helper::execute(v, [min_value, max_value](auto x) {return (std::min)(max_value, (std::max)(x, min_value)); }); + } + + template::value>> + auto clamp(const T& v, T min_value, T max_value) { + return (std::min)(max_value, (std::max)(v, min_value)); + } + + template auto pow(const T& v, typename T::element_type arg) { + return transform_copy_helper::execute(v, [arg](T::element_type e) { return std::pow(e, arg); }); + } + + template auto abs(const T& v) { + return transform_copy_helper::execute(v, [](T::element_type e) { return std::abs(e); }); + } + + template auto acos(const T& v) { + return transform_copy_helper::execute(v, [](T::element_type e) { return std::acos(e); }); + } + + template auto asin(const T& v) { + return transform_copy_helper::execute(v, [](T::element_type e) { return std::asin(e); }); + } + + template auto atan(const T& v) { + return transform_copy_helper::execute(v, [](T::element_type e) { return std::atan(e); }); + } + + template auto cos(const T& v) { + return transform_copy_helper::execute(v, [](common_traits::field_type::type e) { return std::cos(e); }); + } + + template auto cosh(T& v) { + return transform_copy_helper::execute(v, [](typename common_traits::field_type::type e) { return std::cosh(e); }); + } + + template auto degrees(const T& v) { + return transform_copy_helper::execute(v, [](typename common_traits::field_type::type e) { return e * (decltype(e))180 / (decltype(e))3.14159265358979; }); + } + + template auto all(const T& v) { + for (lm_size_type i = 0; i < T::size; ++i) { + if (v.data[i] == (typename T::element_type)(0)) { + return false; + } + } + return true; + } + + template auto any(const T& v) { + for (lm_size_type i = 0; i < T::size; ++i) { + if (v.data[i] != (typename T::element_type)(0)) { + return true; + } + } + return false; + } +# 155 "D:/lmath/lmath/lm_common_intrin.h" + template + static inline Matrix matrix4x4_lookat_lh(const Vector& position, const Vector& target, const Vector& up_direction) { + Vector forward = lm::normalize(target - position); + Vector right = lm::normalize(lm::cross(up_direction, forward)); + Vector up = lm::normalize(lm::cross(forward, right)); + + return Matrix( + Vector(right.x, up.x, forward.x, static_cast(0)), + Vector(right.y, up.y, forward.y, static_cast(0)), + Vector(right.z, up.z, forward.z, static_cast(0)), + Vector(-lm::dot(right, position), -lm::dot(up, position), -lm::dot(forward, position), static_cast(1)) + ); + } + + + template + static inline Matrix matrix4x4_perspective(T fov, T aspect, T near_clip, T far_clip) { + Matrix result; + float yScale = static_cast(1) / (std::tanf(fov / static_cast(2))); + result.rows[0] = Vector(yScale / aspect, 0, 0, 0); + result.rows[1] = Vector(0, yScale, 0, 0); + result.rows[2] = Vector(0, 0, far_clip / (far_clip - near_clip), 1); + result.rows[3] = Vector(0, 0, (-near_clip * far_clip) / (far_clip - near_clip), 0); + return result; + } + + template + static inline Matrix matrix4x4_rotation(float angle) { + Matrix matrix; + auto cos_angle = std::cos(angle); + auto sin_angle = std::sin(angle); + + auto zero = static_cast(0); + auto one = static_cast(0); + + matrix.rows[0] = Vector(cos_angle, 0, -sin_angle, 0); + matrix.rows[1] = Vector(0,1,0,0); + matrix.rows[2] = Vector(sin_angle, 0, cos_angle, 0); + matrix.rows[3] = Vector(0,0,0,1); + + return matrix; + } + + + template + static inline Matrix matrix4x4_rotation(const lm::Quaternion& q) { + float num1 = q.x * q.x; + float num2 = q.y * q.y; + float num3 = q.z * q.z; + float num4 = q.x * q.y; + float num5 = q.z * q.w; + float num6 = q.z * q.x; + float num7 = q.y * q.w; + float num8 = q.y * q.z; + float num9 = q.x * q.w; + + return Matrix( + Vector(1.0f - 2.0f * (num2 + num3), 2.0f * (num4 + num5), 2.0f * (num6 - num7), 0), + Vector(2.0f * (num4 - num5), 1.0f - 2.0f * (num3 + num1), 2.0f * (num8 + num9), 0), + Vector(2.0f * (num6 + num7), 2.0f * (num8 - num9), 1.0f - 2.0f * (num2 + num1), 0), + Vector(0,0,0,1)); + } + + template + static inline Matrix matrix4x4_scale(T sx, T sy, T sz) { + return Matrix( + Vector(sx, 0, 0, 0), + Vector(0, sy, 0, 0), + Vector(0, 0, sz, 0), + Vector(0, 0, 0, 1)); + } + + template + static inline Matrix matrix4x4_scale(const Vector& scale) { + return matrix4x4_scale(scale.x, scale.y, scale.z); + } + + template + static inline Matrix matrix4x4_translation(T x, T y, T z) { + return Matrix( + Vector(1, 0, 0, 0), + Vector(0, 1, 0, 0), + Vector(0, 0, 1, 0), + Vector(x, y, z, 1)); + } + + template + static inline Matrix matrix4x4_translation(const Vector& position) { + return matrix4x4_translation(position.x, position.y, position.z); + } + + template + static inline T saturate(const T& position) { + T result; + for(lm_size_type i = 0; i < T::size; ++i){ + result.data[i] = (std::min)(1.0f, (std::max)(0.0f, position.data[i])); + } + return result; + } + + + + template + static inline T max(const T& left, const T& right) { + T result; + for (lm_size_type i = 0; i < T::size; ++i) { + result.data[i] = (std::max)(left.data[i], right.data[i]); + } + return result; + } + + template + static inline T min(const T& left, const T& right) { + T result; + for (lm_size_type i = 0; i < T::size; ++i) { + result.data[i] = (std::min)(left.data[i], right.data[i]); + } + return result; + } + + +} +# 11 "D:/lmath/lmath\\lmath.h" 2 + + +# 1 "D:/lmath/lmath/lm_plane_intrin.h" 1 + + + + + +namespace lm +{ + template + static inline auto dot(const Plane& plane, const Vector& value) { + return ((((plane.normal.x * value.x) + (plane.normal.y * value.y)) + (plane.normal.z * value.z)) + (plane.d * value.w)); + } +# 34 "D:/lmath/lmath/lm_plane_intrin.h" + template + static inline auto dot(const Plane& plane, const Vector& value) { + return ((((plane.normal.y * point.y) + (plane.normal.x * point.x)) + (plane.normal.z * point.z)) + plane.D); + } +} +# 13 "D:/lmath/lmath\\lmath.h" 2 + + + + +# 1 "D:/lmath/lmath/lm_quaternion_intrin.h" 1 + + + + + +namespace lm +{ + template + auto mul(const lm::Quaternion& q1, const lm::Quaternion& q2) { + return lm::Quaternion( + (q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y), + (q1.w * q2.y + q1.y * q2.w + q1.z * q2.x - q1.x * q2.z), + (q1.w * q2.z + q1.z * q2.w + q1.x * q2.y - q1.y * q2.x), + (q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z) + ); + } +} +# 17 "D:/lmath/lmath\\lmath.h" 2 + + +# 1 "D:/lmath/lmath/lm_stdio.h" 1 + + + + + + +namespace lm +{ + template + std::ostream& operator<<(std::ostream& os, const Vector& obj) { + os << "["; + for (size_t i = 0; i < Size; ++i) { + os << obj.data[i]; + if(i != (Size - 1)) + { + os << ", "; + } + } + os << "]"; + return os; + } +} +# 19 "D:/lmath/lmath\\lmath.h" 2 +# 5 "../LEngine/ForwardDeclarations.h" 2 + + +class GameObject; +typedef std::shared_ptr GameObjectPtr; + +class Component; +typedef std::shared_ptr ComponentPtr; + +class Scene; +typedef std::shared_ptr ScenePtr; + +class Transform; +typedef std::shared_ptr TransformPtr; + +class Shader; +typedef std::shared_ptr ShaderPtr; + +class Mesh; +typedef std::shared_ptr MeshPtr; + +class Material; +typedef std::shared_ptr MaterialPtr; + +class Mouse; +typedef std::shared_ptr MousePtr; + +class Keyboard; +typedef std::shared_ptr KeyboardPtr; + +class Texture; +typedef std::shared_ptr TexturePtr; +# 6 "../LEngine/Scene.h" 2 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\string" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4189) +#pragma warning(disable: 4172) +#pragma warning(disable: 4455) + +namespace std { + +template inline + basic_istream<_Elem, _Traits>& operator>>( + basic_istream<_Elem, _Traits>&& _Istr, + basic_string<_Elem, _Traits, _Alloc>& _Str) + { + typedef ctype<_Elem> _Ctype; + typedef basic_istream<_Elem, _Traits> _Myis; + typedef basic_string<_Elem, _Traits, _Alloc> _Mystr; + typedef typename _Mystr::size_type _Mysizt; + + ios_base::iostate _State = ios_base::goodbit; + bool _Changed = false; + const typename _Myis::sentry _Ok(_Istr); + + if (_Ok) + { + const _Ctype& _Ctype_fac = use_facet< _Ctype >(_Istr.getloc()); + _Str.erase(); + + try { + _Mysizt _Size = 0 < _Istr.width() + && (_Mysizt)_Istr.width() < _Str.max_size() + ? (_Mysizt)_Istr.width() : _Str.max_size(); + typename _Traits::int_type _Meta = _Istr.rdbuf()->sgetc(); + + for (; 0 < _Size; --_Size, _Meta = _Istr.rdbuf()->snextc()) + if (_Traits::eq_int_type(_Traits::eof(), _Meta)) + { + _State |= ios_base::eofbit; + break; + } + else if (_Ctype_fac.is(_Ctype::space, + _Traits::to_char_type(_Meta))) + break; + else + { + _Str.append(1, _Traits::to_char_type(_Meta)); + _Changed = true; + } + } catch (...) { (_Istr).setstate(ios_base::badbit, true); } + } + + _Istr.width(0); + if (!_Changed) + _State |= ios_base::failbit; + _Istr.setstate(_State); + return (_Istr); + } + +template inline + basic_istream<_Elem, _Traits>& getline( + basic_istream<_Elem, _Traits>&& _Istr, + basic_string<_Elem, _Traits, _Alloc>& _Str, + const _Elem _Delim) + { + typedef basic_istream<_Elem, _Traits> _Myis; + + ios_base::iostate _State = ios_base::goodbit; + bool _Changed = false; + const typename _Myis::sentry _Ok(_Istr, true); + + if (_Ok) + { + try { + _Str.erase(); + const typename _Traits::int_type _Metadelim = + _Traits::to_int_type(_Delim); + typename _Traits::int_type _Meta = _Istr.rdbuf()->sgetc(); + + for (; ; _Meta = _Istr.rdbuf()->snextc()) + if (_Traits::eq_int_type(_Traits::eof(), _Meta)) + { + _State |= ios_base::eofbit; + break; + } + else if (_Traits::eq_int_type(_Meta, _Metadelim)) + { + _Changed = true; + _Istr.rdbuf()->sbumpc(); + break; + } + else if (_Str.max_size() <= _Str.size()) + { + _State |= ios_base::failbit; + break; + } + else + { + _Str += _Traits::to_char_type(_Meta); + _Changed = true; + } + } catch (...) { (_Istr).setstate(ios_base::badbit, true); } + } + + if (!_Changed) + _State |= ios_base::failbit; + _Istr.setstate(_State); + return (_Istr); + } + +template inline + basic_istream<_Elem, _Traits>& getline( + basic_istream<_Elem, _Traits>&& _Istr, + basic_string<_Elem, _Traits, _Alloc>& _Str) + { + return (getline(_Istr, _Str, _Istr.widen('\n'))); + } + +template inline + basic_istream<_Elem, _Traits>& operator>>( + basic_istream<_Elem, _Traits>& _Istr, + basic_string<_Elem, _Traits, _Alloc>& _Str) + { + return (::std:: move(_Istr) >> _Str); + } + +template inline + basic_istream<_Elem, _Traits>& getline( + basic_istream<_Elem, _Traits>& _Istr, + basic_string<_Elem, _Traits, _Alloc>& _Str, + const _Elem _Delim) + { + return (getline(::std:: move(_Istr), _Str, _Delim)); + } + +template inline + basic_istream<_Elem, _Traits>& getline( + basic_istream<_Elem, _Traits>& _Istr, + basic_string<_Elem, _Traits, _Alloc>& _Str) + { + return (getline(::std:: move(_Istr), _Str, _Istr.widen('\n'))); + } + +template inline + basic_ostream<_Elem, _Traits>& operator<<( + basic_ostream<_Elem, _Traits>& _Ostr, + const basic_string<_Elem, _Traits, _Alloc>& _Str) + { + typedef basic_ostream<_Elem, _Traits> _Myos; + typedef basic_string<_Elem, _Traits, _Alloc> _Mystr; + typedef typename _Mystr::size_type _Mysizt; + + ios_base::iostate _State = ios_base::goodbit; + _Mysizt _Size = _Str.size(); + _Mysizt _Pad = _Ostr.width() <= 0 || (_Mysizt)_Ostr.width() <= _Size + ? 0 : (_Mysizt)_Ostr.width() - _Size; + const typename _Myos::sentry _Ok(_Ostr); + + if (!_Ok) + _State |= ios_base::badbit; + else + { + try { + if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) + for (; 0 < _Pad; --_Pad) + if (_Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ostr.fill()))) + { + _State |= ios_base::badbit; + break; + } + + if (_State == ios_base::goodbit + && _Ostr.rdbuf()->sputn(_Str.c_str(), (streamsize)_Size) + != (streamsize)_Size) + _State |= ios_base::badbit; + else + for (; 0 < _Pad; --_Pad) + if (_Traits::eq_int_type(_Traits::eof(), + _Ostr.rdbuf()->sputc(_Ostr.fill()))) + { + _State |= ios_base::badbit; + break; + } + _Ostr.width(0); + } catch (...) { (_Ostr).setstate(ios_base::badbit, true); } + } + + _Ostr.setstate(_State); + return (_Ostr); + } + + + +inline int stoi(const string& _Str, size_t *_Idx = 0, + int _Base = 10) + { + const char *_Ptr = _Str.c_str(); + char *_Eptr; + (*_errno()) = 0; + long _Ans = :: strtol(_Ptr, &_Eptr, _Base); + + if (_Ptr == _Eptr) + _Xinvalid_argument("invalid stoi argument"); + if ((*_errno()) == 34 || _Ans < (-2147483647 - 1) || 2147483647 < _Ans) + _Xout_of_range("stoi argument out of range"); + if (_Idx != 0) + *_Idx = (size_t)(_Eptr - _Ptr); + return ((int)_Ans); + } + +inline long stol(const string& _Str, size_t *_Idx = 0, + int _Base = 10) + { + const char *_Ptr = _Str.c_str(); + char *_Eptr; + (*_errno()) = 0; + long _Ans = :: strtol(_Ptr, &_Eptr, _Base); + + if (_Ptr == _Eptr) + _Xinvalid_argument("invalid stol argument"); + if ((*_errno()) == 34) + _Xout_of_range("stol argument out of range"); + if (_Idx != 0) + *_Idx = (size_t)(_Eptr - _Ptr); + return (_Ans); + } + +inline unsigned long stoul(const string& _Str, size_t *_Idx = 0, + int _Base = 10) + { + const char *_Ptr = _Str.c_str(); + char *_Eptr; + (*_errno()) = 0; + unsigned long _Ans = :: strtoul(_Ptr, &_Eptr, _Base); + + if (_Ptr == _Eptr) + _Xinvalid_argument("invalid stoul argument"); + if ((*_errno()) == 34) + _Xout_of_range("stoul argument out of range"); + if (_Idx != 0) + *_Idx = (size_t)(_Eptr - _Ptr); + return (_Ans); + } + +inline long long stoll(const string& _Str, size_t *_Idx = 0, + int _Base = 10) + { + const char *_Ptr = _Str.c_str(); + char *_Eptr; + (*_errno()) = 0; + long long _Ans = :: strtoll(_Ptr, &_Eptr, _Base); + + if (_Ptr == _Eptr) + _Xinvalid_argument("invalid stoll argument"); + if ((*_errno()) == 34) + _Xout_of_range("stoll argument out of range"); + if (_Idx != 0) + *_Idx = (size_t)(_Eptr - _Ptr); + return (_Ans); + } + +inline unsigned long long stoull(const string& _Str, size_t *_Idx = 0, + int _Base = 10) + { + const char *_Ptr = _Str.c_str(); + char *_Eptr; + (*_errno()) = 0; + unsigned long long _Ans = :: strtoull(_Ptr, &_Eptr, _Base); + + if (_Ptr == _Eptr) + _Xinvalid_argument("invalid stoull argument"); + if ((*_errno()) == 34) + _Xout_of_range("stoull argument out of range"); + if (_Idx != 0) + *_Idx = (size_t)(_Eptr - _Ptr); + return (_Ans); + } + +inline float stof(const string& _Str, size_t *_Idx = 0) + { + const char *_Ptr = _Str.c_str(); + char *_Eptr; + (*_errno()) = 0; + float _Ans = :: strtof(_Ptr, &_Eptr); + + if (_Ptr == _Eptr) + _Xinvalid_argument("invalid stof argument"); + if ((*_errno()) == 34) + _Xout_of_range("stof argument out of range"); + if (_Idx != 0) + *_Idx = (size_t)(_Eptr - _Ptr); + return (_Ans); + } + +inline double stod(const string& _Str, size_t *_Idx = 0) + { + const char *_Ptr = _Str.c_str(); + char *_Eptr; + (*_errno()) = 0; + double _Ans = :: strtod(_Ptr, &_Eptr); + + if (_Ptr == _Eptr) + _Xinvalid_argument("invalid stod argument"); + if ((*_errno()) == 34) + _Xout_of_range("stod argument out of range"); + if (_Idx != 0) + *_Idx = (size_t)(_Eptr - _Ptr); + return (_Ans); + } + +inline long double stold(const string& _Str, size_t *_Idx = 0) + { + const char *_Ptr = _Str.c_str(); + char *_Eptr; + (*_errno()) = 0; + long double _Ans = :: strtold(_Ptr, &_Eptr); + + if (_Ptr == _Eptr) + _Xinvalid_argument("invalid stold argument"); + if ((*_errno()) == 34) + _Xout_of_range("stold argument out of range"); + if (_Idx != 0) + *_Idx = (size_t)(_Eptr - _Ptr); + return (_Ans); + } + + +inline int stoi(const wstring& _Str, size_t *_Idx = 0, + int _Base = 10) + { + const wchar_t *_Ptr = _Str.c_str(); + wchar_t *_Eptr; + (*_errno()) = 0; + long _Ans = :: wcstol(_Ptr, &_Eptr, _Base); + + if (_Ptr == _Eptr) + _Xinvalid_argument("invalid stoi argument"); + if ((*_errno()) == 34 || _Ans < (-2147483647 - 1) || 2147483647 < _Ans) + _Xout_of_range("stoi argument out of range"); + if (_Idx != 0) + *_Idx = (size_t)(_Eptr - _Ptr); + return ((int)_Ans); + } + +inline long stol(const wstring& _Str, size_t *_Idx = 0, + int _Base = 10) + { + const wchar_t *_Ptr = _Str.c_str(); + wchar_t *_Eptr; + (*_errno()) = 0; + long _Ans = :: wcstol(_Ptr, &_Eptr, _Base); + + if (_Ptr == _Eptr) + _Xinvalid_argument("invalid stol argument"); + if ((*_errno()) == 34) + _Xout_of_range("stol argument out of range"); + if (_Idx != 0) + *_Idx = (size_t)(_Eptr - _Ptr); + return (_Ans); + } + +inline unsigned long stoul(const wstring& _Str, size_t *_Idx = 0, + int _Base = 10) + { + const wchar_t *_Ptr = _Str.c_str(); + wchar_t *_Eptr; + (*_errno()) = 0; + unsigned long _Ans = :: wcstoul(_Ptr, &_Eptr, _Base); + + if (_Ptr == _Eptr) + _Xinvalid_argument("invalid stoul argument"); + if ((*_errno()) == 34) + _Xout_of_range("stoul argument out of range"); + if (_Idx != 0) + *_Idx = (size_t)(_Eptr - _Ptr); + return (_Ans); + } + +inline long long stoll(const wstring& _Str, size_t *_Idx = 0, + int _Base = 10) + { + const wchar_t *_Ptr = _Str.c_str(); + wchar_t *_Eptr; + (*_errno()) = 0; + long long _Ans = :: wcstoll(_Ptr, &_Eptr, _Base); + + if (_Ptr == _Eptr) + _Xinvalid_argument("invalid stoll argument"); + if ((*_errno()) == 34) + _Xout_of_range("stoll argument out of range"); + if (_Idx != 0) + *_Idx = (size_t)(_Eptr - _Ptr); + return (_Ans); + } + +inline unsigned long long stoull(const wstring& _Str, size_t *_Idx = 0, + int _Base = 10) + { + const wchar_t *_Ptr = _Str.c_str(); + wchar_t *_Eptr; + (*_errno()) = 0; + unsigned long long _Ans = :: wcstoull(_Ptr, &_Eptr, _Base); + + if (_Ptr == _Eptr) + _Xinvalid_argument("invalid stoull argument"); + if ((*_errno()) == 34) + _Xout_of_range("stoull argument out of range"); + if (_Idx != 0) + *_Idx = (size_t)(_Eptr - _Ptr); + return (_Ans); + } + +inline float stof(const wstring& _Str, size_t *_Idx = 0) + { + const wchar_t *_Ptr = _Str.c_str(); + wchar_t *_Eptr; + (*_errno()) = 0; + float _Ans = :: wcstof(_Ptr, &_Eptr); + + if (_Ptr == _Eptr) + _Xinvalid_argument("invalid stof argument"); + if ((*_errno()) == 34) + _Xout_of_range("stof argument out of range"); + if (_Idx != 0) + *_Idx = (size_t)(_Eptr - _Ptr); + return (_Ans); + } + +inline double stod(const wstring& _Str, size_t *_Idx = 0) + { + const wchar_t *_Ptr = _Str.c_str(); + wchar_t *_Eptr; + (*_errno()) = 0; + double _Ans = :: wcstod(_Ptr, &_Eptr); + + if (_Ptr == _Eptr) + _Xinvalid_argument("invalid stod argument"); + if ((*_errno()) == 34) + _Xout_of_range("stod argument out of range"); + if (_Idx != 0) + *_Idx = (size_t)(_Eptr - _Ptr); + return (_Ans); + } + +inline long double stold(const wstring& _Str, size_t *_Idx = 0) + { + const wchar_t *_Ptr = _Str.c_str(); + wchar_t *_Eptr; + (*_errno()) = 0; + long double _Ans = :: wcstold(_Ptr, &_Eptr); + + if (_Ptr == _Eptr) + _Xinvalid_argument("invalid stold argument"); + if ((*_errno()) == 34) + _Xout_of_range("stold argument out of range"); + if (_Idx != 0) + *_Idx = (size_t)(_Eptr - _Ptr); + return (_Ans); + } + + +#pragma warning(push) +#pragma warning(disable: 4127) +template inline + _Elem* _UIntegral_to_buff(_Elem* _RNext, _UTy _UVal) + { + static_assert(is_unsigned<_UTy>::value, "_UTy must be unsigned"); + + + + + if (sizeof(_UTy) > 4) + { + while (_UVal > 0xFFFFFFFFU) + { + auto _UVal_chunk = static_cast<_Uint32t>(_UVal % 1000000000); + _UVal /= 1000000000; + + for (int _Idx = 0; _Idx != 9; ++_Idx) + { + *--_RNext = '0' + _UVal_chunk % 10; + _UVal_chunk /= 10; + } + } + } + + auto _UVal_trunc = static_cast<_Uint32t>(_UVal); + + + do + { + *--_RNext = '0' + _UVal_trunc % 10; + _UVal_trunc /= 10; + } + while (_UVal_trunc != 0); + return (_RNext); + } +#pragma warning(pop) + +template inline + basic_string<_Elem> _Integral_to_string(const _Ty _Val) + { + static_assert(is_integral<_Ty>::value, "_Ty must be integral"); + using _UTy = make_unsigned_t<_Ty>; + _Elem _Buff[21]; + _Elem* const _Buff_end = ::std:: end(_Buff); + _Elem* _RNext = _Buff_end; + auto _UVal = static_cast<_UTy>(_Val); + if (_Val < 0) + { + _RNext = _UIntegral_to_buff(_RNext, 0 - _UVal); + *--_RNext = '-'; + } + else + _RNext = _UIntegral_to_buff(_RNext, _UVal); + + return (basic_string<_Elem>(_RNext, _Buff_end)); + } + +template inline + string _Floating_to_string(const char *_Fmt, _Ty _Val) + { + static_assert(is_floating_point<_Ty>::value, + "_Ty must be floating point"); + + int _Len = :: _scprintf(_Fmt, _Val); + string _Str(_Len + 1, '\0'); + :: sprintf_s(&_Str[0], _Len + 1, _Fmt, _Val); + _Str.resize(_Len); + return (_Str); + } + +template inline + wstring _Floating_to_wstring(const wchar_t *_Fmt, _Ty _Val) + { + static_assert(is_floating_point<_Ty>::value, + "_Ty must be floating point"); + + int _Len = :: _scwprintf(_Fmt, _Val); + wstring _Str(_Len + 1, L'\0'); + :: swprintf_s(&_Str[0], _Len + 1, _Fmt, _Val); + _Str.resize(_Len); + return (_Str); + } + + + + +inline string to_string(int _Val) + { + return (_Integral_to_string(_Val)); + } + +inline string to_string(unsigned int _Val) + { + return (_Integral_to_string(_Val)); + } + +inline string to_string(long _Val) + { + return (_Integral_to_string(_Val)); + } + +inline string to_string(unsigned long _Val) + { + return (_Integral_to_string(_Val)); + } + +inline string to_string(long long _Val) + { + return (_Integral_to_string(_Val)); + } + +inline string to_string(unsigned long long _Val) + { + return (_Integral_to_string(_Val)); + } + +inline string to_string(float _Val) + { + return (_Floating_to_string("%f", _Val)); + } + +inline string to_string(double _Val) + { + return (_Floating_to_string("%f", _Val)); + } + +inline string to_string(long double _Val) + { + return (_Floating_to_string("%Lf", _Val)); + } + + +inline wstring to_wstring(int _Val) + { + return (_Integral_to_string(_Val)); + } + +inline wstring to_wstring(unsigned int _Val) + { + return (_Integral_to_string(_Val)); + } + +inline wstring to_wstring(long _Val) + { + return (_Integral_to_string(_Val)); + } + +inline wstring to_wstring(unsigned long _Val) + { + return (_Integral_to_string(_Val)); + } + +inline wstring to_wstring(long long _Val) + { + return (_Integral_to_string(_Val)); + } + +inline wstring to_wstring(unsigned long long _Val) + { + return (_Integral_to_string(_Val)); + } + +inline wstring to_wstring(float _Val) + { + return (_Floating_to_wstring(L"%f", _Val)); + } + +inline wstring to_wstring(double _Val) + { + return (_Floating_to_wstring(L"%f", _Val)); + } + +inline wstring to_wstring(long double _Val) + { + return (_Floating_to_wstring(L"%Lf", _Val)); + } + + + + + + + +inline namespace literals { +inline namespace string_literals { +inline string operator "" s(const char *_Str, size_t _Len) + { + return (string(_Str, _Len)); + } + +inline wstring operator "" s(const wchar_t *_Str, size_t _Len) + { + return (wstring(_Str, _Len)); + } + +inline u16string operator "" s(const char16_t *_Str, size_t _Len) + { + return (u16string(_Str, _Len)); + } + +inline u32string operator "" s(const char32_t *_Str, size_t _Len) + { + return (u32string(_Str, _Len)); + } +} +} + + + + + +} + + +#pragma warning(pop) +#pragma pack(pop) +# 7 "../LEngine/Scene.h" 2 + +# 1 "../LEngine/Gizmos.h" 1 + + + +# 1 "../LEngine/GizmoVertex.h" 1 + + + + + +using namespace lm; + +struct GizmoVertex { + float4 position; + float4 color; + + GizmoVertex(float4 _position, float4 _color) + :position(_position), color(_color) + { + + } + + GizmoVertex(float3 _position, float4 _color) + :position(_position.x, _position.y, _position.z, 1), color(_color) + { + + } +}; +# 4 "../LEngine/Gizmos.h" 2 + + +# 1 "../LEngine/Material.h" 1 + + + +# 1 "../LEngine/Shader.h" 1 + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" 1 +# 25 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(disable: 4505) +#pragma warning(disable: 4710) +#pragma warning(disable: 4514) + + + +#pragma warning(disable: 4511) +#pragma warning(disable: 4512) + + +#pragma warning(disable: 4355) + + + + + +#pragma warning(disable: 4668) +#pragma warning(disable: 4820) +#pragma warning(disable: 4917) +#pragma warning(disable: 4127) +#pragma warning(disable: 4097) +#pragma warning(disable: 4786) +#pragma warning(disable: 4291) +#pragma warning(disable: 4201) +#pragma warning(disable: 4103) +#pragma warning(disable: 4268) + +#pragma warning(push) + + + +#pragma warning(disable: 4702) +#pragma warning(disable: 4571) + + + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atldef.h" 1 +# 16 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atldef.h" +#pragma warning(disable: 4619) +# 68 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atldef.h" +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlrc.h" 1 +# 68 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atldef.h" 2 + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\new.h" 1 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\new.h" +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\crtdefs.h" 1 3 + + + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 1 3 +# 9 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\crtdefs.h" 2 3 +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\new.h" 2 + + + namespace std + { + typedef void (__cdecl* new_handler)(); + + + + + + new_handler __cdecl set_new_handler( new_handler _NewHandler) throw(); + } + + + + + + using std::new_handler; + using std::set_new_handler; + + + + + + +#pragma pack(push, 8) +# 46 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\new.h" + extern "C" { + + + +typedef int (__cdecl* _PNH)(size_t); + +_PNH __cdecl _query_new_handler(void); +_PNH __cdecl _set_new_handler( _PNH _NewHandler); + + + int __cdecl _query_new_mode(void); + int __cdecl _set_new_mode( int _NewMode); + + + +} +# 61 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\new.h" +#pragma pack(pop) +# 74 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atldef.h" 2 +# 121 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atldef.h" +#pragma comment(linker, "/include:??3@YAXPAX@Z") +# 675 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atldef.h" +namespace ATL { + +#pragma warning(push) +# 677 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atldef.h" +#pragma warning(disable: 6001 6101) +template < typename T > + inline __declspec(noalias) T* SAL_Assume_bytecap_for_opt_( + T* buf, + size_t dwLen) +{ + (void)(dwLen); + return buf; +} +#pragma warning(pop) + +template < typename T > + inline __declspec(noalias) T* SAL_Assume_notnull_for_opt_z_( T* buf) +{ + do { (void)( (!!((buf!=0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atldef.h", 691, 0, L"%ls", L"buf!=0")) || (__debugbreak(), 0) ); ; } +# 691 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atldef.h" +#pragma warning(suppress: 4127) +# 691 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atldef.h" + while (0); + return buf; +} + +} +# 65 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" 2 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h" 1 +# 20 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h" +#pragma warning(disable: 4786) +#pragma warning(disable: 4127) +# 32 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" 1 +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" +#pragma pack(push, 8) +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" + extern "C" { +# 31 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" + unsigned char* __cdecl _mbsdup( + unsigned char const* _Str + ); +# 45 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" + unsigned int __cdecl _mbbtombc( + unsigned int _C + ); + + + unsigned int __cdecl _mbbtombc_l( + unsigned int _C, + _locale_t _Locale + ); + + + int __cdecl _mbbtype( + unsigned char _C, + int _CType + ); + + + int __cdecl _mbbtype_l( + unsigned char _C, + int _CType, + _locale_t _Locale + ); + + + unsigned int __cdecl _mbctombb( + unsigned int _C + ); + + + unsigned int __cdecl _mbctombb_l( + unsigned int _C, + _locale_t _Locale + ); + + int __cdecl _mbsbtype( + unsigned char const* _Str, + size_t _Pos + ); + + int __cdecl _mbsbtype_l( + unsigned char const* _Str, + size_t _Pos, + _locale_t _Locale + ); + + errno_t __cdecl _mbscat_s( + unsigned char* _Dst, + size_t _SizeInBytes, + unsigned char const* _Src + ); + + extern "C++" { template inline errno_t __cdecl _mbscat_s(unsigned char (&_Dst)[_Size], unsigned char const* _DstSizeInBytes) throw() { return _mbscat_s(_Dst, _Size, _DstSizeInBytes); } } + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbscat_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbscat( unsigned char *_Dest, unsigned char const* _Source); + + + + + + errno_t __cdecl _mbscat_s_l( + unsigned char* _Dst, + size_t _DstSizeInBytes, + unsigned char const* _Src, + _locale_t _Locale + ); + + extern "C++" { template inline errno_t __cdecl _mbscat_s_l(unsigned char (&_Dest)[_Size], unsigned char const* _Source, _locale_t _Locale) throw() { return _mbscat_s_l(_Dest, _Size, _Source, _Locale); } } + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbscat_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbscat_l( unsigned char *_Dest, unsigned char const* _Source, _locale_t _Locale); +# 131 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" + unsigned char const* __cdecl _mbschr( + unsigned char const* _Str, + unsigned int _C + ); + + + unsigned char const* __cdecl _mbschr_l( + unsigned char const* _Str, + unsigned int _C, + _locale_t _Locale + ); + + + int __cdecl _mbscmp( + unsigned char const* _Str1, + unsigned char const* _Str2 + ); + + + int __cdecl _mbscmp_l( + unsigned char const* _Str1, + unsigned char const* _Str2, + _locale_t _Locale + ); + + + int __cdecl _mbscoll( + unsigned char const* _Str1, + unsigned char const* _Str2 + ); + + + int __cdecl _mbscoll_l( + unsigned char const* _Str1, + unsigned char const* _Str2, + _locale_t _Locale + ); + + errno_t __cdecl _mbscpy_s( + unsigned char* _Dst, + size_t _SizeInBytes, + unsigned char const* _Src + ); + + extern "C++" { template inline errno_t __cdecl _mbscpy_s(unsigned char (&_Dest)[_Size], unsigned char const* _Source) throw() { return _mbscpy_s(_Dest, _Size, _Source); } } + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbscpy_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbscpy( unsigned char *_Dest, unsigned char const* _Source); + + + + + + errno_t __cdecl _mbscpy_s_l( + unsigned char* _Dst, + size_t _DstSizeInBytes, + unsigned char const* _Src, + _locale_t _Locale + ); + + extern "C++" { template inline errno_t __cdecl _mbscpy_s(unsigned char (&_Dest)[_Size], unsigned char const* _Source, _locale_t _Locale) throw() { return _mbscpy_s(_Dest, _Size, _Source, _Locale); } } + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbscpy_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbscpy_l( unsigned char *_Dest, unsigned char const* _Source, _locale_t _Locale); +# 210 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" + size_t __cdecl _mbscspn( + unsigned char const* _String, + unsigned char const* _Control + ); + + + size_t __cdecl _mbscspn_l( + unsigned char const* _String, + unsigned char const* _Control, + _locale_t _Locale + ); + + + unsigned char* __cdecl _mbsdec( + unsigned char const* _Start, + unsigned char const* _Pos + ); + + + unsigned char* __cdecl _mbsdec_l( + unsigned char const* _Start, + unsigned char const* _Pos, + _locale_t _Locale + ); + + + int __cdecl _mbsicmp( + unsigned char const* _Str1, + unsigned char const* _Str2 + ); + + + int __cdecl _mbsicmp_l( + unsigned char const* _Str1, + unsigned char const* _Str2, + _locale_t _Locale + ); + + + int __cdecl _mbsicoll( + unsigned char const* _Str1, + unsigned char const* _Str2 + ); + + + int __cdecl _mbsicoll_l( + unsigned char const* _Str1, + unsigned char const* _Str2, + _locale_t _Locale + ); + + + unsigned char* __cdecl _mbsinc( + unsigned char const* _Ptr + ); + + + unsigned char* __cdecl _mbsinc_l( + unsigned char const* _Ptr, + _locale_t _Locale + ); + + + + size_t __cdecl _mbslen( + unsigned char const* _String + ); + + + + size_t __cdecl _mbslen_l( + unsigned char const* _String, + _locale_t _Locale + ); + + + + size_t __cdecl _mbsnlen( + unsigned char const* _String, + size_t _MaxCount + ); + + + + size_t __cdecl _mbsnlen_l( + unsigned char const* _String, + size_t _MaxCount, + _locale_t _Locale + ); + + errno_t __cdecl _mbslwr_s( + unsigned char* _String, + size_t _SizeInBytes + ); + + extern "C++" { template inline errno_t __cdecl _mbslwr_s(unsigned char (&_String)[_Size]) throw() { return _mbslwr_s(_String, _Size); } } + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbslwr_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbslwr( unsigned char *_String); + + + + + errno_t __cdecl _mbslwr_s_l( + unsigned char* _String, + size_t _SizeInBytes, + _locale_t _Locale + ); + + extern "C++" { template inline errno_t __cdecl _mbslwr_s_l(unsigned char (&_String)[_Size], _locale_t _Locale) throw() { return _mbslwr_s_l(_String, _Size, _Locale); } } + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbslwr_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbslwr_l( unsigned char *_String, _locale_t _Locale); + + + + + + + errno_t __cdecl _mbsnbcat_s( + unsigned char* _Dst, + size_t _SizeInBytes, + unsigned char const* _Src, + size_t _MaxCount + ); + + extern "C++" { template inline errno_t __cdecl _mbsnbcat_s(unsigned char (&_Dest)[_Size], unsigned char const* _Source, size_t _Count) throw() { return _mbsnbcat_s(_Dest, _Size, _Source, _Count); } } + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbsnbcat_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbsnbcat( unsigned char *_Dest, unsigned char const* _Source, size_t _Count); + + + + + + + errno_t __cdecl _mbsnbcat_s_l( + unsigned char* _Dst, + size_t _DstSizeInBytes, + unsigned char const* _Src, + size_t _MaxCount, + _locale_t _Locale + ); + + extern "C++" { template inline errno_t __cdecl _mbsnbcat_s_l(unsigned char (&_Dest)[_Size], unsigned char const* _Source, size_t _Count, _locale_t _Locale) throw() { return _mbsnbcat_s_l(_Dest, _Size, _Source, _Count, _Locale); } } + + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbsnbcat_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbsnbcat_l( unsigned char *_Dest, unsigned char const* _Source, size_t _Count, _locale_t _Locale); +# 381 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" + int __cdecl _mbsnbcmp( + unsigned char const* _Str1, + unsigned char const* _Str2, + size_t _MaxCount + ); + + + int __cdecl _mbsnbcmp_l( + unsigned char const* _Str1, + unsigned char const* _Str2, + size_t _MaxCount, + _locale_t _Locale + ); + + + int __cdecl _mbsnbcoll( + unsigned char const* _Str1, + unsigned char const* _Str2, + size_t _MaxCount + ); + + + int __cdecl _mbsnbcoll_l( + unsigned char const* _Str1, + unsigned char const* _Str2, + size_t _MaxCount, + _locale_t _Locale + ); + + + size_t __cdecl _mbsnbcnt( + unsigned char const* _String, + size_t _MaxCount + ); + + + size_t __cdecl _mbsnbcnt_l( + unsigned char const* _String, + size_t _MaxCount, + _locale_t _Locale + ); + + errno_t __cdecl _mbsnbcpy_s( + unsigned char* _Dst, + size_t _SizeInBytes, + unsigned char const* _Src, + size_t _MaxCount + ); + + extern "C++" { template inline errno_t __cdecl _mbsnbcpy_s(unsigned char (&_Dest)[_Size], unsigned char const* _Source, size_t _Count) throw() { return _mbsnbcpy_s(_Dest, _Size, _Source, _Count); } } + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbsnbcpy_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbsnbcpy( unsigned char *_Dest, unsigned char const* _Source, size_t _Count); + + + + + + + errno_t __cdecl _mbsnbcpy_s_l( + unsigned char* _Dst, + size_t _DstSizeInBytes, + unsigned char const* _Src, + size_t _MaxCount, + _locale_t _Locale + ); + + extern "C++" { template inline errno_t __cdecl _mbsnbcpy_s_l(unsigned char (&_Dest)[_Size], unsigned char const* _Source, size_t _Count, _locale_t _Locale) throw() { return _mbsnbcpy_s_l(_Dest, _Size, _Source, _Count, _Locale); } } + + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbsnbcpy_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbsnbcpy_l( unsigned char *_Dest, unsigned char const* _Source, size_t _Count, _locale_t _Locale); +# 470 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" + int __cdecl _mbsnbicmp( + unsigned char const* _Str1, + unsigned char const* _Str2, + size_t _MaxCount + ); + + + int __cdecl _mbsnbicmp_l( + unsigned char const* _Str1, + unsigned char const* _Str2, + size_t _MaxCount, + _locale_t _Locale + ); + + + int __cdecl _mbsnbicoll( + unsigned char const* _Str1, + unsigned char const* _Str2, + size_t _MaxCount + ); + + + int __cdecl _mbsnbicoll_l( + unsigned char const* _Str1, + unsigned char const* _Str2, + size_t _MaxCount, + _locale_t _Locale + ); + + errno_t __cdecl _mbsnbset_s( + unsigned char* _Dst, + size_t _SizeInBytes, + unsigned int _C, + size_t _MaxCount + ); + + extern "C++" { template inline errno_t __cdecl _mbsnbset_s(unsigned char (&_Dest)[_Size], unsigned int _Val, size_t _MaxCount) throw() { return _mbsnbset_s(_Dest, _Size, _Val, _MaxCount); } } + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbsnbset_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbsnbset( unsigned char *_String, unsigned int _Val, size_t _MaxCount); + + + + + + + + errno_t __cdecl _mbsnbset_s_l( + unsigned char* _Dst, + size_t _DstSizeInBytes, + unsigned int _Ch, + size_t _MaxCount, + _locale_t _Locale + ); + + extern "C++" { template inline errno_t __cdecl _mbsnbset_s_l(unsigned char (&_Dest)[_Size], unsigned int _Val, size_t _MaxCount, _locale_t _Locale) throw() { return _mbsnbset_s_l(_Dest, _Size, _Val, _MaxCount, _Locale); } } + + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbsnbset_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbsnbset_l( unsigned char *_String, unsigned int _Val, size_t _MaxCount, _locale_t _Locale); +# 546 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" + errno_t __cdecl _mbsncat_s( + unsigned char* _Dst, + size_t _SizeInBytes, + unsigned char const* _Src, + size_t _MaxCount + ); + + extern "C++" { template inline errno_t __cdecl _mbsncat_s(unsigned char (&_Dest)[_Size], unsigned char const* _Source, size_t _Count) throw() { return _mbsncat_s(_Dest, _Size, _Source, _Count); } } + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbsncat_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbsncat( unsigned char *_Dest, unsigned char const* _Source, size_t _Count); + + + + + + + errno_t __cdecl _mbsncat_s_l( + unsigned char* _Dst, + size_t _DstSizeInBytes, + unsigned char const* _Src, + size_t _MaxCount, + _locale_t _Locale + ); + + extern "C++" { template inline errno_t __cdecl _mbsncat_s_l(unsigned char (&_Dest)[_Size], unsigned char const* _Source, size_t _Count, _locale_t _Locale) throw() { return _mbsncat_s_l(_Dest, _Size, _Source, _Count, _Locale); } } + + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbsncat_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbsncat_l( unsigned char *_Dest, unsigned char const* _Source, size_t _Count, _locale_t _Locale); +# 593 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" + size_t __cdecl _mbsnccnt( + unsigned char const* _Str, + size_t _MaxCount + ); + + + size_t __cdecl _mbsnccnt_l( + unsigned char const* _Str, + size_t _MaxCount, + _locale_t _Locale + ); + + + int __cdecl _mbsncmp( + unsigned char const* _Str1, + unsigned char const* _Str2, + size_t _MaxCount + ); + + + int __cdecl _mbsncmp_l( + unsigned char const* _Str1, + unsigned char const* _Str2, + size_t _MaxCount, + _locale_t _Locale + ); + + + int __cdecl _mbsncoll( + unsigned char const* _Str1, + unsigned char const* _Str2, + size_t _MaxCount + ); + + + int __cdecl _mbsncoll_l( + unsigned char const* _Str1, + unsigned char const* _Str2, + size_t _MaxCount, + _locale_t _Locale + ); + + errno_t __cdecl _mbsncpy_s( + unsigned char* _Dst, + size_t _SizeInBytes, + unsigned char const* _Src, + size_t _MaxCount + ); + + extern "C++" { template inline errno_t __cdecl _mbsncpy_s(unsigned char (&_Dest)[_Size], unsigned char const* _Source, size_t _Count) throw() { return _mbsncpy_s(_Dest, _Size, _Source, _Count); } } + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbsncpy_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbsncpy( unsigned char *_Dest, unsigned char const* _Source, size_t _Count); + + + + + + + errno_t __cdecl _mbsncpy_s_l( + unsigned char* _Dst, + size_t _DstSizeInBytes, + unsigned char const* _Src, + size_t _MaxCount, + _locale_t _Locale + ); + + extern "C++" { template inline errno_t __cdecl _mbsncpy_s_l(unsigned char (&_Dest)[_Size], unsigned char const* _Source, size_t _Count, _locale_t _Locale) throw() { return _mbsncpy_s_l(_Dest, _Size, _Source, _Count, _Locale); } } + + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbsncpy_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbsncpy_l( unsigned char *_Dest, unsigned char const* _Source, size_t _Count, _locale_t _Locale); +# 682 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" + unsigned int __cdecl _mbsnextc( + unsigned char const* _String + ); + + + unsigned int __cdecl _mbsnextc_l( + unsigned char const* _String, + _locale_t _Locale + ); + + + int __cdecl _mbsnicmp( + unsigned char const* _Str1, + unsigned char const* _Str2, + size_t _MaxCount + ); + + + int __cdecl _mbsnicmp_l( + unsigned char const* _Str1, + unsigned char const* _Str2, + size_t _MaxCount, + _locale_t _Locale + ); + + + int __cdecl _mbsnicoll( + unsigned char const* _Str1, + unsigned char const* _Str2, + size_t _MaxCount + ); + + + int __cdecl _mbsnicoll_l( + unsigned char const* _Str1, + unsigned char const* _Str2, + size_t _MaxCount, + _locale_t _Locale + ); + + + unsigned char* __cdecl _mbsninc( + unsigned char const* _String, + size_t _Count + ); + + + unsigned char* __cdecl _mbsninc_l( + unsigned char const* _String, + size_t _Count, + _locale_t _Locale + ); + + errno_t __cdecl _mbsnset_s( + unsigned char* _Dst, + size_t _SizeInBytes, + unsigned int _Val, + size_t _MaxCount + ); + + extern "C++" { template inline errno_t __cdecl _mbsnset_s(unsigned char (&_Dest)[_Size], unsigned int _Val, size_t _MaxCount) throw() { return _mbsnset_s(_Dest, _Size, _Val, _MaxCount); } } + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbsnset_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbsnset( unsigned char *_String, unsigned int _Val, size_t _MaxCount); + + + + + + + + errno_t __cdecl _mbsnset_s_l( + unsigned char* _Dst, + size_t _DstSizeInBytes, + unsigned int _Val, + size_t _MaxCount, + _locale_t _Locale + ); + + extern "C++" { template inline errno_t __cdecl _mbsnset_s_l(unsigned char (&_Dest)[_Size], unsigned int _Val, size_t _MaxCount, _locale_t _Locale) throw() { return _mbsnset_s_l(_Dest, _Size, _Val, _MaxCount, _Locale); } } + + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbsnset_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbsnset_l( unsigned char *_String, unsigned int _Val, size_t _MaxCount, _locale_t _Locale); +# 783 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" + unsigned char const* __cdecl _mbspbrk( + unsigned char const* _String, + unsigned char const* _Control + ); + + + unsigned char const* __cdecl _mbspbrk_l( + unsigned char const* _String, + unsigned char const* _Control, + _locale_t _Locale + ); + + + unsigned char const* __cdecl _mbsrchr( + unsigned char const* _String, + unsigned int _C + ); + + + unsigned char const* __cdecl _mbsrchr_l( + unsigned char const* _String, + unsigned int _C, + _locale_t _Locale + ); + + unsigned char* __cdecl _mbsrev( + unsigned char* _String + ); + + unsigned char* __cdecl _mbsrev_l( + unsigned char* _String, + _locale_t _Locale + ); + + errno_t __cdecl _mbsset_s( + unsigned char* _Dst, + size_t _SizeInBytes, + unsigned int _Val + ); + + extern "C++" { template inline errno_t __cdecl _mbsset_s(unsigned char (&_Dest)[_Size], unsigned int _Val) throw() { return _mbsset_s(_Dest, _Size, _Val); } } + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbsset_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbsset( unsigned char *_String, unsigned int _Val); + + + + + + + errno_t __cdecl _mbsset_s_l( + unsigned char* _Dst, + size_t _DstSizeInBytes, + unsigned int _Val, + _locale_t _Locale + ); + + extern "C++" { template inline errno_t __cdecl _mbsset_s_l(unsigned char (&_Dest)[_Size], unsigned int _Val, _locale_t _Locale) throw() { return _mbsset_s_l(_Dest, _Size, _Val, _Locale); } } + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbsset_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbsset_l( unsigned char *_String, unsigned int _Val, _locale_t _Locale); +# 859 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" + size_t __cdecl _mbsspn( + unsigned char const* _Str, + unsigned char const* _Control + ); + + + size_t __cdecl _mbsspn_l( + unsigned char const* _Str, + unsigned char const* _Control, + _locale_t _Locale + ); + + + unsigned char* __cdecl _mbsspnp( + unsigned char const* _Str1, + unsigned char const* _Str2 + ); + + + unsigned char* __cdecl _mbsspnp_l( + unsigned char const* _Str1, + unsigned char const* _Str2, + _locale_t _Locale + ); + + + unsigned char const* __cdecl _mbsstr( + unsigned char const* _Str, + unsigned char const* _Substr + ); + + + unsigned char const* __cdecl _mbsstr_l( + unsigned char const* _Str, + unsigned char const* _Substr, + _locale_t _Locale + ); + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbstok_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + unsigned char* __cdecl _mbstok( + unsigned char* _Str, + unsigned char const* _Delim + ); + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbstok_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + unsigned char* __cdecl _mbstok_l( + unsigned char* _Str, + unsigned char const* _Delim, + _locale_t _Locale + ); + + + unsigned char* __cdecl _mbstok_s( + unsigned char* _Str, + unsigned char const* _Delim, + unsigned char** _Context + ); + + + unsigned char* __cdecl _mbstok_s_l( + unsigned char* _Str, + unsigned char const* _Delim, + unsigned char** _Context, + _locale_t _Locale + ); + + errno_t __cdecl _mbsupr_s( + unsigned char* _Str, + size_t _SizeInBytes + ); + + extern "C++" { template inline errno_t __cdecl _mbsupr_s(unsigned char (&_String)[_Size]) throw() { return _mbsupr_s(_String, _Size); } } + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbsupr_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbsupr( unsigned char *_String); + + + + + errno_t __cdecl _mbsupr_s_l( + unsigned char* _Str, + size_t _SizeInBytes, + _locale_t _Locale + ); + + extern "C++" { template inline errno_t __cdecl _mbsupr_s_l(unsigned char (&_String)[_Size], _locale_t _Locale) throw() { return _mbsupr_s_l(_String, _Size, _Locale); } } + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbsupr_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) unsigned char* __cdecl _mbsupr_l( unsigned char *_String, _locale_t _Locale); + + + + + + + + size_t __cdecl _mbclen( + unsigned char const* _String + ); + + + size_t __cdecl _mbclen_l( + unsigned char const* _String, + _locale_t _Locale + ); + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbccpy_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + void __cdecl _mbccpy( + unsigned char* _Dst, + unsigned char const* _Src + ); + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_mbccpy_s_l" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + void __cdecl _mbccpy_l( + unsigned char* _Dst, + unsigned char const* _Src, + _locale_t _Locale + ); + + errno_t __cdecl _mbccpy_s( + unsigned char* _Dst, + size_t _SizeInBytes, + int* _PCopied, + unsigned char const* _Src + ); + + extern "C++" { template inline errno_t __cdecl _mbccpy_s(unsigned char (&_Dest)[_Size], int* _PCopied, unsigned char const* _Source) throw() { return _mbccpy_s(_Dest, _Size, _PCopied, _Source); } } + + + + + + + errno_t __cdecl _mbccpy_s_l( + unsigned char* _Dst, + size_t _DstSizeInBytes, + int* _PCopied, + unsigned char const* _Src, + _locale_t _Locale + ); + + extern "C++" { template inline errno_t __cdecl _mbccpy_s_l(unsigned char (&_Dest)[_Size], int* _PCopied, unsigned char const* _Source, _locale_t _Locale) throw() { return _mbccpy_s_l(_Dest, _Size, _PCopied, _Source, _Locale); } } +# 1024 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" + extern "C++" { + + + inline unsigned char* __cdecl _mbschr( + unsigned char* const _String, + unsigned int const _Char + ) + { + unsigned char const* const _ConstString = _String; + return const_cast(_mbschr(_ConstString, _Char)); + } + + + inline unsigned char* __cdecl _mbschr_l( + unsigned char* const _String, + unsigned int const _Char, + _locale_t const _Locale + ) + { + unsigned char const* const _ConstString = _String; + return const_cast(_mbschr_l(_ConstString, _Char, _Locale)); + } + + + inline unsigned char* __cdecl _mbspbrk( + unsigned char* const _String, + unsigned char const* const _CharSet + ) + { + unsigned char const* const _ConstString = _String; + return const_cast(_mbspbrk(_ConstString, _CharSet)); + } + + + inline unsigned char* __cdecl _mbspbrk_l( + unsigned char* const _String, + unsigned char const* const _CharSet, + _locale_t const _Locale + ) + { + unsigned char const* const _ConstString = _String; + return const_cast(_mbspbrk_l(_ConstString, _CharSet, _Locale)); + } + + + inline unsigned char* __cdecl _mbsrchr( + unsigned char* const _String, + unsigned int const _Char + ) + { + unsigned char const* const _ConstString = _String; + return const_cast(_mbsrchr(_ConstString, _Char)); + } + + + inline unsigned char* __cdecl _mbsrchr_l( + unsigned char* const _String, + unsigned int const _Char, + _locale_t const _Locale + ) + { + unsigned char const* const _ConstString = _String; + return const_cast(_mbsrchr_l(_ConstString, _Char, _Locale)); + } + + + inline unsigned char* __cdecl _mbsstr( + unsigned char* const _String, + unsigned char const* const _Match + ) + { + unsigned char const* const _ConstString = _String; + return const_cast(_mbsstr(_ConstString, _Match)); + } + + + inline unsigned char* __cdecl _mbsstr_l( + unsigned char* const _String, + unsigned char const* const _Match, + _locale_t const _Locale + ) + { + unsigned char const* const _ConstString = _String; + return const_cast(_mbsstr_l(_ConstString, _Match, _Locale)); + } + + } +# 1121 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" + int __cdecl _ismbcalnum( unsigned int _C); + int __cdecl _ismbcalpha( unsigned int _C); + int __cdecl _ismbcdigit( unsigned int _C); + int __cdecl _ismbcgraph( unsigned int _C); + int __cdecl _ismbclegal( unsigned int _C); + int __cdecl _ismbclower( unsigned int _C); + int __cdecl _ismbcprint( unsigned int _C); + int __cdecl _ismbcpunct( unsigned int _C); + int __cdecl _ismbcblank( unsigned int _C); + int __cdecl _ismbcspace( unsigned int _C); + int __cdecl _ismbcupper( unsigned int _C); + + int __cdecl _ismbcalnum_l( unsigned int _C, _locale_t _Locale); + int __cdecl _ismbcalpha_l( unsigned int _C, _locale_t _Locale); + int __cdecl _ismbcdigit_l( unsigned int _C, _locale_t _Locale); + int __cdecl _ismbcgraph_l( unsigned int _C, _locale_t _Locale); + int __cdecl _ismbclegal_l( unsigned int _C, _locale_t _Locale); + int __cdecl _ismbclower_l( unsigned int _C, _locale_t _Locale); + int __cdecl _ismbcprint_l( unsigned int _C, _locale_t _Locale); + int __cdecl _ismbcpunct_l( unsigned int _C, _locale_t _Locale); + int __cdecl _ismbcblank_l( unsigned int _C, _locale_t _Locale); + int __cdecl _ismbcspace_l( unsigned int _C, _locale_t _Locale); + int __cdecl _ismbcupper_l( unsigned int _C, _locale_t _Locale); + + unsigned int __cdecl _mbctolower( unsigned int _Ch); + unsigned int __cdecl _mbctoupper( unsigned int _Ch); + + unsigned int __cdecl _mbctolower_l( unsigned int _Ch, _locale_t _Locale); + unsigned int __cdecl _mbctoupper_l( unsigned int _Ch, _locale_t _Locale); +# 1158 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" + int __cdecl _ismbchira ( unsigned int _C); + int __cdecl _ismbckata ( unsigned int _C); + int __cdecl _ismbcsymbol( unsigned int _C); + int __cdecl _ismbcl0 ( unsigned int _C); + int __cdecl _ismbcl1 ( unsigned int _C); + int __cdecl _ismbcl2 ( unsigned int _C); + + int __cdecl _ismbchira_l ( unsigned int _C, _locale_t _Locale); + int __cdecl _ismbckata_l ( unsigned int _C, _locale_t _Locale); + int __cdecl _ismbcsymbol_l( unsigned int _C, _locale_t _Locale); + int __cdecl _ismbcl0_l ( unsigned int _C, _locale_t _Locale); + int __cdecl _ismbcl1_l ( unsigned int _C, _locale_t _Locale); + int __cdecl _ismbcl2_l ( unsigned int _C, _locale_t _Locale); + + unsigned int __cdecl _mbcjistojms( unsigned int _C); + unsigned int __cdecl _mbcjmstojis( unsigned int _C); + unsigned int __cdecl _mbctohira ( unsigned int _C); + unsigned int __cdecl _mbctokata ( unsigned int _C); + + unsigned int __cdecl _mbcjistojms_l( unsigned int _C, _locale_t _Locale); + unsigned int __cdecl _mbcjmstojis_l( unsigned int _C, _locale_t _Locale); + unsigned int __cdecl _mbctohira_l ( unsigned int _C, _locale_t _Locale); + unsigned int __cdecl _mbctokata_l ( unsigned int _C, _locale_t _Locale); + + + + + + + + int __cdecl _ismbblead ( unsigned int _Ch); + int __cdecl _ismbbtrail( unsigned int _Ch); + + + int __cdecl _ismbblead_l ( unsigned int _Ch, _locale_t _Locale); + int __cdecl _ismbbtrail_l( unsigned int _Ch, _locale_t _Locale); + + + int __cdecl _ismbslead( + unsigned char const* _String, + unsigned char const* _Pos + ); + + + int __cdecl _ismbslead_l( + unsigned char const* _String, + unsigned char const* _Pos, + _locale_t _Locale + ); + + + int __cdecl _ismbstrail( + unsigned char const* _String, + unsigned char const* _Pos + ); + + + int __cdecl _ismbstrail_l( + unsigned char const* _String, + unsigned char const* _Pos, + _locale_t _Locale + ); + + + + +} +# 1224 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\mbstring.h" +#pragma pack(pop) +# 32 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h" 2 + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlchecked.h" 1 +# 17 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlchecked.h" +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlexcept.h" 1 +# 17 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlexcept.h" +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltrace.h" 1 +# 17 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltrace.h" +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" 1 +# 17 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma warning(push) +#pragma warning(disable: 4127) +#pragma warning(disable: 4987) +# 28 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h" 1 +# 20 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h" +#pragma pack(push,8) +namespace ATL +{ +# 42 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h" +template +class AtlLimits; + +template<> +class AtlLimits +{ +public: + static const int _Min=(-2147483647 - 1); + static const int _Max=2147483647; +}; + +template<> +class AtlLimits +{ +public: + static const unsigned int _Min=0; + static const unsigned int _Max=0xffffffff; +}; + +template<> +class AtlLimits +{ +public: + static const long _Min=(-2147483647L - 1); + static const long _Max=2147483647L; +}; + +template<> +class AtlLimits +{ +public: + static const unsigned long _Min=0; + static const unsigned long _Max=0xffffffffUL; +}; + +template<> +class AtlLimits +{ +public: + static const long long _Min=(-9223372036854775807i64 - 1); + static const long long _Max=9223372036854775807i64; +}; + +template<> +class AtlLimits +{ +public: + static const unsigned long long _Min=0; + static const unsigned long long _Max=0xffffffffffffffffui64; +}; + + +template +inline HRESULT AtlAdd( + T* ptResult, + T tLeft, + T tRight) +{ + if(::ATL::AtlLimits::_Max-tLeft < tRight) + { + return HRESULT_FROM_WIN32(534L); + } + *ptResult= tLeft + tRight; + return ((HRESULT)0L); +} + + +template +inline HRESULT AtlMultiply( + T* ptResult, + T tLeft, + T tRight) +{ + + if(tLeft==0) + { + *ptResult=0; + return ((HRESULT)0L); + } + if(::ATL::AtlLimits::_Max/tLeft < tRight) + { + return HRESULT_FROM_WIN32(534L); + } + *ptResult= tLeft * tRight; + return ((HRESULT)0L); +} + + +template<> +inline HRESULT AtlMultiply( + int __w64 *piResult, + int __w64 iLeft, + int __w64 iRight) +{ + __int64 i64Result=static_cast<__int64>(iLeft) * static_cast<__int64>(iRight); + if(i64Result>2147483647 || i64Result < (-2147483647 - 1)) + { + return HRESULT_FROM_WIN32(534L); + } + *piResult=static_cast(i64Result); + return ((HRESULT)0L); +} + +template<> +inline HRESULT AtlMultiply( + unsigned int __w64 *piResult, + unsigned int __w64 iLeft, + unsigned int __w64 iRight) +{ + unsigned __int64 i64Result=static_cast(iLeft) * static_cast(iRight); + if(i64Result>0xffffffff) + { + return HRESULT_FROM_WIN32(534L); + } + *piResult=static_cast(i64Result); + return ((HRESULT)0L); +} + +template<> +inline HRESULT AtlMultiply( + long __w64 *piResult, + long __w64 iLeft, + long __w64 iRight) +{ + __int64 i64Result=static_cast<__int64>(iLeft) * static_cast<__int64>(iRight); + if(i64Result>2147483647L || i64Result < (-2147483647L - 1)) + { + return HRESULT_FROM_WIN32(534L); + } + *piResult=static_cast(i64Result); + return ((HRESULT)0L); +} + +template<> +inline HRESULT AtlMultiply( + unsigned long __w64 *piResult, + unsigned long __w64 iLeft, + unsigned long __w64 iRight) +{ + unsigned __int64 i64Result=static_cast(iLeft) * static_cast(iRight); + if(i64Result>0xffffffffUL) + { + return HRESULT_FROM_WIN32(534L); + } + *piResult=static_cast(i64Result); + return ((HRESULT)0L); +} + +template +inline T AtlMultiplyThrow( + T tLeft, + T tRight) +{ + T tResult; + HRESULT hr=AtlMultiply(&tResult, tLeft, tRight); + if((((HRESULT)(hr)) < 0)) + { + ATL::AtlThrowImpl(hr); + } + return tResult; +} + +template +inline T AtlAddThrow( + T tLeft, + T tRight) +{ + T tResult; + HRESULT hr=AtlAdd(&tResult, tLeft, tRight); + if((((HRESULT)(hr)) < 0)) + { + ATL::AtlThrowImpl(hr); + } + return tResult; +} + + __declspec(allocator) inline LPVOID AtlCoTaskMemCAlloc( + ULONG nCount, + ULONG nSize) +{ + HRESULT hr; + ULONG nBytes=0; + if( (((HRESULT)(hr=::ATL::AtlMultiply(&nBytes, nCount, nSize))) < 0)) + { + return 0; + } + return ::CoTaskMemAlloc(nBytes); +} + + __declspec(allocator) inline LPVOID AtlCoTaskMemRecalloc( + void *pvMemory, + ULONG nCount, + ULONG nSize) +{ + HRESULT hr; + ULONG nBytes=0; + if( (((HRESULT)(hr=::ATL::AtlMultiply(&nBytes, nCount, nSize))) < 0)) + { + return 0; + } + return ::CoTaskMemRealloc(pvMemory, nBytes); +} + +} +#pragma pack(pop) + +#pragma pack(push,8) +namespace ATL +{ + + +namespace Checked +{ + void __cdecl memcpy_s( + void *s1, + size_t _S1max, + const void *s2, + size_t _N); +} + + + + +class CCRTAllocator +{ +public: + __declspec(allocator) static void* Reallocate( + void* p, + size_t nBytes) throw() + { + return realloc(p, nBytes); + } + + __declspec(allocator) static void* Allocate( size_t nBytes) throw() + { + return malloc(nBytes); + } + + static void Free( void* p) throw() + { + free(p); + } +}; + + + + +class CLocalAllocator +{ +public: + __declspec(allocator) static void* Allocate( size_t nBytes) throw() + { + return ::LocalAlloc(0x0000, nBytes); + } + __declspec(allocator) static void* Reallocate( + void* p, + size_t nBytes) throw() + { + if (p==0){ + return ( Allocate(nBytes) ); + + } + if (nBytes==0){ + Free(p); + return 0; + } + return SAL_Assume_bytecap_for_opt_(::LocalReAlloc(p, nBytes, 0), nBytes); + } + static void Free( void* p) throw() + { + ::LocalFree(p); + } +}; + +class CGlobalAllocator +{ +public: + __declspec(allocator) static void* Allocate( size_t nBytes) throw() + { + return ::GlobalAlloc(0x0000, nBytes); + } + __declspec(allocator) static void* Reallocate( + void* p, + size_t nBytes) throw() + { + if (p==0){ + return ( Allocate(nBytes) ); + + } + if (nBytes==0){ + Free(p); + return 0; + } + return SAL_Assume_bytecap_for_opt_(::GlobalReAlloc(p, nBytes, 0), nBytes); + } + static void Free( void* p) throw() + { + ::GlobalFree(p); + } +}; + + + +template +class CHeapPtrBase +{ +protected: + CHeapPtrBase() throw() : + m_pData(0) + { + } + CHeapPtrBase( CHeapPtrBase& p) throw() + { + m_pData = p.Detach(); + } + explicit CHeapPtrBase( T* pData) throw() : + m_pData(pData) + { + } + +public: + ~CHeapPtrBase() throw() + { + Free(); + } + +protected: + CHeapPtrBase& operator=( CHeapPtrBase& p) throw() + { + if(m_pData != p.m_pData) + Attach(p.Detach()); + return *this; + } + +public: + operator T*() const throw() + { + return m_pData; + } + + T* operator->() const throw() + { + (void)( (!!((m_pData != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h", 384, 0, L"%ls", L"m_pData != 0")) || (__debugbreak(), 0) ); + return m_pData; + } + + T** operator&() throw() + { + do { (void)( (!!((m_pData == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h", 390, 0, L"%ls", L"m_pData == 0")) || (__debugbreak(), 0) ); ; } +# 390 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h" +#pragma warning(suppress: 4127) +# 390 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h" + while (0); + return &m_pData; + } + + + bool AllocateBytes( size_t nBytes) throw() + { + (void)( (!!((m_pData == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h", 397, 0, L"%ls", L"m_pData == 0")) || (__debugbreak(), 0) ); + m_pData = static_cast(Allocator::Allocate(nBytes)); + if (m_pData == 0) + return false; + + return true; + } + + + void Attach( T* pData) throw() + { + Allocator::Free(m_pData); + m_pData = pData; + } + + + T* Detach() throw() + { + T* pTemp = m_pData; + m_pData = 0; + return pTemp; + } + + + void Free() throw() + { + Allocator::Free(m_pData); + m_pData = 0; + } + + + bool ReallocateBytes( size_t nBytes) throw() + { + T* pNew; + + pNew = static_cast(Allocator::Reallocate(m_pData, nBytes)); + if (pNew == 0) + return false; + m_pData = pNew; + + return true; + } + +public: + T* m_pData; +}; + +template +class CHeapPtr : + public CHeapPtrBase +{ +public: + CHeapPtr() throw() + { + } + CHeapPtr( CHeapPtr& p) throw() : + CHeapPtrBase(p) + { + } + explicit CHeapPtr( T* p) throw() : + CHeapPtrBase(p) + { + } + + CHeapPtr& operator=( CHeapPtr& p) throw() + { + CHeapPtrBase::operator=(p); + + return *this; + } + + + bool Allocate( size_t nElements = 1) throw() + { + size_t nBytes=0; + if((((HRESULT)(::ATL::AtlMultiply(&nBytes, nElements, sizeof(T)))) < 0)) + { + return false; + } + return AllocateBytes(nBytes); + } + + + bool Reallocate( size_t nElements) throw() + { + size_t nBytes=0; + if((((HRESULT)(::ATL::AtlMultiply(&nBytes, nElements, sizeof(T)))) < 0)) + { + return false; + } + return ReallocateBytes(nBytes); + } +}; + +template< typename T, int t_nFixedBytes = 128, class Allocator = CCRTAllocator > +class CTempBuffer +{ +public: + CTempBuffer() throw() : + m_p( 0 ) + { + } + +#pragma warning(suppress: 4987) + CTempBuffer( size_t nElements) throw( ... ) : + m_p( 0 ) + { + Allocate( nElements ); + } + + ~CTempBuffer() throw() + { + if( m_p != reinterpret_cast< T* >( m_abFixedBuffer ) ) + { + FreeHeap(); + } + } + + operator T*() const throw() + { + return( m_p ); + } + T* operator->() const throw() + { + (void)( (!!((m_p != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h", 521, 0, L"%ls", L"m_p != 0")) || (__debugbreak(), 0) ); + return( m_p ); + } + +#pragma warning(suppress: 4987) + T* Allocate( size_t nElements) throw( ... ) + { + return( AllocateBytes( ::ATL::AtlMultiplyThrow(nElements,sizeof( T )) ) ); + } + +#pragma warning(suppress: 4987) + T* Reallocate( size_t nElements) throw( ... ) + { + do { int __atl_condVal=!!(nElements < size_t(-1)/sizeof(T)); do { (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h", 534, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); ; } +# 534 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h" +#pragma warning(suppress: 4127) +# 534 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h" + while (0); if(!(__atl_condVal)) ATL::AtlThrowImpl(((HRESULT)0x80004005L)); } +# 534 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h" +#pragma warning(suppress: 4127) +# 534 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h" + while (0); + size_t nNewSize = nElements*sizeof( T ) ; + + if (m_p == 0) + return AllocateBytes(nNewSize); + + if (nNewSize > t_nFixedBytes) + { + if( m_p == reinterpret_cast< T* >( m_abFixedBuffer ) ) + { + + AllocateHeap(nNewSize); + Checked::memcpy_s(m_p, nNewSize, m_abFixedBuffer, t_nFixedBytes); + } + else + { + ReAllocateHeap( nNewSize ); + } + } + else + { + if (m_p != reinterpret_cast< T* >( m_abFixedBuffer )) + { + Checked::memcpy_s(m_abFixedBuffer, t_nFixedBytes, m_p, nNewSize); + FreeHeap(); + } + m_p = reinterpret_cast< T* >( m_abFixedBuffer ); + } + + return m_p; + } + + T* AllocateBytes( size_t nBytes) + { + (void)( (!!((m_p == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h", 568, 0, L"%ls", L"m_p == 0")) || (__debugbreak(), 0) ); + if( nBytes > t_nFixedBytes ) + { + AllocateHeap( nBytes ); + } + else + { + m_p = reinterpret_cast< T* >( m_abFixedBuffer ); + } + + return( m_p ); + } + +private: + __declspec( noinline ) void AllocateHeap( size_t nBytes) + { + T* p = static_cast< T* >( Allocator::Allocate( nBytes ) ); + if( p == 0 ) + { + ATL::AtlThrowImpl( ((HRESULT)0x8007000EL) ); + } + m_p = p; + } + + __declspec( noinline ) void ReAllocateHeap( size_t nNewSize) + { + T* p = static_cast< T* >( Allocator::Reallocate(m_p, nNewSize) ); + if ( p == 0 ) + { + ATL::AtlThrowImpl( ((HRESULT)0x8007000EL) ); + } + m_p = p; + } + + __declspec( noinline ) void FreeHeap() throw() + { + Allocator::Free( m_p ); + } + +private: + T* m_p; + BYTE m_abFixedBuffer[t_nFixedBytes]; +}; + + + + +namespace _ATL_SAFE_ALLOCA_IMPL +{ +# 634 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h" +__declspec(noinline) inline bool _AtlVerifyStackAvailable( SIZE_T Size) +{ + bool bStackAvailable = true; + + __try + { + SIZE_T size=0; + HRESULT hrAdd=::ATL::AtlAdd(&size, Size, static_cast(0x2000)); + if((((HRESULT)(hrAdd)) < 0)) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h", 644, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + bStackAvailable = false; + } + else + { + PVOID p = _alloca(size); + (p); + } + } + __except ((((DWORD )0xC00000FDL) == _exception_code()) ? + 1 : + 0) + { + bStackAvailable = false; + + _resetstkoflw(); + + } + return bStackAvailable; +} + + + +template < class Allocator> +class CAtlSafeAllocBufferManager +{ +private : + struct CAtlSafeAllocBufferNode + { + CAtlSafeAllocBufferNode* m_pNext; + + BYTE _pad[4]; +# 687 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlalloc.h" + void* GetData() + { + return (this + 1); + } + }; + + CAtlSafeAllocBufferNode* m_pHead; +public : + + CAtlSafeAllocBufferManager() : m_pHead(0) + { + } + void* Allocate( SIZE_T nRequestedSize) + { + CAtlSafeAllocBufferNode *p = (CAtlSafeAllocBufferNode*)Allocator::Allocate(::ATL::AtlAddThrow(nRequestedSize, static_cast(sizeof(CAtlSafeAllocBufferNode)))); + if (p == 0) + return 0; + + + p->m_pNext = m_pHead; + m_pHead = p; + + return p->GetData(); + } + ~CAtlSafeAllocBufferManager() + { + + while (m_pHead != 0) + { + CAtlSafeAllocBufferNode* p = m_pHead; + m_pHead = m_pHead->m_pNext; + Allocator::Free(p); + } + } +}; + +} + +} +#pragma pack(pop) +# 28 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" 2 +# 88 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +inline void* __stdcall InterlockedExchangePointer( + void** pp, + void* pNew) throw() +{ + return( reinterpret_cast(static_cast( + ::_InterlockedExchange(reinterpret_cast(pp), + static_cast(reinterpret_cast(pNew))))) ); +} + + + + +#pragma pack(push,8) +namespace ATL +{ + +inline UINT __stdcall _AtlGetConversionACP() throw() +{ + + + + return 3; + +} + +template +inline void AtlConvAllocMemory( + _CharType** ppBuff, + int nLength, + _CharType* pszFixedBuffer, + int nFixedBufferLength) +{ + do { int __atl_condVal=!!(ppBuff != 0); do { (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 120, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); ; } +# 120 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma warning(suppress: 4127) +# 120 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" + while (0); if(!(__atl_condVal)) ATL::AtlThrowImpl(((HRESULT)0x80070057L)); } +# 120 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma warning(suppress: 4127) +# 120 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" + while (0); + do { int __atl_condVal=!!(nLength >= 0); do { (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 121, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); ; } +# 121 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma warning(suppress: 4127) +# 121 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" + while (0); if(!(__atl_condVal)) ATL::AtlThrowImpl(((HRESULT)0x80070057L)); } +# 121 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma warning(suppress: 4127) +# 121 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" + while (0); + do { int __atl_condVal=!!(pszFixedBuffer != 0); do { (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 122, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); ; } +# 122 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma warning(suppress: 4127) +# 122 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" + while (0); if(!(__atl_condVal)) ATL::AtlThrowImpl(((HRESULT)0x80070057L)); } +# 122 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma warning(suppress: 4127) +# 122 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" + while (0); + + + if (*ppBuff != pszFixedBuffer) + { + if( nLength > nFixedBufferLength ) + { + _CharType* ppReallocBuf = static_cast< _CharType* >( _recalloc(*ppBuff, nLength,sizeof( _CharType ) ) ); + if (ppReallocBuf == 0) + { + ATL::AtlThrowImpl( ((HRESULT)0x8007000EL) ); + } + *ppBuff = ppReallocBuf; + } else + { + free(*ppBuff); + *ppBuff=pszFixedBuffer; + } + + } else + { + if( nLength > nFixedBufferLength ) + { + *ppBuff = static_cast< _CharType* >( calloc(nLength,sizeof( _CharType ) ) ); + } else + { + *ppBuff=pszFixedBuffer; + } + } + + if (*ppBuff == 0) + { + ATL::AtlThrowImpl( ((HRESULT)0x8007000EL) ); + } +} + +template +inline void AtlConvFreeMemory( + _CharType* pBuff, + _CharType* pszFixedBuffer, + int nFixedBufferLength) +{ + (nFixedBufferLength); + if( pBuff != pszFixedBuffer ) + { + free( pBuff ); + } + + else + { + memset(pszFixedBuffer,0xFE,nFixedBufferLength*sizeof(_CharType)); + } + +} + +template< int t_nBufferLength = 128 > +class CW2WEX +{ +public: + CW2WEX( LPCWSTR psz) throw(...) : + m_psz( m_szBuffer ) + { + Init( psz ); + } + CW2WEX( + LPCWSTR psz, + UINT nCodePage) throw(...) : + m_psz( m_szBuffer ) + { + (void)nCodePage; + + Init( psz ); + } + ~CW2WEX() throw() + { + AtlConvFreeMemory(m_psz,m_szBuffer,t_nBufferLength); + } + + operator LPWSTR() const throw() + { + return( m_psz ); + } + +private: + void Init( LPCWSTR psz) throw(...) + { + if (psz == 0) + { + m_psz = 0; + return; + } + int nLength = static_cast(wcslen( psz ))+1; + AtlConvAllocMemory(&m_psz,nLength,m_szBuffer,t_nBufferLength); + do { (void)( (!!((m_psz != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 215, 0, L"%ls", L"m_psz != 0")) || (__debugbreak(), 0) ); ; } +# 215 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma warning(suppress: 4127) +# 215 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" + while (0); + Checked::memcpy_s( m_psz, nLength*sizeof( wchar_t ), psz, nLength*sizeof( wchar_t )); + } + +public: + LPWSTR m_psz; + wchar_t m_szBuffer[t_nBufferLength]; + +private: + CW2WEX( const CW2WEX&) throw(); + CW2WEX& operator=( const CW2WEX&) throw(); +}; +typedef CW2WEX<> CW2W; + +template< int t_nBufferLength = 128 > +class CA2AEX +{ +public: + CA2AEX( LPCSTR psz) throw(...) : + m_psz( m_szBuffer ) + { + Init( psz ); + } + CA2AEX( + LPCSTR psz, + UINT nCodePage) throw(...) : + m_psz( m_szBuffer ) + { + (void)nCodePage; + + Init( psz ); + } + ~CA2AEX() throw() + { + AtlConvFreeMemory(m_psz,m_szBuffer,t_nBufferLength); + } + + operator LPSTR() const throw() + { + return( m_psz ); + } + +private: + void Init( LPCSTR psz) throw(...) + { + if (psz == 0) + { + m_psz = 0; + return; + } + int nLength = static_cast(strlen( psz ))+1; + AtlConvAllocMemory(&m_psz,nLength,m_szBuffer,t_nBufferLength); + Checked::memcpy_s( m_psz, nLength*sizeof( char ), psz, nLength*sizeof( char )); + } + +public: + LPSTR m_psz; + char m_szBuffer[t_nBufferLength]; + +private: + CA2AEX( const CA2AEX&) throw(); + CA2AEX& operator=( const CA2AEX&) throw(); +}; +typedef CA2AEX<> CA2A; + +template< int t_nBufferLength = 128 > +class CA2CAEX +{ +public: + CA2CAEX( LPCSTR psz) throw(...) : + m_psz( psz ) + { + } + CA2CAEX( + LPCSTR psz, + UINT nCodePage) throw(...) : + m_psz( psz ) + { + (void)nCodePage; + } + ~CA2CAEX() throw() + { + } + + operator LPCSTR() const throw() + { + return( m_psz ); + } + +public: + LPCSTR m_psz; + +private: + CA2CAEX( const CA2CAEX&) throw(); + CA2CAEX& operator=( const CA2CAEX&) throw(); +}; +typedef CA2CAEX<> CA2CA; + +template< int t_nBufferLength = 128 > +class CW2CWEX +{ +public: + CW2CWEX( LPCWSTR psz) throw(...) : + m_psz( psz ) + { + } + CW2CWEX( + LPCWSTR psz, + UINT nCodePage) throw(...) : + m_psz( psz ) + { + (nCodePage); + } + ~CW2CWEX() throw() + { + } + + operator LPCWSTR() const throw() + { + return( m_psz ); + } + +public: + LPCWSTR m_psz; + +private: + CW2CWEX( const CW2CWEX&) throw(); + CW2CWEX& operator=( const CW2CWEX&) throw(); +}; +typedef CW2CWEX<> CW2CW; + +template< int t_nBufferLength = 128 > +class CA2WEX +{ +public: + CA2WEX( LPCSTR psz) throw(...) : + m_psz( m_szBuffer ) + { + Init( psz, _AtlGetConversionACP() ); + } + CA2WEX( + LPCSTR psz, + UINT nCodePage) throw(...) : + m_psz( m_szBuffer ) + { + Init( psz, nCodePage ); + } + ~CA2WEX() throw() + { + AtlConvFreeMemory(m_psz,m_szBuffer,t_nBufferLength); + } + + operator LPWSTR() const throw() + { + return( m_psz ); + } + +private: + void Init( + LPCSTR psz, + UINT nCodePage) throw(...) + { + if (psz == 0) + { + m_psz = 0; + return; + } + int nLengthA = static_cast(strlen( psz ))+1; + int nLengthW = nLengthA; + + AtlConvAllocMemory(&m_psz,nLengthW,m_szBuffer,t_nBufferLength); + + BOOL bFailed=(0 == ::MultiByteToWideChar( nCodePage, 0, psz, nLengthA, m_psz, nLengthW ) ); + if (bFailed) + { + if (GetLastError()==122L) + { + nLengthW = ::MultiByteToWideChar( nCodePage, 0, psz, nLengthA, 0, 0); +#pragma warning(push) +# 393 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma warning(disable: 6102) + AtlConvAllocMemory(&m_psz,nLengthW,m_szBuffer,t_nBufferLength); +#pragma warning(pop) + bFailed=(0 == ::MultiByteToWideChar( nCodePage, 0, psz, nLengthA, m_psz, nLengthW ) ); + } + } + if (bFailed) + { + AtlConvFreeMemory(m_psz, m_szBuffer, t_nBufferLength); + AtlThrowLastWin32(); + } + } + +public: + LPWSTR m_psz; + wchar_t m_szBuffer[t_nBufferLength]; + +private: + CA2WEX( const CA2WEX&) throw(); + CA2WEX& operator=( const CA2WEX&) throw(); +}; +typedef CA2WEX<> CA2W; + +template< int t_nBufferLength = 128 > +class CW2AEX +{ +public: + CW2AEX( LPCWSTR psz) throw(...) : + m_psz( m_szBuffer ) + { + Init( psz, _AtlGetConversionACP() ); + } + CW2AEX( + LPCWSTR psz, + UINT nCodePage) throw(...) : + m_psz( m_szBuffer ) + { + Init( psz, nCodePage ); + } + ~CW2AEX() throw() + { + AtlConvFreeMemory(m_psz,m_szBuffer,t_nBufferLength); + } + + operator LPSTR() const throw() + { + return( m_psz ); + } + +private: + void Init( + LPCWSTR psz, + UINT nConvertCodePage) throw(...) + { + if (psz == 0) + { + m_psz = 0; + return; + } + int nLengthW = static_cast(wcslen( psz ))+1; + int nLengthA = nLengthW*4; + + AtlConvAllocMemory(&m_psz,nLengthA,m_szBuffer,t_nBufferLength); + + BOOL bFailed=(0 == ::WideCharToMultiByte( nConvertCodePage, 0, psz, nLengthW, m_psz, nLengthA, 0, 0 )); + if (bFailed) + { + if (GetLastError()==122L) + { + nLengthA = ::WideCharToMultiByte( nConvertCodePage, 0, psz, nLengthW, 0, 0, 0, 0 ); +#pragma warning(push) +# 463 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma warning(disable: 6102) + AtlConvAllocMemory(&m_psz,nLengthA,m_szBuffer,t_nBufferLength); +#pragma warning(pop) + bFailed=(0 == ::WideCharToMultiByte( nConvertCodePage, 0, psz, nLengthW, m_psz, nLengthA, 0, 0 )); + } + } + if (bFailed) + { + AtlConvFreeMemory(m_psz, m_szBuffer, t_nBufferLength); + AtlThrowLastWin32(); + } + } + +public: + LPSTR m_psz; + char m_szBuffer[t_nBufferLength]; + +private: + CW2AEX( const CW2AEX&) throw(); + CW2AEX& operator=( const CW2AEX&) throw(); +}; +typedef CW2AEX<> CW2A; +# 537 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +}; +#pragma pack(pop) + +#pragma pack(push,8) +# 559 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" + __declspec(nothrow) LPDEVMODEA __stdcall AtlDevModeW2A( LPDEVMODEA lpDevModeA, const DEVMODEW* lpDevModeW); + + + + +#pragma warning(push) +# 564 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma warning(disable: 6054) + inline LPWSTR __stdcall AtlA2WHelper( + LPWSTR lpw, + LPCSTR lpa, + int nChars, + UINT acp) throw() +{ + (void)( (!!((lpa != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 571, 0, L"%ls", L"lpa != 0")) || (__debugbreak(), 0) ); + (void)( (!!((lpw != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 572, 0, L"%ls", L"lpw != 0")) || (__debugbreak(), 0) ); + if (lpw == 0 || lpa == 0) + return 0; + + + + *lpw = '\0'; + int ret = MultiByteToWideChar(acp, 0, lpa, -1, lpw, nChars); + if(ret == 0) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 582, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + return lpw; +} +#pragma warning(pop) + +#pragma warning(push) +# 589 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma warning(disable: 6054) + inline LPSTR __stdcall AtlW2AHelper( + LPSTR lpa, + LPCWSTR lpw, + int nChars, + UINT acp) throw() +{ + (void)( (!!((lpw != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 596, 0, L"%ls", L"lpw != 0")) || (__debugbreak(), 0) ); + (void)( (!!((lpa != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 597, 0, L"%ls", L"lpa != 0")) || (__debugbreak(), 0) ); + if (lpa == 0 || lpw == 0) + return 0; + + + + *lpa = '\0'; + int ret = WideCharToMultiByte(acp, 0, lpw, -1, lpa, nChars, 0, 0); + if(ret == 0) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 607, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + return lpa; +} +#pragma warning(pop) + + inline LPWSTR __stdcall AtlA2WHelper( + LPWSTR lpw, + LPCSTR lpa, + int nChars) throw() +{ + return AtlA2WHelper(lpw, lpa, nChars, 0); +} + + inline LPSTR __stdcall AtlW2AHelper( + LPSTR lpa, + LPCWSTR lpw, + int nChars) throw() +{ + return AtlW2AHelper(lpa, lpw, nChars, 0); +} +# 737 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +inline int ocslen( LPCOLESTR x) throw() +{ + if (x == 0) + { + return 0; + } + + return static_cast(wcslen(x)); +} + +#pragma warning(push) +# 747 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma warning(disable: 6054) +inline bool ocscpy_s( + LPOLESTR dest, + size_t maxSize, + LPCOLESTR src) throw() +{ + return 0 == memcpy_s(dest, maxSize*sizeof(WCHAR), src, (ocslen(src)+1)*sizeof(WCHAR)); +} +#pragma warning(pop) + +inline bool ocscat_s( + LPOLESTR dest, + size_t maxSize, + LPCOLESTR src) throw() +{ + return 0 == wcscat_s(dest, maxSize,src); +} + + + + + +__declspec(deprecated("ocscpy is not safe. Intead, use ocscpy_s")) +inline OLECHAR* ocscpy( + LPOLESTR dest, + LPCOLESTR src) throw() +{ +#pragma warning(push) +#pragma warning(disable: 4996 28719) + return wcscpy(dest, src); +#pragma warning(pop) +} + +__declspec(deprecated("ocscat is not safe. Intead, use ocscat_s")) +inline OLECHAR* ocscat( + LPOLESTR dest, + LPCOLESTR src) throw() +{ +#pragma warning(push) +#pragma warning(disable: 4996 28719) + return wcscat(dest, src); +#pragma warning(pop) +} + + inline LPCOLESTR T2COLE_EX( + LPCTSTR lp, + UINT) +{ + return lp; +} + inline LPCOLESTR T2COLE_EX_DEF( LPCTSTR lp) +{ + return lp; +} + inline LPCTSTR OLE2CT_EX( + LPCOLESTR lp, + UINT) +{ + return lp; +} + inline LPCTSTR OLE2CT_EX_DEF( LPCOLESTR lp) +{ + return lp; +} + inline LPOLESTR T2OLE_EX( + LPTSTR lp, + UINT) +{ + return lp; +} + inline LPOLESTR T2OLE_EX_DEF( LPTSTR lp) +{ + return lp; +} + inline LPTSTR OLE2T_EX( + LPOLESTR lp, + UINT) +{ + return lp; +} + inline LPTSTR OLE2T_EX_DEF( LPOLESTR lp) +{ + return lp; +} + + + + inline LPCOLESTR T2COLE( LPCTSTR lp) +{ + return lp; +} + inline LPCTSTR OLE2CT( LPCOLESTR lp) +{ + return lp; +} + inline LPOLESTR T2OLE( LPTSTR lp) +{ + return lp; +} + inline LPTSTR OLE2T( LPOLESTR lp) +{ + return lp; +} +# 897 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" + inline LPOLESTR W2OLE_EX( + LPWSTR lp, + UINT) +{ + return lp; +} + inline LPOLESTR W2OLE_EX_DEF( LPWSTR lp) +{ + return lp; +} + inline LPWSTR OLE2W_EX( + LPOLESTR lp, + UINT) +{ + return lp; +} + inline LPWSTR OLE2W_EX_DEF( LPOLESTR lp) +{ + return lp; +} + + + + + + + inline LPCOLESTR W2COLE_EX( + LPCWSTR lp, + UINT) +{ + return lp; +} + inline LPCOLESTR W2COLE_EX_DEF( LPCWSTR lp) +{ + return lp; +} + inline LPCWSTR OLE2CW_EX( + LPCOLESTR lp, + UINT) +{ + return lp; +} + inline LPCWSTR OLE2CW_EX_DEF( LPCOLESTR lp) +{ + return lp; +} +# 951 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" + inline LPOLESTR W2OLE( LPWSTR lp) +{ + return lp; +} + inline LPWSTR OLE2W( LPOLESTR lp) +{ + return lp; +} + + + + + inline LPCOLESTR W2COLE( LPCWSTR lp) +{ + return lp; +} + inline LPCWSTR OLE2CW( LPCOLESTR lp) +{ + return lp; +} +# 984 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" + inline LPWSTR T2W_EX( + LPTSTR lp, + UINT) +{ + return lp; +} + inline LPWSTR T2W_EX_DEF( LPTSTR lp) +{ + return lp; +} + inline LPTSTR W2T_EX( + LPWSTR lp, + UINT) +{ + return lp; +} + inline LPTSTR W2T_DEF( LPWSTR lp) +{ + return lp; +} + + + + + + + inline LPCWSTR T2CW_EX( + LPCTSTR lp, + UINT) +{ + return lp; +} + inline LPCWSTR T2CW_EX_DEF( LPCTSTR lp) +{ + return lp; +} + inline LPCTSTR W2CT_EX( + LPCWSTR lp, + UINT) +{ + return lp; +} + inline LPCTSTR W2CT_EX_DEF( LPCWSTR lp) +{ + return lp; +} + + + + + + + inline LPWSTR T2W( LPTSTR lp) +{ + return lp; +} + inline LPTSTR W2T( LPWSTR lp) +{ + return lp; +} + + + + + inline LPCWSTR T2CW( LPCTSTR lp) +{ + return lp; +} + inline LPCTSTR W2CT( LPCWSTR lp) +{ + return lp; +} +# 1140 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma warning(push) +# 1140 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma warning(disable: 6103) + inline BSTR A2WBSTR( + LPCSTR lp, + int nLen = -1) +{ + if (lp == 0 || nLen == 0) + return 0; + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + BSTR str = 0; + + int nConvertedLen = MultiByteToWideChar(_acp_ex, 0, lp, nLen, 0, 0); + + int nAllocLen = nConvertedLen; + if (nLen == -1) + nAllocLen -= 1; + str = ::SysAllocStringLen(0, nAllocLen); + + if (str != 0) + { + int nResult; + nResult = MultiByteToWideChar(_acp_ex, 0, lp, nLen, str, nConvertedLen); + (void)( (!!((nResult == nConvertedLen))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 1161, 0, L"%ls", L"nResult == nConvertedLen")) || (__debugbreak(), 0) ); + if (nResult != nConvertedLen) + { +#pragma warning(push) +# 1164 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma warning(disable: 6102) + SysFreeString(str); +#pragma warning(pop) + return 0; + } + + } + return str; +} +#pragma warning(pop) + + inline BSTR OLE2BSTR( LPCOLESTR lp) +{ + return ::SysAllocString(lp); +} + + + inline BSTR T2BSTR_EX( LPCTSTR lp) +{ + return ::SysAllocString(lp); +} + inline BSTR A2BSTR_EX( LPCSTR lp) +{ + return A2WBSTR(lp); +} + inline BSTR W2BSTR_EX( LPCWSTR lp) +{ + return ::SysAllocString(lp); +} + + + + inline BSTR T2BSTR( LPCTSTR lp) +{ + return ::SysAllocString(lp); +} + inline BSTR A2BSTR( LPCSTR lp) +{ + return A2WBSTR(lp); +} + inline BSTR W2BSTR( LPCWSTR lp) +{ + return ::SysAllocString(lp); +} +# 1247 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +inline LPDEVMODEW AtlDevModeA2W( + LPDEVMODEW lpDevModeW, + const DEVMODEA* lpDevModeA) +{ + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + (void)( (!!((lpDevModeW != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 1252, 0, L"%ls", L"lpDevModeW != 0")) || (__debugbreak(), 0) ); + if (lpDevModeA == 0 || lpDevModeW == 0) + { + return 0; + } + + AtlA2WHelper(lpDevModeW->dmDeviceName, (LPCSTR)lpDevModeA->dmDeviceName, 32, _acp_ex); + + if(0 != memcpy_s(&lpDevModeW->dmSpecVersion, ((size_t)&reinterpret_cast((((DEVMODEW*)0)->dmFormName))) - ((size_t)&reinterpret_cast((((DEVMODEW*)0)->dmSpecVersion))), + &lpDevModeA->dmSpecVersion, ((size_t)&reinterpret_cast((((DEVMODEW*)0)->dmFormName))) - ((size_t)&reinterpret_cast((((DEVMODEW*)0)->dmSpecVersion))))) + { + return 0; + } + + AtlA2WHelper(lpDevModeW->dmFormName, (LPCSTR)lpDevModeA->dmFormName, 32, _acp_ex); + + if(0 != memcpy_s(&lpDevModeW->dmLogPixels, sizeof(DEVMODEW) - ((size_t)&reinterpret_cast((((DEVMODEW*)0)->dmLogPixels))), + &lpDevModeA->dmLogPixels, sizeof(DEVMODEW) - ((size_t)&reinterpret_cast((((DEVMODEW*)0)->dmLogPixels))))) + { + return 0; + } + + if (lpDevModeA->dmDriverExtra != 0) + { + +#pragma warning(push) +#pragma warning(disable: 26000) + if(0 != memcpy_s(lpDevModeW+1, lpDevModeA->dmDriverExtra, lpDevModeA+1, lpDevModeA->dmDriverExtra)) + { + return 0; + } +#pragma warning(pop) + } + lpDevModeW->dmSize = sizeof(DEVMODEW); + return lpDevModeW; +} + +inline LPTEXTMETRICW AtlTextMetricA2W( + LPTEXTMETRICW lptmW, + LPTEXTMETRICA lptmA) +{ + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + (void)( (!!((lptmW != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 1294, 0, L"%ls", L"lptmW != 0")) || (__debugbreak(), 0) ); + if (lptmA == 0 || lptmW == 0) + return 0; + + if(0 != memcpy_s(lptmW, sizeof(LONG) * 11, lptmA, sizeof(LONG) * 11)) + { + return 0; + } + + if(0 != memcpy_s(&lptmW->tmItalic, sizeof(BYTE) * 5, &lptmA->tmItalic, sizeof(BYTE) * 5)) + { + return 0; + } + + if(MultiByteToWideChar(_acp_ex, 0, (LPCSTR)&lptmA->tmFirstChar, 1, &lptmW->tmFirstChar, 1) == 0) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 1310, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + + if(MultiByteToWideChar(_acp_ex, 0, (LPCSTR)&lptmA->tmLastChar, 1, &lptmW->tmLastChar, 1) == 0) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 1316, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + + if(MultiByteToWideChar(_acp_ex, 0, (LPCSTR)&lptmA->tmDefaultChar, 1, &lptmW->tmDefaultChar, 1)== 0) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 1322, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + + if(MultiByteToWideChar(_acp_ex, 0, (LPCSTR)&lptmA->tmBreakChar, 1, &lptmW->tmBreakChar, 1) == 0) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 1328, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + + return lptmW; +} + +inline LPTEXTMETRICA AtlTextMetricW2A( + LPTEXTMETRICA lptmA, + LPTEXTMETRICW lptmW) +{ + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + (void)( (!!((lptmA != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 1340, 0, L"%ls", L"lptmA != 0")) || (__debugbreak(), 0) ); + if (lptmW == 0 || lptmA == 0) + { + return 0; + } + + if(0 != memcpy_s(lptmA, sizeof(LONG) * 11, lptmW, sizeof(LONG) * 11)) + { + return 0; + } + + if(0 != memcpy_s(&lptmA->tmItalic, sizeof(BYTE) * 5, &lptmW->tmItalic, sizeof(BYTE) * 5)) + { + return 0; + } + + if(WideCharToMultiByte(_acp_ex, 0, &lptmW->tmFirstChar, 1, (LPSTR)&lptmA->tmFirstChar, 1, 0, 0) == 0) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 1358, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + + if(WideCharToMultiByte(_acp_ex, 0, &lptmW->tmLastChar, 1, (LPSTR)&lptmA->tmLastChar, 1, 0, 0) == 0) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 1364, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + + if(WideCharToMultiByte(_acp_ex, 0, &lptmW->tmDefaultChar, 1, (LPSTR)&lptmA->tmDefaultChar, 1, 0, 0) == 0) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 1370, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + + if(WideCharToMultiByte(_acp_ex, 0, &lptmW->tmBreakChar, 1, (LPSTR)&lptmA->tmBreakChar, 1, 0, 0) == 0) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 1376, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + + return lptmA; +} +# 1420 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +inline LPDEVMODEW DEVMODEOLE2T_EX( LPDEVMODEW lp) +{ + return lp; +} +inline LPDEVMODEW DEVMODET2OLE_EX( LPDEVMODEW lp) +{ + return lp; +} +inline LPTEXTMETRICW TEXTMETRICOLE2T_EX( LPTEXTMETRICW lp) +{ + return lp; +} +inline LPTEXTMETRICW TEXTMETRICT2OLE_EX( LPTEXTMETRICW lp) +{ + return lp; +} + + +inline LPDEVMODEW DEVMODEOLE2T( LPDEVMODEW lp) +{ + return lp; +} +inline LPDEVMODEW DEVMODET2OLE( LPDEVMODEW lp) +{ + return lp; +} +inline LPTEXTMETRICW TEXTMETRICOLE2T( LPTEXTMETRICW lp) +{ + return lp; +} +inline LPTEXTMETRICW TEXTMETRICT2OLE( LPTEXTMETRICW lp) +{ + return lp; +} +# 1476 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h" +#pragma pack(pop) + + + + + +inline __declspec(nothrow) LPDEVMODEA __stdcall AtlDevModeW2A( + LPDEVMODEA lpDevModeA, + const DEVMODEW* lpDevModeW) +{ + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + (void)( (!!((lpDevModeA != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlconv.h", 1487, 0, L"%ls", L"lpDevModeA != 0")) || (__debugbreak(), 0) ); + if (lpDevModeW == 0 || lpDevModeA == 0) + return 0; + + AtlW2AHelper((LPSTR)lpDevModeA->dmDeviceName, lpDevModeW->dmDeviceName, 32, _acp_ex); + + if(0 != memcpy_s(&lpDevModeA->dmSpecVersion, ((size_t)&reinterpret_cast((((DEVMODEA*)0)->dmFormName))) - ((size_t)&reinterpret_cast((((DEVMODEA*)0)->dmSpecVersion))), + &lpDevModeW->dmSpecVersion, ((size_t)&reinterpret_cast((((DEVMODEA*)0)->dmFormName))) - ((size_t)&reinterpret_cast((((DEVMODEA*)0)->dmSpecVersion))))) + { + return 0; + } + + AtlW2AHelper((LPSTR)lpDevModeA->dmFormName, lpDevModeW->dmFormName, 32, _acp_ex); + + if(0 != memcpy_s(&lpDevModeA->dmLogPixels, sizeof(DEVMODEA) - ((size_t)&reinterpret_cast((((DEVMODEA*)0)->dmLogPixels))), + &lpDevModeW->dmLogPixels, sizeof(DEVMODEA) - ((size_t)&reinterpret_cast((((DEVMODEA*)0)->dmLogPixels))))) + { + return 0; + } + + if (lpDevModeW->dmDriverExtra != 0) + { + +#pragma warning(push) +#pragma warning(disable: 26000) + if(0 != memcpy_s(lpDevModeA+1, lpDevModeW->dmDriverExtra, lpDevModeW+1, lpDevModeW->dmDriverExtra)) + { + return 0; + } +#pragma warning(pop) + } + + lpDevModeA->dmSize = sizeof(DEVMODEA); + return lpDevModeA; +} + + + + +#pragma warning(pop) +# 17 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltrace.h" 2 +# 29 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltrace.h" +#pragma pack(push,8) +namespace ATL +{ + +template +class CTraceCategoryEx +{ +public: + enum { + TraceGeneral = 0x000001, + TraceCom = 0x000002, + TraceQI = 0x000004, + TraceRegistrar = 0x000008, + TraceRefcount = 0x000010, + TraceWindowing = 0x000020, + TraceControls = 0x000040, + TraceHosting = 0x000080, + TraceDBClient = 0x000100, + TraceDBProvider = 0x000200, + TraceSnapin = 0x000400, + TraceNotImpl = 0x000800, + TraceAllocation = 0x001000, + TraceException = 0x002000, + TraceTime = 0x004000, + TraceCache = 0x008000, + TraceStencil = 0x010000, + TraceString = 0x020000, + TraceMap = 0x040000, + TraceUtil = 0x080000, + TraceSecurity = 0x100000, + TraceSync = 0x200000, + TraceISAPI = 0x400000, + TraceUser = 0x80000 + } TraceCategories; + + explicit CTraceCategoryEx( LPCTSTR pszCategoryName = nullptr) throw(); + + + static unsigned int GetLevel() throw() + { + return traceLevel; + } + + static unsigned int GetCategory() + { + return traceCategory; + } + + + operator unsigned int() throw() + { + + return traceCategory; + + + + } +}; + + +class CTraceCategory : public CTraceCategoryEx<> +{ +public: + CTraceCategory( LPCTSTR pszCategoryName = nullptr) : CTraceCategoryEx(pszCategoryName) + { + } +}; + +__declspec(selectany) CTraceCategoryEx::TraceGeneral> atlTraceGeneral(L"atlTraceGeneral"); +__declspec(selectany) CTraceCategoryEx::TraceCom> atlTraceCOM(L"atlTraceCOM"); +__declspec(selectany) CTraceCategoryEx::TraceQI> atlTraceQI(L"atlTraceQI"); +__declspec(selectany) CTraceCategoryEx::TraceRegistrar> atlTraceRegistrar(L"atlTraceRegistrar"); +__declspec(selectany) CTraceCategoryEx::TraceRefcount> atlTraceRefcount(L"atlTraceRefcount"); +__declspec(selectany) CTraceCategoryEx::TraceWindowing> atlTraceWindowing(L"atlTraceWindowing"); +__declspec(selectany) CTraceCategoryEx::TraceControls> atlTraceControls(L"atlTraceControls"); +__declspec(selectany) CTraceCategoryEx::TraceHosting> atlTraceHosting(L"atlTraceHosting"); +__declspec(selectany) CTraceCategoryEx::TraceDBClient> atlTraceDBClient(L"atlTraceDBClient"); +__declspec(selectany) CTraceCategoryEx::TraceDBProvider> atlTraceDBProvider(L"atlTraceDBProvider"); +__declspec(selectany) CTraceCategoryEx::TraceSnapin> atlTraceSnapin(L"atlTraceSnapin"); +__declspec(selectany) CTraceCategoryEx::TraceNotImpl> atlTraceNotImpl(L"atlTraceNotImpl"); +__declspec(selectany) CTraceCategoryEx::TraceAllocation> atlTraceAllocation(L"atlTraceAllocation"); +__declspec(selectany) CTraceCategoryEx::TraceException> atlTraceException(L"atlTraceException"); +__declspec(selectany) CTraceCategoryEx::TraceTime> atlTraceTime(L"atlTraceTime"); +__declspec(selectany) CTraceCategoryEx::TraceCache> atlTraceCache(L"atlTraceCache"); +__declspec(selectany) CTraceCategoryEx::TraceStencil> atlTraceStencil(L"atlTraceStencil"); +__declspec(selectany) CTraceCategoryEx::TraceString> atlTraceString(L"atlTraceString"); +__declspec(selectany) CTraceCategoryEx::TraceMap> atlTraceMap(L"atlTraceMap"); +__declspec(selectany) CTraceCategoryEx::TraceUtil> atlTraceUtil(L"atlTraceUtil"); +__declspec(selectany) CTraceCategoryEx::TraceSecurity> atlTraceSecurity(L"atlTraceSecurity"); +__declspec(selectany) CTraceCategoryEx::TraceSync> atlTraceSync(L"atlTraceSync"); +__declspec(selectany) CTraceCategoryEx::TraceISAPI> atlTraceISAPI(L"atlTraceISAPI"); + + + +class CTrace +{ +private: + static errno_t BeginErrorCheck() + { + return (*_errno()); + } + + static wchar_t* GetCategoryName(unsigned int nCategory) + { + for(unsigned int i = 0; i < m_nLastCategory; i++) + { + if (m_nMap[i].nCategory == nCategory) + { + return m_nMap[i].categryName; + } + } + + return nullptr; + } + + static void __cdecl TraceV( + const char *pszFileName, + int nLine, + unsigned int dwCategory, + unsigned int nLevel, + LPCWSTR pwszMessage) + { + if (CTrace::m_nLevel == CTrace::DisableTracing || CTrace::m_nLevel < nLevel || (CTrace::m_nCategory & dwCategory) == 0) + { + return; + } + + wchar_t wszCategory[TraceBufferSize] = {'\0'}; + int categoryLength = 0; + const wchar_t *const pwszCategoryName = GetCategoryName(dwCategory); + if (pwszCategoryName != nullptr) + { + if ((categoryLength = swprintf_s(wszCategory, TraceBufferSize, L"%ls - ", pwszCategoryName)) == -1) + { + return; + } + } + else + { + if ((categoryLength = swprintf_s(wszCategory, TraceBufferSize, L"%u - ", dwCategory)) == -1) + { + return; + } + } + + int chCount = (int)wcslen(pwszMessage) + categoryLength + 1; + CHeapPtr wszBuf; + if (!wszBuf.Allocate(chCount)) + { + return; + } + + wszBuf[0] = '\0'; + + if (swprintf_s(wszBuf, chCount, L"%ls%ls", wszCategory, pwszMessage) == -1) + { + return; + } + + wchar_t fileName[260] = {'\0'}; + + + + if (swprintf_s(fileName, 260, L"%hs", pszFileName) == -1) + + { + return; + } + + _CrtDbgReportW(0, fileName, nLine, nullptr, L"%ls", static_cast(wszBuf)); + } + +public: + enum { + DefaultTraceLevel = 0, + MaxLengthOfCategoryName = 0x80, + MaxCategoryArray = sizeof(unsigned int) * 8, + TraceBufferSize = 1024, + DisableTracing = 0xffffffff, + EnableAllCategories = DisableTracing + }; + + static unsigned int GetLevel() + { + return m_nLevel; + } + + static void SetLevel( unsigned int nLevel) + { + m_nLevel = nLevel; + } + + static unsigned int GetCategories() + { + return m_nCategory; + } + + static void SetCategories( unsigned int nCategory) + { + m_nCategory = nCategory; + } + + static void __cdecl TraceV( + const char *pszFileName, + int nLine, + unsigned int dwCategory, + unsigned int nLevel, + LPCSTR pszFmt, + va_list args) + { + int cchNeeded = _vscprintf(pszFmt, args); + if (cchNeeded < 0) + { + return; + } + + CHeapPtr szBuf; + if (!szBuf.Allocate(cchNeeded + 1)) + { + return; + } + + szBuf[0] = '\0'; + + if (_vsnprintf_s(szBuf, cchNeeded + 1, cchNeeded, pszFmt, args) == -1) + { + return; + } + + CHeapPtr wszBuf; + if (!wszBuf.Allocate(cchNeeded + 1)) + { + return; + } + + wszBuf[0] = '\0'; + + if (::MultiByteToWideChar(0, 0, szBuf, -1, wszBuf, cchNeeded + 1) == 0) + { + return; + } + + TraceV(pszFileName, nLine, dwCategory, nLevel, wszBuf); + } + + static void __cdecl TraceV( + const char *pszFileName, + int nLine, + unsigned int dwCategory, + unsigned int nLevel, + LPCWSTR pwszFmt, + va_list args) + { + + + + + + + + int cchNeeded = __stdio_common_vswprintf( + (*__local_stdio_printf_options()) | + (1ULL << 1) | + (1ULL << 2), + 0, 0, pwszFmt, 0, args); + + if (cchNeeded < 0) + { + return; + } + + CHeapPtr wszBuf; + if (!wszBuf.Allocate(cchNeeded + 1)) + { + return; + } + + wszBuf[0] = '\0'; +# 315 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltrace.h" + int const vsnwprintf_result = __stdio_common_vsnwprintf_s( + (*__local_stdio_printf_options()) | + (1ULL << 2), + wszBuf, cchNeeded + 1, cchNeeded, pwszFmt, 0, args); + if (vsnwprintf_result < 0) + + { + return; + } + + TraceV(pszFileName, nLine, dwCategory, nLevel, wszBuf); + } + + static void RegisterCategory( LPCTSTR pszCategory, unsigned int nCategory) + { + if (pszCategory == nullptr) + { + return; + } + + if (m_nLastCategory >= MaxCategoryArray) + { + (void)( (!!((false && "Too many categories defined"))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltrace.h", 337, 0, L"%ls", L"false && \"Too many categories defined\"")) || (__debugbreak(), 0) ); + return; + } + + m_nMap[m_nLastCategory].nCategory = nCategory; + + wcscpy_s(m_nMap[m_nLastCategory].categryName, MaxLengthOfCategoryName - 1, pszCategory); +# 354 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltrace.h" + m_nLastCategory++; + } + + static bool IsTracingEnabled( + DWORD_PTR dwCategory, + UINT nLevel) + { + return CTrace::m_nLevel != CTrace::DisableTracing && CTrace::m_nLevel <= nLevel && (CTrace::m_nCategory & dwCategory) != 0; + } +protected: + typedef struct { + unsigned int nCategory; + wchar_t categryName[MaxLengthOfCategoryName]; + } CategoryMap; + + static unsigned int m_nLevel; + static unsigned int m_nCategory; + static unsigned int m_nLastCategory; + static CategoryMap m_nMap[MaxCategoryArray]; +}; + +__declspec(selectany) unsigned int CTrace::m_nLevel = static_cast(CTrace::DefaultTraceLevel); +__declspec(selectany) unsigned int CTrace::m_nCategory = static_cast(CTrace::EnableAllCategories); +__declspec(selectany) unsigned int CTrace::m_nLastCategory = 0; +__declspec(selectany) CTrace::CategoryMap CTrace::m_nMap[CTrace::MaxCategoryArray] = { 0 }; + +inline bool IsTracingEnabled( + DWORD_PTR dwCategory, + UINT nLevel) +{ + return CTrace::IsTracingEnabled(dwCategory, nLevel); +} + +class CPreserveLastError +{ +public: + CPreserveLastError() + { + m_dwLastError = GetLastError(); + } + + ~CPreserveLastError() + { + SetLastError(m_dwLastError); + } + +private: + DWORD m_dwLastError; +}; + +class CTraceFileAndLineInfo +{ +public: + CTraceFileAndLineInfo( + const char *pszFileName, + int nLineNo) + : m_pszFileName(pszFileName), m_nLineNo(nLineNo) + { + } + +#pragma warning(push) +#pragma warning(disable: 4793) + void __cdecl operator()( + int dwCategory, + UINT nLevel, + const char *pszFmt, + ...) const + { + CPreserveLastError ple; + va_list ptr; ((void)(__vcrt_va_start_verify_argument_type(), ((void)(ptr = (va_list)(&const_cast(reinterpret_cast(pszFmt))) + ((sizeof(pszFmt) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + ATL::CTrace::TraceV(m_pszFileName, m_nLineNo, dwCategory, nLevel, pszFmt, ptr); + ((void)(ptr = (va_list)0)); + } +#pragma warning(pop) + +#pragma warning(push) +#pragma warning(disable: 4793) + void __cdecl operator()( + int dwCategory, + UINT nLevel, + const wchar_t *pszFmt, + ...) const + { + CPreserveLastError ple; + va_list ptr; ((void)(__vcrt_va_start_verify_argument_type(), ((void)(ptr = (va_list)(&const_cast(reinterpret_cast(pszFmt))) + ((sizeof(pszFmt) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + ATL::CTrace::TraceV(m_pszFileName, m_nLineNo, dwCategory, nLevel, pszFmt, ptr); + ((void)(ptr = (va_list)0)); + } +#pragma warning(pop) + +#pragma warning(push) +#pragma warning(disable: 4793) + void __cdecl operator()( + const char *pszFmt, + ...) const + { + CPreserveLastError ple; + va_list ptr; ((void)(__vcrt_va_start_verify_argument_type(), ((void)(ptr = (va_list)(&const_cast(reinterpret_cast(pszFmt))) + ((sizeof(pszFmt) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + ATL::CTrace::TraceV(m_pszFileName, m_nLineNo, atlTraceGeneral, 0, pszFmt, ptr); + ((void)(ptr = (va_list)0)); + } +#pragma warning(pop) + +#pragma warning(push) +#pragma warning(disable: 4793) + void __cdecl operator()( + const wchar_t *pszFmt, + ...) const + { + CPreserveLastError ple; + va_list ptr; ((void)(__vcrt_va_start_verify_argument_type(), ((void)(ptr = (va_list)(&const_cast(reinterpret_cast(pszFmt))) + ((sizeof(pszFmt) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + ATL::CTrace::TraceV(m_pszFileName, m_nLineNo, atlTraceGeneral, 0, pszFmt, ptr); + ((void)(ptr = (va_list)0)); + } +#pragma warning(pop) + +private: + + CTraceFileAndLineInfo &__cdecl operator=( const CTraceFileAndLineInfo &right); + + const char *const m_pszFileName; + const int m_nLineNo; +}; + +template +inline CTraceCategoryEx::CTraceCategoryEx( LPCTSTR pszCategoryName) throw() +{ + CTrace::RegisterCategory(pszCategoryName, traceCategory); +} +# 505 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltrace.h" +class CNoUIAssertHook +{ +public: + CNoUIAssertHook() + { + (void)( (!!((s_pfnPrevHook == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltrace.h", 510, 0, L"%ls", L"s_pfnPrevHook == 0")) || (__debugbreak(), 0) ); + s_pfnPrevHook = _CrtSetReportHook(CrtHookProc); + } + ~CNoUIAssertHook() + { + _CrtSetReportHook(s_pfnPrevHook); + s_pfnPrevHook = 0; + } + +private: + static int __cdecl CrtHookProc( + int eReportType, + char* pszMessage, + int* pnRetVal) + { + + if (eReportType == 2) + { + ::OutputDebugStringA( "ASSERTION FAILED\n" ); + ::OutputDebugStringA( pszMessage ); + + if (pnRetVal != 0) + { + *pnRetVal = 1; + } + return 1; + } + + if (s_pfnPrevHook != 0) + { + return s_pfnPrevHook(eReportType, pszMessage, pnRetVal); + } + else + { + return 0; + } + } + +private: + static _CRT_REPORT_HOOK s_pfnPrevHook; +}; + +__declspec( selectany ) _CRT_REPORT_HOOK CNoUIAssertHook::s_pfnPrevHook = 0; +# 563 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltrace.h" +#pragma warning(push) +#pragma warning(disable: 4793) +inline void __cdecl AtlTrace( LPCSTR pszFormat, ...) +{ + CPreserveLastError ple; + va_list ptr; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(ptr = (va_list)(&const_cast(reinterpret_cast(pszFormat))) + ((sizeof(pszFormat) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + ATL::CTrace::TraceV(0, -1, atlTraceGeneral, 0, pszFormat, ptr); + ((void)(ptr = (va_list)0)); +} +#pragma warning(pop) + +#pragma warning(push) +#pragma warning(disable: 4793) +inline void __cdecl AtlTrace( LPCWSTR pszFormat, ...) +{ + CPreserveLastError ple; + va_list ptr; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(ptr = (va_list)(&const_cast(reinterpret_cast(pszFormat))) + ((sizeof(pszFormat) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + ATL::CTrace::TraceV(0, -1, atlTraceGeneral, 0, pszFormat, ptr); + ((void)(ptr = (va_list)0)); +} +#pragma warning(pop) + +#pragma warning(push) +#pragma warning(disable: 4793) +inline void __cdecl AtlTrace2( + int dwCategory, + UINT nLevel, + LPCSTR pszFormat, ...) +{ + CPreserveLastError ple; + va_list ptr; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(ptr = (va_list)(&const_cast(reinterpret_cast(pszFormat))) + ((sizeof(pszFormat) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + ATL::CTrace::TraceV(0, -1, dwCategory, nLevel, pszFormat, ptr); + ((void)(ptr = (va_list)0)); +} +#pragma warning(pop) + +#pragma warning(push) +#pragma warning(disable: 4793) +inline void __cdecl AtlTrace2( + int dwCategory, + UINT nLevel, + LPCWSTR pszFormat, ...) +{ + CPreserveLastError ple; + va_list ptr; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(ptr = (va_list)(&const_cast(reinterpret_cast(pszFormat))) + ((sizeof(pszFormat) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + ATL::CTrace::TraceV(0, -1, dwCategory, nLevel, pszFormat, ptr); + ((void)(ptr = (va_list)0)); +} +#pragma warning(pop) +# 666 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltrace.h" +}; +#pragma pack(pop) +# 17 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlexcept.h" 2 + + + +#pragma pack(push,8) +namespace ATL +{ + + + + +inline void __declspec(noreturn) _AtlRaiseException( + DWORD dwExceptionCode, + DWORD dwExceptionFlags = 0x1) +{ + RaiseException( dwExceptionCode, dwExceptionFlags, 0, 0 ); +} + +class CAtlException +{ +public: + CAtlException() throw() : + m_hr( ((HRESULT)0x80004005L) ) + { + } + + CAtlException( HRESULT hr) throw() : + m_hr( hr ) + { + } + + operator HRESULT() const throw() + { + return( m_hr ); + } + +public: + HRESULT m_hr; +}; +# 64 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlexcept.h" +__declspec( noinline ) __declspec(noreturn) inline void __stdcall AtlThrowImpl( HRESULT hr) +{ + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlexcept.h", 66)(atlTraceException, 0, L"AtlThrow: hr = 0x%x\n", hr ); +# 77 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlexcept.h" + throw CAtlException( hr ); + +}; + + + +__declspec( noinline ) __declspec(noreturn) inline void __stdcall AtlThrowLastWin32() +{ + DWORD dwError = ::GetLastError(); + ATL::AtlThrowImpl( HRESULT_FROM_WIN32( dwError ) ); +} +# 120 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlexcept.h" +}; +#pragma pack(pop) +# 17 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlchecked.h" 2 +# 26 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlchecked.h" +#pragma pack(push,8) +namespace ATL +{ + +inline errno_t AtlCrtErrorCheck( errno_t nError) +{ + switch(nError) + { + case 12: + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + break; + case 22: + case 34: + ATL::AtlThrowImpl(((HRESULT)0x80070057L)); + break; + case 0: + case 80: + break; + default: + ATL::AtlThrowImpl(((HRESULT)0x80004005L)); + break; + } + return nError; +} + + + + +namespace Checked +{ + + + + + + + +inline void __cdecl memcpy_s( + void *_S1, + size_t _S1max, + const void *_S2, + size_t _N) +{ + AtlCrtErrorCheck(::memcpy_s(_S1, _S1max, _S2, _N)); +} + +inline void __cdecl wmemcpy_s( + wchar_t *_S1, + size_t _N1, + const wchar_t *_S2, + size_t _N) +{ + AtlCrtErrorCheck(::wmemcpy_s(_S1, _N1, _S2, _N)); +} + +inline void __cdecl memmove_s( + void *_S1, + size_t _S1max, + const void *_S2, + size_t _N) +{ + AtlCrtErrorCheck(::memmove_s(_S1, _S1max, _S2, _N)); +} + +inline void __cdecl strcpy_s( + char *_S1, + size_t _S1max, + const char *_S2) +{ + AtlCrtErrorCheck(::strcpy_s(_S1, _S1max, _S2)); +} + +inline void __cdecl wcscpy_s( + wchar_t *_S1, + size_t _S1max, + const wchar_t *_S2) +{ + AtlCrtErrorCheck(::wcscpy_s(_S1, _S1max, _S2)); +} + +inline void __cdecl tcscpy_s( + TCHAR * _Dst, + size_t _SizeInChars, + const TCHAR * _Src) +{ + AtlCrtErrorCheck(::wcscpy_s(_Dst, _SizeInChars, _Src)); +} + +inline errno_t __cdecl strncpy_s( + char *_Dest, + size_t _SizeInChars, + const char *_Source, + size_t _Count) +{ + return AtlCrtErrorCheck(::strncpy_s(_Dest, _SizeInChars, _Source,_Count)); +} + +inline errno_t __cdecl wcsncpy_s( + wchar_t *_Dest, + size_t _SizeInChars, + const wchar_t *_Source, + size_t _Count) +{ + return AtlCrtErrorCheck(::wcsncpy_s(_Dest, _SizeInChars, _Source,_Count)); +} + +inline errno_t __cdecl tcsncpy_s( + TCHAR *_Dest, + size_t _SizeInChars, + const TCHAR *_Source, + size_t _Count) +{ + return AtlCrtErrorCheck(::wcsncpy_s(_Dest, _SizeInChars, _Source,_Count)); +} + +inline void __cdecl strcat_s( + char * _Dst, + size_t _SizeInChars, + const char * _Src) +{ + AtlCrtErrorCheck(::strcat_s(_Dst, _SizeInChars, _Src)); +} + +inline void __cdecl wcscat_s( + wchar_t * _Dst, + size_t _SizeInChars, + const wchar_t * _Src) +{ + AtlCrtErrorCheck(::wcscat_s(_Dst, _SizeInChars, _Src)); +} + +inline void __cdecl tcscat_s( + TCHAR * _Dst, + size_t _SizeInChars, + const TCHAR * _Src) +{ + AtlCrtErrorCheck(::wcscat_s(_Dst, _SizeInChars, _Src)); +} + +inline void __cdecl strlwr_s( + char * _Str, + size_t _SizeInChars) +{ + AtlCrtErrorCheck(::_strlwr_s(_Str, _SizeInChars)); +} + +inline void __cdecl wcslwr_s( + wchar_t * _Str, + size_t _SizeInChars) +{ + AtlCrtErrorCheck(::_wcslwr_s(_Str, _SizeInChars)); +} + + +inline void __cdecl mbslwr_s( + unsigned char * _Str, + size_t _SizeInChars) +{ + AtlCrtErrorCheck(::_mbslwr_s(_Str, _SizeInChars)); +} + + +inline void __cdecl tcslwr_s( + TCHAR * _Str, + size_t _SizeInChars) +{ + AtlCrtErrorCheck(::_wcslwr_s(_Str, _SizeInChars)); +} + +inline void __cdecl strupr_s( + char * _Str, + size_t _SizeInChars) +{ + AtlCrtErrorCheck(::_strupr_s(_Str, _SizeInChars)); +} + +inline void __cdecl wcsupr_s( + wchar_t * _Str, + size_t _SizeInChars) +{ + AtlCrtErrorCheck(::_wcsupr_s(_Str, _SizeInChars)); +} + + +inline void __cdecl mbsupr_s( + unsigned char * _Str, + size_t _SizeInChars) +{ + AtlCrtErrorCheck(::_mbsupr_s(_Str, _SizeInChars)); +} + + +inline void __cdecl tcsupr_s( + TCHAR * _Str, + size_t _SizeInChars) +{ + AtlCrtErrorCheck(::_wcsupr_s(_Str, _SizeInChars)); +} + +inline void __cdecl itoa_s( + int _Val, + char *_Buf, + size_t _SizeInChars, + int _Radix) +{ + AtlCrtErrorCheck(::_itoa_s(_Val, _Buf, _SizeInChars, _Radix)); +} + +inline void __cdecl itot_s( + int _Val, + TCHAR *_Buf, + size_t _SizeInChars, + int _Radix) +{ + AtlCrtErrorCheck(::_itow_s(_Val, _Buf, _SizeInChars, _Radix)); +} + +inline void __cdecl ltoa_s( + long _Val, + char *_Buf, + size_t _SizeInChars, + int _Radix) +{ + AtlCrtErrorCheck(::_ltoa_s(_Val, _Buf, _SizeInChars, _Radix)); +} + +inline void __cdecl ltot_s( + long _Val, + TCHAR *_Buf, + size_t _SizeInChars, + int _Radix) +{ + AtlCrtErrorCheck(::_ltow_s(_Val, _Buf, _SizeInChars, _Radix)); +} + +inline void __cdecl ultoa_s( + unsigned long _Val, + char *_Buf, + size_t _SizeInChars, + int _Radix) +{ + AtlCrtErrorCheck(::_ultoa_s(_Val, _Buf, _SizeInChars, _Radix)); +} + +inline void __cdecl ultow_s( + unsigned long _Val, + wchar_t *_Buf, + size_t _SizeInChars, + int _Radix) +{ + AtlCrtErrorCheck(::_ultow_s(_Val, _Buf, _SizeInChars, _Radix)); +} + +inline void __cdecl ultot_s( + unsigned long _Val, + TCHAR *_Buf, + size_t _SizeInChars, + int _Radix) +{ + AtlCrtErrorCheck(::_ultow_s(_Val, _Buf, _SizeInChars, _Radix)); +} + +inline void __cdecl i64toa_s( + __int64 _Val, + char *_Buf, + size_t _SizeInChars, + int _Radix) +{ + AtlCrtErrorCheck(::_i64toa_s(_Val, _Buf, _SizeInChars, _Radix)); +} + +inline void __cdecl i64tow_s( + __int64 _Val, + wchar_t *_Buf, + size_t _SizeInChars, + int _Radix) +{ + AtlCrtErrorCheck(::_i64tow_s(_Val, _Buf, _SizeInChars, _Radix)); +} + +inline void __cdecl ui64toa_s( + unsigned __int64 _Val, + char *_Buf, + size_t _SizeInChars, + int _Radix) +{ + AtlCrtErrorCheck(::_ui64toa_s(_Val, _Buf, _SizeInChars, _Radix)); +} + +inline void __cdecl ui64tow_s( + unsigned __int64 _Val, + wchar_t *_Buf, + size_t _SizeInChars, + int _Radix) +{ + AtlCrtErrorCheck(::_ui64tow_s(_Val, _Buf, _SizeInChars, _Radix)); +} + +inline void __cdecl gcvt_s( + char *_Buffer, + size_t _SizeInChars, + double _Value, + int _Ndec) +{ + AtlCrtErrorCheck(::_gcvt_s(_Buffer, _SizeInChars, _Value, _Ndec)); +} + +inline void __cdecl tsplitpath_s( + const TCHAR *_Path, + TCHAR *_Drive, + size_t _Drive_len, + TCHAR *_Dir, + size_t _Dir_len, + TCHAR *_Fname, + size_t _Fname_len, + TCHAR *_Ext, + size_t _Ext_len) +{ + AtlCrtErrorCheck(::_wsplitpath_s(_Path, _Drive, _Drive_len, _Dir, _Dir_len, _Fname, _Fname_len, _Ext, _Ext_len)); +} + +inline void __cdecl tmakepath_s( + TCHAR *_Path, + size_t _SizeInChars, + const TCHAR *_Drive, + const TCHAR *_Dir, + const TCHAR *_Fname, + const TCHAR *_Ext) +{ + AtlCrtErrorCheck(::_wmakepath_s(_Path, _SizeInChars, _Drive, _Dir, _Fname, _Ext)); +} + +inline size_t __cdecl strnlen( + const char *_Str, + size_t _Maxsize) +{ + return ::strnlen(_Str, _Maxsize); +} + +inline size_t __cdecl wcsnlen( + const wchar_t *_Wcs, + size_t _Maxsize) +{ + return ::wcsnlen(_Wcs, _Maxsize); +} + +inline size_t __cdecl tcsnlen( + const TCHAR *_Str, + size_t _Maxsize) +{ + return ::wcsnlen(_Str, _Maxsize); +} + +inline int get_errno() throw() +{ + int nErrNo=0; + errno_t nErrCall=::_get_errno(&nErrNo); + if(nErrCall) + { + return nErrCall; + } + return nErrNo; +} + +inline void set_errno( int _Value) +{ + AtlCrtErrorCheck(::_set_errno(_Value)); +} + +} + +} +#pragma pack(pop) +# 34 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h" 2 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h" 1 +# 31 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h" +#pragma warning(push) +#pragma warning(disable: 4800) + + +#pragma pack(push,8) +namespace ATL +{ + + + + + + + +#pragma warning(push) +# 45 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h" +#pragma warning(disable: 6319) + + +template +class CSimpleArrayEqualHelper +{ +public: + static bool IsEqual( + const T& t1, + const T& t2) + { + return (t1 == t2); + } +}; +#pragma warning(pop) + +template +class CSimpleArrayEqualHelperFalse +{ +public: + static bool IsEqual( + const T&, + const T&) + { + (void)( (!!((false))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h", 69, 0, L"%ls", L"false")) || (__debugbreak(), 0) ); + return false; + } +}; + +template +class CSimpleMapEqualHelper +{ +public: + static bool IsEqualKey( + const TKey& k1, + const TKey& k2) + { + return CSimpleArrayEqualHelper::IsEqual(k1, k2); + } + + static bool IsEqualValue( + const TVal& v1, + const TVal& v2) + { + return CSimpleArrayEqualHelper::IsEqual(v1, v2); + } +}; + +template +class CSimpleMapEqualHelperFalse +{ +public: + static bool IsEqualKey( + const TKey& k1, + const TKey& k2) + { + return CSimpleArrayEqualHelper::IsEqual(k1, k2); + } + + static bool IsEqualValue( + const TVal&, + const TVal&) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h", 108, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return false; + } +}; + +template > +class CSimpleArray +{ +public: + + CSimpleArray() : + m_aT(0), m_nSize(0), m_nAllocSize(0) + { + } + + ~CSimpleArray(); + + CSimpleArray( const CSimpleArray< T, TEqual >& src) : + m_aT(0), m_nSize(0), m_nAllocSize(0) + { + if (src.GetSize()) + { + m_aT = (T*)calloc(src.GetSize(), sizeof(T)); + if (m_aT != 0) + { + m_nAllocSize = src.GetSize(); + for (int i=0; i& operator=( const CSimpleArray< T, TEqual >& src) + { + if (GetSize() != src.GetSize()) + { + RemoveAll(); + m_aT = (T*)calloc(src.GetSize(), sizeof(T)); + if (m_aT != 0) + m_nAllocSize = src.GetSize(); + } + else + { + for (int i = GetSize(); i > 0; i--) + RemoveAt(i - 1); + } + for (int i=0; i= (m_aT + m_nAllocSize) )); do { (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h", 172, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); ; } +# 171 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h" +#pragma warning(suppress: 4127) +# 171 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h" + while (0); if(!(__atl_condVal)) ATL::AtlThrowImpl(((HRESULT)0x80004005L)); } +# 171 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h" +#pragma warning(suppress: 4127) +# 171 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h" + while (0); + + + T* aT; + int nNewAllocSize = (m_nAllocSize == 0) ? 1 : (m_nSize * 2); + + if (nNewAllocSize<0||nNewAllocSize>2147483647/sizeof(T)) + { + return 0; + } + + aT = (T*)_recalloc(m_aT, nNewAllocSize, sizeof(T)); + if(aT == 0) + return 0; + m_nAllocSize = nNewAllocSize; + m_aT = aT; + } + InternalSetAtIndex(m_nSize, t); + m_nSize++; + return 1; + } + + + BOOL Remove( const T& t) + { + int nIndex = Find(t); + if(nIndex == -1) + return 0; + return RemoveAt(nIndex); + } + + + BOOL RemoveAt( int nIndex) + { + (void)( (!!((nIndex >= 0 && nIndex < m_nSize))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h", 205, 0, L"%ls", L"nIndex >= 0 && nIndex < m_nSize")) || (__debugbreak(), 0) ); + if (nIndex < 0 || nIndex >= m_nSize) + return 0; + m_aT[nIndex].~T(); + if(nIndex != (m_nSize - 1)) + Checked::memmove_s((void*)(m_aT + nIndex), (m_nSize - nIndex) * sizeof(T), (void*)(m_aT + nIndex + 1), (m_nSize - (nIndex + 1)) * sizeof(T)); + m_nSize--; + return 1; + } + void RemoveAll() + { + if(m_aT != 0) + { + for(int i = 0; i < m_nSize; i++) + m_aT[i].~T(); + free(m_aT); + m_aT = 0; + } + m_nSize = 0; + m_nAllocSize = 0; + } + const T& operator[] ( int nIndex) const + { + (void)( (!!((nIndex >= 0 && nIndex < m_nSize))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h", 228, 0, L"%ls", L"nIndex >= 0 && nIndex < m_nSize")) || (__debugbreak(), 0) ); + if(nIndex < 0 || nIndex >= m_nSize) + { + _AtlRaiseException((DWORD)((DWORD )0xC000008CL)); + } + return m_aT[nIndex]; + } + T& operator[] ( int nIndex) + { + (void)( (!!((nIndex >= 0 && nIndex < m_nSize))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h", 237, 0, L"%ls", L"nIndex >= 0 && nIndex < m_nSize")) || (__debugbreak(), 0) ); + if(nIndex < 0 || nIndex >= m_nSize) + { + _AtlRaiseException((DWORD)((DWORD )0xC000008CL)); + } + return m_aT[nIndex]; + } + T* GetData() const + { + return m_aT; + } + + int Find( const T& t) const + { + for(int i = 0; i < m_nSize; i++) + { + if(TEqual::IsEqual(m_aT[i], t)) + return i; + } + return -1; + } + + + BOOL SetAtIndex( + int nIndex, + const T& t) + { + if (nIndex < 0 || nIndex >= m_nSize) + return 0; + InternalSetAtIndex(nIndex, t); + return 1; + } + + + class Wrapper + { + public: + Wrapper( const T& _t) : t(_t) + { + } + template + void * __cdecl operator new( + size_t, + _Ty* p) + { + return p; + } + template + void __cdecl operator delete( + void* , + _Ty* ) + { + } + T t; + }; + + + void InternalSetAtIndex( + int nIndex, + const T& t) + { + new(m_aT + nIndex) Wrapper(t); + } + + typedef T _ArrayElementType; + T* m_aT; + int m_nSize; + int m_nAllocSize; +}; + + + +template inline CSimpleArray::~CSimpleArray() +{ + RemoveAll(); +} + + +template > +class CSimpleMap +{ +public: + TKey* m_aKey; + TVal* m_aVal; + int m_nSize; + + typedef TKey _ArrayKeyType; + typedef TVal _ArrayElementType; + + + CSimpleMap() : + m_aKey(0), m_aVal(0), m_nSize(0) + { + } + + ~CSimpleMap() + { + RemoveAll(); + } + + + int GetSize() const + { + return m_nSize; + } + BOOL Add( + const TKey& key, + const TVal& val) + { + TKey* pKey; + pKey = (TKey*)_recalloc(m_aKey, (m_nSize + 1), sizeof(TKey)); + if(pKey == 0) + return 0; + m_aKey = pKey; + TVal* pVal; + pVal = (TVal*)_recalloc(m_aVal, (m_nSize + 1), sizeof(TVal)); + if(pVal == 0) + return 0; + m_aVal = pVal; + InternalSetAtIndex(m_nSize, key, val); + m_nSize++; + return 1; + } + BOOL Remove( const TKey& key) + { + int nIndex = FindKey(key); + if(nIndex == -1) + return 0; + return RemoveAt(nIndex); + } + BOOL RemoveAt( int nIndex) + { + (void)( (!!((nIndex >= 0 && nIndex < m_nSize))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h", 369, 0, L"%ls", L"nIndex >= 0 && nIndex < m_nSize")) || (__debugbreak(), 0) ); + if (nIndex < 0 || nIndex >= m_nSize) + return 0; + m_aKey[nIndex].~TKey(); + m_aVal[nIndex].~TVal(); + if(nIndex != (m_nSize - 1)) + { + Checked::memmove_s((void*)(m_aKey + nIndex), (m_nSize - nIndex) * sizeof(TKey), (void*)(m_aKey + nIndex + 1), (m_nSize - (nIndex + 1)) * sizeof(TKey)); + Checked::memmove_s((void*)(m_aVal + nIndex), (m_nSize - nIndex) * sizeof(TVal), (void*)(m_aVal + nIndex + 1), (m_nSize - (nIndex + 1)) * sizeof(TVal)); + } + TKey* pKey; + pKey = (TKey*)_recalloc(m_aKey, (m_nSize - 1), sizeof(TKey)); + if(pKey != 0 || m_nSize == 1) + m_aKey = pKey; + TVal* pVal; + pVal = (TVal*)_recalloc(m_aVal, (m_nSize - 1), sizeof(TVal)); + if(pVal != 0 || m_nSize == 1) + m_aVal = pVal; + m_nSize--; + return 1; + } + void RemoveAll() + { + if(m_aKey != 0) + { + for(int i = 0; i < m_nSize; i++) + { + m_aKey[i].~TKey(); + m_aVal[i].~TVal(); + } + free(m_aKey); + m_aKey = 0; + } + if(m_aVal != 0) + { + free(m_aVal); + m_aVal = 0; + } + + m_nSize = 0; + } + BOOL SetAt( + const TKey& key, + const TVal& val) + { + int nIndex = FindKey(key); + if(nIndex == -1) + return 0; + (void)( (!!((nIndex >= 0 && nIndex < m_nSize))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h", 417, 0, L"%ls", L"nIndex >= 0 && nIndex < m_nSize")) || (__debugbreak(), 0) ); + m_aKey[nIndex].~TKey(); + m_aVal[nIndex].~TVal(); + InternalSetAtIndex(nIndex, key, val); + return 1; + } + TVal Lookup( const TKey& key) const + { + int nIndex = FindKey(key); + if(nIndex == -1) + return 0; + return GetValueAt(nIndex); + } + TKey ReverseLookup( const TVal& val) const + { + int nIndex = FindVal(val); + if(nIndex == -1) + return 0; + return GetKeyAt(nIndex); + } + TKey& GetKeyAt( int nIndex) const + { + (void)( (!!((nIndex >= 0 && nIndex < m_nSize))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h", 439, 0, L"%ls", L"nIndex >= 0 && nIndex < m_nSize")) || (__debugbreak(), 0) ); + if(nIndex < 0 || nIndex >= m_nSize) + _AtlRaiseException((DWORD)((DWORD )0xC000008CL)); + + return m_aKey[nIndex]; + } + TVal& GetValueAt( int nIndex) const + { + (void)( (!!((nIndex >= 0 && nIndex < m_nSize))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlsimpcoll.h", 447, 0, L"%ls", L"nIndex >= 0 && nIndex < m_nSize")) || (__debugbreak(), 0) ); + if(nIndex < 0 || nIndex >= m_nSize) + _AtlRaiseException((DWORD)((DWORD )0xC000008CL)); + + return m_aVal[nIndex]; + } + + int FindKey( const TKey& key) const + { + for(int i = 0; i < m_nSize; i++) + { + if(TEqual::IsEqualKey(m_aKey[i], key)) + return i; + } + return -1; + } + int FindVal( const TVal& val) const + { + for(int i = 0; i < m_nSize; i++) + { + if(TEqual::IsEqualValue(m_aVal[i], val)) + return i; + } + return -1; + } + + BOOL SetAtIndex( + int nIndex, + const TKey& key, + const TVal& val) + { + if (nIndex < 0 || nIndex >= m_nSize) + return 0; + InternalSetAtIndex(nIndex, key, val); + return 1; + } + + + + + template + class Wrapper + { + public: + Wrapper( const T& _t) : t(_t) + { + } + template + void *operator new( + size_t, + _Ty* p) + { + return p; + } + template + void operator delete( + void* , + _Ty* ) + { + } + T t; + }; + void InternalSetAtIndex( + int nIndex, + const TKey& key, + const TVal& val) + { + new(m_aKey + nIndex) Wrapper(key); + new(m_aVal + nIndex) Wrapper(val); + } +}; + + + +}; +#pragma pack(pop) + +#pragma warning(pop) +# 35 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h" 2 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlwinverapi.h" 1 +# 20 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlwinverapi.h" +#pragma warning(disable: 4786) +#pragma warning(disable: 4127) +#pragma warning(disable: 4949) +# 81 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlwinverapi.h" +#pragma pack(push,8) +namespace ATL +{ +# 707 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlwinverapi.h" +inline int __cdecl _AtlLCMapStringEx( LPCWSTR lpLocaleName, DWORD dwMapFlags, LPCWSTR lpSrcStr, int cchSrc, LPWSTR lpDestStr, int cchDest, LPNLSVERSIONINFO lpVersionInformation, LPVOID lpReserved, LPARAM sortHandle) +{ + + return LCMapStringEx(lpLocaleName, dwMapFlags, lpSrcStr, cchSrc, lpDestStr, cchDest, lpVersionInformation, lpReserved, sortHandle); +# 722 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlwinverapi.h" +} + +#pragma managed(push, off) + +extern inline BOOL __cdecl _AtlInitializeCriticalSectionEx( LPCRITICAL_SECTION lpCriticalSection, DWORD dwSpinCount, DWORD Flags) +{ + + + return ::InitializeCriticalSectionEx(lpCriticalSection, dwSpinCount, Flags); + + + + + + +} + + + +#pragma managed(pop) + +} +#pragma pack(pop) +# 36 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h" 2 + + +#pragma pack(push,8) +namespace ATL +{ + + + +inline int AtlStrLen( const wchar_t *str) +{ + if (str == 0) + return 0; + return static_cast(::wcslen(str)); +} + + +inline int AtlStrLen( const char *str) +{ + if (str == 0) + return 0; + return static_cast(::strlen(str)); +} + + + +inline BOOL AtlIsValidString( + LPCWSTR psz, + size_t nMaxLength = 2147483647) +{ + (nMaxLength); + return (psz != 0); +} + + +inline BOOL AtlIsValidString( + LPCSTR psz, + size_t nMaxLength = 0xffffffff) +{ + (nMaxLength); + return (psz != 0); +} + + +inline BOOL AtlIsValidAddress( + const void* p, + size_t nBytes, + BOOL bReadWrite = 1) +{ + (bReadWrite); + (nBytes); + return (p != 0); +} + +template +inline void AtlAssertValidObject( + const T *pOb) +{ + (void)( (!!((pOb))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h", 93, 0, L"%ls", L"pOb")) || (__debugbreak(), 0) ); + (void)( (!!((AtlIsValidAddress(pOb, sizeof(T))))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h", 94, 0, L"%ls", L"AtlIsValidAddress(pOb, sizeof(T))")) || (__debugbreak(), 0) ); + if(pOb) + pOb->AssertValid(); +} + + + + + + + +class CComCriticalSection +{ +public: + CComCriticalSection() throw() + { + memset(&m_sec, 0, sizeof(CRITICAL_SECTION)); + } + + ~CComCriticalSection() + { + } + + HRESULT Lock() throw() + { + EnterCriticalSection(&m_sec); + return ((HRESULT)0L); + } + HRESULT Unlock() throw() + { + LeaveCriticalSection(&m_sec); + return ((HRESULT)0L); + } + HRESULT Init() throw() + { + HRESULT hRes = ((HRESULT)0L); + if (!_AtlInitializeCriticalSectionEx(&m_sec, 0, 0)) + { + hRes = HRESULT_FROM_WIN32(GetLastError()); + } + + return hRes; + } + + HRESULT Term() throw() + { + DeleteCriticalSection(&m_sec); + return ((HRESULT)0L); + } + CRITICAL_SECTION m_sec; +}; + +class CComAutoCriticalSection : + public CComCriticalSection +{ +public: + CComAutoCriticalSection() + { + HRESULT hr = CComCriticalSection::Init(); + if ((((HRESULT)(hr)) < 0)) + ATL::AtlThrowImpl(hr); + } + ~CComAutoCriticalSection() throw() + { + CComCriticalSection::Term(); + } +private : + HRESULT Init(); + HRESULT Term(); +}; + +class CComSafeDeleteCriticalSection : + public CComCriticalSection +{ +public: + CComSafeDeleteCriticalSection(): m_bInitialized(false) + { + } + + ~CComSafeDeleteCriticalSection() throw() + { + if (!m_bInitialized) + { + return; + } + m_bInitialized = false; + CComCriticalSection::Term(); + } + + HRESULT Init() throw() + { + (void)( (!!((!m_bInitialized))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h", 185, 0, L"%ls", L"!m_bInitialized")) || (__debugbreak(), 0) ); + HRESULT hr = CComCriticalSection::Init(); + if ((((HRESULT)(hr)) >= 0)) + { + m_bInitialized = true; + } + return hr; + } + + HRESULT Term() throw() + { + if (!m_bInitialized) + { + return ((HRESULT)0L); + } + m_bInitialized = false; + return CComCriticalSection::Term(); + } + + + HRESULT Lock() + { + + + + + + do { (void)( (!!((m_bInitialized))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h", 212, 0, L"%ls", L"m_bInitialized")) || (__debugbreak(), 0) ); ; } +# 212 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h" +#pragma warning(suppress: 4127) +# 212 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h" + while (0); + return CComCriticalSection::Lock(); + } + +private: + bool m_bInitialized; +}; + +class CComAutoDeleteCriticalSection : + public CComSafeDeleteCriticalSection +{ +private: + + HRESULT Term() throw(); +}; + +class CComFakeCriticalSection +{ +public: + HRESULT Lock() throw() + { + return ((HRESULT)0L); + } + HRESULT Unlock() throw() + { + return ((HRESULT)0L); + } + HRESULT Init() throw() + { + return ((HRESULT)0L); + } + HRESULT Term() throw() + { + return ((HRESULT)0L); + } +}; + + + + + +struct _ATL_BASE_MODULE70 +{ + UINT cbSize; + HINSTANCE m_hInst; + HINSTANCE m_hInstResource; + DWORD dwAtlBuildVer; + const GUID* pguidVer; + CComCriticalSection m_csResource; + CSimpleArray m_rgResourceInstance; +}; +typedef _ATL_BASE_MODULE70 _ATL_BASE_MODULE; + +class CAtlBaseModule : + public _ATL_BASE_MODULE +{ +public : + static bool m_bInitFailed; + CAtlBaseModule() throw(); + ~CAtlBaseModule() throw (); + + HINSTANCE GetModuleInstance() throw() + { + return m_hInst; + } + HINSTANCE GetResourceInstance() throw() + { + return m_hInstResource; + } + HINSTANCE SetResourceInstance( HINSTANCE hInst) throw() + { + return static_cast< HINSTANCE >(InterlockedExchangePointer((void**)&m_hInstResource, hInst)); + } + + bool AddResourceInstance( HINSTANCE hInst) throw(); + bool RemoveResourceInstance( HINSTANCE hInst) throw(); + HINSTANCE GetHInstanceAt( int i) throw(); +}; + +__declspec(selectany) bool CAtlBaseModule::m_bInitFailed = false; +extern CAtlBaseModule _AtlBaseModule; + + + + + + +#pragma warning(push) +#pragma warning(disable: 4200) + struct ATLSTRINGRESOURCEIMAGE + { + WORD nLength; + WCHAR achString[]; + }; +#pragma warning(pop) + +inline const ATLSTRINGRESOURCEIMAGE* _AtlGetStringResourceImage( + HINSTANCE hInstance, + HRSRC hResource, + UINT id) throw() +{ + const ATLSTRINGRESOURCEIMAGE* pImage; + const ATLSTRINGRESOURCEIMAGE* pImageEnd; + ULONG nResourceSize; + HGLOBAL hGlobal; + UINT iIndex; + + hGlobal = ::LoadResource( hInstance, hResource ); + if( hGlobal == 0 ) + { + return( 0 ); + } + + pImage = (const ATLSTRINGRESOURCEIMAGE*)::LockResource( hGlobal ); + if( pImage == 0 ) + { + return( 0 ); + } + + nResourceSize = ::SizeofResource( hInstance, hResource ); + pImageEnd = (const ATLSTRINGRESOURCEIMAGE*)(LPBYTE( pImage )+nResourceSize); + iIndex = id&0x000f; + + while( (iIndex > 0) && (pImage < pImageEnd) ) + { + pImage = (const ATLSTRINGRESOURCEIMAGE*)(LPBYTE( pImage )+(sizeof( ATLSTRINGRESOURCEIMAGE )+(pImage->nLength*sizeof( WCHAR )))); + iIndex--; + } + if( pImage >= pImageEnd ) + { + return( 0 ); + } + if( pImage->nLength == 0 ) + { + return( 0 ); + } + + return( pImage ); +} + +inline const ATLSTRINGRESOURCEIMAGE* AtlGetStringResourceImage( + HINSTANCE hInstance, + UINT id) throw() +{ + HRSRC hResource; + + + + + hResource = ::FindResourceW(hInstance, ((LPWSTR)((ULONG_PTR)((WORD)((((id>>4)+1) & static_cast(~0)))))), (LPWSTR) ((LPWSTR)((ULONG_PTR)((WORD)(6))))); + if( hResource == 0 ) + { + return( 0 ); + } + + return _AtlGetStringResourceImage( hInstance, hResource, id ); +} + +inline const ATLSTRINGRESOURCEIMAGE* AtlGetStringResourceImage( + HINSTANCE hInstance, + UINT id, + WORD wLanguage) throw() +{ + HRSRC hResource; + + + + + hResource = ::FindResourceExW(hInstance, (LPWSTR) ((LPWSTR)((ULONG_PTR)((WORD)(6)))), ((LPWSTR)((ULONG_PTR)((WORD)((((id>>4)+1) & static_cast(~0)))))), wLanguage); + if( hResource == 0 ) + { + return( 0 ); + } + + return _AtlGetStringResourceImage( hInstance, hResource, id ); +} + +inline const ATLSTRINGRESOURCEIMAGE* AtlGetStringResourceImage( UINT id) throw() +{ + const ATLSTRINGRESOURCEIMAGE* p = 0; + HINSTANCE hInst = _AtlBaseModule.GetHInstanceAt(0); + + for (int i = 1; hInst != 0 && p == 0; hInst = _AtlBaseModule.GetHInstanceAt(i++)) + { + p = AtlGetStringResourceImage(hInst, id); + } + return p; +} + +inline const ATLSTRINGRESOURCEIMAGE* AtlGetStringResourceImage( + UINT id, + WORD wLanguage) throw() +{ + const ATLSTRINGRESOURCEIMAGE* p = 0; + HINSTANCE hInst = _AtlBaseModule.GetHInstanceAt(0); + + for (int i = 1; hInst != 0 && p == 0; hInst = _AtlBaseModule.GetHInstanceAt(i++)) + { + p = AtlGetStringResourceImage(hInst, id, wLanguage); + } + return p; +} + +#pragma warning(push) +# 415 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h" +#pragma warning(disable: 6054) +inline int AtlLoadString( + UINT nID, + LPTSTR lpBuffer, + int nBufferMax) throw() +{ + HINSTANCE hInst = _AtlBaseModule.GetHInstanceAt(0); + int nRet = 0; + + for (int i = 1; hInst != 0 && nRet == 0; hInst = _AtlBaseModule.GetHInstanceAt(i++)) + { + nRet = LoadStringW(hInst, nID, lpBuffer, nBufferMax); + } + return nRet; +} +#pragma warning(pop) + +inline HINSTANCE AtlFindResourceInstance( + LPCTSTR lpName, + LPCTSTR lpType, + WORD wLanguage = 0) throw() +{ + (void)( (!!((lpType != ((LPWSTR)((ULONG_PTR)((WORD)(6))))))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h", 437, 0, L"%ls", L"lpType != ((LPWSTR)((ULONG_PTR)((WORD)(6))))")) || (__debugbreak(), 0) ); + ; + if (lpType == ((LPWSTR)((ULONG_PTR)((WORD)(6))))) + return 0; + + if (((((ULONG_PTR)(lpType)) >> 16) == 0)) + { + + if (lpType == ((LPWSTR)((ULONG_PTR)((WORD)(3))))) + { + lpType = ((LPWSTR)((ULONG_PTR)((WORD)((ULONG_PTR)((LPWSTR)((ULONG_PTR)((WORD)(3)))) + 11)))); + } + else if (lpType == ((LPWSTR)((ULONG_PTR)((WORD)(1))))) + { + lpType = ((LPWSTR)((ULONG_PTR)((WORD)((ULONG_PTR)((LPWSTR)((ULONG_PTR)((WORD)(1)))) + 11)))); + } + } + + HINSTANCE hInst = _AtlBaseModule.GetHInstanceAt(0); + HRSRC hResource = 0; + + for (int i = 1; hInst != 0; hInst = _AtlBaseModule.GetHInstanceAt(i++)) + { + hResource = ::FindResourceExW(hInst, lpType, lpName, wLanguage); + if (hResource != 0) + { + return hInst; + } + } + + return 0; +} + +inline HINSTANCE AtlFindResourceInstance( + UINT nID, + LPCTSTR lpType, + WORD wLanguage = 0) throw() +{ + + + + + return AtlFindResourceInstance(((LPWSTR)((ULONG_PTR)((WORD)(nID & static_cast(~0))))), lpType, wLanguage); +} + +inline HINSTANCE AtlFindStringResourceInstance( + UINT nID, + WORD wLanguage = 0) throw() +{ + const ATLSTRINGRESOURCEIMAGE* p = 0; + HINSTANCE hInst = _AtlBaseModule.GetHInstanceAt(0); + + for (int i = 1; hInst != 0 && p == 0; hInst = _AtlBaseModule.GetHInstanceAt(i++)) + { + p = AtlGetStringResourceImage(hInst, nID, wLanguage); + if (p != 0) + return hInst; + } + + return 0; +} + + + + + + +inline HRESULT AtlSafeArrayGetActualVartype( + SAFEARRAY *psaArray, + VARTYPE *pvtType) +{ + HRESULT hrSystem=::SafeArrayGetVartype(psaArray, pvtType); + + if((((HRESULT)(hrSystem)) < 0)) + { + return hrSystem; + } + + + + + + if(pvtType && *pvtType==VT_UNKNOWN) + { + if(psaArray && ((psaArray->fFeatures & ( 0x40 ))!=0)) + { + if(psaArray->fFeatures & ( 0x400 )) + { + *pvtType=VT_DISPATCH; + } + } + } + + return hrSystem; +} +template +inline _CharType* AtlCharNext( const _CharType* p) throw() +{ + do { (void)( (!!((p != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h", 535, 0, L"%ls", L"p != 0")) || (__debugbreak(), 0) ); ; } +# 535 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h" +#pragma warning(suppress: 4127) +# 535 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h" + while (0); + if (*p == '\0') + return const_cast<_CharType*>(p+1); + else + return ::CharNextA(p); +} + +template <> +inline wchar_t* AtlCharNext( const wchar_t* p) throw() +{ + return const_cast< wchar_t* >( p+1 ); +} +template +inline const CharType* AtlstrchrT( + const CharType* p, + CharType ch) throw() +{ + (void)( (!!((p != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h", 552, 0, L"%ls", L"p != 0")) || (__debugbreak(), 0) ); + if(p==0) + { + return 0; + } + while( *p != 0 ) + { + if (*p == ch) + { + return p; + } + p = AtlCharNext(p); + } + + + return (*p == ch) ? p : 0; +} + +#pragma warning(push) +#pragma warning(disable: 4793) +template +inline int AtlprintfT( const CharType* pszFormat,...) throw() +{ + int retval=0; + va_list argList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(argList = (va_list)(&const_cast(reinterpret_cast(pszFormat))) + ((sizeof(pszFormat) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + retval=vprintf(pszFormat,argList); + ((void)(argList = (va_list)0)); + return retval; +} +#pragma warning(pop) + +#pragma warning(push) +#pragma warning(disable: 4793) +template<> +inline int AtlprintfT( const wchar_t* pszFormat,... ) throw() +{ + int retval=0; + va_list argList; + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(argList = (va_list)(&const_cast(reinterpret_cast(pszFormat))) + ((sizeof(pszFormat) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + + + + + + + + retval = __stdio_common_vfwprintf( + (*__local_stdio_printf_options()) | + (1ULL << 2), + (__acrt_iob_func(1)), pszFormat, 0, argList); + + ((void)(argList = (va_list)0)); + return retval; +} +#pragma warning(pop) + +inline BOOL AtlConvertSystemTimeToVariantTime( + const SYSTEMTIME& systimeSrc, + double* pVarDtTm) +{ + do { int __atl_condVal=!!(pVarDtTm!=0); do { (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h", 613, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); ; } +# 613 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h" +#pragma warning(suppress: 4127) +# 613 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h" + while (0); if(!(__atl_condVal)) ATL::AtlThrowImpl(((HRESULT)0x80004005L)); } +# 613 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h" +#pragma warning(suppress: 4127) +# 613 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcore.h" + while (0); + + + BOOL ok = ::SystemTimeToVariantTime(const_cast(&systimeSrc), pVarDtTm); + SYSTEMTIME sysTime; + ::memset((&sysTime),0,(sizeof(SYSTEMTIME))); + + ok = ok && ::VariantTimeToSystemTime(*pVarDtTm, &sysTime); + ok = ok && (systimeSrc.wYear == sysTime.wYear && + systimeSrc.wMonth == sysTime.wMonth && + systimeSrc.wDay == sysTime.wDay && + systimeSrc.wHour == sysTime.wHour && + systimeSrc.wMinute == sysTime.wMinute && + systimeSrc.wSecond == sysTime.wSecond); + + return ok; +} + + + + + + +inline HMODULE AtlLoadSystemLibraryUsingFullPath( const WCHAR *pszLibrary) +{ + + + + + + + static volatile auto pfSetDefaultDllDirectories_cache = reinterpret_cast(0); auto pfSetDefaultDllDirectories = reinterpret_cast( pfSetDefaultDllDirectories_cache); if (pfSetDefaultDllDirectories == reinterpret_cast(0)) { HINSTANCE hLibrary = GetModuleHandleW(L"kernel32.dll"); if (hLibrary != 0) { pfSetDefaultDllDirectories = reinterpret_cast(::GetProcAddress(hLibrary, "SetDefaultDllDirectories")); pfSetDefaultDllDirectories_cache = reinterpret_cast(::EncodePointer((PVOID)pfSetDefaultDllDirectories)); } } else { pfSetDefaultDllDirectories = reinterpret_cast(::DecodePointer((PVOID)pfSetDefaultDllDirectories)); } if (pfSetDefaultDllDirectories != reinterpret_cast(0)) + { + return(::LoadLibraryExW(pszLibrary, 0, 0x00000800)); + } + + + + WCHAR wszLoadPath[260 +1]; + UINT rc = ::GetSystemDirectoryW(wszLoadPath, (sizeof(*__countof_helper(wszLoadPath)) + 0)); + if (rc == 0 || rc >= (sizeof(*__countof_helper(wszLoadPath)) + 0)) + { + return 0; + } + + if (wszLoadPath[rc-1] != L'\\') + { + if (wcscat_s(wszLoadPath, (sizeof(*__countof_helper(wszLoadPath)) + 0), L"\\") != 0) + { + return 0; + } + } + + if (wcscat_s(wszLoadPath, (sizeof(*__countof_helper(wszLoadPath)) + 0), pszLibrary) != 0) + { + return 0; + } + + return(::LoadLibraryW(wszLoadPath)); + +} + + + + + +} +#pragma pack(pop) +# 71 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" 2 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" 1 +# 19 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\olectl.h" 1 +# 22 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\olectl.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" +#pragma warning(disable: 4103) + +#pragma pack(push,8) +# 22 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\olectl.h" 2 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef struct IEnumConnections IEnumConnections; + + + + + + +typedef struct IConnectionPoint IConnectionPoint; + + + + + + +typedef struct IEnumConnectionPoints IEnumConnectionPoints; + + + + + + +typedef struct IConnectionPointContainer IConnectionPointContainer; + + + + + + +typedef struct IClassFactory2 IClassFactory2; + + + + + + +typedef struct IProvideClassInfo IProvideClassInfo; + + + + + + +typedef struct IProvideClassInfo2 IProvideClassInfo2; + + + + + + +typedef struct IProvideMultipleClassInfo IProvideMultipleClassInfo; + + + + + + +typedef struct IOleControl IOleControl; + + + + + + +typedef struct IOleControlSite IOleControlSite; + + + + + + +typedef struct IPropertyPage IPropertyPage; + + + + + + +typedef struct IPropertyPage2 IPropertyPage2; + + + + + + +typedef struct IPropertyPageSite IPropertyPageSite; + + + + + + +typedef struct IPropertyNotifySink IPropertyNotifySink; + + + + + + +typedef struct ISpecifyPropertyPages ISpecifyPropertyPages; + + + + + + +typedef struct IPersistMemory IPersistMemory; + + + + + + +typedef struct IPersistStreamInit IPersistStreamInit; + + + + + + +typedef struct IPersistPropertyBag IPersistPropertyBag; + + + + + + +typedef struct ISimpleFrameSite ISimpleFrameSite; + + + + + + +typedef struct IFont IFont; + + + + + + +typedef struct IPicture IPicture; + + + + + + +typedef struct IPicture2 IPicture2; + + + + + + +typedef struct IFontEventsDisp IFontEventsDisp; + + + + + + +typedef struct IFontDisp IFontDisp; + + + + + + +typedef struct IPictureDisp IPictureDisp; + + + + + + +typedef struct IOleInPlaceObjectWindowless IOleInPlaceObjectWindowless; + + + + + + +typedef struct IOleInPlaceSiteEx IOleInPlaceSiteEx; + + + + + + +typedef struct IOleInPlaceSiteWindowless IOleInPlaceSiteWindowless; + + + + + + +typedef struct IViewObjectEx IViewObjectEx; + + + + + + +typedef struct IOleUndoUnit IOleUndoUnit; + + + + + + +typedef struct IOleParentUndoUnit IOleParentUndoUnit; + + + + + + +typedef struct IEnumOleUndoUnits IEnumOleUndoUnits; + + + + + + +typedef struct IOleUndoManager IOleUndoManager; + + + + + + +typedef struct IPointerInactive IPointerInactive; + + + + + + +typedef struct IObjectWithSite IObjectWithSite; + + + + + + +typedef struct IPerPropertyBrowsing IPerPropertyBrowsing; + + + + + + +typedef struct IPropertyBag2 IPropertyBag2; + + + + + + +typedef struct IPersistPropertyBag2 IPersistPropertyBag2; + + + + + + +typedef struct IAdviseSinkEx IAdviseSinkEx; + + + + + + +typedef struct IQuickActivate IQuickActivate; +# 329 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +extern "C"{ +# 347 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +#pragma warning(push) +#pragma warning(disable: 4820) +#pragma warning(disable: 4917) +# 404 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0000_v0_0_s_ifspec; + + + + + + + +typedef +enum tagUASFLAGS + { + UAS_NORMAL = 0, + UAS_BLOCKED = 0x1, + UAS_NOPARENTENABLE = 0x2, + UAS_MASK = 0x3 + } UASFLAGS; + + +typedef +enum tagREADYSTATE + { + READYSTATE_UNINITIALIZED = 0, + READYSTATE_LOADING = 1, + READYSTATE_LOADED = 2, + READYSTATE_INTERACTIVE = 3, + READYSTATE_COMPLETE = 4 + } READYSTATE; + + + +extern RPC_IF_HANDLE IOleControlTypes_v1_0_c_ifspec; +extern RPC_IF_HANDLE IOleControlTypes_v1_0_s_ifspec; +# 448 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0001_v0_0_s_ifspec; + + + + + + + +typedef IEnumConnections *PENUMCONNECTIONS; + +typedef IEnumConnections *LPENUMCONNECTIONS; + +typedef struct tagCONNECTDATA + { + IUnknown *pUnk; + DWORD dwCookie; + } CONNECTDATA; + +typedef struct tagCONNECTDATA *PCONNECTDATA; + +typedef struct tagCONNECTDATA *LPCONNECTDATA; + + +extern "C" const IID IID_IEnumConnections; + + + + struct __declspec(uuid("B196B287-BAB4-101A-B69C-00AA00341D07")) __declspec(novtable) + IEnumConnections : public IUnknown + { + public: + virtual HRESULT __stdcall Next( + ULONG cConnections, + LPCONNECTDATA rgcd, + ULONG *pcFetched) = 0; + + virtual HRESULT __stdcall Skip( + ULONG cConnections) = 0; + + virtual HRESULT __stdcall Reset( void) = 0; + + virtual HRESULT __stdcall Clone( + IEnumConnections **ppEnum) = 0; + + }; +# 573 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" + HRESULT __stdcall IEnumConnections_RemoteNext_Proxy( + IEnumConnections * This, + ULONG cConnections, + LPCONNECTDATA rgcd, + ULONG *pcFetched); + + +void __stdcall IEnumConnections_RemoteNext_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 597 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IConnectionPoint *PCONNECTIONPOINT; + +typedef IConnectionPoint *LPCONNECTIONPOINT; + + +extern "C" const IID IID_IConnectionPoint; + + + + struct __declspec(uuid("B196B286-BAB4-101A-B69C-00AA00341D07")) __declspec(novtable) + IConnectionPoint : public IUnknown + { + public: + virtual HRESULT __stdcall GetConnectionInterface( + IID *pIID) = 0; + + virtual HRESULT __stdcall GetConnectionPointContainer( + IConnectionPointContainer **ppCPC) = 0; + + virtual HRESULT __stdcall Advise( + IUnknown *pUnkSink, + DWORD *pdwCookie) = 0; + + virtual HRESULT __stdcall Unadvise( + DWORD dwCookie) = 0; + + virtual HRESULT __stdcall EnumConnections( + IEnumConnections **ppEnum) = 0; + + }; +# 723 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IEnumConnectionPoints *PENUMCONNECTIONPOINTS; + +typedef IEnumConnectionPoints *LPENUMCONNECTIONPOINTS; + + +extern "C" const IID IID_IEnumConnectionPoints; + + + + struct __declspec(uuid("B196B285-BAB4-101A-B69C-00AA00341D07")) __declspec(novtable) + IEnumConnectionPoints : public IUnknown + { + public: + virtual HRESULT __stdcall Next( + ULONG cConnections, + LPCONNECTIONPOINT *ppCP, + ULONG *pcFetched) = 0; + + virtual HRESULT __stdcall Skip( + ULONG cConnections) = 0; + + virtual HRESULT __stdcall Reset( void) = 0; + + virtual HRESULT __stdcall Clone( + IEnumConnectionPoints **ppEnum) = 0; + + }; +# 829 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" + HRESULT __stdcall IEnumConnectionPoints_RemoteNext_Proxy( + IEnumConnectionPoints * This, + ULONG cConnections, + LPCONNECTIONPOINT *ppCP, + ULONG *pcFetched); + + +void __stdcall IEnumConnectionPoints_RemoteNext_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 853 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IConnectionPointContainer *PCONNECTIONPOINTCONTAINER; + +typedef IConnectionPointContainer *LPCONNECTIONPOINTCONTAINER; + + +extern "C" const IID IID_IConnectionPointContainer; + + + + struct __declspec(uuid("B196B284-BAB4-101A-B69C-00AA00341D07")) __declspec(novtable) + IConnectionPointContainer : public IUnknown + { + public: + virtual HRESULT __stdcall EnumConnectionPoints( + IEnumConnectionPoints **ppEnum) = 0; + + virtual HRESULT __stdcall FindConnectionPoint( + const IID & riid, + IConnectionPoint **ppCP) = 0; + + }; +# 952 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0005_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0005_v0_0_s_ifspec; + + + + + + + +typedef IClassFactory2 *LPCLASSFACTORY2; + +typedef struct tagLICINFO + { + LONG cbLicInfo; + BOOL fRuntimeKeyAvail; + BOOL fLicVerified; + } LICINFO; + +typedef struct tagLICINFO *LPLICINFO; + + +extern "C" const IID IID_IClassFactory2; + + + + struct __declspec(uuid("B196B28F-BAB4-101A-B69C-00AA00341D07")) __declspec(novtable) + IClassFactory2 : public IClassFactory + { + public: + virtual HRESULT __stdcall GetLicInfo( + LICINFO *pLicInfo) = 0; + + virtual HRESULT __stdcall RequestLicKey( + DWORD dwReserved, + BSTR *pBstrKey) = 0; + + virtual HRESULT __stdcall CreateInstanceLic( + IUnknown *pUnkOuter, + IUnknown *pUnkReserved, + const IID & riid, + BSTR bstrKey, + PVOID *ppvObj) = 0; + + }; +# 1092 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" + HRESULT __stdcall IClassFactory2_RemoteCreateInstanceLic_Proxy( + IClassFactory2 * This, + const IID & riid, + BSTR bstrKey, + IUnknown **ppvObj); + + +void __stdcall IClassFactory2_RemoteCreateInstanceLic_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 1116 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IProvideClassInfo *LPPROVIDECLASSINFO; + + +extern "C" const IID IID_IProvideClassInfo; + + + + struct __declspec(uuid("B196B283-BAB4-101A-B69C-00AA00341D07")) __declspec(novtable) + IProvideClassInfo : public IUnknown + { + public: + virtual HRESULT __stdcall GetClassInfoW( + ITypeInfo **ppTI) = 0; + + }; +# 1198 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IProvideClassInfo2 *LPPROVIDECLASSINFO2; + +typedef +enum tagGUIDKIND + { + GUIDKIND_DEFAULT_SOURCE_DISP_IID = 1 + } GUIDKIND; + + +extern "C" const IID IID_IProvideClassInfo2; + + + + struct __declspec(uuid("A6BC3AC0-DBAA-11CE-9DE3-00AA004BB851")) __declspec(novtable) + IProvideClassInfo2 : public IProvideClassInfo + { + public: + virtual HRESULT __stdcall GetGUID( + DWORD dwGuidKind, + GUID *pGUID) = 0; + + }; +# 1301 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IProvideMultipleClassInfo *LPPROVIDEMULTIPLECLASSINFO; + + +extern "C" const IID IID_IProvideMultipleClassInfo; + + + + struct __declspec(uuid("A7ABA9C1-8983-11cf-8F20-00805F2CD064")) __declspec(novtable) + IProvideMultipleClassInfo : public IProvideClassInfo2 + { + public: + virtual HRESULT __stdcall GetMultiTypeInfoCount( + ULONG *pcti) = 0; + + virtual HRESULT __stdcall GetInfoOfIndex( + ULONG iti, + DWORD dwFlags, + ITypeInfo **pptiCoClass, + DWORD *pdwTIFlags, + ULONG *pcdispidReserved, + IID *piidPrimary, + IID *piidSource) = 0; + + }; +# 1422 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IOleControl *LPOLECONTROL; + +typedef struct tagCONTROLINFO + { + ULONG cb; + HACCEL hAccel; + USHORT cAccel; + DWORD dwFlags; + } CONTROLINFO; + +typedef struct tagCONTROLINFO *LPCONTROLINFO; + +typedef +enum tagCTRLINFO + { + CTRLINFO_EATS_RETURN = 1, + CTRLINFO_EATS_ESCAPE = 2 + } CTRLINFO; + + +extern "C" const IID IID_IOleControl; + + + + struct __declspec(uuid("B196B288-BAB4-101A-B69C-00AA00341D07")) __declspec(novtable) + IOleControl : public IUnknown + { + public: + virtual HRESULT __stdcall GetControlInfo( + CONTROLINFO *pCI) = 0; + + virtual HRESULT __stdcall OnMnemonic( + MSG *pMsg) = 0; + + virtual HRESULT __stdcall OnAmbientPropertyChange( + DISPID dispID) = 0; + + virtual HRESULT __stdcall FreezeEvents( + BOOL bFreeze) = 0; + + }; +# 1551 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IOleControlSite *LPOLECONTROLSITE; + +typedef struct tagPOINTF + { + FLOAT x; + FLOAT y; + } POINTF; + +typedef struct tagPOINTF *LPPOINTF; + +typedef +enum tagXFORMCOORDS + { + XFORMCOORDS_POSITION = 0x1, + XFORMCOORDS_SIZE = 0x2, + XFORMCOORDS_HIMETRICTOCONTAINER = 0x4, + XFORMCOORDS_CONTAINERTOHIMETRIC = 0x8, + XFORMCOORDS_EVENTCOMPAT = 0x10 + } XFORMCOORDS; + + +extern "C" const IID IID_IOleControlSite; + + + + struct __declspec(uuid("B196B289-BAB4-101A-B69C-00AA00341D07")) __declspec(novtable) + IOleControlSite : public IUnknown + { + public: + virtual HRESULT __stdcall OnControlInfoChanged( void) = 0; + + virtual HRESULT __stdcall LockInPlaceActive( + BOOL fLock) = 0; + + virtual HRESULT __stdcall GetExtendedControl( + IDispatch **ppDisp) = 0; + + virtual HRESULT __stdcall TransformCoords( + POINTL *pPtlHimetric, + POINTF *pPtfContainer, + DWORD dwFlags) = 0; + + virtual HRESULT __stdcall TranslateAcceleratorW( + MSG *pMsg, + DWORD grfModifiers) = 0; + + virtual HRESULT __stdcall OnFocus( + BOOL fGotFocus) = 0; + + virtual HRESULT __stdcall ShowPropertyFrame( void) = 0; + + }; +# 1713 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IPropertyPage *LPPROPERTYPAGE; + +typedef struct tagPROPPAGEINFO + { + ULONG cb; + LPOLESTR pszTitle; + SIZE size; + LPOLESTR pszDocString; + LPOLESTR pszHelpFile; + DWORD dwHelpContext; + } PROPPAGEINFO; + +typedef struct tagPROPPAGEINFO *LPPROPPAGEINFO; + + +extern "C" const IID IID_IPropertyPage; + + + + struct __declspec(uuid("B196B28D-BAB4-101A-B69C-00AA00341D07")) __declspec(novtable) + IPropertyPage : public IUnknown + { + public: + virtual HRESULT __stdcall SetPageSite( + IPropertyPageSite *pPageSite) = 0; + + virtual HRESULT __stdcall Activate( + HWND hWndParent, + LPCRECT pRect, + BOOL bModal) = 0; + + virtual HRESULT __stdcall Deactivate( void) = 0; + + virtual HRESULT __stdcall GetPageInfo( + PROPPAGEINFO *pPageInfo) = 0; + + virtual HRESULT __stdcall SetObjects( + ULONG cObjects, + IUnknown **ppUnk) = 0; + + virtual HRESULT __stdcall Show( + UINT nCmdShow) = 0; + + virtual HRESULT __stdcall Move( + LPCRECT pRect) = 0; + + virtual HRESULT __stdcall IsPageDirty( void) = 0; + + virtual HRESULT __stdcall Apply( void) = 0; + + virtual HRESULT __stdcall Help( + LPCOLESTR pszHelpDir) = 0; + + virtual HRESULT __stdcall TranslateAcceleratorW( + MSG *pMsg) = 0; + + }; +# 1907 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IPropertyPage2 *LPPROPERTYPAGE2; + + +extern "C" const IID IID_IPropertyPage2; + + + + struct __declspec(uuid("01E44665-24AC-101B-84ED-08002B2EC713")) __declspec(novtable) + IPropertyPage2 : public IPropertyPage + { + public: + virtual HRESULT __stdcall EditProperty( + DISPID dispID) = 0; + + }; +# 2067 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IPropertyPageSite *LPPROPERTYPAGESITE; + +typedef +enum tagPROPPAGESTATUS + { + PROPPAGESTATUS_DIRTY = 0x1, + PROPPAGESTATUS_VALIDATE = 0x2, + PROPPAGESTATUS_CLEAN = 0x4 + } PROPPAGESTATUS; + + +extern "C" const IID IID_IPropertyPageSite; + + + + struct __declspec(uuid("B196B28C-BAB4-101A-B69C-00AA00341D07")) __declspec(novtable) + IPropertyPageSite : public IUnknown + { + public: + virtual HRESULT __stdcall OnStatusChange( + DWORD dwFlags) = 0; + + virtual HRESULT __stdcall GetLocaleID( + LCID *pLocaleID) = 0; + + virtual HRESULT __stdcall GetPageContainer( + IUnknown **ppUnk) = 0; + + virtual HRESULT __stdcall TranslateAcceleratorW( + MSG *pMsg) = 0; + + }; +# 2187 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IPropertyNotifySink *LPPROPERTYNOTIFYSINK; + + +extern "C" const IID IID_IPropertyNotifySink; + + + + struct __declspec(uuid("9BFBBC02-EFF1-101A-84ED-00AA00341D07")) __declspec(novtable) + IPropertyNotifySink : public IUnknown + { + public: + virtual HRESULT __stdcall OnChanged( + DISPID dispID) = 0; + + virtual HRESULT __stdcall OnRequestEdit( + DISPID dispID) = 0; + + }; +# 2279 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef ISpecifyPropertyPages *LPSPECIFYPROPERTYPAGES; + +typedef struct tagCAUUID + { + ULONG cElems; + GUID *pElems; + } CAUUID; + +typedef struct tagCAUUID *LPCAUUID; + + +extern "C" const IID IID_ISpecifyPropertyPages; + + + + struct __declspec(uuid("B196B28B-BAB4-101A-B69C-00AA00341D07")) __declspec(novtable) + ISpecifyPropertyPages : public IUnknown + { + public: + virtual HRESULT __stdcall GetPages( + CAUUID *pPages) = 0; + + }; +# 2369 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IPersistMemory *LPPERSISTMEMORY; + + +extern "C" const IID IID_IPersistMemory; + + + + struct __declspec(uuid("BD1AE5E0-A6AE-11CE-BD37-504200C10000")) __declspec(novtable) + IPersistMemory : public IPersist + { + public: + virtual HRESULT __stdcall IsDirty( void) = 0; + + virtual HRESULT __stdcall Load( + LPVOID pMem, + ULONG cbSize) = 0; + + virtual HRESULT __stdcall Save( + LPVOID pMem, + BOOL fClearDirty, + ULONG cbSize) = 0; + + virtual HRESULT __stdcall GetSizeMax( + ULONG *pCbSize) = 0; + + virtual HRESULT __stdcall InitNew( void) = 0; + + }; +# 2491 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" + HRESULT __stdcall IPersistMemory_RemoteLoad_Proxy( + IPersistMemory * This, + BYTE *pMem, + ULONG cbSize); + + +void __stdcall IPersistMemory_RemoteLoad_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IPersistMemory_RemoteSave_Proxy( + IPersistMemory * This, + BYTE *pMem, + BOOL fClearDirty, + ULONG cbSize); + + +void __stdcall IPersistMemory_RemoteSave_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 2528 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IPersistStreamInit *LPPERSISTSTREAMINIT; + + +extern "C" const IID IID_IPersistStreamInit; + + + + struct __declspec(uuid("7FD52380-4E07-101B-AE2D-08002B2EC713")) __declspec(novtable) + IPersistStreamInit : public IPersist + { + public: + virtual HRESULT __stdcall IsDirty( void) = 0; + + virtual HRESULT __stdcall Load( + LPSTREAM pStm) = 0; + + virtual HRESULT __stdcall Save( + LPSTREAM pStm, + BOOL fClearDirty) = 0; + + virtual HRESULT __stdcall GetSizeMax( + ULARGE_INTEGER *pCbSize) = 0; + + virtual HRESULT __stdcall InitNew( void) = 0; + + }; +# 2656 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IPersistPropertyBag *LPPERSISTPROPERTYBAG; + + +extern "C" const IID IID_IPersistPropertyBag; + + + + struct __declspec(uuid("37D84F60-42CB-11CE-8135-00AA004BB851")) __declspec(novtable) + IPersistPropertyBag : public IPersist + { + public: + virtual HRESULT __stdcall InitNew( void) = 0; + + virtual HRESULT __stdcall Load( + IPropertyBag *pPropBag, + IErrorLog *pErrorLog) = 0; + + virtual HRESULT __stdcall Save( + IPropertyBag *pPropBag, + BOOL fClearDirty, + BOOL fSaveAllProperties) = 0; + + }; +# 2770 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef ISimpleFrameSite *LPSIMPLEFRAMESITE; + + +extern "C" const IID IID_ISimpleFrameSite; + + + + struct __declspec(uuid("742B0E01-14E6-101B-914E-00AA00300CAB")) __declspec(novtable) + ISimpleFrameSite : public IUnknown + { + public: + virtual HRESULT __stdcall PreMessageFilter( + HWND hWnd, + UINT msg, + WPARAM wp, + LPARAM lp, + LRESULT *plResult, + DWORD *pdwCookie) = 0; + + virtual HRESULT __stdcall PostMessageFilter( + HWND hWnd, + UINT msg, + WPARAM wp, + LPARAM lp, + LRESULT *plResult, + DWORD dwCookie) = 0; + + }; +# 2882 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IFont *LPFONT; + + +typedef TEXTMETRICW TEXTMETRICW; + + + + +typedef TEXTMETRICW *LPTEXTMETRICW; + + +extern "C" const IID IID_IFont; + + + + struct __declspec(uuid("BEF6E002-A874-101A-8BBA-00AA00300CAB")) __declspec(novtable) + IFont : public IUnknown + { + public: + virtual HRESULT __stdcall get_Name( + BSTR *pName) = 0; + + virtual HRESULT __stdcall put_Name( + BSTR name) = 0; + + virtual HRESULT __stdcall get_Size( + CY *pSize) = 0; + + virtual HRESULT __stdcall put_Size( + CY size) = 0; + + virtual HRESULT __stdcall get_Bold( + BOOL *pBold) = 0; + + virtual HRESULT __stdcall put_Bold( + BOOL bold) = 0; + + virtual HRESULT __stdcall get_Italic( + BOOL *pItalic) = 0; + + virtual HRESULT __stdcall put_Italic( + BOOL italic) = 0; + + virtual HRESULT __stdcall get_Underline( + BOOL *pUnderline) = 0; + + virtual HRESULT __stdcall put_Underline( + BOOL underline) = 0; + + virtual HRESULT __stdcall get_Strikethrough( + BOOL *pStrikethrough) = 0; + + virtual HRESULT __stdcall put_Strikethrough( + BOOL strikethrough) = 0; + + virtual HRESULT __stdcall get_Weight( + SHORT *pWeight) = 0; + + virtual HRESULT __stdcall put_Weight( + SHORT weight) = 0; + + virtual HRESULT __stdcall get_Charset( + SHORT *pCharset) = 0; + + virtual HRESULT __stdcall put_Charset( + SHORT charset) = 0; + + virtual HRESULT __stdcall get_hFont( + HFONT *phFont) = 0; + + virtual HRESULT __stdcall Clone( + IFont **ppFont) = 0; + + virtual HRESULT __stdcall IsEqual( + IFont *pFontOther) = 0; + + virtual HRESULT __stdcall SetRatio( + LONG cyLogical, + LONG cyHimetric) = 0; + + virtual HRESULT __stdcall QueryTextMetrics( + TEXTMETRICW *pTM) = 0; + + virtual HRESULT __stdcall AddRefHfont( + HFONT hFont) = 0; + + virtual HRESULT __stdcall ReleaseHfont( + HFONT hFont) = 0; + + virtual HRESULT __stdcall SetHdc( + HDC hDC) = 0; + + }; +# 3204 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IPicture *LPPICTURE; + +typedef +enum tagPictureAttributes + { + PICTURE_SCALABLE = 0x1, + PICTURE_TRANSPARENT = 0x2 + } PICTUREATTRIBUTES; + +typedef __declspec(uuid("66504313-BE0F-101A-8BBB-00AA00300CAB")) UINT OLE_HANDLE; + +typedef __declspec(uuid("66504306-BE0F-101A-8BBB-00AA00300CAB")) LONG OLE_XPOS_HIMETRIC; + +typedef __declspec(uuid("66504307-BE0F-101A-8BBB-00AA00300CAB")) LONG OLE_YPOS_HIMETRIC; + +typedef __declspec(uuid("66504308-BE0F-101A-8BBB-00AA00300CAB")) LONG OLE_XSIZE_HIMETRIC; + +typedef __declspec(uuid("66504309-BE0F-101A-8BBB-00AA00300CAB")) LONG OLE_YSIZE_HIMETRIC; + + +extern "C" const IID IID_IPicture; + + + + struct __declspec(uuid("7BF80980-BF32-101A-8BBB-00AA00300CAB")) __declspec(novtable) + IPicture : public IUnknown + { + public: + virtual HRESULT __stdcall get_Handle( + OLE_HANDLE *pHandle) = 0; + + virtual HRESULT __stdcall get_hPal( + OLE_HANDLE *phPal) = 0; + + virtual HRESULT __stdcall get_Type( + SHORT *pType) = 0; + + virtual HRESULT __stdcall get_Width( + OLE_XSIZE_HIMETRIC *pWidth) = 0; + + virtual HRESULT __stdcall get_Height( + OLE_YSIZE_HIMETRIC *pHeight) = 0; + + virtual HRESULT __stdcall Render( + HDC hDC, + LONG x, + LONG y, + LONG cx, + LONG cy, + OLE_XPOS_HIMETRIC xSrc, + OLE_YPOS_HIMETRIC ySrc, + OLE_XSIZE_HIMETRIC cxSrc, + OLE_YSIZE_HIMETRIC cySrc, + LPCRECT pRcWBounds) = 0; + + virtual HRESULT __stdcall set_hPal( + OLE_HANDLE hPal) = 0; + + virtual HRESULT __stdcall get_CurDC( + HDC *phDC) = 0; + + virtual HRESULT __stdcall SelectPicture( + HDC hDCIn, + HDC *phDCOut, + OLE_HANDLE *phBmpOut) = 0; + + virtual HRESULT __stdcall get_KeepOriginalFormat( + BOOL *pKeep) = 0; + + virtual HRESULT __stdcall put_KeepOriginalFormat( + BOOL keep) = 0; + + virtual HRESULT __stdcall PictureChanged( void) = 0; + + virtual HRESULT __stdcall SaveAsFile( + LPSTREAM pStream, + BOOL fSaveMemCopy, + LONG *pCbSize) = 0; + + virtual HRESULT __stdcall get_Attributes( + DWORD *pDwAttr) = 0; + + }; +# 3457 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IPicture2 *LPPICTURE2; + +typedef UINT_PTR HHANDLE; + + +extern "C" const IID IID_IPicture2; + + + + struct __declspec(uuid("F5185DD8-2012-4b0b-AAD9-F052C6BD482B")) __declspec(novtable) + IPicture2 : public IUnknown + { + public: + virtual HRESULT __stdcall get_Handle( + HHANDLE *pHandle) = 0; + + virtual HRESULT __stdcall get_hPal( + HHANDLE *phPal) = 0; + + virtual HRESULT __stdcall get_Type( + SHORT *pType) = 0; + + virtual HRESULT __stdcall get_Width( + OLE_XSIZE_HIMETRIC *pWidth) = 0; + + virtual HRESULT __stdcall get_Height( + OLE_YSIZE_HIMETRIC *pHeight) = 0; + + virtual HRESULT __stdcall Render( + HDC hDC, + LONG x, + LONG y, + LONG cx, + LONG cy, + OLE_XPOS_HIMETRIC xSrc, + OLE_YPOS_HIMETRIC ySrc, + OLE_XSIZE_HIMETRIC cxSrc, + OLE_YSIZE_HIMETRIC cySrc, + LPCRECT pRcWBounds) = 0; + + virtual HRESULT __stdcall set_hPal( + HHANDLE hPal) = 0; + + virtual HRESULT __stdcall get_CurDC( + HDC *phDC) = 0; + + virtual HRESULT __stdcall SelectPicture( + HDC hDCIn, + HDC *phDCOut, + HHANDLE *phBmpOut) = 0; + + virtual HRESULT __stdcall get_KeepOriginalFormat( + BOOL *pKeep) = 0; + + virtual HRESULT __stdcall put_KeepOriginalFormat( + BOOL keep) = 0; + + virtual HRESULT __stdcall PictureChanged( void) = 0; + + virtual HRESULT __stdcall SaveAsFile( + LPSTREAM pStream, + BOOL fSaveMemCopy, + LONG *pCbSize) = 0; + + virtual HRESULT __stdcall get_Attributes( + DWORD *pDwAttr) = 0; + + }; +# 3695 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IFontEventsDisp *LPFONTEVENTS; + + +extern "C" const IID IID_IFontEventsDisp; + + + + struct __declspec(uuid("4EF6100A-AF88-11D0-9846-00C04FC29993")) __declspec(novtable) + IFontEventsDisp : public IDispatch + { + public: + }; +# 3817 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IFontDisp *LPFONTDISP; + + +extern "C" const IID IID_IFontDisp; + + + + struct __declspec(uuid("BEF6E003-A874-101A-8BBA-00AA00300CAB")) __declspec(novtable) + IFontDisp : public IDispatch + { + public: + }; +# 3939 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IPictureDisp *LPPICTUREDISP; + + +extern "C" const IID IID_IPictureDisp; + + + + struct __declspec(uuid("7BF80981-BF32-101A-8BBB-00AA00300CAB")) __declspec(novtable) + IPictureDisp : public IDispatch + { + public: + }; +# 4061 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IOleInPlaceObjectWindowless *LPOLEINPLACEOBJECTWINDOWLESS; + + +extern "C" const IID IID_IOleInPlaceObjectWindowless; + + + + struct __declspec(uuid("1C2056CC-5EF4-101B-8BC8-00AA003E3B29")) __declspec(novtable) + IOleInPlaceObjectWindowless : public IOleInPlaceObject + { + public: + virtual HRESULT __stdcall OnWindowMessage( + UINT msg, + WPARAM wParam, + LPARAM lParam, + LRESULT *plResult) = 0; + + virtual HRESULT __stdcall GetDropTarget( + IDropTarget **ppDropTarget) = 0; + + }; +# 4201 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IOleInPlaceSiteEx *LPOLEINPLACESITEEX; + +typedef +enum tagACTIVATEFLAGS + { + ACTIVATE_WINDOWLESS = 1 + } ACTIVATEFLAGS; + + +extern "C" const IID IID_IOleInPlaceSiteEx; + + + + struct __declspec(uuid("9C2CAD80-3424-11CF-B670-00AA004CD6D8")) __declspec(novtable) + IOleInPlaceSiteEx : public IOleInPlaceSite + { + public: + virtual HRESULT __stdcall OnInPlaceActivateEx( + BOOL *pfNoRedraw, + DWORD dwFlags) = 0; + + virtual HRESULT __stdcall OnInPlaceDeactivateEx( + BOOL fNoRedraw) = 0; + + virtual HRESULT __stdcall RequestUIActivate( void) = 0; + + }; +# 4393 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IOleInPlaceSiteWindowless *LPOLEINPLACESITEWINDOWLESS; + +typedef +enum tagOLEDCFLAGS + { + OLEDC_NODRAW = 0x1, + OLEDC_PAINTBKGND = 0x2, + OLEDC_OFFSCREEN = 0x4 + } OLEDCFLAGS; + + + + +extern "C" const IID IID_IOleInPlaceSiteWindowless; + + + + struct __declspec(uuid("922EADA0-3424-11CF-B670-00AA004CD6D8")) __declspec(novtable) + IOleInPlaceSiteWindowless : public IOleInPlaceSiteEx + { + public: + virtual HRESULT __stdcall CanWindowlessActivate( void) = 0; + + virtual HRESULT __stdcall GetCapture( void) = 0; + + virtual HRESULT __stdcall SetCapture( + BOOL fCapture) = 0; + + virtual HRESULT __stdcall GetFocus( void) = 0; + + virtual HRESULT __stdcall SetFocus( + BOOL fFocus) = 0; + + virtual HRESULT __stdcall GetDC( + LPCRECT pRect, + DWORD grfFlags, + HDC *phDC) = 0; + + virtual HRESULT __stdcall ReleaseDC( + HDC hDC) = 0; + + virtual HRESULT __stdcall InvalidateRect( + LPCRECT pRect, + BOOL fErase) = 0; + + virtual HRESULT __stdcall InvalidateRgn( + HRGN hRGN, + BOOL fErase) = 0; + + virtual HRESULT __stdcall ScrollRect( + INT dx, + INT dy, + LPCRECT pRectScroll, + LPCRECT pRectClip) = 0; + + virtual HRESULT __stdcall AdjustRect( + LPRECT prc) = 0; + + virtual HRESULT __stdcall OnDefWindowMessage( + + UINT msg, + + WPARAM wParam, + + LPARAM lParam, + LRESULT *plResult) = 0; + + }; +# 4721 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IViewObjectEx *LPVIEWOBJECTEX; + +typedef +enum tagVIEWSTATUS + { + VIEWSTATUS_OPAQUE = 1, + VIEWSTATUS_SOLIDBKGND = 2, + VIEWSTATUS_DVASPECTOPAQUE = 4, + VIEWSTATUS_DVASPECTTRANSPARENT = 8, + VIEWSTATUS_SURFACE = 16, + VIEWSTATUS_3DSURFACE = 32 + } VIEWSTATUS; + +typedef +enum tagHITRESULT + { + HITRESULT_OUTSIDE = 0, + HITRESULT_TRANSPARENT = 1, + HITRESULT_CLOSE = 2, + HITRESULT_HIT = 3 + } HITRESULT; + +typedef +enum tagDVASPECT2 + { + DVASPECT_OPAQUE = 16, + DVASPECT_TRANSPARENT = 32 + } DVASPECT2; + +typedef struct tagExtentInfo + { + ULONG cb; + DWORD dwExtentMode; + SIZEL sizelProposed; + } DVEXTENTINFO; + +typedef +enum tagExtentMode + { + DVEXTENT_CONTENT = 0, + DVEXTENT_INTEGRAL = ( DVEXTENT_CONTENT + 1 ) + } DVEXTENTMODE; + +typedef +enum tagAspectInfoFlag + { + DVASPECTINFOFLAG_CANOPTIMIZE = 1 + } DVASPECTINFOFLAG; + +typedef struct tagAspectInfo + { + ULONG cb; + DWORD dwFlags; + } DVASPECTINFO; + + +extern "C" const IID IID_IViewObjectEx; + + + + struct __declspec(uuid("3AF24292-0C96-11CE-A0CF-00AA00600AB8")) __declspec(novtable) + IViewObjectEx : public IViewObject2 + { + public: + virtual HRESULT __stdcall GetRect( + DWORD dwAspect, + LPRECTL pRect) = 0; + + virtual HRESULT __stdcall GetViewStatus( + DWORD *pdwStatus) = 0; + + virtual HRESULT __stdcall QueryHitPoint( + DWORD dwAspect, + LPCRECT pRectBounds, + POINT ptlLoc, + LONG lCloseHint, + DWORD *pHitResult) = 0; + + virtual HRESULT __stdcall QueryHitRect( + DWORD dwAspect, + LPCRECT pRectBounds, + LPCRECT pRectLoc, + LONG lCloseHint, + DWORD *pHitResult) = 0; + + virtual HRESULT __stdcall GetNaturalExtent( + DWORD dwAspect, + LONG lindex, + DVTARGETDEVICE *ptd, + HDC hicTargetDev, + DVEXTENTINFO *pExtentInfo, + LPSIZEL pSizel) = 0; + + }; +# 5023 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IOleUndoUnit *LPOLEUNDOUNIT; + + +extern "C" const IID IID_IOleUndoUnit; + + + + struct __declspec(uuid("894AD3B0-EF97-11CE-9BC9-00AA00608E01")) __declspec(novtable) + IOleUndoUnit : public IUnknown + { + public: + virtual HRESULT __stdcall Do( + IOleUndoManager *pUndoManager) = 0; + + virtual HRESULT __stdcall GetDescription( + BSTR *pBstr) = 0; + + virtual HRESULT __stdcall GetUnitType( + CLSID *pClsid, + LONG *plID) = 0; + + virtual HRESULT __stdcall OnNextAdd( void) = 0; + + }; +# 5135 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IOleParentUndoUnit *LPOLEPARENTUNDOUNIT; + + +extern "C" const IID IID_IOleParentUndoUnit; + + + + struct __declspec(uuid("A1FAF330-EF97-11CE-9BC9-00AA00608E01")) __declspec(novtable) + IOleParentUndoUnit : public IOleUndoUnit + { + public: + virtual HRESULT __stdcall Open( + IOleParentUndoUnit *pPUU) = 0; + + virtual HRESULT __stdcall Close( + IOleParentUndoUnit *pPUU, + BOOL fCommit) = 0; + + virtual HRESULT __stdcall Add( + IOleUndoUnit *pUU) = 0; + + virtual HRESULT __stdcall FindUnit( + IOleUndoUnit *pUU) = 0; + + virtual HRESULT __stdcall GetParentState( + DWORD *pdwState) = 0; + + }; +# 5288 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IEnumOleUndoUnits *LPENUMOLEUNDOUNITS; + + +extern "C" const IID IID_IEnumOleUndoUnits; + + + + struct __declspec(uuid("B3E7C340-EF97-11CE-9BC9-00AA00608E01")) __declspec(novtable) + IEnumOleUndoUnits : public IUnknown + { + public: + virtual HRESULT __stdcall Next( + ULONG cElt, + IOleUndoUnit **rgElt, + ULONG *pcEltFetched) = 0; + + virtual HRESULT __stdcall Skip( + ULONG cElt) = 0; + + virtual HRESULT __stdcall Reset( void) = 0; + + virtual HRESULT __stdcall Clone( + IEnumOleUndoUnits **ppEnum) = 0; + + }; +# 5392 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" + HRESULT __stdcall IEnumOleUndoUnits_RemoteNext_Proxy( + IEnumOleUndoUnits * This, + ULONG cElt, + IOleUndoUnit **rgElt, + ULONG *pcEltFetched); + + +void __stdcall IEnumOleUndoUnits_RemoteNext_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 5417 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IOleUndoManager *LPOLEUNDOMANAGER; + + +extern "C" const IID IID_IOleUndoManager; + + + + struct __declspec(uuid("D001F200-EF97-11CE-9BC9-00AA00608E01")) __declspec(novtable) + IOleUndoManager : public IUnknown + { + public: + virtual HRESULT __stdcall Open( + IOleParentUndoUnit *pPUU) = 0; + + virtual HRESULT __stdcall Close( + IOleParentUndoUnit *pPUU, + BOOL fCommit) = 0; + + virtual HRESULT __stdcall Add( + IOleUndoUnit *pUU) = 0; + + virtual HRESULT __stdcall GetOpenParentState( + DWORD *pdwState) = 0; + + virtual HRESULT __stdcall DiscardFrom( + IOleUndoUnit *pUU) = 0; + + virtual HRESULT __stdcall UndoTo( + IOleUndoUnit *pUU) = 0; + + virtual HRESULT __stdcall RedoTo( + IOleUndoUnit *pUU) = 0; + + virtual HRESULT __stdcall EnumUndoable( + IEnumOleUndoUnits **ppEnum) = 0; + + virtual HRESULT __stdcall EnumRedoable( + IEnumOleUndoUnits **ppEnum) = 0; + + virtual HRESULT __stdcall GetLastUndoDescription( + BSTR *pBstr) = 0; + + virtual HRESULT __stdcall GetLastRedoDescription( + BSTR *pBstr) = 0; + + virtual HRESULT __stdcall Enable( + BOOL fEnable) = 0; + + }; +# 5611 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IPointerInactive *LPPOINTERINACTIVE; + +typedef +enum tagPOINTERINACTIVE + { + POINTERINACTIVE_ACTIVATEONENTRY = 1, + POINTERINACTIVE_DEACTIVATEONLEAVE = 2, + POINTERINACTIVE_ACTIVATEONDRAG = 4 + } POINTERINACTIVE; + + +extern "C" const IID IID_IPointerInactive; + + + + struct __declspec(uuid("55980BA0-35AA-11CF-B671-00AA004CD6D8")) __declspec(novtable) + IPointerInactive : public IUnknown + { + public: + virtual HRESULT __stdcall GetActivationPolicy( + DWORD *pdwPolicy) = 0; + + virtual HRESULT __stdcall OnInactiveMouseMove( + LPCRECT pRectBounds, + LONG x, + LONG y, + DWORD grfKeyState) = 0; + + virtual HRESULT __stdcall OnInactiveSetCursor( + LPCRECT pRectBounds, + LONG x, + LONG y, + DWORD dwMouseMsg, + BOOL fSetAlways) = 0; + + }; +# 5735 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +typedef IObjectWithSite *LPOBJECTWITHSITE; + + +extern "C" const IID IID_IObjectWithSite; + + + + struct __declspec(uuid("FC4801A3-2BA9-11CF-A229-00AA003D7352")) __declspec(novtable) + IObjectWithSite : public IUnknown + { + public: + virtual HRESULT __stdcall SetSite( + IUnknown *pUnkSite) = 0; + + virtual HRESULT __stdcall GetSite( + const IID & riid, + void **ppvSite) = 0; + + }; +# 5832 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0036_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0036_v0_0_s_ifspec; + + + + + + + +typedef IPerPropertyBrowsing *LPPERPROPERTYBROWSING; + +typedef struct tagCALPOLESTR + { + ULONG cElems; + LPOLESTR *pElems; + } CALPOLESTR; + +typedef struct tagCALPOLESTR *LPCALPOLESTR; + +typedef struct tagCADWORD + { + ULONG cElems; + DWORD *pElems; + } CADWORD; + +typedef struct tagCADWORD *LPCADWORD; + + +extern "C" const IID IID_IPerPropertyBrowsing; + + + + struct __declspec(uuid("376BD3AA-3845-101B-84ED-08002B2EC713")) __declspec(novtable) + IPerPropertyBrowsing : public IUnknown + { + public: + virtual HRESULT __stdcall GetDisplayString( + DISPID dispID, + BSTR *pBstr) = 0; + + virtual HRESULT __stdcall MapPropertyToPage( + DISPID dispID, + CLSID *pClsid) = 0; + + virtual HRESULT __stdcall GetPredefinedStrings( + DISPID dispID, + CALPOLESTR *pCaStringsOut, + CADWORD *pCaCookiesOut) = 0; + + virtual HRESULT __stdcall GetPredefinedValue( + DISPID dispID, + DWORD dwCookie, + VARIANT *pVarOut) = 0; + + }; +# 5984 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0037_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0037_v0_0_s_ifspec; + + + + + + + +typedef IPropertyBag2 *LPPROPERTYBAG2; + +typedef +enum tagPROPBAG2_TYPE + { + PROPBAG2_TYPE_UNDEFINED = 0, + PROPBAG2_TYPE_DATA = 1, + PROPBAG2_TYPE_URL = 2, + PROPBAG2_TYPE_OBJECT = 3, + PROPBAG2_TYPE_STREAM = 4, + PROPBAG2_TYPE_STORAGE = 5, + PROPBAG2_TYPE_MONIKER = 6 + } PROPBAG2_TYPE; + +typedef struct tagPROPBAG2 + { + DWORD dwType; + VARTYPE vt; + CLIPFORMAT cfType; + DWORD dwHint; + LPOLESTR pstrName; + CLSID clsid; + } PROPBAG2; + + +extern "C" const IID IID_IPropertyBag2; + + + + struct __declspec(uuid("22F55882-280B-11d0-A8A9-00A0C90C2004")) __declspec(novtable) + IPropertyBag2 : public IUnknown + { + public: + virtual HRESULT __stdcall Read( + ULONG cProperties, + PROPBAG2 *pPropBag, + IErrorLog *pErrLog, + VARIANT *pvarValue, + HRESULT *phrError) = 0; + + virtual HRESULT __stdcall Write( + ULONG cProperties, + PROPBAG2 *pPropBag, + VARIANT *pvarValue) = 0; + + virtual HRESULT __stdcall CountProperties( + ULONG *pcProperties) = 0; + + virtual HRESULT __stdcall GetPropertyInfo( + ULONG iProperty, + ULONG cProperties, + PROPBAG2 *pPropBag, + ULONG *pcProperties) = 0; + + virtual HRESULT __stdcall LoadObject( + LPCOLESTR pstrName, + DWORD dwHint, + IUnknown *pUnkObject, + IErrorLog *pErrLog) = 0; + + }; +# 6164 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0038_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0038_v0_0_s_ifspec; + + + + + + + +typedef IPersistPropertyBag2 *LPPERSISTPROPERTYBAG2; + + +extern "C" const IID IID_IPersistPropertyBag2; + + + + struct __declspec(uuid("22F55881-280B-11d0-A8A9-00A0C90C2004")) __declspec(novtable) + IPersistPropertyBag2 : public IPersist + { + public: + virtual HRESULT __stdcall InitNew( void) = 0; + + virtual HRESULT __stdcall Load( + IPropertyBag2 *pPropBag, + IErrorLog *pErrLog) = 0; + + virtual HRESULT __stdcall Save( + IPropertyBag2 *pPropBag, + BOOL fClearDirty, + BOOL fSaveAllProperties) = 0; + + virtual HRESULT __stdcall IsDirty( void) = 0; + + }; +# 6298 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0039_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0039_v0_0_s_ifspec; + + + + + + + +typedef IAdviseSinkEx *LPADVISESINKEX; + + +extern "C" const IID IID_IAdviseSinkEx; + + + + struct __declspec(uuid("3AF24290-0C96-11CE-A0CF-00AA00600AB8")) __declspec(novtable) + IAdviseSinkEx : public IAdviseSink + { + public: + virtual void __stdcall OnViewStatusChange( + DWORD dwViewStatus) = 0; + + }; +# 6418 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" + HRESULT __stdcall IAdviseSinkEx_RemoteOnViewStatusChange_Proxy( + IAdviseSinkEx * This, + DWORD dwViewStatus); + + +void __stdcall IAdviseSinkEx_RemoteOnViewStatusChange_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 6443 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0040_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0040_v0_0_s_ifspec; + + + + + + + +typedef IQuickActivate *LPQUICKACTIVATE; + +typedef +enum tagQACONTAINERFLAGS + { + QACONTAINER_SHOWHATCHING = 0x1, + QACONTAINER_SHOWGRABHANDLES = 0x2, + QACONTAINER_USERMODE = 0x4, + QACONTAINER_DISPLAYASDEFAULT = 0x8, + QACONTAINER_UIDEAD = 0x10, + QACONTAINER_AUTOCLIP = 0x20, + QACONTAINER_MESSAGEREFLECT = 0x40, + QACONTAINER_SUPPORTSMNEMONICS = 0x80 + } QACONTAINERFLAGS; + +typedef __declspec(uuid("66504301-BE0F-101A-8BBB-00AA00300CAB")) DWORD OLE_COLOR; + +typedef struct tagQACONTAINER + { + ULONG cbSize; + IOleClientSite *pClientSite; + IAdviseSinkEx *pAdviseSink; + IPropertyNotifySink *pPropertyNotifySink; + IUnknown *pUnkEventSink; + DWORD dwAmbientFlags; + OLE_COLOR colorFore; + OLE_COLOR colorBack; + IFont *pFont; + IOleUndoManager *pUndoMgr; + DWORD dwAppearance; + LONG lcid; + HPALETTE hpal; + IBindHost *pBindHost; + IOleControlSite *pOleControlSite; + IServiceProvider *pServiceProvider; + } QACONTAINER; + +typedef struct tagQACONTROL + { + ULONG cbSize; + DWORD dwMiscStatus; + DWORD dwViewStatus; + DWORD dwEventCookie; + DWORD dwPropNotifyCookie; + DWORD dwPointerActivationPolicy; + } QACONTROL; + + +extern "C" const IID IID_IQuickActivate; + + + + struct __declspec(uuid("CF51ED10-62FE-11CF-BF86-00A0C9034836")) __declspec(novtable) + IQuickActivate : public IUnknown + { + public: + virtual HRESULT __stdcall QuickActivate( + QACONTAINER *pQaContainer, + QACONTROL *pQaControl) = 0; + + virtual HRESULT __stdcall SetContentExtent( + LPSIZEL pSizel) = 0; + + virtual HRESULT __stdcall GetContentExtent( + LPSIZEL pSizel) = 0; + + }; +# 6591 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" + HRESULT __stdcall IQuickActivate_RemoteQuickActivate_Proxy( + IQuickActivate * This, + QACONTAINER *pQaContainer, + QACONTROL *pQaControl); + + +void __stdcall IQuickActivate_RemoteQuickActivate_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 6614 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ocidl.h" +#pragma warning(pop) + + + +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0041_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_ocidl_0000_0041_v0_0_s_ifspec; + + + +unsigned long __stdcall BSTR_UserSize( unsigned long *, unsigned long , BSTR * ); +unsigned char * __stdcall BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * ); +unsigned char * __stdcall BSTR_UserUnmarshal( unsigned long *, unsigned char *, BSTR * ); +void __stdcall BSTR_UserFree( unsigned long *, BSTR * ); + +unsigned long __stdcall CLIPFORMAT_UserSize( unsigned long *, unsigned long , CLIPFORMAT * ); +unsigned char * __stdcall CLIPFORMAT_UserMarshal( unsigned long *, unsigned char *, CLIPFORMAT * ); +unsigned char * __stdcall CLIPFORMAT_UserUnmarshal( unsigned long *, unsigned char *, CLIPFORMAT * ); +void __stdcall CLIPFORMAT_UserFree( unsigned long *, CLIPFORMAT * ); + +unsigned long __stdcall HACCEL_UserSize( unsigned long *, unsigned long , HACCEL * ); +unsigned char * __stdcall HACCEL_UserMarshal( unsigned long *, unsigned char *, HACCEL * ); +unsigned char * __stdcall HACCEL_UserUnmarshal( unsigned long *, unsigned char *, HACCEL * ); +void __stdcall HACCEL_UserFree( unsigned long *, HACCEL * ); + +unsigned long __stdcall HDC_UserSize( unsigned long *, unsigned long , HDC * ); +unsigned char * __stdcall HDC_UserMarshal( unsigned long *, unsigned char *, HDC * ); +unsigned char * __stdcall HDC_UserUnmarshal( unsigned long *, unsigned char *, HDC * ); +void __stdcall HDC_UserFree( unsigned long *, HDC * ); + +unsigned long __stdcall HFONT_UserSize( unsigned long *, unsigned long , HFONT * ); +unsigned char * __stdcall HFONT_UserMarshal( unsigned long *, unsigned char *, HFONT * ); +unsigned char * __stdcall HFONT_UserUnmarshal( unsigned long *, unsigned char *, HFONT * ); +void __stdcall HFONT_UserFree( unsigned long *, HFONT * ); + +unsigned long __stdcall HPALETTE_UserSize( unsigned long *, unsigned long , HPALETTE * ); +unsigned char * __stdcall HPALETTE_UserMarshal( unsigned long *, unsigned char *, HPALETTE * ); +unsigned char * __stdcall HPALETTE_UserUnmarshal( unsigned long *, unsigned char *, HPALETTE * ); +void __stdcall HPALETTE_UserFree( unsigned long *, HPALETTE * ); + +unsigned long __stdcall HRGN_UserSize( unsigned long *, unsigned long , HRGN * ); +unsigned char * __stdcall HRGN_UserMarshal( unsigned long *, unsigned char *, HRGN * ); +unsigned char * __stdcall HRGN_UserUnmarshal( unsigned long *, unsigned char *, HRGN * ); +void __stdcall HRGN_UserFree( unsigned long *, HRGN * ); + +unsigned long __stdcall HWND_UserSize( unsigned long *, unsigned long , HWND * ); +unsigned char * __stdcall HWND_UserMarshal( unsigned long *, unsigned char *, HWND * ); +unsigned char * __stdcall HWND_UserUnmarshal( unsigned long *, unsigned char *, HWND * ); +void __stdcall HWND_UserFree( unsigned long *, HWND * ); + +unsigned long __stdcall VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * ); +unsigned char * __stdcall VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * ); +unsigned char * __stdcall VARIANT_UserUnmarshal( unsigned long *, unsigned char *, VARIANT * ); +void __stdcall VARIANT_UserFree( unsigned long *, VARIANT * ); + +unsigned long __stdcall BSTR_UserSize64( unsigned long *, unsigned long , BSTR * ); +unsigned char * __stdcall BSTR_UserMarshal64( unsigned long *, unsigned char *, BSTR * ); +unsigned char * __stdcall BSTR_UserUnmarshal64( unsigned long *, unsigned char *, BSTR * ); +void __stdcall BSTR_UserFree64( unsigned long *, BSTR * ); + +unsigned long __stdcall CLIPFORMAT_UserSize64( unsigned long *, unsigned long , CLIPFORMAT * ); +unsigned char * __stdcall CLIPFORMAT_UserMarshal64( unsigned long *, unsigned char *, CLIPFORMAT * ); +unsigned char * __stdcall CLIPFORMAT_UserUnmarshal64( unsigned long *, unsigned char *, CLIPFORMAT * ); +void __stdcall CLIPFORMAT_UserFree64( unsigned long *, CLIPFORMAT * ); + +unsigned long __stdcall HACCEL_UserSize64( unsigned long *, unsigned long , HACCEL * ); +unsigned char * __stdcall HACCEL_UserMarshal64( unsigned long *, unsigned char *, HACCEL * ); +unsigned char * __stdcall HACCEL_UserUnmarshal64( unsigned long *, unsigned char *, HACCEL * ); +void __stdcall HACCEL_UserFree64( unsigned long *, HACCEL * ); + +unsigned long __stdcall HDC_UserSize64( unsigned long *, unsigned long , HDC * ); +unsigned char * __stdcall HDC_UserMarshal64( unsigned long *, unsigned char *, HDC * ); +unsigned char * __stdcall HDC_UserUnmarshal64( unsigned long *, unsigned char *, HDC * ); +void __stdcall HDC_UserFree64( unsigned long *, HDC * ); + +unsigned long __stdcall HFONT_UserSize64( unsigned long *, unsigned long , HFONT * ); +unsigned char * __stdcall HFONT_UserMarshal64( unsigned long *, unsigned char *, HFONT * ); +unsigned char * __stdcall HFONT_UserUnmarshal64( unsigned long *, unsigned char *, HFONT * ); +void __stdcall HFONT_UserFree64( unsigned long *, HFONT * ); + +unsigned long __stdcall HPALETTE_UserSize64( unsigned long *, unsigned long , HPALETTE * ); +unsigned char * __stdcall HPALETTE_UserMarshal64( unsigned long *, unsigned char *, HPALETTE * ); +unsigned char * __stdcall HPALETTE_UserUnmarshal64( unsigned long *, unsigned char *, HPALETTE * ); +void __stdcall HPALETTE_UserFree64( unsigned long *, HPALETTE * ); + +unsigned long __stdcall HRGN_UserSize64( unsigned long *, unsigned long , HRGN * ); +unsigned char * __stdcall HRGN_UserMarshal64( unsigned long *, unsigned char *, HRGN * ); +unsigned char * __stdcall HRGN_UserUnmarshal64( unsigned long *, unsigned char *, HRGN * ); +void __stdcall HRGN_UserFree64( unsigned long *, HRGN * ); + +unsigned long __stdcall HWND_UserSize64( unsigned long *, unsigned long , HWND * ); +unsigned char * __stdcall HWND_UserMarshal64( unsigned long *, unsigned char *, HWND * ); +unsigned char * __stdcall HWND_UserUnmarshal64( unsigned long *, unsigned char *, HWND * ); +void __stdcall HWND_UserFree64( unsigned long *, HWND * ); + +unsigned long __stdcall VARIANT_UserSize64( unsigned long *, unsigned long , VARIANT * ); +unsigned char * __stdcall VARIANT_UserMarshal64( unsigned long *, unsigned char *, VARIANT * ); +unsigned char * __stdcall VARIANT_UserUnmarshal64( unsigned long *, unsigned char *, VARIANT * ); +void __stdcall VARIANT_UserFree64( unsigned long *, VARIANT * ); + + HRESULT __stdcall IEnumConnections_Next_Proxy( + IEnumConnections * This, + ULONG cConnections, + LPCONNECTDATA rgcd, + ULONG *pcFetched); + + + HRESULT __stdcall IEnumConnections_Next_Stub( + IEnumConnections * This, + ULONG cConnections, + LPCONNECTDATA rgcd, + ULONG *pcFetched); + + HRESULT __stdcall IEnumConnectionPoints_Next_Proxy( + IEnumConnectionPoints * This, + ULONG cConnections, + LPCONNECTIONPOINT *ppCP, + ULONG *pcFetched); + + + HRESULT __stdcall IEnumConnectionPoints_Next_Stub( + IEnumConnectionPoints * This, + ULONG cConnections, + LPCONNECTIONPOINT *ppCP, + ULONG *pcFetched); + + HRESULT __stdcall IClassFactory2_CreateInstanceLic_Proxy( + IClassFactory2 * This, + IUnknown *pUnkOuter, + IUnknown *pUnkReserved, + const IID & riid, + BSTR bstrKey, + PVOID *ppvObj); + + + HRESULT __stdcall IClassFactory2_CreateInstanceLic_Stub( + IClassFactory2 * This, + const IID & riid, + BSTR bstrKey, + IUnknown **ppvObj); + + HRESULT __stdcall IPersistMemory_Load_Proxy( + IPersistMemory * This, + LPVOID pMem, + ULONG cbSize); + + + HRESULT __stdcall IPersistMemory_Load_Stub( + IPersistMemory * This, + BYTE *pMem, + ULONG cbSize); + + HRESULT __stdcall IPersistMemory_Save_Proxy( + IPersistMemory * This, + LPVOID pMem, + BOOL fClearDirty, + ULONG cbSize); + + + HRESULT __stdcall IPersistMemory_Save_Stub( + IPersistMemory * This, + BYTE *pMem, + BOOL fClearDirty, + ULONG cbSize); + + HRESULT __stdcall IEnumOleUndoUnits_Next_Proxy( + IEnumOleUndoUnits * This, + ULONG cElt, + IOleUndoUnit **rgElt, + ULONG *pcEltFetched); + + + HRESULT __stdcall IEnumOleUndoUnits_Next_Stub( + IEnumOleUndoUnits * This, + ULONG cElt, + IOleUndoUnit **rgElt, + ULONG *pcEltFetched); + + void __stdcall IAdviseSinkEx_OnViewStatusChange_Proxy( + IAdviseSinkEx * This, + DWORD dwViewStatus); + + + HRESULT __stdcall IAdviseSinkEx_OnViewStatusChange_Stub( + IAdviseSinkEx * This, + DWORD dwViewStatus); + + HRESULT __stdcall IQuickActivate_QuickActivate_Proxy( + IQuickActivate * This, + QACONTAINER *pQaContainer, + QACONTROL *pQaControl); + + + HRESULT __stdcall IQuickActivate_QuickActivate_Stub( + IQuickActivate * This, + QACONTAINER *pQaContainer, + QACONTROL *pQaControl); + + + + + + +} +# 25 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\olectl.h" 2 +# 37 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\olectl.h" +extern "C" const GUID IID_IPropertyFrame; + + + + + + +extern "C" const GUID CLSID_CFontPropPage; + +extern "C" const GUID CLSID_CColorPropPage; + +extern "C" const GUID CLSID_CPicturePropPage; + + + + + + +extern "C" const GUID CLSID_PersistPropset; + +extern "C" const GUID CLSID_ConvertVBX; + + + + + +extern "C" const GUID CLSID_StdFont; + +extern "C" const GUID CLSID_StdPicture; + + + + + + +extern "C" const GUID GUID_HIMETRIC; + +extern "C" const GUID GUID_COLOR; + +extern "C" const GUID GUID_XPOSPIXEL; + +extern "C" const GUID GUID_YPOSPIXEL; + +extern "C" const GUID GUID_XSIZEPIXEL; + +extern "C" const GUID GUID_YSIZEPIXEL; + +extern "C" const GUID GUID_XPOS; + +extern "C" const GUID GUID_YPOS; + +extern "C" const GUID GUID_XSIZE; + +extern "C" const GUID GUID_YSIZE; + + + + + + + +extern "C" const GUID GUID_OPTIONVALUEEXCLUSIVE; + +extern "C" const GUID GUID_CHECKVALUEEXCLUSIVE; + +extern "C" const GUID GUID_FONTNAME; + +extern "C" const GUID GUID_FONTSIZE; + +extern "C" const GUID GUID_FONTBOLD; + +extern "C" const GUID GUID_FONTITALIC; + +extern "C" const GUID GUID_FONTUNDERSCORE; + +extern "C" const GUID GUID_FONTSTRIKETHROUGH; + +extern "C" const GUID GUID_HANDLE; +# 123 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\olectl.h" +typedef struct tagOCPFIPARAMS +{ + ULONG cbStructSize; + HWND hWndOwner; + int x; + int y; + LPCOLESTR lpszCaption; + ULONG cObjects; + LPUNKNOWN * lplpUnk; + ULONG cPages; + CLSID * lpPages; + LCID lcid; + DISPID dispidInitialProperty; + +} OCPFIPARAMS, * LPOCPFIPARAMS; + + + + + + + +typedef struct tagFONTDESC +{ + UINT cbSizeofstruct; + LPOLESTR lpstrName; + CY cySize; + SHORT sWeight; + SHORT sCharset; + BOOL fItalic; + BOOL fUnderline; + BOOL fStrikethrough; + +} FONTDESC, * LPFONTDESC; +# 171 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\olectl.h" +typedef struct tagPICTDESC +{ + UINT cbSizeofstruct; + UINT picType; + union + { + struct + { + HBITMAP hbitmap; + HPALETTE hpal; + } bmp; + + struct + { + HMETAFILE hmeta; + int xExt; + int yExt; + } wmf; + + struct + { + HICON hicon; + } icon; + + + struct + { + HENHMETAFILE hemf; + } emf; + + }; + +} PICTDESC, * LPPICTDESC; + + + + + +typedef LONG OLE_XPOS_PIXELS; +typedef LONG OLE_YPOS_PIXELS; +typedef LONG OLE_XSIZE_PIXELS; +typedef LONG OLE_YSIZE_PIXELS; +typedef float OLE_XPOS_CONTAINER; +typedef float OLE_YPOS_CONTAINER; +typedef float OLE_XSIZE_CONTAINER; +typedef float OLE_YSIZE_CONTAINER; +typedef enum { triUnchecked = 0, triChecked = 1, triGray = 2 } OLE_TRISTATE; +typedef VARIANT_BOOL OLE_OPTEXCLUSIVE; +typedef VARIANT_BOOL OLE_CANCELBOOL; +typedef VARIANT_BOOL OLE_ENABLEDEFAULTBOOL; +# 415 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\olectl.h" +extern "C" HRESULT __stdcall DllRegisterServer(void); + +extern "C" HRESULT __stdcall DllUnregisterServer(void); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreatePropertyFrame(HWND hwndOwner, UINT x, UINT y, + LPCOLESTR lpszCaption, ULONG cObjects, LPUNKNOWN * ppUnk, ULONG cPages, + LPCLSID pPageClsID, LCID lcid, DWORD dwReserved, LPVOID pvReserved); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreatePropertyFrameIndirect(LPOCPFIPARAMS lpParams); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall OleTranslateColor(OLE_COLOR clr, HPALETTE hpal, + COLORREF* lpcolorref); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreateFontIndirect(LPFONTDESC lpFontDesc, const IID & riid, + LPVOID * lplpvObj); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleCreatePictureIndirect(LPPICTDESC lpPictDesc, const IID & riid, + BOOL fOwn, LPVOID * lplpvObj); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleLoadPicture(LPSTREAM lpstream, LONG lSize, BOOL fRunmode, + const IID & riid, LPVOID * lplpvObj); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleLoadPictureEx(LPSTREAM lpstream, LONG lSize, BOOL fRunmode, + const IID & riid, DWORD xSizeDesired, DWORD ySizeDesired, DWORD dwFlags, + LPVOID * lplpvObj); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleLoadPicturePath( LPOLESTR szURLorPath, + LPUNKNOWN punkCaller, + DWORD dwReserved, + OLE_COLOR clrReserved, + const IID & riid, + LPVOID * ppvRet ); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleLoadPictureFile(VARIANT varFileName, + LPDISPATCH* lplpdispPicture); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleLoadPictureFileEx(VARIANT varFileName, + DWORD xSizeDesired, DWORD ySizeDesired, DWORD dwFlags, LPDISPATCH* lplpdispPicture); + +extern "C" __declspec(dllimport) HRESULT __stdcall OleSavePictureFile(LPDISPATCH lpdispPicture, + BSTR bstrFileName); + +extern "C" __declspec(dllimport) HCURSOR __stdcall OleIconToCursor(HINSTANCE hinstExe, HICON hIcon); + + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 473 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\olectl.h" 2 +# 19 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" 2 + + + +#pragma warning(push) +#pragma warning(disable: 4127) +#pragma warning(disable: 4510) +#pragma warning(disable: 4571) +#pragma warning(disable: 4610) + +#pragma pack(push,8) +namespace ATL +{ + + + + +__declspec( noinline ) inline HRESULT AtlHresultFromLastError() throw() +{ + DWORD dwErr = ::GetLastError(); + return HRESULT_FROM_WIN32(dwErr); +} + +__declspec( noinline ) inline + +HRESULT AtlHresultFromWin32( DWORD nError) throw() +{ + return( HRESULT_FROM_WIN32( nError ) ); +} + + + + +__declspec(nothrow) IUnknown* __stdcall AtlComPtrAssign( + IUnknown** pp, + IUnknown* lp); + +__declspec(nothrow) IUnknown* __stdcall AtlComQIPtrAssign( + IUnknown** pp, + IUnknown* lp, + const IID & riid); + + + + +union ClassesAllowedInStream +{ + const CLSID *rgclsidAllowed; + HRESULT (*pfnClsidAllowed)( + const CLSID& clsid, + const IID & iidInterface, + void** ppvObj); +}; + + + + inline HRESULT AtlInternalOleLoadFromStream( + IStream* pStm, + const IID & iidInterface, + void** ppvObj, + ClassesAllowedInStream rgclsidAllowed, + DWORD cclsidAllowed); + + + +inline __declspec(nothrow) IUnknown* __stdcall AtlComPtrAssign( + IUnknown** pp, + IUnknown* lp) +{ + if (pp == 0) + return 0; + + if (lp != 0) + lp->AddRef(); + if (*pp) + (*pp)->Release(); + *pp = lp; + return lp; +} + +inline __declspec(nothrow) IUnknown* __stdcall AtlComQIPtrAssign( + IUnknown** pp, + IUnknown* lp, + const IID & riid) +{ + if (pp == 0) + return 0; + + IUnknown* pTemp = *pp; + + if (lp == 0 || (((HRESULT)(lp->QueryInterface(riid, (void**)pp))) < 0)) + *pp = 0; + + if (pTemp) + pTemp->Release(); + return *pp; +} + + + + +template +class _NoAddRefReleaseOnCComPtr : + public T +{ + private: + virtual __declspec(nothrow) ULONG __stdcall AddRef()=0; + virtual __declspec(nothrow) ULONG __stdcall Release()=0; +}; + + + + inline HRESULT AtlSetChildSite( + IUnknown* punkChild, + IUnknown* punkParent) +{ + if (punkChild == 0) + return ((HRESULT)0x80004003L); + + HRESULT hr; + IObjectWithSite* pChildSite = 0; + hr = punkChild->QueryInterface(__uuidof(IObjectWithSite), (void**)&pChildSite); + if ((((HRESULT)(hr)) >= 0) && pChildSite != 0) + { + hr = pChildSite->SetSite(punkParent); + pChildSite->Release(); + } + return hr; +} + + + + + +template +class CComPtrBase +{ +protected: + CComPtrBase() throw() + { + p = 0; + } + CComPtrBase( T* lp) throw() + { + p = lp; + if (p != 0) + p->AddRef(); + } + void Swap(CComPtrBase& other) + { + T* pTemp = p; + p = other.p; + other.p = pTemp; + } +public: + typedef T _PtrClass; + ~CComPtrBase() throw() + { + if (p) + p->Release(); + } + operator T*() const throw() + { + return p; + } + T& operator*() const + { + do { int __atl_condVal=!!(p!=0); do { (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 185, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); ; } +# 185 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +#pragma warning(suppress: 4127) +# 185 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" + while (0); if(!(__atl_condVal)) ATL::AtlThrowImpl(((HRESULT)0x80004005L)); } +# 185 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +#pragma warning(suppress: 4127) +# 185 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" + while (0); + return *p; + } + + + T** operator&() throw() + { + (void)( (!!((p==0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 192, 0, L"%ls", L"p==0")) || (__debugbreak(), 0) ); + return &p; + } + _NoAddRefReleaseOnCComPtr* operator->() const throw() + { + (void)( (!!((p!=0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 197, 0, L"%ls", L"p!=0")) || (__debugbreak(), 0) ); + return (_NoAddRefReleaseOnCComPtr*)p; + } + bool operator!() const throw() + { + return (p == 0); + } + bool operator<( T* pT) const throw() + { + return p < pT; + } + bool operator!=( T* pT) const + { + return !operator==(pT); + } + bool operator==( T* pT) const throw() + { + return p == pT; + } + + + void Release() throw() + { + T* pTemp = p; + if (pTemp) + { + p = 0; + pTemp->Release(); + } + } + + bool IsEqualObject( IUnknown* pOther) throw() + { + if (p == 0 && pOther == 0) + return true; + + if (p == 0 || pOther == 0) + return false; + + CComPtr punk1; + CComPtr punk2; + p->QueryInterface(__uuidof(IUnknown), (void**)&punk1); + pOther->QueryInterface(__uuidof(IUnknown), (void**)&punk2); + return punk1 == punk2; + } + + void Attach( T* p2) throw() + { + if (p) + { + ULONG ref = p->Release(); + (ref); + + + (void)( (!!((ref != 0 || p2 != p))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 251, 0, L"%ls", L"ref != 0 || p2 != p")) || (__debugbreak(), 0) ); + } + p = p2; + } + + T* Detach() throw() + { + T* pt = p; + p = 0; + return pt; + } + HRESULT CopyTo( T** ppT) throw() + { + (void)( (!!((ppT != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 264, 0, L"%ls", L"ppT != 0")) || (__debugbreak(), 0) ); + if (ppT == 0) + return ((HRESULT)0x80004003L); + *ppT = p; + if (p) + p->AddRef(); + return ((HRESULT)0L); + } + HRESULT SetSite( IUnknown* punkParent) throw() + { + return AtlSetChildSite(p, punkParent); + } + HRESULT Advise( + IUnknown* pUnk, + const IID& iid, + LPDWORD pdw) throw() + { + return AtlAdvise(p, pUnk, iid, pdw); + } + HRESULT CoCreateInstance( + const IID & rclsid, + LPUNKNOWN pUnkOuter = 0, + DWORD dwClsContext = (CLSCTX_INPROC_SERVER| CLSCTX_INPROC_HANDLER| CLSCTX_LOCAL_SERVER| CLSCTX_REMOTE_SERVER)) throw() + { + (void)( (!!((p == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 288, 0, L"%ls", L"p == 0")) || (__debugbreak(), 0) ); + return ::CoCreateInstance(rclsid, pUnkOuter, dwClsContext, __uuidof(T), (void**)&p); + } + + HRESULT CoCreateInstance( + LPCOLESTR szProgID, + LPUNKNOWN pUnkOuter = 0, + DWORD dwClsContext = (CLSCTX_INPROC_SERVER| CLSCTX_INPROC_HANDLER| CLSCTX_LOCAL_SERVER| CLSCTX_REMOTE_SERVER)) throw() + { + CLSID clsid; + HRESULT hr = CLSIDFromProgID(szProgID, &clsid); + (void)( (!!((p == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 299, 0, L"%ls", L"p == 0")) || (__debugbreak(), 0) ); + if ((((HRESULT)(hr)) >= 0)) + hr = ::CoCreateInstance(clsid, pUnkOuter, dwClsContext, __uuidof(T), (void**)&p); + return hr; + } + + template + HRESULT QueryInterface( Q** pp) const throw() + { + (void)( (!!((pp != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 308, 0, L"%ls", L"pp != 0")) || (__debugbreak(), 0) ); + return p->QueryInterface(__uuidof(Q), (void**)pp); + } + T* p; +}; + +template +class CComPtr : + public CComPtrBase +{ +public: + CComPtr() throw() + { + } + CComPtr( T* lp) throw() : + CComPtrBase(lp) + { + } + CComPtr( const CComPtr& lp) throw() : + CComPtrBase(lp.p) + { + } + T* operator=( T* lp) throw() + { + if(*this!=lp) + { + CComPtr(lp).Swap(*this); + } + return *this; + } + template + T* operator=( const CComPtr& lp) throw() + { + if( !IsEqualObject(lp) ) + { + return static_cast(AtlComQIPtrAssign((IUnknown**)&p, lp, __uuidof(T))); + } + return *this; + } + T* operator=( const CComPtr& lp) throw() + { + if(*this!=lp) + { + CComPtr(lp).Swap(*this); + } + return *this; + } + CComPtr( CComPtr&& lp) throw() : + CComPtrBase() + { + lp.Swap(*this); + } + T* operator=( CComPtr&& lp) throw() + { + if (*this != lp) + { + CComPtr(static_cast(lp)).Swap(*this); + } + return *this; + } +}; + + +template <> +class CComPtr : + public CComPtrBase +{ +public: + CComPtr() throw() + { + } + CComPtr( IDispatch* lp) throw() : + CComPtrBase(lp) + { + } + CComPtr( const CComPtr& lp) throw() : + CComPtrBase(lp.p) + { + } + IDispatch* operator=( IDispatch* lp) throw() + { + if(*this!=lp) + { + CComPtr(lp).Swap(*this); + } + return *this; + } + IDispatch* operator=( const CComPtr& lp) throw() + { + if(*this!=lp) + { + CComPtr(lp).Swap(*this); + } + return *this; + } + CComPtr( CComPtr&& lp) throw() : + CComPtrBase() + { + p = lp.p; + lp.p = 0; + } + IDispatch* operator=( CComPtr&& lp) throw() + { + CComPtr(static_cast(lp)).Swap(*this); + return *this; + } + + + HRESULT GetPropertyByName( + LPCOLESTR lpsz, + VARIANT* pVar) throw() + { + (void)( (!!((p))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 420, 0, L"%ls", L"p")) || (__debugbreak(), 0) ); + (void)( (!!((pVar))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 421, 0, L"%ls", L"pVar")) || (__debugbreak(), 0) ); + DISPID dwDispID; + HRESULT hr = GetIDOfName(lpsz, &dwDispID); + if ((((HRESULT)(hr)) >= 0)) + hr = GetProperty(dwDispID, pVar); + return hr; + } + HRESULT GetProperty( + DISPID dwDispID, + VARIANT* pVar) throw() + { + return GetProperty(p, dwDispID, pVar); + } + HRESULT PutPropertyByName( + LPCOLESTR lpsz, + VARIANT* pVar) throw() + { + (void)( (!!((p))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 438, 0, L"%ls", L"p")) || (__debugbreak(), 0) ); + (void)( (!!((pVar))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 439, 0, L"%ls", L"pVar")) || (__debugbreak(), 0) ); + DISPID dwDispID; + HRESULT hr = GetIDOfName(lpsz, &dwDispID); + if ((((HRESULT)(hr)) >= 0)) + hr = PutProperty(dwDispID, pVar); + return hr; + } + HRESULT PutProperty( + DISPID dwDispID, + VARIANT* pVar) throw() + { + return PutProperty(p, dwDispID, pVar); + } + HRESULT GetIDOfName( + LPCOLESTR lpsz, + DISPID* pdispid) throw() + { + return p->GetIDsOfNames(GUID_NULL, const_cast(&lpsz), 1, (((DWORD)((((DWORD)((WORD )(0x0))) << 16) | ((DWORD)((WORD )((((((WORD )(0x01)) << 10) | (WORD )(0x00))))))))), pdispid); + } + + HRESULT Invoke0( + DISPID dispid, + VARIANT* pvarRet = 0) throw() + { + DISPPARAMS dispparams = { 0, 0, 0, 0}; + return p->Invoke(dispid, GUID_NULL, (((DWORD)((((DWORD)((WORD )(0x0))) << 16) | ((DWORD)((WORD )((((((WORD )(0x01)) << 10) | (WORD )(0x00))))))))), 0x1, &dispparams, pvarRet, 0, 0); + } + + HRESULT Invoke0( + LPCOLESTR lpszName, + VARIANT* pvarRet = 0) throw() + { + HRESULT hr; + DISPID dispid; + hr = GetIDOfName(lpszName, &dispid); + if ((((HRESULT)(hr)) >= 0)) + hr = Invoke0(dispid, pvarRet); + return hr; + } + + HRESULT Invoke1( + DISPID dispid, + VARIANT* pvarParam1, + VARIANT* pvarRet = 0) throw() + { + DISPPARAMS dispparams = { pvarParam1, 0, 1, 0}; + return p->Invoke(dispid, GUID_NULL, (((DWORD)((((DWORD)((WORD )(0x0))) << 16) | ((DWORD)((WORD )((((((WORD )(0x01)) << 10) | (WORD )(0x00))))))))), 0x1, &dispparams, pvarRet, 0, 0); + } + + HRESULT Invoke1( + LPCOLESTR lpszName, + VARIANT* pvarParam1, + VARIANT* pvarRet = 0) throw() + { + DISPID dispid; + HRESULT hr = GetIDOfName(lpszName, &dispid); + if ((((HRESULT)(hr)) >= 0)) + hr = Invoke1(dispid, pvarParam1, pvarRet); + return hr; + } + + HRESULT Invoke2( + DISPID dispid, + VARIANT* pvarParam1, + VARIANT* pvarParam2, + VARIANT* pvarRet = 0) throw(); + + HRESULT Invoke2( + LPCOLESTR lpszName, + VARIANT* pvarParam1, + VARIANT* pvarParam2, + VARIANT* pvarRet = 0) throw() + { + DISPID dispid; + HRESULT hr = GetIDOfName(lpszName, &dispid); + if ((((HRESULT)(hr)) >= 0)) + hr = Invoke2(dispid, pvarParam1, pvarParam2, pvarRet); + return hr; + } + + HRESULT InvokeN( + DISPID dispid, + VARIANT* pvarParams, + int nParams, + VARIANT* pvarRet = 0) throw() + { + DISPPARAMS dispparams = {pvarParams, 0, (unsigned int)nParams, 0}; + return p->Invoke(dispid, GUID_NULL, (((DWORD)((((DWORD)((WORD )(0x0))) << 16) | ((DWORD)((WORD )((((((WORD )(0x01)) << 10) | (WORD )(0x00))))))))), 0x1, &dispparams, pvarRet, 0, 0); + } + + HRESULT InvokeN( + LPCOLESTR lpszName, + VARIANT* pvarParams, + int nParams, + VARIANT* pvarRet = 0) throw() + { + HRESULT hr; + DISPID dispid; + hr = GetIDOfName(lpszName, &dispid); + if ((((HRESULT)(hr)) >= 0)) + hr = InvokeN(dispid, pvarParams, nParams, pvarRet); + return hr; + } + + static HRESULT PutProperty( + IDispatch* pDispatch, + DISPID dwDispID, + VARIANT* pVar) throw() + { + (void)( (!!((pDispatch))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 548, 0, L"%ls", L"pDispatch")) || (__debugbreak(), 0) ); + (void)( (!!((pVar != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 549, 0, L"%ls", L"pVar != 0")) || (__debugbreak(), 0) ); + if (pVar == 0) + return ((HRESULT)0x80004003L); + + if (pDispatch == 0) + return ((HRESULT)0x80070057L); + + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 556)(atlTraceCOM, 2, L"CPropertyHelper::PutProperty\n"); + DISPPARAMS dispparams = {0, 0, 1, 1}; + dispparams.rgvarg = pVar; + DISPID dispidPut = ( -3 ); + dispparams.rgdispidNamedArgs = &dispidPut; + + if (pVar->vt == VT_UNKNOWN || pVar->vt == VT_DISPATCH || + (pVar->vt & VT_ARRAY) || (pVar->vt & VT_BYREF)) + { + HRESULT hr = pDispatch->Invoke(dwDispID, GUID_NULL, + (((DWORD)((((DWORD)((WORD )(0x0))) << 16) | ((DWORD)((WORD )((((((WORD )(0x01)) << 10) | (WORD )(0x00))))))))), 0x8, + &dispparams, 0, 0, 0); + if ((((HRESULT)(hr)) >= 0)) + return hr; + } + return pDispatch->Invoke(dwDispID, GUID_NULL, + (((DWORD)((((DWORD)((WORD )(0x0))) << 16) | ((DWORD)((WORD )((((((WORD )(0x01)) << 10) | (WORD )(0x00))))))))), 0x4, + &dispparams, 0, 0, 0); + } + + static HRESULT GetProperty( + IDispatch* pDispatch, + DISPID dwDispID, + VARIANT* pVar) throw() + { + (void)( (!!((pDispatch))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 581, 0, L"%ls", L"pDispatch")) || (__debugbreak(), 0) ); + (void)( (!!((pVar != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 582, 0, L"%ls", L"pVar != 0")) || (__debugbreak(), 0) ); + if (pVar == 0) + return ((HRESULT)0x80004003L); + + if (pDispatch == 0) + return ((HRESULT)0x80070057L); + + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 589)(atlTraceCOM, 2, L"CPropertyHelper::GetProperty\n"); + DISPPARAMS dispparamsNoArgs = {0, 0, 0, 0}; + return pDispatch->Invoke(dwDispID, GUID_NULL, + (((DWORD)((((DWORD)((WORD )(0x0))) << 16) | ((DWORD)((WORD )((((((WORD )(0x01)) << 10) | (WORD )(0x00))))))))), 0x2, + &dispparamsNoArgs, pVar, 0, 0); + } + +}; + +template +class CComQIPtr : + public CComPtr +{ +public: + CComQIPtr() throw() + { + } + CComQIPtr(decltype(__nullptr)) throw() + { + } + CComQIPtr( T* lp) throw() : + CComPtr(lp) + { + } + CComQIPtr( const CComQIPtr& lp) throw() : + CComPtr(lp.p) + { + } + CComQIPtr( IUnknown* lp) throw() + { + if (lp != 0) + { + if ((((HRESULT)(lp->QueryInterface(*piid, (void **)&p))) < 0)) + p = 0; + } + } + T* operator=(decltype(__nullptr)) throw() + { + CComQIPtr(nullptr).Swap(*this); + return nullptr; + } + T* operator=( T* lp) throw() + { + if(*this!=lp) + { + CComQIPtr(lp).Swap(*this); + } + return *this; + } + T* operator=( const CComQIPtr& lp) throw() + { + if(*this!=lp) + { + CComQIPtr(lp).Swap(*this); + } + return *this; + } + T* operator=( IUnknown* lp) throw() + { + if(*this!=lp) + { + return static_cast(AtlComQIPtrAssign((IUnknown**)&p, lp, *piid)); + } + return *this; + } +}; + + +template<> +class CComQIPtr : + public CComPtr +{ +public: + CComQIPtr() throw() + { + } + CComQIPtr( IUnknown* lp) throw() + { + + if (lp != 0) + { + if ((((HRESULT)(lp->QueryInterface(__uuidof(IUnknown), (void **)&p))) < 0)) + p = 0; + } + } + CComQIPtr( const CComQIPtr& lp) throw() : + CComPtr(lp.p) + { + } + IUnknown* operator=( IUnknown* lp) throw() + { + if(*this!=lp) + { + + return AtlComQIPtrAssign((IUnknown**)&p, lp, __uuidof(IUnknown)); + } + return *this; + } + + IUnknown* operator=( const CComQIPtr& lp) throw() + { + if(*this!=lp) + { + CComQIPtr(lp).Swap(*this); + } + return *this; + } +}; + +typedef CComQIPtr CComDispatchDriver; +# 708 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +class CComBSTR +{ +public: + BSTR m_str; + + CComBSTR() throw() + { + m_str = 0; + } + CComBSTR(decltype(__nullptr)) throw() + { + m_str = 0; + } + + + + CComBSTR( int nSize) + + { + if (nSize < 0) + { + ATL::AtlThrowImpl(((HRESULT)0x80070057L)); + } + + if (nSize == 0) + { + m_str = 0; + } + else + { + m_str = ::SysAllocStringLen(0, nSize); + if (!*this) + { + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + } + } + } + + CComBSTR( int nSize, LPCOLESTR sz) + { + if (nSize < 0) + { + ATL::AtlThrowImpl(((HRESULT)0x80070057L)); + } + + if (nSize == 0) + { + m_str = 0; + } + else + { + m_str = ::SysAllocStringLen(sz, nSize); + if (!*this) + { + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + } + } + } + + CComBSTR( LPCOLESTR pSrc) + { + if (pSrc == 0) + { + m_str = 0; + } + else + { + m_str = ::SysAllocString(pSrc); + if (!*this) + { + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + } + } + } + + CComBSTR( const CComBSTR& src) + { + m_str = src.Copy(); + if (!!src && !*this) + { + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + } + } + + CComBSTR( const GUID & guid) + { + OLECHAR szGUID[64]; + int result = ::StringFromGUID2(guid, szGUID, 64); + (void)( (!!((result != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 796, 0, L"%ls", L"result != 0")) || (__debugbreak(), 0) ); + (result); + m_str = ::SysAllocString(szGUID); + if (!*this) + { + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + } + } + + CComBSTR& operator=(decltype(__nullptr)) throw() + { + ::SysFreeString(m_str); + m_str = 0; + return *this; + } + + CComBSTR& operator=( const CComBSTR& src) + { + if (m_str != src.m_str) + { + ::SysFreeString(m_str); + m_str = src.Copy(); + if (!!src && !*this) + { + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + } + } + return *this; + } + + CComBSTR& operator=( LPCOLESTR pSrc) + { + if (pSrc != m_str) + { + ::SysFreeString(m_str); + if (pSrc != 0) + { + m_str = ::SysAllocString(pSrc); + if (!*this) + { + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + } + } + else + { + m_str = 0; + } + } + return *this; + } + CComBSTR( CComBSTR&& src) + { + m_str = src.m_str; + src.m_str = 0; + } + + CComBSTR& operator=( CComBSTR&& src) + { + if (m_str != src.m_str) + { + ::SysFreeString(m_str); + m_str = src.m_str; + src.m_str = 0; + } + return *this; + } + + ~CComBSTR() throw(); + + unsigned int Length() const throw() + { + return ::SysStringLen(m_str); + } + + unsigned int ByteLength() const throw() + { + return ::SysStringByteLen(m_str); + } + + operator BSTR() const throw() + { + return m_str; + } +# 887 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" + BSTR* operator&() throw() + { + + + + return &m_str; + } + + BSTR Copy() const throw() + { + if (!*this) + { + return 0; + } + else if (m_str != 0) + { + return ::SysAllocStringByteLen((char*)m_str, ::SysStringByteLen(m_str)); + } + else + { + return ::SysAllocStringByteLen(0, 0); + } + } + + HRESULT CopyTo( BSTR* pbstr) const throw() + { + (void)( (!!((pbstr != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 913, 0, L"%ls", L"pbstr != 0")) || (__debugbreak(), 0) ); + if (pbstr == 0) + { + return ((HRESULT)0x80004003L); + } + *pbstr = Copy(); + + if ((*pbstr == 0) && (m_str != 0)) + { + return ((HRESULT)0x8007000EL); + } + return ((HRESULT)0L); + } + + + HRESULT CopyTo( VARIANT *pvarDest) const throw() + { + (void)( (!!((pvarDest != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 930, 0, L"%ls", L"pvarDest != 0")) || (__debugbreak(), 0) ); + HRESULT hRes = ((HRESULT)0x80004003L); + if (pvarDest != 0) + { + pvarDest->vt = VT_BSTR; + pvarDest->bstrVal = Copy(); + + if (pvarDest->bstrVal == 0 && m_str != 0) + { + hRes = ((HRESULT)0x8007000EL); + } + else + { + hRes = ((HRESULT)0L); + } + } + return hRes; + } + + void Attach( BSTR src) throw() + { + if (m_str != src) + { + ::SysFreeString(m_str); + m_str = src; + } + } + + BSTR Detach() throw() + { + BSTR s = m_str; + m_str = 0; + return s; + } + + void Empty() throw() + { + ::SysFreeString(m_str); + m_str = 0; + } + + bool operator!() const throw() + { + return (m_str == 0); + } + + HRESULT Append( const CComBSTR& bstrSrc) throw() + { + return AppendBSTR(bstrSrc.m_str); + } + + HRESULT Append( LPCOLESTR lpsz) throw() + { + return Append(lpsz, UINT(ocslen(lpsz))); + } + + + + HRESULT AppendBSTR( BSTR p) throw() + { + if (::SysStringLen(p) == 0) + { + return ((HRESULT)0L); + } + BSTR bstrNew = 0; + HRESULT hr; + ; + hr = VarBstrCat(m_str, p, &bstrNew); + if ((((HRESULT)(hr)) >= 0)) + { + ::SysFreeString(m_str); + m_str = bstrNew; + } + return hr; + } + + HRESULT Append( LPCOLESTR lpsz, int nLen) throw() + { + if (lpsz == 0 || (m_str != 0 && nLen == 0)) + { + return ((HRESULT)0L); + } + else if (nLen < 0) + { + return ((HRESULT)0x80070057L); + } + + const unsigned int n1 = Length(); + unsigned int n1Bytes = 0; + unsigned int nSize = 0; + unsigned int nSizeBytes = 0; + + HRESULT hr = AtlAdd(&nSize, n1, nLen); + if ((((HRESULT)(hr)) < 0)) + { + return hr; + } + + hr = AtlMultiply(&nSizeBytes, nSize, sizeof(OLECHAR)); + if ((((HRESULT)(hr)) < 0)) + { + return hr; + } + + hr = AtlMultiply(&n1Bytes, n1, sizeof(OLECHAR)); + if ((((HRESULT)(hr)) < 0)) + { + return hr; + } + + BSTR b = ::SysAllocStringLen(0, nSize); + if (b == 0) + { + return ((HRESULT)0x8007000EL); + } + + if(::SysStringLen(m_str) > 0) + { + ; + Checked::memcpy_s(b, nSizeBytes, m_str, n1Bytes); + } + + Checked::memcpy_s(b+n1, nLen*sizeof(OLECHAR), lpsz, nLen*sizeof(OLECHAR)); + b[nSize] = '\0'; + SysFreeString(m_str); + m_str = b; + return ((HRESULT)0L); + } + + HRESULT Append( char ch) throw() + { + OLECHAR chO = ch; + + return( Append( &chO, 1 ) ); + } + + HRESULT Append( wchar_t ch) throw() + { + return( Append( &ch, 1 ) ); + } + + HRESULT AppendBytes( + const char* lpsz, + int nLen) throw() + { + if (lpsz == 0 || nLen == 0) + { + return ((HRESULT)0L); + } + else if (nLen < 0) + { + return ((HRESULT)0x80070057L); + } + + const unsigned int n1 = ByteLength(); + unsigned int nSize = 0; + HRESULT hr = AtlAdd(&nSize, n1, nLen); + if ((((HRESULT)(hr)) < 0)) + { + return hr; + } + + BSTR b = ::SysAllocStringByteLen(0, nSize); + if (b == 0) + { + return ((HRESULT)0x8007000EL); + } + + Checked::memcpy_s(b, nSize, m_str, n1); + Checked::memcpy_s(((char*)b) + n1, nLen, lpsz, nLen); + + *((OLECHAR*)(((char*)b) + nSize)) = '\0'; + SysFreeString(m_str); + m_str = b; + return ((HRESULT)0L); + } + + HRESULT AssignBSTR( const BSTR bstrSrc) throw() + { + HRESULT hr = ((HRESULT)0L); + if (m_str != bstrSrc) + { + ::SysFreeString(m_str); + if (bstrSrc != 0) + { + m_str = ::SysAllocStringByteLen((char*)bstrSrc, ::SysStringByteLen(bstrSrc)); + if (!*this) + { + hr = ((HRESULT)0x8007000EL); + } + } + else + { + m_str = 0; + } + } + + return hr; + } + + HRESULT ToLower() throw() + { + if (::SysStringLen(m_str) > 0) + { +# 1144 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" + CharLowerBuffW(m_str, Length()); +# 1191 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" + } + return ((HRESULT)0L); + } + HRESULT ToUpper() throw() + { + if (::SysStringLen(m_str) > 0) + { +# 1208 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" + CharUpperBuffW(m_str, Length()); +# 1255 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" + } + return ((HRESULT)0L); + } + + + bool LoadStringW( + HINSTANCE hInst, + UINT nID) throw() + { + ::SysFreeString(m_str); + m_str = 0; + return LoadStringResource(hInst, nID, m_str); + } + + bool LoadStringW( UINT nID) throw() + { + ::SysFreeString(m_str); + m_str = 0; + return LoadStringResource(nID, m_str); + } + + + CComBSTR& operator+=( const CComBSTR& bstrSrc) + { + HRESULT hr; + hr = AppendBSTR(bstrSrc.m_str); + if ((((HRESULT)(hr)) < 0)) + ATL::AtlThrowImpl(hr); + return *this; + } + + CComBSTR& operator+=( LPCOLESTR pszSrc) + { + HRESULT hr; + hr = Append(pszSrc); + if ((((HRESULT)(hr)) < 0)) + ATL::AtlThrowImpl(hr); + return *this; + } + + bool operator<( const CComBSTR& bstrSrc) const throw() + { + return VarBstrCmp(m_str, bstrSrc.m_str, (((DWORD)((((DWORD)((WORD )(0x0))) << 16) | ((DWORD)((WORD )((((((WORD )(0x01)) << 10) | (WORD )(0x00))))))))), 0) == static_cast(0); + } + bool operator<( LPCOLESTR pszSrc) const + { + CComBSTR bstr2(pszSrc); + return operator<(bstr2); + } + bool operator<( LPOLESTR pszSrc) const + { + return operator<((LPCOLESTR)pszSrc); + } + + bool operator>( const CComBSTR& bstrSrc) const throw() + { + return VarBstrCmp(m_str, bstrSrc.m_str, (((DWORD)((((DWORD)((WORD )(0x0))) << 16) | ((DWORD)((WORD )((((((WORD )(0x01)) << 10) | (WORD )(0x00))))))))), 0) == static_cast(2); + } + bool operator>( LPCOLESTR pszSrc) const + { + CComBSTR bstr2(pszSrc); + return operator>(bstr2); + } + bool operator>( LPOLESTR pszSrc) const + { + return operator>((LPCOLESTR)pszSrc); + } + + bool operator!=( const CComBSTR& bstrSrc) const throw() + { + return !operator==(bstrSrc); + } + bool operator!=( LPCOLESTR pszSrc) const + { + return !operator==(pszSrc); + } + bool operator!=( int nNull) const throw() + { + return !operator==(nNull); + } + bool operator!=( LPOLESTR pszSrc) const + { + return operator!=((LPCOLESTR)pszSrc); + } + bool operator==( const CComBSTR& bstrSrc) const throw() + { + return VarBstrCmp(m_str, bstrSrc.m_str, (((DWORD)((((DWORD)((WORD )(0x0))) << 16) | ((DWORD)((WORD )((((((WORD )(0x01)) << 10) | (WORD )(0x00))))))))), 0) == static_cast(1); + } + bool operator==(LPCOLESTR pszSrc) const + { + CComBSTR bstr2(pszSrc); + return operator==(bstr2); + } + bool operator==( LPOLESTR pszSrc) const + { + return operator==((LPCOLESTR)pszSrc); + } + + bool operator==( int nNull) const throw() + { + (void)( (!!((nNull == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 1355, 0, L"%ls", L"nNull == 0")) || (__debugbreak(), 0) ); + (void)nNull; + return (!*this); + } + + bool operator==(decltype(__nullptr)) const throw() + { + return *this == 0; + } + + bool operator!=(decltype(__nullptr)) const throw() + { + return *this != 0; + } + + CComBSTR( LPCSTR pSrc) + { + if (pSrc != 0) + { + m_str = A2WBSTR(pSrc); + if (!*this) + { + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + } + } + else + { + m_str = 0; + } + } + + CComBSTR( int nSize, LPCSTR sz) + { + if (nSize < 0) + { + ATL::AtlThrowImpl(((HRESULT)0x80070057L)); + } + + if (nSize != 0 && sz == 0) + { + m_str = ::SysAllocStringLen(0, nSize); + if (!*this) + { + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + } + return; + } + + m_str = A2WBSTR(sz, nSize); + if (!*this && nSize != 0) + { + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + } + } + + HRESULT Append( LPCSTR lpsz) throw() + { + if (lpsz == 0) + return ((HRESULT)0L); + + CComBSTR bstrTemp; +#pragma warning(push) +# 1416 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +#pragma warning(disable: 4571) +# 1416 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" + try{bstrTemp = lpsz;} catch(...) {} +# 1416 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +#pragma warning(pop) +# 1416 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +; + if (!bstrTemp) + { + return ((HRESULT)0x8007000EL); + } + return Append(bstrTemp); + } + + CComBSTR& operator=( LPCSTR pSrc) + { + ::SysFreeString(m_str); + m_str = A2WBSTR(pSrc); + if (!*this && pSrc != 0) + { + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + } + return *this; + } + + bool operator<( LPCSTR pszSrc) const + { + CComBSTR bstr2(pszSrc); + return operator<(bstr2); + } + bool operator>( LPCSTR pszSrc) const + { + CComBSTR bstr2(pszSrc); + return operator>(bstr2); + } + bool operator!=( LPCSTR pszSrc) const + { + return !operator==(pszSrc); + } + bool operator==( LPCSTR pszSrc) const + { + CComBSTR bstr2(pszSrc); + return operator==(bstr2); + } + + HRESULT WriteToStream( IStream* pStream) throw() + { + (void)( (!!((pStream != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 1457, 0, L"%ls", L"pStream != 0")) || (__debugbreak(), 0) ); + if(pStream == 0) + { + return ((HRESULT)0x80070057L); + } + + ULONG cb; + ULONG cbStrLen = CComBSTR::GetStreamSize(m_str); + (void)( (!!((cbStrLen >= sizeof(ULONG)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 1465, 0, L"%ls", L"cbStrLen >= sizeof(ULONG)")) || (__debugbreak(), 0) ); + cbStrLen -= sizeof(ULONG); + + HRESULT hr = pStream->Write((void*) &cbStrLen, sizeof(cbStrLen), &cb); + if ((((HRESULT)(hr)) < 0)) + { + return hr; + } + + if (cbStrLen == 0) + { + return ((HRESULT)0L); + } + return pStream->Write((void*) m_str, cbStrLen, &cb); + } + + HRESULT ReadFromStream( IStream* pStream) throw() + { + (void)( (!!((pStream != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 1483, 0, L"%ls", L"pStream != 0")) || (__debugbreak(), 0) ); + if(pStream == 0) + { + return ((HRESULT)0x80070057L); + } + + (void)( (!!((!*this))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 1489, 0, L"%ls", L"!*this")) || (__debugbreak(), 0) ); + Empty(); + + HRESULT hrSeek; + ULARGE_INTEGER nBegOffset; + { + LARGE_INTEGER nZeroOffset; + nZeroOffset.QuadPart = 0L; + hrSeek = pStream->Seek(nZeroOffset, STREAM_SEEK_CUR, &nBegOffset); + } + + ULONG cbRead = 0; + ULONG cbStrLen = 0; + HRESULT hr = pStream->Read(reinterpret_cast(&cbStrLen), sizeof(cbStrLen), &cbRead); + + if ((((HRESULT)(hr)) >= 0)) + { + + if (sizeof(cbStrLen) != cbRead) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 1509)(atlTraceCOM, 0, L"Input stream is corrupted."); + hr = ((HRESULT)0x80004005L); + } + + else if (cbStrLen == 0) + { + } + + else if (cbStrLen < sizeof(OLECHAR)) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 1519)(atlTraceCOM, 0, L"Input stream is corrupted."); + hr = ((HRESULT)0x80004005L); + } + + else if (cbStrLen > 0x100000) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 1525)(atlTraceCOM, 0, L"String exceeded the maximum allowed size see _ATL_STREAM_MAX_SIZE."); + hr = ((HRESULT)0x80070005L); + } + else + { + + cbStrLen -= sizeof(OLECHAR); + + m_str = ::SysAllocStringByteLen(0, cbStrLen); + if (!*this) + { + hr = ((HRESULT)0x8007000EL); + } + else + { + hr = pStream->Read(reinterpret_cast(m_str), cbStrLen, &cbRead); + + if ((((HRESULT)(hr)) >= 0)) + { + if (cbRead != cbStrLen) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 1546)(atlTraceCOM, 0, L"Length of string data is different than expected."); + hr = ((HRESULT)0x80004005L); + } + else + { + OLECHAR ch; + hr = pStream->Read(reinterpret_cast(&ch), sizeof(OLECHAR), &cbRead); + + if ((((HRESULT)(hr)) >= 0)) + { + + if (cbRead != sizeof(OLECHAR) || ch != L'\0') + + + + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 1562)(atlTraceCOM, 0, L"Cannot read NULL terminator from stream."); + hr = ((HRESULT)0x80004005L); + } + } + } + } + + if ((((HRESULT)(hr)) < 0)) + { +#pragma warning(push) +# 1571 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +#pragma warning(disable: 6102) + ::SysFreeString(m_str); +#pragma warning(pop) + m_str = 0; + } + } + } + } + + + + if ((((HRESULT)(hr)) < 0) && (((HRESULT)(hrSeek)) >= 0)) + { + LARGE_INTEGER nOffset; + nOffset.QuadPart = static_cast(nBegOffset.QuadPart); + pStream->Seek(nOffset, STREAM_SEEK_SET, 0); + } + + return hr; + } + + + + static bool LoadStringResource( + HINSTANCE hInstance, + UINT uID, + BSTR& bstrText) throw() + { + (void)( (!!((bstrText == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 1599, 0, L"%ls", L"bstrText == 0")) || (__debugbreak(), 0) ); + + const ATLSTRINGRESOURCEIMAGE* pImage = AtlGetStringResourceImage(hInstance, uID); + if (pImage != 0) + { + bstrText = ::SysAllocStringLen(pImage->achString, pImage->nLength); + } + else + { + bstrText = 0; + } + return (bstrText != 0) ? true : false; + } + + + static bool LoadStringResource( + UINT uID, + BSTR& bstrText) throw() + { + (void)( (!!((bstrText == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 1618, 0, L"%ls", L"bstrText == 0")) || (__debugbreak(), 0) ); + + const ATLSTRINGRESOURCEIMAGE* pImage = AtlGetStringResourceImage(uID); + if (pImage != 0) + { + bstrText = ::SysAllocStringLen(pImage->achString, pImage->nLength); + } + else + { + bstrText = 0; + } + + return (bstrText != 0) ? true : false; + } + + + HRESULT BSTRToArray( LPSAFEARRAY *ppArray) throw() + { + return VectorFromBstr(m_str, ppArray); + } + + + HRESULT ArrayToBSTR( const SAFEARRAY *pSrc) throw() + { + ::SysFreeString(m_str); + return BstrFromVector((LPSAFEARRAY)pSrc, &m_str); + } + + + static ULONG GetStreamSize( BSTR bstr) + { + ULONG ulSize = sizeof(ULONG); + if (bstr != 0) + { + ulSize += SysStringByteLen(bstr) + sizeof(OLECHAR); + } + + return ulSize; + } +}; + +inline CComBSTR::~CComBSTR() throw() +{ + ::SysFreeString(m_str); +} + +inline void SysFreeStringHelper( CComBSTR& bstr) +{ + bstr.Empty(); +} + +inline void SysFreeStringHelper( BSTR bstr) +{ + ::SysFreeString(bstr); +} + + inline HRESULT SysAllocStringHelper( + CComBSTR& bstrDest, + BSTR bstrSrc) +{ + bstrDest=bstrSrc; + return !bstrDest ? ((HRESULT)0x8007000EL) : ((HRESULT)0L); +} + + inline HRESULT SysAllocStringHelper( + BSTR& bstrDest, + BSTR bstrSrc) +{ + bstrDest=::SysAllocString(bstrSrc); + + return bstrDest==0 ? ((HRESULT)0x8007000EL) : ((HRESULT)0L); +} + + + + + + +template +class CAdapt +{ +public: + CAdapt() + { + } + CAdapt( const T& rSrc) : + m_T( rSrc ) + { + } + CAdapt( const CAdapt& rSrCA) : + m_T( rSrCA.m_T ) + { + } + CAdapt& operator=( const T& rSrc) + { + m_T = rSrc; + + return *this; + } + CAdapt& operator=( const CAdapt& rSrc) + { + if (this != &rSrc) + { + m_T = rSrc.m_T; + } + return *this; + } + CAdapt( T&& rSrc) : + m_T( static_cast(rSrc) ) + { + } + CAdapt( CAdapt&& rSrCA) : + m_T( static_cast(rSrCA.m_T) ) + { + } + CAdapt& operator=( T&& rSrc) + { + m_T = static_cast(rSrc); + + return *this; + } + CAdapt& operator=( CAdapt&& rSrc) + { + if (this != &rSrc) + { + m_T = static_cast( rSrc.m_T ); + } + return *this; + } + bool operator<( const T& rSrc) const + { + return m_T < rSrc; + } + bool operator==( const T& rSrc) const + { + return m_T == rSrc; + } + operator T&() + { + return m_T; + } + + operator const T&() const + { + return m_T; + } + + T& operator->() + { + return m_T; + } + + const T& operator->() const + { + return m_T; + } + + T m_T; +}; +# 1785 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +template< typename T > +class CVarTypeInfo +{ + + +}; + +template<> +class CVarTypeInfo< char > +{ +public: + static const VARTYPE VT = VT_I1; + static char VARIANT::* const pmField; +}; + +__declspec( selectany ) char VARIANT::* const CVarTypeInfo< char >::pmField = &VARIANT::cVal; + +template<> +class CVarTypeInfo< unsigned char > +{ +public: + static const VARTYPE VT = VT_UI1; + static unsigned char VARIANT::* const pmField; +}; + +__declspec( selectany ) unsigned char VARIANT::* const CVarTypeInfo< unsigned char >::pmField = &VARIANT::bVal; + +template<> +class CVarTypeInfo< char* > +{ +public: + static const VARTYPE VT = VT_I1|VT_BYREF; + static char* VARIANT::* const pmField; +}; + +__declspec( selectany ) char* VARIANT::* const CVarTypeInfo< char* >::pmField = &VARIANT::pcVal; + +template<> +class CVarTypeInfo< unsigned char* > +{ +public: + static const VARTYPE VT = VT_UI1|VT_BYREF; + static unsigned char* VARIANT::* const pmField; +}; + +__declspec( selectany ) unsigned char* VARIANT::* const CVarTypeInfo< unsigned char* >::pmField = &VARIANT::pbVal; + +template<> +class CVarTypeInfo< short > +{ +public: + static const VARTYPE VT = VT_I2; + static short VARIANT::* const pmField; +}; + +__declspec( selectany ) short VARIANT::* const CVarTypeInfo< short >::pmField = &VARIANT::iVal; + +template<> +class CVarTypeInfo< short* > +{ +public: + static const VARTYPE VT = VT_I2|VT_BYREF; + static short* VARIANT::* const pmField; +}; + +__declspec( selectany ) short* VARIANT::* const CVarTypeInfo< short* >::pmField = &VARIANT::piVal; + +template<> +class CVarTypeInfo< unsigned short > +{ +public: + static const VARTYPE VT = VT_UI2; + static unsigned short VARIANT::* const pmField; +}; + +__declspec( selectany ) unsigned short VARIANT::* const CVarTypeInfo< unsigned short >::pmField = &VARIANT::uiVal; + + +template<> +class CVarTypeInfo< unsigned short* > +{ +public: + static const VARTYPE VT = VT_UI2|VT_BYREF; + static unsigned short* VARIANT::* const pmField; +}; + +__declspec( selectany ) unsigned short* VARIANT::* const CVarTypeInfo< unsigned short* >::pmField = &VARIANT::puiVal; + + +template<> +class CVarTypeInfo< int > +{ +public: + static const VARTYPE VT = VT_I4; + static int VARIANT::* const pmField; +}; + +__declspec( selectany ) int VARIANT::* const CVarTypeInfo< int >::pmField = &VARIANT::intVal; + +template<> +class CVarTypeInfo< int* > +{ +public: + static const VARTYPE VT = VT_I4|VT_BYREF; + static int* VARIANT::* const pmField; +}; + +__declspec( selectany ) int* VARIANT::* const CVarTypeInfo< int* >::pmField = &VARIANT::pintVal; + +template<> +class CVarTypeInfo< unsigned int > +{ +public: + static const VARTYPE VT = VT_UI4; + static unsigned int VARIANT::* const pmField; +}; + +__declspec( selectany ) unsigned int VARIANT::* const CVarTypeInfo< unsigned int >::pmField = &VARIANT::uintVal; + +template<> +class CVarTypeInfo< unsigned int* > +{ +public: + static const VARTYPE VT = VT_UI4|VT_BYREF; + static unsigned int* VARIANT::* const pmField; +}; + +__declspec( selectany ) unsigned int* VARIANT::* const CVarTypeInfo< unsigned int* >::pmField = &VARIANT::puintVal; + +template<> +class CVarTypeInfo< long > +{ +public: + static const VARTYPE VT = VT_I4; + static long VARIANT::* const pmField; +}; + +__declspec( selectany ) long VARIANT::* const CVarTypeInfo< long >::pmField = &VARIANT::lVal; + +template<> +class CVarTypeInfo< long* > +{ +public: + static const VARTYPE VT = VT_I4|VT_BYREF; + static long* VARIANT::* const pmField; +}; + +__declspec( selectany ) long* VARIANT::* const CVarTypeInfo< long* >::pmField = &VARIANT::plVal; + +template<> +class CVarTypeInfo< unsigned long > +{ +public: + static const VARTYPE VT = VT_UI4; + static unsigned long VARIANT::* const pmField; +}; + +__declspec( selectany ) unsigned long VARIANT::* const CVarTypeInfo< unsigned long >::pmField = &VARIANT::ulVal; + +template<> +class CVarTypeInfo< unsigned long* > +{ +public: + static const VARTYPE VT = VT_UI4|VT_BYREF; + static unsigned long* VARIANT::* const pmField; +}; + +__declspec( selectany ) unsigned long* VARIANT::* const CVarTypeInfo< unsigned long* >::pmField = &VARIANT::pulVal; + +template<> +class CVarTypeInfo< __int64 > +{ +public: + static const VARTYPE VT = VT_I8; + static __int64 VARIANT::* const pmField; +}; + +__declspec( selectany ) __int64 VARIANT::* const CVarTypeInfo< __int64 >::pmField = &VARIANT::llVal; + +template<> +class CVarTypeInfo< __int64* > +{ +public: + static const VARTYPE VT = VT_I8|VT_BYREF; + static __int64* VARIANT::* const pmField; +}; + +__declspec( selectany ) __int64* VARIANT::* const CVarTypeInfo< __int64* >::pmField = &VARIANT::pllVal; + +template<> +class CVarTypeInfo< unsigned __int64 > +{ +public: + static const VARTYPE VT = VT_UI8; + static unsigned __int64 VARIANT::* const pmField; +}; + +__declspec( selectany ) unsigned __int64 VARIANT::* const CVarTypeInfo< unsigned __int64 >::pmField = &VARIANT::ullVal; + +template<> +class CVarTypeInfo< unsigned __int64* > +{ +public: + static const VARTYPE VT = VT_UI8|VT_BYREF; + static unsigned __int64* VARIANT::* const pmField; +}; + +__declspec( selectany ) unsigned __int64* VARIANT::* const CVarTypeInfo< unsigned __int64* >::pmField = &VARIANT::pullVal; + +template<> +class CVarTypeInfo< float > +{ +public: + static const VARTYPE VT = VT_R4; + static float VARIANT::* const pmField; +}; + +__declspec( selectany ) float VARIANT::* const CVarTypeInfo< float >::pmField = &VARIANT::fltVal; + +template<> +class CVarTypeInfo< float* > +{ +public: + static const VARTYPE VT = VT_R4|VT_BYREF; + static float* VARIANT::* const pmField; +}; + +__declspec( selectany ) float* VARIANT::* const CVarTypeInfo< float* >::pmField = &VARIANT::pfltVal; + +template<> +class CVarTypeInfo< double > +{ +public: + static const VARTYPE VT = VT_R8; + static double VARIANT::* const pmField; +}; + +__declspec( selectany ) double VARIANT::* const CVarTypeInfo< double >::pmField = &VARIANT::dblVal; + +template<> +class CVarTypeInfo< double* > +{ +public: + static const VARTYPE VT = VT_R8|VT_BYREF; + static double* VARIANT::* const pmField; +}; + +__declspec( selectany ) double* VARIANT::* const CVarTypeInfo< double* >::pmField = &VARIANT::pdblVal; + +template<> + +class CVarTypeInfo< VARIANT* > +{ +public: + static const VARTYPE VT = VT_VARIANT|VT_BYREF; +}; + +template<> +class CVarTypeInfo< BSTR > +{ +public: + static const VARTYPE VT = VT_BSTR; + static BSTR VARIANT::* const pmField; +}; + +__declspec( selectany ) BSTR VARIANT::* const CVarTypeInfo< BSTR >::pmField = &VARIANT::bstrVal; + +template<> +class CVarTypeInfo< BSTR* > +{ +public: + static const VARTYPE VT = VT_BSTR|VT_BYREF; + static BSTR* VARIANT::* const pmField; +}; + +__declspec( selectany ) BSTR* VARIANT::* const CVarTypeInfo< BSTR* >::pmField = &VARIANT::pbstrVal; + +template<> +class CVarTypeInfo< IUnknown* > +{ +public: + static const VARTYPE VT = VT_UNKNOWN; + static IUnknown* VARIANT::* const pmField; +}; + +__declspec( selectany ) IUnknown* VARIANT::* const CVarTypeInfo< IUnknown* >::pmField = &VARIANT::punkVal; + +template<> +class CVarTypeInfo< IUnknown** > +{ +public: + static const VARTYPE VT = VT_UNKNOWN|VT_BYREF; + static IUnknown** VARIANT::* const pmField; +}; + +__declspec( selectany ) IUnknown** VARIANT::* const CVarTypeInfo< IUnknown** >::pmField = &VARIANT::ppunkVal; + +template<> +class CVarTypeInfo< IDispatch* > +{ +public: + static const VARTYPE VT = VT_DISPATCH; + static IDispatch* VARIANT::* const pmField; +}; + +__declspec( selectany ) IDispatch* VARIANT::* const CVarTypeInfo< IDispatch* >::pmField = &VARIANT::pdispVal; + +template<> +class CVarTypeInfo< IDispatch** > +{ +public: + static const VARTYPE VT = VT_DISPATCH|VT_BYREF; + static IDispatch** VARIANT::* const pmField; +}; + +__declspec( selectany ) IDispatch** VARIANT::* const CVarTypeInfo< IDispatch** >::pmField = &VARIANT::ppdispVal; + +template<> +class CVarTypeInfo< CY > +{ +public: + static const VARTYPE VT = VT_CY; + static CY VARIANT::* const pmField; +}; + +__declspec( selectany ) CY VARIANT::* const CVarTypeInfo< CY >::pmField = &VARIANT::cyVal; + +template<> +class CVarTypeInfo< CY* > +{ +public: + static const VARTYPE VT = VT_CY|VT_BYREF; + static CY* VARIANT::* const pmField; +}; + +__declspec( selectany ) CY* VARIANT::* const CVarTypeInfo< CY* >::pmField = &VARIANT::pcyVal; + + + + + + + +class CComVariant : + public tagVARIANT +{ + +public: + CComVariant() throw() + { + + memset(this, 0, sizeof(tagVARIANT)); + ::VariantInit(this); + } + ~CComVariant() throw() + { + HRESULT hr = Clear(); + (void)( (!!(((((HRESULT)(hr)) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 2142, 0, L"%ls", L"(((HRESULT)(hr)) >= 0)")) || (__debugbreak(), 0) ); + (hr); + } + CComVariant( const VARIANT& varSrc) + { + vt = VT_EMPTY; + InternalCopy(&varSrc); + } + CComVariant( const CComVariant& varSrc) + { + vt = VT_EMPTY; + InternalCopy(&varSrc); + } + CComVariant( LPCOLESTR lpszSrc) + { + vt = VT_EMPTY; + *this = lpszSrc; + } + CComVariant( LPCSTR lpszSrc) + { + vt = VT_EMPTY; + *this = lpszSrc; + } + CComVariant( bool bSrc) throw() + { + vt = VT_BOOL; + boolVal = bSrc ? VARIANT_BOOL( -1 ) : VARIANT_BOOL( 0 ); + } + + CComVariant( int nSrc, VARTYPE vtSrc = VT_I4) + { + (void)( (!!((vtSrc == VT_I4 || vtSrc == VT_INT))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 2173, 0, L"%ls", L"vtSrc == VT_I4 || vtSrc == VT_INT")) || (__debugbreak(), 0) ); + if (vtSrc == VT_I4 || vtSrc == VT_INT) + { + vt = vtSrc; + intVal = nSrc; + } + else + { + vt = VT_ERROR; + scode = ((HRESULT)0x80070057L); + + ATL::AtlThrowImpl(((HRESULT)0x80070057L)); + + } + } + + CComVariant( BYTE nSrc) throw() + { + vt = VT_UI1; + bVal = nSrc; + } + CComVariant( short nSrc) throw() + { + vt = VT_I2; + iVal = nSrc; + } + CComVariant( long nSrc, VARTYPE vtSrc = VT_I4) + { + (void)( (!!((vtSrc == VT_I4 || vtSrc == VT_ERROR))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 2201, 0, L"%ls", L"vtSrc == VT_I4 || vtSrc == VT_ERROR")) || (__debugbreak(), 0) ); + if (vtSrc == VT_I4 || vtSrc == VT_ERROR) + { + vt = vtSrc; + lVal = nSrc; + } + else + { + vt = VT_ERROR; + scode = ((HRESULT)0x80070057L); + + ATL::AtlThrowImpl(((HRESULT)0x80070057L)); + + } + } + + CComVariant( float fltSrc) throw() + { + vt = VT_R4; + fltVal = fltSrc; + } + CComVariant( double dblSrc, VARTYPE vtSrc = VT_R8) + { + (void)( (!!((vtSrc == VT_R8 || vtSrc == VT_DATE))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 2224, 0, L"%ls", L"vtSrc == VT_R8 || vtSrc == VT_DATE")) || (__debugbreak(), 0) ); + if (vtSrc == VT_R8 || vtSrc == VT_DATE) + { + vt = vtSrc; + dblVal = dblSrc; + } + else + { + vt = VT_ERROR; + scode = ((HRESULT)0x80070057L); + + ATL::AtlThrowImpl(((HRESULT)0x80070057L)); + + } + } + + CComVariant( LONGLONG nSrc) throw() + { + vt = VT_I8; + llVal = nSrc; + } + CComVariant( ULONGLONG nSrc) throw() + { + vt = VT_UI8; + ullVal = nSrc; + } + CComVariant( CY cySrc) throw() + { + vt = VT_CY; + cyVal.Hi = cySrc.Hi; + cyVal.Lo = cySrc.Lo; + } + CComVariant( IDispatch* pSrc) throw() + { + vt = VT_DISPATCH; + pdispVal = pSrc; + + if (pdispVal != 0) + pdispVal->AddRef(); + } + CComVariant( IUnknown* pSrc) throw() + { + vt = VT_UNKNOWN; + punkVal = pSrc; + + if (punkVal != 0) + punkVal->AddRef(); + } + CComVariant( char cSrc) throw() + { + vt = VT_I1; + cVal = cSrc; + } + CComVariant( unsigned short nSrc) throw() + { + vt = VT_UI2; + uiVal = nSrc; + } + CComVariant( unsigned long nSrc) throw() + { + vt = VT_UI4; + ulVal = nSrc; + } + CComVariant( unsigned int nSrc, VARTYPE vtSrc = VT_UI4) + { + (void)( (!!((vtSrc == VT_UI4 || vtSrc == VT_UINT))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 2289, 0, L"%ls", L"vtSrc == VT_UI4 || vtSrc == VT_UINT")) || (__debugbreak(), 0) ); + if (vtSrc == VT_UI4 || vtSrc == VT_UINT) + { + vt = vtSrc; + uintVal= nSrc; + } + else + { + vt = VT_ERROR; + scode = ((HRESULT)0x80070057L); + + ATL::AtlThrowImpl(((HRESULT)0x80070057L)); + + } + } + CComVariant( const CComBSTR& bstrSrc) + { + vt = VT_EMPTY; + *this = bstrSrc; + } + CComVariant( const SAFEARRAY *pSrc) + { + (void)( (!!((pSrc != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 2311, 0, L"%ls", L"pSrc != 0")) || (__debugbreak(), 0) ); + if (pSrc == 0) + { + vt = VT_ERROR; + scode = ((HRESULT)0x80070057L); + + ATL::AtlThrowImpl(((HRESULT)0x80070057L)); + + } + else + { + LPSAFEARRAY pCopy; + HRESULT hRes = ::SafeArrayCopy((LPSAFEARRAY)pSrc, &pCopy); + if ((((HRESULT)(hRes)) >= 0)) + { + hRes = ::ATL::AtlSafeArrayGetActualVartype((LPSAFEARRAY)pSrc, &vt); + if ((((HRESULT)(hRes)) >= 0)) + { + vt |= VT_ARRAY; + parray = pCopy; + } + else + { + vt = VT_ERROR; + scode = hRes; + } + } + else + { + vt = VT_ERROR; + scode = hRes; + } + + + if ((((HRESULT)(hRes)) < 0)) + { + if(hRes == ((HRESULT)0x8007000EL)) + { + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + } + else + { + do { int __atl_condVal=!!(0); do { (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 2353, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); ; } +# 2353 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +#pragma warning(suppress: 4127) +# 2353 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" + while (0); if(!(__atl_condVal)) ATL::AtlThrowImpl(hRes); } +# 2353 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +#pragma warning(suppress: 4127) +# 2353 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" + while (0); + } + } + + } + } + +public: + CComVariant& operator=( const CComVariant& varSrc) + { + if(this!=&varSrc) + { + InternalCopy(&varSrc); + } + return *this; + } + + CComVariant& operator=( const VARIANT& varSrc) + { + if(static_cast(this)!=&varSrc) + { + InternalCopy(&varSrc); + } + return *this; + } + + CComVariant& operator=( const CComBSTR& bstrSrc) + { + ClearThrow(); + + vt = VT_BSTR; + bstrVal = bstrSrc.Copy(); + + if (bstrVal == 0 && bstrSrc.m_str != 0) + { + vt = VT_ERROR; + scode = ((HRESULT)0x8007000EL); + + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + + } + + return *this; + } + + CComVariant& operator=( LPCOLESTR lpszSrc) + { + if (vt != VT_BSTR || bstrVal != lpszSrc) + { + ClearThrow(); + + vt = VT_BSTR; + bstrVal = ::SysAllocString(lpszSrc); + + if (bstrVal == 0 && lpszSrc != 0) + { + vt = VT_ERROR; + scode = ((HRESULT)0x8007000EL); + + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + + } + } + return *this; + } + + CComVariant& operator=( LPCSTR lpszSrc) + { + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + ClearThrow(); + + vt = VT_BSTR; + bstrVal = ::SysAllocString(((LPCWSTR)( ((_lpa_ex = lpszSrc) == 0) ? 0 : ( _convert_ex = (static_cast(strlen(_lpa_ex))+1), (((HRESULT)(::ATL::AtlMultiply(&_convert_ex, _convert_ex, static_cast(sizeof(WCHAR))))) < 0) ? 0 : AtlA2WHelper( (LPWSTR) +# 2425 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +#pragma warning(suppress: 4616) +# 2425 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +#pragma warning(suppress: 6255) +# 2425 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" + ((_convert_ex <= 1024 && ATL::_ATL_SAFE_ALLOCA_IMPL::_AtlVerifyStackAvailable(_convert_ex) ) ? _alloca(_convert_ex) : _AtlSafeAllocaManager.Allocate(_convert_ex)), _lpa_ex, _convert_ex / sizeof(WCHAR), _acp_ex))))); + + if (bstrVal == 0 && lpszSrc != 0) + { + vt = VT_ERROR; + scode = ((HRESULT)0x8007000EL); + + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + + } + return *this; + } + + CComVariant& operator=( bool bSrc) + { + if (vt != VT_BOOL) + { + ClearThrow(); + vt = VT_BOOL; + } + boolVal = bSrc ? VARIANT_BOOL( -1 ) : VARIANT_BOOL( 0 ); + return *this; + } + + CComVariant& operator=( int nSrc) + { + if (vt != VT_I4) + { + ClearThrow(); + vt = VT_I4; + } + intVal = nSrc; + + return *this; + } + + CComVariant& operator=( BYTE nSrc) + { + if (vt != VT_UI1) + { + ClearThrow(); + vt = VT_UI1; + } + bVal = nSrc; + return *this; + } + + CComVariant& operator=( short nSrc) + { + if (vt != VT_I2) + { + ClearThrow(); + vt = VT_I2; + } + iVal = nSrc; + return *this; + } + + CComVariant& operator=( long nSrc) + { + if (vt != VT_I4) + { + ClearThrow(); + vt = VT_I4; + } + lVal = nSrc; + return *this; + } + + CComVariant& operator=( float fltSrc) + { + if (vt != VT_R4) + { + ClearThrow(); + vt = VT_R4; + } + fltVal = fltSrc; + return *this; + } + + CComVariant& operator=( double dblSrc) + { + if (vt != VT_R8) + { + ClearThrow(); + vt = VT_R8; + } + dblVal = dblSrc; + return *this; + } + + CComVariant& operator=( CY cySrc) + { + if (vt != VT_CY) + { + ClearThrow(); + vt = VT_CY; + } + cyVal.Hi = cySrc.Hi; + cyVal.Lo = cySrc.Lo; + return *this; + } + + CComVariant& operator=( IDispatch* pSrc) + { + if (vt != VT_DISPATCH || pSrc != pdispVal) + { + ClearThrow(); + + vt = VT_DISPATCH; + pdispVal = pSrc; + + if (pdispVal != 0) + pdispVal->AddRef(); + } + return *this; + } + + CComVariant& operator=( IUnknown* pSrc) + { + if (vt != VT_UNKNOWN || pSrc != punkVal) + { + ClearThrow(); + + vt = VT_UNKNOWN; + punkVal = pSrc; + + + if (punkVal != 0) + punkVal->AddRef(); + } + return *this; + } + + CComVariant& operator=( char cSrc) + { + if (vt != VT_I1) + { + ClearThrow(); + vt = VT_I1; + } + cVal = cSrc; + return *this; + } + + CComVariant& operator=( unsigned short nSrc) + { + if (vt != VT_UI2) + { + ClearThrow(); + vt = VT_UI2; + } + uiVal = nSrc; + return *this; + } + + CComVariant& operator=( unsigned long nSrc) + { + if (vt != VT_UI4) + { + ClearThrow(); + vt = VT_UI4; + } + ulVal = nSrc; + return *this; + } + + CComVariant& operator=( unsigned int nSrc) + { + if (vt != VT_UI4) + { + ClearThrow(); + vt = VT_UI4; + } + uintVal= nSrc; + return *this; + } + + CComVariant& operator=( BYTE* pbSrc) + { + if (vt != (VT_UI1|VT_BYREF)) + { + ClearThrow(); + vt = VT_UI1|VT_BYREF; + } + pbVal = pbSrc; + return *this; + } + + CComVariant& operator=( short* pnSrc) + { + if (vt != (VT_I2|VT_BYREF)) + { + ClearThrow(); + vt = VT_I2|VT_BYREF; + } + piVal = pnSrc; + return *this; + } + + + CComVariant& operator=( USHORT* pnSrc) + { + if (vt != (VT_UI2|VT_BYREF)) + { + ClearThrow(); + vt = VT_UI2|VT_BYREF; + } + puiVal = pnSrc; + return *this; + } + + + CComVariant& operator=( int* pnSrc) + { + if (vt != (VT_I4|VT_BYREF)) + { + ClearThrow(); + vt = VT_I4|VT_BYREF; + } + pintVal = pnSrc; + return *this; + } + + CComVariant& operator=( UINT* pnSrc) + { + if (vt != (VT_UI4|VT_BYREF)) + { + ClearThrow(); + vt = VT_UI4|VT_BYREF; + } + puintVal = pnSrc; + return *this; + } + + CComVariant& operator=( long* pnSrc) + { + if (vt != (VT_I4|VT_BYREF)) + { + ClearThrow(); + vt = VT_I4|VT_BYREF; + } + plVal = pnSrc; + return *this; + } + + CComVariant& operator=( ULONG* pnSrc) + { + if (vt != (VT_UI4|VT_BYREF)) + { + ClearThrow(); + vt = VT_UI4|VT_BYREF; + } + pulVal = pnSrc; + return *this; + } + + CComVariant& operator=( LONGLONG nSrc) + { + if (vt != VT_I8) + { + ClearThrow(); + vt = VT_I8; + } + llVal = nSrc; + + return *this; + } + + CComVariant& operator=( LONGLONG* pnSrc) + { + if (vt != (VT_I8|VT_BYREF)) + { + ClearThrow(); + vt = VT_I8|VT_BYREF; + } + pllVal = pnSrc; + return *this; + } + + CComVariant& operator=( ULONGLONG nSrc) + { + if (vt != VT_UI8) + { + ClearThrow(); + vt = VT_UI8; + } + ullVal = nSrc; + + return *this; + } + + CComVariant& operator=( ULONGLONG* pnSrc) + { + if (vt != (VT_UI8|VT_BYREF)) + { + ClearThrow(); + vt = VT_UI8|VT_BYREF; + } + pullVal = pnSrc; + return *this; + } + + CComVariant& operator=( float* pfSrc) + { + if (vt != (VT_R4|VT_BYREF)) + { + ClearThrow(); + vt = VT_R4|VT_BYREF; + } + pfltVal = pfSrc; + return *this; + } + + CComVariant& operator=( double* pfSrc) + { + if (vt != (VT_R8|VT_BYREF)) + { + ClearThrow(); + vt = VT_R8|VT_BYREF; + } + pdblVal = pfSrc; + return *this; + } + + CComVariant& operator=( const SAFEARRAY *pSrc) + { + (void)( (!!((pSrc != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 2752, 0, L"%ls", L"pSrc != 0")) || (__debugbreak(), 0) ); + + if (pSrc == 0) + { + ClearThrow(); + vt = VT_ERROR; + scode = ((HRESULT)0x80070057L); + + ATL::AtlThrowImpl(((HRESULT)0x80070057L)); + + } + else if ((vt & VT_ARRAY) == 0 || pSrc != parray) + { + ClearThrow(); + LPSAFEARRAY pCopy; + HRESULT hr = ::SafeArrayCopy((LPSAFEARRAY)pSrc, &pCopy); + if ((((HRESULT)(hr)) >= 0)) + { + ::ATL::AtlSafeArrayGetActualVartype((LPSAFEARRAY)pSrc, &vt); + vt |= VT_ARRAY; + parray = pCopy; + } + else + { + vt = VT_ERROR; + scode = hr; + + if(hr == ((HRESULT)0x8007000EL)) + { + ATL::AtlThrowImpl(((HRESULT)0x8007000EL)); + } + else + { + do { int __atl_condVal=!!(0); do { (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 2785, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); ; } +# 2785 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +#pragma warning(suppress: 4127) +# 2785 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" + while (0); if(!(__atl_condVal)) ATL::AtlThrowImpl(hr); } +# 2785 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +#pragma warning(suppress: 4127) +# 2785 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" + while (0); + } + + } + } + + return *this; + } + + +public: + bool operator==( const VARIANT& varSrc) const throw() + { + + if (vt == VT_NULL && varSrc.vt == VT_NULL) + { + return true; + } + + if (vt != varSrc.vt) + { + return false; + } + return VarCmp((VARIANT*)this, (VARIANT*)&varSrc, (((DWORD)((((DWORD)((WORD )(0x0))) << 16) | ((DWORD)((WORD )((((((WORD )(0x01)) << 10) | (WORD )(0x00))))))))), 0) == static_cast(1); + } + + bool operator!=( const VARIANT& varSrc) const throw() + { + return !operator==(varSrc); + } + + bool operator<( const VARIANT& varSrc) const throw() + { + if (vt == VT_NULL && varSrc.vt == VT_NULL) + return false; + return VarCmp((VARIANT*)this, (VARIANT*)&varSrc, (((DWORD)((((DWORD)((WORD )(0x0))) << 16) | ((DWORD)((WORD )((((((WORD )(0x01)) << 10) | (WORD )(0x00))))))))), 0)== static_cast(0); + } + + bool operator>( const VARIANT& varSrc) const throw() + { + if (vt == VT_NULL && varSrc.vt == VT_NULL) + return false; + return VarCmp((VARIANT*)this, (VARIANT*)&varSrc, (((DWORD)((((DWORD)((WORD )(0x0))) << 16) | ((DWORD)((WORD )((((((WORD )(0x01)) << 10) | (WORD )(0x00))))))))), 0)== static_cast(2); + } + +private: + inline HRESULT VarCmp( + LPVARIANT pvarLeft, + LPVARIANT pvarRight, + LCID lcid, + ULONG dwFlags) const throw(); + + +public: + HRESULT Clear() + { + return ::VariantClear(this); + } + HRESULT Copy( const VARIANT* pSrc) + { + return ::VariantCopy(this, const_cast(pSrc)); + } + + + HRESULT CopyTo( BSTR *pstrDest) const + { + (void)( (!!((pstrDest != 0 && vt == VT_BSTR))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 2851, 0, L"%ls", L"pstrDest != 0 && vt == VT_BSTR")) || (__debugbreak(), 0) ); + HRESULT hRes = ((HRESULT)0x80004003L); + if (pstrDest != 0 && vt == VT_BSTR) + { + *pstrDest = ::SysAllocStringByteLen((char*)bstrVal, ::SysStringByteLen(bstrVal)); + if (*pstrDest == 0) + hRes = ((HRESULT)0x8007000EL); + else + hRes = ((HRESULT)0L); + } + else if (vt != VT_BSTR) + hRes = ((HRESULT)0x80020005L); + + return hRes; + } + + HRESULT Attach( VARIANT* pSrc) + { + if(pSrc == 0) + return ((HRESULT)0x80070057L); + + HRESULT hr = ((HRESULT)0L); + if (this != pSrc) + { + + hr = Clear(); + if ((((HRESULT)(hr)) >= 0)) + { + + Checked::memcpy_s(this, sizeof(CComVariant), pSrc, sizeof(VARIANT)); + pSrc->vt = VT_EMPTY; + hr = ((HRESULT)0L); + } + } + return hr; + } + + HRESULT Detach( VARIANT* pDest) + { + (void)( (!!((pDest != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 2890, 0, L"%ls", L"pDest != 0")) || (__debugbreak(), 0) ); + if(pDest == 0) + return ((HRESULT)0x80004003L); + + + HRESULT hr = ::VariantClear(pDest); + if ((((HRESULT)(hr)) >= 0)) + { + + Checked::memcpy_s(pDest, sizeof(VARIANT), this, sizeof(VARIANT)); + vt = VT_EMPTY; + hr = ((HRESULT)0L); + } + return hr; + } + + HRESULT ChangeType( VARTYPE vtNew, const VARIANT* pSrc = 0) + { + VARIANT* pVar = const_cast(pSrc); + + if (pVar == 0) + pVar = this; + + return ::VariantChangeType(this, pVar, 0, vtNew); + } + + template< typename T > + void SetByRef( T* pT) + { + ClearThrow(); + vt = CVarTypeInfo< T* >::VT; + byref = pT; + } + + + HRESULT WriteToStream( IStream* pStream); + HRESULT WriteToStream( + IStream* pStream, + VARTYPE vtWrite) + { + if (vtWrite != VT_EMPTY && vtWrite != vt) + { + CComVariant varConv; + HRESULT hr = varConv.ChangeType(vtWrite, this); + if ((((HRESULT)(hr)) < 0)) + { + return hr; + } + return varConv.WriteToStream(pStream); + } + return WriteToStream(pStream); + } + + HRESULT ReadFromStream( + IStream* pStream, + VARTYPE vtExpected = VT_EMPTY); + + HRESULT ReadFromStream( + IStream* pStream, + VARTYPE vtExpected, + ClassesAllowedInStream rgclsidAllowed, + DWORD cclsidAllowed); + + + ULONG GetSize() const; + HRESULT GetSizeMax( ULARGE_INTEGER* pcbSize) const; + + + +private: + void ClearThrow() + { + HRESULT hr = Clear(); + (void)( (!!(((((HRESULT)(hr)) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 2963, 0, L"%ls", L"(((HRESULT)(hr)) >= 0)")) || (__debugbreak(), 0) ); + (hr); + + if ((((HRESULT)(hr)) < 0)) + { + ATL::AtlThrowImpl(hr); + } + + } + +public: + HRESULT InternalClear() + { + HRESULT hr = Clear(); + (void)( (!!(((((HRESULT)(hr)) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 2977, 0, L"%ls", L"(((HRESULT)(hr)) >= 0)")) || (__debugbreak(), 0) ); + if ((((HRESULT)(hr)) < 0)) + { + vt = VT_ERROR; + scode = hr; + + ATL::AtlThrowImpl(hr); + + } + return hr; + } + + void InternalCopy( const VARIANT* pSrc) + { + HRESULT hr = Copy(pSrc); + if ((((HRESULT)(hr)) < 0)) + { + vt = VT_ERROR; + scode = hr; + + ATL::AtlThrowImpl(hr); + + } + } +}; + + + +#pragma warning(push) +#pragma warning(disable: 4702) + inline HRESULT CComVariant::WriteToStream( IStream* pStream) +{ + if(pStream == 0) + return ((HRESULT)0x80070057L); + + HRESULT hr = pStream->Write(&vt, sizeof(VARTYPE), 0); + if ((((HRESULT)(hr)) < 0)) + return hr; + + int cbWrite = 0; + switch (vt) + { + case VT_UNKNOWN: + case VT_DISPATCH: + { + CComPtr spStream; + if (punkVal != 0) + { + hr = punkVal->QueryInterface(__uuidof(IPersistStream), (void**)&spStream); + if ((((HRESULT)(hr)) < 0)) + { + hr = punkVal->QueryInterface(__uuidof(IPersistStreamInit), (void**)&spStream); + if ((((HRESULT)(hr)) < 0)) + { + spStream.Detach(); + return hr; + } + } + } + if (spStream != 0) + return OleSaveToStream(spStream, pStream); + return WriteClassStm(pStream, GUID_NULL); + } + case VT_UI1: + case VT_I1: + cbWrite = sizeof(BYTE); + break; + case VT_I2: + case VT_UI2: + case VT_BOOL: + cbWrite = sizeof(short); + break; + case VT_I4: + case VT_UI4: + case VT_R4: + case VT_INT: + case VT_UINT: + case VT_ERROR: + cbWrite = sizeof(long); + break; + case VT_I8: + case VT_UI8: + cbWrite = sizeof(LONGLONG); + break; + case VT_R8: + case VT_CY: + case VT_DATE: + cbWrite = sizeof(double); + break; + default: + break; + } + if (cbWrite != 0) + return pStream->Write((void*) &bVal, cbWrite, 0); + + CComBSTR bstrWrite; + CComVariant varBSTR; + if (vt != VT_BSTR) + { + hr = VariantChangeType(&varBSTR, this, 0x01, VT_BSTR); + if ((((HRESULT)(hr)) < 0)) + return hr; + bstrWrite.Attach(varBSTR.bstrVal); + } + else + bstrWrite.Attach(bstrVal); + + hr = bstrWrite.WriteToStream(pStream); + bstrWrite.Detach(); + return hr; +} +#pragma warning(pop) + + + inline HRESULT CComVariant::ReadFromStream( + IStream* pStream, + VARTYPE vtExpected ) +{ + ClassesAllowedInStream allowed; + allowed.rgclsidAllowed = 0; + + return ReadFromStream(pStream, vtExpected, allowed, 0); +} + + inline HRESULT CComVariant::ReadFromStream( + IStream* pStream, + VARTYPE vtExpected, + ClassesAllowedInStream rgclsidAllowed, + DWORD cclsidAllowed) +{ + (void)( (!!((pStream != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 3107, 0, L"%ls", L"pStream != 0")) || (__debugbreak(), 0) ); + if(pStream == 0) + return ((HRESULT)0x80070057L); + + HRESULT hr; + hr = VariantClear(this); + if ((((HRESULT)(hr)) < 0)) + return hr; + VARTYPE vtRead = VT_EMPTY; + ULONG cbRead = 0; + + hr = pStream->Read(&vtRead, sizeof(VARTYPE), &cbRead); +#pragma warning(push) +# 3119 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +#pragma warning(disable: 6102) + if (hr == ((HRESULT)1L) || (cbRead != sizeof(VARTYPE) && hr == ((HRESULT)0L))) + hr = ((HRESULT)0x80004005L); +#pragma warning(pop) + if ((((HRESULT)(hr)) < 0)) + return hr; + if (vtExpected != VT_EMPTY && vtRead != vtExpected) + return ((HRESULT)0x80004005L); + + vt = vtRead; + cbRead = 0; + switch (vtRead) + { + case VT_UNKNOWN: + case VT_DISPATCH: + { + punkVal = 0; + hr = AtlInternalOleLoadFromStream(pStream, + (vtRead == VT_UNKNOWN) ? __uuidof(IUnknown) : __uuidof(IDispatch), + (void**)&punkVal, rgclsidAllowed, cclsidAllowed); + + + if (hr == ((HRESULT)0x80040154L)) + hr = ((HRESULT)0L); + return hr; + } + case VT_UI1: + case VT_I1: + cbRead = sizeof(BYTE); + break; + case VT_I2: + case VT_UI2: + case VT_BOOL: + cbRead = sizeof(short); + break; + case VT_I4: + case VT_UI4: + case VT_R4: + case VT_INT: + case VT_UINT: + case VT_ERROR: + cbRead = sizeof(long); + break; + case VT_I8: + case VT_UI8: + cbRead = sizeof(LONGLONG); + break; + case VT_R8: + case VT_CY: + case VT_DATE: + cbRead = sizeof(double); + break; + default: + break; + } + if (cbRead != 0) + { + hr = pStream->Read((void*) &bVal, cbRead, 0); + if (hr == ((HRESULT)1L)) + hr = ((HRESULT)0x80004005L); + return hr; + } + CComBSTR bstrRead; + + hr = bstrRead.ReadFromStream(pStream); + if ((((HRESULT)(hr)) < 0)) + { + + + LARGE_INTEGER nOffset; + nOffset.QuadPart = -(static_cast(sizeof(VARTYPE))); + pStream->Seek(nOffset, STREAM_SEEK_CUR, 0); + vt = VT_EMPTY; + return hr; + } + vt = VT_BSTR; + bstrVal = bstrRead.Detach(); + if (vtRead != VT_BSTR) + hr = ChangeType(vtRead); + return hr; +} + +inline HRESULT CComVariant::GetSizeMax( ULARGE_INTEGER* pcbSize) const +{ + (void)( (!!((pcbSize != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 3203, 0, L"%ls", L"pcbSize != 0")) || (__debugbreak(), 0) ); + if (pcbSize == 0) + { + return ((HRESULT)0x80070057L); + } + + HRESULT hr = ((HRESULT)0L); + ULARGE_INTEGER nSize; + nSize.QuadPart = sizeof(VARTYPE); + + switch (vt) + { + case VT_UNKNOWN: + case VT_DISPATCH: + { + nSize.LowPart += sizeof(CLSID); + + if (punkVal != 0) + { + CComPtr spStream; + + hr = punkVal->QueryInterface(__uuidof(IPersistStream), (void**)&spStream); + if ((((HRESULT)(hr)) < 0)) + { + hr = punkVal->QueryInterface(__uuidof(IPersistStreamInit), (void**)&spStream); + if ((((HRESULT)(hr)) < 0)) + { + break; + } + } + + ULARGE_INTEGER nPersistSize; + nPersistSize.QuadPart = 0; + + (void)( (!!((spStream != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 3237, 0, L"%ls", L"spStream != 0")) || (__debugbreak(), 0) ); + hr = spStream->GetSizeMax(&nPersistSize); + if ((((HRESULT)(hr)) >= 0)) + { + hr = AtlAdd(&nSize.QuadPart, nSize.QuadPart, nPersistSize.QuadPart); + } + } + } + break; + case VT_UI1: + case VT_I1: + nSize.LowPart += sizeof(BYTE); + break; + case VT_I2: + case VT_UI2: + case VT_BOOL: + nSize.LowPart += sizeof(short); + break; + case VT_I4: + case VT_UI4: + case VT_R4: + case VT_INT: + case VT_UINT: + case VT_ERROR: + nSize.LowPart += sizeof(long); + break; + case VT_I8: + case VT_UI8: + nSize.LowPart += sizeof(LONGLONG); + break; + case VT_R8: + case VT_CY: + case VT_DATE: + nSize.LowPart += sizeof(double); + break; + default: + { + VARTYPE vtTmp = vt; + BSTR bstr = 0; + CComVariant varBSTR; + if (vtTmp != VT_BSTR) + { + hr = VariantChangeType(&varBSTR, const_cast((const VARIANT*)this), 0x01, VT_BSTR); + if ((((HRESULT)(hr)) >= 0)) + { + bstr = varBSTR.bstrVal; + vtTmp = VT_BSTR; + } + } + else + { + bstr = bstrVal; + } + + if (vtTmp == VT_BSTR) + { + + nSize.QuadPart += CComBSTR::GetStreamSize(bstr); + } + } + } + + if ((((HRESULT)(hr)) >= 0)) + { + pcbSize->QuadPart = nSize.QuadPart; + } + + return hr; +} + +inline __declspec( deprecated("GetSize has been replaced by GetSizeMax") ) +ULONG CComVariant::GetSize() const +{ + ULARGE_INTEGER nSize; + HRESULT hr = GetSizeMax(&nSize); + + if ((((HRESULT)(hr)) >= 0) && nSize.QuadPart <= 0xffffffffUL) + { + return nSize.LowPart; + } + + return sizeof(VARTYPE); +} + + inline HRESULT CComPtr::Invoke2( + DISPID dispid, + VARIANT* pvarParam1, + VARIANT* pvarParam2, + VARIANT* pvarRet) throw() +{ + if(pvarParam1 == 0 || pvarParam2 == 0) + return ((HRESULT)0x80070057L); + + CComVariant varArgs[2] = { *pvarParam2, *pvarParam1 }; + DISPPARAMS dispparams = { &varArgs[0], 0, 2, 0}; + return p->Invoke(dispid, GUID_NULL, (((DWORD)((((DWORD)((WORD )(0x0))) << 16) | ((DWORD)((WORD )((((((WORD )(0x01)) << 10) | (WORD )(0x00))))))))), 0x1, &dispparams, pvarRet, 0, 0); +} + + + + + + +inline HRESULT CComVariant::VarCmp( + LPVARIANT pvarLeft, + LPVARIANT pvarRight, + LCID lcid, + ULONG dwFlags) const throw() +{ + switch(vt) + { + case VT_I1: + if (pvarLeft->cVal == pvarRight->cVal) + { + return 1; + } + return pvarLeft->cVal > pvarRight->cVal ? 2 : 0; + case VT_UI2: + if (pvarLeft->uiVal == pvarRight->uiVal) + { + return 1; + } + return pvarLeft->uiVal > pvarRight->uiVal ? 2 : 0; + + case VT_UI4: + if (pvarLeft->uintVal == pvarRight->uintVal) + { + return 1; + } + return pvarLeft->uintVal > pvarRight->uintVal ? 2 : 0; + + case VT_UI8: + if (pvarLeft->ullVal == pvarRight->ullVal) + { + return 1; + } + return pvarLeft->ullVal > pvarRight->ullVal ? 2 : 0; + + default: + return ::VarCmp(pvarLeft, pvarRight, lcid, dwFlags); + } +} + + + +#pragma warning(push) +# 3382 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +#pragma warning(disable: 6387) + inline HRESULT AtlInternalOleLoadFromStream( + IStream* pStm, + const IID & iidInterface, + void** ppvObj, + ClassesAllowedInStream rgclsidAllowed, + DWORD cclsidAllowed) +{ + do { (void)( (!!((pStm != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 3390, 0, L"%ls", L"pStm != 0")) || (__debugbreak(), 0) ); ; } +# 3390 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +#pragma warning(suppress: 4127) +# 3390 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" + while (0); + *ppvObj = 0; + CLSID clsid; + + HRESULT hr = ReadClassStm(pStm, &clsid); + + if ((((HRESULT)(hr)) < 0)) + { + return hr; + } + + CComPtr punkVal; + + if (cclsidAllowed != 0) + { + do { (void)( (!!((rgclsidAllowed.rgclsidAllowed != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h", 3405, 0, L"%ls", L"rgclsidAllowed.rgclsidAllowed != 0")) || (__debugbreak(), 0) ); ; } +# 3405 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" +#pragma warning(suppress: 4127) +# 3405 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlcomcli.h" + while (0); + hr = ((HRESULT)0x80070005L); + + for(DWORD i = 0; i < cclsidAllowed; i++) + { + if (IsEqualGUID(clsid, rgclsidAllowed.rgclsidAllowed[i])) + { + hr = ((HRESULT)0L); + break; + } + } + } + else if (rgclsidAllowed.pfnClsidAllowed != 0) + { + hr = rgclsidAllowed.pfnClsidAllowed(clsid, iidInterface, reinterpret_cast(&punkVal)); + } + + if ((((HRESULT)(hr)) < 0)) + { + return hr; + } + + if (punkVal == 0) + { + hr = CoCreateInstance(clsid, 0, (CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER|CLSCTX_REMOTE_SERVER) | CLSCTX_NO_CODE_DOWNLOAD, iidInterface, reinterpret_cast(&punkVal)); + if ((((HRESULT)(hr)) < 0)) + { + return hr; + } + } + + CComPtr pPersistStm; + hr = punkVal->QueryInterface(&pPersistStm); + + if ((((HRESULT)(hr)) >= 0)) + { + hr = pPersistStm->Load(pStm); + + if ((((HRESULT)(hr)) >= 0)) + { + *ppvObj = punkVal.Detach(); + } + } + + return hr; +} +#pragma warning(pop) + + + +} +#pragma pack(pop) + +#pragma warning(pop) + + +using namespace ATL; +# 76 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" 2 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\comcat.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\comcat.h" +typedef struct IEnumGUID IEnumGUID; + + + + + + +typedef struct IEnumCATEGORYINFO IEnumCATEGORYINFO; + + + + + + +typedef struct ICatRegister ICatRegister; + + + + + + +typedef struct ICatInformation ICatInformation; +# 74 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\comcat.h" +extern "C"{ +# 92 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\comcat.h" +#pragma comment(lib,"uuid.lib") +# 109 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\comcat.h" +extern "C" const CLSID CLSID_StdComponentCategoriesMgr; + + + + + + + +typedef GUID CATID; + +typedef const GUID & REFCATID; +# 135 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\comcat.h" +extern "C" const CATID CATID_Insertable; +extern "C" const CATID CATID_Control; +extern "C" const CATID CATID_Programmable; +extern "C" const CATID CATID_IsShortcut; +extern "C" const CATID CATID_NeverShowExt; +extern "C" const CATID CATID_DocObject; +extern "C" const CATID CATID_Printable; +extern "C" const CATID CATID_RequiresDataPathHost; +extern "C" const CATID CATID_PersistsToMoniker; +extern "C" const CATID CATID_PersistsToStorage; +extern "C" const CATID CATID_PersistsToStreamInit; +extern "C" const CATID CATID_PersistsToStream; +extern "C" const CATID CATID_PersistsToMemory; +extern "C" const CATID CATID_PersistsToFile; +extern "C" const CATID CATID_PersistsToPropertyBag; +extern "C" const CATID CATID_InternetAware; +extern "C" const CATID CATID_DesignTimeUIActivatableControl; +# 163 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\comcat.h" +extern RPC_IF_HANDLE __MIDL_itf_comcat_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_comcat_0000_0000_v0_0_s_ifspec; + + + + + + + +typedef IEnumGUID *LPENUMGUID; + + +extern "C" const IID IID_IEnumGUID; + + + + struct __declspec(uuid("0002E000-0000-0000-C000-000000000046")) __declspec(novtable) + IEnumGUID : public IUnknown + { + public: + virtual HRESULT __stdcall Next( + ULONG celt, + + GUID *rgelt, + + ULONG *pceltFetched) = 0; + + virtual HRESULT __stdcall Skip( + ULONG celt) = 0; + + virtual HRESULT __stdcall Reset( void) = 0; + + virtual HRESULT __stdcall Clone( + IEnumGUID **ppenum) = 0; + + }; +# 280 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\comcat.h" + HRESULT __stdcall IEnumGUID_RemoteNext_Proxy( + IEnumGUID * This, + ULONG celt, + GUID *rgelt, + ULONG *pceltFetched); + + +void __stdcall IEnumGUID_RemoteNext_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 310 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\comcat.h" +extern RPC_IF_HANDLE __MIDL_itf_comcat_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_comcat_0000_0001_v0_0_s_ifspec; + + + + + + + +typedef IEnumCATEGORYINFO *LPENUMCATEGORYINFO; + +typedef struct tagCATEGORYINFO + { + CATID catid; + LCID lcid; + OLECHAR szDescription[ 128 ]; + } CATEGORYINFO; + +typedef struct tagCATEGORYINFO *LPCATEGORYINFO; + + +extern "C" const IID IID_IEnumCATEGORYINFO; + + + + struct __declspec(uuid("0002E011-0000-0000-C000-000000000046")) __declspec(novtable) + IEnumCATEGORYINFO : public IUnknown + { + public: + virtual HRESULT __stdcall Next( + ULONG celt, + CATEGORYINFO *rgelt, + ULONG *pceltFetched) = 0; + + virtual HRESULT __stdcall Skip( + ULONG celt) = 0; + + virtual HRESULT __stdcall Reset( void) = 0; + + virtual HRESULT __stdcall Clone( + IEnumCATEGORYINFO **ppenum) = 0; + + }; +# 444 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\comcat.h" +extern RPC_IF_HANDLE __MIDL_itf_comcat_0000_0002_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_comcat_0000_0002_v0_0_s_ifspec; + + + + + + + +typedef ICatRegister *LPCATREGISTER; + + +extern "C" const IID IID_ICatRegister; + + + + struct __declspec(uuid("0002E012-0000-0000-C000-000000000046")) __declspec(novtable) + ICatRegister : public IUnknown + { + public: + virtual HRESULT __stdcall RegisterCategories( + ULONG cCategories, + CATEGORYINFO rgCategoryInfo[ ]) = 0; + + virtual HRESULT __stdcall UnRegisterCategories( + ULONG cCategories, + CATID rgcatid[ ]) = 0; + + virtual HRESULT __stdcall RegisterClassImplCategories( + const IID & rclsid, + ULONG cCategories, + CATID rgcatid[ ]) = 0; + + virtual HRESULT __stdcall UnRegisterClassImplCategories( + const IID & rclsid, + ULONG cCategories, + CATID rgcatid[ ]) = 0; + + virtual HRESULT __stdcall RegisterClassReqCategories( + const IID & rclsid, + ULONG cCategories, + CATID rgcatid[ ]) = 0; + + virtual HRESULT __stdcall UnRegisterClassReqCategories( + const IID & rclsid, + ULONG cCategories, + CATID rgcatid[ ]) = 0; + + }; +# 607 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\comcat.h" +extern RPC_IF_HANDLE __MIDL_itf_comcat_0000_0003_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_comcat_0000_0003_v0_0_s_ifspec; + + + + + + + +typedef ICatInformation *LPCATINFORMATION; + + +extern "C" const IID IID_ICatInformation; + + + + struct __declspec(uuid("0002E013-0000-0000-C000-000000000046")) __declspec(novtable) + ICatInformation : public IUnknown + { + public: + virtual HRESULT __stdcall EnumCategories( + LCID lcid, + IEnumCATEGORYINFO **ppenumCategoryInfo) = 0; + + virtual HRESULT __stdcall GetCategoryDesc( + REFCATID rcatid, + LCID lcid, + LPWSTR *pszDesc) = 0; + + virtual HRESULT __stdcall EnumClassesOfCategories( + ULONG cImplemented, + const CATID rgcatidImpl[ ], + ULONG cRequired, + const CATID rgcatidReq[ ], + IEnumGUID **ppenumClsid) = 0; + + virtual HRESULT __stdcall IsClassOfCategories( + const IID & rclsid, + ULONG cImplemented, + const CATID rgcatidImpl[ ], + ULONG cRequired, + const CATID rgcatidReq[ ]) = 0; + + virtual HRESULT __stdcall EnumImplCategoriesOfClass( + const IID & rclsid, + IEnumGUID **ppenumCatid) = 0; + + virtual HRESULT __stdcall EnumReqCategoriesOfClass( + const IID & rclsid, + IEnumGUID **ppenumCatid) = 0; + + }; +# 764 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\comcat.h" + HRESULT __stdcall ICatInformation_RemoteEnumClassesOfCategories_Proxy( + ICatInformation * This, + ULONG cImplemented, + const CATID rgcatidImpl[ ], + ULONG cRequired, + const CATID rgcatidReq[ ], + IEnumGUID **ppenumClsid); + + +void __stdcall ICatInformation_RemoteEnumClassesOfCategories_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall ICatInformation_RemoteIsClassOfCategories_Proxy( + ICatInformation * This, + const IID & rclsid, + ULONG cImplemented, + const CATID rgcatidImpl[ ], + ULONG cRequired, + const CATID rgcatidReq[ ]); + + +void __stdcall ICatInformation_RemoteIsClassOfCategories_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 808 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\comcat.h" +extern RPC_IF_HANDLE __MIDL_itf_comcat_0000_0004_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_comcat_0000_0004_v0_0_s_ifspec; + + + + HRESULT __stdcall IEnumGUID_Next_Proxy( + IEnumGUID * This, + ULONG celt, + + GUID *rgelt, + + ULONG *pceltFetched); + + + HRESULT __stdcall IEnumGUID_Next_Stub( + IEnumGUID * This, + ULONG celt, + GUID *rgelt, + ULONG *pceltFetched); + + HRESULT __stdcall ICatInformation_EnumClassesOfCategories_Proxy( + ICatInformation * This, + ULONG cImplemented, + const CATID rgcatidImpl[ ], + ULONG cRequired, + const CATID rgcatidReq[ ], + IEnumGUID **ppenumClsid); + + + HRESULT __stdcall ICatInformation_EnumClassesOfCategories_Stub( + ICatInformation * This, + ULONG cImplemented, + const CATID rgcatidImpl[ ], + ULONG cRequired, + const CATID rgcatidReq[ ], + IEnumGUID **ppenumClsid); + + HRESULT __stdcall ICatInformation_IsClassOfCategories_Proxy( + ICatInformation * This, + const IID & rclsid, + ULONG cImplemented, + const CATID rgcatidImpl[ ], + ULONG cRequired, + const CATID rgcatidReq[ ]); + + + HRESULT __stdcall ICatInformation_IsClassOfCategories_Stub( + ICatInformation * This, + const IID & rclsid, + ULONG cImplemented, + const CATID rgcatidImpl[ ], + ULONG cRequired, + const CATID rgcatidReq[ ]); + + + + + + +} +# 79 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" 2 +# 92 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" 1 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +#pragma warning(disable: 4049) +# 56 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +typedef struct IRegistrarBase IRegistrarBase; + + + + + +typedef struct IRegistrar IRegistrar; + + + + + +typedef struct IDocHostUIHandlerDispatch IDocHostUIHandlerDispatch; + + + + + +typedef struct IAxWinHostWindow IAxWinHostWindow; + + + + + +typedef struct IAxWinHostWindowLic IAxWinHostWindowLic; + + + + + +typedef struct IAxWinAmbientDispatch IAxWinAmbientDispatch; + + + + + +typedef struct IAxWinAmbientDispatchEx IAxWinAmbientDispatchEx; + + + + + +typedef struct IInternalConnection IInternalConnection; + + + + + +typedef struct IAccessibleProxy IAccessibleProxy; + + + + + +typedef struct IAccessibleServer IAccessibleServer; + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" 1 + + + + + + + + +#pragma warning(disable: 4049) +# 45 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +typedef struct IAccessible IAccessible; + + + + + + +typedef struct IAccessibleHandler IAccessibleHandler; + + + + + + +typedef struct IAccessibleWindowlessSite IAccessibleWindowlessSite; + + + + + + +typedef struct IAccIdentity IAccIdentity; + + + + + + +typedef struct IAccPropServer IAccPropServer; + + + + + + +typedef struct IAccPropServices IAccPropServices; +# 124 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +typedef class CAccPropServices CAccPropServices; +# 136 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +extern "C"{ +# 161 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +typedef LRESULT (__stdcall *LPFNLRESULTFROMOBJECT)(const IID & riid, WPARAM wParam, LPUNKNOWN punk); +typedef HRESULT (__stdcall *LPFNOBJECTFROMLRESULT)(LRESULT lResult, const IID & riid, WPARAM wParam, void** ppvObject); +typedef HRESULT (__stdcall *LPFNACCESSIBLEOBJECTFROMWINDOW)(HWND hwnd, DWORD dwId, const IID & riid, void** ppvObject); +typedef HRESULT (__stdcall *LPFNACCESSIBLEOBJECTFROMPOINT)(POINT ptScreen, IAccessible** ppacc, VARIANT* pvarChild); +typedef HRESULT (__stdcall *LPFNCREATESTDACCESSIBLEOBJECT)(HWND hwnd, LONG idObject, const IID & riid, void** ppvObject); +typedef HRESULT (__stdcall *LPFNACCESSIBLECHILDREN)(IAccessible* paccContainer, LONG iChildStart,LONG cChildren,VARIANT* rgvarChildren,LONG* pcObtained); + + + + + +extern "C" const GUID LIBID_Accessibility; +extern "C" const GUID IID_IAccessible; +extern "C" const GUID IID_IAccessibleHandler; +extern "C" const GUID IID_IAccIdentity; +extern "C" const GUID IID_IAccPropServer; +extern "C" const GUID IID_IAccPropServices; +extern "C" const GUID IID_IAccPropMgrInternal; +extern "C" const GUID CLSID_AccPropServices; +extern "C" const GUID IIS_IsOleaccProxy; +extern "C" const GUID IIS_ControlAccessible; + + + + + +extern "C" LRESULT __stdcall LresultFromObject( const IID & riid, WPARAM wParam, LPUNKNOWN punk); +extern "C" HRESULT __stdcall ObjectFromLresult( LRESULT lResult, const IID & riid, WPARAM wParam, void** ppvObject); +extern "C" HRESULT __stdcall WindowFromAccessibleObject( IAccessible*, HWND* phwnd); +extern "C" HRESULT __stdcall AccessibleObjectFromWindow( HWND hwnd, DWORD dwId, const IID & riid, void **ppvObject); +extern "C" HRESULT __stdcall AccessibleObjectFromEvent( HWND hwnd, DWORD dwId, DWORD dwChildId, IAccessible** ppacc, VARIANT* pvarChild); +extern "C" HRESULT __stdcall AccessibleObjectFromPoint( POINT ptScreen, IAccessible ** ppacc, VARIANT* pvarChild); +extern "C" HRESULT __stdcall AccessibleChildren ( IAccessible* paccContainer, LONG iChildStart, LONG cChildren, VARIANT* rgvarChildren, LONG* pcObtained); + +extern "C" UINT __stdcall GetRoleTextA( DWORD lRole, LPSTR lpszRole, UINT cchRoleMax); +extern "C" UINT __stdcall GetRoleTextW( DWORD lRole, LPWSTR lpszRole, UINT cchRoleMax); + + + + + + + +extern "C" UINT __stdcall GetStateTextA( DWORD lStateBit, LPSTR lpszState, UINT cchState); +extern "C" UINT __stdcall GetStateTextW( DWORD lStateBit, LPWSTR lpszState, UINT cchState); + + + + + + +extern "C" void __stdcall GetOleaccVersionInfo( DWORD* pVer, DWORD* pBuild); + +extern "C" HRESULT __stdcall CreateStdAccessibleObject( HWND hwnd, LONG idObject, const IID & riid, void** ppvObject); + +extern "C" HRESULT __stdcall CreateStdAccessibleProxyA( HWND hwnd, LPCSTR pClassName, LONG idObject, const IID & riid, void** ppvObject); +extern "C" HRESULT __stdcall CreateStdAccessibleProxyW( HWND hwnd, LPCWSTR pClassName, LONG idObject, const IID & riid, void** ppvObject); +# 230 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +extern "C" HRESULT __stdcall AccSetRunningUtilityState( HWND hwndApp, DWORD dwUtilityStateMask, DWORD dwUtilityState); + +extern "C" HRESULT __stdcall AccNotifyTouchInteraction( HWND hwndApp, HWND hwndTarget, POINT ptTarget); +# 241 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +typedef struct tagMSAAMENUINFO { + DWORD dwMSAASignature; + DWORD cchWText; + LPWSTR pszWText; +} MSAAMENUINFO, *LPMSAAMENUINFO; + + + + + + +extern "C" const GUID PROPID_ACC_NAME; +extern "C" const GUID PROPID_ACC_VALUE; +extern "C" const GUID PROPID_ACC_DESCRIPTION; +extern "C" const GUID PROPID_ACC_ROLE; +extern "C" const GUID PROPID_ACC_STATE; +extern "C" const GUID PROPID_ACC_HELP; +extern "C" const GUID PROPID_ACC_KEYBOARDSHORTCUT; +extern "C" const GUID PROPID_ACC_DEFAULTACTION; + +extern "C" const GUID PROPID_ACC_HELPTOPIC; +extern "C" const GUID PROPID_ACC_FOCUS; +extern "C" const GUID PROPID_ACC_SELECTION; +extern "C" const GUID PROPID_ACC_PARENT; + +extern "C" const GUID PROPID_ACC_NAV_UP; +extern "C" const GUID PROPID_ACC_NAV_DOWN; +extern "C" const GUID PROPID_ACC_NAV_LEFT; +extern "C" const GUID PROPID_ACC_NAV_RIGHT; +extern "C" const GUID PROPID_ACC_NAV_PREV; +extern "C" const GUID PROPID_ACC_NAV_NEXT; +extern "C" const GUID PROPID_ACC_NAV_FIRSTCHILD; +extern "C" const GUID PROPID_ACC_NAV_LASTCHILD; + + +extern "C" const GUID PROPID_ACC_ROLEMAP; +extern "C" const GUID PROPID_ACC_VALUEMAP; +extern "C" const GUID PROPID_ACC_STATEMAP; +extern "C" const GUID PROPID_ACC_DESCRIPTIONMAP; + +extern "C" const GUID PROPID_ACC_DODEFAULTACTION; + + + + + + + +extern RPC_IF_HANDLE __MIDL_itf_oleacc_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_oleacc_0000_0000_v0_0_s_ifspec; +# 336 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +typedef IAccessible *LPACCESSIBLE; +# 573 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +extern "C" const IID IID_IAccessible; + + + + struct __declspec(uuid("618736e0-3c3d-11cf-810c-00aa00389b71")) __declspec(novtable) + IAccessible : public IDispatch + { + public: + virtual HRESULT __stdcall get_accParent( + IDispatch **ppdispParent) = 0; + + virtual HRESULT __stdcall get_accChildCount( + long *pcountChildren) = 0; + + virtual HRESULT __stdcall get_accChild( + VARIANT varChild, + IDispatch **ppdispChild) = 0; + + virtual HRESULT __stdcall get_accName( + VARIANT varChild, + BSTR *pszName) = 0; + + virtual HRESULT __stdcall get_accValue( + VARIANT varChild, + BSTR *pszValue) = 0; + + virtual HRESULT __stdcall get_accDescription( + VARIANT varChild, + BSTR *pszDescription) = 0; + + virtual HRESULT __stdcall get_accRole( + VARIANT varChild, + VARIANT *pvarRole) = 0; + + virtual HRESULT __stdcall get_accState( + VARIANT varChild, + VARIANT *pvarState) = 0; + + virtual HRESULT __stdcall get_accHelp( + VARIANT varChild, + BSTR *pszHelp) = 0; + + virtual HRESULT __stdcall get_accHelpTopic( + BSTR *pszHelpFile, + VARIANT varChild, + long *pidTopic) = 0; + + virtual HRESULT __stdcall get_accKeyboardShortcut( + VARIANT varChild, + BSTR *pszKeyboardShortcut) = 0; + + virtual HRESULT __stdcall get_accFocus( + VARIANT *pvarChild) = 0; + + virtual HRESULT __stdcall get_accSelection( + VARIANT *pvarChildren) = 0; + + virtual HRESULT __stdcall get_accDefaultAction( + VARIANT varChild, + BSTR *pszDefaultAction) = 0; + + virtual HRESULT __stdcall accSelect( + long flagsSelect, + VARIANT varChild) = 0; + + virtual HRESULT __stdcall accLocation( + long *pxLeft, + long *pyTop, + long *pcxWidth, + long *pcyHeight, + VARIANT varChild) = 0; + + virtual HRESULT __stdcall accNavigate( + long navDir, + VARIANT varStart, + VARIANT *pvarEndUpAt) = 0; + + virtual HRESULT __stdcall accHitTest( + long xLeft, + long yTop, + VARIANT *pvarChild) = 0; + + virtual HRESULT __stdcall accDoDefaultAction( + VARIANT varChild) = 0; + + virtual HRESULT __stdcall put_accName( + VARIANT varChild, + BSTR szName) = 0; + + virtual HRESULT __stdcall put_accValue( + VARIANT varChild, + BSTR szValue) = 0; + + }; +# 946 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +typedef IAccessibleHandler *LPACCESSIBLEHANDLER; + + +extern "C" const IID IID_IAccessibleHandler; + + + + struct __declspec(uuid("03022430-ABC4-11d0-BDE2-00AA001A1953")) __declspec(novtable) + IAccessibleHandler : public IUnknown + { + public: + virtual HRESULT __stdcall AccessibleObjectFromID( + long hwnd, + long lObjectID, + LPACCESSIBLE *pIAccessible) = 0; + + }; +# 1032 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +typedef IAccessibleWindowlessSite *LPACCESSIBLEWINDOWLESSSITE; + + +extern "C" const IID IID_IAccessibleWindowlessSite; + + + + struct __declspec(uuid("BF3ABD9C-76DA-4389-9EB6-1427D25ABAB7")) __declspec(novtable) + IAccessibleWindowlessSite : public IUnknown + { + public: + virtual HRESULT __stdcall AcquireObjectIdRange( + long rangeSize, + IAccessibleHandler *pRangeOwner, + long *pRangeBase) = 0; + + virtual HRESULT __stdcall ReleaseObjectIdRange( + long rangeBase, + IAccessibleHandler *pRangeOwner) = 0; + + virtual HRESULT __stdcall QueryObjectIdRanges( + IAccessibleHandler *pRangesOwner, + SAFEARRAY * *psaRanges) = 0; + + virtual HRESULT __stdcall GetParentAccessible( + IAccessible **ppParent) = 0; + + }; +# 1149 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +typedef +enum AnnoScope + { + ANNO_THIS = 0, + ANNO_CONTAINER = 1 + } AnnoScope; + +typedef GUID MSAAPROPID; + + + +extern RPC_IF_HANDLE __MIDL_itf_oleacc_0000_0003_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_oleacc_0000_0003_v0_0_s_ifspec; +# 1170 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +extern "C" const IID IID_IAccIdentity; + + + + struct __declspec(uuid("7852b78d-1cfd-41c1-a615-9c0c85960b5f")) __declspec(novtable) + IAccIdentity : public IUnknown + { + public: + virtual HRESULT __stdcall GetIdentityString( + DWORD dwIDChild, + BYTE **ppIDString, + DWORD *pdwIDStringLen) = 0; + + }; +# 1254 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +extern "C" const IID IID_IAccPropServer; + + + + struct __declspec(uuid("76c0dbbb-15e0-4e7b-b61b-20eeea2001e0")) __declspec(novtable) + IAccPropServer : public IUnknown + { + public: + virtual HRESULT __stdcall GetPropValue( + const BYTE *pIDString, + DWORD dwIDStringLen, + MSAAPROPID idProp, + VARIANT *pvarValue, + BOOL *pfHasProp) = 0; + + }; +# 1342 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +extern "C" const IID IID_IAccPropServices; + + + + struct __declspec(uuid("6e26e776-04f0-495d-80e4-3330352e3169")) __declspec(novtable) + IAccPropServices : public IUnknown + { + public: + virtual HRESULT __stdcall SetPropValue( + const BYTE *pIDString, + DWORD dwIDStringLen, + MSAAPROPID idProp, + VARIANT var) = 0; + + virtual HRESULT __stdcall SetPropServer( + const BYTE *pIDString, + DWORD dwIDStringLen, + const MSAAPROPID *paProps, + int cProps, + IAccPropServer *pServer, + AnnoScope annoScope) = 0; + + virtual HRESULT __stdcall ClearProps( + const BYTE *pIDString, + DWORD dwIDStringLen, + const MSAAPROPID *paProps, + int cProps) = 0; + + virtual HRESULT __stdcall SetHwndProp( + HWND hwnd, + DWORD idObject, + DWORD idChild, + MSAAPROPID idProp, + VARIANT var) = 0; + + virtual HRESULT __stdcall SetHwndPropStr( + HWND hwnd, + DWORD idObject, + DWORD idChild, + MSAAPROPID idProp, + LPCWSTR str) = 0; + + virtual HRESULT __stdcall SetHwndPropServer( + HWND hwnd, + DWORD idObject, + DWORD idChild, + const MSAAPROPID *paProps, + int cProps, + IAccPropServer *pServer, + AnnoScope annoScope) = 0; + + virtual HRESULT __stdcall ClearHwndProps( + HWND hwnd, + DWORD idObject, + DWORD idChild, + const MSAAPROPID *paProps, + int cProps) = 0; + + virtual HRESULT __stdcall ComposeHwndIdentityString( + HWND hwnd, + DWORD idObject, + DWORD idChild, + BYTE **ppIDString, + DWORD *pdwIDStringLen) = 0; + + virtual HRESULT __stdcall DecomposeHwndIdentityString( + const BYTE *pIDString, + DWORD dwIDStringLen, + HWND *phwnd, + DWORD *pidObject, + DWORD *pidChild) = 0; + + virtual HRESULT __stdcall SetHmenuProp( + HMENU hmenu, + DWORD idChild, + MSAAPROPID idProp, + VARIANT var) = 0; + + virtual HRESULT __stdcall SetHmenuPropStr( + HMENU hmenu, + DWORD idChild, + MSAAPROPID idProp, + LPCWSTR str) = 0; + + virtual HRESULT __stdcall SetHmenuPropServer( + HMENU hmenu, + DWORD idChild, + const MSAAPROPID *paProps, + int cProps, + IAccPropServer *pServer, + AnnoScope annoScope) = 0; + + virtual HRESULT __stdcall ClearHmenuProps( + HMENU hmenu, + DWORD idChild, + const MSAAPROPID *paProps, + int cProps) = 0; + + virtual HRESULT __stdcall ComposeHmenuIdentityString( + HMENU hmenu, + DWORD idChild, + BYTE **ppIDString, + DWORD *pdwIDStringLen) = 0; + + virtual HRESULT __stdcall DecomposeHmenuIdentityString( + const BYTE *pIDString, + DWORD dwIDStringLen, + HMENU *phmenu, + DWORD *pidChild) = 0; + + }; +# 1679 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +extern RPC_IF_HANDLE __MIDL_itf_oleacc_0000_0006_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_oleacc_0000_0006_v0_0_s_ifspec; +# 1695 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +extern "C" const IID LIBID_Accessibility; + +extern "C" const CLSID CLSID_CAccPropServices; + + + +class __declspec(uuid("b5f8350b-0548-48b1-a6ee-88bd00b4a5e7")) +CAccPropServices; +# 1713 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\oleacc.h" +extern RPC_IF_HANDLE __MIDL_itf_oleacc_0000_0007_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_oleacc_0000_0007_v0_0_s_ifspec; + + + +unsigned long __stdcall BSTR_UserSize( unsigned long *, unsigned long , BSTR * ); +unsigned char * __stdcall BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * ); +unsigned char * __stdcall BSTR_UserUnmarshal( unsigned long *, unsigned char *, BSTR * ); +void __stdcall BSTR_UserFree( unsigned long *, BSTR * ); + +unsigned long __stdcall HMENU_UserSize( unsigned long *, unsigned long , HMENU * ); +unsigned char * __stdcall HMENU_UserMarshal( unsigned long *, unsigned char *, HMENU * ); +unsigned char * __stdcall HMENU_UserUnmarshal( unsigned long *, unsigned char *, HMENU * ); +void __stdcall HMENU_UserFree( unsigned long *, HMENU * ); + +unsigned long __stdcall HWND_UserSize( unsigned long *, unsigned long , HWND * ); +unsigned char * __stdcall HWND_UserMarshal( unsigned long *, unsigned char *, HWND * ); +unsigned char * __stdcall HWND_UserUnmarshal( unsigned long *, unsigned char *, HWND * ); +void __stdcall HWND_UserFree( unsigned long *, HWND * ); + +unsigned long __stdcall LPSAFEARRAY_UserSize( unsigned long *, unsigned long , LPSAFEARRAY * ); +unsigned char * __stdcall LPSAFEARRAY_UserMarshal( unsigned long *, unsigned char *, LPSAFEARRAY * ); +unsigned char * __stdcall LPSAFEARRAY_UserUnmarshal( unsigned long *, unsigned char *, LPSAFEARRAY * ); +void __stdcall LPSAFEARRAY_UserFree( unsigned long *, LPSAFEARRAY * ); + +unsigned long __stdcall VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * ); +unsigned char * __stdcall VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * ); +unsigned char * __stdcall VARIANT_UserUnmarshal( unsigned long *, unsigned char *, VARIANT * ); +void __stdcall VARIANT_UserFree( unsigned long *, VARIANT * ); + + + + +} +# 117 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" 2 + + + +extern "C"{ + + + + +void * __stdcall MIDL_user_allocate(size_t size); +void __stdcall MIDL_user_free( void *); + + + + +extern "C" const CLSID CLSID_Registrar; + + +extern RPC_IF_HANDLE __MIDL_itf_atliface_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_atliface_0000_v0_0_s_ifspec; +# 144 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +extern "C" const IID IID_IRegistrarBase; + + + + struct __declspec(uuid("e21f8a85-b05d-4243-8183-c7cb405588f7")) __declspec(novtable) + IRegistrarBase : public IUnknown + { + public: + virtual HRESULT __stdcall AddReplacement( + LPCOLESTR key, + LPCOLESTR item) = 0; + + virtual HRESULT __stdcall ClearReplacements( void) = 0; + + }; +# 221 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +HRESULT __stdcall IRegistrarBase_AddReplacement_Proxy( + IRegistrarBase * This, + LPCOLESTR key, + LPCOLESTR item); + + +void __stdcall IRegistrarBase_AddReplacement_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IRegistrarBase_ClearReplacements_Proxy( + IRegistrarBase * This); + + +void __stdcall IRegistrarBase_ClearReplacements_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 256 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +extern "C" const IID IID_IRegistrar; + + + + struct __declspec(uuid("44EC053B-400F-11D0-9DCD-00A0C90391D3")) __declspec(novtable) + IRegistrar : public IRegistrarBase + { + public: + virtual HRESULT __stdcall ResourceRegisterSz( + LPCOLESTR resFileName, + LPCOLESTR szID, + LPCOLESTR szType) = 0; + + virtual HRESULT __stdcall ResourceUnregisterSz( + LPCOLESTR resFileName, + LPCOLESTR szID, + LPCOLESTR szType) = 0; + + virtual HRESULT __stdcall FileRegister( + LPCOLESTR fileName) = 0; + + virtual HRESULT __stdcall FileUnregister( + LPCOLESTR fileName) = 0; + + virtual HRESULT __stdcall StringRegister( + LPCOLESTR data) = 0; + + virtual HRESULT __stdcall StringUnregister( + LPCOLESTR data) = 0; + + virtual HRESULT __stdcall ResourceRegister( + LPCOLESTR resFileName, + UINT nID, + LPCOLESTR szType) = 0; + + virtual HRESULT __stdcall ResourceUnregister( + LPCOLESTR resFileName, + UINT nID, + LPCOLESTR szType) = 0; + + }; +# 424 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +HRESULT __stdcall IRegistrar_ResourceRegisterSz_Proxy( + IRegistrar * This, + LPCOLESTR resFileName, + LPCOLESTR szID, + LPCOLESTR szType); + + +void __stdcall IRegistrar_ResourceRegisterSz_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IRegistrar_ResourceUnregisterSz_Proxy( + IRegistrar * This, + LPCOLESTR resFileName, + LPCOLESTR szID, + LPCOLESTR szType); + + +void __stdcall IRegistrar_ResourceUnregisterSz_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IRegistrar_FileRegister_Proxy( + IRegistrar * This, + LPCOLESTR fileName); + + +void __stdcall IRegistrar_FileRegister_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IRegistrar_FileUnregister_Proxy( + IRegistrar * This, + LPCOLESTR fileName); + + +void __stdcall IRegistrar_FileUnregister_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IRegistrar_StringRegister_Proxy( + IRegistrar * This, + LPCOLESTR data); + + +void __stdcall IRegistrar_StringRegister_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IRegistrar_StringUnregister_Proxy( + IRegistrar * This, + LPCOLESTR data); + + +void __stdcall IRegistrar_StringUnregister_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IRegistrar_ResourceRegister_Proxy( + IRegistrar * This, + LPCOLESTR resFileName, + UINT nID, + LPCOLESTR szType); + + +void __stdcall IRegistrar_ResourceRegister_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IRegistrar_ResourceUnregister_Proxy( + IRegistrar * This, + LPCOLESTR resFileName, + UINT nID, + LPCOLESTR szType); + + +void __stdcall IRegistrar_ResourceUnregister_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 538 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +typedef +enum tagDOCHOSTUIDBLCLKDispatch + { docHostUIDblClkDEFAULT = 0, + docHostUIDblClkSHOWPROPERTIES = 1, + docHostUIDblClkSHOWCODE = 2 + } DOCHOSTUIDBLCLKDispatch; + +typedef +enum tagDocHostUIFlagDispatch + { docHostUIFlagDIALOG = 1, + docHostUIFlagDISABLE_HELP_MENU = 2, + docHostUIFlagNO3DBORDER = 4, + docHostUIFlagSCROLL_NO = 8, + docHostUIFlagDISABLE_SCRIPT_INACTIVE = 16, + docHostUIFlagOPENNEWWIN = 32, + docHostUIFlagDISABLE_OFFSCREEN = 64, + docHostUIFlagFLAT_SCROLLBAR = 128, + docHostUIFlagDIV_BLOCKDEFAULT = 256, + docHostUIFlagACTIVATE_CLIENTHIT_ONLY = 512 + } DocHostUIFlagDispatch; + + +extern "C" const IID IID_IDocHostUIHandlerDispatch; + + + + struct __declspec(uuid("425B5AF0-65F1-11d1-9611-0000F81E0D0D")) __declspec(novtable) + IDocHostUIHandlerDispatch : public IDispatch + { + public: + virtual HRESULT __stdcall ShowContextMenu( + DWORD dwID, + DWORD x, + DWORD y, + IUnknown *pcmdtReserved, + IDispatch *pdispReserved, + HRESULT *dwRetVal) = 0; + + virtual HRESULT __stdcall GetHostInfo( + DWORD *pdwFlags, + DWORD *pdwDoubleClick) = 0; + + virtual HRESULT __stdcall ShowUI( + DWORD dwID, + IUnknown *pActiveObject, + IUnknown *pCommandTarget, + IUnknown *pFrame, + IUnknown *pDoc, + HRESULT *dwRetVal) = 0; + + virtual HRESULT __stdcall HideUI( void) = 0; + + virtual HRESULT __stdcall UpdateUI( void) = 0; + + virtual HRESULT __stdcall EnableModeless( + VARIANT_BOOL fEnable) = 0; + + virtual HRESULT __stdcall OnDocWindowActivate( + VARIANT_BOOL fActivate) = 0; + + virtual HRESULT __stdcall OnFrameWindowActivate( + VARIANT_BOOL fActivate) = 0; + + virtual HRESULT __stdcall ResizeBorder( + long left, + long top, + long right, + long bottom, + IUnknown *pUIWindow, + VARIANT_BOOL fFrameWindow) = 0; + + virtual HRESULT __stdcall TranslateAcceleratorW( + DWORD_PTR hWnd, + DWORD nMessage, + DWORD_PTR wParam, + DWORD_PTR lParam, + BSTR bstrGuidCmdGroup, + DWORD nCmdID, + HRESULT *dwRetVal) = 0; + + virtual HRESULT __stdcall GetOptionKeyPath( + BSTR *pbstrKey, + DWORD dw) = 0; + + virtual HRESULT __stdcall GetDropTarget( + IUnknown *pDropTarget, + IUnknown **ppDropTarget) = 0; + + virtual HRESULT __stdcall GetExternal( + IDispatch **ppDispatch) = 0; + + virtual HRESULT __stdcall TranslateUrl( + DWORD dwTranslate, + BSTR bstrURLIn, + BSTR *pbstrURLOut) = 0; + + virtual HRESULT __stdcall FilterDataObject( + IUnknown *pDO, + IUnknown **ppDORet) = 0; + + }; +# 859 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +HRESULT __stdcall IDocHostUIHandlerDispatch_ShowContextMenu_Proxy( + IDocHostUIHandlerDispatch * This, + DWORD dwID, + DWORD x, + DWORD y, + IUnknown *pcmdtReserved, + IDispatch *pdispReserved, + HRESULT *dwRetVal); + + +void __stdcall IDocHostUIHandlerDispatch_ShowContextMenu_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IDocHostUIHandlerDispatch_GetHostInfo_Proxy( + IDocHostUIHandlerDispatch * This, + DWORD *pdwFlags, + DWORD *pdwDoubleClick); + + +void __stdcall IDocHostUIHandlerDispatch_GetHostInfo_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IDocHostUIHandlerDispatch_ShowUI_Proxy( + IDocHostUIHandlerDispatch * This, + DWORD dwID, + IUnknown *pActiveObject, + IUnknown *pCommandTarget, + IUnknown *pFrame, + IUnknown *pDoc, + HRESULT *dwRetVal); + + +void __stdcall IDocHostUIHandlerDispatch_ShowUI_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IDocHostUIHandlerDispatch_HideUI_Proxy( + IDocHostUIHandlerDispatch * This); + + +void __stdcall IDocHostUIHandlerDispatch_HideUI_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IDocHostUIHandlerDispatch_UpdateUI_Proxy( + IDocHostUIHandlerDispatch * This); + + +void __stdcall IDocHostUIHandlerDispatch_UpdateUI_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IDocHostUIHandlerDispatch_EnableModeless_Proxy( + IDocHostUIHandlerDispatch * This, + VARIANT_BOOL fEnable); + + +void __stdcall IDocHostUIHandlerDispatch_EnableModeless_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IDocHostUIHandlerDispatch_OnDocWindowActivate_Proxy( + IDocHostUIHandlerDispatch * This, + VARIANT_BOOL fActivate); + + +void __stdcall IDocHostUIHandlerDispatch_OnDocWindowActivate_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IDocHostUIHandlerDispatch_OnFrameWindowActivate_Proxy( + IDocHostUIHandlerDispatch * This, + VARIANT_BOOL fActivate); + + +void __stdcall IDocHostUIHandlerDispatch_OnFrameWindowActivate_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IDocHostUIHandlerDispatch_ResizeBorder_Proxy( + IDocHostUIHandlerDispatch * This, + long left, + long top, + long right, + long bottom, + IUnknown *pUIWindow, + VARIANT_BOOL fFrameWindow); + + +void __stdcall IDocHostUIHandlerDispatch_ResizeBorder_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IDocHostUIHandlerDispatch_TranslateAccelerator_Proxy( + IDocHostUIHandlerDispatch * This, + DWORD_PTR hWnd, + DWORD nMessage, + DWORD_PTR wParam, + DWORD_PTR lParam, + BSTR bstrGuidCmdGroup, + DWORD nCmdID, + HRESULT *dwRetVal); + + +void __stdcall IDocHostUIHandlerDispatch_TranslateAccelerator_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IDocHostUIHandlerDispatch_GetOptionKeyPath_Proxy( + IDocHostUIHandlerDispatch * This, + BSTR *pbstrKey, + DWORD dw); + + +void __stdcall IDocHostUIHandlerDispatch_GetOptionKeyPath_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IDocHostUIHandlerDispatch_GetDropTarget_Proxy( + IDocHostUIHandlerDispatch * This, + IUnknown *pDropTarget, + IUnknown **ppDropTarget); + + +void __stdcall IDocHostUIHandlerDispatch_GetDropTarget_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IDocHostUIHandlerDispatch_GetExternal_Proxy( + IDocHostUIHandlerDispatch * This, + IDispatch **ppDispatch); + + +void __stdcall IDocHostUIHandlerDispatch_GetExternal_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IDocHostUIHandlerDispatch_TranslateUrl_Proxy( + IDocHostUIHandlerDispatch * This, + DWORD dwTranslate, + BSTR bstrURLIn, + BSTR *pbstrURLOut); + + +void __stdcall IDocHostUIHandlerDispatch_TranslateUrl_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IDocHostUIHandlerDispatch_FilterDataObject_Proxy( + IDocHostUIHandlerDispatch * This, + IUnknown *pDO, + IUnknown **ppDORet); + + +void __stdcall IDocHostUIHandlerDispatch_FilterDataObject_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 1075 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +extern "C" const IID IID_IAxWinHostWindow; + + + + struct __declspec(uuid("B6EA2050-048A-11d1-82B9-00C04FB9942E")) __declspec(novtable) + IAxWinHostWindow : public IUnknown + { + public: + virtual HRESULT __stdcall CreateControl( + LPCOLESTR lpTricsData, + HWND hWnd, + IStream *pStream) = 0; + + virtual HRESULT __stdcall CreateControlEx( + LPCOLESTR lpszTricsData, + HWND hWnd, + IStream* pStream, + IUnknown** ppUnk, + const IID & iidAdvise, + IUnknown* punkSink) = 0; + + virtual HRESULT __stdcall AttachControl( + IUnknown* pUnkControl, + HWND hWnd) = 0; + + virtual HRESULT __stdcall QueryControl( + const IID & riid, + void** ppvObject) = 0; + + virtual HRESULT __stdcall SetExternalDispatch( + IDispatch *pDisp) = 0; + + virtual HRESULT __stdcall SetExternalUIHandler( + IDocHostUIHandlerDispatch *pDisp) = 0; + + }; +# 1210 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +HRESULT __stdcall IAxWinHostWindow_CreateControl_Proxy( + IAxWinHostWindow * This, + LPCOLESTR lpTricsData, + HWND hWnd, + IStream *pStream); + + +void __stdcall IAxWinHostWindow_CreateControl_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IAxWinHostWindow_CreateControlEx_Proxy( + IAxWinHostWindow * This, + LPCOLESTR lpTricsData, + HWND hWnd, + IStream *pStream, + IUnknown **ppUnk, + const IID & riidAdvise, + IUnknown *punkAdvise); + + +void __stdcall IAxWinHostWindow_CreateControlEx_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IAxWinHostWindow_AttachControl_Proxy( + IAxWinHostWindow * This, + IUnknown *pUnkControl, + HWND hWnd); + + +void __stdcall IAxWinHostWindow_AttachControl_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IAxWinHostWindow_QueryControl_Proxy( + IAxWinHostWindow * This, + const IID & riid, + void **ppvObject); + + +void __stdcall IAxWinHostWindow_QueryControl_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IAxWinHostWindow_SetExternalDispatch_Proxy( + IAxWinHostWindow * This, + IDispatch *pDisp); + + +void __stdcall IAxWinHostWindow_SetExternalDispatch_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IAxWinHostWindow_SetExternalUIHandler_Proxy( + IAxWinHostWindow * This, + IDocHostUIHandlerDispatch *pDisp); + + +void __stdcall IAxWinHostWindow_SetExternalUIHandler_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 1302 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +extern "C" const IID IID_IAxWinHostWindowLic; + + + + struct __declspec(uuid("3935BDA8-4ED9-495c-8650-E01FC1E38A4B")) __declspec(novtable) + IAxWinHostWindowLic : public IAxWinHostWindow + { + public: + virtual HRESULT __stdcall CreateControlLic( + LPCOLESTR lpTricsData, + HWND hWnd, + IStream* pStream, + BSTR bstrLic) = 0; + + virtual HRESULT __stdcall CreateControlLicEx( + LPCOLESTR lpszTricsData, + HWND hWnd, + IStream* pStream, + IUnknown** ppUnk, + const IID & iidAdvise, + IUnknown* punkSink, + BSTR bstrLic) = 0; + + }; +# 1449 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +HRESULT __stdcall IAxWinHostWindowLic_CreateControlLic_Proxy( + IAxWinHostWindowLic * This, + LPCOLESTR lpTricsData, + HWND hWnd, + IStream *pStream, + BSTR bstrLic); + + +void __stdcall IAxWinHostWindowLic_CreateControlLic_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IAxWinHostWindowLic_CreateControlLicEx_Proxy( + IAxWinHostWindowLic * This, + LPCOLESTR lpTricsData, + HWND hWnd, + IStream *pStream, + IUnknown **ppUnk, + const IID & riidAdvise, + IUnknown *punkAdvise, + BSTR bstrLic); + + +void __stdcall IAxWinHostWindowLic_CreateControlLicEx_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 1493 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +extern "C" const IID IID_IAxWinAmbientDispatch; + + + + struct __declspec(uuid("B6EA2051-048A-11d1-82B9-00C04FB9942E")) __declspec(novtable) + IAxWinAmbientDispatch : public IDispatch + { + public: + virtual HRESULT __stdcall put_AllowWindowlessActivation( + VARIANT_BOOL bCanWindowlessActivate) = 0; + + virtual HRESULT __stdcall get_AllowWindowlessActivation( + VARIANT_BOOL *pbCanWindowlessActivate) = 0; + + virtual HRESULT __stdcall put_BackColor( + OLE_COLOR clrBackground) = 0; + + virtual HRESULT __stdcall get_BackColor( + OLE_COLOR *pclrBackground) = 0; + + virtual HRESULT __stdcall put_ForeColor( + OLE_COLOR clrForeground) = 0; + + virtual HRESULT __stdcall get_ForeColor( + OLE_COLOR *pclrForeground) = 0; + + virtual HRESULT __stdcall put_LocaleID( + LCID lcidLocaleID) = 0; + + virtual HRESULT __stdcall get_LocaleID( + LCID *plcidLocaleID) = 0; + + virtual HRESULT __stdcall put_UserMode( + VARIANT_BOOL bUserMode) = 0; + + virtual HRESULT __stdcall get_UserMode( + VARIANT_BOOL *pbUserMode) = 0; + + virtual HRESULT __stdcall put_DisplayAsDefault( + VARIANT_BOOL bDisplayAsDefault) = 0; + + virtual HRESULT __stdcall get_DisplayAsDefault( + VARIANT_BOOL *pbDisplayAsDefault) = 0; + + virtual HRESULT __stdcall put_Font( + IFontDisp *pFont) = 0; + + virtual HRESULT __stdcall get_Font( + IFontDisp **pFont) = 0; + + virtual HRESULT __stdcall put_MessageReflect( + VARIANT_BOOL bMsgReflect) = 0; + + virtual HRESULT __stdcall get_MessageReflect( + VARIANT_BOOL *pbMsgReflect) = 0; + + virtual HRESULT __stdcall get_ShowGrabHandles( + VARIANT_BOOL *pbShowGrabHandles) = 0; + + virtual HRESULT __stdcall get_ShowHatching( + VARIANT_BOOL *pbShowHatching) = 0; + + virtual HRESULT __stdcall put_DocHostFlags( + DWORD dwDocHostFlags) = 0; + + virtual HRESULT __stdcall get_DocHostFlags( + DWORD *pdwDocHostFlags) = 0; + + virtual HRESULT __stdcall put_DocHostDoubleClickFlags( + DWORD dwDocHostDoubleClickFlags) = 0; + + virtual HRESULT __stdcall get_DocHostDoubleClickFlags( + DWORD *pdwDocHostDoubleClickFlags) = 0; + + virtual HRESULT __stdcall put_AllowContextMenu( + VARIANT_BOOL bAllowContextMenu) = 0; + + virtual HRESULT __stdcall get_AllowContextMenu( + VARIANT_BOOL *pbAllowContextMenu) = 0; + + virtual HRESULT __stdcall put_AllowShowUI( + VARIANT_BOOL bAllowShowUI) = 0; + + virtual HRESULT __stdcall get_AllowShowUI( + VARIANT_BOOL *pbAllowShowUI) = 0; + + virtual HRESULT __stdcall put_OptionKeyPath( + BSTR bstrOptionKeyPath) = 0; + + virtual HRESULT __stdcall get_OptionKeyPath( + BSTR *pbstrOptionKeyPath) = 0; + + }; +# 1872 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" + HRESULT __stdcall IAxWinAmbientDispatch_put_AllowWindowlessActivation_Proxy( + IAxWinAmbientDispatch * This, + VARIANT_BOOL bCanWindowlessActivate); + + +void __stdcall IAxWinAmbientDispatch_put_AllowWindowlessActivation_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_get_AllowWindowlessActivation_Proxy( + IAxWinAmbientDispatch * This, + VARIANT_BOOL *pbCanWindowlessActivate); + + +void __stdcall IAxWinAmbientDispatch_get_AllowWindowlessActivation_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_put_BackColor_Proxy( + IAxWinAmbientDispatch * This, + OLE_COLOR clrBackground); + + +void __stdcall IAxWinAmbientDispatch_put_BackColor_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_get_BackColor_Proxy( + IAxWinAmbientDispatch * This, + OLE_COLOR *pclrBackground); + + +void __stdcall IAxWinAmbientDispatch_get_BackColor_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_put_ForeColor_Proxy( + IAxWinAmbientDispatch * This, + OLE_COLOR clrForeground); + + +void __stdcall IAxWinAmbientDispatch_put_ForeColor_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_get_ForeColor_Proxy( + IAxWinAmbientDispatch * This, + OLE_COLOR *pclrForeground); + + +void __stdcall IAxWinAmbientDispatch_get_ForeColor_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_put_LocaleID_Proxy( + IAxWinAmbientDispatch * This, + LCID lcidLocaleID); + + +void __stdcall IAxWinAmbientDispatch_put_LocaleID_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_get_LocaleID_Proxy( + IAxWinAmbientDispatch * This, + LCID *plcidLocaleID); + + +void __stdcall IAxWinAmbientDispatch_get_LocaleID_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_put_UserMode_Proxy( + IAxWinAmbientDispatch * This, + VARIANT_BOOL bUserMode); + + +void __stdcall IAxWinAmbientDispatch_put_UserMode_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_get_UserMode_Proxy( + IAxWinAmbientDispatch * This, + VARIANT_BOOL *pbUserMode); + + +void __stdcall IAxWinAmbientDispatch_get_UserMode_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_put_DisplayAsDefault_Proxy( + IAxWinAmbientDispatch * This, + VARIANT_BOOL bDisplayAsDefault); + + +void __stdcall IAxWinAmbientDispatch_put_DisplayAsDefault_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_get_DisplayAsDefault_Proxy( + IAxWinAmbientDispatch * This, + VARIANT_BOOL *pbDisplayAsDefault); + + +void __stdcall IAxWinAmbientDispatch_get_DisplayAsDefault_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_put_Font_Proxy( + IAxWinAmbientDispatch * This, + IFontDisp *pFont); + + +void __stdcall IAxWinAmbientDispatch_put_Font_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_get_Font_Proxy( + IAxWinAmbientDispatch * This, + IFontDisp **pFont); + + +void __stdcall IAxWinAmbientDispatch_get_Font_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_put_MessageReflect_Proxy( + IAxWinAmbientDispatch * This, + VARIANT_BOOL bMsgReflect); + + +void __stdcall IAxWinAmbientDispatch_put_MessageReflect_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_get_MessageReflect_Proxy( + IAxWinAmbientDispatch * This, + VARIANT_BOOL *pbMsgReflect); + + +void __stdcall IAxWinAmbientDispatch_get_MessageReflect_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_get_ShowGrabHandles_Proxy( + IAxWinAmbientDispatch * This, + VARIANT_BOOL *pbShowGrabHandles); + + +void __stdcall IAxWinAmbientDispatch_get_ShowGrabHandles_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_get_ShowHatching_Proxy( + IAxWinAmbientDispatch * This, + VARIANT_BOOL *pbShowHatching); + + +void __stdcall IAxWinAmbientDispatch_get_ShowHatching_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_put_DocHostFlags_Proxy( + IAxWinAmbientDispatch * This, + DWORD dwDocHostFlags); + + +void __stdcall IAxWinAmbientDispatch_put_DocHostFlags_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_get_DocHostFlags_Proxy( + IAxWinAmbientDispatch * This, + DWORD *pdwDocHostFlags); + + +void __stdcall IAxWinAmbientDispatch_get_DocHostFlags_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_put_DocHostDoubleClickFlags_Proxy( + IAxWinAmbientDispatch * This, + DWORD dwDocHostDoubleClickFlags); + + +void __stdcall IAxWinAmbientDispatch_put_DocHostDoubleClickFlags_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_get_DocHostDoubleClickFlags_Proxy( + IAxWinAmbientDispatch * This, + DWORD *pdwDocHostDoubleClickFlags); + + +void __stdcall IAxWinAmbientDispatch_get_DocHostDoubleClickFlags_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_put_AllowContextMenu_Proxy( + IAxWinAmbientDispatch * This, + VARIANT_BOOL bAllowContextMenu); + + +void __stdcall IAxWinAmbientDispatch_put_AllowContextMenu_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_get_AllowContextMenu_Proxy( + IAxWinAmbientDispatch * This, + VARIANT_BOOL *pbAllowContextMenu); + + +void __stdcall IAxWinAmbientDispatch_get_AllowContextMenu_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_put_AllowShowUI_Proxy( + IAxWinAmbientDispatch * This, + VARIANT_BOOL bAllowShowUI); + + +void __stdcall IAxWinAmbientDispatch_put_AllowShowUI_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_get_AllowShowUI_Proxy( + IAxWinAmbientDispatch * This, + VARIANT_BOOL *pbAllowShowUI); + + +void __stdcall IAxWinAmbientDispatch_get_AllowShowUI_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_put_OptionKeyPath_Proxy( + IAxWinAmbientDispatch * This, + BSTR bstrOptionKeyPath); + + +void __stdcall IAxWinAmbientDispatch_put_OptionKeyPath_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + HRESULT __stdcall IAxWinAmbientDispatch_get_OptionKeyPath_Proxy( + IAxWinAmbientDispatch * This, + BSTR *pbstrOptionKeyPath); + + +void __stdcall IAxWinAmbientDispatch_get_OptionKeyPath_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 2219 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +extern "C" const IID IID_IAxWinAmbientDispatchEx; + + + + struct __declspec(uuid("B2D0778B-AC99-4c58-A5C8-E7724E5316B5")) __declspec(novtable) + IAxWinAmbientDispatchEx : public IAxWinAmbientDispatch + { + public: + virtual HRESULT __stdcall SetAmbientDispatch( + IDispatch *pDispatch) = 0; + + }; +# 2525 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" + HRESULT __stdcall IAxWinAmbientDispatchEx_SetAmbientDispatch_Proxy( + IAxWinAmbientDispatchEx * This, + IDispatch *pDispatch); + + +void __stdcall IAxWinAmbientDispatchEx_SetAmbientDispatch_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 2548 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +extern "C" const IID IID_IInternalConnection; + + + + struct __declspec(uuid("72AD0770-6A9F-11d1-BCEC-0060088F444E")) __declspec(novtable) + IInternalConnection : public IUnknown + { + public: + virtual HRESULT __stdcall AddConnection( void) = 0; + + virtual HRESULT __stdcall ReleaseConnection( void) = 0; + + }; +# 2619 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +HRESULT __stdcall IInternalConnection_AddConnection_Proxy( + IInternalConnection * This); + +void __stdcall IInternalConnection_AddConnection_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + +HRESULT __stdcall IInternalConnection_ReleaseConnection_Proxy( + IInternalConnection * This); + + +void __stdcall IInternalConnection_ReleaseConnection_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + + + + + + +#pragma pack(push,8) +namespace ATL +{ +# 2656 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +__declspec(nothrow) INT_PTR __stdcall AtlAxDialogBoxW( + HINSTANCE hInstance, + LPCWSTR lpTemplateName, + HWND hWndParent, + DLGPROC lpDialogProc, + LPARAM dwInitParam); + +__declspec(nothrow) INT_PTR __stdcall AtlAxDialogBoxA( + HINSTANCE hInstance, + LPCSTR lpTemplateName, + HWND hWndParent, + DLGPROC lpDialogProc, + LPARAM dwInitParam); + + + + + + + +__declspec(nothrow) HWND __stdcall AtlAxCreateDialogW( + HINSTANCE hInstance, + LPCWSTR lpTemplateName, + HWND hWndParent, + DLGPROC lpDialogProc, + LPARAM dwInitParam); + +__declspec(nothrow) HWND __stdcall AtlAxCreateDialogA( + HINSTANCE hInstance, + LPCSTR lpTemplateName, + HWND hWndParent, + DLGPROC lpDialogProc, + LPARAM dwInitParam); + + + + + + + +__declspec(nothrow) HRESULT __stdcall AtlAxCreateControl( + LPCOLESTR lpszName, + HWND hWnd, + IStream* pStream, + IUnknown** ppUnkContainer); + + + +__declspec(nothrow) HRESULT __stdcall AtlAxCreateControlEx( + LPCOLESTR lpszName, + HWND hWnd, + IStream* pStream, + IUnknown** ppUnkContainer, + IUnknown** ppUnkControl, + const IID & iidSink=GUID_NULL, + IUnknown* punkSink=0); + +__declspec(nothrow) HRESULT __stdcall AtlAxCreateControlLic( + LPCOLESTR lpszName, + HWND hWnd, + IStream* pStream, + IUnknown** ppUnkContainer, + BSTR bstrLic = 0); + +__declspec(nothrow) HRESULT __stdcall AtlAxCreateControlLicEx( + LPCOLESTR lpszName, + HWND hWnd, + IStream* pStream, + IUnknown** ppUnkContainer, + IUnknown** ppUnkControl, + const IID & iidSink=GUID_NULL, + IUnknown* punkSink=0, + BSTR bstrLic = 0); +# 2760 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +__declspec(nothrow) HRESULT __stdcall AtlAxAttachControl( + IUnknown* pControl, + HWND hWnd, + IUnknown** ppUnkContainer); + +__declspec(nothrow) BOOL __stdcall AtlAxWinInit(); + +__declspec(nothrow) HRESULT __stdcall AtlAxGetHost( + HWND h, + IUnknown** pp); + +__declspec(nothrow) HRESULT __stdcall AtlAxGetControl( + HWND h, + IUnknown** pp); + +}; +#pragma pack(pop) + +extern RPC_IF_HANDLE __MIDL_itf_atliface_0257_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_atliface_0257_v0_0_s_ifspec; +# 2788 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +extern "C" const IID IID_IAccessibleProxy; + + + + struct __declspec(uuid("7A7D9DCF-B7A1-4019-9031-258268846980")) __declspec(novtable) + IAccessibleProxy : public IUnknown + { + public: + virtual HRESULT __stdcall SetServer( + IAccessible *pAccessible, + IAccessibleServer *pServer) = 0; + + }; +# 2857 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +HRESULT __stdcall IAccessibleProxy_SetServer_Proxy( + IAccessibleProxy * This, + IAccessible *pAccessible, + IAccessibleServer *pServer); + + +void __stdcall IAccessibleProxy_SetServer_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 2881 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +extern "C" const IID IID_IAccessibleServer; + + + + struct __declspec(uuid("52C8FB5E-D779-4e77-AE9F-F611FA7E9D7A")) __declspec(novtable) + IAccessibleServer : public IUnknown + { + public: + virtual HRESULT __stdcall SetProxy( + IAccessibleProxy *pUnknown) = 0; + + virtual HRESULT __stdcall GetHWND( + HWND *phWnd) = 0; + + virtual HRESULT __stdcall GetEnumVariant( + IEnumVARIANT **ppEnumVariant) = 0; + + }; +# 2968 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +HRESULT __stdcall IAccessibleServer_SetProxy_Proxy( + IAccessibleServer * This, + IAccessibleProxy *pUnknown); + + +void __stdcall IAccessibleServer_SetProxy_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IAccessibleServer_GetHWND_Proxy( + IAccessibleServer * This, + HWND *phWnd); + + +void __stdcall IAccessibleServer_GetHWND_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +HRESULT __stdcall IAccessibleServer_GetEnumVariant_Proxy( + IAccessibleServer * This, + IEnumVARIANT **ppEnumVariant); + + +void __stdcall IAccessibleServer_GetEnumVariant_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); +# 3010 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atliface.h" +unsigned long __stdcall BSTR_UserSize( unsigned long *, unsigned long , BSTR * ); +unsigned char * __stdcall BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * ); +unsigned char * __stdcall BSTR_UserUnmarshal( unsigned long *, unsigned char *, BSTR * ); +void __stdcall BSTR_UserFree( unsigned long *, BSTR * ); + +unsigned long __stdcall HWND_UserSize( unsigned long *, unsigned long , HWND * ); +unsigned char * __stdcall HWND_UserMarshal( unsigned long *, unsigned char *, HWND * ); +unsigned char * __stdcall HWND_UserUnmarshal( unsigned long *, unsigned char *, HWND * ); +void __stdcall HWND_UserFree( unsigned long *, HWND * ); + + + + +} +# 92 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" 2 + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\process.h" 1 +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\process.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_startup.h" 1 +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_startup.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\math.h" 1 +# 12 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_startup.h" 2 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_startup.h" 1 3 +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_startup.h" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime.h" 1 3 +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_startup.h" 2 3 + + +#pragma pack(push, 8) +# 12 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_startup.h" 3 + extern "C" { + + + +typedef enum _crt_argv_mode +{ + _crt_argv_no_arguments, + _crt_argv_unexpanded_arguments, + _crt_argv_expanded_arguments, +} _crt_argv_mode; + +typedef enum _crt_exit_return_mode +{ + _crt_exit_terminate_process, + _crt_exit_return_to_caller +} _crt_exit_return_mode; + +typedef enum _crt_exit_cleanup_mode +{ + _crt_exit_full_cleanup, + _crt_exit_quick_cleanup, + _crt_exit_no_cleanup +} _crt_exit_cleanup_mode; + +extern _crt_exit_return_mode __current_exit_return_mode; + + + +__vcrt_bool __cdecl __vcrt_initialize(void); +__vcrt_bool __cdecl __vcrt_uninitialize( __vcrt_bool _Terminating); +__vcrt_bool __cdecl __vcrt_uninitialize_critical(void); +__vcrt_bool __cdecl __vcrt_thread_attach(void); +__vcrt_bool __cdecl __vcrt_thread_detach(void); + +int __cdecl __isa_available_init(void); +_crt_argv_mode __cdecl _get_startup_argv_mode(void); + + + +} +# 51 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\vcruntime_startup.h" 3 +#pragma pack(pop) +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_startup.h" 2 + + +#pragma pack(push, 8) +# 15 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_startup.h" + extern "C" { +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_startup.h" +struct _EXCEPTION_POINTERS; + + int __cdecl _seh_filter_dll( + unsigned long _ExceptionNum, + struct _EXCEPTION_POINTERS* _ExceptionPtr + ); + + int __cdecl _seh_filter_exe( + unsigned long _ExceptionNum, + struct _EXCEPTION_POINTERS* _ExceptionPtr + ); +# 43 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_startup.h" +typedef enum _crt_app_type +{ + _crt_unknown_app, + _crt_console_app, + _crt_gui_app +} _crt_app_type; + + _crt_app_type __cdecl _query_app_type(void); + + void __cdecl _set_app_type( + _crt_app_type _Type + ); + + void __cdecl __setusermatherr( + int (__cdecl*)(struct _exception*) + ); + +int __cdecl _is_c_termination_complete(void); +# 69 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_startup.h" + errno_t __cdecl _configure_narrow_argv( + _crt_argv_mode mode + ); + + errno_t __cdecl _configure_wide_argv( + _crt_argv_mode mode + ); + + + +int __cdecl _initialize_narrow_environment(void); +int __cdecl _initialize_wide_environment(void); + + char** __cdecl _get_initial_narrow_environment(void); + wchar_t** __cdecl _get_initial_wide_environment(void); + +char* __cdecl _get_narrow_winmain_command_line(void); +wchar_t* __cdecl _get_wide_winmain_command_line(void); + + char** __cdecl __p__acmdln(void); + wchar_t** __cdecl __p__wcmdln(void); +# 106 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_startup.h" +typedef void (__cdecl* _PVFV)(void); +typedef int (__cdecl* _PIFV)(void); +typedef void (__cdecl* _PVFI)(int); + + + void __cdecl _initterm( + _PVFV* _First, + _PVFV* _Last + ); + + int __cdecl _initterm_e( + _PIFV* _First, + _PIFV* _Last + ); +# 131 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_startup.h" +typedef struct _onexit_table_t +{ + _PVFV* _first; + _PVFV* _last; + _PVFV* _end; +} _onexit_table_t; + + int __cdecl _initialize_onexit_table( + _onexit_table_t* _Table + ); + + int __cdecl _register_onexit_function( + _onexit_table_t* _Table, + _onexit_t _Function + ); + + int __cdecl _execute_onexit_table( + _onexit_table_t* _Table + ); + + int __cdecl _crt_atexit( + _PVFV _Function + ); + + int __cdecl _crt_at_quick_exit( + _PVFV _Function + ); +# 169 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_startup.h" + __crt_bool __cdecl __acrt_initialize(void); + + + __crt_bool __cdecl __acrt_uninitialize( + __crt_bool _Terminating + ); + + + __crt_bool __cdecl __acrt_uninitialize_critical( + __crt_bool _Terminating + ); + + + __crt_bool __cdecl __acrt_thread_attach(void); + + + __crt_bool __cdecl __acrt_thread_detach(void); + + + + + +} +# 191 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\corecrt_startup.h" +#pragma pack(pop) +# 13 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\process.h" 2 + + + +#pragma pack(push, 8) +# 16 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\process.h" + extern "C" { +# 37 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\process.h" + __declspec(noreturn) void __cdecl exit( int _Code); + __declspec(noreturn) void __cdecl _exit( int _Code); + __declspec(noreturn) void __cdecl _Exit( int _Code); + __declspec(noreturn) void __cdecl quick_exit( int _Code); + __declspec(noreturn) void __cdecl abort(void); + + int __cdecl system( char const* _Command); + + void __cdecl _cexit(void); + void __cdecl _c_exit(void); + + typedef void (__stdcall *_tls_callback_type)(void *, unsigned long, void *); + void __cdecl _register_thread_local_exe_atexit_callback( _tls_callback_type _Callback); +# 79 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\process.h" +typedef void (__cdecl* _beginthread_proc_type )(void*); +typedef unsigned (__stdcall* _beginthreadex_proc_type)(void*); + + uintptr_t __cdecl _beginthread( + _beginthread_proc_type _StartAddress, + unsigned _StackSize, + void* _ArgList + ); + + void __cdecl _endthread(void); + + + uintptr_t __cdecl _beginthreadex( + void* _Security, + unsigned _StackSize, + _beginthreadex_proc_type _StartAddress, + void* _ArgList, + unsigned _InitFlag, + unsigned* _ThrdAddr + ); + + void __cdecl _endthreadex( + unsigned _ReturnCode + ); + + + + + + int __cdecl _getpid(void); + + intptr_t __cdecl _cwait( + int* _TermStat, + intptr_t _ProcHandle, + int _Action + ); + + intptr_t __cdecl _execl( + char const* _FileName, + char const* _Arguments, + ...); + + intptr_t __cdecl _execle( + char const* _FileName, + char const* _Arguments, + ...); + + intptr_t __cdecl _execlp( + char const* _FileName, + char const* _Arguments, + ...); + + intptr_t __cdecl _execlpe( + char const* _FileName, + char const* _Arguments, + ...); + + intptr_t __cdecl _execv( + char const* _FileName, + char const* const* _Arguments + ); + + intptr_t __cdecl _execve( + char const* _FileName, + char const* const* _Arguments, + char const* const* _Environment + ); + + intptr_t __cdecl _execvp( + char const* _FileName, + char const* const* _Arguments + ); + + intptr_t __cdecl _execvpe( + char const* _FileName, + char const* const* _Arguments, + char const* const* _Environment + ); + + intptr_t __cdecl _spawnl( + int _Mode, + char const* _FileName, + char const* _Arguments, + ...); + + intptr_t __cdecl _spawnle( + int _Mode, + char const* _FileName, + char const* _Arguments, + ...); + + intptr_t __cdecl _spawnlp( + int _Mode, + char const* _FileName, + char const* _Arguments, + ...); + + intptr_t __cdecl _spawnlpe( + int _Mode, + char const* _FileName, + char const* _Arguments, + ...); + + intptr_t __cdecl _spawnv( + int _Mode, + char const* _FileName, + char const* const* _Arguments + ); + + intptr_t __cdecl _spawnve( + int _Mode, + char const* _FileName, + char const* const* _Arguments, + char const* const* _Environment + ); + + intptr_t __cdecl _spawnvp( + int _Mode, + char const* _FileName, + char const* const* _Arguments + ); + + intptr_t __cdecl _spawnvpe( + int _Mode, + char const* _FileName, + char const* const* _Arguments, + char const* const* _Environment + ); + + __declspec(deprecated("This function or variable has been superceded by newer library " "or operating system functionality. Consider using " "LoadLibrary" " " "instead. See online help for details.")) + intptr_t __cdecl _loaddll( + char* _FileName + ); + + __declspec(deprecated("This function or variable has been superceded by newer library " "or operating system functionality. Consider using " "FreeLibrary" " " "instead. See online help for details.")) + int __cdecl _unloaddll( + intptr_t _Handle + ); + + __declspec(deprecated("This function or variable has been superceded by newer library " "or operating system functionality. Consider using " "GetProcAddress" " " "instead. See online help for details.")) + int (__cdecl* __cdecl _getdllprocaddr( + intptr_t _Handle, + char* _ProcedureName, + intptr_t _Ordinal + ))(void); +# 242 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\process.h" + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_cwait" ". See online help for details.")) + intptr_t __cdecl cwait( + int* _TermStat, + intptr_t _ProcHandle, + int _Action + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_execl" ". See online help for details.")) + intptr_t __cdecl execl( + char const* _FileName, + char const* _Arguments, + ...); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_execle" ". See online help for details.")) + intptr_t __cdecl execle( + char const* _FileName, + char const* _Arguments, + ...); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_execlp" ". See online help for details.")) + intptr_t __cdecl execlp( + char const* _FileName, + char const* _Arguments, + ...); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_execlpe" ". See online help for details.")) + intptr_t __cdecl execlpe( + char const* _FileName, + char const* _Arguments, + ...); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_execv" ". See online help for details.")) + intptr_t __cdecl execv( + char const* _FileName, + char const* const* _Arguments + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_execve" ". See online help for details.")) + intptr_t __cdecl execve( + char const* _FileName, + char const* const* _Arguments, + char const* const* _Environment + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_execvp" ". See online help for details.")) + intptr_t __cdecl execvp( + char const* _FileName, + char const* const* _Arguments + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_execvpe" ". See online help for details.")) + intptr_t __cdecl execvpe( + char const* _FileName, + char const* const* _Arguments, + char const* const* _Environment + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_spawnl" ". See online help for details.")) + intptr_t __cdecl spawnl( + int _Mode, + char const* _FileName, + char const* _Arguments, + ...); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_spawnle" ". See online help for details.")) + intptr_t __cdecl spawnle( + int _Mode, + char const* _FileName, + char const* _Arguments, + ...); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_spawnlp" ". See online help for details.")) + intptr_t __cdecl spawnlp( + int _Mode, + char const* _FileName, + char const* _Arguments, + ...); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_spawnlpe" ". See online help for details.")) + intptr_t __cdecl spawnlpe( + int _Mode, + char const* _FileName, + char const* _Arguments, + ...); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_spawnv" ". See online help for details.")) + intptr_t __cdecl spawnv( + int _Mode, + char const* _FileName, + char const* const* _Arguments); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_spawnve" ". See online help for details.")) + intptr_t __cdecl spawnve( + int _Mode, + char const* _FileName, + char const* const* _Arguments, + char const* const* _Environment + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_spawnvp" ". See online help for details.")) + intptr_t __cdecl spawnvp( + int _Mode, + char const* _FileName, + char const* const* _Arguments + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_spawnvpe" ". See online help for details.")) + intptr_t __cdecl spawnvpe( + int _Mode, + char const* _FileName, + char const* const* _Arguments, + char const* const* _Environment + ); + + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_getpid" ". See online help for details.")) + int __cdecl getpid(void); + + + + + + + +} +# 365 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\process.h" +#pragma pack(pop) +# 96 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" 2 + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" 1 +# 26 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" 1 +# 43 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" +extern "C"{ + + + + + + + +#pragma warning(push) +#pragma warning(disable: 4001) +#pragma warning(disable: 4820) +# 118 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" +#pragma warning(disable: 4103) + +#pragma pack(push,1) +# 118 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" 2 + +typedef struct _SHITEMID + { + USHORT cb; + BYTE abID[ 1 ]; + } SHITEMID; + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 125 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" 2 + + + + +typedef SHITEMID *LPSHITEMID; + +typedef const SHITEMID *LPCSHITEMID; + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" +#pragma warning(disable: 4103) + +#pragma pack(push,1) +# 136 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" 2 + +typedef struct _ITEMIDLIST + { + SHITEMID mkid; + } ITEMIDLIST; + + + + + + +typedef ITEMIDLIST ITEMIDLIST_RELATIVE; + +typedef ITEMIDLIST ITEMID_CHILD; + +typedef ITEMIDLIST ITEMIDLIST_ABSOLUTE; + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 154 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" 2 + +typedef BYTE_BLOB *wirePIDL; + +typedef ITEMIDLIST *LPITEMIDLIST; + +typedef const ITEMIDLIST *LPCITEMIDLIST; +# 260 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" +typedef +enum tagSTRRET_TYPE + { + STRRET_WSTR = 0, + STRRET_OFFSET = 0x1, + STRRET_CSTR = 0x2 + } STRRET_TYPE; + + +#pragma warning(push) +#pragma warning(disable: 4201) + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" +#pragma warning(disable: 4103) + +#pragma pack(push,8) +# 273 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" 2 + +typedef struct _STRRET + { + UINT uType; + union + { + LPWSTR pOleStr; + UINT uOffset; + char cStr[ 260 ]; + } ; + } STRRET; + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 285 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" 2 + + +#pragma warning(pop) + +typedef STRRET *LPSTRRET; +# 303 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack1.h" +#pragma warning(disable: 4103) + +#pragma pack(push,1) +# 303 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" 2 + +typedef struct _SHELLDETAILS + { + int fmt; + int cxChar; + STRRET str; + } SHELLDETAILS; + +typedef struct _SHELLDETAILS *LPSHELLDETAILS; + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 313 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" 2 + + + +typedef +enum tagPERCEIVED + { + PERCEIVED_TYPE_FIRST = -3, + PERCEIVED_TYPE_CUSTOM = -3, + PERCEIVED_TYPE_UNSPECIFIED = -2, + PERCEIVED_TYPE_FOLDER = -1, + PERCEIVED_TYPE_UNKNOWN = 0, + PERCEIVED_TYPE_TEXT = 1, + PERCEIVED_TYPE_IMAGE = 2, + PERCEIVED_TYPE_AUDIO = 3, + PERCEIVED_TYPE_VIDEO = 4, + PERCEIVED_TYPE_COMPRESSED = 5, + PERCEIVED_TYPE_DOCUMENT = 6, + PERCEIVED_TYPE_SYSTEM = 7, + PERCEIVED_TYPE_APPLICATION = 8, + PERCEIVED_TYPE_GAMEMEDIA = 9, + PERCEIVED_TYPE_CONTACTS = 10, + PERCEIVED_TYPE_LAST = 10 + } PERCEIVED; +# 344 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" +typedef DWORD PERCEIVEDFLAG; + + + + +typedef struct _COMDLG_FILTERSPEC + { + LPCWSTR pszName; + LPCWSTR pszSpec; + } COMDLG_FILTERSPEC; + + +typedef GUID KNOWNFOLDERID; +# 367 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" +typedef DWORD KF_REDIRECT_FLAGS; +typedef GUID FOLDERTYPEID; +# 379 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" +typedef GUID TASKOWNERID; +# 390 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" +typedef GUID ELEMENTID; +# 441 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shtypes.h" +typedef +enum tagSHCOLSTATE + { + SHCOLSTATE_DEFAULT = 0, + SHCOLSTATE_TYPE_STR = 0x1, + SHCOLSTATE_TYPE_INT = 0x2, + SHCOLSTATE_TYPE_DATE = 0x3, + SHCOLSTATE_TYPEMASK = 0xf, + SHCOLSTATE_ONBYDEFAULT = 0x10, + SHCOLSTATE_SLOW = 0x20, + SHCOLSTATE_EXTENDED = 0x40, + SHCOLSTATE_SECONDARYUI = 0x80, + SHCOLSTATE_HIDDEN = 0x100, + SHCOLSTATE_PREFER_VARCMP = 0x200, + SHCOLSTATE_PREFER_FMTCMP = 0x400, + SHCOLSTATE_NOSORTBYFOLDERNESS = 0x800, + SHCOLSTATE_VIEWONLY = 0x10000, + SHCOLSTATE_BATCHREAD = 0x20000, + SHCOLSTATE_NO_GROUPBY = 0x40000, + SHCOLSTATE_FIXED_WIDTH = 0x1000, + SHCOLSTATE_NODPISCALE = 0x2000, + SHCOLSTATE_FIXED_RATIO = 0x4000, + SHCOLSTATE_DISPLAYMASK = 0xf000 + } SHCOLSTATE; + +typedef DWORD SHCOLSTATEF; + +typedef PROPERTYKEY SHCOLUMNID; + +typedef const SHCOLUMNID *LPCSHCOLUMNID; + +typedef +enum DEVICE_SCALE_FACTOR + { + DEVICE_SCALE_FACTOR_INVALID = 0, + SCALE_100_PERCENT = 100, + SCALE_120_PERCENT = 120, + SCALE_125_PERCENT = 125, + SCALE_140_PERCENT = 140, + SCALE_150_PERCENT = 150, + SCALE_160_PERCENT = 160, + SCALE_175_PERCENT = 175, + SCALE_180_PERCENT = 180, + SCALE_200_PERCENT = 200, + SCALE_225_PERCENT = 225, + SCALE_250_PERCENT = 250, + SCALE_300_PERCENT = 300, + SCALE_350_PERCENT = 350, + SCALE_400_PERCENT = 400, + SCALE_450_PERCENT = 450, + SCALE_500_PERCENT = 500 + } DEVICE_SCALE_FACTOR; + + +#pragma warning(pop) + + + +extern RPC_IF_HANDLE __MIDL_itf_shtypes_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_shtypes_0000_0000_v0_0_s_ifspec; + + + + + + +} +# 26 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" 2 +# 49 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +#pragma warning(push) +#pragma warning(disable: 4820) + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\pshpack8.h" +#pragma warning(disable: 4103) + +#pragma pack(push,8) +# 54 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" 2 + + + + +#pragma warning(push) +#pragma warning(disable: 4995) +# 69 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" { +# 108 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) PSTR __stdcall StrChrA( PCSTR pszStart, WORD wMatch); +extern "C" __declspec(dllimport) PWSTR __stdcall StrChrW( PCWSTR pszStart, WCHAR wMatch); +extern "C" __declspec(dllimport) PSTR __stdcall StrChrIA( PCSTR pszStart, WORD wMatch); +extern "C" __declspec(dllimport) PWSTR __stdcall StrChrIW( PCWSTR pszStart, WCHAR wMatch); + +extern "C" __declspec(dllimport) PWSTR __stdcall StrChrNW( PCWSTR pszStart, WCHAR wMatch, UINT cchMax); +extern "C" __declspec(dllimport) PWSTR __stdcall StrChrNIW( PCWSTR pszStart, WCHAR wMatch, UINT cchMax); + + +extern "C" __declspec(dllimport) int __stdcall StrCmpNA( PCSTR psz1, PCSTR psz2, int nChar); +extern "C" __declspec(dllimport) int __stdcall StrCmpNW( PCWSTR psz1, PCWSTR psz2, int nChar); +extern "C" __declspec(dllimport) int __stdcall StrCmpNIA( PCSTR psz1, PCSTR psz2, int nChar); +extern "C" __declspec(dllimport) int __stdcall StrCmpNIW( PCWSTR psz1, PCWSTR psz2, int nChar); +extern "C" __declspec(dllimport) int __stdcall StrCSpnA( PCSTR pszStr, PCSTR pszSet); +extern "C" __declspec(dllimport) int __stdcall StrCSpnW( PCWSTR pszStr, PCWSTR pszSet); +extern "C" __declspec(dllimport) int __stdcall StrCSpnIA( PCSTR pszStr, PCSTR pszSet); +extern "C" __declspec(dllimport) int __stdcall StrCSpnIW( PCWSTR pszStr, PCWSTR pszSet); +extern "C" __declspec(dllimport) PSTR __stdcall StrDupA( PCSTR pszSrch); +extern "C" __declspec(dllimport) PWSTR __stdcall StrDupW( PCWSTR pszSrch); +# 146 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +enum tagSFBS_FLAGS +{ + SFBS_FLAGS_ROUND_TO_NEAREST_DISPLAYED_DIGIT = 0x0001, + SFBS_FLAGS_TRUNCATE_UNDISPLAYED_DECIMAL_DIGITS = 0x0002, +}; +typedef int SFBS_FLAGS; + +extern "C" __declspec(dllimport) HRESULT __stdcall StrFormatByteSizeEx(ULONGLONG ull, SFBS_FLAGS flags, PWSTR pszBuf, UINT cchBuf); + + +extern "C" __declspec(dllimport) PSTR __stdcall StrFormatByteSizeA(DWORD dw, PSTR pszBuf, UINT cchBuf); +extern "C" __declspec(dllimport) PSTR __stdcall StrFormatByteSize64A(LONGLONG qdw, PSTR pszBuf, UINT cchBuf); +extern "C" __declspec(dllimport) PWSTR __stdcall StrFormatByteSizeW(LONGLONG qdw, PWSTR pszBuf, UINT cchBuf); +extern "C" __declspec(dllimport) PWSTR __stdcall StrFormatKBSizeW(LONGLONG qdw, PWSTR pszBuf, UINT cchBuf); +extern "C" __declspec(dllimport) PSTR __stdcall StrFormatKBSizeA(LONGLONG qdw, PSTR pszBuf, UINT cchBuf); +extern "C" __declspec(dllimport) int __stdcall StrFromTimeIntervalA( PSTR pszOut, UINT cchMax, DWORD dwTimeMS, int digits); +extern "C" __declspec(dllimport) int __stdcall StrFromTimeIntervalW( PWSTR pszOut, UINT cchMax, DWORD dwTimeMS, int digits); +extern "C" __declspec(dllimport) BOOL __stdcall StrIsIntlEqualA(BOOL fCaseSens, PCSTR pszString1, PCSTR pszString2, int nChar); +extern "C" __declspec(dllimport) BOOL __stdcall StrIsIntlEqualW(BOOL fCaseSens, PCWSTR pszString1, PCWSTR pszString2, int nChar); +extern "C" __declspec(dllimport) PSTR __stdcall StrNCatA( PSTR psz1, PCSTR psz2, int cchMax); +extern "C" __declspec(dllimport) PWSTR __stdcall StrNCatW( PWSTR psz1, PCWSTR psz2, int cchMax); +# 177 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) PSTR __stdcall StrPBrkA( PCSTR psz, PCSTR pszSet); +extern "C" __declspec(dllimport) PWSTR __stdcall StrPBrkW( PCWSTR psz, PCWSTR pszSet); +extern "C" __declspec(dllimport) PSTR __stdcall StrRChrA( PCSTR pszStart, PCSTR pszEnd, WORD wMatch); +extern "C" __declspec(dllimport) PWSTR __stdcall StrRChrW( PCWSTR pszStart, PCWSTR pszEnd, WCHAR wMatch); +extern "C" __declspec(dllimport) PSTR __stdcall StrRChrIA( PCSTR pszStart, PCSTR pszEnd, WORD wMatch); +extern "C" __declspec(dllimport) PWSTR __stdcall StrRChrIW( PCWSTR pszStart, PCWSTR pszEnd, WCHAR wMatch); +extern "C" __declspec(dllimport) PSTR __stdcall StrRStrIA( PCSTR pszSource, PCSTR pszLast, PCSTR pszSrch); +extern "C" __declspec(dllimport) PWSTR __stdcall StrRStrIW( PCWSTR pszSource, PCWSTR pszLast, PCWSTR pszSrch); + +extern "C" __declspec(dllimport) int __stdcall StrSpnA( PCSTR psz, PCSTR pszSet); +extern "C" __declspec(dllimport) int __stdcall StrSpnW( PCWSTR psz, PCWSTR pszSet); +# 198 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) PSTR __stdcall StrStrA( PCSTR pszFirst, PCSTR pszSrch); +extern "C" __declspec(dllimport) PWSTR __stdcall StrStrW( PCWSTR pszFirst, PCWSTR pszSrch); +extern "C" __declspec(dllimport) PSTR __stdcall StrStrIA( PCSTR pszFirst, PCSTR pszSrch); +extern "C" __declspec(dllimport) PWSTR __stdcall StrStrIW( PCWSTR pszFirst, PCWSTR pszSrch); + +extern "C" __declspec(dllimport) PWSTR __stdcall StrStrNW( PCWSTR pszFirst, PCWSTR pszSrch, UINT cchMax); +extern "C" __declspec(dllimport) PWSTR __stdcall StrStrNIW( PCWSTR pszFirst, PCWSTR pszSrch, UINT cchMax); + + + + + +typedef int STIF_FLAGS; +extern "C" __declspec(dllimport) int __stdcall StrToIntA( PCSTR pszSrc); +extern "C" __declspec(dllimport) int __stdcall StrToIntW( PCWSTR pszSrc); +extern "C" __declspec(dllimport) BOOL __stdcall StrToIntExA( PCSTR pszString, STIF_FLAGS dwFlags, int * piRet); +extern "C" __declspec(dllimport) BOOL __stdcall StrToIntExW( PCWSTR pszString, STIF_FLAGS dwFlags, int * piRet); + +extern "C" __declspec(dllimport) BOOL __stdcall StrToInt64ExA( PCSTR pszString, STIF_FLAGS dwFlags, LONGLONG * pllRet); +extern "C" __declspec(dllimport) BOOL __stdcall StrToInt64ExW( PCWSTR pszString, STIF_FLAGS dwFlags, LONGLONG * pllRet); + + +extern "C" __declspec(dllimport) BOOL __stdcall StrTrimA( PSTR psz, PCSTR pszTrimChars); +extern "C" __declspec(dllimport) BOOL __stdcall StrTrimW( PWSTR psz, PCWSTR pszTrimChars); + + +extern "C" __declspec(dllimport) PWSTR __stdcall StrCatW( PWSTR psz1, PCWSTR psz2); +extern "C" __declspec(dllimport) int __stdcall StrCmpW( PCWSTR psz1, PCWSTR psz2); +extern "C" __declspec(dllimport) int __stdcall StrCmpIW( PCWSTR psz1, PCWSTR psz2); +extern "C" __declspec(dllimport) PWSTR __stdcall StrCpyW( PWSTR psz1, PCWSTR psz2); +extern "C" __declspec(dllimport) PWSTR __stdcall StrCpyNW( PWSTR pszDst, PCWSTR pszSrc, int cchMax); + +extern "C" __declspec(dllimport) PWSTR __stdcall StrCatBuffW( PWSTR pszDest, PCWSTR pszSrc, int cchDestBuffSize); +extern "C" __declspec(dllimport) PSTR __stdcall StrCatBuffA( PSTR pszDest, PCSTR pszSrc, int cchDestBuffSize); +extern "C" __declspec(dllimport) BOOL __stdcall ChrCmpIA(WORD w1, WORD w2); +extern "C" __declspec(dllimport) BOOL __stdcall ChrCmpIW(WCHAR w1, WCHAR w2); + +extern "C" __declspec(dllimport) int __stdcall wvnsprintfA( PSTR pszDest, int cchDest, PCSTR pszFmt, va_list arglist); +extern "C" __declspec(dllimport) int __stdcall wvnsprintfW( PWSTR pszDest, int cchDest, PCWSTR pszFmt, va_list arglist); +extern "C" __declspec(dllimport) int __cdecl wnsprintfA( PSTR pszDest, int cchDest, PCSTR pszFmt, ...); +extern "C" __declspec(dllimport) int __cdecl wnsprintfW( PWSTR pszDest, int cchDest, PCWSTR pszFmt, ...); + + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall StrRetToStrA( STRRET *pstr, LPCITEMIDLIST pidl, LPSTR *ppsz); +extern "C" __declspec(dllimport) HRESULT __stdcall StrRetToStrW( STRRET *pstr, LPCITEMIDLIST pidl, LPWSTR *ppsz); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall StrRetToBufA( STRRET *pstr, LPCITEMIDLIST pidl, LPSTR pszBuf, UINT cchBuf); +extern "C" __declspec(dllimport) HRESULT __stdcall StrRetToBufW( STRRET *pstr, LPCITEMIDLIST pidl, LPWSTR pszBuf, UINT cchBuf); +# 262 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) HRESULT __stdcall SHStrDupA( LPCSTR psz, LPWSTR *ppwsz); +extern "C" __declspec(dllimport) HRESULT __stdcall SHStrDupW( LPCWSTR psz, LPWSTR *ppwsz); + + + + + + + +#pragma warning(push) +#pragma warning(disable: 6387) + + +inline HRESULT SHLocalStrDupW( PCWSTR psz, PWSTR *ppsz) +{ + *ppsz = StrDupW(psz); + return *ppsz ? ((HRESULT)0L) : ((HRESULT)0x8007000EL); +} + +inline HRESULT SHLocalStrDupA( PCSTR psz, PSTR *ppsz) +{ + *ppsz = StrDupA(psz); + return *ppsz ? ((HRESULT)0L) : ((HRESULT)0x8007000EL); +} + +#pragma warning(pop) + + + + + + + + +extern "C" __declspec(dllimport) int __stdcall StrCmpLogicalW( PCWSTR psz1, PCWSTR psz2); +extern "C" __declspec(dllimport) DWORD __stdcall StrCatChainW( PWSTR pszDst, DWORD cchDst, DWORD ichAt, PCWSTR pszSrc); +extern "C" __declspec(dllimport) HRESULT __stdcall StrRetToBSTR( STRRET *pstr, LPCITEMIDLIST pidl, BSTR *pbstr); + + + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall SHLoadIndirectString( PCWSTR pszSource, PWSTR pszOutBuf, UINT cchOutBuf, void **ppvReserved); +# 315 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) BOOL __stdcall IsCharSpaceA(CHAR wch); +extern "C" __declspec(dllimport) BOOL __stdcall IsCharSpaceW(WCHAR wch); + + + + + + +extern "C" __declspec(dllimport) int __stdcall StrCmpCA( LPCSTR pszStr1, LPCSTR pszStr2); +extern "C" __declspec(dllimport) int __stdcall StrCmpCW( LPCWSTR pszStr1, LPCWSTR pszStr2); + + + + + + +extern "C" __declspec(dllimport) int __stdcall StrCmpICA( LPCSTR pszStr1, LPCSTR pszStr2); +extern "C" __declspec(dllimport) int __stdcall StrCmpICW( LPCWSTR pszStr1, LPCWSTR pszStr2); +# 411 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) int __stdcall StrCmpNCA( LPCSTR pszStr1, LPCSTR pszStr2, int nChar); + +extern "C" __declspec(dllimport) int __stdcall StrCmpNCW( LPCWSTR pszStr1, LPCWSTR pszStr2, int nChar); + + + + + +extern "C" __declspec(dllimport) int __stdcall StrCmpNICA( LPCSTR pszStr1, LPCSTR pszStr2, int nChar); +extern "C" __declspec(dllimport) int __stdcall StrCmpNICW( LPCWSTR pszStr1, LPCWSTR pszStr2, int nChar); +# 431 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) BOOL __stdcall IntlStrEqWorkerA(BOOL fCaseSens, LPCSTR lpString1, LPCSTR lpString2, int nChar); +extern "C" __declspec(dllimport) BOOL __stdcall IntlStrEqWorkerW(BOOL fCaseSens, LPCWSTR lpString1, LPCWSTR lpString2, int nChar); +# 510 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) LPSTR __stdcall PathAddBackslashA( LPSTR pszPath); +extern "C" __declspec(dllimport) LPWSTR __stdcall PathAddBackslashW( LPWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathAddExtensionA( LPSTR pszPath, LPCSTR pszExt); +extern "C" __declspec(dllimport) BOOL __stdcall PathAddExtensionW( LPWSTR pszPath, LPCWSTR pszExt); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathAppendA( LPSTR pszPath, LPCSTR pszMore); +extern "C" __declspec(dllimport) BOOL __stdcall PathAppendW( LPWSTR pszPath, LPCWSTR pszMore); +extern "C" __declspec(dllimport) LPSTR __stdcall PathBuildRootA( LPSTR pszRoot, int iDrive); +extern "C" __declspec(dllimport) LPWSTR __stdcall PathBuildRootW( LPWSTR pszRoot, int iDrive); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathCanonicalizeA( LPSTR pszBuf, LPCSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathCanonicalizeW( LPWSTR pszBuf, LPCWSTR pszPath); +extern "C" __declspec(dllimport) LPSTR __stdcall PathCombineA( LPSTR pszDest, LPCSTR pszDir, LPCSTR pszFile); +extern "C" __declspec(dllimport) LPWSTR __stdcall PathCombineW( LPWSTR pszDest, LPCWSTR pszDir, LPCWSTR pszFile); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathCompactPathA( HDC hDC, LPSTR pszPath, UINT dx); +extern "C" __declspec(dllimport) BOOL __stdcall PathCompactPathW( HDC hDC, LPWSTR pszPath, UINT dx); +extern "C" __declspec(dllimport) BOOL __stdcall PathCompactPathExA( LPSTR pszOut, LPCSTR pszSrc, UINT cchMax, DWORD dwFlags); +extern "C" __declspec(dllimport) BOOL __stdcall PathCompactPathExW( LPWSTR pszOut, LPCWSTR pszSrc, UINT cchMax, DWORD dwFlags); +extern "C" __declspec(dllimport) int __stdcall PathCommonPrefixA( LPCSTR pszFile1, LPCSTR pszFile2, LPSTR achPath); +extern "C" __declspec(dllimport) int __stdcall PathCommonPrefixW( LPCWSTR pszFile1, LPCWSTR pszFile2, LPWSTR achPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathFileExistsA( LPCSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathFileExistsW( LPCWSTR pszPath); +# 578 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) LPSTR __stdcall PathFindExtensionA( LPCSTR pszPath); +extern "C" __declspec(dllimport) LPWSTR __stdcall PathFindExtensionW( LPCWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) LPSTR __stdcall PathFindFileNameA( LPCSTR pszPath); +extern "C" __declspec(dllimport) LPWSTR __stdcall PathFindFileNameW( LPCWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) LPSTR __stdcall PathFindNextComponentA( LPCSTR pszPath); +extern "C" __declspec(dllimport) LPWSTR __stdcall PathFindNextComponentW( LPCWSTR pszPath); + + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathFindOnPathA( LPSTR pszPath, PZPCSTR ppszOtherDirs); +extern "C" __declspec(dllimport) BOOL __stdcall PathFindOnPathW( LPWSTR pszPath, PZPCWSTR ppszOtherDirs); +extern "C" __declspec(dllimport) LPCSTR __stdcall PathFindSuffixArrayA( LPCSTR pszPath, const LPCSTR *apszSuffix, int iArraySize); +extern "C" __declspec(dllimport) LPCWSTR __stdcall PathFindSuffixArrayW( LPCWSTR pszPath, const LPCWSTR *apszSuffix, int iArraySize); +# 618 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) LPSTR __stdcall PathGetArgsA( LPCSTR pszPath); +extern "C" __declspec(dllimport) LPWSTR __stdcall PathGetArgsW( LPCWSTR pszPath); + + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathIsLFNFileSpecA( LPCSTR pszName); +extern "C" __declspec(dllimport) BOOL __stdcall PathIsLFNFileSpecW( LPCWSTR pszName); + + + + + +extern "C" __declspec(dllimport) UINT __stdcall PathGetCharTypeA( UCHAR ch); +extern "C" __declspec(dllimport) UINT __stdcall PathGetCharTypeW( WCHAR ch); +# 643 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) int __stdcall PathGetDriveNumberA( LPCSTR pszPath); +extern "C" __declspec(dllimport) int __stdcall PathGetDriveNumberW( LPCWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathIsDirectoryA( LPCSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathIsDirectoryW( LPCWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathIsDirectoryEmptyA( LPCSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathIsDirectoryEmptyW( LPCWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathIsFileSpecA( LPCSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathIsFileSpecW( LPCWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathIsPrefixA( LPCSTR pszPrefix, LPCSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathIsPrefixW( LPCWSTR pszPrefix, LPCWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathIsRelativeA( LPCSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathIsRelativeW( LPCWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathIsRootA( LPCSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathIsRootW( LPCWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathIsSameRootA( LPCSTR pszPath1, LPCSTR pszPath2); +extern "C" __declspec(dllimport) BOOL __stdcall PathIsSameRootW( LPCWSTR pszPath1, LPCWSTR pszPath2); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathIsUNCA( LPCSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathIsUNCW( LPCWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathIsNetworkPathA( LPCSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathIsNetworkPathW( LPCWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathIsUNCServerA( LPCSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathIsUNCServerW( LPCWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathIsUNCServerShareA( LPCSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathIsUNCServerShareW( LPCWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathIsContentTypeA( LPCSTR pszPath, LPCSTR pszContentType); +extern "C" __declspec(dllimport) BOOL __stdcall PathIsContentTypeW( LPCWSTR pszPath, LPCWSTR pszContentType); +extern "C" __declspec(dllimport) BOOL __stdcall PathIsURLA( LPCSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathIsURLW( LPCWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathMakePrettyA( LPSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathMakePrettyW( LPWSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathMatchSpecA( LPCSTR pszFile, LPCSTR pszSpec); +extern "C" __declspec(dllimport) BOOL __stdcall PathMatchSpecW( LPCWSTR pszFile, LPCWSTR pszSpec); + + + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall PathMatchSpecExA( LPCSTR pszFile, LPCSTR pszSpec, DWORD dwFlags); +extern "C" __declspec(dllimport) HRESULT __stdcall PathMatchSpecExW( LPCWSTR pszFile, LPCWSTR pszSpec, DWORD dwFlags); + + +extern "C" __declspec(dllimport) int __stdcall PathParseIconLocationA( LPSTR pszIconFile); +extern "C" __declspec(dllimport) int __stdcall PathParseIconLocationW( LPWSTR pszIconFile); +extern "C" __declspec(dllimport) BOOL __stdcall PathQuoteSpacesA( LPSTR lpsz); +extern "C" __declspec(dllimport) BOOL __stdcall PathQuoteSpacesW( LPWSTR lpsz); +extern "C" __declspec(dllimport) BOOL __stdcall PathRelativePathToA( LPSTR pszPath, LPCSTR pszFrom, DWORD dwAttrFrom, LPCSTR pszTo, DWORD dwAttrTo); +extern "C" __declspec(dllimport) BOOL __stdcall PathRelativePathToW( LPWSTR pszPath, LPCWSTR pszFrom, DWORD dwAttrFrom, LPCWSTR pszTo, DWORD dwAttrTo); +extern "C" __declspec(dllimport) void __stdcall PathRemoveArgsA( LPSTR pszPath); +extern "C" __declspec(dllimport) void __stdcall PathRemoveArgsW( LPWSTR pszPath); +extern "C" __declspec(dllimport) LPSTR __stdcall PathRemoveBackslashA( LPSTR pszPath); +extern "C" __declspec(dllimport) LPWSTR __stdcall PathRemoveBackslashW( LPWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) void __stdcall PathRemoveBlanksA( LPSTR pszPath); +extern "C" __declspec(dllimport) void __stdcall PathRemoveBlanksW( LPWSTR pszPath); +extern "C" __declspec(dllimport) void __stdcall PathRemoveExtensionA( LPSTR pszPath); +extern "C" __declspec(dllimport) void __stdcall PathRemoveExtensionW( LPWSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathRemoveFileSpecA( LPSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathRemoveFileSpecW( LPWSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathRenameExtensionA( LPSTR pszPath, LPCSTR pszExt); +extern "C" __declspec(dllimport) BOOL __stdcall PathRenameExtensionW( LPWSTR pszPath, LPCWSTR pszExt); +extern "C" __declspec(dllimport) BOOL __stdcall PathSearchAndQualifyA( LPCSTR pszPath, LPSTR pszBuf, UINT cchBuf); +extern "C" __declspec(dllimport) BOOL __stdcall PathSearchAndQualifyW( LPCWSTR pszPath, LPWSTR pszBuf, UINT cchBuf); +extern "C" __declspec(dllimport) void __stdcall PathSetDlgItemPathA( HWND hDlg, int id, LPCSTR pszPath); +extern "C" __declspec(dllimport) void __stdcall PathSetDlgItemPathW( HWND hDlg, int id, LPCWSTR pszPath); +# 787 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) LPSTR __stdcall PathSkipRootA( LPCSTR pszPath); +extern "C" __declspec(dllimport) LPWSTR __stdcall PathSkipRootW( LPCWSTR pszPath); + + + + + + +extern "C" __declspec(dllimport) void __stdcall PathStripPathA( LPSTR pszPath); +extern "C" __declspec(dllimport) void __stdcall PathStripPathW( LPWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathStripToRootA( LPSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathStripToRootW( LPWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathUnquoteSpacesA( LPSTR lpsz); +extern "C" __declspec(dllimport) BOOL __stdcall PathUnquoteSpacesW( LPWSTR lpsz); +extern "C" __declspec(dllimport) BOOL __stdcall PathMakeSystemFolderA( LPCSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathMakeSystemFolderW( LPCWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathUnmakeSystemFolderA( LPCSTR pszPath); +extern "C" __declspec(dllimport) BOOL __stdcall PathUnmakeSystemFolderW( LPCWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathIsSystemFolderA( LPCSTR pszPath, DWORD dwAttrb); +extern "C" __declspec(dllimport) BOOL __stdcall PathIsSystemFolderW( LPCWSTR pszPath, DWORD dwAttrb); + + + + + +extern "C" __declspec(dllimport) void __stdcall PathUndecorateA( LPSTR pszPath); +extern "C" __declspec(dllimport) void __stdcall PathUndecorateW( LPWSTR pszPath); + + + + + +extern "C" __declspec(dllimport) BOOL __stdcall PathUnExpandEnvStringsA( LPCSTR pszPath, LPSTR pszBuf, UINT cchBuf); +extern "C" __declspec(dllimport) BOOL __stdcall PathUnExpandEnvStringsW( LPCWSTR pszPath, LPWSTR pszBuf, UINT cchBuf); +# 902 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +typedef enum +{ + URL_SCHEME_INVALID = -1, + URL_SCHEME_UNKNOWN = 0, + URL_SCHEME_FTP, + URL_SCHEME_HTTP, + URL_SCHEME_GOPHER, + URL_SCHEME_MAILTO, + URL_SCHEME_NEWS, + URL_SCHEME_NNTP, + URL_SCHEME_TELNET, + URL_SCHEME_WAIS, + URL_SCHEME_FILE, + URL_SCHEME_MK, + URL_SCHEME_HTTPS, + URL_SCHEME_SHELL, + URL_SCHEME_SNEWS, + URL_SCHEME_LOCAL, + URL_SCHEME_JAVASCRIPT, + URL_SCHEME_VBSCRIPT, + URL_SCHEME_ABOUT, + URL_SCHEME_RES, + + URL_SCHEME_MSSHELLROOTED, + URL_SCHEME_MSSHELLIDLIST, + URL_SCHEME_MSHELP, + + + URL_SCHEME_MSSHELLDEVICE, + URL_SCHEME_WILDCARD, + + + URL_SCHEME_SEARCH_MS, + + + URL_SCHEME_SEARCH, + + + URL_SCHEME_KNOWNFOLDER, + + URL_SCHEME_MAXVALUE, +} URL_SCHEME; + +typedef enum +{ + URL_PART_NONE = 0, + URL_PART_SCHEME = 1, + URL_PART_HOSTNAME, + URL_PART_USERNAME, + URL_PART_PASSWORD, + URL_PART_PORT, + URL_PART_QUERY, +} URL_PART; + +typedef enum +{ + URLIS_URL, + URLIS_OPAQUE, + URLIS_NOHISTORY, + URLIS_FILEURL, + URLIS_APPLIABLE, + URLIS_DIRECTORY, + URLIS_HASQUERY, +} URLIS; +# 1005 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) int __stdcall UrlCompareA( PCSTR psz1, PCSTR psz2, BOOL fIgnoreSlash); +extern "C" __declspec(dllimport) int __stdcall UrlCompareW( PCWSTR psz1, PCWSTR psz2, BOOL fIgnoreSlash); +extern "C" __declspec(dllimport) HRESULT __stdcall UrlCombineA( PCSTR pszBase, PCSTR pszRelative, PSTR pszCombined, DWORD *pcchCombined, DWORD dwFlags); +extern "C" __declspec(dllimport) HRESULT __stdcall UrlCombineW( PCWSTR pszBase, PCWSTR pszRelative, PWSTR pszCombined, DWORD *pcchCombined, DWORD dwFlags); +extern "C" __declspec(dllimport) HRESULT __stdcall UrlCanonicalizeA( PCSTR pszUrl, PSTR pszCanonicalized, DWORD *pcchCanonicalized, DWORD dwFlags); +extern "C" __declspec(dllimport) HRESULT __stdcall UrlCanonicalizeW( PCWSTR pszUrl, PWSTR pszCanonicalized, DWORD *pcchCanonicalized, DWORD dwFlags); +extern "C" __declspec(dllimport) BOOL __stdcall UrlIsOpaqueA( PCSTR pszURL); +extern "C" __declspec(dllimport) BOOL __stdcall UrlIsOpaqueW( PCWSTR pszURL); +extern "C" __declspec(dllimport) BOOL __stdcall UrlIsNoHistoryA( PCSTR pszURL); +extern "C" __declspec(dllimport) BOOL __stdcall UrlIsNoHistoryW( PCWSTR pszURL); + + +extern "C" __declspec(dllimport) BOOL __stdcall UrlIsA( PCSTR pszUrl, URLIS UrlIs); +extern "C" __declspec(dllimport) BOOL __stdcall UrlIsW( PCWSTR pszUrl, URLIS UrlIs); +extern "C" __declspec(dllimport) LPCSTR __stdcall UrlGetLocationA( PCSTR pszURL); +extern "C" __declspec(dllimport) LPCWSTR __stdcall UrlGetLocationW( PCWSTR pszURL); +extern "C" __declspec(dllimport) HRESULT __stdcall UrlUnescapeA( PSTR pszUrl, PSTR pszUnescaped, DWORD *pcchUnescaped, DWORD dwFlags); +extern "C" __declspec(dllimport) HRESULT __stdcall UrlUnescapeW( PWSTR pszUrl, PWSTR pszUnescaped, DWORD *pcchUnescaped, DWORD dwFlags); +extern "C" __declspec(dllimport) HRESULT __stdcall UrlEscapeA( PCSTR pszUrl, PSTR pszEscaped, DWORD *pcchEscaped, DWORD dwFlags); +extern "C" __declspec(dllimport) HRESULT __stdcall UrlEscapeW( PCWSTR pszUrl, PWSTR pszEscaped, DWORD *pcchEscaped, DWORD dwFlags); +extern "C" __declspec(dllimport) HRESULT __stdcall UrlCreateFromPathA( PCSTR pszPath, PSTR pszUrl, DWORD *pcchUrl, DWORD dwFlags); +extern "C" __declspec(dllimport) HRESULT __stdcall UrlCreateFromPathW( PCWSTR pszPath, PWSTR pszUrl, DWORD *pcchUrl, DWORD dwFlags); +extern "C" __declspec(dllimport) HRESULT __stdcall PathCreateFromUrlA( PCSTR pszUrl, PSTR pszPath, DWORD *pcchPath, DWORD dwFlags); +extern "C" __declspec(dllimport) HRESULT __stdcall PathCreateFromUrlW( PCWSTR pszUrl, PWSTR pszPath, DWORD *pcchPath, DWORD dwFlags); + +extern "C" __declspec(dllimport) HRESULT __stdcall PathCreateFromUrlAlloc( PCWSTR pszIn, PWSTR *ppszOut, DWORD dwFlags); + +extern "C" __declspec(dllimport) HRESULT __stdcall UrlHashA( PCSTR pszUrl, BYTE *pbHash, DWORD cbHash); +extern "C" __declspec(dllimport) HRESULT __stdcall UrlHashW( PCWSTR pszUrl, BYTE *pbHash, DWORD cbHash); +extern "C" __declspec(dllimport) HRESULT __stdcall UrlGetPartW( PCWSTR pszIn, PWSTR pszOut, DWORD *pcchOut, DWORD dwPart, DWORD dwFlags); +extern "C" __declspec(dllimport) HRESULT __stdcall UrlGetPartA( PCSTR pszIn, PSTR pszOut, DWORD *pcchOut, DWORD dwPart, DWORD dwFlags); +extern "C" __declspec(dllimport) HRESULT __stdcall UrlApplySchemeA( PCSTR pszIn, PSTR pszOut, DWORD *pcchOut, DWORD dwFlags); +extern "C" __declspec(dllimport) HRESULT __stdcall UrlApplySchemeW( PCWSTR pszIn, PWSTR pszOut, DWORD *pcchOut, DWORD dwFlags); +extern "C" __declspec(dllimport) HRESULT __stdcall HashData( BYTE *pbData, DWORD cbData, BYTE *pbHash, DWORD cbHash); +extern "C" __declspec(dllimport) HRESULT __stdcall UrlFixupW( PCWSTR pcszUrl, PWSTR pszTranslatedUrl, DWORD cchMax); +# 1079 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +typedef struct tagPARSEDURLA { + DWORD cbSize; + + LPCSTR pszProtocol; + UINT cchProtocol; + LPCSTR pszSuffix; + UINT cchSuffix; + UINT nScheme; + } PARSEDURLA, * PPARSEDURLA; +typedef struct tagPARSEDURLW { + DWORD cbSize; + + LPCWSTR pszProtocol; + UINT cchProtocol; + LPCWSTR pszSuffix; + UINT cchSuffix; + UINT nScheme; + } PARSEDURLW, * PPARSEDURLW; + +typedef PARSEDURLW PARSEDURL; +typedef PPARSEDURLW PPARSEDURL; + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall ParseURLA( LPCSTR pcszURL, PARSEDURLA * ppu); +extern "C" __declspec(dllimport) HRESULT __stdcall ParseURLW( LPCWSTR pcszURL, PARSEDURLW * ppu); +# 1133 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) LSTATUS __stdcall SHDeleteEmptyKeyA( HKEY hkey, LPCSTR pszSubKey); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHDeleteEmptyKeyW( HKEY hkey, LPCWSTR pszSubKey); + + + + + +extern "C" __declspec(dllimport) LSTATUS __stdcall SHDeleteKeyA( HKEY hkey, LPCSTR pszSubKey); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHDeleteKeyW( HKEY hkey, LPCWSTR pszSubKey); + + + + + +extern "C" __declspec(dllimport) HKEY __stdcall SHRegDuplicateHKey( HKEY hkey); + + + + + +extern "C" __declspec(dllimport) LSTATUS __stdcall SHDeleteValueA( HKEY hkey, LPCSTR pszSubKey, LPCSTR pszValue); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHDeleteValueW( HKEY hkey, LPCWSTR pszSubKey, LPCWSTR pszValue); + + + + + +extern "C" __declspec(dllimport) LSTATUS __stdcall SHGetValueA( + HKEY hkey, + LPCSTR pszSubKey, + LPCSTR pszValue, + DWORD *pdwType, + void *pvData, + DWORD *pcbData); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHGetValueW( + HKEY hkey, + LPCWSTR pszSubKey, + LPCWSTR pszValue, + DWORD *pdwType, + void *pvData, + DWORD *pcbData); + + + + + +extern "C" __declspec(dllimport) LSTATUS __stdcall SHSetValueA( HKEY hkey, LPCSTR pszSubKey, LPCSTR pszValue, DWORD dwType, + LPCVOID pvData, DWORD cbData); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHSetValueW( HKEY hkey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwType, + LPCVOID pvData, DWORD cbData); +# 1194 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +typedef int SRRF; +# 1405 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegGetValueA( HKEY hkey, LPCSTR pszSubKey, LPCSTR pszValue, + SRRF srrfFlags, DWORD *pdwType, void *pvData, + DWORD *pcbData); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegGetValueW( HKEY hkey, LPCWSTR pszSubKey, LPCWSTR pszValue, + SRRF srrfFlags, DWORD *pdwType, void *pvData, + DWORD *pcbData); + + + + + + +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegSetValue( HKEY hkey, LPCWSTR pszSubKey, LPCWSTR pszValue, SRRF srrfFlags, + DWORD dwType, LPCVOID pvData, DWORD cbData); + +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegGetValueFromHKCUHKLM( PCWSTR pwszKey, PCWSTR pwszValue, SRRF srrfFlags, + DWORD* pdwType, void* pvData, + DWORD * pcbData); +extern "C" BOOL __stdcall SHRegGetBoolValueFromHKCUHKLM( PCWSTR pszKey, PCWSTR pszValue, BOOL fDefault); +# 1433 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) LSTATUS __stdcall SHQueryValueExA( + HKEY hkey, + LPCSTR pszValue, + DWORD *pdwReserved, + DWORD *pdwType, + void *pvData, + DWORD *pcbData); + + + + + + + +extern "C" __declspec(dllimport) LSTATUS __stdcall SHQueryValueExW( + HKEY hkey, + LPCWSTR pszValue, + DWORD *pdwReserved, + DWORD *pdwType, + void *pvData, + DWORD *pcbData); +# 1462 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) LSTATUS __stdcall SHEnumKeyExA( HKEY hkey, DWORD dwIndex, LPSTR pszName, LPDWORD pcchName); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHEnumKeyExW( HKEY hkey, DWORD dwIndex, LPWSTR pszName, LPDWORD pcchName); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHEnumValueA( HKEY hkey, DWORD dwIndex, PSTR pszValueName, + LPDWORD pcchValueName, LPDWORD pdwType, void *pvData, + LPDWORD pcbData); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHEnumValueW( HKEY hkey, DWORD dwIndex, PWSTR pszValueName, + LPDWORD pcchValueName, LPDWORD pdwType, void *pvData, + LPDWORD pcbData); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHQueryInfoKeyA( HKEY hkey, LPDWORD pcSubKeys, LPDWORD pcchMaxSubKeyLen, LPDWORD pcValues, LPDWORD pcchMaxValueNameLen); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHQueryInfoKeyW( HKEY hkey, LPDWORD pcSubKeys, LPDWORD pcchMaxSubKeyLen, LPDWORD pcValues, LPDWORD pcchMaxValueNameLen); + + +extern "C" __declspec(dllimport) LSTATUS __stdcall SHCopyKeyA( HKEY hkeySrc, LPCSTR pszSrcSubKey, HKEY hkeyDest, DWORD fReserved); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHCopyKeyW( HKEY hkeySrc, LPCWSTR pszSrcSubKey, HKEY hkeyDest, DWORD fReserved); + + + +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegGetPathA( HKEY hKey, LPCSTR pcszSubKey, LPCSTR pcszValue, LPSTR pszPath, DWORD dwFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegGetPathW( HKEY hKey, LPCWSTR pcszSubKey, LPCWSTR pcszValue, LPWSTR pszPath, DWORD dwFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegSetPathA( HKEY hKey, LPCSTR pcszSubKey, LPCSTR pcszValue, LPCSTR pcszPath, DWORD dwFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegSetPathW( HKEY hKey, LPCWSTR pcszSubKey, LPCWSTR pcszValue, LPCWSTR pcszPath, DWORD dwFlags); +# 1505 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +typedef enum +{ + SHREGDEL_DEFAULT = 0x00000000, + SHREGDEL_HKCU = 0x00000001, + SHREGDEL_HKLM = 0x00000010, + SHREGDEL_BOTH = 0x00000011, +} SHREGDEL_FLAGS; + +typedef enum +{ + SHREGENUM_DEFAULT = 0x00000000, + SHREGENUM_HKCU = 0x00000001, + SHREGENUM_HKLM = 0x00000010, + SHREGENUM_BOTH = 0x00000011, + +} SHREGENUM_FLAGS; + + + + + + + +typedef HANDLE HUSKEY; +typedef HUSKEY *PHUSKEY; + +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegCreateUSKeyA( LPCSTR pszPath, REGSAM samDesired, HUSKEY hRelativeUSKey, PHUSKEY phNewUSKey, DWORD dwFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegCreateUSKeyW( LPCWSTR pwzPath, REGSAM samDesired, HUSKEY hRelativeUSKey, PHUSKEY phNewUSKey, DWORD dwFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegOpenUSKeyA( LPCSTR pszPath, REGSAM samDesired, HUSKEY hRelativeUSKey, PHUSKEY phNewUSKey, BOOL fIgnoreHKCU); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegOpenUSKeyW( LPCWSTR pwzPath, REGSAM samDesired, HUSKEY hRelativeUSKey, PHUSKEY phNewUSKey, BOOL fIgnoreHKCU); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegQueryUSValueA( + HUSKEY hUSKey, + LPCSTR pszValue, + DWORD * pdwType, + void * pvData, + DWORD * pcbData, + BOOL fIgnoreHKCU, + void * pvDefaultData, + DWORD dwDefaultDataSize); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegQueryUSValueW( + HUSKEY hUSKey, + LPCWSTR pszValue, + DWORD * pdwType, + void * pvData, + DWORD * pcbData, + BOOL fIgnoreHKCU, + void * pvDefaultData, + DWORD dwDefaultDataSize); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegWriteUSValueA( HUSKEY hUSKey, LPCSTR pszValue, DWORD dwType, const void *pvData, DWORD cbData, DWORD dwFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegWriteUSValueW( HUSKEY hUSKey, LPCWSTR pwzValue, DWORD dwType, const void *pvData, DWORD cbData, DWORD dwFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegDeleteUSValueA( HUSKEY hUSKey, LPCSTR pszValue, SHREGDEL_FLAGS delRegFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegDeleteUSValueW( HUSKEY hUSKey, LPCWSTR pwzValue, SHREGDEL_FLAGS delRegFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegDeleteEmptyUSKeyW( HUSKEY hUSKey, LPCWSTR pwzSubKey, SHREGDEL_FLAGS delRegFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegDeleteEmptyUSKeyA( HUSKEY hUSKey, LPCSTR pszSubKey, SHREGDEL_FLAGS delRegFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegEnumUSKeyA( HUSKEY hUSKey, DWORD dwIndex, LPSTR pszName, LPDWORD pcchName, SHREGENUM_FLAGS enumRegFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegEnumUSKeyW( HUSKEY hUSKey, DWORD dwIndex, LPWSTR pwzName, LPDWORD pcchName, SHREGENUM_FLAGS enumRegFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegEnumUSValueA( HUSKEY hUSkey, DWORD dwIndex, + LPSTR pszValueName, LPDWORD pcchValueName, LPDWORD pdwType, + void *pvData, LPDWORD pcbData, SHREGENUM_FLAGS enumRegFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegEnumUSValueW( HUSKEY hUSkey, DWORD dwIndex, + LPWSTR pszValueName, LPDWORD pcchValueName, LPDWORD pdwType, + void *pvData, LPDWORD pcbData, SHREGENUM_FLAGS enumRegFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegQueryInfoUSKeyA( HUSKEY hUSKey, LPDWORD pcSubKeys, LPDWORD pcchMaxSubKeyLen, LPDWORD pcValues, LPDWORD pcchMaxValueNameLen, SHREGENUM_FLAGS enumRegFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegQueryInfoUSKeyW( HUSKEY hUSKey, LPDWORD pcSubKeys, LPDWORD pcchMaxSubKeyLen, LPDWORD pcValues, LPDWORD pcchMaxValueNameLen, SHREGENUM_FLAGS enumRegFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegCloseUSKey( HUSKEY hUSKey); + + + +extern "C" LSTATUS __stdcall SHRegGetUSValueA( + LPCSTR pszSubKey, + LPCSTR pszValue, + DWORD *pdwType, + void *pvData, + DWORD *pcbData, + BOOL fIgnoreHKCU, + void *pvDefaultData, + DWORD dwDefaultDataSize); +extern "C" LSTATUS __stdcall SHRegGetUSValueW( + LPCWSTR pszSubKey, + LPCWSTR pszValue, + DWORD *pdwType, + void *pvData, + DWORD *pcbData, + BOOL fIgnoreHKCU, + void *pvDefaultData, + DWORD dwDefaultDataSize); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegSetUSValueA( LPCSTR pszSubKey, LPCSTR pszValue, DWORD dwType, const void *pvData, DWORD cbData, DWORD dwFlags); +extern "C" __declspec(dllimport) LSTATUS __stdcall SHRegSetUSValueW( LPCWSTR pwzSubKey, LPCWSTR pwzValue, DWORD dwType, const void *pvData, DWORD cbData, DWORD dwFlags); +extern "C" __declspec(dllimport) int __stdcall SHRegGetIntW( HKEY hk, PCWSTR pwzKey, int iDefault); +# 1622 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) BOOL __stdcall SHRegGetBoolUSValueA( LPCSTR pszSubKey, LPCSTR pszValue, BOOL fIgnoreHKCU, BOOL fDefault); +extern "C" __declspec(dllimport) BOOL __stdcall SHRegGetBoolUSValueW( LPCWSTR pszSubKey, LPCWSTR pszValue, BOOL fIgnoreHKCU, BOOL fDefault); +# 1638 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +enum +{ + ASSOCF_NONE = 0x00000000, + ASSOCF_INIT_NOREMAPCLSID = 0x00000001, + ASSOCF_INIT_BYEXENAME = 0x00000002, + ASSOCF_OPEN_BYEXENAME = 0x00000002, + ASSOCF_INIT_DEFAULTTOSTAR = 0x00000004, + ASSOCF_INIT_DEFAULTTOFOLDER = 0x00000008, + ASSOCF_NOUSERSETTINGS = 0x00000010, + ASSOCF_NOTRUNCATE = 0x00000020, + ASSOCF_VERIFY = 0x00000040, + ASSOCF_REMAPRUNDLL = 0x00000080, + ASSOCF_NOFIXUPS = 0x00000100, + ASSOCF_IGNOREBASECLASS = 0x00000200, + ASSOCF_INIT_IGNOREUNKNOWN = 0x00000400, + + ASSOCF_INIT_FIXED_PROGID = 0x00000800, + ASSOCF_IS_PROTOCOL = 0x00001000, + ASSOCF_INIT_FOR_FILE = 0x00002000, + + + + + + +}; +typedef DWORD ASSOCF; + +typedef enum +{ + ASSOCSTR_COMMAND = 1, + ASSOCSTR_EXECUTABLE, + ASSOCSTR_FRIENDLYDOCNAME, + ASSOCSTR_FRIENDLYAPPNAME, + ASSOCSTR_NOOPEN, + ASSOCSTR_SHELLNEWVALUE, + ASSOCSTR_DDECOMMAND, + ASSOCSTR_DDEIFEXEC, + ASSOCSTR_DDEAPPLICATION, + ASSOCSTR_DDETOPIC, + ASSOCSTR_INFOTIP, + + ASSOCSTR_QUICKTIP, + ASSOCSTR_TILEINFO, + ASSOCSTR_CONTENTTYPE, + ASSOCSTR_DEFAULTICON, + ASSOCSTR_SHELLEXTENSION, + + + ASSOCSTR_DROPTARGET, + ASSOCSTR_DELEGATEEXECUTE, + + + ASSOCSTR_SUPPORTED_URI_PROTOCOLS, + + ASSOCSTR_PROGID, + ASSOCSTR_APPID, + ASSOCSTR_APPPUBLISHER, + ASSOCSTR_APPICONREFERENCE, + + ASSOCSTR_MAX +} ASSOCSTR; + +typedef enum +{ + ASSOCKEY_SHELLEXECCLASS = 1, + ASSOCKEY_APP, + ASSOCKEY_CLASS, + ASSOCKEY_BASECLASS, + ASSOCKEY_MAX +} ASSOCKEY; + +typedef enum +{ + ASSOCDATA_MSIDESCRIPTOR = 1, + ASSOCDATA_NOACTIVATEHANDLER, + ASSOCDATA_QUERYCLASSSTORE, + ASSOCDATA_HASPERUSERASSOC, + + ASSOCDATA_EDITFLAGS, + ASSOCDATA_VALUE, + + ASSOCDATA_MAX +} ASSOCDATA; + +typedef enum +{ + ASSOCENUM_NONE +} ASSOCENUM; +# 1738 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +typedef enum +{ + FTA_None = 0x00000000, + FTA_Exclude = 0x00000001, + FTA_Show = 0x00000002, + FTA_HasExtension = 0x00000004, + FTA_NoEdit = 0x00000008, + FTA_NoRemove = 0x00000010, + FTA_NoNewVerb = 0x00000020, + FTA_NoEditVerb = 0x00000040, + FTA_NoRemoveVerb = 0x00000080, + FTA_NoEditDesc = 0x00000100, + FTA_NoEditIcon = 0x00000200, + FTA_NoEditDflt = 0x00000400, + FTA_NoEditVerbCmd = 0x00000800, + FTA_NoEditVerbExe = 0x00001000, + FTA_NoDDE = 0x00002000, + + FTA_NoEditMIME = 0x00008000, + FTA_OpenIsSafe = 0x00010000, + FTA_AlwaysUnsafe = 0x00020000, + + FTA_NoRecentDocs = 0x00100000, + FTA_SafeForElevation = 0x00200000, + FTA_AlwaysUseDirectInvoke = 0x00400000, +} FILETYPEATTRIBUTEFLAGS; +extern "C++" { inline constexpr FILETYPEATTRIBUTEFLAGS operator | (FILETYPEATTRIBUTEFLAGS a, FILETYPEATTRIBUTEFLAGS b) throw() { return FILETYPEATTRIBUTEFLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline FILETYPEATTRIBUTEFLAGS &operator |= (FILETYPEATTRIBUTEFLAGS &a, FILETYPEATTRIBUTEFLAGS b) throw() { return (FILETYPEATTRIBUTEFLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr FILETYPEATTRIBUTEFLAGS operator & (FILETYPEATTRIBUTEFLAGS a, FILETYPEATTRIBUTEFLAGS b) throw() { return FILETYPEATTRIBUTEFLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline FILETYPEATTRIBUTEFLAGS &operator &= (FILETYPEATTRIBUTEFLAGS &a, FILETYPEATTRIBUTEFLAGS b) throw() { return (FILETYPEATTRIBUTEFLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr FILETYPEATTRIBUTEFLAGS operator ~ (FILETYPEATTRIBUTEFLAGS a) throw() { return FILETYPEATTRIBUTEFLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr FILETYPEATTRIBUTEFLAGS operator ^ (FILETYPEATTRIBUTEFLAGS a, FILETYPEATTRIBUTEFLAGS b) throw() { return FILETYPEATTRIBUTEFLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline FILETYPEATTRIBUTEFLAGS &operator ^= (FILETYPEATTRIBUTEFLAGS &a, FILETYPEATTRIBUTEFLAGS b) throw() { return (FILETYPEATTRIBUTEFLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } } + + + + +struct __declspec(uuid("c46ca590-3c3f-11d2-bee6-0000f805ca57")) __declspec(novtable) IQueryAssociations : public IUnknown +{ + + virtual __declspec(nothrow) HRESULT __stdcall Init( ASSOCF flags, LPCWSTR pszAssoc, HKEY hkProgid, HWND hwnd) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetString( ASSOCF flags, ASSOCSTR str, LPCWSTR pszExtra, LPWSTR pszOut, DWORD *pcchOut) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetKey( ASSOCF flags, ASSOCKEY key, LPCWSTR pszExtra, HKEY *phkeyOut) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetData( ASSOCF flags, ASSOCDATA data, LPCWSTR pszExtra, void * pvOut, DWORD *pcbOut) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetEnum( ASSOCF flags, ASSOCENUM assocenum, LPCWSTR pszExtra, const IID & riid, void **ppvOut) = 0; +}; + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall AssocCreate( CLSID clsid, const IID & riid, void **ppv); + + + + + +extern "C" DWORD __stdcall SHGetAssocKeys( IQueryAssociations *pqa, HKEY *rgKeys, DWORD cKeys); + + +extern "C" __declspec(dllimport) HRESULT __stdcall AssocQueryStringA( ASSOCF flags, ASSOCSTR str, LPCSTR pszAssoc, LPCSTR pszExtra, LPSTR pszOut, DWORD *pcchOut); + +extern "C" __declspec(dllimport) HRESULT __stdcall AssocQueryStringW( ASSOCF flags, ASSOCSTR str, LPCWSTR pszAssoc, LPCWSTR pszExtra, LPWSTR pszOut, DWORD *pcchOut); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall AssocQueryStringByKeyA( ASSOCF flags, ASSOCSTR str, HKEY hkAssoc, LPCSTR pszExtra, LPSTR pszOut, DWORD *pcchOut); +extern "C" __declspec(dllimport) HRESULT __stdcall AssocQueryStringByKeyW( ASSOCF flags, ASSOCSTR str, HKEY hkAssoc, LPCWSTR pszExtra, LPWSTR pszOut, DWORD *pcchOut); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall AssocQueryKeyA( ASSOCF flags, ASSOCKEY key, LPCSTR pszAssoc, LPCSTR pszExtra, HKEY *phkeyOut); +extern "C" __declspec(dllimport) HRESULT __stdcall AssocQueryKeyW( ASSOCF flags, ASSOCKEY key, LPCWSTR pszAssoc, LPCWSTR pszExtra, HKEY *phkeyOut); +# 1829 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) BOOL __stdcall AssocIsDangerous( PCWSTR pszAssoc); + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall AssocGetPerceivedType( PCWSTR pszExt, PERCEIVED *ptype, PERCEIVEDFLAG *pflag, PWSTR *ppszType); +# 1860 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) IStream * __stdcall SHOpenRegStreamA( HKEY hkey, LPCSTR pszSubkey, LPCSTR pszValue, DWORD grfMode); +extern "C" __declspec(dllimport) IStream * __stdcall SHOpenRegStreamW( HKEY hkey, LPCWSTR pszSubkey, LPCWSTR pszValue, DWORD grfMode); + + + + + +extern "C" __declspec(dllimport) IStream * __stdcall SHOpenRegStream2A( HKEY hkey, LPCSTR pszSubkey, LPCSTR pszValue, DWORD grfMode); +extern "C" __declspec(dllimport) IStream * __stdcall SHOpenRegStream2W( HKEY hkey, LPCWSTR pszSubkey, LPCWSTR pszValue, DWORD grfMode); +# 1878 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) HRESULT __stdcall SHCreateStreamOnFileA( LPCSTR pszFile, DWORD grfMode, IStream **ppstm); +extern "C" __declspec(dllimport) HRESULT __stdcall SHCreateStreamOnFileW( LPCWSTR pszFile, DWORD grfMode, IStream **ppstm); +# 1889 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) HRESULT __stdcall SHCreateStreamOnFileEx( LPCWSTR pszFile, DWORD grfMode, DWORD dwAttributes, BOOL fCreate, IStream *pstmTemplate, IStream **ppstm); + + + +extern "C" __declspec(dllimport) IStream * __stdcall SHCreateMemStream( const BYTE *pInit, UINT cbInit); +# 1913 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) HRESULT __stdcall GetAcceptLanguagesA( LPSTR pszLanguages, DWORD *pcchLanguages); +extern "C" __declspec(dllimport) HRESULT __stdcall GetAcceptLanguagesW( LPWSTR pszLanguages, DWORD *pcchLanguages); +# 1958 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" + extern "C" __declspec(dllimport) void __stdcall IUnknown_Set( IUnknown ** ppunk, IUnknown * punk); + extern "C" __declspec(dllimport) void __stdcall IUnknown_AtomicRelease( void ** ppunk); + extern "C" __declspec(dllimport) HRESULT __stdcall IUnknown_GetWindow( IUnknown* punk, HWND* phwnd); + extern "C" __declspec(dllimport) HRESULT __stdcall IUnknown_SetSite( IUnknown *punk, IUnknown *punkSite); + extern "C" __declspec(dllimport) HRESULT __stdcall IUnknown_GetSite( IUnknown *punk, const IID & riid, void **ppv); + extern "C" __declspec(dllimport) HRESULT __stdcall IUnknown_QueryService( IUnknown* punk, const GUID & guidService, const IID & riid, void ** ppvOut); + + + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall IStream_Read( IStream *pstm, void *pv, ULONG cb); +extern "C" __declspec(dllimport) HRESULT __stdcall IStream_Write( IStream *pstm, const void *pv, ULONG cb); +extern "C" __declspec(dllimport) HRESULT __stdcall IStream_Reset( IStream *pstm); +extern "C" __declspec(dllimport) HRESULT __stdcall IStream_Size( IStream *pstm, ULARGE_INTEGER *pui); + + + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall ConnectToConnectionPoint( IUnknown* punk, const IID & riidEvent, BOOL fConnect, IUnknown* punkTarget, DWORD* pdwCookie, IConnectionPoint** ppcpOut); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall IStream_ReadPidl( IStream *pstm, LPITEMIDLIST *ppidlOut); +extern "C" __declspec(dllimport) HRESULT __stdcall IStream_WritePidl( IStream *pstm, LPCITEMIDLIST pidlWrite); + + + + + +extern "C" __declspec(dllimport) HRESULT __stdcall IStream_ReadStr( IStream *pstm, PWSTR *ppsz); +extern "C" __declspec(dllimport) HRESULT __stdcall IStream_WriteStr( IStream *pstm, PCWSTR psz); + +extern "C" __declspec(dllimport) HRESULT __stdcall IStream_Copy( IStream *pstmFrom, IStream *pstmTo, DWORD cb); +# 2015 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) HRESULT __stdcall SHGetViewStatePropertyBag( LPCITEMIDLIST pidl, PCWSTR pszBagName, DWORD dwFlags, const IID & riid, void **ppv); +# 2032 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) int __stdcall SHFormatDateTimeA( const FILETIME * pft, DWORD * pdwFlags, LPSTR pszBuf, UINT cchBuf); +extern "C" __declspec(dllimport) int __stdcall SHFormatDateTimeW( const FILETIME * pft, DWORD * pdwFlags, LPWSTR pszBuf, UINT cchBuf); +# 2047 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) int __stdcall SHAnsiToUnicode( PCSTR pszSrc, PWSTR pwszDst, int cwchBuf); + +extern "C" __declspec(dllimport) int __stdcall SHAnsiToAnsi( PCSTR pszSrc, PSTR pszDst, int cchBuf); + +extern "C" __declspec(dllimport) int __stdcall SHUnicodeToAnsi( PCWSTR pwszSrc, PSTR pszDst, int cchBuf); + +extern "C" __declspec(dllimport) int __stdcall SHUnicodeToUnicode( PCWSTR pwzSrc, PWSTR pwzDst, int cwchBuf); +# 2075 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) int __stdcall SHMessageBoxCheckA( HWND hwnd, LPCSTR pszText, LPCSTR pszCaption, UINT uType, int iDefault, LPCSTR pszRegVal); +extern "C" __declspec(dllimport) int __stdcall SHMessageBoxCheckW( HWND hwnd, LPCWSTR pszText, LPCWSTR pszCaption, UINT uType, int iDefault, LPCWSTR pszRegVal); +# 2085 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) LRESULT __stdcall SHSendMessageBroadcastA( UINT uMsg, WPARAM wParam, LPARAM lParam); + +extern "C" __declspec(dllimport) LRESULT __stdcall SHSendMessageBroadcastW( UINT uMsg, WPARAM wParam, LPARAM lParam); + + + + + + +extern "C" __declspec(dllimport) CHAR __stdcall SHStripMneumonicA( LPSTR pszMenu); +extern "C" __declspec(dllimport) WCHAR __stdcall SHStripMneumonicW( LPWSTR pszMenu); +# 2145 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) BOOL __stdcall IsOS(DWORD dwOS); + + + + +typedef enum +{ + GLOBALCOUNTER_SEARCHMANAGER, + GLOBALCOUNTER_SEARCHOPTIONS, + GLOBALCOUNTER_FOLDERSETTINGSCHANGE, + GLOBALCOUNTER_RATINGS, + GLOBALCOUNTER_APPROVEDSITES, + GLOBALCOUNTER_RESTRICTIONS, + GLOBALCOUNTER_SHELLSETTINGSCHANGED, + GLOBALCOUNTER_SYSTEMPIDLCHANGE, + GLOBALCOUNTER_OVERLAYMANAGER, + GLOBALCOUNTER_QUERYASSOCIATIONS, + GLOBALCOUNTER_IESESSIONS, + GLOBALCOUNTER_IEONLY_SESSIONS, + GLOBALCOUNTER_APPLICATION_DESTINATIONS, + __UNUSED_RECYCLE_WAS_GLOBALCOUNTER_CSCSYNCINPROGRESS, + GLOBALCOUNTER_BITBUCKETNUMDELETERS, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_SHARES, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_A, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_B, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_C, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_D, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_E, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_F, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_G, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_H, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_I, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_J, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_K, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_L, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_M, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_N, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_O, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_P, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_Q, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_R, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_S, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_T, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_U, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_V, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_W, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_X, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_Y, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_Z, + __UNUSED_RECYCLE_WAS_GLOBALCOUNTER_RECYCLEDIRTYCOUNT_SERVERDRIVE, + __UNUSED_RECYCLE_WAS_GLOBALCOUNTER_RECYCLEGLOBALDIRTYCOUNT, + GLOBALCOUNTER_RECYCLEBINENUM, + GLOBALCOUNTER_RECYCLEBINCORRUPTED, + GLOBALCOUNTER_RATINGS_STATECOUNTER, + GLOBALCOUNTER_PRIVATE_PROFILE_CACHE, + GLOBALCOUNTER_INTERNETTOOLBAR_LAYOUT, + GLOBALCOUNTER_FOLDERDEFINITION_CACHE, + GLOBALCOUNTER_COMMONPLACES_LIST_CACHE, + GLOBALCOUNTER_PRIVATE_PROFILE_CACHE_MACHINEWIDE, + GLOBALCOUNTER_ASSOCCHANGED, + + GLOBALCOUNTER_APP_ITEMS_STATE_STORE_CACHE, + GLOBALCOUNTER_SETTINGSYNC_ENABLED, + GLOBALCOUNTER_APPSFOLDER_FILETYPEASSOCIATION_COUNTER, + GLOBALCOUNTER_USERINFOCHANGED, + + GLOBALCOUNTER_SYNC_ENGINE_INFORMATION_CACHE_MACHINEWIDE, + + + + + + GLOBALCOUNTER_MAXIMUMVALUE +} SHGLOBALCOUNTER; + + +extern "C" __declspec(dllimport) long __stdcall SHGlobalCounterGetValue(const SHGLOBALCOUNTER id); +extern "C" __declspec(dllimport) long __stdcall SHGlobalCounterIncrement(const SHGLOBALCOUNTER id); +extern "C" __declspec(dllimport) long __stdcall SHGlobalCounterDecrement(const SHGLOBALCOUNTER id); + + + + + + + +extern "C" __declspec(dllimport) HANDLE __stdcall SHAllocShared( const void *pvData, DWORD dwSize, DWORD dwProcessId); +extern "C" __declspec(dllimport) BOOL __stdcall SHFreeShared( HANDLE hData, DWORD dwProcessId); +extern "C" __declspec(dllimport) void * __stdcall SHLockShared( HANDLE hData, DWORD dwProcessId); +extern "C" __declspec(dllimport) BOOL __stdcall SHUnlockShared( void *pvData); + + + +extern "C" __declspec(dllimport) UINT __stdcall WhichPlatform(void); +# 2300 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +typedef struct +{ + const IID * piid; + int dwOffset; +} QITAB, *LPQITAB; +typedef const QITAB *LPCQITAB; +# 2324 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" HRESULT __stdcall QISearch( void* that, LPCQITAB pqit, const IID & riid, void **ppv); +# 2355 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) BOOL __stdcall SHIsLowMemoryMachine(DWORD dwType); + + +extern "C" __declspec(dllimport) int __stdcall GetMenuPosFromID( HMENU hmenu, UINT id); + +extern "C" __declspec(dllimport) HRESULT __stdcall SHGetInverseCMAP( BYTE *pbMap, ULONG cbMap); +# 2391 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +extern "C" __declspec(dllimport) HRESULT __stdcall SHAutoComplete( HWND hwndEdit, DWORD dwFlags); + + +extern "C" __declspec(dllimport) HRESULT __stdcall SHCreateThreadRef( LONG *pcRef, IUnknown **ppunk); + +extern "C" __declspec(dllimport) HRESULT __stdcall SHSetThreadRef( IUnknown *punk); +extern "C" __declspec(dllimport) HRESULT __stdcall SHGetThreadRef( IUnknown **ppunk); + +extern "C" __declspec(dllimport) BOOL __stdcall SHSkipJunction( IBindCtx* pbc, const CLSID *pclsid); + +enum +{ + CTF_INSIST = 0x00000001, + CTF_THREAD_REF = 0x00000002, + CTF_PROCESS_REF = 0x00000004, + CTF_COINIT_STA = 0x00000008, + CTF_COINIT = 0x00000008, + + CTF_FREELIBANDEXIT = 0x00000010, + CTF_REF_COUNTED = 0x00000020, + CTF_WAIT_ALLOWCOM = 0x00000040, + + + CTF_UNUSED = 0x00000080, + CTF_INHERITWOW64 = 0x00000100, + + + CTF_WAIT_NO_REENTRANCY = 0x00000200, + + + CTF_KEYBOARD_LOCALE = 0x00000400, + CTF_OLEINITIALIZE = 0x00000800, + CTF_COINIT_MTA = 0x00001000, + CTF_NOADDREFLIB = 0x00002000, + + + + + +}; + + +typedef DWORD SHCT_FLAGS; + +extern "C" __declspec(dllimport) BOOL __stdcall SHCreateThread( LPTHREAD_START_ROUTINE pfnThreadProc, void *pData, SHCT_FLAGS flags, LPTHREAD_START_ROUTINE pfnCallback); +extern "C" __declspec(dllimport) BOOL __stdcall SHCreateThreadWithHandle( LPTHREAD_START_ROUTINE pfnThreadProc, void *pData, SHCT_FLAGS flags, LPTHREAD_START_ROUTINE pfnCallback, HANDLE *pHandle); + + +extern "C" __declspec(dllimport) void __stdcall SetProcessReference( IUnknown *punk); +extern "C" __declspec(dllimport) HRESULT __stdcall GetProcessReference( IUnknown **punk); + + + +extern "C" __declspec(dllimport) HRESULT __stdcall SHReleaseThreadRef(void); + + + + + + + +extern "C" __declspec(dllimport) HPALETTE __stdcall SHCreateShellPalette( HDC hdc); + +extern "C" __declspec(dllimport) void __stdcall ColorRGBToHLS(COLORREF clrRGB, WORD* pwHue, WORD* pwLuminance, WORD* pwSaturation); +extern "C" __declspec(dllimport) COLORREF __stdcall ColorHLSToRGB(WORD wHue, WORD wLuminance, WORD wSaturation); +extern "C" __declspec(dllimport) COLORREF __stdcall ColorAdjustLuma(COLORREF clrRGB, int n, BOOL fScale); +# 2465 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +typedef struct _DLLVERSIONINFO +{ + DWORD cbSize; + DWORD dwMajorVersion; + DWORD dwMinorVersion; + DWORD dwBuildNumber; + DWORD dwPlatformID; +} DLLVERSIONINFO; + + + + + +typedef struct _DLLVERSIONINFO2 +{ + DLLVERSIONINFO info1; + DWORD dwFlags; + ULONGLONG ullVersion; + + + + +} DLLVERSIONINFO2; +# 2505 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +typedef HRESULT (__stdcall* DLLGETVERSIONPROC)(DLLVERSIONINFO *); + + +extern "C" HRESULT __stdcall DllInstall(BOOL bInstall, PCWSTR pszCmdLine); + + + + +extern "C" __declspec(dllimport) BOOL __stdcall IsInternetESCEnabled(void); +# 2524 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +} +# 2680 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" +#pragma warning(pop) + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" 1 +# 27 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\poppack.h" +#pragma warning(disable: 4103) + +#pragma pack(pop) +# 2684 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\shlwapi.h" 2 + + + + +#pragma warning(pop) +# 103 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" 2 + + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h" 1 +# 22 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ktmw32.h" 1 +# 31 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\ktmw32.h" +extern "C" { + + + + + + + +HANDLE +__stdcall +CreateTransaction ( + LPSECURITY_ATTRIBUTES lpTransactionAttributes , + LPGUID UOW , + DWORD CreateOptions , + DWORD IsolationLevel , + DWORD IsolationFlags , + DWORD Timeout , + LPWSTR Description + ); + +HANDLE +__stdcall +OpenTransaction ( + DWORD dwDesiredAccess, + LPGUID TransactionId + ); + +BOOL +__stdcall +CommitTransaction ( + HANDLE TransactionHandle + ); + +BOOL +__stdcall +CommitTransactionAsync ( + HANDLE TransactionHandle + ); + +BOOL +__stdcall +RollbackTransaction ( + HANDLE TransactionHandle + ); + +BOOL +__stdcall +RollbackTransactionAsync ( + HANDLE TransactionHandle + ); + +BOOL +__stdcall +GetTransactionId ( + HANDLE TransactionHandle, + LPGUID TransactionId + ); + + +BOOL +__stdcall +GetTransactionInformation ( + HANDLE TransactionHandle, + PDWORD Outcome , + PDWORD IsolationLevel , + PDWORD IsolationFlags , + PDWORD Timeout , + DWORD BufferLength, + LPWSTR Description + ); + +BOOL +__stdcall +SetTransactionInformation ( + HANDLE TransactionHandle, + DWORD IsolationLevel , + DWORD IsolationFlags , + DWORD Timeout , + LPWSTR Description + ); + +HANDLE +__stdcall +CreateTransactionManager ( + LPSECURITY_ATTRIBUTES lpTransactionAttributes , + LPWSTR LogFileName, + ULONG CreateOptions , + ULONG CommitStrength + ); + +HANDLE +__stdcall +OpenTransactionManager ( + LPWSTR LogFileName, + ACCESS_MASK DesiredAccess, + ULONG OpenOptions + ); + +HANDLE +__stdcall +OpenTransactionManagerById ( + LPGUID TransactionManagerId, + ACCESS_MASK DesiredAccess, + ULONG OpenOptions + ); + +BOOL +__stdcall +RenameTransactionManager ( + LPWSTR LogFileName, + LPGUID ExistingTransactionManagerGuid + ); + +BOOL +__stdcall +RollforwardTransactionManager ( + HANDLE TransactionManagerHandle, + PLARGE_INTEGER TmVirtualClock + ); + +BOOL +__stdcall +RecoverTransactionManager ( + HANDLE TransactionManagerHandle + ); + +BOOL +GetCurrentClockTransactionManager( + HANDLE TransactionManagerHandle, + PLARGE_INTEGER TmVirtualClock + ); + +BOOL +GetTransactionManagerId( + HANDLE TransactionManagerHandle, + LPGUID TransactionManagerId + ); + +HANDLE +__stdcall +CreateResourceManager ( + LPSECURITY_ATTRIBUTES lpResourceManagerAttributes , + LPGUID ResourceManagerId, + DWORD CreateOptions , + HANDLE TmHandle, + LPWSTR Description + ); + +HANDLE +__stdcall +OpenResourceManager ( + DWORD dwDesiredAccess, + HANDLE TmHandle, + LPGUID ResourceManagerId + ); + +BOOL +__stdcall +RecoverResourceManager ( + HANDLE ResourceManagerHandle + ); + +BOOL +__stdcall +GetNotificationResourceManager ( + HANDLE ResourceManagerHandle, + PTRANSACTION_NOTIFICATION TransactionNotification, + ULONG NotificationLength, + DWORD dwMilliseconds , + PULONG ReturnLength + ); + +BOOL +__stdcall +GetNotificationResourceManagerAsync ( + HANDLE ResourceManagerHandle, + PTRANSACTION_NOTIFICATION TransactionNotification, + ULONG TransactionNotificationLength, + PULONG ReturnLength, + LPOVERLAPPED lpOverlapped + ); + +BOOL +__stdcall +SetResourceManagerCompletionPort( + HANDLE ResourceManagerHandle, + HANDLE IoCompletionPortHandle, + ULONG_PTR CompletionKey + ); + +HANDLE +__stdcall +CreateEnlistment ( + LPSECURITY_ATTRIBUTES lpEnlistmentAttributes , + HANDLE ResourceManagerHandle, + HANDLE TransactionHandle, + NOTIFICATION_MASK NotificationMask, + DWORD CreateOptions , + PVOID EnlistmentKey + ); + +HANDLE +__stdcall +OpenEnlistment ( + DWORD dwDesiredAccess, + HANDLE ResourceManagerHandle, + LPGUID EnlistmentId + ); + + +BOOL +__stdcall +RecoverEnlistment ( + HANDLE EnlistmentHandle, + PVOID EnlistmentKey + ); + + +BOOL +__stdcall +GetEnlistmentRecoveryInformation ( + HANDLE EnlistmentHandle, + ULONG BufferSize, + PVOID Buffer, + PULONG BufferUsed + ); + +BOOL +__stdcall +GetEnlistmentId ( + HANDLE EnlistmentHandle, + LPGUID EnlistmentId + ); + +BOOL +__stdcall +SetEnlistmentRecoveryInformation ( + HANDLE EnlistmentHandle, + ULONG BufferSize, + PVOID Buffer + ); + +BOOL +__stdcall +PrepareEnlistment ( + HANDLE EnlistmentHandle, + PLARGE_INTEGER TmVirtualClock + ); + +BOOL +__stdcall +PrePrepareEnlistment ( + HANDLE EnlistmentHandle, + PLARGE_INTEGER TmVirtualClock + ); + +BOOL +__stdcall +CommitEnlistment ( + HANDLE EnlistmentHandle, + PLARGE_INTEGER TmVirtualClock + ); + +BOOL +__stdcall +RollbackEnlistment ( + HANDLE EnlistmentHandle, + PLARGE_INTEGER TmVirtualClock + ); + +BOOL +__stdcall +PrePrepareComplete ( + HANDLE EnlistmentHandle, + PLARGE_INTEGER TmVirtualClock + ); + +BOOL +__stdcall +PrepareComplete ( + HANDLE EnlistmentHandle, + PLARGE_INTEGER TmVirtualClock + ); + +BOOL +__stdcall +ReadOnlyEnlistment ( + HANDLE EnlistmentHandle, + PLARGE_INTEGER TmVirtualClock + ); + +BOOL +__stdcall +CommitComplete ( + HANDLE EnlistmentHandle, + PLARGE_INTEGER TmVirtualClock + ); + +BOOL +__stdcall +RollbackComplete ( + HANDLE EnlistmentHandle, + PLARGE_INTEGER TmVirtualClock + ); + +BOOL +__stdcall +SinglePhaseReject ( + HANDLE EnlistmentHandle, + PLARGE_INTEGER TmVirtualClock + ); + + +} +# 22 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h" 2 + + + +extern "C" bool __cdecl __uncaught_exception(); + +#pragma pack(push,8) +namespace ATL +{ + + + +class CAtlTransactionManager +{ +public: + + + + + explicit CAtlTransactionManager( BOOL bFallback = 1, BOOL bAutoCreateTransaction = 1) : + m_hTransaction(0), m_bFallback(bFallback) + { + if (bAutoCreateTransaction) + { + Create(); + } + } + + + + ~CAtlTransactionManager() + { + if (m_hTransaction != 0) + { + if (__uncaught_exception()) + { + Rollback(); + } + else + { + Commit(); + } + + Close(); + } + } + +private: + + + CAtlTransactionManager( const CAtlTransactionManager &atm); + CAtlTransactionManager &operator=( const CAtlTransactionManager &atm); + + +public: + + + + + HANDLE GetHandle() const + { + return m_hTransaction; + } + + + + + + BOOL IsFallback() const + { + return m_bFallback; + } + + +public: + + + + + BOOL Create(); + + + + + + BOOL Close(); + + + + + + BOOL Commit(); + + + + + + BOOL Rollback(); +# 131 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h" + HANDLE CreateFileW( + LPCTSTR lpFileName, + DWORD dwDesiredAccess, + DWORD dwShareMode, + LPSECURITY_ATTRIBUTES lpSecurityAttributes, + DWORD dwCreationDisposition, + DWORD dwFlagsAndAttributes, + HANDLE hTemplateFile); + + + + + + + BOOL DeleteFileW( LPCTSTR lpFileName); + + + + + + + + BOOL MoveFileW( + LPCTSTR lpOldFileName, + LPCTSTR lpNewFileName); + + + + + + + DWORD GetFileAttributesW( LPCTSTR lpFileName); +# 171 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h" + BOOL GetFileAttributesExW( + LPCTSTR lpFileName, + GET_FILEEX_INFO_LEVELS fInfoLevelId, + LPVOID lpFileInformation); + + + + + + + + BOOL SetFileAttributesW( + LPCTSTR lpFileName, + DWORD dwAttributes); + + + + + + + + HANDLE FindFirstFileW( + LPCTSTR lpFileName, + WIN32_FIND_DATA* pNextInfo); +# 208 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h" + LSTATUS RegCreateKeyExW( + HKEY hKey, + LPCTSTR lpSubKey, + DWORD dwReserved, + LPTSTR lpClass, + DWORD dwOptions, + REGSAM samDesired, + const LPSECURITY_ATTRIBUTES lpSecurityAttributes, + PHKEY phkResult, + LPDWORD lpdwDisposition); +# 227 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h" + LSTATUS RegOpenKeyExW( + HKEY hKey, + LPCTSTR lpSubKey, + DWORD ulOptions, + REGSAM samDesired, + PHKEY phkResult); + + + + + + + LSTATUS RegDeleteKeyW( + HKEY hKey, + LPCTSTR lpSubKey); + +protected: + + + HANDLE m_hTransaction; + + + + BOOL m_bFallback; +}; + +inline BOOL CAtlTransactionManager::Create() +{ + if (m_hTransaction != 0) + { + + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h", 258, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + + typedef HANDLE (__stdcall* PFNCREATETRANSACTION)(LPSECURITY_ATTRIBUTES, LPGUID, DWORD, DWORD, DWORD, DWORD, LPWSTR); + static bool bInitialized = false; + static PFNCREATETRANSACTION pfCreateTransaction = 0; + + if (!bInitialized) + { + HMODULE hKTM32 = AtlLoadSystemLibraryUsingFullPath(L"ktmw32.dll"); + if (hKTM32 != 0) + { + pfCreateTransaction = (PFNCREATETRANSACTION)GetProcAddress(hKTM32, "CreateTransaction"); + } + bInitialized = true; + } + + if (pfCreateTransaction == 0) + { + return 0; + } + + SECURITY_ATTRIBUTES sa; + memset((&sa),0,(sizeof(SECURITY_ATTRIBUTES))); + + m_hTransaction = (*pfCreateTransaction)(&sa, 0, 0, 0, 0, 0, 0); + return m_hTransaction != 0; +} + +inline BOOL CAtlTransactionManager::Close() +{ + if (m_hTransaction == 0) + { + return 0; + } + + if (!::CloseHandle(m_hTransaction)) + { + return 0; + } + + m_hTransaction = 0; + return 1; +} + +inline BOOL CAtlTransactionManager::Commit() +{ + if (m_hTransaction == 0) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h", 308, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + + typedef BOOL (__stdcall* PFNCOMMITTRANSACTION)(HANDLE); + static bool bInitialized = false; + static PFNCOMMITTRANSACTION pfCommitTransaction = 0; + + if (!bInitialized) + { + HMODULE hKTM32 = AtlLoadSystemLibraryUsingFullPath(L"ktmw32.dll"); + if (hKTM32 != 0) + { + pfCommitTransaction = (PFNCOMMITTRANSACTION)GetProcAddress(hKTM32, "CommitTransaction"); + } + bInitialized = true; + } + + if (pfCommitTransaction != 0) + { + return (*pfCommitTransaction)(m_hTransaction); + } + + return 0; +} + +inline BOOL CAtlTransactionManager::Rollback() +{ + if (m_hTransaction == 0) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h", 338, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + + typedef BOOL (__stdcall* PFNROLLBACKTRANSACTION)(HANDLE); + static bool bInitialized = false; + static PFNROLLBACKTRANSACTION pfRollbackTransaction = 0; + + if (!bInitialized) + { + HMODULE hKTM32 = AtlLoadSystemLibraryUsingFullPath(L"ktmw32.dll"); + if (hKTM32 != 0) + { + pfRollbackTransaction = (PFNROLLBACKTRANSACTION)GetProcAddress(hKTM32, "RollbackTransaction"); + } + bInitialized = true; + } + + if (pfRollbackTransaction != 0) + { + return (*pfRollbackTransaction)(m_hTransaction); + } + + return 0; +} + +inline HANDLE CAtlTransactionManager::CreateFileW( + LPCTSTR lpFileName, + DWORD dwDesiredAccess, + DWORD dwShareMode, + LPSECURITY_ATTRIBUTES lpSecurityAttributes, + DWORD dwCreationDisposition, + DWORD dwFlagsAndAttributes, + HANDLE hTemplateFile) +{ + if (m_hTransaction != 0) + { + HMODULE hKernel32 = ::GetModuleHandleW(L"kernel32.dll"); + (void)( (!!((hKernel32 != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h", 376, 0, L"%ls", L"hKernel32 != 0")) || (__debugbreak(), 0) ); + if (hKernel32 == 0) + { + return ((HANDLE)(LONG_PTR)-1); + } + + + typedef HANDLE (__stdcall* PFNCREATEFILETRANSACTED)(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE, HANDLE, PUSHORT, PVOID); + PFNCREATEFILETRANSACTED pfCreateTransacted = (PFNCREATEFILETRANSACTED)GetProcAddress(hKernel32, "CreateFileTransactedW"); + + + + + if (pfCreateTransacted != 0) + { + return (*pfCreateTransacted)(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile, m_hTransaction, 0, 0); + } + } + else if (m_bFallback) + { + return ::CreateFileW((LPCTSTR)lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, 0); + } + + return ((HANDLE)(LONG_PTR)-1); +} + +inline BOOL CAtlTransactionManager::DeleteFileW( LPCTSTR lpFileName) +{ + if (m_hTransaction != 0) + { + HMODULE hKernel32 = ::GetModuleHandleW(L"kernel32.dll"); + (void)( (!!((hKernel32 != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h", 407, 0, L"%ls", L"hKernel32 != 0")) || (__debugbreak(), 0) ); + if (hKernel32 == 0) + { + return 0; + } + + + typedef BOOL (__stdcall* PFNDELETEFILETRANSACTED)(LPCWSTR, HANDLE); + PFNDELETEFILETRANSACTED pfDeleteTransacted = (PFNDELETEFILETRANSACTED)GetProcAddress(hKernel32, "DeleteFileTransactedW"); + + + + + if (pfDeleteTransacted != 0) + { + return (*pfDeleteTransacted)(lpFileName, m_hTransaction); + } + } + else if (m_bFallback) + { + return ::DeleteFileW((LPTSTR)lpFileName); + } + + return 0; +} + +inline BOOL CAtlTransactionManager::MoveFileW( + LPCTSTR lpOldFileName, + LPCTSTR lpNewFileName) +{ + if (m_hTransaction != 0) + { + HMODULE hKernel32 = ::GetModuleHandleW(L"kernel32.dll"); + (void)( (!!((hKernel32 != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h", 440, 0, L"%ls", L"hKernel32 != 0")) || (__debugbreak(), 0) ); + if (hKernel32 == 0) + { + return 0; + } + + + typedef BOOL (__stdcall* PFNMOVEFILETRANSACTED)(LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, DWORD, HANDLE); + PFNMOVEFILETRANSACTED pfMoveFileTransacted = (PFNMOVEFILETRANSACTED)GetProcAddress(hKernel32, "MoveFileTransactedW"); + + + + + if (pfMoveFileTransacted != 0) + { + return (*pfMoveFileTransacted)(lpOldFileName, lpNewFileName, 0, 0, 0x00000002, m_hTransaction); + } + } + else if (m_bFallback) + { + return ::MoveFileW(lpOldFileName, lpNewFileName); + } + + return 0; +} + +inline BOOL CAtlTransactionManager::GetFileAttributesExW( + LPCTSTR lpFileName, + GET_FILEEX_INFO_LEVELS fInfoLevelId, + LPVOID lpFileInformation) +{ + if (lpFileInformation == 0) + { + return 0; + } + + if (m_hTransaction != 0) + { + HMODULE hKernel32 = ::GetModuleHandleW(L"kernel32.dll"); + (void)( (!!((hKernel32 != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h", 479, 0, L"%ls", L"hKernel32 != 0")) || (__debugbreak(), 0) ); + if (hKernel32 == 0) + { + return 0; + } + + + typedef BOOL (__stdcall* PFNGETFILEATTRIBUTESTRANSACTED)(LPCWSTR, GET_FILEEX_INFO_LEVELS, LPVOID, HANDLE); + PFNGETFILEATTRIBUTESTRANSACTED pfGetFileAttributesTransacted = (PFNGETFILEATTRIBUTESTRANSACTED)GetProcAddress(hKernel32, "GetFileAttributesTransactedW"); + + + + + if (pfGetFileAttributesTransacted != 0) + { + return (*pfGetFileAttributesTransacted)(lpFileName, fInfoLevelId, lpFileInformation, m_hTransaction); + } + } + else if (m_bFallback) + { + return ::GetFileAttributesExW((LPCTSTR)lpFileName, fInfoLevelId, lpFileInformation); + } + + return 0; +} + +inline DWORD CAtlTransactionManager::GetFileAttributesW( LPCTSTR lpFileName) +{ + WIN32_FILE_ATTRIBUTE_DATA fileAttributeData; + if (GetFileAttributesExW(lpFileName, GetFileExInfoStandard, &fileAttributeData)) + { + return fileAttributeData.dwFileAttributes; + } + + return 0; +} + +inline BOOL CAtlTransactionManager::SetFileAttributesW( + LPCTSTR lpFileName, + DWORD dwAttributes) +{ + if (m_hTransaction != 0) + { + HMODULE hKernel32 = ::GetModuleHandleW(L"kernel32.dll"); + (void)( (!!((hKernel32 != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h", 523, 0, L"%ls", L"hKernel32 != 0")) || (__debugbreak(), 0) ); + if (hKernel32 == 0) + { + return 0; + } + + + typedef BOOL (__stdcall* PFNSETFILEATTRIBUTESTRANSACTED)(LPCWSTR, DWORD, HANDLE); + PFNSETFILEATTRIBUTESTRANSACTED pfSetFileAttributesTransacted = (PFNSETFILEATTRIBUTESTRANSACTED)GetProcAddress(hKernel32, "SetFileAttributesTransactedW"); + + + + + if (pfSetFileAttributesTransacted != 0) + { + return (*pfSetFileAttributesTransacted)(lpFileName, dwAttributes, m_hTransaction); + } + } + else if (m_bFallback) + { + return ::SetFileAttributesW((LPCTSTR)lpFileName, dwAttributes); + } + + return 0; +} + +inline HANDLE CAtlTransactionManager::FindFirstFileW( + LPCTSTR lpFileName, + WIN32_FIND_DATA* pNextInfo) +{ + if (pNextInfo == 0) + { + return ((HANDLE)(LONG_PTR)-1); + } + + if (m_hTransaction != 0) + { + HMODULE hKernel32 = ::GetModuleHandleW(L"kernel32.dll"); + (void)( (!!((hKernel32 != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h", 561, 0, L"%ls", L"hKernel32 != 0")) || (__debugbreak(), 0) ); + if (hKernel32 == 0) + { + return ((HANDLE)(LONG_PTR)-1); + } + + + typedef HANDLE (__stdcall* PFNFINDFIRSTFILETRANSACTED)(LPCWSTR, FINDEX_INFO_LEVELS, LPVOID, FINDEX_SEARCH_OPS, LPVOID, DWORD, HANDLE); + PFNFINDFIRSTFILETRANSACTED pfFindFirstFileTransacted = (PFNFINDFIRSTFILETRANSACTED)GetProcAddress(hKernel32, "FindFirstFileTransactedW"); + + + + + if (pfFindFirstFileTransacted != 0) + { + return (*pfFindFirstFileTransacted)(lpFileName, FindExInfoStandard, pNextInfo, FindExSearchNameMatch, 0, 0, m_hTransaction); + } + } + else if (m_bFallback) + { + return ::FindFirstFileW(lpFileName, pNextInfo); + } + + return ((HANDLE)(LONG_PTR)-1); +} + +inline LSTATUS CAtlTransactionManager::RegOpenKeyExW( + HKEY hKey, + LPCTSTR lpSubKey, + DWORD ulOptions, + REGSAM samDesired, + PHKEY phkResult) +{ + if (m_hTransaction != 0) + { + HMODULE hAdvAPI32 = ::GetModuleHandleW(L"Advapi32.dll"); + (void)( (!!((hAdvAPI32 != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h", 597, 0, L"%ls", L"hAdvAPI32 != 0")) || (__debugbreak(), 0) ); + if (hAdvAPI32 == 0) + { + return 1L; + } + + + typedef LSTATUS (__stdcall* PFNREGOPENKEYTRANSACTED)(HKEY, LPCWSTR, DWORD, REGSAM, PHKEY, HANDLE, PVOID); + PFNREGOPENKEYTRANSACTED pfRegOpenKeyTransacted = (PFNREGOPENKEYTRANSACTED)GetProcAddress(hAdvAPI32, "RegOpenKeyTransactedW"); + + + + + if (pfRegOpenKeyTransacted != 0) + { + return (*pfRegOpenKeyTransacted)(hKey, lpSubKey, ulOptions, samDesired, phkResult, m_hTransaction, 0); + } + } + else if (m_bFallback) + { + return ::RegOpenKeyExW(hKey, lpSubKey, ulOptions, samDesired, phkResult); + } + + return 1L; +} + +inline LSTATUS CAtlTransactionManager::RegCreateKeyExW( + HKEY hKey, + LPCTSTR lpSubKey, + DWORD dwReserved, + LPTSTR lpClass, + DWORD dwOptions, + REGSAM samDesired, + const LPSECURITY_ATTRIBUTES lpSecurityAttributes, + PHKEY phkResult, + LPDWORD lpdwDisposition) +{ + if (m_hTransaction != 0) + { + HMODULE hAdvAPI32 = ::GetModuleHandleW(L"Advapi32.dll"); + (void)( (!!((hAdvAPI32 != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h", 637, 0, L"%ls", L"hAdvAPI32 != 0")) || (__debugbreak(), 0) ); + if (hAdvAPI32 == 0) + { + return 1L; + } + + + typedef LSTATUS (__stdcall* PFNREGCREATEKEYTRANSACTED)(HKEY, LPCWSTR, DWORD, LPWSTR, DWORD, REGSAM, const LPSECURITY_ATTRIBUTES, PHKEY, LPDWORD, HANDLE, PVOID); + PFNREGCREATEKEYTRANSACTED pfRegCreateKeyTransacted = (PFNREGCREATEKEYTRANSACTED)GetProcAddress(hAdvAPI32, "RegCreateKeyTransactedW"); + + + + + if (pfRegCreateKeyTransacted != 0) + { + return (*pfRegCreateKeyTransacted)(hKey, lpSubKey, dwReserved, lpClass, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition, m_hTransaction, 0); + } + } + else if (m_bFallback) + { + return ::RegCreateKeyExW(hKey, lpSubKey, dwReserved, lpClass, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition); + } + + return 1L; +} + +inline LSTATUS CAtlTransactionManager::RegDeleteKeyW( HKEY hKey, LPCTSTR lpSubKey) +{ + if (m_hTransaction != 0) + { + HMODULE hAdvAPI32 = ::GetModuleHandleW(L"Advapi32.dll"); + (void)( (!!((hAdvAPI32 != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atltransactionmanager.h", 668, 0, L"%ls", L"hAdvAPI32 != 0")) || (__debugbreak(), 0) ); + if (hAdvAPI32 == 0) + { + return 1L; + } + + + typedef LSTATUS (__stdcall* PFNREGDELETEKEYTRANSACTED)(HKEY, LPCWSTR, REGSAM, DWORD, HANDLE, PVOID); + PFNREGDELETEKEYTRANSACTED pfRegDeleteKeyTransacted = (PFNREGDELETEKEYTRANSACTED)GetProcAddress(hAdvAPI32, "RegDeleteKeyTransactedW"); + + + + + if (pfRegDeleteKeyTransacted != 0) + { + return (*pfRegDeleteKeyTransacted)(hKey, lpSubKey, 0, 0, m_hTransaction, 0); + } + } + else if (m_bFallback) + { + return ::RegDeleteKeyW(hKey, lpSubKey); + } + + return 1L; +} + +} +#pragma pack(pop) +# 110 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" 2 + + + + + + +#pragma pack(push, 8) + + +#pragma comment(lib, "atls.lib") + + + + + + + + +extern "C" const __declspec(selectany) GUID LIBID_ATLLib = {0x44EC0535,0x400F,0x11D0,{0x9D,0xCD,0x00,0xA0,0xC9,0x03,0x91,0xD3}}; +extern "C" const __declspec(selectany) CLSID CLSID_Registrar = {0x44EC053A,0x400F,0x11D0,{0x9D,0xCD,0x00,0xA0,0xC9,0x03,0x91,0xD3}}; +extern "C" const __declspec(selectany) IID IID_IRegistrar = {0x44EC053B,0x400F,0x11D0,{0x9D,0xCD,0x00,0xA0,0xC9,0x03,0x91,0xD3}}; +extern "C" const __declspec(selectany) IID IID_IAxWinHostWindow = {0xb6ea2050,0x048a,0x11d1,{0x82,0xb9,0x00,0xc0,0x4f,0xb9,0x94,0x2e}}; +extern "C" const __declspec(selectany) IID IID_IAxWinAmbientDispatch = {0xb6ea2051,0x048a,0x11d1,{0x82,0xb9,0x00,0xc0,0x4f,0xb9,0x94,0x2e}}; +extern "C" const __declspec(selectany) IID IID_IInternalConnection = {0x72AD0770,0x6A9F,0x11d1,{0xBC,0xEC,0x00,0x60,0x08,0x8F,0x44,0x4E}}; +extern "C" const __declspec(selectany) IID IID_IDocHostUIHandlerDispatch = {0x425B5AF0,0x65F1,0x11d1,{0x96,0x11,0x00,0x00,0xF8,0x1E,0x0D,0x0D}}; +extern "C" const __declspec(selectany) IID IID_IAxWinHostWindowLic = {0x3935BDA8,0x4ED9,0x495c,{0x86,0x50,0xE0,0x1F,0xC1,0xE3,0x8A,0x4B}}; +extern "C" const __declspec(selectany) IID IID_IAxWinAmbientDispatchEx = {0xB2D0778B,0xAC99,0x4c58,{0xA5,0xC8,0xE7,0x72,0x4E,0x53,0x16,0xB5}}; + + + +extern "C" IMAGE_DOS_HEADER __ImageBase; +# 150 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +typedef LONG LSTATUS; + + +namespace ATL +{ + +struct _ATL_CATMAP_ENTRY +{ + int iType; + const GUID* pcatid; +}; + + + + + +typedef HRESULT (__stdcall _ATL_CREATORFUNC)( + void* pv, + const IID & riid, + LPVOID* ppv); +typedef HRESULT (__stdcall _ATL_CREATORARGFUNC)( + void* pv, + const IID & riid, + LPVOID* ppv, + DWORD_PTR dw); +typedef HRESULT (__stdcall _ATL_MODULEFUNC)( DWORD_PTR dw); +typedef LPCTSTR (__stdcall _ATL_DESCRIPTIONFUNC)(); +typedef const struct _ATL_CATMAP_ENTRY* (_ATL_CATMAPFUNC)(); +typedef void (__stdcall _ATL_TERMFUNC)( DWORD_PTR dw); + +struct _ATL_TERMFUNC_ELEM +{ + _ATL_TERMFUNC* pFunc; + DWORD_PTR dw; + _ATL_TERMFUNC_ELEM* pNext; +}; + + + + +struct _ATL_OBJMAP_ENTRY30 +{ + const CLSID* pclsid; + HRESULT (__stdcall *pfnUpdateRegistry)( BOOL bRegister); + _ATL_CREATORFUNC* pfnGetClassObject; + _ATL_CREATORFUNC* pfnCreateInstance; + IUnknown* pCF; + DWORD dwRegister; + _ATL_DESCRIPTIONFUNC* pfnGetObjectDescription; + _ATL_CATMAPFUNC* pfnGetCategoryMap; + HRESULT __stdcall RevokeClassObject() + { + if (dwRegister == 0) + return ((HRESULT)0L); + return CoRevokeClassObject(dwRegister); + } + HRESULT __stdcall RegisterClassObject( + DWORD dwClsContext, + DWORD dwFlags) + { + IUnknown* p = 0; + if (pfnGetClassObject == 0) + return ((HRESULT)0L); + HRESULT hRes = pfnGetClassObject(pfnCreateInstance, __uuidof(IUnknown), (LPVOID*) &p); + if ((((HRESULT)(hRes)) >= 0)) + hRes = CoRegisterClassObject(*pclsid, p, dwClsContext, dwFlags, &dwRegister); + if (p != 0) + p->Release(); + return hRes; + } + + void (__stdcall *pfnObjectMain)( bool bStarting); +}; + + + +struct _ATL_OBJMAP_CACHE +{ + IUnknown* pCF; + DWORD dwRegister; +}; + + + +struct _ATL_OBJMAP_ENTRY110 +{ + const CLSID* pclsid; + HRESULT (__stdcall *pfnUpdateRegistry)( BOOL bRegister); + _ATL_CREATORFUNC* pfnGetClassObject; + _ATL_CREATORFUNC* pfnCreateInstance; + _ATL_OBJMAP_CACHE* pCache; + _ATL_DESCRIPTIONFUNC* pfnGetObjectDescription; + _ATL_CATMAPFUNC* pfnGetCategoryMap; + HRESULT __stdcall RevokeClassObject() + { + do { (void)( (!!((pCache != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 245, 0, L"%ls", L"pCache != 0")) || (__debugbreak(), 0) ); ; } +# 245 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 245 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + + if (pCache->dwRegister == 0) + return ((HRESULT)0L); + return CoRevokeClassObject(pCache->dwRegister); + } + HRESULT __stdcall RegisterClassObject( + DWORD dwClsContext, + DWORD dwFlags) + { + do { (void)( (!!((pCache != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 255, 0, L"%ls", L"pCache != 0")) || (__debugbreak(), 0) ); ; } +# 255 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 255 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + + IUnknown* p = 0; + if (pfnGetClassObject == 0) + return ((HRESULT)0L); + HRESULT hRes = pfnGetClassObject(pfnCreateInstance, __uuidof(IUnknown), (LPVOID*) &p); + if ((((HRESULT)(hRes)) >= 0)) + hRes = CoRegisterClassObject(*pclsid, p, dwClsContext, dwFlags, &pCache->dwRegister); + if (p != 0) + p->Release(); + return hRes; + } + + void (__stdcall *pfnObjectMain)( bool bStarting); +}; + +typedef _ATL_OBJMAP_ENTRY30 _ATL_OBJMAP_ENTRY; +typedef _ATL_OBJMAP_ENTRY110 _ATL_OBJMAP_ENTRY_EX; + + + +#pragma section("ATL$__a", read) +#pragma section("ATL$__z", read) +#pragma section("ATL$__m", read) +extern "C" +{ +__declspec(selectany) __declspec(allocate("ATL$__a")) _ATL_OBJMAP_ENTRY_EX* __pobjMapEntryFirst = 0; +__declspec(selectany) __declspec(allocate("ATL$__z")) _ATL_OBJMAP_ENTRY_EX* __pobjMapEntryLast = 0; +} + + +#pragma comment(linker, "/merge:ATL=.rdata") + + +struct _ATL_REGMAP_ENTRY +{ + LPCOLESTR szKey; + LPCOLESTR szData; +}; + +struct _AtlCreateWndData +{ + void* m_pThis; + DWORD m_dwThreadID; + _AtlCreateWndData* m_pNext; +}; + + + +typedef HRESULT (*_ATL_PERFREGFUNC)( HINSTANCE hDllInstance); +typedef HRESULT (*_ATL_PERFUNREGFUNC)(); +__declspec(selectany) _ATL_PERFREGFUNC _pPerfRegFunc = 0; +__declspec(selectany) _ATL_PERFUNREGFUNC _pPerfUnRegFunc = 0; + +bool __declspec(selectany) _AtlRegisterPerUser = false; + + + + +template< class TLock > +class CComCritSecLock +{ +public: + + + + CComCritSecLock( + TLock& cs, + bool bInitialLock = true ); + + + ~CComCritSecLock() throw(); + + + + HRESULT Lock() throw(); + + + void Unlock() throw(); + + +private: + TLock& m_cs; + bool m_bLocked; + + + CComCritSecLock( const CComCritSecLock&) throw(); + CComCritSecLock& operator=( const CComCritSecLock&) throw(); +}; + +template< class TLock > + + + +#pragma warning(suppress: 26166 28196) +inline CComCritSecLock< TLock >::CComCritSecLock( + TLock& cs, + bool bInitialLock) : + m_cs( cs ), + m_bLocked( false ) +{ + if( bInitialLock ) + { + HRESULT hr; + + hr = Lock(); + if( (((HRESULT)(hr)) < 0) ) + { + ATL::AtlThrowImpl( hr ); + } + } +} + +template< class TLock > + +inline CComCritSecLock< TLock >::~CComCritSecLock() throw() +{ + if( m_bLocked ) + { + Unlock(); + } +} + +template< class TLock > + + +#pragma warning(suppress: 26165) +inline HRESULT CComCritSecLock< TLock >::Lock() throw() +{ + HRESULT hr; + + (void)( (!!((!m_bLocked))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 386, 0, L"%ls", L"!m_bLocked")) || (__debugbreak(), 0) ); + do { (void)( (!!((!m_bLocked))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 387, 0, L"%ls", L"!m_bLocked")) || (__debugbreak(), 0) ); ; } +# 387 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 387 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + hr = m_cs.Lock(); + if( (((HRESULT)(hr)) < 0) ) + { + return( hr ); + } + m_bLocked = true; + + return( ((HRESULT)0L) ); +} + +template< class TLock > + +#pragma warning(suppress: 26167) +inline void CComCritSecLock< TLock >::Unlock() throw() +{ + do { (void)( (!!((m_bLocked))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 403, 0, L"%ls", L"m_bLocked")) || (__debugbreak(), 0) ); ; } +# 403 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 403 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); +#pragma warning(suppress: 26110) + m_cs.Unlock(); + m_bLocked = false; +} + +class CComMultiThreadModelNoCS +{ +public: + static ULONG __stdcall Increment( LPLONG p) throw() + { + return ::_InterlockedIncrement(p); + } + static ULONG __stdcall Decrement( LPLONG p) throw() + { + return ::_InterlockedDecrement(p); + } + typedef CComFakeCriticalSection AutoCriticalSection; + typedef CComFakeCriticalSection AutoDeleteCriticalSection; + typedef CComFakeCriticalSection CriticalSection; + typedef CComMultiThreadModelNoCS ThreadModelNoCS; +}; + +class CComMultiThreadModel +{ +public: + static ULONG __stdcall Increment( LPLONG p) throw() + { + return ::_InterlockedIncrement(p); + } + static ULONG __stdcall Decrement( LPLONG p) throw() + { + return ::_InterlockedDecrement(p); + } + typedef CComAutoCriticalSection AutoCriticalSection; + typedef CComAutoDeleteCriticalSection AutoDeleteCriticalSection; + typedef CComCriticalSection CriticalSection; + typedef CComMultiThreadModelNoCS ThreadModelNoCS; +}; + +class CComSingleThreadModel +{ +public: + static ULONG __stdcall Increment( LPLONG p) throw() + { + return ++(*p); + } + static ULONG __stdcall Decrement( LPLONG p) throw() + { + return --(*p); + } + typedef CComFakeCriticalSection AutoCriticalSection; + typedef CComFakeCriticalSection AutoDeleteCriticalSection; + typedef CComFakeCriticalSection CriticalSection; + typedef CComSingleThreadModel ThreadModelNoCS; +}; +# 484 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + typedef CComMultiThreadModel CComObjectThreadModel; + typedef CComMultiThreadModel CComGlobalsThreadModel; +# 496 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +struct _ATL_COM_MODULE70 +{ + UINT cbSize; + HINSTANCE m_hInstTypeLib; + _ATL_OBJMAP_ENTRY_EX** m_ppAutoObjMapFirst; + _ATL_OBJMAP_ENTRY_EX** m_ppAutoObjMapLast; + CComCriticalSection m_csObjMap; +}; +typedef _ATL_COM_MODULE70 _ATL_COM_MODULE; + + + +struct _ATL_WIN_MODULE70 +{ + UINT cbSize; + CComCriticalSection m_csWindowCreate; + _AtlCreateWndData* m_pCreateWndList; + CSimpleArray m_rgWindowClassAtoms; +}; +typedef _ATL_WIN_MODULE70 _ATL_WIN_MODULE; + + +struct _ATL_MODULE70 +{ + UINT cbSize; + LONG m_nLockCnt; + _ATL_TERMFUNC_ELEM* m_pTermFuncs; + CComCriticalSection m_csStaticDataInitAndTypeInfo; +}; +typedef _ATL_MODULE70 _ATL_MODULE; + + + + + + +struct _ATL_INTMAP_ENTRY +{ + const IID* piid; + DWORD_PTR dw; + _ATL_CREATORARGFUNC* pFunc; +}; + + + + + + + +__declspec(nothrow) HRESULT __stdcall AtlInternalQueryInterface( + void* pThis, + const _ATL_INTMAP_ENTRY* pEntries, + const IID & iid, + void** ppvObject); + + + + +__declspec(nothrow) HRESULT __stdcall AtlFreeMarshalStream( IStream* pStream); + +__declspec(nothrow) HRESULT __stdcall AtlMarshalPtrInProc( + IUnknown* pUnk, + const IID& iid, + IStream** ppStream); + +__declspec(nothrow) HRESULT __stdcall AtlUnmarshalPtr( + IStream* pStream, + const IID& iid, + IUnknown** ppUnk); + +__declspec(nothrow) BOOL __stdcall AtlWaitWithMessageLoop( HANDLE hEvent); + + + + +__declspec(nothrow) HRESULT __stdcall AtlAdvise( + IUnknown* pUnkCP, + IUnknown* pUnk, + const IID& iid, + LPDWORD pdw); + +__declspec(nothrow) HRESULT __stdcall AtlUnadvise( + IUnknown* pUnkCP, + const IID& iid, + DWORD dw); + + + + + +__declspec(nothrow) HRESULT __stdcall AtlComModuleRegisterClassObjects( + _ATL_COM_MODULE* pComModule, + DWORD dwClsContext, + DWORD dwFlags); + +__declspec(nothrow) HRESULT __stdcall AtlComModuleRevokeClassObjects( + _ATL_COM_MODULE* pComModule); + +__declspec(nothrow) HRESULT __stdcall AtlComModuleGetClassObject( + _ATL_COM_MODULE* pComModule, + const IID & rclsid, + const IID & riid, + LPVOID* ppv); + + + + + + +__declspec(nothrow) HRESULT __stdcall AtlSetErrorInfo( + const CLSID& clsid, + LPCOLESTR lpszDesc, + DWORD dwHelpID, + LPCOLESTR lpszHelpFile, + const IID& iid, + HRESULT hRes, + HINSTANCE hInst); + +__declspec(nothrow) HRESULT __stdcall AtlRegisterClassCategoriesHelper( + const IID & clsid, + const struct _ATL_CATMAP_ENTRY* pCatMap, + BOOL bRegister); + +__declspec(nothrow) HRESULT __stdcall AtlSetPerUserRegistration( bool bEnable); +__declspec(nothrow) HRESULT __stdcall AtlGetPerUserRegistration( bool* pbEnabled); + +__declspec(nothrow) HRESULT __stdcall AtlLoadTypeLib( + HINSTANCE hInstTypeLib, + LPCOLESTR lpszIndex, + BSTR* pbstrPath, + ITypeLib** ppTypeLib); + +__declspec(nothrow) HRESULT __stdcall AtlRegisterTypeLib( + HINSTANCE hInstTypeLib, + LPCOLESTR lpszIndex); + +__declspec(nothrow) HRESULT __stdcall AtlUnRegisterTypeLib( + HINSTANCE hInstTypeLib, + LPCOLESTR lpszIndex); + + + +__declspec(nothrow) HRESULT __stdcall AtlComModuleRegisterServer( + _ATL_COM_MODULE* pComModule, + BOOL bRegTypeLib, + const CLSID* pCLSID = 0); + +__declspec(nothrow) HRESULT __stdcall AtlComModuleUnregisterServer( + _ATL_COM_MODULE* pComModule, + BOOL bUnRegTypeLib, + const CLSID* pCLSID = 0); + + + +__declspec(nothrow) HRESULT __stdcall AtlModuleAddTermFunc( + _ATL_MODULE* pModule, + _ATL_TERMFUNC* pFunc, + DWORD_PTR dw); + +__declspec(nothrow) void __stdcall AtlCallTermFunc( _ATL_MODULE* pModule); + +__declspec(nothrow) HRESULT __stdcall AtlWinModuleInit( _ATL_WIN_MODULE* pWinModule); + +__declspec(nothrow) HRESULT __stdcall AtlWinModuleTerm( + _ATL_WIN_MODULE* pWinModule, + HINSTANCE hInst); + +__declspec(nothrow) void __stdcall AtlWinModuleAddCreateWndData( + _ATL_WIN_MODULE* pWinModule, + _AtlCreateWndData* pData, + void* pObject); + +__declspec(nothrow) void* __stdcall AtlWinModuleExtractCreateWndData( + _ATL_WIN_MODULE* pWinModule); + + + +inline BOOL __stdcall InlineIsEqualUnknown( const GUID & rguid1) +{ + return ( + ((PLONG) &rguid1)[0] == 0 && + ((PLONG) &rguid1)[1] == 0 && + + + + + ((PLONG) &rguid1)[2] == 0x000000C0 && + ((PLONG) &rguid1)[3] == 0x46000000); + +} + +template +LPCTSTR AtlDebugGetClassName( T*) +{ + + const _ATL_INTMAP_ENTRY* pEntries = T::_GetEntries(); + return (LPCTSTR)pEntries[-1].dw; + + + +} +# 712 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma comment(lib, "kernel32.lib") + +#pragma comment(lib, "user32.lib") +#pragma comment(lib, "advapi32.lib") + +#pragma comment(lib, "ole32.lib") + + +#pragma comment(lib, "shell32.lib") + + +#pragma comment(lib, "oleaut32.lib") +#pragma comment(lib, "uuid.lib") + + +#pragma comment(lib, "shlwapi.lib") + + + + +template< typename T > +class CAutoVectorPtr +{ +public: + CAutoVectorPtr() throw() : + m_p( 0 ) + { + } + CAutoVectorPtr( CAutoVectorPtr< T >& p) throw() + { + m_p = p.Detach(); + } + explicit CAutoVectorPtr( T* p) throw() : + m_p( p ) + { + } + ~CAutoVectorPtr() throw() + { + Free(); + } + + operator T*() const throw() + { + return( m_p ); + } + + CAutoVectorPtr< T >& operator=( CAutoVectorPtr< T >& p) throw() + { + if(*this==p) + { + if(m_p == 0) + { + + } + else if(this!=&p) + { + + + + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 771, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + + + + p.Detach(); + } + else + { + + + + + } + } + else + { + Free(); + Attach( p.Detach() ); + } + return( *this ); + } + + + bool operator!=( CAutoVectorPtr& p) const + { + return !operator==(p); + } + + bool operator==( CAutoVectorPtr& p) const + { + return m_p==p.m_p; + } + + + bool Allocate( size_t nElements) throw() + { + do { (void)( (!!((m_p == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 807, 0, L"%ls", L"m_p == 0")) || (__debugbreak(), 0) ); ; } +# 807 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 807 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); +#pragma warning(push) +# 808 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(disable: 4571) +# 808 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + try{m_p = new(std::nothrow) T[nElements];} catch(...) {} +# 808 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(pop) +# 808 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +; + if( m_p == 0 ) + { + return( false ); + } + + return( true ); + } + + void Attach( T* p) throw() + { + do { (void)( (!!((m_p == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 819, 0, L"%ls", L"m_p == 0")) || (__debugbreak(), 0) ); ; } +# 819 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 819 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + m_p = p; + } + + T* Detach() throw() + { + T* p; + + p = m_p; + m_p = 0; + + return( p ); + } + + void Free() throw() + { + delete[] m_p; + m_p = 0; + } + +public: + T* m_p; +}; + +template< typename T > +class CAutoPtr +{ +public: + CAutoPtr() throw() : + m_p( 0 ) + { + } + template< typename TSrc > + CAutoPtr( CAutoPtr< TSrc >& p) throw() + { + m_p = p.Detach(); + } + CAutoPtr( CAutoPtr< T >& p) throw() + { + m_p = p.Detach(); + } + explicit CAutoPtr( T* p) throw() : + m_p( p ) + { + } + ~CAutoPtr() throw() + { + Free(); + } + + + template< typename TSrc > + CAutoPtr< T >& operator=( CAutoPtr< TSrc >& p) throw() + { + if(m_p==p.m_p) + { + + + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 877, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + } + else + { + Free(); + Attach( p.Detach() ); + } + return( *this ); + } + CAutoPtr< T >& operator=( CAutoPtr< T >& p) throw() + { + if(*this==p) + { + if(this!=&p) + { +# 901 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + p.Detach(); + } + else + { + + + + + } + } + else + { + Free(); + Attach( p.Detach() ); + } + return( *this ); + } + + + bool operator!=( CAutoPtr& p) const + { + return !operator==(p); + } + + bool operator==( CAutoPtr& p) const + { + return m_p==p.m_p; + } + + operator T*() const throw() + { + return( m_p ); + } + T* operator->() const throw() + { + do { (void)( (!!((m_p != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 936, 0, L"%ls", L"m_p != 0")) || (__debugbreak(), 0) ); ; } +# 936 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 936 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + return( m_p ); + } + + + void Attach( T* p) throw() + { + do { (void)( (!!((m_p == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 943, 0, L"%ls", L"m_p == 0")) || (__debugbreak(), 0) ); ; } +# 943 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 943 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + m_p = p; + } + + T* Detach() throw() + { + T* p; + + p = m_p; + m_p = 0; + + return( p ); + } + + void Free() throw() + { + delete m_p; + m_p = 0; + } + +public: + T* m_p; +}; + + +template< typename T > +class CAutoStackPtr +{ +public: + CAutoStackPtr() throw() : + m_p( 0 ) + { + } + template< typename TSrc > + CAutoStackPtr( CAutoStackPtr< TSrc >& p) throw() + { + m_p = p.Detach(); + } + CAutoStackPtr( CAutoStackPtr< T >& p) throw() + { + m_p = p.Detach(); + } + explicit CAutoStackPtr( T* p) throw() : + m_p( p ) + { + } + ~CAutoStackPtr() throw() + { + Free(); + } + + + template< typename TSrc > + CAutoStackPtr< T >& operator=( CAutoStackPtr< TSrc >& p) throw() + { + if(m_p==p.m_p) + { + + + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 1002, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + } + else + { + Free(); + Attach( p.Detach() ); + } + return( *this ); + } + CAutoStackPtr< T >& operator=( CAutoStackPtr< T >& p) throw() + { + if(*this==p) + { + if(this!=&p) + { + + + + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 1020, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + + + + p.Detach(); + } + else + { + + + + + } + } + else + { + Free(); + Attach( p.Detach() ); + } + return( *this ); + } + + + bool operator!=( CAutoStackPtr& p) const + { + return !operator==(p); + } + + bool operator==( CAutoStackPtr& p) const + { + return m_p==p.m_p; + } + + operator T*() const throw() + { + return( m_p ); + } + T* operator->() const throw() + { + do { (void)( (!!((m_p != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 1059, 0, L"%ls", L"m_p != 0")) || (__debugbreak(), 0) ); ; } +# 1059 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 1059 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + return( m_p ); + } + + + void Attach( T* p) throw() + { + do { (void)( (!!((m_p == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 1066, 0, L"%ls", L"m_p == 0")) || (__debugbreak(), 0) ); ; } +# 1066 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 1066 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + m_p = p; + } + + T* Detach() throw() + { + T* p; + + p = m_p; + m_p = 0; + + return( p ); + } + + void Free() throw() + { + + + + + + + _freea(m_p); + m_p = 0; + } + +public: + T* m_p; +}; + + +template< class Dest, class Src > +Dest* static_cast_auto( const CAutoPtr< Src >& pSrc) throw() +{ + return( static_cast< Dest* >( static_cast< Src* >( pSrc ) ) ); +} + + +class CComAllocator +{ +public: + static void* Reallocate( + void* p, + size_t nBytes) throw() + { + + + + + + + return ::CoTaskMemRealloc(p, ULONG(nBytes)); + } + static void* Allocate( size_t nBytes) throw() + { + + + + + + + return ::CoTaskMemAlloc(ULONG(nBytes)); + } + static void Free( void* p) throw() + { + ::CoTaskMemFree(p); + } +}; + +template +class CComHeapPtr : + public CHeapPtr +{ +public: + CComHeapPtr() throw() + { + } + + explicit CComHeapPtr( T* pData) throw() : + CHeapPtr(pData) + { + } +}; + +template + T* AtlSafeRealloc( + T* pT, + size_t cEls) throw() +{ + size_t nBytes=0; + if((((HRESULT)(::ATL::AtlMultiply(&nBytes, cEls, sizeof(T)))) < 0)) + { + Reallocator::Free(pT); + return 0; + } + + T *pTemp = static_cast(Reallocator::Reallocate(pT, nBytes)); + if (pTemp == 0) + { + Reallocator::Free(pT); + return 0; + } + + return pTemp; +} + +class CHandle +{ +public: + CHandle() throw(); + CHandle( CHandle& h) throw(); + explicit CHandle( HANDLE h) throw(); + ~CHandle() throw(); + + CHandle& operator=( CHandle& h) throw(); + + operator HANDLE() const throw(); + + + void Attach( HANDLE h) throw(); + + HANDLE Detach() throw(); + + + void Close() throw(); + +public: + HANDLE m_h; +}; + +inline CHandle::CHandle() throw() : + m_h( 0 ) +{ +} + +inline CHandle::CHandle( CHandle& h) throw() : + m_h( 0 ) +{ + Attach( h.Detach() ); +} + +inline CHandle::CHandle( HANDLE h) throw() : + m_h( h ) +{ +} + +inline CHandle::~CHandle() throw() +{ + if( m_h != 0 ) + { + Close(); + } +} + +inline CHandle& CHandle::operator=( CHandle& h) throw() +{ + if( this != &h ) + { + if( m_h != 0 ) + { + Close(); + } + Attach( h.Detach() ); + } + + return( *this ); +} + +inline CHandle::operator HANDLE() const throw() +{ + return( m_h ); +} + +inline void CHandle::Attach( HANDLE h) throw() +{ + do { (void)( (!!((m_h == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 1241, 0, L"%ls", L"m_h == 0")) || (__debugbreak(), 0) ); ; } +# 1241 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 1241 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + m_h = h; +} + +inline HANDLE CHandle::Detach() throw() +{ + HANDLE h; + + h = m_h; + m_h = 0; + + return( h ); +} + +inline void CHandle::Close() throw() +{ + if( m_h != 0 ) + { + ::CloseHandle( m_h ); + m_h = 0; + } +} + +class CCritSecLock +{ +public: + + + + CCritSecLock( + CRITICAL_SECTION& cs, + bool bInitialLock = true) : m_cs(cs), m_bLocked(false) + { + if( bInitialLock ) + { +#pragma warning(suppress: 28313) + Lock(); + } + } + + + ~CCritSecLock() throw() + { + if( m_bLocked ) + { + Unlock(); + } + } + + + void Lock() + { + (void)( (!!((!m_bLocked))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 1293, 0, L"%ls", L"!m_bLocked")) || (__debugbreak(), 0) ); + + ::EnterCriticalSection( &m_cs ); + m_bLocked = true; + } + + + void Unlock() throw() + { + do { (void)( (!!((m_bLocked))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 1302, 0, L"%ls", L"m_bLocked")) || (__debugbreak(), 0) ); ; } +# 1302 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 1302 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + ::LeaveCriticalSection( &m_cs ); + m_bLocked = false; + } + + +private: + CRITICAL_SECTION& m_cs; + bool m_bLocked; + + + CCritSecLock( const CCritSecLock&) throw(); + CCritSecLock& operator=( const CCritSecLock&) throw(); +}; +# 2420 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma managed(push, off) + + + +class CAtlComModule : + public _ATL_COM_MODULE +{ +public: + + CAtlComModule() throw() + { + cbSize = 0; + + m_hInstTypeLib = reinterpret_cast(&__ImageBase); + + m_ppAutoObjMapFirst = &__pobjMapEntryFirst + 1; + m_ppAutoObjMapLast = &__pobjMapEntryLast; + + if ((((HRESULT)(m_csObjMap.Init())) < 0)) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 2440)(atlTraceCOM, 0, L"ERROR : Unable to initialize critical section in CAtlComModule\n"); + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 2441, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + CAtlBaseModule::m_bInitFailed = true; + return; + } + + cbSize = sizeof(_ATL_COM_MODULE); + } + + ~CAtlComModule() + { + Term(); + } + + + void Term() + { + if (cbSize == 0) + return; + + for (_ATL_OBJMAP_ENTRY_EX** ppEntry = m_ppAutoObjMapFirst; ppEntry < m_ppAutoObjMapLast; ppEntry++) + { + if (*ppEntry != 0) + { + _ATL_OBJMAP_CACHE* pCache = (**ppEntry).pCache; + + if (pCache->pCF != 0) + { + + IUnknown *factory = reinterpret_cast(::DecodePointer(pCache->pCF)); + ; + factory->Release(); + pCache->pCF = 0; + } + } + } + m_csObjMap.Term(); + + + + cbSize = 0; + } + + + + + HRESULT RegisterTypeLib() + { + return AtlRegisterTypeLib(m_hInstTypeLib, 0); + } + HRESULT RegisterTypeLib( LPCTSTR lpszIndex) + { + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + LPCOLESTR pwszTemp = 0; + if( lpszIndex != 0 ) + { + pwszTemp = T2COLE_EX(lpszIndex, 1024); + + + + + } + return AtlRegisterTypeLib(m_hInstTypeLib, pwszTemp); + } + HRESULT UnRegisterTypeLib() + { + return AtlUnRegisterTypeLib(m_hInstTypeLib, 0); + } + HRESULT UnRegisterTypeLib( LPCTSTR lpszIndex) + { + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + LPCOLESTR pwszTemp = 0; + if( lpszIndex != 0 ) + { + pwszTemp = T2COLE_EX(lpszIndex, 1024); + + + + + } + return AtlUnRegisterTypeLib(m_hInstTypeLib, pwszTemp); + } + + + + + HRESULT RegisterServer( + BOOL bRegTypeLib = 0, + const CLSID* pCLSID = 0) + { + return AtlComModuleRegisterServer(this, bRegTypeLib, pCLSID); + } + + + + + HRESULT UnregisterServer( + BOOL bRegTypeLib = 0, + const CLSID* pCLSID = 0) + { + return AtlComModuleUnregisterServer(this, bRegTypeLib, pCLSID); + } + + + + + + + void ExecuteObjectMain( bool bStarting) + { + for (_ATL_OBJMAP_ENTRY_EX** ppEntry = m_ppAutoObjMapFirst; ppEntry < m_ppAutoObjMapLast; ppEntry++) + { + if (*ppEntry != 0) + (*ppEntry)->pfnObjectMain(bStarting); + } + } +}; + + +__declspec(selectany) CAtlComModule _AtlComModule; + + +#pragma managed(pop) +# 2776 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +class CAtlWinModule : + public _ATL_WIN_MODULE +{ +public: + CAtlWinModule() + { + cbSize = sizeof(_ATL_WIN_MODULE); + HRESULT hr = AtlWinModuleInit(this); + if ((((HRESULT)(hr)) < 0)) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 2786, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + CAtlBaseModule::m_bInitFailed = true; + cbSize = 0; + return; + } + } + + ~CAtlWinModule() + { + Term(); + } + + void Term() + { + AtlWinModuleTerm(this, _AtlBaseModule.GetModuleInstance()); + } + + void AddCreateWndData( _AtlCreateWndData* pData, void* pObject) + { + AtlWinModuleAddCreateWndData(this, pData, pObject); + } + + void* ExtractCreateWndData() + { + return AtlWinModuleExtractCreateWndData(this); + } +}; + + +__declspec(selectany) CAtlWinModule _AtlWinModule; + + + + + +class CAtlModule; +__declspec(selectany) CAtlModule* _pAtlModule = 0; + + +template +struct CAtlValidateModuleConfiguration +{ + + static_assert(!isDllModule, "'CAtlDllModuleT' must be used with either _WINDLL or _USRDLL defined"); + + + +}; +# 2871 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +class __declspec(novtable) CAtlModule : + public _ATL_MODULE +{ +public : + static GUID m_libid; + IGlobalInterfaceTable* m_pGIT; + + CAtlModule() throw() + { + + + (void)( (!!((_pAtlModule == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 2882, 0, L"%ls", L"_pAtlModule == 0")) || (__debugbreak(), 0) ); + cbSize = 0; + m_pTermFuncs = 0; + + m_nLockCnt = 0; + _pAtlModule = this; + m_pGIT = 0; + + if ((((HRESULT)(m_csStaticDataInitAndTypeInfo.Init())) < 0)) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 2892)(atlTraceGeneral, 0, L"ERROR : Unable to initialize critical section in CAtlModule\n"); + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 2893, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + CAtlBaseModule::m_bInitFailed = true; + return; + } + + + cbSize = sizeof(_ATL_MODULE); + } + + void Term() throw() + { + + if (cbSize == 0) + return; + + + if (m_pTermFuncs != 0) + { + AtlCallTermFunc(this); + m_pTermFuncs = 0; + } + + if (m_pGIT != 0) + m_pGIT->Release(); + + m_csStaticDataInitAndTypeInfo.Term(); + + cbSize = 0; + } + + virtual ~CAtlModule() throw() + { + Term(); + } + + virtual LONG Lock() throw() + { + return CComGlobalsThreadModel::Increment(&m_nLockCnt); + } + + virtual LONG Unlock() throw() + { + return CComGlobalsThreadModel::Decrement(&m_nLockCnt); + } + + virtual LONG GetLockCount() throw() + { + return m_nLockCnt; + } + + HRESULT AddTermFunc( + _ATL_TERMFUNC* pFunc, + DWORD_PTR dw) throw() + { + return AtlModuleAddTermFunc(this, pFunc, dw); + } + + virtual HRESULT GetGITPtr( IGlobalInterfaceTable** ppGIT) throw() + { + (void)( (!!((ppGIT != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 2952, 0, L"%ls", L"ppGIT != 0")) || (__debugbreak(), 0) ); + + if (ppGIT == 0) + return ((HRESULT)0x80004003L); + + HRESULT hr = ((HRESULT)0L); + if (m_pGIT == 0) + { + hr = ::CoCreateInstance(CLSID_StdGlobalInterfaceTable, 0, CLSCTX_INPROC_SERVER, + __uuidof(IGlobalInterfaceTable), (void**)&m_pGIT); + } + + if ((((HRESULT)(hr)) >= 0)) + { + do { (void)( (!!((m_pGIT != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 2966, 0, L"%ls", L"m_pGIT != 0")) || (__debugbreak(), 0) ); ; } +# 2966 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 2966 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + *ppGIT = m_pGIT; + m_pGIT->AddRef(); + } + return hr; + } + + + virtual HRESULT AddCommonRGSReplacements( IRegistrarBase* ) throw() = 0; + + + + HRESULT __stdcall UpdateRegistryFromResource( + LPCTSTR lpszRes, + BOOL bRegister, + struct _ATL_REGMAP_ENTRY* pMapEntries = 0) throw(); + HRESULT __stdcall UpdateRegistryFromResource( + UINT nResID, + BOOL bRegister, + struct _ATL_REGMAP_ENTRY* pMapEntries = 0) throw(); + + static void EscapeSingleQuote( + LPOLESTR lpDest, + size_t destSizeInChars, + LPCOLESTR lp) throw() + { + if (destSizeInChars == 0) + { + return; + } + UINT i = 0; + + for (i=0; i < destSizeInChars-1 && *lp; i++) + { + *lpDest++ = *lp; + + if (*lp == '\'' && ++i < destSizeInChars-1) + *lpDest++ = *lp; + lp++; + } + *lpDest = '\0'; + } + + __declspec( deprecated("CAtlModule::EscapeSingleQuote(dest, src) is unsafe. Instead, use CAtlModule::EscapeSingleQuote(dest, size, src)") ) + static void EscapeSingleQuote( + LPOLESTR lpDest, + LPCOLESTR lp) throw() + { +#pragma warning(push) +# 3014 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(disable: 6386) + EscapeSingleQuote(lpDest, 0xffffffff/sizeof(OLECHAR), lp); +#pragma warning(pop) + } + + + static LPCTSTR FindOneOf( + LPCTSTR p1, + LPCTSTR p2) throw() + { + while (p1 != 0 && *p1 != L'\0') + { + LPCTSTR p = p2; + while (p != 0 && *p != L'\0') + { + if (*p1 == *p) + return CharNextW(p1); + p = CharNextW(p); + } + p1 = CharNextW(p1); + } + return 0; + } +#pragma warning(push) +#pragma warning(disable: 4302) + + static int WordCmpI( + LPCTSTR psz1, + LPCTSTR psz2) throw() + { + TCHAR c1 = (TCHAR)CharUpperW((LPTSTR)*psz1); + TCHAR c2 = (TCHAR)CharUpperW((LPTSTR)*psz2); + while (c1 != L'\0' && c1 == c2 && c1 != ' ' && c1 != '\t') + { + psz1 = CharNextW(psz1); + psz2 = CharNextW(psz2); + c1 = (TCHAR)CharUpperW((LPTSTR)*psz1); + c2 = (TCHAR)CharUpperW((LPTSTR)*psz2); + } + if ((c1 == L'\0' || c1 == ' ' || c1 == '\t') && (c2 == L'\0' || c2 == ' ' || c2 == '\t')) + return 0; + + return (c1 < c2) ? -1 : 1; + } +#pragma warning(pop) + + +}; + +__declspec(selectany) GUID CAtlModule::m_libid = {0x0, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} }; +# 3094 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +inline HRESULT AtlGetGITPtr( IGlobalInterfaceTable** ppGIT) throw() +{ + if (ppGIT == 0) + return ((HRESULT)0x80004003L); + + if (_pAtlModule == 0) + { + return CoCreateInstance(CLSID_StdGlobalInterfaceTable, 0, CLSCTX_INPROC_SERVER, + __uuidof(IGlobalInterfaceTable), (void**)ppGIT); + } + else + { + return _pAtlModule->GetGITPtr(ppGIT); + } +} + +template +class __declspec(novtable) CAtlModuleT : + public CAtlModule +{ +public : + CAtlModuleT() throw() + { + T::InitLibId(); + } + + static void InitLibId() throw() + { + } + + + + HRESULT RegisterServer( + BOOL bRegTypeLib = 0, + const CLSID* pCLSID = 0) throw() + { + (pCLSID); + (bRegTypeLib); + + HRESULT hr = ((HRESULT)0L); + + + + hr = _AtlComModule.RegisterServer(bRegTypeLib, pCLSID); + + + + + + + if ((((HRESULT)(hr)) >= 0) && _pPerfRegFunc != 0) + hr = (*_pPerfRegFunc)(_AtlBaseModule.m_hInst); + + + + return hr; + } + + HRESULT UnregisterServer( + BOOL bUnRegTypeLib, + const CLSID* pCLSID = 0) throw() + { + (bUnRegTypeLib); + (pCLSID); + + HRESULT hr = ((HRESULT)0L); + + + + if (_pPerfUnRegFunc != 0) + hr = (*_pPerfUnRegFunc)(); + + + + + + if ((((HRESULT)(hr)) >= 0)) + hr = _AtlComModule.UnregisterServer(bUnRegTypeLib, pCLSID); + + + + return hr; + + } + + static HRESULT __stdcall UpdateRegistryAppId( BOOL ) throw() + { + return ((HRESULT)0L); + } + HRESULT RegisterAppId() throw() + { + return T::UpdateRegistryAppId(1); + } + + HRESULT UnregisterAppId() throw() + { + return T::UpdateRegistryAppId(0); + } + + virtual HRESULT AddCommonRGSReplacements( IRegistrarBase* pRegistrar) throw() + { + return pRegistrar->AddReplacement(L"APPID", T::GetAppId()); + } + + static LPCOLESTR GetAppId() throw() + { + return L""; + } + +}; +# 3220 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +template +class __declspec(novtable) CAtlDllModuleT : + public CAtlModuleT, + private CAtlValidateModuleConfiguration +{ +public : + CAtlDllModuleT() throw() + { + _AtlComModule.ExecuteObjectMain(true); +# 3238 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + } + + ~CAtlDllModuleT() throw() + { +# 3250 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + _AtlComModule.ExecuteObjectMain(false); + } + + BOOL __stdcall DllMain( + DWORD dwReason, + LPVOID lpReserved) throw(); + + BOOL __stdcall _DllMain( + DWORD dwReason, + LPVOID ) throw() + { + if (dwReason == 1) + { + if (CAtlBaseModule::m_bInitFailed) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 3265, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + } + + else if (dwReason == 0) + { + + _AtlWinModule.Term(); + } + + return 1; + } + + HRESULT DllCanUnloadNow() throw() + { + T* pT = static_cast(this); + return (pT->GetLockCount()==0) ? ((HRESULT)0L) : ((HRESULT)1L); + } + + HRESULT DllGetClassObject( + const IID & rclsid, + const IID & riid, + LPVOID* ppv) throw() + { + T* pT = static_cast(this); + return pT->GetClassObject(rclsid, riid, ppv); + } + + + + HRESULT DllRegisterServer( + BOOL bRegTypeLib = 1) throw() + { + LCID lcid = GetThreadLocale(); + SetThreadLocale((((DWORD)((((DWORD)((WORD )(0x0))) << 16) | ((DWORD)((WORD )((((((WORD )(0x02)) << 10) | (WORD )(0x00)))))))))); + + T* pT = static_cast(this); + HRESULT hr = pT->RegisterAppId(); + if ((((HRESULT)(hr)) >= 0)) + hr = pT->RegisterServer(bRegTypeLib); + SetThreadLocale(lcid); + return hr; + } + + HRESULT DllUnregisterServer( + BOOL bUnRegTypeLib = 1) throw() + { + LCID lcid = GetThreadLocale(); + SetThreadLocale((((DWORD)((((DWORD)((WORD )(0x0))) << 16) | ((DWORD)((WORD )((((((WORD )(0x02)) << 10) | (WORD )(0x00)))))))))); + T* pT = static_cast(this); + HRESULT hr = pT->UnregisterServer(bUnRegTypeLib); + if ((((HRESULT)(hr)) >= 0)) + hr = pT->UnregisterAppId(); + SetThreadLocale(lcid); + return hr; + } + + + + + HRESULT GetClassObject( + const IID & rclsid, + const IID & riid, + LPVOID* ppv) throw() + { + return AtlComModuleGetClassObject(&_AtlComModule, rclsid, riid, ppv); + } +}; + + + +#pragma managed(push, off) + + + +template +inline BOOL __stdcall CAtlDllModuleT::DllMain( + DWORD dwReason, + LPVOID lpReserved) throw() +{ +# 3358 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + return _DllMain(dwReason, lpReserved); + +} + + + +#pragma managed(pop) + + + + + + +template +class __declspec(novtable) CAtlExeModuleT : + public CAtlModuleT, + private CAtlValidateModuleConfiguration +{ +public : + + + DWORD m_dwMainThreadID; + HANDLE m_hEventShutdown; + DWORD m_dwTimeOut; + DWORD m_dwPause; + bool m_bDelayShutdown; + bool m_bActivity; + bool m_bComInitialized; + + + + CAtlExeModuleT() throw() + + + + : m_dwMainThreadID(::GetCurrentThreadId()), + m_dwTimeOut(5000), + m_dwPause(1000), + m_hEventShutdown(0), + m_bDelayShutdown(true), + m_bComInitialized(false) + + + + { + + + _AtlComModule.ExecuteObjectMain(true); + + + + } + + ~CAtlExeModuleT() throw() + { + + + _AtlComModule.ExecuteObjectMain(false); + + + + + Term(); + + + + + _AtlComModule.Term(); + + + } + + static HRESULT InitializeCom() throw() + { + + return CoInitializeEx(0, COINIT_MULTITHREADED); + + + + } + + static void UninitializeCom() throw() + { + CoUninitialize(); + } + + LONG Lock() throw() + { + return CoAddRefServerProcess(); + } + + LONG Unlock() throw() + { + LONG lRet = CoReleaseServerProcess(); + + + + if (lRet == 0) + { + if (m_bDelayShutdown) + { + m_bActivity = true; + ::SetEvent(m_hEventShutdown); + } + else + { + ::PostThreadMessageW(m_dwMainThreadID, 0x0012, 0, 0); + } + } + + + + return lRet; + } + + + void MonitorShutdown() throw() + { + ::WaitForSingleObject(m_hEventShutdown, 0xFFFFFFFF); + ::CloseHandle(m_hEventShutdown); + m_hEventShutdown = 0; + ::PostThreadMessageW(m_dwMainThreadID, 0x0012, 0, 0); + } + + HANDLE StartMonitor() throw() + { + m_hEventShutdown = ::CreateEventW(0, false, false, 0); + if (m_hEventShutdown == 0) + { + return 0; + } + DWORD dwThreadID; + HANDLE hThread = ::CreateThread(0, 0, MonitorProc, this, 0, &dwThreadID); + if(hThread==0) + { + ::CloseHandle(m_hEventShutdown); + m_hEventShutdown = 0; + } + return hThread; + } + + static DWORD __stdcall MonitorProc( void* pv) throw() + { + CAtlExeModuleT* p = static_cast*>(pv); + p->MonitorShutdown(); + return 0; + } + + + int WinMain( int nShowCmd) throw() + { + if (CAtlBaseModule::m_bInitFailed) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 3511, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return -1; + } + T* pT = static_cast(this); + HRESULT hr = ((HRESULT)0L); + + + hr = T::InitializeCom(); + if ((((HRESULT)(hr)) < 0)) + { + + + if (hr != ((HRESULT)0x80010106L) || GetModuleHandleW(L"Mscoree.dll") == 0) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 3525, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return hr; + } + } + else + { + m_bComInitialized = true; + } + + + LPTSTR lpCmdLine = GetCommandLineW(); + if (pT->ParseCommandLine(lpCmdLine, &hr) == true) + hr = pT->Run(nShowCmd); + + + + _AtlWinModule.Term(); + + + + if (m_bComInitialized) + T::UninitializeCom(); + + + return hr; + } + + + + + + bool ParseCommandLine( + LPCTSTR lpCmdLine, + HRESULT* pnRetCode) throw() + { + *pnRetCode = ((HRESULT)0L); + + TCHAR szTokens[] = L"-/"; + + T* pT = static_cast(this); + LPCTSTR lpszToken = FindOneOf(lpCmdLine, szTokens); + while (lpszToken != 0) + { + if (WordCmpI(lpszToken, L"UnregServer")==0) + { + *pnRetCode = pT->UnregisterServer(1); + if ((((HRESULT)(*pnRetCode)) >= 0)) + *pnRetCode = pT->UnregisterAppId(); + return false; + } + + if (WordCmpI(lpszToken, L"RegServer")==0) + { + *pnRetCode = pT->RegisterAppId(); + if ((((HRESULT)(*pnRetCode)) >= 0)) + *pnRetCode = pT->RegisterServer(1); + return false; + } + + if (WordCmpI(lpszToken, L"UnregServerPerUser")==0) + { + *pnRetCode = AtlSetPerUserRegistration(true); + if ((((HRESULT)(*pnRetCode)) < 0)) + { + return false; + } + + *pnRetCode = pT->UnregisterServer(1); + if ((((HRESULT)(*pnRetCode)) >= 0)) + *pnRetCode = pT->UnregisterAppId(); + return false; + } + + if (WordCmpI(lpszToken, L"RegServerPerUser")==0) + { + *pnRetCode = AtlSetPerUserRegistration(true); + if ((((HRESULT)(*pnRetCode)) < 0)) + { + return false; + } + + *pnRetCode = pT->RegisterAppId(); + if ((((HRESULT)(*pnRetCode)) >= 0)) + *pnRetCode = pT->RegisterServer(1); + return false; + } + + lpszToken = FindOneOf(lpszToken, szTokens); + } + + return true; + } + + HRESULT PreMessageLoop( int ) throw() + { + HRESULT hr = ((HRESULT)0L); + T* pT = static_cast(this); + pT; + + + + + + + hr = pT->RegisterClassObjects(CLSCTX_LOCAL_SERVER, + REGCLS_MULTIPLEUSE | REGCLS_SUSPENDED); + + if ((((HRESULT)(hr)) < 0)) + return hr; + + if (hr == ((HRESULT)0L)) + { + if (m_bDelayShutdown) + { + CHandle h(pT->StartMonitor()); + if (h.m_h == 0) + { + hr = ((HRESULT)0x80004005L); + } + else + { + hr = CoResumeClassObjects(); + (void)( (!!(((((HRESULT)(hr)) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 3647, 0, L"%ls", L"(((HRESULT)(hr)) >= 0)")) || (__debugbreak(), 0) ); + if ((((HRESULT)(hr)) < 0)) + { + ::SetEvent(m_hEventShutdown); + ::WaitForSingleObject(h, m_dwTimeOut * 2); + } + } + } + else + { + hr = CoResumeClassObjects(); + (void)( (!!(((((HRESULT)(hr)) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 3658, 0, L"%ls", L"(((HRESULT)(hr)) >= 0)")) || (__debugbreak(), 0) ); + } + + if ((((HRESULT)(hr)) < 0)) + pT->RevokeClassObjects(); + } + else + { + m_bDelayShutdown = false; + } + + + + (void)( (!!(((((HRESULT)(hr)) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 3671, 0, L"%ls", L"(((HRESULT)(hr)) >= 0)")) || (__debugbreak(), 0) ); + return hr; + } + + HRESULT PostMessageLoop() throw() + { + HRESULT hr = ((HRESULT)0L); + + + + T* pT = static_cast(this); + hr = pT->RevokeClassObjects(); + if (m_bDelayShutdown) + Sleep(m_dwPause); + + + + return hr; + } + + void RunMessageLoop() throw() + { + MSG msg; + while (GetMessageW(&msg, 0, 0, 0) > 0) + { + TranslateMessage(&msg); + DispatchMessageW(&msg); + } + } + + HRESULT Run( int nShowCmd = 0) throw() + { + HRESULT hr = ((HRESULT)0L); + + T* pT = static_cast(this); + hr = pT->PreMessageLoop(nShowCmd); + + + if (hr == ((HRESULT)0L)) + { + pT->RunMessageLoop(); + } + + + if ((((HRESULT)(hr)) >= 0)) + { + hr = pT->PostMessageLoop(); + } + + (void)( (!!(((((HRESULT)(hr)) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 3720, 0, L"%ls", L"(((HRESULT)(hr)) >= 0)")) || (__debugbreak(), 0) ); + return hr; + } + + + HRESULT RegisterClassObjects( + DWORD dwClsContext, + DWORD dwFlags) throw() + { + return AtlComModuleRegisterClassObjects(&_AtlComModule, dwClsContext, dwFlags); + } + HRESULT RevokeClassObjects() throw() + { + return AtlComModuleRevokeClassObjects(&_AtlComModule); + } +}; + + + + +template +class __declspec(novtable) CAtlServiceModuleT : + public CAtlExeModuleT +{ +public : + + CAtlServiceModuleT() throw() + { + m_bService = 1; + LoadStringW(_AtlBaseModule.GetModuleInstance(), nServiceNameID, m_szServiceName, sizeof(m_szServiceName) / sizeof(TCHAR)); + + + m_hServiceStatus = 0; + m_status.dwServiceType = 0x00000010; + m_status.dwCurrentState = 0x00000001; + m_status.dwControlsAccepted = 0x00000001; + m_status.dwWin32ExitCode = 0; + m_status.dwServiceSpecificExitCode = 0; + m_status.dwCheckPoint = 0; + m_status.dwWaitHint = 0; + } + + int WinMain( int nShowCmd) throw() + { + if (CAtlBaseModule::m_bInitFailed) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 3766, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return -1; + } + + T* pT = static_cast(this); + HRESULT hr = ((HRESULT)0L); + + LPTSTR lpCmdLine = GetCommandLineW(); + if (pT->ParseCommandLine(lpCmdLine, &hr) == true) + hr = pT->Start(nShowCmd); + + + + _AtlWinModule.Term(); + + + + + if (!m_bService && m_bComInitialized) + { + T::UninitializeCom(); + } + + + return hr; + } + + HRESULT Start( int nShowCmd) throw() + { + T* pT = static_cast(this); + + CRegKey keyAppID; + LONG lRes = keyAppID.Open((( HKEY ) (ULONG_PTR)((LONG)0x80000000) ), L"AppID", ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L)))); + if (lRes != 0L) + { + m_status.dwWin32ExitCode = lRes; + return m_status.dwWin32ExitCode; + } + + CRegKey key; + lRes = key.Open(keyAppID, pT->GetAppIdT(), ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L)))); + if (lRes != 0L) + { + m_status.dwWin32ExitCode = lRes; + return m_status.dwWin32ExitCode; + } + + TCHAR szValue[260]; + DWORD dwLen = 260; + lRes = key.QueryStringValue(L"LocalService", szValue, &dwLen); + + m_bService = 0; + if (lRes == 0L) + m_bService = 1; + + if (m_bService) + { + SERVICE_TABLE_ENTRY st[] = + { + { m_szServiceName, _ServiceMain }, + { 0, 0 } + }; + if (::StartServiceCtrlDispatcherW(st) == 0) + m_status.dwWin32ExitCode = GetLastError(); + return m_status.dwWin32ExitCode; + } + + + + HRESULT hr = T::InitializeCom(); + if ((((HRESULT)(hr)) < 0)) + { + + + if (hr != ((HRESULT)0x80010106L) || GetModuleHandleW(L"Mscoree.dll") == 0) + { + return hr; + } + } + else + { + m_bComInitialized = true; + } + + + m_status.dwWin32ExitCode = pT->Run(nShowCmd); + return m_status.dwWin32ExitCode; + } + + inline HRESULT RegisterAppId( bool bService = false) throw() + { + if (!Uninstall()) + return ((HRESULT)0x80004005L); + + HRESULT hr = T::UpdateRegistryAppId(1); + if ((((HRESULT)(hr)) < 0)) + return hr; + + CRegKey keyAppID; + LONG lRes = keyAppID.Open((( HKEY ) (ULONG_PTR)((LONG)0x80000000) ), L"AppID", ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L)))); + if (lRes != 0L) + return AtlHresultFromWin32(lRes); + + CRegKey key; + + lRes = key.Create(keyAppID, T::GetAppIdT()); + if (lRes != 0L) + return AtlHresultFromWin32(lRes); + + key.DeleteValue(L"LocalService"); + + if (!bService) + return ((HRESULT)0L); + + key.SetStringValue(L"LocalService", m_szServiceName); + + + if (!Install()) + return ((HRESULT)0x80004005L); + return ((HRESULT)0L); + } + + HRESULT UnregisterAppId() throw() + { + if (!Uninstall()) + return ((HRESULT)0x80004005L); + + CRegKey keyAppID; + LONG lRes = keyAppID.Open((( HKEY ) (ULONG_PTR)((LONG)0x80000000) ), L"AppID", ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L)))); + if (lRes != 0L) + return AtlHresultFromWin32(lRes); + + CRegKey key; + lRes = key.Open(keyAppID, T::GetAppIdT(), ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L)))); + if (lRes != 0L) + return AtlHresultFromWin32(lRes); + key.DeleteValue(L"LocalService"); + + return T::UpdateRegistryAppId(0); + } + + + bool ParseCommandLine( + LPCTSTR lpCmdLine, + HRESULT* pnRetCode) throw() + { + if (!CAtlExeModuleT::ParseCommandLine(lpCmdLine, pnRetCode)) + return false; + + TCHAR szTokens[] = L"-/"; + *pnRetCode = ((HRESULT)0L); + + T* pT = static_cast(this); + LPCTSTR lpszToken = FindOneOf(lpCmdLine, szTokens); + while (lpszToken != 0) + { + if (WordCmpI(lpszToken, L"Service")==0) + { + *pnRetCode = pT->RegisterAppId(true); + if ((((HRESULT)(*pnRetCode)) >= 0)) + *pnRetCode = pT->RegisterServer(1); + return false; + } + lpszToken = FindOneOf(lpszToken, szTokens); + } + return true; + } + + void ServiceMain( + DWORD dwArgc, + LPTSTR* lpszArgv) throw() + { + lpszArgv; + dwArgc; + + m_status.dwCurrentState = 0x00000002; + m_dwThreadID = GetCurrentThreadId(); + m_hServiceStatus = RegisterServiceCtrlHandlerW(m_szServiceName, _Handler); + if (m_hServiceStatus == 0) + { + LogEvent(L"Handler not installed"); + return; + } + SetServiceStatus(0x00000002); + + m_status.dwWin32ExitCode = ((HRESULT)0L); + m_status.dwCheckPoint = 0; + m_status.dwWaitHint = 0; + + T* pT = static_cast(this); + + + HRESULT hr = ((HRESULT)0x80004005L); + hr = T::InitializeCom(); + if ((((HRESULT)(hr)) < 0)) + { + + + if (hr != ((HRESULT)0x80010106L) || GetModuleHandleW(L"Mscoree.dll") == 0) + { + return; + } + } + else + { + m_bComInitialized = true; + } + + m_bDelayShutdown = false; + + + m_status.dwWin32ExitCode = pT->Run(0); + + + if (m_bService && m_bComInitialized) + T::UninitializeCom(); + + + SetServiceStatus(0x00000001); + LogEvent(L"Service stopped"); + } + + HRESULT Run( int nShowCmd = 0) throw() + { + HRESULT hr = ((HRESULT)0L); + T* pT = static_cast(this); + + hr = pT->PreMessageLoop(nShowCmd); + + if (hr == ((HRESULT)0L)) + { + pT->RunMessageLoop(); + } + + if ((((HRESULT)(hr)) >= 0)) + { + hr = pT->PostMessageLoop(); + } + + return hr; + } + + HRESULT PreMessageLoop( int ) throw() + { + HRESULT hr = ((HRESULT)0L); + + T* pT = static_cast(this); + + if (m_bService) + { + hr = pT->InitializeSecurity(); + + if ((((HRESULT)(hr)) < 0)) + { + return hr; + } + } + + + + + hr = pT->RegisterClassObjects(CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE | REGCLS_SUSPENDED); + if ((((HRESULT)(hr)) < 0)) + { + return hr; + } + + if (hr == ((HRESULT)0L)) + { + if (m_bDelayShutdown) + { + CHandle h(pT->StartMonitor()); + if (h.m_h == 0) + { + hr = ((HRESULT)0x80004005L); + } + else + { + if (m_bService) + { + + if (::_InterlockedCompareExchange(&m_status.dwCurrentState, 0x00000004, 0x00000002) == 0x00000002) + { + LogEvent(L"Service started/resumed"); + ::SetServiceStatus(m_hServiceStatus, &m_status); + } + } + + hr = CoResumeClassObjects(); + (void)( (!!(((((HRESULT)(hr)) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 4055, 0, L"%ls", L"(((HRESULT)(hr)) >= 0)")) || (__debugbreak(), 0) ); + if ((((HRESULT)(hr)) < 0)) + { + ::SetEvent(m_hEventShutdown); + ::WaitForSingleObject(h, m_dwTimeOut * 2); + } + } + } + else + { + if (m_bService) + { + + if (::_InterlockedCompareExchange(&m_status.dwCurrentState, 0x00000004, 0x00000002) == 0x00000002) + { + LogEvent(L"Service started/resumed"); + ::SetServiceStatus(m_hServiceStatus, &m_status); + } + } + + hr = CoResumeClassObjects(); + (void)( (!!(((((HRESULT)(hr)) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 4076, 0, L"%ls", L"(((HRESULT)(hr)) >= 0)")) || (__debugbreak(), 0) ); + } + + if ((((HRESULT)(hr)) < 0)) + pT->RevokeClassObjects(); + } + else + { + m_bDelayShutdown = false; + } +# 4101 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + (void)( (!!(((((HRESULT)(hr)) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 4101, 0, L"%ls", L"(((HRESULT)(hr)) >= 0)")) || (__debugbreak(), 0) ); + return hr; + } + + void OnStop() throw() + { + SetServiceStatus(0x00000003); + ::PostThreadMessageW(m_dwThreadID, 0x0012, 0, 0); + } + + void OnPause() throw() + { + } + + void OnContinue() throw() + { + } + + void OnInterrogate() throw() + { + } + + void OnShutdown() throw() + { + } + + void OnUnknownRequest( DWORD ) throw() + { + LogEvent(L"Bad service request"); + } + + void Handler( DWORD dwOpcode) throw() + { + T* pT = static_cast(this); + + switch (dwOpcode) + { + case 0x00000001: + pT->OnStop(); + break; + case 0x00000002: + pT->OnPause(); + break; + case 0x00000003: + pT->OnContinue(); + break; + case 0x00000004: + pT->OnInterrogate(); + break; + case 0x00000005: + pT->OnShutdown(); + break; + default: + pT->OnUnknownRequest(dwOpcode); + } + } + + BOOL IsInstalled() throw() + { + BOOL bResult = 0; + + SC_HANDLE hSCM = ::OpenSCManagerW(0, 0, ((0x000F0000L) | 0x0001 | 0x0002 | 0x0004 | 0x0008 | 0x0010 | 0x0020)); + + if (hSCM != 0) + { + SC_HANDLE hService = ::OpenServiceW(hSCM, m_szServiceName, 0x0001); + if (hService != 0) + { + bResult = 1; + ::CloseServiceHandle(hService); + } + ::CloseServiceHandle(hSCM); + } + return bResult; + } + BOOL Install() throw() + { + if (IsInstalled()) + return 1; + + + TCHAR szFilePath[260 + 2]; + DWORD dwFLen = ::GetModuleFileNameW(0, szFilePath + 1, 260); + if( dwFLen == 0 || dwFLen == 260 ) + return 0; + + + szFilePath[0] = L'\"'; + szFilePath[dwFLen + 1] = L'\"'; + szFilePath[dwFLen + 2] = 0; + + SC_HANDLE hSCM = ::OpenSCManagerW(0, 0, ((0x000F0000L) | 0x0001 | 0x0002 | 0x0004 | 0x0008 | 0x0010 | 0x0020)); + if (hSCM == 0) + { + TCHAR szBuf[1024]; + if (AtlLoadString((0xD800 + 10), szBuf, 1024) == 0) + + Checked::wcscpy_s(szBuf, (sizeof(*__countof_helper(szBuf)) + 0), L"Could not open Service Manager"); + + + + MessageBoxW(0, szBuf, m_szServiceName, 0x00000000L); + return 0; + } + + SC_HANDLE hService = ::CreateServiceW( + hSCM, m_szServiceName, m_szServiceName, + ((0x000F0000L) | 0x0001 | 0x0002 | 0x0004 | 0x0008 | 0x0010 | 0x0020 | 0x0040 | 0x0080 | 0x0100), 0x00000010, + 0x00000003, 0x00000001, + szFilePath, 0, 0, L"RPCSS\0", 0, 0); + + if (hService == 0) + { + ::CloseServiceHandle(hSCM); + TCHAR szBuf[1024]; + if (AtlLoadString((0xD800 + 11), szBuf, 1024) == 0) + + Checked::wcscpy_s(szBuf, (sizeof(*__countof_helper(szBuf)) + 0), L"Could not start service"); + + + + MessageBoxW(0, szBuf, m_szServiceName, 0x00000000L); + return 0; + } + + ::CloseServiceHandle(hService); + ::CloseServiceHandle(hSCM); + return 1; + } + + BOOL Uninstall() throw() + { + if (!IsInstalled()) + return 1; + + SC_HANDLE hSCM = ::OpenSCManagerW(0, 0, ((0x000F0000L) | 0x0001 | 0x0002 | 0x0004 | 0x0008 | 0x0010 | 0x0020)); + + if (hSCM == 0) + { + TCHAR szBuf[1024]; + if (AtlLoadString((0xD800 + 10), szBuf, 1024) == 0) + + Checked::wcscpy_s(szBuf, (sizeof(*__countof_helper(szBuf)) + 0), L"Could not open Service Manager"); + + + + MessageBoxW(0, szBuf, m_szServiceName, 0x00000000L); + return 0; + } + + SC_HANDLE hService = ::OpenServiceW(hSCM, m_szServiceName, 0x0020 | (0x00010000L)); + + if (hService == 0) + { + ::CloseServiceHandle(hSCM); + TCHAR szBuf[1024]; + if (AtlLoadString((0xD800 + 12), szBuf, 1024) == 0) + + Checked::wcscpy_s(szBuf, (sizeof(*__countof_helper(szBuf)) + 0), L"Could not open service"); + + + + MessageBoxW(0, szBuf, m_szServiceName, 0x00000000L); + return 0; + } + SERVICE_STATUS status; + BOOL bRet = ::ControlService(hService, 0x00000001, &status); + if (!bRet) + { + DWORD dwError = GetLastError(); + if (!((dwError == 1062L) || (dwError == 1061L && status.dwCurrentState == 0x00000003))) + { + TCHAR szBuf[1024]; + if (AtlLoadString((0xD800 + 14), szBuf, 1024) == 0) + + Checked::wcscpy_s(szBuf, (sizeof(*__countof_helper(szBuf)) + 0), L"Could not stop service"); + + + + MessageBoxW(0, szBuf, m_szServiceName, 0x00000000L); + } + } + + BOOL bDelete = ::DeleteService(hService); + ::CloseServiceHandle(hService); + ::CloseServiceHandle(hSCM); + + if (bDelete) + return 1; + + TCHAR szBuf[1024]; + if (AtlLoadString((0xD800 + 13), szBuf, 1024) == 0) + + Checked::wcscpy_s(szBuf, (sizeof(*__countof_helper(szBuf)) + 0), L"Could not delete service"); + + + + MessageBoxW(0, szBuf, m_szServiceName, 0x00000000L); + return 0; + } + + LONG Unlock() throw() + { + LONG lRet; + if (m_bService) + { + + + lRet = CAtlModuleT::Unlock(); + } + else + { + + lRet = CAtlExeModuleT::Unlock(); + } + return lRet; + } + + void LogEventEx( + int id, + LPCTSTR pszMessage=0, + WORD type = 0x0004) throw() + { + + HANDLE hEventSource = RegisterEventSourceW(0, m_szServiceName); + if (hEventSource != 0) + { + + ReportEventW(hEventSource, + type, + (WORD)0, + id, + 0, + (WORD)(pszMessage != 0 ? 1 : 0), + 0, + pszMessage != 0 ? &pszMessage : 0, + 0); + DeregisterEventSource(hEventSource); + } + } + +#pragma warning(push) +#pragma warning(disable: 4793) + void __cdecl LogEvent( + LPCTSTR pszFormat, ...) throw() + { + const int LOG_EVENT_MSG_SIZE = 256; + + TCHAR chMsg[LOG_EVENT_MSG_SIZE]; + HANDLE hEventSource; + LPTSTR lpszStrings[1]; + va_list pArg; + + ((void)(__vcrt_va_start_verify_argument_type(), ((void)(pArg = (va_list)(&const_cast(reinterpret_cast(pszFormat))) + ((sizeof(pszFormat) + sizeof(int) - 1) & ~(sizeof(int) - 1)))))); + _vsnwprintf_s(chMsg, LOG_EVENT_MSG_SIZE, LOG_EVENT_MSG_SIZE-1, pszFormat, pArg); + ((void)(pArg = (va_list)0)); + + chMsg[LOG_EVENT_MSG_SIZE - 1] = 0; + + lpszStrings[0] = chMsg; + + if (!m_bService) + { + + + _putws(chMsg); + } + + + hEventSource = RegisterEventSourceW(0, m_szServiceName); + if (hEventSource != 0) + { + + ReportEventW(hEventSource, 0x0004, 0, 0, 0, 1, 0, (LPCTSTR*) &lpszStrings[0], 0); + DeregisterEventSource(hEventSource); + } + } +#pragma warning(pop) + + void SetServiceStatus( DWORD dwState) throw() + { + ::_InterlockedExchange(&m_status.dwCurrentState, dwState); + ::SetServiceStatus(m_hServiceStatus, &m_status); + } + + +protected: + static void __stdcall _ServiceMain( + DWORD dwArgc, + LPTSTR* lpszArgv) throw() + { + ((T*)_pAtlModule)->ServiceMain(dwArgc, lpszArgv); + } + static void __stdcall _Handler( DWORD dwOpcode) throw() + { + ((T*)_pAtlModule)->Handler(dwOpcode); + } + + +public: + TCHAR m_szServiceName[256]; + SERVICE_STATUS_HANDLE m_hServiceStatus; + SERVICE_STATUS m_status; + BOOL m_bService; + DWORD m_dwThreadID; +}; +# 4480 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +class CComModule; +# 4524 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +__declspec(selectany) CComModule* _pModule = 0; +class CComModule : + public CAtlModuleT +{ +public : + + CComModule() + { + + + (void)( (!!((_pModule == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 4534, 0, L"%ls", L"_pModule == 0")) || (__debugbreak(), 0) ); + _pModule = this; +# 4551 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + } + + ~CComModule() + { +# 4569 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + } + + __declspec(property(get = get_m_hInst)) HINSTANCE m_hInst; + HINSTANCE& get_m_hInst() const throw() + { + return _AtlBaseModule.m_hInst; + } + + __declspec(property(get = get_m_hInstResource, put = put_m_hInstResource)) HINSTANCE m_hInstResource; + HINSTANCE& get_m_hInstResource() const throw() + { + return _AtlBaseModule.m_hInstResource; + } + void put_m_hInstResource( HINSTANCE h) throw() + { + _AtlBaseModule.SetResourceInstance(h); + } + HINSTANCE SetResourceInstance( HINSTANCE h) throw() + { + return _AtlBaseModule.SetResourceInstance(h); + } + + HINSTANCE GetModuleInstance() throw() + { + return _AtlBaseModule.m_hInst; + } + HINSTANCE GetResourceInstance() throw() + { + return _AtlBaseModule.m_hInstResource; + } + + __declspec(property(get = get_m_hInstTypeLib, put = put_m_hInstTypeLib)) HINSTANCE m_hInstTypeLib; + HINSTANCE& get_m_hInstTypeLib() const throw() + { + return _AtlComModule.m_hInstTypeLib; + } + void put_m_hInstTypeLib( HINSTANCE h) throw() + { + _AtlComModule.m_hInstTypeLib = h; + } + + HINSTANCE GetTypeLibInstance() const throw() + { + return _AtlComModule.m_hInstTypeLib; + } + + + _ATL_OBJMAP_ENTRY* m_pObjMap; + + + __declspec(property(get = get_m_csWindowCreate)) CRITICAL_SECTION m_csWindowCreate; + CRITICAL_SECTION& get_m_csWindowCreate() throw(); + + __declspec(property(get = get_m_pCreateWndList, put = put_m_pCreateWndList)) _AtlCreateWndData* m_pCreateWndList; + _AtlCreateWndData*& get_m_pCreateWndList() throw(); + void put_m_pCreateWndList( _AtlCreateWndData* p) throw(); + + + __declspec(property(get = get_m_csObjMap)) CRITICAL_SECTION m_csObjMap; + CRITICAL_SECTION& get_m_csObjMap() throw(); + + __declspec(property(get = get_m_csStaticDataInit)) CRITICAL_SECTION m_csTypeInfoHolder; + __declspec(property(get = get_m_csStaticDataInit)) CRITICAL_SECTION m_csStaticDataInit; + CRITICAL_SECTION& get_m_csStaticDataInit() throw(); + void EnterStaticDataCriticalSection() throw() + { + EnterCriticalSection(&m_csStaticDataInit); + } + + void LeaveStaticDataCriticalSection() throw() + { + LeaveCriticalSection(&m_csStaticDataInit); + } + + __declspec(property(get = get_dwAtlBuildVer)) DWORD dwAtlBuildVer; + DWORD& get_dwAtlBuildVer() throw() + { + return _AtlBaseModule.dwAtlBuildVer; + } + + __declspec(property(get = get_pguidVer)) const GUID* pguidVer; + const GUID*& get_pguidVer() throw() + { + return _AtlBaseModule.pguidVer; + } +# 4682 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + HRESULT Init( + _ATL_OBJMAP_ENTRY* p, + HINSTANCE h, + const GUID* plibid = 0) throw(); + + void Term() throw(); + + HRESULT GetClassObject( + const IID & rclsid, + const IID & riid, + LPVOID* ppv) throw(); + + + + HRESULT RegisterClassObjects( DWORD dwClsContext, DWORD dwFlags) throw(); + HRESULT RevokeClassObjects() throw(); + + + HRESULT RegisterTypeLib() throw(); + HRESULT RegisterTypeLib( LPCTSTR lpszIndex) throw(); + HRESULT UnRegisterTypeLib() throw(); + HRESULT UnRegisterTypeLib( LPCTSTR lpszIndex) throw(); + + HRESULT RegisterServer( + BOOL bRegTypeLib = 0, + const CLSID* pCLSID = 0) throw(); + HRESULT UnregisterServer( + BOOL bUnRegTypeLib, + const CLSID* pCLSID = 0) throw(); + HRESULT UnregisterServer( const CLSID* pCLSID = 0) throw(); + + HRESULT RegisterAppId( LPCTSTR pAppId); + HRESULT UnregisterAppId( LPCTSTR pAppId); + + + virtual HRESULT __stdcall UpdateRegistryFromResourceD( + LPCTSTR lpszRes, + BOOL bRegister, + struct _ATL_REGMAP_ENTRY* pMapEntries = 0) throw() + { + (lpszRes); + (bRegister); + (pMapEntries); + return ((HRESULT)0x80004005L); + } + + virtual HRESULT __stdcall UpdateRegistryFromResourceD( + UINT nResID, + BOOL bRegister, + struct _ATL_REGMAP_ENTRY* pMapEntries = 0) throw() + { + (nResID); + (bRegister); + (pMapEntries); + return ((HRESULT)0x80004005L); + } + + virtual HRESULT __stdcall UpdateRegistryFromResource( + LPCTSTR lpszRes, + BOOL bRegister, + struct _ATL_REGMAP_ENTRY* pMapEntries = 0) throw() + { + return CAtlModuleT::UpdateRegistryFromResource(lpszRes, bRegister, pMapEntries); + } + virtual HRESULT __stdcall UpdateRegistryFromResource( + UINT nResID, + BOOL bRegister, + struct _ATL_REGMAP_ENTRY* pMapEntries = 0) throw() + { + return CAtlModuleT::UpdateRegistryFromResource(nResID, bRegister, pMapEntries); + } + + HRESULT DllRegisterServer( BOOL bRegTypeLib = 1) throw() + { + + return RegisterServer(bRegTypeLib); + } + + HRESULT DllUnregisterServer( BOOL bUnRegTypeLib = 1) throw() + { + return UnregisterServer(bUnRegTypeLib); + } + + + + __declspec( deprecated("CComModule::RegisterProgID is no longer recommended. Instead, use an RGS file for registration.") ) + static HRESULT RegisterProgID( + LPCTSTR lpszCLSID, + LPCTSTR lpszProgID, + LPCTSTR lpszUserDesc); + + __declspec( deprecated("CComModule::RegisterVersionIndependentProgID is no longer recommended. Instead, use an RGS file for registration.") ) + static HRESULT RegisterVersionIndependentProgID( + LPCTSTR lpszCLSID, + LPCTSTR lpszVerIndProgID, + LPCTSTR lpszCurVerProgID, + LPCTSTR lpszUserDesc); + + + __declspec( deprecated("CComModule::UpdateRegistryClass is no longer recommended. Instead, use an RGS file for registration.") ) + HRESULT __stdcall UpdateRegistryClass( + const CLSID& clsid, + LPCTSTR lpszProgID, + LPCTSTR lpszVerIndProgID, + UINT nDescID, + DWORD dwFlags, + BOOL bRegister); + + __declspec( deprecated("CComModule::UpdateRegistryClass is no longer recommended. Instead, use an RGS file for registration.") ) + HRESULT __stdcall UpdateRegistryClass( + const CLSID& clsid, + LPCTSTR lpszProgID, + LPCTSTR lpszVerIndProgID, + LPCTSTR szDesc, + DWORD dwFlags, + BOOL bRegister); + + __declspec( deprecated("CComModule::RegisterClassHelper is no longer recommended. Instead, use an RGS file for registration.") ) + HRESULT __stdcall RegisterClassHelper( + const CLSID& clsid, + LPCTSTR lpszProgID, + LPCTSTR lpszVerIndProgID, + LPCTSTR szDesc, + DWORD dwFlags); + + __declspec( deprecated("CComModule::UnregisterClassHelper is no longer recommended. Instead, use an RGS file for registration.") ) + HRESULT __stdcall UnregisterClassHelper( + const CLSID& clsid, + LPCTSTR lpszProgID, + LPCTSTR lpszVerIndProgID); + + + + void AddCreateWndData( + _AtlCreateWndData* pData, + void* pObject) throw() + { + _AtlWinModule.AddCreateWndData(pData, pObject); + } + + void* ExtractCreateWndData() throw() + { + return _AtlWinModule.ExtractCreateWndData(); + } + + + + HRESULT CreateInstance( + void* , + const IID & , + void** ) throw() + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 4834, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + ; + do { ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 4836)(ATL::atlTraceNotImpl, 0, L"ATL: %Ts not implemented.\n", L"CComModule::CreateInstance"); return ((HRESULT)0x80004001L); } while(0); + } + + BOOL __stdcall DllMain( + HINSTANCE hInstance, + DWORD dwReason, + LPVOID , + _ATL_OBJMAP_ENTRY* pObjMap, + const GUID* pLibID); + + BOOL __stdcall _DllMain( + HINSTANCE hInstance, + DWORD dwReason, + LPVOID , + _ATL_OBJMAP_ENTRY* pObjMap, + const GUID* pLibID) + { + if (dwReason == 1) + { + if (CAtlBaseModule::m_bInitFailed) + { + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 4857, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + + if ((((HRESULT)(Init(pObjMap, hInstance, pLibID))) < 0)) + { + Term(); + return 0; + } + } + else if (dwReason == 0) + Term(); + return 1; + } + + HRESULT DllCanUnloadNow() throw() + { + return (GetLockCount()==0) ? ((HRESULT)0L) : ((HRESULT)1L); + } + HRESULT DllGetClassObject( + const IID & rclsid, + const IID & riid, + LPVOID* ppv) throw() + { + return GetClassObject(rclsid, riid, ppv); + } + +private: + static HRESULT RegisterProgIDHelper( + LPCTSTR lpszCLSID, + LPCTSTR lpszProgID, + LPCTSTR lpszCurVerProgID, + LPCTSTR lpszUserDesc, + BOOL bIsVerIndProgID); +}; + +#pragma managed(push, off) +inline BOOL __stdcall CComModule::DllMain( + HINSTANCE hInstance, + DWORD dwReason, + LPVOID lpReserved, + _ATL_OBJMAP_ENTRY* pObjMap, + const GUID* pLibID) +{ +# 4914 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + return _DllMain(hInstance, dwReason, lpReserved, pObjMap, pLibID); + +} +#pragma managed(pop) +# 4930 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +class CRTThreadTraits +{ +public: + static HANDLE CreateThread( + LPSECURITY_ATTRIBUTES lpsa, + DWORD dwStackSize, + LPTHREAD_START_ROUTINE pfnThreadProc, + void *pvParam, + DWORD dwCreationFlags, + DWORD *pdwThreadId) throw() + { + (void)( (!!((sizeof(DWORD) == sizeof(unsigned int)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 4941, 0, L"%ls", L"sizeof(DWORD) == sizeof(unsigned int)")) || (__debugbreak(), 0) ); + + + return (HANDLE) _beginthreadex(lpsa, dwStackSize, (unsigned int (__stdcall *)(void *)) pfnThreadProc, pvParam, dwCreationFlags, (unsigned int *) pdwThreadId); + } +}; + + + + + +class Win32ThreadTraits +{ +public: + static HANDLE CreateThread( + LPSECURITY_ATTRIBUTES lpsa, + DWORD dwStackSize, + LPTHREAD_START_ROUTINE pfnThreadProc, + void *pvParam, + DWORD dwCreationFlags, + DWORD *pdwThreadId) throw() + { + return ::CreateThread(lpsa, dwStackSize, pfnThreadProc, pvParam, dwCreationFlags, pdwThreadId); + } +}; + +typedef CRTThreadTraits DefaultThreadTraits; + +template +HANDLE CreateThreadT( + LPSECURITY_ATTRIBUTES lpsa, + DWORD dwStackSize, + DWORD (__stdcall * pfn)( T *pparam), + T *pparam, + DWORD dwCreationFlags, + LPDWORD pdw) +{ + return DefaultThreadTraits::CreateThread(lpsa, + dwStackSize, + (LPTHREAD_START_ROUTINE)pfn, + pparam, + dwCreationFlags, + pdw); +} + +template +HANDLE AtlCreateThread( DWORD (__stdcall* pfn)( T *pparam), T *pparam) +{ + return CreateThreadT(0, 0, pfn, pparam, 0, 0); +} + + + + + + +class _AtlAptCreateObjData +{ +public: + _ATL_CREATORFUNC* pfnCreateInstance; + const IID* piid; + HANDLE hEvent; + LPSTREAM pStream; + HRESULT hRes; +}; + + + +class CComApartment +{ +public: + CComApartment() + { + m_nLockCnt = 0; + m_hThread = 0; + } + static UINT ATL_CREATE_OBJECT; + static DWORD __stdcall _Apartment( void* pv) + { + do { int __atl_condVal=!!(pv != 0); do { (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5020, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); ; } +# 5020 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5020 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); if(!(__atl_condVal)) ATL::AtlThrowImpl(((HRESULT)0x80004005L)); } +# 5020 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5020 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + return ((CComApartment*)pv)->Apartment(); + } + DWORD Apartment() + { + HRESULT hr = ::CoInitialize(0); + (void)( (!!(((((HRESULT)(hr)) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5026, 0, L"%ls", L"(((HRESULT)(hr)) >= 0)")) || (__debugbreak(), 0) ); + (hr); + MSG msg; + while(GetMessageW(&msg, 0, 0, 0) > 0) + { + if (msg.message == ATL_CREATE_OBJECT) + { + _AtlAptCreateObjData* pdata = (_AtlAptCreateObjData*)msg.lParam; + CComPtr pUnk; + pdata->hRes = pdata->pfnCreateInstance(0, __uuidof(IUnknown), (void**)&pUnk); + if ((((HRESULT)(pdata->hRes)) >= 0)) + pdata->hRes = CoMarshalInterThreadInterfaceInStream(*pdata->piid, pUnk, &pdata->pStream); + if ((((HRESULT)(pdata->hRes)) >= 0)) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5040)(atlTraceCOM, 2, L"Object created on thread = %d\n", GetCurrentThreadId()); + } + + else + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5045)(atlTraceCOM, 2, L"Failed to create Object on thread = %d\n", GetCurrentThreadId()); + } + + SetEvent(pdata->hEvent); + } + DispatchMessageW(&msg); + } + CoUninitialize(); + + return 0; + } + LONG Lock() + { + return CComGlobalsThreadModel::Increment(&m_nLockCnt); + } + LONG Unlock() + { + return CComGlobalsThreadModel::Decrement(&m_nLockCnt); + } + LONG GetLockCount() const + { + return m_nLockCnt; + } + + DWORD m_dwThreadID; + HANDLE m_hThread; + LONG m_nLockCnt; +}; + +__declspec(selectany) UINT CComApartment::ATL_CREATE_OBJECT = 0; + +class CComSimpleThreadAllocator +{ +public: + CComSimpleThreadAllocator() + { + m_nThread = 0; + } + int GetThread( CComApartment* , int nThreads) + { + if (++m_nThread == nThreads) + m_nThread = 0; + return m_nThread; + } + int m_nThread; +}; + +__interface IAtlAutoThreadModule +{ + virtual HRESULT CreateInstance( + void* pfnCreateInstance, + const IID & riid, + void** ppvObj); +}; + +__declspec(selectany) IAtlAutoThreadModule* _pAtlAutoThreadModule; + +template +class __declspec(novtable) CAtlAutoThreadModuleT : + public IAtlAutoThreadModule +{ + + + +public: + CAtlAutoThreadModuleT( int nThreads = T::GetDefaultThreads()) + { + (void)( (!!((_pAtlAutoThreadModule == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5112, 0, L"%ls", L"_pAtlAutoThreadModule == 0")) || (__debugbreak(), 0) ); + _pAtlAutoThreadModule = this; + m_nThreads= 0; + + m_pApartments = new(std::nothrow) CComApartment[nThreads]; + (void)( (!!((m_pApartments != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5117, 0, L"%ls", L"m_pApartments != 0")) || (__debugbreak(), 0) ); + if(m_pApartments == 0) + { + CAtlBaseModule::m_bInitFailed = true; + do { int __atl_condVal=!!(0); do { (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5121, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); ; } +# 5121 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5121 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); if(!(__atl_condVal)) ATL::AtlThrowImpl(((HRESULT)0x80004005L)); } +# 5121 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5121 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + } + + memset(m_pApartments, 0, sizeof(CComApartment) * nThreads); + + m_nThreads = nThreads; + for (int i = 0; i < nThreads; i++) + { + typedef unsigned ( __stdcall *pfnThread )( void * ); + errno_t save_errno = Checked::get_errno(); + Checked::set_errno(0); + m_pApartments[i].m_hThread = (HANDLE)_beginthreadex(0, 0, (pfnThread)CComApartment::_Apartment, &m_pApartments[i], 0, (UINT*)&m_pApartments[i].m_dwThreadID); + if (m_pApartments[i].m_hThread == 0) + { + HRESULT hr = ((HRESULT)0x80004005L); + + switch (Checked::get_errno()) + { + case 11: + hr = HRESULT_FROM_WIN32(155L); + break; + case 22: + hr = ((HRESULT)0x80070057L); + break; + } + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5146, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + CAtlBaseModule::m_bInitFailed = true; + break; + } + Checked::set_errno(save_errno); + } + if (!CAtlBaseModule::m_bInitFailed) + CComApartment::ATL_CREATE_OBJECT = RegisterWindowMessageW(L"ATL_CREATE_OBJECT"); + } + + virtual ~CAtlAutoThreadModuleT() + { + if (m_pApartments == 0) + return; + + DWORD dwCurrentThreadId = GetCurrentThreadId(); + int nCurrentThread = -1; + for (int i=0; i < m_nThreads; i++) + { + if (m_pApartments[i].m_hThread == 0) + continue; + if (m_pApartments[i].m_dwThreadID == dwCurrentThreadId) + { + nCurrentThread = i; + continue; + } + while (::PostThreadMessageW(m_pApartments[i].m_dwThreadID, 0x0012, 0, 0) == 0) + { + + + + + + + ::Sleep(100); + } + ::WaitForSingleObject(m_pApartments[i].m_hThread, dwWait); + CloseHandle(m_pApartments[i].m_hThread); + } + if (nCurrentThread != -1) + CloseHandle(m_pApartments[nCurrentThread].m_hThread); + + delete [] m_pApartments; + m_pApartments = 0; + } + + HRESULT CreateInstance( + void* pfnCreateInstance, + const IID & riid, + void** ppvObj) + { + (void)( (!!((ppvObj != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5197, 0, L"%ls", L"ppvObj != 0")) || (__debugbreak(), 0) ); + if (ppvObj == 0) + return ((HRESULT)0x80004003L); + *ppvObj = 0; + + _ATL_CREATORFUNC* pFunc = (_ATL_CREATORFUNC*) pfnCreateInstance; + _AtlAptCreateObjData data; + data.pfnCreateInstance = pFunc; + data.piid = &riid; + data.hEvent = CreateEventW(0, 0, 0, 0); + do { int __atl_condVal=!!(data.hEvent != 0); do { (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5207, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); ; } +# 5207 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5207 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); if(!(__atl_condVal)) ATL::AtlThrowImpl(((HRESULT)0x80004005L)); } +# 5207 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5207 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + data.hRes = ((HRESULT)0L); + int nThread = m_Allocator.GetThread(m_pApartments, m_nThreads); + int nIterations = 0; + while(::PostThreadMessageW(m_pApartments[nThread].m_dwThreadID, CComApartment::ATL_CREATE_OBJECT, 0, (LPARAM)&data) == 0 && ++nIterations < 100) + { + Sleep(100); + } + if (nIterations < 100) + { + AtlWaitWithMessageLoop(data.hEvent); + } + else + { + data.hRes = AtlHresultFromLastError(); + } + if (data.hEvent) + CloseHandle(data.hEvent); + if ((((HRESULT)(data.hRes)) >= 0)) + data.hRes = CoGetInterfaceAndReleaseStream(data.pStream, riid, ppvObj); + return data.hRes; + } + DWORD dwThreadID; + int m_nThreads; + CComApartment* m_pApartments; + ThreadAllocator m_Allocator; + static int GetDefaultThreads() + { + SYSTEM_INFO si; + GetSystemInfo(&si); + return si.dwNumberOfProcessors * 4; + } +}; + +class CAtlAutoThreadModule : + public CAtlAutoThreadModuleT +{ +public : +}; + + + + +template +class CComAutoThreadModule : + public CComModule, + public CAtlAutoThreadModuleT, ThreadAllocator, dwWait> +{ +public: + CComAutoThreadModule( int nThreads = GetDefaultThreads()) : + CAtlAutoThreadModuleT, ThreadAllocator, dwWait>(nThreads) + { + } + HRESULT Init( + _ATL_OBJMAP_ENTRY* p, + HINSTANCE h, + const GUID* plibid = 0, + int nThreads = GetDefaultThreads()) + { + nThreads; + (void)( (!!((nThreads == GetDefaultThreads() && L"Set number of threads through the constructor"))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5267, 0, L"%ls", L"nThreads == GetDefaultThreads() && L\"Set number of threads through the constructor\"")) || (__debugbreak(), 0) ); + return CComModule::Init(p, h, plibid); + } +}; + + + + +class Win32WaitTraits +{ +public: + static DWORD WaitForSingleObject( + HANDLE hHandle, + DWORD dwTimeout) + { + return ::WaitForSingleObject(hHandle, dwTimeout); + } +}; + +typedef Win32WaitTraits DefaultWaitTraits; + + + + + +template +class CComGITPtr +{ +public: + CComGITPtr() throw() + { + m_dwCookie = 0; + } + CComGITPtr( T* p) + { + m_dwCookie = 0; + HRESULT hr = Attach(p); + + if ((((HRESULT)(hr)) < 0)) + ATL::AtlThrowImpl(hr); + } + CComGITPtr( const CComGITPtr& git) + { + m_dwCookie = 0; + + if (git.m_dwCookie != 0) + { + CComPtr spT; + + HRESULT hr = git.CopyTo(&spT); + if ((((HRESULT)(hr)) >= 0)) + hr = Attach(spT); + + if ((((HRESULT)(hr)) < 0)) + ATL::AtlThrowImpl(hr); + } + } + explicit CComGITPtr( DWORD dwCookie) throw() + { + do { (void)( (!!((dwCookie != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5326, 0, L"%ls", L"dwCookie != 0")) || (__debugbreak(), 0) ); ; } +# 5326 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5326 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + m_dwCookie = dwCookie; + + + CComPtr spT; + HRESULT hr = CopyTo(&spT); + (void)( (!!(((((HRESULT)(hr)) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5332, 0, L"%ls", L"(((HRESULT)(hr)) >= 0)")) || (__debugbreak(), 0) ); + + } + + CComGITPtr(CComGITPtr&& rv) + { + m_dwCookie = rv.m_dwCookie; + rv.m_dwCookie = 0; + } + + CComGITPtr& operator=(CComGITPtr&& rv) + { + if (this != &rv) + { + (void)( (!!(((((HRESULT)(Revoke())) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5346, 0, L"%ls", L"(((HRESULT)(Revoke())) >= 0)")) || (__debugbreak(), 0) ); + + m_dwCookie = rv.m_dwCookie; + rv.m_dwCookie = 0; + } + + return *this; + } + + ~CComGITPtr() throw() + { + Revoke(); + } + CComGITPtr& operator=( const CComGITPtr& git) + { + if (this != &git) + { + if (git.m_dwCookie == 0) + { + (void)( (!!(((((HRESULT)(Revoke())) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5365, 0, L"%ls", L"(((HRESULT)(Revoke())) >= 0)")) || (__debugbreak(), 0) ); + } + else + { + CComPtr spT; + + HRESULT hr = git.CopyTo(&spT); + if ((((HRESULT)(hr)) >= 0)) + { + hr = Attach(spT); + } + + if ((((HRESULT)(hr)) < 0)) + { + ATL::AtlThrowImpl(hr); + } + } + } + return *this; + } + CComGITPtr& operator=( T* p) + { + HRESULT hr = Attach(p); + if ((((HRESULT)(hr)) < 0)) + ATL::AtlThrowImpl(hr); + return *this; + } + CComGITPtr& operator=( DWORD dwCookie) + { + if(*this!=dwCookie) + { + HRESULT hr = Attach(dwCookie); + if ((((HRESULT)(hr)) < 0)) + { + ATL::AtlThrowImpl(hr); + } + + m_dwCookie = dwCookie; + + + CComPtr spT; + hr = CopyTo(&spT); + (void)( (!!(((((HRESULT)(hr)) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5407, 0, L"%ls", L"(((HRESULT)(hr)) >= 0)")) || (__debugbreak(), 0) ); + + } + return *this; + } + + + bool operator!=( const CComGITPtr& git) const + { + return !operator==(git); + } + + bool operator!=( DWORD dwCookie) const + { + return !operator==(dwCookie); + } + + bool operator==( const CComGITPtr& git) const + { + return m_dwCookie==git.GetCookie(); + } + + bool operator==( DWORD dwCookie) const + { + return m_dwCookie==dwCookie; + } + + + operator DWORD() const + { + return m_dwCookie; + } + + DWORD GetCookie() const + { + return m_dwCookie; + } + + HRESULT Attach( T* p) throw() + { + if (p) + { + CComPtr spGIT; + HRESULT hr = ((HRESULT)0x80004005L); + hr = AtlGetGITPtr(&spGIT); + (void)( (!!((spGIT != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5452, 0, L"%ls", L"spGIT != 0")) || (__debugbreak(), 0) ); + (void)( (!!(((((HRESULT)(hr)) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5453, 0, L"%ls", L"(((HRESULT)(hr)) >= 0)")) || (__debugbreak(), 0) ); + if ((((HRESULT)(hr)) < 0)) + return hr; + + if (m_dwCookie != 0) + hr = spGIT->RevokeInterfaceFromGlobal(m_dwCookie); + if ((((HRESULT)(hr)) < 0)) + return hr; + + return spGIT->RegisterInterfaceInGlobal(p, __uuidof(T), &m_dwCookie); + } + else + { + return Revoke(); + } + } + + HRESULT Attach( DWORD dwCookie) throw() + { + (void)( (!!((dwCookie != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5472, 0, L"%ls", L"dwCookie != 0")) || (__debugbreak(), 0) ); + HRESULT hr = Revoke(); + if ((((HRESULT)(hr)) < 0)) + return hr; + m_dwCookie = dwCookie; + return ((HRESULT)0L); + } + + + DWORD Detach() throw() + { + DWORD dwCookie = m_dwCookie; + m_dwCookie = 0; + return dwCookie; + } + + + HRESULT Revoke() throw() + { + HRESULT hr = ((HRESULT)0L); + if (m_dwCookie != 0) + { + CComPtr spGIT; + hr = AtlGetGITPtr(&spGIT); + + (void)( (!!((spGIT != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5497, 0, L"%ls", L"spGIT != 0")) || (__debugbreak(), 0) ); + (void)( (!!(((((HRESULT)(hr)) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5498, 0, L"%ls", L"(((HRESULT)(hr)) >= 0)")) || (__debugbreak(), 0) ); + if ((((HRESULT)(hr)) < 0)) + return hr; + + hr = spGIT->RevokeInterfaceFromGlobal(m_dwCookie); + if ((((HRESULT)(hr)) >= 0)) + m_dwCookie = 0; + } + return hr; + } + + + HRESULT CopyTo( T** pp) const throw() + { + CComPtr spGIT; + HRESULT hr = ((HRESULT)0x80004005L); + hr = AtlGetGITPtr(&spGIT); + + (void)( (!!((spGIT != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5516, 0, L"%ls", L"spGIT != 0")) || (__debugbreak(), 0) ); + (void)( (!!(((((HRESULT)(hr)) >= 0)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5517, 0, L"%ls", L"(((HRESULT)(hr)) >= 0)")) || (__debugbreak(), 0) ); + if ((((HRESULT)(hr)) < 0)) + return hr; + + do { (void)( (!!((m_dwCookie!=0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5521, 0, L"%ls", L"m_dwCookie!=0")) || (__debugbreak(), 0) ); ; } +# 5521 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5521 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + return spGIT->GetInterfaceFromGlobal(m_dwCookie, __uuidof(T), (void**)pp); + } + DWORD m_dwCookie; +}; + + + + + + +class CRegKey +{ +public: + + + + CRegKey( CAtlTransactionManager* pTM = 0) throw(); + CRegKey( CRegKey& key) throw(); + explicit CRegKey( HKEY hKey) throw(); + ~CRegKey() throw(); + + CRegKey& operator=( CRegKey& key) throw(); + + +public: + operator HKEY() const throw(); + HKEY m_hKey; + REGSAM m_samWOW64; + + + + CAtlTransactionManager* m_pTM; + + +public: + __declspec( deprecated("CRegKey::SetValue(DWORD, TCHAR *valueName) has been superseded by CRegKey::SetDWORDValue") ) + LSTATUS SetValue( + DWORD dwValue, + LPCTSTR lpszValueName); + + __declspec( deprecated("CRegKey::SetValue(TCHAR *value, TCHAR *valueName) has been superseded by CRegKey::SetStringValue and CRegKey::SetMultiStringValue") ) + LSTATUS SetValue( + LPCTSTR lpszValue, + LPCTSTR lpszValueName = 0, + bool bMulti = false, + int nValueLen = -1); + LSTATUS SetValue( + LPCTSTR pszValueName, + DWORD dwType, + const void* pValue, + ULONG nBytes) throw(); + LSTATUS SetGUIDValue( + LPCTSTR pszValueName, + const GUID & guidValue) throw(); + LSTATUS SetBinaryValue( + LPCTSTR pszValueName, + const void* pValue, + ULONG nBytes) throw(); + LSTATUS SetDWORDValue( + LPCTSTR pszValueName, + DWORD dwValue) throw(); + LSTATUS SetQWORDValue( + LPCTSTR pszValueName, + ULONGLONG qwValue) throw(); + LSTATUS SetStringValue( + LPCTSTR pszValueName, + LPCTSTR pszValue, + DWORD dwType = ( 1ul )) throw(); + LSTATUS SetMultiStringValue( + LPCTSTR pszValueName, + LPCTSTR pszValue) throw(); + + __declspec( deprecated("CRegKey::QueryValue(DWORD, TCHAR *valueName) has been superseded by CRegKey::QueryDWORDValue") ) + LSTATUS QueryValue( + DWORD& dwValue, + LPCTSTR lpszValueName); + + __declspec( deprecated("CRegKey::QueryValue(TCHAR *value, TCHAR *valueName) has been superseded by CRegKey::QueryStringValue and CRegKey::QueryMultiStringValue") ) + LSTATUS QueryValue( + LPTSTR szValue, + LPCTSTR lpszValueName, + DWORD* pdwCount); + LSTATUS QueryValue( + LPCTSTR pszValueName, + DWORD* pdwType, + void* pData, + ULONG* pnBytes) throw(); + LSTATUS QueryGUIDValue( + LPCTSTR pszValueName, + GUID& guidValue) throw(); + LSTATUS QueryBinaryValue( + LPCTSTR pszValueName, + void* pValue, + ULONG* pnBytes) throw(); + LSTATUS QueryDWORDValue( + LPCTSTR pszValueName, + DWORD& dwValue) throw(); + LSTATUS QueryQWORDValue( + LPCTSTR pszValueName, + ULONGLONG& qwValue) throw(); + LSTATUS QueryStringValue( + LPCTSTR pszValueName, + LPTSTR pszValue, + ULONG* pnChars) throw(); + LSTATUS QueryMultiStringValue( + LPCTSTR pszValueName, + LPTSTR pszValue, + ULONG* pnChars) throw(); + + + LSTATUS GetKeySecurity( + SECURITY_INFORMATION si, + PSECURITY_DESCRIPTOR psd, + LPDWORD pnBytes) throw(); + + LSTATUS SetKeySecurity( + SECURITY_INFORMATION si, + PSECURITY_DESCRIPTOR psd) throw(); + + LSTATUS SetKeyValue( + LPCTSTR lpszKeyName, + LPCTSTR lpszValue, + LPCTSTR lpszValueName = 0) throw(); + static LSTATUS __stdcall SetValue( + HKEY hKeyParent, + LPCTSTR lpszKeyName, + LPCTSTR lpszValue, + LPCTSTR lpszValueName = 0); + + + LSTATUS Create( + HKEY hKeyParent, + LPCTSTR lpszKeyName, + LPTSTR lpszClass = ( 0ul ), + DWORD dwOptions = (0x00000000L), + REGSAM samDesired = ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L))) | ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L))), + LPSECURITY_ATTRIBUTES lpSecAttr = 0, + LPDWORD lpdwDisposition = 0) throw(); + + LSTATUS Open( + HKEY hKeyParent, + LPCTSTR lpszKeyName, + REGSAM samDesired = ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L))) | ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L)))) throw(); + + LSTATUS Close() throw(); + + LSTATUS Flush() throw(); + + + HKEY Detach() throw(); + + void Attach( HKEY hKey) throw(); + + + LSTATUS EnumKey( + DWORD iIndex, + LPTSTR pszName, + LPDWORD pnNameLength, + FILETIME* pftLastWriteTime = 0) throw(); + LSTATUS NotifyChangeKeyValue( + BOOL bWatchSubtree, + DWORD dwNotifyFilter, + HANDLE hEvent, + BOOL bAsync = 1) throw(); + + LSTATUS DeleteSubKey( LPCTSTR lpszSubKey) throw(); + LSTATUS RecurseDeleteKey( LPCTSTR lpszKey) throw(); + LSTATUS DeleteValue( LPCTSTR lpszValue) throw(); +}; + +inline CRegKey::CRegKey( CAtlTransactionManager* pTM) throw() : + m_hKey( 0 ), m_samWOW64(0), m_pTM(pTM) +{ +} + +inline CRegKey::CRegKey( CRegKey& key) throw() : + m_hKey( 0 ) +{ + REGSAM samWOW64 = key.m_samWOW64; + CAtlTransactionManager* pTM = key.m_pTM; + Attach( key.Detach() ); + m_samWOW64 = samWOW64; + m_pTM = pTM; +} + +inline CRegKey::CRegKey( HKEY hKey) throw() : + m_hKey(hKey), m_samWOW64(0), m_pTM(0) +{ +} + +inline CRegKey::~CRegKey() throw() +{Close();} + +inline CRegKey& CRegKey::operator=( CRegKey& key) throw() +{ + if(m_hKey!=key.m_hKey) + { + Close(); + REGSAM samWOW64 = key.m_samWOW64; + CAtlTransactionManager* pTM = key.m_pTM; + Attach( key.Detach() ); + m_samWOW64 = samWOW64; + m_pTM = pTM; + } + return( *this ); +} + +inline CRegKey::operator HKEY() const throw() +{ + return m_hKey; +} + +inline HKEY CRegKey::Detach() throw() +{ + HKEY hKey = m_hKey; + m_hKey = 0; + m_samWOW64 = 0; + m_pTM = 0; + return hKey; +} + +inline void CRegKey::Attach( HKEY hKey) throw() +{ + do { (void)( (!!((m_hKey == 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5745, 0, L"%ls", L"m_hKey == 0")) || (__debugbreak(), 0) ); ; } +# 5745 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5745 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + m_hKey = hKey; + m_samWOW64 = 0; + m_pTM = 0; +} + +inline LSTATUS CRegKey::DeleteSubKey( LPCTSTR lpszSubKey) throw() +{ + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5753, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 5753 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5753 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + + if (m_pTM != 0) + { + return m_pTM->RegDeleteKeyW(m_hKey, lpszSubKey); + } + + + + static decltype(RegDeleteKeyExW) *pfnRegDeleteKeyEx = 0; + + + + static bool bInitialized = false; + + if (!bInitialized) + { + HMODULE hAdvapi32 = GetModuleHandleW(L"Advapi32.dll"); + if (hAdvapi32 != 0) + { + + pfnRegDeleteKeyEx = (decltype(RegDeleteKeyExW) *)GetProcAddress(hAdvapi32, "RegDeleteKeyExW"); + + + + } + bInitialized = true; + } + + if (pfnRegDeleteKeyEx != 0) + { + return pfnRegDeleteKeyEx(m_hKey, lpszSubKey, m_samWOW64, 0); + } + + + + return RegDeleteKeyW(m_hKey, lpszSubKey); +} + +inline LSTATUS CRegKey::DeleteValue( LPCTSTR lpszValue) throw() +{ + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5794, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 5794 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5794 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + return RegDeleteValueW(m_hKey, (LPTSTR)lpszValue); +} + +inline LSTATUS CRegKey::Close() throw() +{ + LONG lRes = 0L; + if (m_hKey != 0) + { + lRes = RegCloseKey(m_hKey); + m_hKey = 0; + } + m_samWOW64 = 0; + return lRes; +} + +inline LSTATUS CRegKey::Flush() throw() +{ + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5812, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 5812 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5812 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + + return ::RegFlushKey(m_hKey); +} + +inline LSTATUS CRegKey::EnumKey( + DWORD iIndex, + LPTSTR pszName, + LPDWORD pnNameLength, + FILETIME* pftLastWriteTime) throw() +{ + FILETIME ftLastWriteTime; + + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5825, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 5825 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5825 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + if (pftLastWriteTime == 0) + { + pftLastWriteTime = &ftLastWriteTime; + } + + return ::RegEnumKeyExW(m_hKey, iIndex, pszName, pnNameLength, 0, 0, 0, pftLastWriteTime); +} + +inline LSTATUS CRegKey::NotifyChangeKeyValue( + BOOL bWatchSubtree, + DWORD dwNotifyFilter, + HANDLE hEvent, + BOOL bAsync) throw() +{ + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5840, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 5840 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5840 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + (void)( (!!(((hEvent != 0) || !bAsync))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5841, 0, L"%ls", L"(hEvent != 0) || !bAsync")) || (__debugbreak(), 0) ); + + return ::RegNotifyChangeKeyValue(m_hKey, bWatchSubtree, dwNotifyFilter, hEvent, bAsync); +} + +inline LSTATUS CRegKey::Create( + HKEY hKeyParent, + LPCTSTR lpszKeyName, + LPTSTR lpszClass, + DWORD dwOptions, + REGSAM samDesired, + LPSECURITY_ATTRIBUTES lpSecAttr, + LPDWORD lpdwDisposition) throw() +{ + (void)( (!!((hKeyParent != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5855, 0, L"%ls", L"hKeyParent != 0")) || (__debugbreak(), 0) ); + DWORD dw; + HKEY hKey = 0; + LONG lRes = m_pTM != 0 ? + m_pTM->RegCreateKeyExW(hKeyParent, lpszKeyName, 0, lpszClass, dwOptions, samDesired, lpSecAttr, &hKey, &dw) : + RegCreateKeyExW(hKeyParent, lpszKeyName, 0, lpszClass, dwOptions, samDesired, lpSecAttr, &hKey, &dw); + if (lRes == 0L) + { + if (lpdwDisposition != 0) + *lpdwDisposition = dw; + + lRes = Close(); + m_hKey = hKey; + + m_samWOW64 = samDesired & ((0x0200) | (0x0100)); + + } + return lRes; +} + +inline LSTATUS CRegKey::Open( + HKEY hKeyParent, + LPCTSTR lpszKeyName, + REGSAM samDesired) throw() +{ + do { (void)( (!!((hKeyParent != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5880, 0, L"%ls", L"hKeyParent != 0")) || (__debugbreak(), 0) ); ; } +# 5880 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5880 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + HKEY hKey = 0; + LONG lRes = m_pTM != 0 ? + m_pTM->RegOpenKeyExW(hKeyParent, lpszKeyName, 0, samDesired, &hKey) : + RegOpenKeyExW(hKeyParent, lpszKeyName, 0, samDesired, &hKey); + if (lRes == 0L) + { + lRes = Close(); + (void)( (!!((lRes == 0L))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5888, 0, L"%ls", L"lRes == 0L")) || (__debugbreak(), 0) ); + m_hKey = hKey; + + m_samWOW64 = samDesired & ((0x0200) | (0x0100)); + + } + return lRes; +} + +#pragma warning(push) +#pragma warning(disable: 4996) +inline LSTATUS CRegKey::QueryValue( + DWORD& dwValue, + LPCTSTR lpszValueName) +{ + DWORD dwType = 0; + DWORD dwCount = sizeof(DWORD); + LONG lRes = RegQueryValueExW(m_hKey, lpszValueName, 0, &dwType, + (LPBYTE)&dwValue, &dwCount); + ; + (void)( (!!(((lRes!=0L) || (dwType == ( 4ul ))))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5908, 0, L"%ls", L"(lRes!=0L) || (dwType == ( 4ul ))")) || (__debugbreak(), 0) ); + (void)( (!!(((lRes!=0L) || (dwCount == sizeof(DWORD))))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5909, 0, L"%ls", L"(lRes!=0L) || (dwCount == sizeof(DWORD))")) || (__debugbreak(), 0) ); + if (lRes == 0L && dwType != ( 4ul )) + return 13L; + return lRes; +} + +#pragma warning(push) +# 5915 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(disable: 6053 6103 6385 6386) +inline LSTATUS CRegKey::QueryValue( + LPTSTR pszValue, + LPCTSTR lpszValueName, + DWORD* pdwCount) +{ + do { int __atl_condVal=!!(pdwCount != 0); do { (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5921, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); ; } +# 5921 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5921 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); if(!(__atl_condVal)) ATL::AtlThrowImpl(((HRESULT)0x80004005L)); } +# 5921 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5921 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + DWORD dwType = 0; + LONG lRes = RegQueryValueExW(m_hKey, lpszValueName, 0, &dwType, (LPBYTE)pszValue, pdwCount); + (void)( (!!(((lRes!=0L) || (dwType == ( 1ul )) || (dwType == ( 7ul )) || (dwType == ( 2ul ))))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5925, 0, L"%ls", L"(lRes!=0L) || (dwType == ( 1ul )) || (dwType == ( 7ul )) || (dwType == ( 2ul ))")) || (__debugbreak(), 0) ); + + if (lRes == 0L && pszValue != 0) + { + if(*pdwCount>0) + { + switch(dwType) + { + case ( 1ul ): + case ( 2ul ): + if ((*pdwCount) % sizeof(TCHAR) != 0 || pszValue[(*pdwCount) / sizeof(TCHAR) - 1] != 0) + { + pszValue[0]=L'\0'; + return 13L; + } + break; + case ( 7ul ): + if ((*pdwCount) % sizeof(TCHAR) != 0 || (*pdwCount) / sizeof(TCHAR) < 1 || pszValue[(*pdwCount) / sizeof(TCHAR) -1] != 0 || (((*pdwCount) / sizeof(TCHAR))>1 && pszValue[(*pdwCount) / sizeof(TCHAR) - 2] != 0) ) + { + pszValue[0]=L'\0'; + return 13L; + } + break; + default: + + pszValue[0]=L'\0'; + return 13L; + } + } + else + { + + + pszValue[0]=L'\0'; + } + } + return lRes; +} +#pragma warning(pop) +#pragma warning(pop) + +inline LSTATUS CRegKey::QueryValue( + LPCTSTR pszValueName, + DWORD* pdwType, + void* pData, + ULONG* pnBytes) throw() +{ + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5971, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 5971 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5971 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + + return( ::RegQueryValueExW(m_hKey, pszValueName, 0, pdwType, static_cast< LPBYTE >( pData ), pnBytes) ); +} + +inline LSTATUS CRegKey::QueryDWORDValue( + LPCTSTR pszValueName, + DWORD& dwValue) throw() +{ + LONG lRes; + ULONG nBytes; + DWORD dwType; + + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 5984, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 5984 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 5984 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + + nBytes = sizeof(DWORD); + lRes = ::RegQueryValueExW(m_hKey, pszValueName, 0, &dwType, reinterpret_cast(&dwValue), + &nBytes); + if (lRes != 0L) + return lRes; + if (dwType != ( 4ul )) + return 13L; + + return 0L; +} +inline LSTATUS CRegKey::QueryQWORDValue( + LPCTSTR pszValueName, + ULONGLONG& qwValue) throw() +{ + LONG lRes; + ULONG nBytes; + DWORD dwType; + + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6004, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 6004 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6004 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + + nBytes = sizeof(ULONGLONG); + lRes = ::RegQueryValueExW(m_hKey, pszValueName, 0, &dwType, reinterpret_cast(&qwValue), + &nBytes); + if (lRes != 0L) + return lRes; + if (dwType != ( 11ul )) + return 13L; + + return 0L; +} + +inline LONG CRegKey::QueryBinaryValue( + LPCTSTR pszValueName, + void* pValue, + ULONG* pnBytes) throw() +{ + LONG lRes; + DWORD dwType; + + (void)( (!!((pnBytes != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6025, 0, L"%ls", L"pnBytes != 0")) || (__debugbreak(), 0) ); + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6026, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 6026 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6026 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + + lRes = ::RegQueryValueExW(m_hKey, pszValueName, 0, &dwType, reinterpret_cast(pValue), + pnBytes); + if (lRes != 0L) + return lRes; + if (dwType != ( 3ul )) + return 13L; + + return 0L; +} + +#pragma warning(push) +# 6038 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(disable: 6053) + +inline LSTATUS CRegKey::QueryStringValue( + LPCTSTR pszValueName, + LPTSTR pszValue, + ULONG* pnChars) throw() +{ + LONG lRes; + DWORD dwType; + ULONG nBytes; + + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6049, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 6049 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6049 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + (void)( (!!((pnChars != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6050, 0, L"%ls", L"pnChars != 0")) || (__debugbreak(), 0) ); + + nBytes = (*pnChars)*sizeof(TCHAR); + *pnChars = 0; + lRes = ::RegQueryValueExW(m_hKey, pszValueName, 0, &dwType, reinterpret_cast(pszValue), + &nBytes); + + if (lRes != 0L) + { + return lRes; + } + + if(dwType != ( 1ul ) && dwType != ( 2ul )) + { + return 13L; + } + + if (pszValue != 0) + { + if(nBytes!=0) + { +#pragma warning(push) +# 6071 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(disable: 6385) + if ((nBytes % sizeof(TCHAR) != 0) || (pszValue[nBytes / sizeof(TCHAR) -1] != 0)) + { + return 13L; + } +#pragma warning(pop) + } + else + { + pszValue[0]=L'\0'; + } + } + + *pnChars = nBytes/sizeof(TCHAR); + + return 0L; +} +#pragma warning(pop) + +#pragma warning(push) +# 6090 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(disable: 6053 6054 6386) + +inline LSTATUS CRegKey::QueryMultiStringValue( + LPCTSTR pszValueName, + LPTSTR pszValue, + ULONG* pnChars) throw() +{ + LONG lRes; + DWORD dwType; + ULONG nBytes; + + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6101, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 6101 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6101 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + (void)( (!!((pnChars != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6102, 0, L"%ls", L"pnChars != 0")) || (__debugbreak(), 0) ); + + if (pszValue != 0 && *pnChars < 2) + return 122L; + + nBytes = (*pnChars)*sizeof(TCHAR); + *pnChars = 0; + + lRes = ::RegQueryValueExW(m_hKey, pszValueName, 0, &dwType, reinterpret_cast(pszValue), + &nBytes); + if (lRes != 0L) + return lRes; + if (dwType != ( 7ul )) + return 13L; + if (pszValue != 0 && (nBytes % sizeof(TCHAR) != 0 || nBytes / sizeof(TCHAR) < 1 || pszValue[nBytes / sizeof(TCHAR) -1] != 0 || ((nBytes/sizeof(TCHAR))>1 && pszValue[nBytes / sizeof(TCHAR) - 2] != 0))) + return 13L; + + *pnChars = nBytes/sizeof(TCHAR); + + return 0L; +} +#pragma warning(pop) + +inline LSTATUS CRegKey::QueryGUIDValue( + LPCTSTR pszValueName, + GUID& guidValue) throw() +{ + TCHAR szGUID[64]; + LONG lRes; + ULONG nCount; + HRESULT hr; + + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6134, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 6134 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6134 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + + guidValue = GUID_NULL; + + nCount = 64; + lRes = QueryStringValue(pszValueName, szGUID, &nCount); + + if (lRes != 0L) + return lRes; + + if(szGUID[0] != L'{') + return 13L; + + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + LPOLESTR lpstr = T2OLE_EX(szGUID, 1024); + + + + + + hr = ::CLSIDFromString(lpstr, &guidValue); + if ((((HRESULT)(hr)) < 0)) + return 13L; + + return 0L; +} + +inline LSTATUS __stdcall CRegKey::SetValue( + HKEY hKeyParent, + LPCTSTR lpszKeyName, + LPCTSTR lpszValue, + LPCTSTR lpszValueName) +{ + (void)( (!!((lpszValue != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6167, 0, L"%ls", L"lpszValue != 0")) || (__debugbreak(), 0) ); + CRegKey key; + LONG lRes = key.Create(hKeyParent, lpszKeyName); + if (lRes == 0L) + lRes = key.SetStringValue(lpszValueName, lpszValue); + return lRes; +} + +inline LSTATUS CRegKey::SetKeyValue( + LPCTSTR lpszKeyName, + LPCTSTR lpszValue, + LPCTSTR lpszValueName) throw() +{ + (void)( (!!((lpszValue != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6180, 0, L"%ls", L"lpszValue != 0")) || (__debugbreak(), 0) ); + CRegKey key; + LONG lRes = key.Create(m_hKey, lpszKeyName, ( 0ul ), (0x00000000L), ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L))) | ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L))) | m_samWOW64); + if (lRes == 0L) + lRes = key.SetStringValue(lpszValueName, lpszValue); + return lRes; +} + +#pragma warning(push) +#pragma warning(disable: 4996) +inline LSTATUS CRegKey::SetValue( + DWORD dwValue, + LPCTSTR pszValueName) +{ + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6194, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 6194 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6194 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + return SetDWORDValue(pszValueName, dwValue); +} + +inline LSTATUS CRegKey::SetValue( + LPCTSTR lpszValue, + LPCTSTR lpszValueName, + bool bMulti, + int nValueLen) +{ + do { int __atl_condVal=!!(lpszValue != 0); do { (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6204, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); ; } +# 6204 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6204 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); if(!(__atl_condVal)) ATL::AtlThrowImpl(((HRESULT)0x80004005L)); } +# 6204 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6204 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6205, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 6205 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6205 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + + if (bMulti && nValueLen == -1) + return 87L; + + if (nValueLen == -1) + nValueLen = static_cast(wcslen(lpszValue) + 1); + + DWORD dwType = bMulti ? ( 7ul ) : ( 1ul ); + + return ::RegSetValueExW(m_hKey, lpszValueName, 0, dwType, + reinterpret_cast(lpszValue), nValueLen*sizeof(TCHAR)); +} +#pragma warning(pop) + +inline LSTATUS CRegKey::SetValue( + LPCTSTR pszValueName, + DWORD dwType, + const void* pValue, + ULONG nBytes) throw() +{ + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6226, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 6226 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6226 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + return ::RegSetValueExW(m_hKey, pszValueName, 0, dwType, static_cast(pValue), nBytes); +} + +inline LSTATUS CRegKey::SetBinaryValue( + LPCTSTR pszValueName, + const void* pData, + ULONG nBytes) throw() +{ + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6235, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 6235 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6235 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + return ::RegSetValueExW(m_hKey, pszValueName, 0, ( 3ul ), reinterpret_cast(pData), nBytes); +} + +inline LSTATUS CRegKey::SetDWORDValue( + LPCTSTR pszValueName, + DWORD dwValue) throw() +{ + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6243, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 6243 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6243 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + return ::RegSetValueExW(m_hKey, pszValueName, 0, ( 4ul ), reinterpret_cast(&dwValue), sizeof(DWORD)); +} + +inline LSTATUS CRegKey::SetQWORDValue( + LPCTSTR pszValueName, + ULONGLONG qwValue) throw() +{ + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6251, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 6251 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6251 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + return ::RegSetValueExW(m_hKey, pszValueName, 0, ( 11ul ), reinterpret_cast(&qwValue), sizeof(ULONGLONG)); +} + +inline LSTATUS CRegKey::SetStringValue( + LPCTSTR pszValueName, + LPCTSTR pszValue, + DWORD dwType) throw() +{ + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6260, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 6260 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6260 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + do { int __atl_condVal=!!(pszValue != 0); (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6261, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); if(!(__atl_condVal)) return 13L; } +# 6261 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6261 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + (void)( (!!(((dwType == ( 1ul )) || (dwType == ( 2ul ))))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6262, 0, L"%ls", L"(dwType == ( 1ul )) || (dwType == ( 2ul ))")) || (__debugbreak(), 0) ); + + return ::RegSetValueExW(m_hKey, pszValueName, 0, dwType, reinterpret_cast(pszValue), (static_cast(wcslen(pszValue))+1)*sizeof(TCHAR)); +} + +inline LSTATUS CRegKey::SetMultiStringValue( + LPCTSTR pszValueName, + LPCTSTR pszValue) throw() +{ + LPCTSTR pszTemp; + ULONG nBytes; + ULONG nLength; + + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6275, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 6275 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6275 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + do { int __atl_condVal=!!(pszValue != 0); (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6276, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); if(!(__atl_condVal)) return 13L; } +# 6276 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6276 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + + + + + nBytes = 0; + pszTemp = pszValue; + do + { + nLength = static_cast(wcslen(pszTemp))+1; + pszTemp += nLength; + nBytes += nLength*sizeof(TCHAR); + } while (nLength != 1); + + return ::RegSetValueExW(m_hKey, pszValueName, 0, ( 7ul ), reinterpret_cast(pszValue), + nBytes); +} + +inline LSTATUS CRegKey::SetGUIDValue( + LPCTSTR pszValueName, + const GUID & guidValue) throw() +{ + OLECHAR szGUID[64]; + + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6300, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 6300 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6300 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + + do { int __atl_condVal=!!(::StringFromGUID2(guidValue, szGUID, 64)); (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6302, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); if(!(__atl_condVal)) return ((HRESULT)0x80070057L); } +# 6302 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6302 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + LPCTSTR lpstr = OLE2CT_EX(szGUID, 1024); + + + + + return SetStringValue(pszValueName, lpstr); +} + +inline LSTATUS CRegKey::GetKeySecurity( + SECURITY_INFORMATION si, + PSECURITY_DESCRIPTOR psd, + LPDWORD pnBytes) throw() +{ + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6318, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 6318 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6318 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + do { (void)( (!!((pnBytes != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6319, 0, L"%ls", L"pnBytes != 0")) || (__debugbreak(), 0) ); ; } +# 6319 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6319 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + + return ::RegGetKeySecurity(m_hKey, si, psd, pnBytes); +} + +inline LSTATUS CRegKey::SetKeySecurity( + SECURITY_INFORMATION si, + PSECURITY_DESCRIPTOR psd) throw() +{ + do { (void)( (!!((m_hKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6328, 0, L"%ls", L"m_hKey != 0")) || (__debugbreak(), 0) ); ; } +# 6328 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6328 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + do { (void)( (!!((psd != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6329, 0, L"%ls", L"psd != 0")) || (__debugbreak(), 0) ); ; } +# 6329 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6329 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + + return ::RegSetKeySecurity(m_hKey, si, psd); +} + +inline LSTATUS CRegKey::RecurseDeleteKey( LPCTSTR lpszKey) throw() +{ + CRegKey key; + LONG lRes = key.Open(m_hKey, lpszKey, ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L))) | ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L))) | m_samWOW64); + if (lRes != 0L) + { + if (lRes != 2L && lRes != 3L) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6342)(atlTraceCOM, 0, L"CRegKey::RecurseDeleteKey : Failed to Open Key %Ts(Error = %d)\n", lpszKey, lRes); + } + return lRes; + } + FILETIME time; + DWORD dwSize = 256; + TCHAR szBuffer[256]; + while (RegEnumKeyExW(key.m_hKey, 0, szBuffer, &dwSize, 0, 0, 0, + &time)==0L) + { + lRes = key.RecurseDeleteKey(szBuffer); + if (lRes != 0L) + return lRes; + dwSize = 256; + } + key.Close(); + return DeleteSubKey(lpszKey); +} + + + +inline HRESULT CComModule::RegisterProgIDHelper( + LPCTSTR lpszCLSID, + LPCTSTR lpszProgID, + LPCTSTR lpszCurVerProgID, + LPCTSTR lpszUserDesc, + BOOL bIsVerIndProgID) +{ + CRegKey keyProgID; + LONG lRes = keyProgID.Create((( HKEY ) (ULONG_PTR)((LONG)0x80000000) ), lpszProgID, ( 0ul ), (0x00000000L), (0x0002)); + if (lRes == 0L) + { + lRes = keyProgID.SetStringValue(0, lpszUserDesc); + if (lRes == 0L) + { + lRes = keyProgID.SetKeyValue(L"CLSID", lpszCLSID); + if (lRes == 0L) + { + lRes = bIsVerIndProgID ? keyProgID.SetKeyValue(L"CurVer", lpszCurVerProgID) : 0L; + if (lRes == 0L) + return ((HRESULT)0L); + } + } + } + return AtlHresultFromWin32(lRes); +} + +inline HRESULT CComModule::RegisterProgID( + LPCTSTR lpszCLSID, + LPCTSTR lpszProgID, + LPCTSTR lpszUserDesc) +{ + return RegisterProgIDHelper(lpszCLSID, lpszProgID, 0, lpszUserDesc, 0); +} + +inline HRESULT CComModule::RegisterVersionIndependentProgID( + LPCTSTR lpszCLSID, + LPCTSTR lpszVerIndProgID, + LPCTSTR lpszCurVerProgID, + LPCTSTR lpszUserDesc) +{ + return RegisterProgIDHelper(lpszCLSID, lpszVerIndProgID, lpszCurVerProgID, lpszUserDesc, 1); +} + +inline HRESULT CComModule::RegisterAppId( LPCTSTR pAppId) +{ + CRegKey keyAppID; + HRESULT hr = ((HRESULT)0L); + LONG lRet; + + if ( (lRet = keyAppID.Open((( HKEY ) (ULONG_PTR)((LONG)0x80000000) ), L"AppID", ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L))))) == 0L) + { + TCHAR szModule1[260]; + TCHAR szModule2[260]; + TCHAR* pszFileName; + + DWORD dwFLen = ::GetModuleFileNameW(GetModuleInstance(), szModule1, 260); + if ( dwFLen != 0 && dwFLen != 260 ) + { + DWORD dwRet = ::GetFullPathNameW(szModule1, 260, szModule2, &pszFileName); + if (dwRet != 0 && dwRet < 260) + { + CRegKey keyAppIDEXE; + if ( (lRet = keyAppIDEXE.Create(keyAppID, pszFileName, ( 0ul ), (0x00000000L), ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L))) | ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L))))) == 0L) + { + lRet = keyAppIDEXE.SetStringValue(L"AppID", pAppId); + if (lRet != 0L) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6430)(atlTraceCOM, 0, L"CComModule::RegisterAppId : Failed to set app id string value\n"); + hr = AtlHresultFromWin32(lRet); + return hr; + } + } + else + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6437)(atlTraceCOM, 0, L"CComModule::RegisterAppId : Failed to create file name key\n"); + hr = AtlHresultFromWin32(lRet); + return hr; + } + if ( (lRet = keyAppIDEXE.Create(keyAppID, pAppId, ( 0ul ), (0x00000000L), ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L))) | ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L))))) == 0L) + { + lRet = keyAppIDEXE.SetStringValue(0, pszFileName); + if (lRet != 0L) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6446)(atlTraceCOM, 0, L"CComModule::RegisterAppId : Failed to set file name string value\n"); + hr = AtlHresultFromWin32(lRet); + return hr; + } + } + else + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6453)(atlTraceCOM, 0, L"CComModule::RegisterAppId : Failed to create app id key\n"); + hr = AtlHresultFromWin32(lRet); + return hr; + } + } + else + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6460)(atlTraceCOM, 0, L"CComModule::RegisterAppId : Failed to get full path name for file %Ts\n", szModule1); + hr = AtlHresultFromLastError(); + } + } + else + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6466)(atlTraceCOM, 0, L"CComModule::RegisterAppId : Failed to get module name\n"); + if( dwFLen == 0 ) + hr = AtlHresultFromLastError(); + else if( dwFLen == 260 ) + hr = HRESULT_FROM_WIN32(122L); + } + } + else + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6475)(atlTraceCOM, 0, L"CComModule::RegisterAppId : Failed to open registry key\n"); + hr = AtlHresultFromWin32(lRet); + } + return hr; +} + +inline HRESULT CComModule::UnregisterAppId( LPCTSTR pAppId) +{ + CRegKey keyAppID; + HRESULT hr = ((HRESULT)0L); + LONG lRet = keyAppID.Open((( HKEY ) (ULONG_PTR)((LONG)0x80000000) ), L"AppID", ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L))) | ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L)))); + + if (lRet == 0L) + { + TCHAR szModule1[260]; + TCHAR szModule2[260]; + TCHAR* pszFileName; + + DWORD dwFLen = ::GetModuleFileNameW(GetModuleInstance(), szModule1, 260); + if ( dwFLen != 0 && dwFLen != 260 ) + { + DWORD dwRet = ::GetFullPathNameW(szModule1, 260, szModule2, &pszFileName); + if (dwRet != 0 && dwRet < 260) + { + if ((lRet = keyAppID.RecurseDeleteKey(pAppId)) != 0L) + { + if (lRet != 2L) + hr = AtlHresultFromWin32(lRet); + } + if ((lRet = keyAppID.RecurseDeleteKey(pszFileName)) != 0L) + { + if (lRet != 2L) + hr = AtlHresultFromWin32(lRet); + } + } + else + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6512)(atlTraceCOM, 0, L"CComModule::UnregisterAppId : Failed to get full path name for file %Ts\n", szModule1); + hr = AtlHresultFromLastError(); + } + } + else + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6518)(atlTraceCOM, 0, L"CComModule::UnregisterAppId : Failed to get module name\n"); + if( dwFLen == 0 ) + hr = AtlHresultFromLastError(); + else if( dwFLen == 260 ) + hr = HRESULT_FROM_WIN32(122L); + } + } + else + { + if (lRet != 2L && lRet != 3L) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6529)(atlTraceCOM, 0, L"CComModule::UnregisterAppId : Failed to open registry key\n"); + hr = AtlHresultFromWin32(lRet); + } + } + return hr; +} + + +} + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" 1 +# 31 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma warning(push) +#pragma warning(disable: 4571) +# 58 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma pack(push,8) +namespace ATL +{ +extern __declspec(selectany) const TCHAR chDirSep = L'\\'; +extern __declspec(selectany) const TCHAR chRightBracket = L'}'; +extern __declspec(selectany) const TCHAR chLeftBracket = L'{'; +extern __declspec(selectany) const TCHAR chQuote = L'\''; +extern __declspec(selectany) const TCHAR chEquals = L'='; +extern __declspec(selectany) const LPCTSTR szStringVal = L"S"; +extern __declspec(selectany) const LPCTSTR multiszStringVal = L"M"; +extern __declspec(selectany) const LPCTSTR szDwordVal = L"D"; +extern __declspec(selectany) const LPCTSTR szBinaryVal = L"B"; +extern __declspec(selectany) const LPCTSTR szValToken = L"Val"; +extern __declspec(selectany) const LPCTSTR szForceRemove = L"ForceRemove"; +extern __declspec(selectany) const LPCTSTR szNoRemove = L"NoRemove"; +extern __declspec(selectany) const LPCTSTR szDelete = L"Delete"; + + +class CExpansionVectorEqualHelper +{ +public: + static bool IsEqualKey( + const LPTSTR k1, + const LPTSTR k2) + { + if (lstrcmpiW(k1, k2) == 0) + return true; + return false; + } + + + static bool IsEqualValue( + const LPCOLESTR , + const LPCOLESTR ) + { + return false; + } +}; + + +class CExpansionVector : + public CSimpleMap +{ +public: + ~CExpansionVector() + { + ClearReplacements(); + } + +#pragma warning(push) +# 107 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma warning(disable: 6001 6014 6211) + BOOL Add( + LPCTSTR lpszKey, + LPCOLESTR lpszValue) + { + (void)( (!!((lpszKey != 0 && lpszValue != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 112, 0, L"%ls", L"lpszKey != 0 && lpszValue != 0")) || (__debugbreak(), 0) ); + if (lpszKey == 0 || lpszValue == 0) + return 0; + + HRESULT hRes = ((HRESULT)0L); + + size_t cbKey = (wcslen(lpszKey)+1)*sizeof(TCHAR); + TCHAR* szKey = 0; + + szKey = new(std::nothrow) TCHAR[cbKey]; + CAutoVectorPtr spKey; + do { (void)( (!!((szKey != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 123, 0, L"%ls", L"szKey != 0")) || (__debugbreak(), 0) ); ; } +# 123 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma warning(suppress: 4127) +# 123 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" + while (0); + spKey.Attach(szKey); + + size_t cbValue = (ocslen(lpszValue)+1)*sizeof(OLECHAR); + LPOLESTR szValue = 0; + szValue = new(std::nothrow) OLECHAR[cbValue]; + CAutoVectorPtr spValue; + do { (void)( (!!((szValue != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 130, 0, L"%ls", L"szValue != 0")) || (__debugbreak(), 0) ); ; } +# 130 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma warning(suppress: 4127) +# 130 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" + while (0); + spValue.Attach(szValue); + + if (szKey == 0 || szValue == 0) + hRes = ((HRESULT)0x8007000EL); + else + { + Checked::memcpy_s(szKey, cbKey, lpszKey, cbKey); + Checked::memcpy_s(szValue, cbValue, lpszValue, cbValue); + if (!CSimpleMap::Add(szKey, szValue)) + hRes = ((HRESULT)0x8007000EL); + } + if ((((HRESULT)(hRes)) >= 0)) + { + spKey.Detach(); + spValue.Detach(); + } + return (((HRESULT)(hRes)) >= 0); + } +#pragma warning(pop) + + HRESULT ClearReplacements() + { + for (int i = 0; i < GetSize(); i++) + { + delete []GetKeyAt(i); + delete []GetValueAt(i); + } + RemoveAll(); + return ((HRESULT)0L); + } +}; + +class CRegObject; + +class CRegParser +{ +public: + CRegParser( CRegObject* pRegObj); + + HRESULT PreProcessBuffer( + LPTSTR lpszReg, + LPTSTR* ppszReg); + + HRESULT RegisterBuffer( + LPTSTR szReg, + BOOL bRegister); + +protected: + + static const int MAX_VALUE = 4096; + void SkipWhiteSpace(); + HRESULT NextToken( LPTSTR szToken); + HRESULT AddValue( + CRegKey& rkParent, + LPCTSTR szValueName, + LPTSTR szToken); + BOOL CanForceRemoveKey( LPCTSTR szKey); + BOOL HasSubKeys( HKEY hkey); + BOOL HasValues( HKEY hkey); + HRESULT RegisterSubkeys( + LPTSTR szToken, + HKEY hkParent, + BOOL bRegister, + BOOL bInRecovery = 0); + BOOL IsSpace( TCHAR ch); + LPTSTR m_pchCur; + + CRegObject* m_pRegObj; + + + HRESULT GenerateError( UINT) + { + return ((HRESULT)0x80020009L); + } + + HRESULT SkipAssignment( LPTSTR szToken); + + BOOL EndOfVar() + { + return chQuote == *m_pchCur && chQuote != *CharNextW(m_pchCur); + } + static LPTSTR StrChrW( LPTSTR lpsz, TCHAR ch); + static HKEY HKeyFromString( LPTSTR szToken); + static BYTE ChToByte( const TCHAR ch); + static BOOL VTFromRegType( LPCTSTR szValueType, VARTYPE& vt); + + static const TCHAR* const rgszNeverDelete[]; + static const int cbNeverDelete; + static const int MAX_TYPE = 4096; + + + class CParseBuffer + { + public: + int nPos; + int nSize; + LPTSTR p; + CParseBuffer( int nInitial) + { + if (nInitial < 100) + nInitial = 1000; + nPos = 0; + nSize = nInitial; + p = (LPTSTR) ::ATL::AtlCoTaskMemCAlloc(nSize,static_cast(sizeof(TCHAR))); + if (p != 0) + *p = L'\0'; + } + ~CParseBuffer() + { + CoTaskMemFree(p); + } + BOOL Append( + const TCHAR* pch, + int nChars) + { + (void)( (!!((p != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 246, 0, L"%ls", L"p != 0")) || (__debugbreak(), 0) ); + do { (void)( (!!((p != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 247, 0, L"%ls", L"p != 0")) || (__debugbreak(), 0) ); ; } +# 247 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma warning(suppress: 4127) +# 247 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" + while (0); + int newSize = nPos + nChars + 1; + if ((newSize <= nPos) || (newSize <= nChars)) + return 0; + + if (newSize >= nSize) + { + while (newSize >= nSize) { + if (nSize > 2147483647 / 2) + return 0; + nSize *= 2; + } + LPTSTR pTemp = (LPTSTR)::ATL::AtlCoTaskMemRecalloc(p, nSize, sizeof(TCHAR)); + if (pTemp == 0) + return 0; + p = pTemp; + } + if ((nPos < 0) || (nPos >= nSize) || nSize - nPos > nSize) + return 0; + +#pragma warning(push) +#pragma warning(disable: 22008) + + Checked::memcpy_s(p + nPos, (nSize-nPos) * sizeof(TCHAR), pch, nChars * sizeof(TCHAR)); + nPos += nChars; + *(p + nPos) = L'\0'; +#pragma warning(pop) + return 1; + } + + BOOL AddChar( const TCHAR* pch) + { + + + + int nChars = 1; + + return Append(pch, nChars); + + } + BOOL AddString( LPCOLESTR lpsz) + { + if (lpsz == 0) + { + return 0; + } + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + LPCTSTR lpszT = OLE2CT_EX(lpsz, 1024); + if (lpszT == 0) + { + return 0; + } + return Append(lpszT, (int)wcslen(lpszT)); + } + LPTSTR Detach() + { + LPTSTR lp = p; + p = 0; + nSize = nPos = 0; + return lp; + } + + }; +}; + +class CRegObject : + public IRegistrarBase +{ +public: + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( + const IID &, + void ** ) + { + (void)( (!!((L"statically linked in CRegObject is not a com object. Do not callthis function"))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 320, 0, L"%ls", L"L\"statically linked in CRegObject is not a com object. Do not callthis function\"")) || (__debugbreak(), 0) ); + return ((HRESULT)0x80004001L); + } + + virtual __declspec(nothrow) ULONG __stdcall AddRef(void) + { + (void)( (!!((L"statically linked in CRegObject is not a com object. Do not callthis function"))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 326, 0, L"%ls", L"L\"statically linked in CRegObject is not a com object. Do not callthis function\"")) || (__debugbreak(), 0) ); + return 1; + } + virtual __declspec(nothrow) ULONG __stdcall Release(void) + { + (void)( (!!((L"statically linked in CRegObject is not a com object. Do not callthis function"))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 331, 0, L"%ls", L"L\"statically linked in CRegObject is not a com object. Do not callthis function\"")) || (__debugbreak(), 0) ); + return 0; + } + + virtual ~CRegObject() + { + ClearReplacements(); + } + HRESULT FinalConstruct() + { + return m_csMap.Init(); + } + void FinalRelease() {} + + + + HRESULT __stdcall AddReplacement( + LPCOLESTR lpszKey, + LPCOLESTR lpszItem); + HRESULT __stdcall ClearReplacements(); + LPCOLESTR StrFromMap( LPTSTR lpszKey); + + + HRESULT __stdcall ResourceRegister( + LPCOLESTR pszFileName, + UINT nID, + LPCOLESTR pszType); + HRESULT __stdcall ResourceRegisterSz( + LPCOLESTR pszFileName, + LPCOLESTR pszID, + LPCOLESTR pszType); + HRESULT __stdcall ResourceUnregister( + LPCOLESTR pszFileName, + UINT nID, + LPCOLESTR pszType); + HRESULT __stdcall ResourceUnregisterSz( + LPCOLESTR pszFileName, + LPCOLESTR pszID, + LPCOLESTR pszType); + + HRESULT __stdcall FileRegister( LPCOLESTR bstrFileName) + { + return CommonFileRegister(bstrFileName, 1); + } + + HRESULT __stdcall FileUnregister( LPCOLESTR bstrFileName) + { + return CommonFileRegister(bstrFileName, 0); + } + + HRESULT __stdcall StringRegister( LPCOLESTR bstrData) + { + return RegisterWithString(bstrData, 1); + } + + HRESULT __stdcall StringUnregister( LPCOLESTR bstrData) + { + return RegisterWithString(bstrData, 0); + } + +protected: + + HRESULT CommonFileRegister( + LPCOLESTR pszFileName, + BOOL bRegister); + HRESULT RegisterFromResource( + LPCOLESTR pszFileName, + LPCTSTR pszID, + LPCTSTR pszType, + BOOL bRegister); + HRESULT RegisterWithString( + LPCOLESTR pszData, + BOOL bRegister); + + + static HRESULT GenerateError( UINT) + { + return ((HRESULT)0x80020009L); + } + + CExpansionVector m_RepMap; + CComObjectThreadModel::AutoDeleteCriticalSection m_csMap; +}; + +#pragma warning(suppress: 26165) +inline HRESULT __stdcall CRegObject::AddReplacement( + LPCOLESTR lpszKey, + LPCOLESTR lpszItem) +{ + if (lpszKey == 0 || lpszItem == 0) + return ((HRESULT)0x80070057L); + m_csMap.Lock(); + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + + LPCTSTR lpszT = OLE2CT_EX(lpszKey, 1024); + + + + + + + BOOL bRet = m_RepMap.Add(lpszT, lpszItem); + m_csMap.Unlock(); + return bRet ? ((HRESULT)0L) : ((HRESULT)0x8007000EL); +} + +#pragma warning(suppress: 6262) +inline HRESULT CRegObject::RegisterFromResource( + LPCOLESTR bstrFileName, + LPCTSTR szID, + LPCTSTR szType, + BOOL bRegister) +{ + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + + HRESULT hr; + CRegParser parser(this); + HINSTANCE hInstResDll; + HRSRC hrscReg; + HGLOBAL hReg; + DWORD dwSize; + LPSTR szRegA; + CTempBuffer szReg; + + LPCTSTR lpszBSTRFileName = OLE2CT_EX(bstrFileName, 1024); + + + + + + + + hInstResDll = LoadLibraryExW(lpszBSTRFileName, 0, 0x00000040 | 0x00000020); + + if (0 == hInstResDll) + { + + hInstResDll = LoadLibraryExW(lpszBSTRFileName, 0, 0x00000002); + } + + if (0 == hInstResDll) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 473)(atlTraceRegistrar, 0, L"Failed to LoadLibrary on %Ts\n", bstrFileName); + hr = AtlHresultFromLastError(); + goto ReturnHR; + } + + hrscReg =FindResourceW((HMODULE)hInstResDll, szID, szType); + + if (0 == hrscReg) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 482)(atlTraceRegistrar, 0, (((WORD)((((DWORD_PTR)(szID)) >> 16) & 0xffff)) == 0) ? + L"Failed to FindResource on ID:%d TYPE:%Ts\n" : + L"Failed to FindResource on ID:%Ts TYPE:%Ts\n", + szID, szType); + hr = AtlHresultFromLastError(); + goto ReturnHR; + } + hReg = LoadResource((HMODULE)hInstResDll, hrscReg); + + if (0 == hReg) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 493)(atlTraceRegistrar, 0, L"Failed to LoadResource\n"); + hr = AtlHresultFromLastError(); + goto ReturnHR; + } + + dwSize = SizeofResource((HMODULE)hInstResDll, hrscReg); + szRegA = (LPSTR)hReg; + + + if (dwSize + 1 < dwSize) + { + hr = ((HRESULT)0x8007000EL); + goto ReturnHR; + } + +#pragma warning(push) +# 508 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma warning(disable: 4571) +# 508 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" + try{szReg.Allocate(dwSize + 1);} catch(...) {} +# 508 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma warning(pop) +# 508 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +; + if (szReg == 0) + { + hr = ((HRESULT)0x8007000EL); + goto ReturnHR; + } + + + DWORD uniSize = ::MultiByteToWideChar(_AtlGetConversionACP(), 0, szRegA, dwSize, szReg, dwSize); + if (uniSize == 0) + { + hr = AtlHresultFromLastError(); + goto ReturnHR; + } + + szReg[uniSize] = L'\0'; + + + + + + + hr = parser.RegisterBuffer(szReg, bRegister); + +ReturnHR: + + if (0 != hInstResDll) + FreeLibrary((HMODULE)hInstResDll); + return hr; +} + +inline HRESULT __stdcall CRegObject::ResourceRegister( + LPCOLESTR szFileName, + UINT nID, + LPCOLESTR szType) +{ + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + + LPCTSTR lpszT = OLE2CT_EX(szType, 1024); + + + + + + + + return RegisterFromResource(szFileName, ((LPWSTR)((ULONG_PTR)((WORD)(nID)))), lpszT, 1); +} + +inline HRESULT __stdcall CRegObject::ResourceRegisterSz( + LPCOLESTR szFileName, + LPCOLESTR szID, + LPCOLESTR szType) +{ + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + if (szID == 0 || szType == 0) + return ((HRESULT)0x80070057L); + + LPCTSTR lpszID = OLE2CT_EX(szID, 1024); + LPCTSTR lpszType = OLE2CT_EX(szType, 1024); + + + + + + + return RegisterFromResource(szFileName, lpszID, lpszType, 1); +} + +inline HRESULT __stdcall CRegObject::ResourceUnregister( + LPCOLESTR szFileName, + UINT nID, + LPCOLESTR szType) +{ + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + + LPCTSTR lpszT = OLE2CT_EX(szType, 1024); + + + + + + + return RegisterFromResource(szFileName, ((LPWSTR)((ULONG_PTR)((WORD)(nID)))), lpszT, 0); +} + +inline HRESULT __stdcall CRegObject::ResourceUnregisterSz( + LPCOLESTR szFileName, + LPCOLESTR szID, + LPCOLESTR szType) +{ + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + if (szID == 0 || szType == 0) + return ((HRESULT)0x80070057L); + + LPCTSTR lpszID = OLE2CT_EX(szID, 1024); + LPCTSTR lpszType = OLE2CT_EX(szType, 1024); + + + + + + + + return RegisterFromResource(szFileName, lpszID, lpszType, 0); +} + +inline HRESULT CRegObject::RegisterWithString( + LPCOLESTR bstrData, + BOOL bRegister) +{ + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + CRegParser parser(this); + + LPCTSTR szReg = OLE2CT_EX(bstrData, 1024); + + + + + + + + HRESULT hr = parser.RegisterBuffer((LPTSTR)szReg, bRegister); + + return hr; +} + +inline HRESULT CRegObject::ClearReplacements() +{ + m_csMap.Lock(); + HRESULT hr = m_RepMap.ClearReplacements(); + m_csMap.Unlock(); + return hr; +} + + +inline LPCOLESTR CRegObject::StrFromMap( LPTSTR lpszKey) +{ + m_csMap.Lock(); + LPCOLESTR lpsz = m_RepMap.Lookup(lpszKey); + if (lpsz == 0) + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 649)(atlTraceRegistrar, 0, L"Map Entry not found\n"); + m_csMap.Unlock(); + return lpsz; +} + +#pragma warning(suppress: 6262) +inline HRESULT CRegObject::CommonFileRegister( + LPCOLESTR bstrFileName, + BOOL bRegister) +{ + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + + CRegParser parser(this); + + LPCTSTR lpszBSTRFileName = OLE2CT_EX(bstrFileName, 1024); + + + + + + + + HANDLE hFile = CreateFileW(lpszBSTRFileName, (0x80000000L), 0, 0, + 3, + 0x00000001, + 0); + if (((HANDLE)(LONG_PTR)-1) == hFile) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 677)(atlTraceRegistrar, 0, L"Failed to CreateFile on %Ts\n", lpszBSTRFileName); + return AtlHresultFromLastError(); + } + + HRESULT hRes = ((HRESULT)0L); + DWORD cbRead; + CTempBuffer szReg; + + DWORD cbFile = GetFileSize(hFile, 0); + if (((DWORD)0xFFFFFFFF) == cbFile) + { + hRes = AtlHresultFromLastError(); + goto ReturnHR; + } + +#pragma warning(push) +# 692 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma warning(disable: 4571) +# 692 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" + try{szReg.Allocate(cbFile + 1);} catch(...) {} +# 692 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma warning(pop) +# 692 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +; + if (szReg == 0) + { + hRes = ((HRESULT)0x8007000EL); + goto ReturnHR; + } + + if (ReadFile(hFile, szReg, cbFile, &cbRead, 0) == 0) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 701)(atlTraceRegistrar, 0, "Read Failed on file %s\n", lpszBSTRFileName); + hRes = AtlHresultFromLastError(); + } + if ((((HRESULT)(hRes)) >= 0)) + { + szReg[cbRead] = '\0'; + + + CTempBuffer szConverted; +#pragma warning(push) +# 710 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma warning(disable: 4571) +# 710 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" + try{szConverted.Allocate(cbFile + 1);} catch(...) {} +# 710 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma warning(pop) +# 710 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +; + if (szConverted == 0) + { + hRes = ((HRESULT)0x8007000EL); + goto ReturnHR; + + } + if (::MultiByteToWideChar(_AtlGetConversionACP(), 0, szReg, cbFile + 1, szConverted, cbFile + 1) == 0) + { + hRes = AtlHresultFromLastError(); + goto ReturnHR; + } + + + + hRes = parser.RegisterBuffer(szConverted, bRegister); + } +ReturnHR: + CloseHandle(hFile); + return hRes; +} + +__declspec(selectany) const TCHAR* const CRegParser::rgszNeverDelete[] = +{ + L"AppID", + L"CLSID", + L"Component Categories", + L"FileType", + L"Interface", + L"Hardware", + L"Mime", + L"SAM", + L"SECURITY", + L"SYSTEM", + L"Software", + L"TypeLib" +}; + +__declspec(selectany) const int CRegParser::cbNeverDelete = sizeof(rgszNeverDelete) / sizeof(LPCTSTR*); + + +inline BOOL CRegParser::VTFromRegType( + LPCTSTR szValueType, + VARTYPE& vt) +{ + struct typemap + { + LPCTSTR lpsz; + VARTYPE vt; + }; +#pragma warning(push) +#pragma warning(disable: 4640) + + static const typemap map[] = { + {szStringVal, VT_BSTR}, + {multiszStringVal, VT_BSTR | VT_BYREF}, + {szDwordVal, VT_UI4}, + {szBinaryVal, VT_UI1} + }; + +#pragma warning(pop) + + for (int i=0;i= szOrig + MAX_VALUE) + return GenerateError(0x0215); + + for (int i = 0; i < (int)nChars; i++, szToken++, pchPrev++) + *szToken = *pchPrev; + } + + if (L'\0' == *m_pchCur) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 934)(atlTraceRegistrar, 0, L"NextToken : Unexpected End of File\n"); + return GenerateError(0x0203); + } + + *szToken = L'\0'; + m_pchCur = CharNextW(m_pchCur); + } + + else + { + + while (L'\0' != *m_pchCur && !IsSpace(*m_pchCur)) + { + LPTSTR pchPrev = m_pchCur; + m_pchCur = CharNextW(m_pchCur); + + INT_PTR nChars = m_pchCur - pchPrev; + + + if ((szToken + nChars + 1) >= szOrig + MAX_VALUE) + return GenerateError(0x0215); + + for (int i = 0; i < (int)nChars; i++, szToken++, pchPrev++) + *szToken = *pchPrev; + } + + *szToken = L'\0'; + } + return ((HRESULT)0L); +} + +#pragma warning(suppress: 6262) +inline HRESULT CRegParser::AddValue( + CRegKey& rkParent, + LPCTSTR szValueName, + LPTSTR szToken) +{ + HRESULT hr; + + TCHAR szValue[MAX_VALUE]; + VARTYPE vt = VT_EMPTY; + LONG lRes = 0L; + UINT nIDRes = 0; + + if ((((HRESULT)(hr = NextToken(szValue))) < 0)) + return hr; + if (!VTFromRegType(szValue, vt)) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 982)(atlTraceRegistrar, 0, L"%Ts Type not supported\n", szValue); + return GenerateError(0x020F); + } + + SkipWhiteSpace(); + if ((((HRESULT)(hr = NextToken(szValue))) < 0)) + return hr; + + switch (vt) + { + case VT_BSTR: + { + lRes = rkParent.SetStringValue(szValueName, szValue); + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 995)(atlTraceRegistrar, 2, L"Setting Value %Ts at %Ts\n", szValue, !szValueName ? L"default" : szValueName); + break; + } + case VT_BSTR | VT_BYREF: + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1000)(atlTraceRegistrar, 2, L"Setting Value %Ts at %Ts\n", szValue, !szValueName ? L"default" : szValueName); + int nLen = static_cast(wcslen(szValue) + 2); + CTempBuffer pszDestValue; + +#pragma warning(push) +# 1004 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma warning(disable: 4571) +# 1004 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" + try{pszDestValue.Allocate(nLen);} catch(...) {} +# 1004 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma warning(pop) +# 1004 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +; + if (pszDestValue != 0) + { + TCHAR* p = pszDestValue; + TCHAR* q = szValue; + nLen = 0; + while (*q != L'\0') + { + TCHAR* r = CharNextW(q); + if (*q == L'\\' && *r == L'0') + { + *p++ = L'\0'; + q = CharNextW(r); + } + else + { + *p = *q; +# 1031 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" + p++; + q++; + } + nLen ++; + } + + *p = L'\0'; + p++; + *p = L'\0'; + lRes = rkParent.SetMultiStringValue(szValueName, pszDestValue); + } + else + { + lRes = 14L; + } + } + break; + case VT_UI4: + { + ULONG ulVal; + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + + LPOLESTR lpszV = T2OLE_EX(szValue, 1024); + + + + + + hr = VarUI4FromStr(lpszV, 0, 0, &ulVal); + if ((((HRESULT)(hr)) < 0)) + return hr; + + lRes = rkParent.SetDWORDValue(szValueName, ulVal); + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1064)(atlTraceRegistrar, 2, L"Setting Value %d at %Ts\n", ulVal, !szValueName ? L"default" : szValueName); + break; + } + case VT_UI1: + { + int cbValue = static_cast(wcslen(szValue)); + if (cbValue & 0x00000001) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1072)(atlTraceRegistrar, 0, L"Binary Data does not fall on BYTE boundries\n"); + return ((HRESULT)0x80004005L); + } + int cbValDiv2 = cbValue/2; + CTempBuffer rgBinary; +#pragma warning(push) +# 1077 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma warning(disable: 4571) +# 1077 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" + try{rgBinary.Allocate(cbValDiv2);} catch(...) {} +# 1077 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma warning(pop) +# 1077 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +; + if (rgBinary == 0) + return ((HRESULT)0x80004005L); + memset(rgBinary, 0, cbValDiv2); + for (int irg = 0; irg < cbValue; irg++) + rgBinary[(irg/2)] |= (ChToByte(szValue[irg])) << (4*(1 - (irg & 0x00000001))); + lRes = RegSetValueExW(rkParent, szValueName, 0, ( 3ul ), rgBinary, cbValDiv2); + break; + } + } + + if (0L != lRes) + { + nIDRes = 0x0204; + return AtlHresultFromWin32(lRes); + } + + if ((((HRESULT)(hr = NextToken(szToken))) < 0)) + return hr; + + return ((HRESULT)0L); +} +#pragma warning(pop) + +inline BOOL CRegParser::CanForceRemoveKey( LPCTSTR szKey) +{ + for (int iNoDel = 0; iNoDel < cbNeverDelete; iNoDel++) + if (!lstrcmpiW(szKey, rgszNeverDelete[iNoDel])) + return 0; + + return 1; +} + +inline BOOL CRegParser::HasSubKeys( HKEY hkey) +{ + DWORD cSubKeys = 0; + + if (RegQueryInfoKeyW(hkey, 0, 0, 0, + &cSubKeys, 0, 0, + 0, 0, 0, 0, 0) != 0L) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1118)(atlTraceRegistrar, 0, L"Should not be here!!\n"); + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1119, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + + return cSubKeys > 0; +} + +inline BOOL CRegParser::HasValues( HKEY hkey) +{ + DWORD cValues = 0; + DWORD cMaxValueNameLen; + + LONG lResult = RegQueryInfoKeyW(hkey, 0, 0, 0, + 0, 0, 0, + &cValues, &cMaxValueNameLen, 0, 0, 0); + if (0L != lResult) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1136)(atlTraceRegistrar, 0, L"RegQueryInfoKey Failed "); + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1137, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return 0; + } + + if ((1 == cValues) && (0 == cMaxValueNameLen)) + { + return 0; + } + + return cValues > 0; +} + +#pragma warning(suppress: 6262) +inline HRESULT CRegParser::SkipAssignment( LPTSTR szToken) +{ + HRESULT hr; + TCHAR szValue[MAX_VALUE]; + + if (*szToken == chEquals) + { + if ((((HRESULT)(hr = NextToken(szToken))) < 0)) + return hr; + + SkipWhiteSpace(); + if ((((HRESULT)(hr = NextToken(szValue))) < 0)) + return hr; + if ((((HRESULT)(hr = NextToken(szToken))) < 0)) + return hr; + } + + return ((HRESULT)0L); +} + +#pragma warning(push) +# 1170 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h" +#pragma warning(disable: 6011 6387) +inline HRESULT CRegParser::PreProcessBuffer( + LPTSTR lpszReg, + LPTSTR* ppszReg) +{ + (void)( (!!((lpszReg != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1175, 0, L"%ls", L"lpszReg != 0")) || (__debugbreak(), 0) ); + (void)( (!!((ppszReg != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1176, 0, L"%ls", L"ppszReg != 0")) || (__debugbreak(), 0) ); + + if (lpszReg == 0 || ppszReg == 0) + return ((HRESULT)0x80004003L); + + *ppszReg = 0; + int nSize = static_cast(wcslen(lpszReg))*2; + CParseBuffer pb(nSize); + if (pb.p == 0) + return ((HRESULT)0x8007000EL); + m_pchCur = lpszReg; + HRESULT hr = ((HRESULT)0L); + + bool bRedirectionEnabled = false; + hr = AtlGetPerUserRegistration(&bRedirectionEnabled); + if( (((HRESULT)(hr)) < 0) ) + { + return hr; + } + + + + int nNestingLevel = 0; + bool bRedirectionPresent = false; + bool bInsideQuotes = false; + + while (*m_pchCur != L'\0') + { + if ( true == bRedirectionEnabled ) + { + LPCOLESTR szStartHKCU = L"HKCU\r\n{\tSoftware\r\n\t{\r\n\t\tClasses"; + LPCOLESTR szEndHKCU = L"\r\n\t}\r\n}\r\n"; + + if ( 0 == nNestingLevel ) + { + + TCHAR* szRootKey = 0; + if( 0 != ( szRootKey = wcsstr(m_pchCur, L"HKCR") ) && + (szRootKey == m_pchCur) ) + { + + m_pchCur = CharNextW(m_pchCur); + m_pchCur = CharNextW(m_pchCur); + m_pchCur = CharNextW(m_pchCur); + m_pchCur = CharNextW(m_pchCur); + + + if (!pb.AddString(szStartHKCU)) + { + hr = ((HRESULT)0x8007000EL); + break; + } + + bRedirectionPresent = true; + } + } + + if ( chQuote == *m_pchCur ) + { + if( false == bInsideQuotes ) + { + bInsideQuotes = true; + } + else + { + + if( EndOfVar() ) + { + bInsideQuotes = false; + } + else + { + + m_pchCur = CharNextW(m_pchCur); + if (!pb.AddChar(m_pchCur)) + { + hr = ((HRESULT)0x8007000EL); + break; + } + } + } + } + + if ( (false == bInsideQuotes) && (*m_pchCur == L'{') ) + { + ++nNestingLevel; + } + + if ( (false == bInsideQuotes) && (*m_pchCur == L'}') ) + { + --nNestingLevel; + if ( (0 == nNestingLevel) && (true == bRedirectionPresent) ) + { + if (!pb.AddString(szEndHKCU)) + { + hr = ((HRESULT)0x8007000EL); + break; + } + + bRedirectionPresent = false; + } + } + } + + if (*m_pchCur == L'%') + { + m_pchCur = CharNextW(m_pchCur); + if (*m_pchCur == L'%') + { + if (!pb.AddChar(m_pchCur)) + { + hr = ((HRESULT)0x8007000EL); + break; + } + } + else + { + LPTSTR lpszNext = StrChrW(m_pchCur, L'%'); + if (lpszNext == 0) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1296)(atlTraceRegistrar, 0, L"Error no closing %% found\n"); + hr = GenerateError(0x0203); + break; + } + if ((lpszNext-m_pchCur) > 31) + { + hr = ((HRESULT)0x80004005L); + break; + } + int nLength = int(lpszNext - m_pchCur); + TCHAR buf[32]; + Checked::tcsncpy_s(buf, (sizeof(*__countof_helper(buf)) + 0), m_pchCur, nLength); + LPCOLESTR lpszVar = m_pRegObj->StrFromMap(buf); + if (lpszVar == 0) + { + hr = GenerateError(0x0202); + break; + } + if (!pb.AddString(lpszVar)) + { + hr = ((HRESULT)0x8007000EL); + break; + } + + while (m_pchCur != lpszNext) + m_pchCur = CharNextW(m_pchCur); + } + } + else + { + if (!pb.AddChar(m_pchCur)) + { + hr = ((HRESULT)0x8007000EL); + break; + } + } + + m_pchCur = CharNextW(m_pchCur); + } + if ((((HRESULT)(hr)) >= 0)) + *ppszReg = pb.Detach(); + return hr; +} +#pragma warning(pop) + +#pragma warning(suppress: 6262) +inline HRESULT CRegParser::RegisterBuffer( + LPTSTR szBuffer, + BOOL bRegister) +{ + TCHAR szToken[MAX_VALUE]; + HRESULT hr = ((HRESULT)0L); + + LPTSTR szReg = 0; + hr = PreProcessBuffer(szBuffer, &szReg); + if ((((HRESULT)(hr)) < 0)) + return hr; + + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1354)(atlTraceRegistrar, 0, L"%Ts\n", szReg); + + m_pchCur = szReg; + + + + while (L'\0' != *m_pchCur) + { + if ((((HRESULT)(hr = NextToken(szToken))) < 0)) + break; + HKEY hkBase; + if ((hkBase = HKeyFromString(szToken)) == 0) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1367)(atlTraceRegistrar, 0, L"HKeyFromString failed on %Ts\n", szToken); + hr = GenerateError(0x020C); + break; + } + + if ((((HRESULT)(hr = NextToken(szToken))) < 0)) + break; + + if (chLeftBracket != *szToken) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1377)(atlTraceRegistrar, 0, L"Syntax error, expecting a {, found a %Ts\n", szToken); + hr = GenerateError(0x020D); + break; + } + if (bRegister) + { + LPTSTR szRegAtRegister = m_pchCur; + hr = RegisterSubkeys(szToken, hkBase, bRegister); + if ((((HRESULT)(hr)) < 0)) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1387)(atlTraceRegistrar, 0, L"Failed to register, cleaning up!\n"); + m_pchCur = szRegAtRegister; + RegisterSubkeys(szToken, hkBase, 0); + break; + } + } + else + { + if ((((HRESULT)(hr = RegisterSubkeys(szToken, hkBase, bRegister))) < 0)) + break; + } + + SkipWhiteSpace(); + } + CoTaskMemFree(szReg); + return hr; +} + +#pragma warning(suppress: 6262) +inline HRESULT CRegParser::RegisterSubkeys( + LPTSTR szToken, + HKEY hkParent, + BOOL bRegister, + BOOL bRecover) +{ + CRegKey keyCur; + LONG lRes; + TCHAR szKey[260]; + BOOL bDelete = 1; + BOOL bInRecovery = bRecover; + HRESULT hr = ((HRESULT)0L); + + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1419)(atlTraceRegistrar, 2, L"Num Els = %d\n", cbNeverDelete); + if ((((HRESULT)(hr = NextToken(szToken))) < 0)) + return hr; + + while (*szToken != chRightBracket) + { + bDelete = 1; + BOOL bTokenDelete = !lstrcmpiW(szToken, szDelete); + + if (!lstrcmpiW(szToken, szForceRemove) || bTokenDelete) + { + if ((((HRESULT)(hr = NextToken(szToken))) < 0)) + break; + + if (bRegister) + { + CRegKey rkForceRemove; + + if (StrChrW(szToken, chDirSep) != 0) + return GenerateError(0x0211); + + if (CanForceRemoveKey(szToken)) + { + rkForceRemove.Attach(hkParent); + + rkForceRemove.RecurseDeleteKey(szToken); + rkForceRemove.Detach(); + } + if (bTokenDelete) + { + if ((((HRESULT)(hr = NextToken(szToken))) < 0)) + break; + if ((((HRESULT)(hr = SkipAssignment(szToken))) < 0)) + break; + goto EndCheck; + } + } + } + + if (!lstrcmpiW(szToken, szNoRemove)) + { + bDelete = 0; + if ((((HRESULT)(hr = NextToken(szToken))) < 0)) + break; + } + + if (!lstrcmpiW(szToken, szValToken)) + { + TCHAR szValueName[MAX_VALUE]; + + if ((((HRESULT)(hr = NextToken(szValueName))) < 0)) + break; + if ((((HRESULT)(hr = NextToken(szToken))) < 0)) + break; + + if (*szToken != chEquals) + return GenerateError(0x0206); + + if (bRegister) + { + CRegKey rk; + + rk.Attach(hkParent); + hr = AddValue(rk, szValueName, szToken); + rk.Detach(); + + if ((((HRESULT)(hr)) < 0)) + return hr; + + goto EndCheck; + } + else + { + if (!bRecover && bDelete) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1494)(atlTraceRegistrar, 1, L"Deleting %Ts\n", szValueName); + + CRegKey rkParent; + lRes = rkParent.Open(hkParent, 0, ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L)))); + if (lRes == 0L) + { + lRes = rkParent.DeleteValue(szValueName); + if (lRes != 0L && lRes != 2L) + { + + hr = AtlHresultFromWin32(lRes); + break; + } + } + else + { + hr = AtlHresultFromWin32(lRes); + break; + } + } + if ((((HRESULT)(hr = SkipAssignment(szToken))) < 0)) + break; + continue; + } + } + + if (StrChrW(szToken, chDirSep) != 0) + return GenerateError(0x0211); + + if (bRegister) + { + lRes = keyCur.Open(hkParent, szToken, ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L))) | ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L)))); + if (0L != lRes) + { + + lRes = keyCur.Open(hkParent, szToken, ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L)))); + if (0L != lRes) + { + + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1533)(atlTraceRegistrar, 2, L"Creating key %Ts\n", szToken); + lRes = keyCur.Create(hkParent, szToken, ( 0ul ), (0x00000000L), ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L))) | ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L)))); + if (lRes != 0L) + return AtlHresultFromWin32(lRes); + } + } + + if ((((HRESULT)(hr = NextToken(szToken))) < 0)) + break; + + + if (*szToken == chEquals) + { + if ((((HRESULT)(hr = AddValue(keyCur, 0, szToken))) < 0)) + break; + } + } + else + { + if (!bRecover) + { + lRes = keyCur.Open(hkParent, szToken, ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L)))); + + } + else + lRes = 2L; + + + + if (lRes != 0L) + bRecover = true; + + + + if (!bRecover) + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1568)(atlTraceRegistrar, 1, L"Opened Key %Ts\n", szToken); + else + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1570)(atlTraceRegistrar, 0, L"Ignoring Open key on %Ts : In Recovery mode\n", szToken); + + + + Checked::tcsncpy_s(szKey, (sizeof(*__countof_helper(szKey)) + 0), szToken, ((size_t)-1)); + + if ((((HRESULT)(hr = NextToken(szToken))) < 0)) + break; + if ((((HRESULT)(hr = SkipAssignment(szToken))) < 0)) + break; + + if (*szToken == chLeftBracket && wcslen(szToken) == 1) + { + hr = RegisterSubkeys(szToken, keyCur.m_hKey, bRegister, bRecover); + + if ((((HRESULT)(hr)) < 0) && !bRecover) + break; + + if ((((HRESULT)(hr = NextToken(szToken))) < 0)) + break; + } + + + if (bRecover != bInRecovery) + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1594)(atlTraceRegistrar, 0, L"Ending Recovery Mode\n"); + + bRecover = bInRecovery; + + if (lRes == 2L) + + continue; + + if (lRes != 0L) + { + + if (bRecover) + continue; + else + { + hr = AtlHresultFromWin32(lRes); + break; + } + } + + + if (bRecover && HasSubKeys(keyCur)) + { + + if (CanForceRemoveKey(szKey) && bDelete) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1620)(atlTraceRegistrar, 0, L"Deleting non-empty subkey %Ts by force\n", szKey); + + keyCur.RecurseDeleteKey(szKey); + } + continue; + } + + BOOL bHasSubKeys=HasSubKeys(keyCur); + lRes = keyCur.Close(); + if (lRes != 0L) + return AtlHresultFromWin32(lRes); + + if (bDelete&& !bHasSubKeys) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\statreg.h", 1634)(atlTraceRegistrar, 0, L"Deleting Key %Ts\n", szKey); + CRegKey rkParent; + rkParent.Attach(hkParent); + lRes = rkParent.DeleteSubKey(szKey); + rkParent.Detach(); + if (lRes != 0L) + { + + hr = AtlHresultFromWin32(lRes); + break; + } + } + } + +EndCheck: + + if (bRegister) + { + if (*szToken == chLeftBracket && wcslen(szToken) == 1) + { + if ((((HRESULT)(hr = RegisterSubkeys(szToken, keyCur.m_hKey, bRegister, 0))) < 0)) + break; + if ((((HRESULT)(hr = NextToken(szToken))) < 0)) + break; + } + } + } + + return hr; +} + +}; + +#pragma pack(pop) +#pragma warning(pop) +# 6540 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" 2 + + + +namespace ATL +{ + + +#pragma warning(suppress: 6262) +inline HRESULT __stdcall CAtlModule::UpdateRegistryFromResource( + LPCTSTR lpszRes, + BOOL bRegister, + struct _ATL_REGMAP_ENTRY* pMapEntries ) throw() +{ + CRegObject ro; + HRESULT hr = ro.FinalConstruct(); + if ((((HRESULT)(hr)) < 0)) + { + return hr; + } + + if (pMapEntries != 0) + { + while (pMapEntries->szKey != 0) + { + do { (void)( (!!((0 != pMapEntries->szData))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6564, 0, L"%ls", L"0 != pMapEntries->szData")) || (__debugbreak(), 0) ); ; } +# 6564 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6564 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + ro.AddReplacement(pMapEntries->szKey, pMapEntries->szData); + pMapEntries++; + } + } + + hr = AddCommonRGSReplacements(&ro); + if ((((HRESULT)(hr)) < 0)) + return hr; + + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + TCHAR szModule[260]; + HINSTANCE hInst = _AtlBaseModule.GetModuleInstance(); + DWORD dwFLen = GetModuleFileNameW(hInst, szModule, 260); + if( dwFLen == 0 ) + return AtlHresultFromLastError(); + else if( dwFLen == 260 ) + return HRESULT_FROM_WIN32(122L); + + LPOLESTR pszModule = 0; + pszModule = T2OLE_EX(szModule, 1024); + + + + + + OLECHAR pszModuleUnquoted[260 * 2]; + EscapeSingleQuote(pszModuleUnquoted, (sizeof(*__countof_helper(pszModuleUnquoted)) + 0), pszModule); + + HRESULT hRes; + if ((hInst == 0) || (hInst == GetModuleHandleW(0))) + { + + + + OLECHAR pszModuleQuote[(260 + 2)*2]; + pszModuleQuote[0] = L'\"'; + if(!ocscpy_s(pszModuleQuote + 1, (260 + 2)*2 - 1, pszModuleUnquoted)) + { + return ((HRESULT)0x80004005L); + } + size_t nLen = ocslen(pszModuleQuote); + pszModuleQuote[nLen] = L'\"'; + pszModuleQuote[nLen + 1] = 0; + + hRes = ro.AddReplacement(L"Module", pszModuleQuote); + } + else + { + hRes = ro.AddReplacement(L"Module", pszModuleUnquoted); + } + + if((((HRESULT)(hRes)) < 0)) + return hRes; + + hRes = ro.AddReplacement(L"Module_Raw", pszModuleUnquoted); + if((((HRESULT)(hRes)) < 0)) + return hRes; + + LPCOLESTR szType = L"REGISTRY"; + LPCOLESTR pszRes = T2COLE_EX(lpszRes, 1024); + + + + + hr = (bRegister) ? ro.ResourceRegisterSz(pszModule, pszRes, szType) : + ro.ResourceUnregisterSz(pszModule, pszRes, szType); + return hr; +} +#pragma warning(suppress: 6262) +inline HRESULT __stdcall CAtlModule::UpdateRegistryFromResource( + UINT nResID, + BOOL bRegister, + struct _ATL_REGMAP_ENTRY* pMapEntries ) throw() +{ + CRegObject ro; + HRESULT hr = ro.FinalConstruct(); + if ((((HRESULT)(hr)) < 0)) + { + return hr; + } + + if (pMapEntries != 0) + { + while (pMapEntries->szKey != 0) + { + do { (void)( (!!((0 != pMapEntries->szData))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6650, 0, L"%ls", L"0 != pMapEntries->szData")) || (__debugbreak(), 0) ); ; } +# 6650 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6650 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + ro.AddReplacement(pMapEntries->szKey, pMapEntries->szData); + pMapEntries++; + } + } + + hr = AddCommonRGSReplacements(&ro); + if ((((HRESULT)(hr)) < 0)) + return hr; + + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + TCHAR szModule[260]; + HINSTANCE hInst = _AtlBaseModule.GetModuleInstance(); + DWORD dwFLen = GetModuleFileNameW(hInst, szModule, 260); + if( dwFLen == 0 ) + return AtlHresultFromLastError(); + else if( dwFLen == 260 ) + return HRESULT_FROM_WIN32(122L); + + LPOLESTR pszModule = 0; + pszModule = T2OLE_EX(szModule, 1024); + + + + + + OLECHAR pszModuleUnquoted[260 * 2]; + EscapeSingleQuote(pszModuleUnquoted, (sizeof(*__countof_helper(pszModuleUnquoted)) + 0), pszModule); + + HRESULT hRes; + if ((hInst == 0) || (hInst == GetModuleHandleW(0))) + { + + + + OLECHAR pszModuleQuote[(260 + 2)*2]; + pszModuleQuote[0] = L'\"'; + if(!ocscpy_s(pszModuleQuote + 1, (260 + 2)*2 - 1, pszModuleUnquoted)) + { + return ((HRESULT)0x80004005L); + } + size_t nLen = ocslen(pszModuleQuote); + pszModuleQuote[nLen] = L'\"'; + pszModuleQuote[nLen + 1] = 0; + + hRes = ro.AddReplacement(L"Module", pszModuleQuote); + } + else + { + hRes = ro.AddReplacement(L"Module", pszModuleUnquoted); + } + + if((((HRESULT)(hRes)) < 0)) + return hRes; + + hRes = ro.AddReplacement(L"Module_Raw", pszModuleUnquoted); + if((((HRESULT)(hRes)) < 0)) + return hRes; + + LPCOLESTR szType = L"REGISTRY"; + hr = (bRegister) ? ro.ResourceRegister(pszModule, nResID, szType) : + ro.ResourceUnregister(pszModule, nResID, szType); + return hr; +} + + + + +#pragma warning(push) +#pragma warning(disable: 4996) + +inline HRESULT __stdcall CComModule::UpdateRegistryClass( + const CLSID& clsid, + LPCTSTR lpszProgID, + LPCTSTR lpszVerIndProgID, + UINT nDescID, + DWORD dwFlags, + BOOL bRegister) +{ + if (bRegister) + { + TCHAR szDesc[256]; + LoadStringW(m_hInst, nDescID, szDesc, 256); + return RegisterClassHelper(clsid, lpszProgID, lpszVerIndProgID, szDesc, dwFlags); + } + return UnregisterClassHelper(clsid, lpszProgID, lpszVerIndProgID); +} + +inline HRESULT __stdcall CComModule::UpdateRegistryClass( + const CLSID& clsid, + LPCTSTR lpszProgID, + LPCTSTR lpszVerIndProgID, + LPCTSTR szDesc, + DWORD dwFlags, + BOOL bRegister) +{ + if (bRegister) + return RegisterClassHelper(clsid, lpszProgID, lpszVerIndProgID, szDesc, dwFlags); + return UnregisterClassHelper(clsid, lpszProgID, lpszVerIndProgID); +} + +#pragma warning(push) +# 6751 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(disable: 6102 6386) +inline HRESULT __stdcall CComModule::RegisterClassHelper( + const CLSID& clsid, + LPCTSTR lpszProgID, + LPCTSTR lpszVerIndProgID, + LPCTSTR szDesc, + DWORD dwFlags) +{ + static const TCHAR szProgID[] = L"ProgID"; + static const TCHAR szVIProgID[] = L"VersionIndependentProgID"; + static const TCHAR szLS32[] = L"LocalServer32"; + static const TCHAR szIPS32[] = L"InprocServer32"; + static const TCHAR szThreadingModel[] = L"ThreadingModel"; + static const TCHAR szAUTPRX32[] = L"AUTPRX32.DLL"; + static const TCHAR szApartment[] = L"Apartment"; + static const TCHAR szBoth[] = L"both"; + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + TCHAR szModule[260 + 2]; + + do { int __atl_condVal=!!(lpszProgID && lpszVerIndProgID || !lpszProgID && !lpszVerIndProgID); do { (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6770, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); ; } +# 6770 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6770 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); if(!(__atl_condVal)) ATL::AtlThrowImpl(((HRESULT)0x80004005L)); } +# 6770 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 6770 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + + if (!szDesc) + { + szDesc = L""; + } +# 6784 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + DWORD dwLen = GetModuleFileNameW(m_hInst, szModule + 1, 260); + if (dwLen == 0) + { + return AtlHresultFromLastError(); + } + else if( dwLen == 260 ) + { + return HRESULT_FROM_WIN32(122L); + } + + LPOLESTR lpOleStr; + HRESULT hRes = StringFromCLSID(clsid, &lpOleStr); + if ((((HRESULT)(hRes)) < 0)) + return hRes; + + LPTSTR lpszCLSID = OLE2T_EX(lpOleStr, 1024); +# 6808 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + hRes = lpszProgID ? RegisterProgID(lpszCLSID, lpszProgID, szDesc) : ((HRESULT)0L); + if (hRes == ((HRESULT)0L)) + { + + hRes = lpszVerIndProgID ? RegisterVersionIndependentProgID(lpszCLSID, lpszVerIndProgID, lpszProgID, szDesc) : ((HRESULT)0L); + } + LONG lRes = 0L; + if (hRes == ((HRESULT)0L)) + { + CRegKey key; + lRes = key.Open((( HKEY ) (ULONG_PTR)((LONG)0x80000000) ), L"CLSID", ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L))) | ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L)))); + if (lRes == 0L) + { + lRes = key.Create(key, lpszCLSID, ( 0ul ), (0x00000000L), ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L))) | ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L)))); + if (lRes == 0L) + { + lRes = key.SetStringValue(0, szDesc); + if (lRes == 0L) + { + lRes = lpszProgID ? key.SetKeyValue(szProgID, lpszProgID) : 0L; + if (lRes == 0L) + { + lRes = lpszVerIndProgID ? key.SetKeyValue(szVIProgID, lpszVerIndProgID) : 0L; + if (lRes == 0L) + { + if ((m_hInst == 0) || (m_hInst == GetModuleHandleW(0))) + { + + + + szModule[0] = L'\"'; + szModule[dwLen + 1] = L'\"'; + szModule[dwLen + 2] = 0; + + lRes = key.SetKeyValue(szLS32, szModule); + } + else + { + lRes = key.SetKeyValue(szIPS32, (dwFlags & 0x4) ? szAUTPRX32 : szModule + 1); + if (lRes == 0L) + { + LPCTSTR lpszModel = (dwFlags & 0x2) ? szBoth : + (dwFlags & 0x1) ? szApartment : 0; + if (lpszModel != 0) + lRes = key.SetKeyValue(szIPS32, lpszModel, szThreadingModel); + } + } + } + } + } + } + } + } + CoTaskMemFree(lpOleStr); + if (lRes != 0L) + hRes = AtlHresultFromWin32(lRes); + return hRes; +} +#pragma warning(pop) + +inline HRESULT __stdcall CComModule::UnregisterClassHelper( + const CLSID& clsid, + LPCTSTR lpszProgID, + LPCTSTR lpszVerIndProgID) +{ + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + CRegKey key; + LONG lRet; + + key.Attach((( HKEY ) (ULONG_PTR)((LONG)0x80000000) )); + if (lpszProgID != 0 && lpszProgID[0]!=L'\0') + { + lRet = key.RecurseDeleteKey(lpszProgID); + if (lRet != 0L && lRet != 2L && lRet != 3L) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6883)(atlTraceCOM, 0, L"Failed to Unregister ProgID : %Ts\n", lpszProgID); + key.Detach(); + return AtlHresultFromWin32(lRet); + } + } + if (lpszVerIndProgID != 0 && lpszVerIndProgID[0]!=L'\0') + { + lRet = key.RecurseDeleteKey(lpszVerIndProgID); + if (lRet != 0L && lRet != 2L && lRet != 3L) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6893)(atlTraceCOM, 0, L"Failed to Unregister Version Independent ProgID : %Ts\n", lpszVerIndProgID); + key.Detach(); + return AtlHresultFromWin32(lRet); + } + } + LPOLESTR lpOleStr; + HRESULT hr = StringFromCLSID(clsid, &lpOleStr); + if ((((HRESULT)(hr)) >= 0)) + { + LPTSTR lpsz = OLE2T_EX(lpOleStr, 1024); +# 6911 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + lRet = key.Open(key, L"CLSID", ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L))) | ((((0x00020000L)) | (0x0002) | (0x0004)) & (~(0x00100000L)))); + if (lRet == 0L) + lRet = key.RecurseDeleteKey(lpsz); + if (lRet != 0L && lRet != 2L && lRet != 3L) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6916)(atlTraceCOM, 0, L"Failed to delete CLSID : %Ts\n", lpsz); + hr = AtlHresultFromWin32(lRet); + } + CoTaskMemFree(lpOleStr); + } + else + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 6923)(atlTraceCOM, 0, L"Failed to delete CLSID : {%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}", + clsid.Data1, + clsid.Data2, + clsid.Data3, + clsid.Data4[0], + clsid.Data4[1], + clsid.Data4[2], + clsid.Data4[3], + clsid.Data4[4], + clsid.Data4[5], + clsid.Data4[6], + clsid.Data4[7] + ); + } + key.Detach(); + return hr; +} + +#pragma warning(pop) +# 7044 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +}; + + +using namespace ATL; + + + + + + +namespace ATL +{ + + + + + static inline LPTSTR AtlFindExtension( LPCTSTR psz) + { + if (psz == 0) + return 0; + LPCTSTR pszRemember = 0; + while (*psz != L'\0') + { + switch (*psz) + { + case L'\\': + pszRemember = 0; + break; + case L'.': + pszRemember = psz; + break; + default: + break; + } + psz = CharNextW(psz); + } + return (LPTSTR) ((pszRemember == 0) ? psz : pszRemember); + } + + + + +inline __declspec(nothrow) HRESULT __stdcall AtlSetPerUserRegistration( bool bEnable) +{ + _AtlRegisterPerUser = bEnable; + return ((HRESULT)0L); +} + +inline __declspec(nothrow) HRESULT __stdcall AtlGetPerUserRegistration( bool* pbEnabled) +{ + if (pbEnabled == 0) + return ((HRESULT)0x80004003L); + + *pbEnabled = _AtlRegisterPerUser; + return ((HRESULT)0L); +} + + + + + + +inline __declspec(nothrow) HRESULT __stdcall AtlLoadTypeLib( + HINSTANCE hInstTypeLib, + LPCOLESTR lpszIndex, + BSTR* pbstrPath, + ITypeLib** ppTypeLib) +{ + (void)( (!!((pbstrPath != 0 && ppTypeLib != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 7112, 0, L"%ls", L"pbstrPath != 0 && ppTypeLib != 0")) || (__debugbreak(), 0) ); + if (pbstrPath == 0 || ppTypeLib == 0) + return ((HRESULT)0x80004003L); + + *pbstrPath = 0; + *ppTypeLib = 0; + + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + (void)( (!!((hInstTypeLib != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 7120, 0, L"%ls", L"hInstTypeLib != 0")) || (__debugbreak(), 0) ); + TCHAR szModule[(260 + 10)]; + + DWORD dwFLen = GetModuleFileNameW(hInstTypeLib, szModule, 260); + if( dwFLen == 0 ) + { + HRESULT hRes = AtlHresultFromLastError(); + ; + return hRes; + } + else if( dwFLen == 260 ) + return HRESULT_FROM_WIN32(122L); + + + LPTSTR lpszExt = 0; + + lpszExt = AtlFindExtension(szModule); + + if (lpszIndex != 0) + { + LPCTSTR lpcszIndex = OLE2CT_EX(lpszIndex, 1024); + if(lpcszIndex == 0) + { + return ((HRESULT)0x8007000EL); + } + DWORD nIndexLen = static_cast(wcslen(lpcszIndex)); + + DWORD newLen = dwFLen + nIndexLen; + if ((newLen < dwFLen) || (newLen < nIndexLen) || (newLen >= (260 + 10))) + return ((HRESULT)0x80004005L); + + Checked::wcscpy_s(szModule + dwFLen, (sizeof(*__countof_helper(szModule)) + 0) - dwFLen, lpcszIndex); + + + + } + LPOLESTR lpszModule = T2OLE_EX(szModule, 1024); + + + + + HRESULT hr = LoadTypeLib(lpszModule, ppTypeLib); + if ((((HRESULT)(hr)) < 0)) + { + + const TCHAR szExt[] = L".tlb"; + if ((lpszExt - szModule + (sizeof(*__countof_helper(szExt)) + 0)) > 260) + return ((HRESULT)0x80004005L); + + + Checked::wcscpy_s(lpszExt, (sizeof(*__countof_helper(szModule)) + 0) - (lpszExt - szModule), szExt); + + + + lpszModule = T2OLE_EX(szModule, 1024); + + + + + hr = LoadTypeLib(lpszModule, ppTypeLib); + } + if ((((HRESULT)(hr)) >= 0)) + { + *pbstrPath = ::SysAllocString(lpszModule); + if (*pbstrPath == 0) + { + hr = ((HRESULT)0x8007000EL); + (*ppTypeLib)->Release(); + *ppTypeLib = 0; + } + } + return hr; +} + +inline __declspec(nothrow) HRESULT __stdcall AtlRegisterClassCategoriesHelper( + const IID & clsid, + const struct _ATL_CATMAP_ENTRY* pCatMap, + BOOL bRegister) +{ + CComPtr< ICatRegister > pCatRegister; + HRESULT hResult; + const struct _ATL_CATMAP_ENTRY* pEntry; + CATID catid; + + if( pCatMap == 0 ) + { + return( ((HRESULT)0L) ); + } + + if (InlineIsEqualGUID(clsid, GUID_NULL)) + { + (void)( (!!((0 && L"Use OBJECT_ENTRY_NON_CREATEABLE_EX macro if you want to register class categories for non creatable objects."))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 7211, 0, L"%ls", L"0 && L\"Use OBJECT_ENTRY_NON_CREATEABLE_EX macro if you want to register class categories for non creatable objects.\"")) || (__debugbreak(), 0) ); + return ((HRESULT)0L); + } + + hResult = CoCreateInstance( CLSID_StdComponentCategoriesMgr, 0, + CLSCTX_INPROC_SERVER, __uuidof(ICatRegister), (void**)&pCatRegister ); + if( (((HRESULT)(hResult)) < 0) ) + { + + + + + + + return( ((HRESULT)0L) ); + } + + hResult = ((HRESULT)0L); + pEntry = pCatMap; + while( pEntry->iType != 0 ) + { + catid = *pEntry->pcatid; + if( bRegister ) + { + if( pEntry->iType == 1 ) + { + hResult = pCatRegister->RegisterClassImplCategories( clsid, 1, + &catid ); + } + else + { + (void)( (!!((pEntry->iType == 2))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 7242, 0, L"%ls", L"pEntry->iType == 2")) || (__debugbreak(), 0) ); + hResult = pCatRegister->RegisterClassReqCategories( clsid, 1, + &catid ); + } + if( (((HRESULT)(hResult)) < 0) ) + { + return( hResult ); + } + } + else + { + if( pEntry->iType == 1 ) + { + pCatRegister->UnRegisterClassImplCategories( clsid, 1, &catid ); + } + else + { + (void)( (!!((pEntry->iType == 2))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 7259, 0, L"%ls", L"pEntry->iType == 2")) || (__debugbreak(), 0) ); + pCatRegister->UnRegisterClassReqCategories( clsid, 1, &catid ); + } + } + pEntry++; + } + + + if (!bRegister) + { + OLECHAR szGUID[64]; + do { int __atl_condVal=!!(::StringFromGUID2(clsid, szGUID, 64)); (void)( (!!((__atl_condVal))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 7270, 0, L"%ls", L"__atl_condVal")) || (__debugbreak(), 0) ); if(!(__atl_condVal)) return 13L; } +# 7270 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 7270 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + int _convert_ex = 0; (_convert_ex); UINT _acp_ex = ATL::_AtlGetConversionACP(); (_acp_ex); LPCWSTR _lpw_ex = 0; (_lpw_ex); LPCSTR _lpa_ex = 0; (_lpa_ex); ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager _AtlSafeAllocaManager; + TCHAR* pszGUID = OLE2T_EX(szGUID, 1024); + if (pszGUID != 0) + { + TCHAR szKey[128]; + + Checked::wcscpy_s(szKey, (sizeof(*__countof_helper(szKey)) + 0), L"CLSID\\"); + Checked::wcscat_s(szKey, (sizeof(*__countof_helper(szKey)) + 0), pszGUID); + Checked::wcscat_s(szKey, (sizeof(*__countof_helper(szKey)) + 0), L"\\Required Categories"); + + + + + + + CRegKey root((( HKEY ) (ULONG_PTR)((LONG)0x80000000) )); + CRegKey key; + DWORD cbSubKeys = 0; + + LRESULT lRes = key.Open(root, szKey, ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L)))); + if (lRes == 0L) + { + lRes = RegQueryInfoKeyW(key, 0, 0, 0, &cbSubKeys, 0, 0, 0, 0, 0, 0, 0); + key.Close(); + if (lRes == 0L && cbSubKeys == 0) + { + root.DeleteSubKey(szKey); + } + } + + + Checked::wcscpy_s(szKey, (sizeof(*__countof_helper(szKey)) + 0), L"CLSID\\"); + Checked::wcscat_s(szKey, (sizeof(*__countof_helper(szKey)) + 0), pszGUID); + Checked::wcscat_s(szKey, (sizeof(*__countof_helper(szKey)) + 0), L"\\Implemented Categories"); + + + + + + lRes = key.Open(root, szKey, ((((0x00020000L)) | (0x0001) | (0x0008) | (0x0010)) & (~(0x00100000L)))); + if (lRes == 0L) + { + lRes = RegQueryInfoKeyW(key, 0, 0, 0, &cbSubKeys, 0, 0, 0, 0, 0, 0, 0); + key.Close(); + if (lRes == 0L && cbSubKeys == 0) + { + root.DeleteSubKey(szKey); + } + } + } + } + return(((HRESULT)0L)); +} + +static inline UINT __stdcall AtlGetDirLen( LPCOLESTR lpszPathName) throw() +{ + (void)( (!!((lpszPathName != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 7327, 0, L"%ls", L"lpszPathName != 0")) || (__debugbreak(), 0) ); + if(lpszPathName == 0) + return 0; + + + LPCOLESTR lpszTemp = lpszPathName; + for (LPCOLESTR lpsz = lpszPathName; *lpsz != '\0'; ) + { + + LPCOLESTR lp = CharNextW(lpsz); + + + if (*lpsz == L'\\' || *lpsz == L'/' || *lpsz == L':') + lpszTemp = lp; + lpsz = lp; + } + + return UINT( lpszTemp-lpszPathName ); +} + +inline __declspec(nothrow) HRESULT __stdcall AtlUnRegisterTypeLib( + HINSTANCE hInstTypeLib, + LPCOLESTR lpszIndex) +{ + CComBSTR bstrPath; + CComPtr pTypeLib; + HRESULT hr = AtlLoadTypeLib(hInstTypeLib, lpszIndex, &bstrPath, &pTypeLib); + if ((((HRESULT)(hr)) >= 0)) + { + TLIBATTR* ptla; + hr = pTypeLib->GetLibAttr(&ptla); + if ((((HRESULT)(hr)) >= 0)) + { + typedef HRESULT (__stdcall *PFNUNREGISTERTYPELIB)(const GUID &, WORD , WORD , LCID, SYSKIND); + PFNUNREGISTERTYPELIB pfnUnRegisterTypeLib = 0; + + bool bRedirectionEnabled = false; + hr = AtlGetPerUserRegistration(&bRedirectionEnabled); + if( (((HRESULT)(hr)) < 0) ) + { + return hr; + } + + if( true == bRedirectionEnabled ) + { + HMODULE hmodOleAut=::GetModuleHandleW(L"OLEAUT32.DLL"); + if(hmodOleAut) + { + pfnUnRegisterTypeLib=reinterpret_cast(::GetProcAddress(hmodOleAut, "UnRegisterTypeLibForUser")); + } + } + + if( 0 == pfnUnRegisterTypeLib ) + { + pfnUnRegisterTypeLib = (PFNUNREGISTERTYPELIB)&UnRegisterTypeLib; + } + + hr = pfnUnRegisterTypeLib(ptla->guid, ptla->wMajorVerNum, ptla->wMinorVerNum, ptla->lcid, ptla->syskind); + + pTypeLib->ReleaseTLibAttr(ptla); + } + } + return hr; +} + +inline __declspec(nothrow) HRESULT __stdcall AtlRegisterTypeLib( + HINSTANCE hInstTypeLib, + LPCOLESTR lpszIndex) +{ + CComBSTR bstrPath; + CComPtr pTypeLib; + HRESULT hr = AtlLoadTypeLib(hInstTypeLib, lpszIndex, &bstrPath, &pTypeLib); + if ((((HRESULT)(hr)) >= 0)) + { + LPCOLESTR szDir=0; + OLECHAR szDirBuffer[260]; + CComBSTR bstrHelpFile; + hr = pTypeLib->GetDocumentation(-1, 0, 0, 0, &bstrHelpFile); + if ((((HRESULT)(hr)) >= 0) && bstrHelpFile != 0) + { + Checked::wcsncpy_s(szDirBuffer, 260, bstrHelpFile.m_str, bstrHelpFile.Length()); + szDirBuffer[260 - 1] = 0; + + + szDirBuffer[AtlGetDirLen(szDirBuffer)] = 0; + + szDir=&szDirBuffer[0]; + } + + typedef HRESULT (__stdcall *PFNREGISTERTYPELIB)(ITypeLib *, LPCOLESTR , LPCOLESTR ); + PFNREGISTERTYPELIB pfnRegisterTypeLib = 0; + + bool bRedirectionEnabled = false; + hr = AtlGetPerUserRegistration(&bRedirectionEnabled); + if( (((HRESULT)(hr)) < 0) ) + { + return hr; + } + + if( true == bRedirectionEnabled ) + { + HMODULE hmodOleAut=::GetModuleHandleW(L"OLEAUT32.DLL"); + if(hmodOleAut) + { + pfnRegisterTypeLib=reinterpret_cast(::GetProcAddress(hmodOleAut, "RegisterTypeLibForUser")); + } + } + + if( 0 == pfnRegisterTypeLib ) + { + pfnRegisterTypeLib = (PFNREGISTERTYPELIB)&RegisterTypeLib; + } + + hr = pfnRegisterTypeLib(pTypeLib, bstrPath, szDir); + + } + return hr; +} + + + +inline __declspec( deprecated("AtlModuleRegisterTypeLib has been replaced by AtlRegisterTypeLib") ) +HRESULT AtlModuleRegisterTypeLib( + _ATL_MODULE* , + LPCOLESTR lpszIndex) +{ + return AtlRegisterTypeLib(_AtlComModule.m_hInstTypeLib, lpszIndex); +} + +inline __declspec( deprecated("AtlModuleUnRegisterTypeLib has been replaced by AtlUnRegisterTypeLib") ) +HRESULT AtlModuleUnRegisterTypeLib( + _ATL_MODULE* , + LPCOLESTR lpszIndex) +{ + return AtlUnRegisterTypeLib(_AtlComModule.m_hInstTypeLib, lpszIndex); +} + +inline __declspec( deprecated("AtlModuleLoadTypeLib has been replaced by AtlLoadTypeLib") ) +HRESULT AtlModuleLoadTypeLib( + _ATL_MODULE* , + LPCOLESTR lpszIndex, + BSTR* pbstrPath, + ITypeLib** ppTypeLib) +{ + return AtlLoadTypeLib(_AtlComModule.m_hInstTypeLib, lpszIndex, pbstrPath, ppTypeLib); +} + +inline __declspec( deprecated("AtlModuleRegisterClassObjects has been replaced by AtlComModuleRegisterClassObjects") ) +HRESULT AtlModuleRegisterClassObjects( + _ATL_MODULE* , + DWORD dwClsContext, + DWORD dwFlags) +{ + return AtlComModuleRegisterClassObjects(&_AtlComModule, dwClsContext, dwFlags); +} + +inline __declspec( deprecated("AtlModuleRevokeClassObjects has been replaced by AtlComModuleRevokeClassObjects") ) +HRESULT AtlModuleRevokeClassObjects( _ATL_MODULE* ) +{ + return AtlComModuleRevokeClassObjects(&_AtlComModule); +} + +inline __declspec( deprecated("AtlModuleGetClassObject has been replaced by AtlComModuleGetClassObject") ) +HRESULT AtlModuleGetClassObject( + _ATL_MODULE* , + const IID & rclsid, + const IID & riid, + LPVOID* ppv) +{ + return AtlComModuleGetClassObject(&_AtlComModule, rclsid, riid, ppv); +} + +inline __declspec( deprecated("AtlModuleRegisterServer has been replaced by AtlComModuleRegisterServer") ) +HRESULT AtlModuleRegisterServer( + _ATL_MODULE* , + BOOL bRegTypeLib, + const CLSID* pCLSID = 0) +{ + return AtlComModuleRegisterServer(&_AtlComModule, bRegTypeLib, pCLSID); +} + +inline __declspec( deprecated("AtlModuleUnregisterServer has been replaced by AtlComModuleUnregisterServer") ) +HRESULT AtlModuleUnregisterServer( + _ATL_MODULE* , + const CLSID* pCLSID = 0) +{ + return AtlComModuleUnregisterServer(&_AtlComModule, 0, pCLSID); +} + +inline __declspec( deprecated("AtlModuleUnregisterServerEx has been replaced by AtlComModuleUnregisterServer") ) +HRESULT AtlModuleUnregisterServerEx( + _ATL_MODULE* , + BOOL bUnRegTypeLib, + const CLSID* pCLSID = 0) +{ + return AtlComModuleUnregisterServer(&_AtlComModule, bUnRegTypeLib, pCLSID); +} + +inline __declspec( deprecated("AtlModuleInit is no longer required") ) +HRESULT AtlModuleInit( + _ATL_MODULE* , + _ATL_OBJMAP_ENTRY* , + HINSTANCE ) +{ + return ((HRESULT)0L); +} + +inline __declspec( deprecated("AtlModuleTerm is no longer required") ) +HRESULT AtlModuleTerm( _ATL_MODULE* ) +{ + return ((HRESULT)0L); +} + + + +inline __declspec( deprecated("AtlModuleAddCreateWndData has been replaced by AtlWinModuleAddCreateWndData") ) +void AtlModuleAddCreateWndData( + _ATL_MODULE* , + _AtlCreateWndData* pData, + void* pObject) +{ + AtlWinModuleAddCreateWndData(&_AtlWinModule, pData, pObject); +} + +inline __declspec( deprecated("AtlModuleExtractCreateWndData has been replaced by AtlWinModuleExtractCreateWndData") ) +void* AtlModuleExtractCreateWndData( _ATL_MODULE* ) +{ + return AtlWinModuleExtractCreateWndData(&_AtlWinModule); +} +# 7566 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +inline __declspec(nothrow) HRESULT __stdcall AtlComModuleRegisterServer( + _ATL_COM_MODULE* pComModule, + BOOL bRegTypeLib, + const CLSID* pCLSID) +{ + (void)( (!!((pComModule != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 7571, 0, L"%ls", L"pComModule != 0")) || (__debugbreak(), 0) ); + if (pComModule == 0) + return ((HRESULT)0x80070057L); + (void)( (!!((pComModule->m_hInstTypeLib != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 7574, 0, L"%ls", L"pComModule->m_hInstTypeLib != 0")) || (__debugbreak(), 0) ); + + HRESULT hr = ((HRESULT)0L); + + for (_ATL_OBJMAP_ENTRY_EX** ppEntry = pComModule->m_ppAutoObjMapFirst; ppEntry < pComModule->m_ppAutoObjMapLast; ppEntry++) + { + if (*ppEntry != 0) + { + _ATL_OBJMAP_ENTRY_EX* pEntry = *ppEntry; + if (pCLSID != 0) + { + if (!IsEqualGUID(*pCLSID, *pEntry->pclsid)) + continue; + } + hr = pEntry->pfnUpdateRegistry(1); + if ((((HRESULT)(hr)) < 0)) + break; + hr = AtlRegisterClassCategoriesHelper( *pEntry->pclsid, + pEntry->pfnGetCategoryMap(), 1 ); + if ((((HRESULT)(hr)) < 0)) + break; + } + } + + if ((((HRESULT)(hr)) >= 0) && bRegTypeLib) + { + do { (void)( (!!((pComModule->m_hInstTypeLib != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 7600, 0, L"%ls", L"pComModule->m_hInstTypeLib != 0")) || (__debugbreak(), 0) ); ; } +# 7600 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(suppress: 4127) +# 7600 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" + while (0); + hr = AtlRegisterTypeLib(pComModule->m_hInstTypeLib, 0); + } + + return hr; +} + + + + +inline __declspec(nothrow) HRESULT __stdcall AtlComModuleUnregisterServer( + _ATL_COM_MODULE* pComModule, + BOOL bUnRegTypeLib, + const CLSID* pCLSID) +{ + (void)( (!!((pComModule != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 7615, 0, L"%ls", L"pComModule != 0")) || (__debugbreak(), 0) ); + if (pComModule == 0) + return ((HRESULT)0x80070057L); + + HRESULT hr = ((HRESULT)0L); + + for (_ATL_OBJMAP_ENTRY_EX** ppEntry = pComModule->m_ppAutoObjMapFirst; ppEntry < pComModule->m_ppAutoObjMapLast; ppEntry++) + { + if (*ppEntry != 0) + { + _ATL_OBJMAP_ENTRY_EX* pEntry = *ppEntry; + if (pCLSID != 0) + { + if (!IsEqualGUID(*pCLSID, *pEntry->pclsid)) + continue; + } + hr = AtlRegisterClassCategoriesHelper( *pEntry->pclsid, pEntry->pfnGetCategoryMap(), 0 ); + if ((((HRESULT)(hr)) < 0)) + break; + hr = pEntry->pfnUpdateRegistry(0); + if ((((HRESULT)(hr)) < 0)) + break; + } + } + if ((((HRESULT)(hr)) >= 0) && bUnRegTypeLib) + hr = AtlUnRegisterTypeLib(pComModule->m_hInstTypeLib, 0); + + return hr; +} + + +inline __declspec(nothrow) HRESULT __stdcall AtlWinModuleTerm( + _ATL_WIN_MODULE* pWinModule, + HINSTANCE hInst) +{ + if (pWinModule == 0) + return ((HRESULT)0x80070057L); + if (pWinModule->cbSize == 0) + return ((HRESULT)0L); + if (pWinModule->cbSize != sizeof(_ATL_WIN_MODULE)) + return ((HRESULT)0x80070057L); + + for (int i = 0; i < pWinModule->m_rgWindowClassAtoms.GetSize(); i++) + UnregisterClassW((LPCTSTR)pWinModule->m_rgWindowClassAtoms[i], hInst); + pWinModule->m_rgWindowClassAtoms.RemoveAll(); + pWinModule->m_csWindowCreate.Term(); + pWinModule->cbSize = 0; + return ((HRESULT)0L); +} +# 7672 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +inline CRITICAL_SECTION& CComModule::get_m_csWindowCreate() throw() +{ + return _AtlWinModule.m_csWindowCreate.m_sec; +} + +inline _AtlCreateWndData*& CComModule::get_m_pCreateWndList() throw() +{ + return _AtlWinModule.m_pCreateWndList; +} +inline void CComModule::put_m_pCreateWndList( _AtlCreateWndData* p) throw() +{ + _AtlWinModule.m_pCreateWndList = p; +} + + + +inline CRITICAL_SECTION& CComModule::get_m_csObjMap() throw() +{ + return _AtlComModule.m_csObjMap.m_sec; +} + +inline CRITICAL_SECTION& CComModule::get_m_csStaticDataInit() throw() +{ + return m_csStaticDataInitAndTypeInfo.m_sec; +} +# 7750 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +inline HRESULT CComModule::Init( + _ATL_OBJMAP_ENTRY* p, + HINSTANCE , + const GUID* plibid) throw() +{ + if (plibid != 0) + m_libid = *plibid; + + _ATL_OBJMAP_ENTRY* pEntry; + if (p != (_ATL_OBJMAP_ENTRY*)-1) + { + m_pObjMap = p; + if (m_pObjMap != 0) + { + pEntry = m_pObjMap; + while (pEntry->pclsid != 0) + { + pEntry->pfnObjectMain(true); + pEntry++; + } + } + } + for (_ATL_OBJMAP_ENTRY_EX** ppEntry = _AtlComModule.m_ppAutoObjMapFirst; ppEntry < _AtlComModule.m_ppAutoObjMapLast; ppEntry++) + { + if (*ppEntry != 0) + (*ppEntry)->pfnObjectMain(true); + } + return ((HRESULT)0L); +} + +inline void CComModule::Term() throw() +{ + _ATL_OBJMAP_ENTRY* pEntry; + if (m_pObjMap != 0) + { + pEntry = m_pObjMap; + while (pEntry->pclsid != 0) + { + if (pEntry->pCF != 0) + pEntry->pCF->Release(); + pEntry->pCF = 0; + pEntry->pfnObjectMain(false); + pEntry++; + } + } + + for (_ATL_OBJMAP_ENTRY_EX** ppEntry = _AtlComModule.m_ppAutoObjMapFirst; ppEntry < _AtlComModule.m_ppAutoObjMapLast; ppEntry++) + { + if (*ppEntry != 0) + (*ppEntry)->pfnObjectMain(false); + } + + + _AtlWinModule.Term(); + + + CAtlModuleT::Term(); +} + +inline HRESULT CComModule::GetClassObject( + const IID & rclsid, + const IID & riid, + LPVOID* ppv) throw() +{ + *ppv = 0; + HRESULT hr = ((HRESULT)0L); + + if (m_pObjMap != 0) + { + const _ATL_OBJMAP_ENTRY* pEntry = m_pObjMap; + + while (pEntry->pclsid != 0) + { + if ((pEntry->pfnGetClassObject != 0) && InlineIsEqualGUID(rclsid, *pEntry->pclsid)) + { + if (pEntry->pCF == 0) + { + CComCritSecLock lock(_AtlComModule.m_csObjMap, false); + hr = lock.Lock(); + if ((((HRESULT)(hr)) < 0)) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 7831)(atlTraceCOM, 0, L"ERROR : Unable to lock critical section in CComModule::GetClassObject\n"); + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 7832, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + break; + } + + if (pEntry->pCF == 0) + { + hr = pEntry->pfnGetClassObject(pEntry->pfnCreateInstance, __uuidof(IUnknown), (LPVOID*)&pEntry->pCF); + } + } + + if (pEntry->pCF != 0) + { + hr = pEntry->pCF->QueryInterface(riid, ppv); + } + break; + } + pEntry++; + } + } + + if (*ppv == 0 && hr == ((HRESULT)0L)) + { + hr = AtlComModuleGetClassObject(&_AtlComModule, rclsid, riid, ppv); + } + + return hr; +} + + + +inline HRESULT CComModule::RegisterClassObjects( + DWORD dwClsContext, + DWORD dwFlags) throw() +{ + HRESULT hr = ((HRESULT)0L); + _ATL_OBJMAP_ENTRY* pEntry; + if (m_pObjMap != 0) + { + pEntry = m_pObjMap; + while (pEntry->pclsid != 0 && hr == ((HRESULT)0L)) + { + hr = pEntry->RegisterClassObject(dwClsContext, dwFlags); + pEntry++; + } + } + if (hr == ((HRESULT)0L)) + hr = AtlComModuleRegisterClassObjects(&_AtlComModule, dwClsContext, dwFlags); + return hr; +} +inline HRESULT CComModule::RevokeClassObjects() throw() +{ + HRESULT hr = ((HRESULT)0L); + _ATL_OBJMAP_ENTRY* pEntry; + if (m_pObjMap != 0) + { + pEntry = m_pObjMap; + while (pEntry->pclsid != 0 && hr == ((HRESULT)0L)) + { + hr = pEntry->RevokeClassObject(); + pEntry++; + } + } + if (hr == ((HRESULT)0L)) + hr = AtlComModuleRevokeClassObjects(&_AtlComModule); + return hr; +} + + +inline HRESULT CComModule::RegisterTypeLib() throw() +{ + return _AtlComModule.RegisterTypeLib(); +} +inline HRESULT CComModule::RegisterTypeLib( LPCTSTR lpszIndex) throw() +{ + return _AtlComModule.RegisterTypeLib(lpszIndex); +} +inline HRESULT CComModule::UnRegisterTypeLib() throw() +{ + return _AtlComModule.UnRegisterTypeLib(); +} +inline HRESULT CComModule::UnRegisterTypeLib( LPCTSTR lpszIndex) throw() +{ + return _AtlComModule.UnRegisterTypeLib(lpszIndex); +} + +inline HRESULT CComModule::RegisterServer( + BOOL bRegTypeLib , + const CLSID* pCLSID ) throw() +{ + HRESULT hr = ((HRESULT)0L); + _ATL_OBJMAP_ENTRY* pEntry = m_pObjMap; + if (pEntry != 0) + { + for (;pEntry->pclsid != 0; pEntry++) + { + if (pCLSID != 0) + { + if (!IsEqualGUID(*pCLSID, *pEntry->pclsid)) + continue; + } + hr = pEntry->pfnUpdateRegistry(1); + if ((((HRESULT)(hr)) < 0)) + break; + hr = AtlRegisterClassCategoriesHelper( *pEntry->pclsid, + pEntry->pfnGetCategoryMap(), 1 ); + if ((((HRESULT)(hr)) < 0)) + break; + } + } + if ((((HRESULT)(hr)) >= 0)) + hr = CAtlModuleT::RegisterServer(bRegTypeLib, pCLSID); + return hr; +} + +inline HRESULT CComModule::UnregisterServer( + BOOL bUnRegTypeLib, + const CLSID* pCLSID ) throw() +{ + HRESULT hr = ((HRESULT)0L); + _ATL_OBJMAP_ENTRY* pEntry = m_pObjMap; + if (pEntry != 0) + { + for (;pEntry->pclsid != 0; pEntry++) + { + if (pCLSID != 0) + { + if (!IsEqualGUID(*pCLSID, *pEntry->pclsid)) + continue; + } + hr = AtlRegisterClassCategoriesHelper( *pEntry->pclsid, + pEntry->pfnGetCategoryMap(), 0 ); + if ((((HRESULT)(hr)) < 0)) + break; + hr = pEntry->pfnUpdateRegistry(0); + if ((((HRESULT)(hr)) < 0)) + break; + } + } + if ((((HRESULT)(hr)) >= 0)) + hr = CAtlModuleT::UnregisterServer(bUnRegTypeLib, pCLSID); + return hr; +} + +inline HRESULT CComModule::UnregisterServer( const CLSID* pCLSID ) throw() +{ + return UnregisterServer(0, pCLSID); +} + + + + + +#pragma warning(pop) + + + + +inline __declspec(nothrow) HRESULT __stdcall AtlAdvise( + IUnknown* pUnkCP, + IUnknown* pUnk, + const IID& iid, + LPDWORD pdw) +{ + if(pUnkCP == 0) + return ((HRESULT)0x80070057L); + + CComPtr pCPC; + CComPtr pCP; + HRESULT hRes = pUnkCP->QueryInterface(__uuidof(IConnectionPointContainer), (void**)&pCPC); + if ((((HRESULT)(hRes)) >= 0)) + hRes = pCPC->FindConnectionPoint(iid, &pCP); + if ((((HRESULT)(hRes)) >= 0)) + hRes = pCP->Advise(pUnk, pdw); + return hRes; +} + +inline __declspec(nothrow) HRESULT __stdcall AtlUnadvise( + IUnknown* pUnkCP, + const IID& iid, + DWORD dw) +{ + if(pUnkCP == 0) + return ((HRESULT)0x80070057L); + + CComPtr pCPC; + CComPtr pCP; + HRESULT hRes = pUnkCP->QueryInterface(__uuidof(IConnectionPointContainer), (void**)&pCPC); + if ((((HRESULT)(hRes)) >= 0)) + hRes = pCPC->FindConnectionPoint(iid, &pCP); + if ((((HRESULT)(hRes)) >= 0)) + hRes = pCP->Unadvise(dw); + return hRes; +} + + + + + + +inline __declspec(nothrow) HRESULT __stdcall AtlFreeMarshalStream( IStream* pStream) +{ + HRESULT hRes=((HRESULT)0L); + if (pStream != 0) + { + LARGE_INTEGER l; + l.QuadPart = 0; + pStream->Seek(l, STREAM_SEEK_SET, 0); + hRes=CoReleaseMarshalData(pStream); + pStream->Release(); + } + return hRes; +} + +#pragma warning(push) +# 8045 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(disable: 6387) +inline __declspec(nothrow) HRESULT __stdcall AtlMarshalPtrInProc( + IUnknown* pUnk, + const IID& iid, + IStream** ppStream) +{ + (void)( (!!((ppStream != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8051, 0, L"%ls", L"ppStream != 0")) || (__debugbreak(), 0) ); + if (ppStream == 0) + return ((HRESULT)0x80004003L); + + HRESULT hRes = CreateStreamOnHGlobal(0, 1, ppStream); + if ((((HRESULT)(hRes)) >= 0)) + { + hRes = CoMarshalInterface(*ppStream, iid, + pUnk, MSHCTX_INPROC, 0, MSHLFLAGS_TABLESTRONG); + if ((((HRESULT)(hRes)) < 0)) + { + (*ppStream)->Release(); + *ppStream = 0; + } + } + return hRes; +} +#pragma warning(pop) + +inline __declspec(nothrow) HRESULT __stdcall AtlUnmarshalPtr( + IStream* pStream, + const IID& iid, + IUnknown** ppUnk) +{ + (void)( (!!((ppUnk != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8075, 0, L"%ls", L"ppUnk != 0")) || (__debugbreak(), 0) ); + if (ppUnk == 0) + return ((HRESULT)0x80004003L); + + *ppUnk = 0; + HRESULT hRes = ((HRESULT)0x80070057L); + if (pStream != 0) + { + LARGE_INTEGER l; + l.QuadPart = 0; + pStream->Seek(l, STREAM_SEEK_SET, 0); + hRes = CoUnmarshalInterface(pStream, iid, (void**)ppUnk); + } + return hRes; +} + + + +#pragma warning(push) +# 8093 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h" +#pragma warning(disable: 6387 28196) +inline __declspec(nothrow) HRESULT __stdcall AtlComModuleGetClassObject( + _ATL_COM_MODULE* pComModule, + const IID & rclsid, + const IID & riid, + LPVOID* ppv) +{ + if (ppv == 0) + { + return ((HRESULT)0x80004003L); + } + + *ppv = 0; + + (void)( (!!((pComModule != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8107, 0, L"%ls", L"pComModule != 0")) || (__debugbreak(), 0) ); + if (pComModule == 0) + { + return ((HRESULT)0x80070057L); + } + + if (pComModule->cbSize == 0) + { + return ((HRESULT)0x8000FFFFL); + } + + HRESULT hr = ((HRESULT)0L); + + for (_ATL_OBJMAP_ENTRY_EX** ppEntry = pComModule->m_ppAutoObjMapFirst; ppEntry < pComModule->m_ppAutoObjMapLast; ppEntry++) + { + if (*ppEntry != 0) + { + const _ATL_OBJMAP_ENTRY_EX* pEntry = *ppEntry; + + if ((pEntry->pfnGetClassObject != 0) && InlineIsEqualGUID(rclsid, *pEntry->pclsid)) + { + _ATL_OBJMAP_CACHE* pCache = pEntry->pCache; + + if (pCache->pCF == 0) + { + CComCritSecLock lock(pComModule->m_csObjMap, false); + hr = lock.Lock(); + if ((((HRESULT)(hr)) < 0)) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8136)(atlTraceCOM, 0, L"ERROR : Unable to lock critical section in AtlComModuleGetClassObject\n"); + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8137, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + break; + } + + if (pCache->pCF == 0) + { + IUnknown *factory = 0; + hr = pEntry->pfnGetClassObject(pEntry->pfnCreateInstance, __uuidof(IUnknown), reinterpret_cast(&factory)); + if ((((HRESULT)(hr)) >= 0)) + { + pCache->pCF = reinterpret_cast(::EncodePointer(factory)); + } + } + } + + if (pCache->pCF != 0) + { + + IUnknown* factory = reinterpret_cast(::DecodePointer(pCache->pCF)); + ; + hr = factory->QueryInterface(riid, ppv); + } + break; + } + } + } + + if (*ppv == 0 && hr == ((HRESULT)0L)) + { + hr = ((HRESULT)0x80040111L); + } + + return hr; +} +#pragma warning(pop) + +inline __declspec(nothrow) HRESULT __stdcall AtlComModuleRegisterClassObjects( + _ATL_COM_MODULE* pComModule, + DWORD dwClsContext, + DWORD dwFlags) +{ + (void)( (!!((pComModule != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8178, 0, L"%ls", L"pComModule != 0")) || (__debugbreak(), 0) ); + if (pComModule == 0) + return ((HRESULT)0x80070057L); + + HRESULT hr = ((HRESULT)1L); + for (_ATL_OBJMAP_ENTRY_EX** ppEntry = pComModule->m_ppAutoObjMapFirst; ppEntry < pComModule->m_ppAutoObjMapLast && (((HRESULT)(hr)) >= 0); ppEntry++) + { + if (*ppEntry != 0) + hr = (*ppEntry)->RegisterClassObject(dwClsContext, dwFlags); + } + return hr; +} + +inline __declspec(nothrow) HRESULT __stdcall AtlComModuleRevokeClassObjects( + _ATL_COM_MODULE* pComModule) +{ + (void)( (!!((pComModule != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8194, 0, L"%ls", L"pComModule != 0")) || (__debugbreak(), 0) ); + if (pComModule == 0) + return ((HRESULT)0x80070057L); + + HRESULT hr = ((HRESULT)0L); + for (_ATL_OBJMAP_ENTRY_EX** ppEntry = pComModule->m_ppAutoObjMapFirst; ppEntry < pComModule->m_ppAutoObjMapLast && hr == ((HRESULT)0L); ppEntry++) + { + if (*ppEntry != 0) + hr = (*ppEntry)->RevokeClassObject(); + } + return hr; +} + + + +inline __declspec(nothrow) BOOL __stdcall AtlWaitWithMessageLoop( HANDLE hEvent) +{ + DWORD dwRet; + MSG msg; + + while(1) + { + dwRet = MsgWaitForMultipleObjectsEx(1, &hEvent, 0xFFFFFFFF, (((0x0002 | 0x0004) | 0x0001 | 0x0400 | 0x0800 | 0x1000) | 0x0008 | 0x0010 | 0x0020 | 0x0080 | 0x0040), 0x0004); + + if (dwRet == ((((DWORD )0x00000000L) ) + 0 )) + return 1; + + if (dwRet != ((((DWORD )0x00000000L) ) + 0 ) + 1) + break; + + + while(PeekMessageW(&msg,0,0,0,0x0000)) + { + + BOOL bUnicode = ::IsWindowUnicode(msg.hwnd); + BOOL bRet; + + if (bUnicode) + bRet = ::GetMessageW(&msg, 0, 0, 0); + else + bRet = ::GetMessageA(&msg, 0, 0, 0); + + if (bRet > 0) + { + ::TranslateMessage(&msg); + + if (bUnicode) + ::DispatchMessageW(&msg); + else + ::DispatchMessageA(&msg); + } + + if (WaitForSingleObject(hEvent, 0) == ((((DWORD )0x00000000L) ) + 0 )) + return 1; + } + } + return 0; +} + + + + + +inline __declspec(nothrow) HRESULT __stdcall AtlInternalQueryInterface( + void* pThis, + const _ATL_INTMAP_ENTRY* pEntries, + const IID & iid, + void** ppvObject) +{ + (void)( (!!((pThis != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8263, 0, L"%ls", L"pThis != 0")) || (__debugbreak(), 0) ); + (void)( (!!((pEntries!= 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8264, 0, L"%ls", L"pEntries!= 0")) || (__debugbreak(), 0) ); + + if(pThis == 0 || pEntries == 0) + return ((HRESULT)0x80070057L); + + + (void)( (!!((pEntries->pFunc == ((ATL::_ATL_CREATORARGFUNC*)1)))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8270, 0, L"%ls", L"pEntries->pFunc == ((ATL::_ATL_CREATORARGFUNC*)1)")) || (__debugbreak(), 0) ); + + if (ppvObject == 0) + return ((HRESULT)0x80004003L); + + if (InlineIsEqualUnknown(iid)) + { + IUnknown* pUnk = (IUnknown*)((INT_PTR)pThis+pEntries->dw); + pUnk->AddRef(); + *ppvObject = pUnk; + return ((HRESULT)0L); + } + + HRESULT hRes; + + for (;; pEntries++) + { + if (pEntries->pFunc == 0) + { + hRes = ((HRESULT)0x80004002L); + break; + } + + BOOL bBlind = (pEntries->piid == 0); + if (bBlind || InlineIsEqualGUID(*(pEntries->piid), iid)) + { + if (pEntries->pFunc == ((ATL::_ATL_CREATORARGFUNC*)1)) + { + (void)( (!!((!bBlind))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8298, 0, L"%ls", L"!bBlind")) || (__debugbreak(), 0) ); + IUnknown* pUnk = (IUnknown*)((INT_PTR)pThis+pEntries->dw); + pUnk->AddRef(); + *ppvObject = pUnk; + return ((HRESULT)0L); + } + + + + hRes = pEntries->pFunc(pThis, + iid, ppvObject, pEntries->dw); + if (hRes == ((HRESULT)0L)) + return ((HRESULT)0L); + if (!bBlind && (((HRESULT)(hRes)) < 0)) + break; + } + } + + *ppvObject = 0; + + return hRes; +} + +inline __declspec(nothrow) DWORD __stdcall AtlGetVersion( void* ) +{ + return 0x0E00; +} + + + + +inline __declspec(nothrow) void __stdcall AtlWinModuleAddCreateWndData( + _ATL_WIN_MODULE* pWinModule, + _AtlCreateWndData* pData, + void* pObject) +{ + if (pWinModule == 0) + _AtlRaiseException((DWORD)((DWORD )0xC0000005L)); + + (void)( (!!((pData != 0 && pObject != 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8337, 0, L"%ls", L"pData != 0 && pObject != 0")) || (__debugbreak(), 0) ); + if(pData == 0 || pObject == 0) + _AtlRaiseException((DWORD)((DWORD )0xC0000005L)); + + pData->m_pThis = pObject; + pData->m_dwThreadID = ::GetCurrentThreadId(); + CComCritSecLock lock(pWinModule->m_csWindowCreate, false); + if ((((HRESULT)(lock.Lock())) < 0)) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8346)(atlTraceWindowing, 0, L"ERROR : Unable to lock critical section in AtlWinModuleAddCreateWndData\n"); + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8347, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return; + } + pData->m_pNext = pWinModule->m_pCreateWndList; + pWinModule->m_pCreateWndList = pData; +} + +inline __declspec(nothrow) void* __stdcall AtlWinModuleExtractCreateWndData( + _ATL_WIN_MODULE* pWinModule) +{ + if (pWinModule == 0) + return 0; + + void* pv = 0; + CComCritSecLock lock(pWinModule->m_csWindowCreate, false); + if ((((HRESULT)(lock.Lock())) < 0)) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8364)(atlTraceWindowing, 0, L"ERROR : Unable to lock critical section in AtlWinModuleExtractCreateWndData\n"); + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8365, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + return pv; + } + _AtlCreateWndData* pEntry = pWinModule->m_pCreateWndList; + if(pEntry != 0) + { + DWORD dwThreadID = ::GetCurrentThreadId(); + _AtlCreateWndData* pPrev = 0; + while(pEntry != 0) + { + if(pEntry->m_dwThreadID == dwThreadID) + { + if(pPrev == 0) + pWinModule->m_pCreateWndList = pEntry->m_pNext; + else + pPrev->m_pNext = pEntry->m_pNext; + pv = pEntry->m_pThis; + break; + } + pPrev = pEntry; + pEntry = pEntry->m_pNext; + } + } + return pv; +} + +inline __declspec(nothrow) HRESULT __stdcall AtlWinModuleInit( + _ATL_WIN_MODULE* pWinModule) +{ + if (pWinModule == 0) + return ((HRESULT)0x80070057L); + + + if (pWinModule->cbSize != sizeof(_ATL_WIN_MODULE)) + return ((HRESULT)0x80070057L); + + pWinModule->m_pCreateWndList = 0; + + HRESULT hr = pWinModule->m_csWindowCreate.Init(); + if ((((HRESULT)(hr)) < 0)) + { + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8406)(atlTraceWindowing, 0, L"ERROR : Unable to initialize critical section in AtlWinModuleInit\n"); + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8407, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + } + return hr; +} + + + + +inline __declspec(nothrow) HRESULT __stdcall AtlModuleAddTermFunc( + _ATL_MODULE* pModule, + _ATL_TERMFUNC* pFunc, + DWORD_PTR dw) +{ + if (pModule == 0) + return ((HRESULT)0x80070057L); + + HRESULT hr = ((HRESULT)0L); + _ATL_TERMFUNC_ELEM* pNew = new(std::nothrow) _ATL_TERMFUNC_ELEM; + if (pNew == 0) + hr = ((HRESULT)0x8007000EL); + else + { + pNew->pFunc = pFunc; + pNew->dw = dw; + CComCritSecLock lock(pModule->m_csStaticDataInitAndTypeInfo, false); + hr = lock.Lock(); + if ((((HRESULT)(hr)) >= 0)) + { + pNew->pNext = pModule->m_pTermFuncs; + pModule->m_pTermFuncs = pNew; + } + else + { + delete pNew; + ATL::CTraceFileAndLineInfo("C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8441)(atlTraceGeneral, 0, L"ERROR : Unable to lock critical section in AtlModuleAddTermFunc\n"); + (void)( (!!((0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include\\atlbase.h", 8442, 0, L"%ls", L"0")) || (__debugbreak(), 0) ); + } + } + return hr; +} + +inline __declspec(nothrow) void __stdcall AtlCallTermFunc( _ATL_MODULE* pModule) +{ + if (pModule == 0) + _AtlRaiseException((DWORD)((DWORD )0xC0000005L)); + + _ATL_TERMFUNC_ELEM* pElem = pModule->m_pTermFuncs; + _ATL_TERMFUNC_ELEM* pNext = 0; + while (pElem != 0) + { + pElem->pFunc(pElem->dw); + pNext = pElem->pNext; + delete pElem; + pElem = pNext; + } + pModule->m_pTermFuncs = 0; +} + +} + +#pragma pack(pop) +# 4 "../LEngine/Shader.h" 2 + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cassert" 1 3 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\assert.h" 1 3 +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\assert.h" 3 +#pragma pack(push, 8) +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\assert.h" 3 + extern "C" { +# 26 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\assert.h" 3 + void __cdecl _wassert( + wchar_t const* _Message, + wchar_t const* _File, + unsigned _Line + ); +# 41 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\assert.h" 3 +} +# 41 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\assert.h" 3 +#pragma pack(pop) +# 4 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cassert" 2 3 +# 7 "../LEngine/Shader.h" 2 + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" 1 +# 48 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +typedef struct ID3D12Object ID3D12Object; + + + + + + +typedef struct ID3D12DeviceChild ID3D12DeviceChild; + + + + + + +typedef struct ID3D12RootSignature ID3D12RootSignature; + + + + + + +typedef struct ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer; + + + + + + +typedef struct ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer; + + + + + + +typedef struct ID3D12Pageable ID3D12Pageable; + + + + + + +typedef struct ID3D12Heap ID3D12Heap; + + + + + + +typedef struct ID3D12Resource ID3D12Resource; + + + + + + +typedef struct ID3D12CommandAllocator ID3D12CommandAllocator; + + + + + + +typedef struct ID3D12Fence ID3D12Fence; + + + + + + +typedef struct ID3D12PipelineState ID3D12PipelineState; + + + + + + +typedef struct ID3D12DescriptorHeap ID3D12DescriptorHeap; + + + + + + +typedef struct ID3D12QueryHeap ID3D12QueryHeap; + + + + + + +typedef struct ID3D12CommandSignature ID3D12CommandSignature; + + + + + + +typedef struct ID3D12CommandList ID3D12CommandList; + + + + + + +typedef struct ID3D12GraphicsCommandList ID3D12GraphicsCommandList; + + + + + + +typedef struct ID3D12CommandQueue ID3D12CommandQueue; + + + + + + +typedef struct ID3D12Device ID3D12Device; + + + + + + +typedef struct ID3D12PipelineLibrary ID3D12PipelineLibrary; + + + + + + +typedef struct ID3D12Device1 ID3D12Device1; + + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +typedef struct IDXGIObject IDXGIObject; + + + + + + +typedef struct IDXGIDeviceSubObject IDXGIDeviceSubObject; + + + + + + +typedef struct IDXGIResource IDXGIResource; + + + + + + +typedef struct IDXGIKeyedMutex IDXGIKeyedMutex; + + + + + + +typedef struct IDXGISurface IDXGISurface; + + + + + + +typedef struct IDXGISurface1 IDXGISurface1; + + + + + + +typedef struct IDXGIAdapter IDXGIAdapter; + + + + + + +typedef struct IDXGIOutput IDXGIOutput; + + + + + + +typedef struct IDXGISwapChain IDXGISwapChain; + + + + + + +typedef struct IDXGIFactory IDXGIFactory; + + + + + + +typedef struct IDXGIDevice IDXGIDevice; + + + + + + +typedef struct IDXGIFactory1 IDXGIFactory1; + + + + + + +typedef struct IDXGIAdapter1 IDXGIAdapter1; + + + + + + +typedef struct IDXGIDevice1 IDXGIDevice1; + + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgitype.h" 1 + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgiformat.h" 1 +# 10 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgiformat.h" +typedef enum DXGI_FORMAT +{ + DXGI_FORMAT_UNKNOWN = 0, + DXGI_FORMAT_R32G32B32A32_TYPELESS = 1, + DXGI_FORMAT_R32G32B32A32_FLOAT = 2, + DXGI_FORMAT_R32G32B32A32_UINT = 3, + DXGI_FORMAT_R32G32B32A32_SINT = 4, + DXGI_FORMAT_R32G32B32_TYPELESS = 5, + DXGI_FORMAT_R32G32B32_FLOAT = 6, + DXGI_FORMAT_R32G32B32_UINT = 7, + DXGI_FORMAT_R32G32B32_SINT = 8, + DXGI_FORMAT_R16G16B16A16_TYPELESS = 9, + DXGI_FORMAT_R16G16B16A16_FLOAT = 10, + DXGI_FORMAT_R16G16B16A16_UNORM = 11, + DXGI_FORMAT_R16G16B16A16_UINT = 12, + DXGI_FORMAT_R16G16B16A16_SNORM = 13, + DXGI_FORMAT_R16G16B16A16_SINT = 14, + DXGI_FORMAT_R32G32_TYPELESS = 15, + DXGI_FORMAT_R32G32_FLOAT = 16, + DXGI_FORMAT_R32G32_UINT = 17, + DXGI_FORMAT_R32G32_SINT = 18, + DXGI_FORMAT_R32G8X24_TYPELESS = 19, + DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20, + DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21, + DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22, + DXGI_FORMAT_R10G10B10A2_TYPELESS = 23, + DXGI_FORMAT_R10G10B10A2_UNORM = 24, + DXGI_FORMAT_R10G10B10A2_UINT = 25, + DXGI_FORMAT_R11G11B10_FLOAT = 26, + DXGI_FORMAT_R8G8B8A8_TYPELESS = 27, + DXGI_FORMAT_R8G8B8A8_UNORM = 28, + DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29, + DXGI_FORMAT_R8G8B8A8_UINT = 30, + DXGI_FORMAT_R8G8B8A8_SNORM = 31, + DXGI_FORMAT_R8G8B8A8_SINT = 32, + DXGI_FORMAT_R16G16_TYPELESS = 33, + DXGI_FORMAT_R16G16_FLOAT = 34, + DXGI_FORMAT_R16G16_UNORM = 35, + DXGI_FORMAT_R16G16_UINT = 36, + DXGI_FORMAT_R16G16_SNORM = 37, + DXGI_FORMAT_R16G16_SINT = 38, + DXGI_FORMAT_R32_TYPELESS = 39, + DXGI_FORMAT_D32_FLOAT = 40, + DXGI_FORMAT_R32_FLOAT = 41, + DXGI_FORMAT_R32_UINT = 42, + DXGI_FORMAT_R32_SINT = 43, + DXGI_FORMAT_R24G8_TYPELESS = 44, + DXGI_FORMAT_D24_UNORM_S8_UINT = 45, + DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46, + DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47, + DXGI_FORMAT_R8G8_TYPELESS = 48, + DXGI_FORMAT_R8G8_UNORM = 49, + DXGI_FORMAT_R8G8_UINT = 50, + DXGI_FORMAT_R8G8_SNORM = 51, + DXGI_FORMAT_R8G8_SINT = 52, + DXGI_FORMAT_R16_TYPELESS = 53, + DXGI_FORMAT_R16_FLOAT = 54, + DXGI_FORMAT_D16_UNORM = 55, + DXGI_FORMAT_R16_UNORM = 56, + DXGI_FORMAT_R16_UINT = 57, + DXGI_FORMAT_R16_SNORM = 58, + DXGI_FORMAT_R16_SINT = 59, + DXGI_FORMAT_R8_TYPELESS = 60, + DXGI_FORMAT_R8_UNORM = 61, + DXGI_FORMAT_R8_UINT = 62, + DXGI_FORMAT_R8_SNORM = 63, + DXGI_FORMAT_R8_SINT = 64, + DXGI_FORMAT_A8_UNORM = 65, + DXGI_FORMAT_R1_UNORM = 66, + DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67, + DXGI_FORMAT_R8G8_B8G8_UNORM = 68, + DXGI_FORMAT_G8R8_G8B8_UNORM = 69, + DXGI_FORMAT_BC1_TYPELESS = 70, + DXGI_FORMAT_BC1_UNORM = 71, + DXGI_FORMAT_BC1_UNORM_SRGB = 72, + DXGI_FORMAT_BC2_TYPELESS = 73, + DXGI_FORMAT_BC2_UNORM = 74, + DXGI_FORMAT_BC2_UNORM_SRGB = 75, + DXGI_FORMAT_BC3_TYPELESS = 76, + DXGI_FORMAT_BC3_UNORM = 77, + DXGI_FORMAT_BC3_UNORM_SRGB = 78, + DXGI_FORMAT_BC4_TYPELESS = 79, + DXGI_FORMAT_BC4_UNORM = 80, + DXGI_FORMAT_BC4_SNORM = 81, + DXGI_FORMAT_BC5_TYPELESS = 82, + DXGI_FORMAT_BC5_UNORM = 83, + DXGI_FORMAT_BC5_SNORM = 84, + DXGI_FORMAT_B5G6R5_UNORM = 85, + DXGI_FORMAT_B5G5R5A1_UNORM = 86, + DXGI_FORMAT_B8G8R8A8_UNORM = 87, + DXGI_FORMAT_B8G8R8X8_UNORM = 88, + DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89, + DXGI_FORMAT_B8G8R8A8_TYPELESS = 90, + DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91, + DXGI_FORMAT_B8G8R8X8_TYPELESS = 92, + DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93, + DXGI_FORMAT_BC6H_TYPELESS = 94, + DXGI_FORMAT_BC6H_UF16 = 95, + DXGI_FORMAT_BC6H_SF16 = 96, + DXGI_FORMAT_BC7_TYPELESS = 97, + DXGI_FORMAT_BC7_UNORM = 98, + DXGI_FORMAT_BC7_UNORM_SRGB = 99, + DXGI_FORMAT_AYUV = 100, + DXGI_FORMAT_Y410 = 101, + DXGI_FORMAT_Y416 = 102, + DXGI_FORMAT_NV12 = 103, + DXGI_FORMAT_P010 = 104, + DXGI_FORMAT_P016 = 105, + DXGI_FORMAT_420_OPAQUE = 106, + DXGI_FORMAT_YUY2 = 107, + DXGI_FORMAT_Y210 = 108, + DXGI_FORMAT_Y216 = 109, + DXGI_FORMAT_NV11 = 110, + DXGI_FORMAT_AI44 = 111, + DXGI_FORMAT_IA44 = 112, + DXGI_FORMAT_P8 = 113, + DXGI_FORMAT_A8P8 = 114, + DXGI_FORMAT_B4G4R4A4_UNORM = 115, + + DXGI_FORMAT_P208 = 130, + DXGI_FORMAT_V208 = 131, + DXGI_FORMAT_V408 = 132, + + + DXGI_FORMAT_FORCE_UINT = 0xffffffff +} DXGI_FORMAT; +# 7 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgitype.h" 2 +# 22 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgitype.h" +typedef struct DXGI_RGB +{ + float Red; + float Green; + float Blue; +} DXGI_RGB; + + +typedef struct _D3DCOLORVALUE { + float r; + float g; + float b; + float a; +} D3DCOLORVALUE; + + + + +typedef D3DCOLORVALUE DXGI_RGBA; + +typedef struct DXGI_GAMMA_CONTROL +{ + DXGI_RGB Scale; + DXGI_RGB Offset; + DXGI_RGB GammaCurve[ 1025 ]; +} DXGI_GAMMA_CONTROL; + +typedef struct DXGI_GAMMA_CONTROL_CAPABILITIES +{ + BOOL ScaleAndOffsetSupported; + float MaxConvertedValue; + float MinConvertedValue; + UINT NumGammaControlPoints; + float ControlPointPositions[1025]; +} DXGI_GAMMA_CONTROL_CAPABILITIES; + +typedef struct DXGI_RATIONAL +{ + UINT Numerator; + UINT Denominator; +} DXGI_RATIONAL; + +typedef enum DXGI_MODE_SCANLINE_ORDER +{ + DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED = 0, + DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE = 1, + DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST = 2, + DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST = 3 +} DXGI_MODE_SCANLINE_ORDER; + +typedef enum DXGI_MODE_SCALING +{ + DXGI_MODE_SCALING_UNSPECIFIED = 0, + DXGI_MODE_SCALING_CENTERED = 1, + DXGI_MODE_SCALING_STRETCHED = 2 +} DXGI_MODE_SCALING; + +typedef enum DXGI_MODE_ROTATION +{ + DXGI_MODE_ROTATION_UNSPECIFIED = 0, + DXGI_MODE_ROTATION_IDENTITY = 1, + DXGI_MODE_ROTATION_ROTATE90 = 2, + DXGI_MODE_ROTATION_ROTATE180 = 3, + DXGI_MODE_ROTATION_ROTATE270 = 4 +} DXGI_MODE_ROTATION; + +typedef struct DXGI_MODE_DESC +{ + UINT Width; + UINT Height; + DXGI_RATIONAL RefreshRate; + DXGI_FORMAT Format; + DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; + DXGI_MODE_SCALING Scaling; +} DXGI_MODE_DESC; + + + + + +typedef struct DXGI_SAMPLE_DESC +{ + UINT Count; + UINT Quality; +} DXGI_SAMPLE_DESC; + +typedef enum DXGI_COLOR_SPACE_TYPE +{ + DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0, + DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 1, + DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 2, + DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 3, + DXGI_COLOR_SPACE_RESERVED = 4, + DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 5, + DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 6, + DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 7, + DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 8, + DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 9, + DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 10, + DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 11, + DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 = 12, + DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020 = 13, + DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020 = 14, + DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020 = 15, + DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020 = 16, + DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020 = 17, + DXGI_COLOR_SPACE_CUSTOM = 0xFFFFFFFF +} DXGI_COLOR_SPACE_TYPE; + +typedef struct DXGI_JPEG_DC_HUFFMAN_TABLE +{ + BYTE CodeCounts[12]; + BYTE CodeValues[12]; +} DXGI_JPEG_DC_HUFFMAN_TABLE; + +typedef struct DXGI_JPEG_AC_HUFFMAN_TABLE +{ + BYTE CodeCounts[16]; + BYTE CodeValues[162]; +} DXGI_JPEG_AC_HUFFMAN_TABLE; + +typedef struct DXGI_JPEG_QUANTIZATION_TABLE +{ + BYTE Elements[64]; +} DXGI_JPEG_QUANTIZATION_TABLE; +# 143 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" 2 + + + +extern "C"{ +# 166 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +typedef UINT DXGI_USAGE; + +typedef struct DXGI_FRAME_STATISTICS + { + UINT PresentCount; + UINT PresentRefreshCount; + UINT SyncRefreshCount; + LARGE_INTEGER SyncQPCTime; + LARGE_INTEGER SyncGPUTime; + } DXGI_FRAME_STATISTICS; + +typedef struct DXGI_MAPPED_RECT + { + INT Pitch; + BYTE *pBits; + } DXGI_MAPPED_RECT; +# 193 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +typedef struct DXGI_ADAPTER_DESC + { + WCHAR Description[ 128 ]; + UINT VendorId; + UINT DeviceId; + UINT SubSysId; + UINT Revision; + SIZE_T DedicatedVideoMemory; + SIZE_T DedicatedSystemMemory; + SIZE_T SharedSystemMemory; + LUID AdapterLuid; + } DXGI_ADAPTER_DESC; +# 214 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +typedef struct DXGI_OUTPUT_DESC + { + WCHAR DeviceName[ 32 ]; + RECT DesktopCoordinates; + BOOL AttachedToDesktop; + DXGI_MODE_ROTATION Rotation; + HMONITOR Monitor; + } DXGI_OUTPUT_DESC; + +typedef struct DXGI_SHARED_RESOURCE + { + HANDLE Handle; + } DXGI_SHARED_RESOURCE; +# 238 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +typedef +enum DXGI_RESIDENCY + { + DXGI_RESIDENCY_FULLY_RESIDENT = 1, + DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY = 2, + DXGI_RESIDENCY_EVICTED_TO_DISK = 3 + } DXGI_RESIDENCY; + +typedef struct DXGI_SURFACE_DESC + { + UINT Width; + UINT Height; + DXGI_FORMAT Format; + DXGI_SAMPLE_DESC SampleDesc; + } DXGI_SURFACE_DESC; + +typedef +enum DXGI_SWAP_EFFECT + { + DXGI_SWAP_EFFECT_DISCARD = 0, + DXGI_SWAP_EFFECT_SEQUENTIAL = 1, + DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL = 3, + DXGI_SWAP_EFFECT_FLIP_DISCARD = 4 + } DXGI_SWAP_EFFECT; + +typedef +enum DXGI_SWAP_CHAIN_FLAG + { + DXGI_SWAP_CHAIN_FLAG_NONPREROTATED = 1, + DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH = 2, + DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE = 4, + DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT = 8, + DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER = 16, + DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY = 32, + DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT = 64, + DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER = 128, + DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO = 256, + DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO = 512, + DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED = 1024, + DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING = 2048 + } DXGI_SWAP_CHAIN_FLAG; + +typedef struct DXGI_SWAP_CHAIN_DESC + { + DXGI_MODE_DESC BufferDesc; + DXGI_SAMPLE_DESC SampleDesc; + DXGI_USAGE BufferUsage; + UINT BufferCount; + HWND OutputWindow; + BOOL Windowed; + DXGI_SWAP_EFFECT SwapEffect; + UINT Flags; + } DXGI_SWAP_CHAIN_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0000_v0_0_s_ifspec; +# 304 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern "C" const IID IID_IDXGIObject; + + + + struct __declspec(uuid("aec22fb8-76f3-4639-9be0-28eb43a67a2e")) __declspec(novtable) + IDXGIObject : public IUnknown + { + public: + virtual HRESULT __stdcall SetPrivateData( + + const GUID & Name, + UINT DataSize, + + const void *pData) = 0; + + virtual HRESULT __stdcall SetPrivateDataInterface( + + const GUID & Name, + + const IUnknown *pUnknown) = 0; + + virtual HRESULT __stdcall GetPrivateData( + + const GUID & Name, + + UINT *pDataSize, + + void *pData) = 0; + + virtual HRESULT __stdcall GetParent( + + const IID & riid, + + void **ppParent) = 0; + + }; +# 444 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern "C" const IID IID_IDXGIDeviceSubObject; + + + + struct __declspec(uuid("3d3e0379-f9de-4d58-bb6c-18d62992f1a6")) __declspec(novtable) + IDXGIDeviceSubObject : public IDXGIObject + { + public: + virtual HRESULT __stdcall GetDevice( + + const IID & riid, + + void **ppDevice) = 0; + + }; +# 574 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern "C" const IID IID_IDXGIResource; + + + + struct __declspec(uuid("035f3ab4-482e-4e50-b41f-8a7f8bd8960b")) __declspec(novtable) + IDXGIResource : public IDXGIDeviceSubObject + { + public: + virtual HRESULT __stdcall GetSharedHandle( + + HANDLE *pSharedHandle) = 0; + + virtual HRESULT __stdcall GetUsage( + DXGI_USAGE *pUsage) = 0; + + virtual HRESULT __stdcall SetEvictionPriority( + UINT EvictionPriority) = 0; + + virtual HRESULT __stdcall GetEvictionPriority( + + UINT *pEvictionPriority) = 0; + + }; +# 743 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern "C" const IID IID_IDXGIKeyedMutex; + + + + struct __declspec(uuid("9d8e1289-d7b3-465f-8126-250e349af85d")) __declspec(novtable) + IDXGIKeyedMutex : public IDXGIDeviceSubObject + { + public: + virtual HRESULT __stdcall AcquireSync( + UINT64 Key, + DWORD dwMilliseconds) = 0; + + virtual HRESULT __stdcall ReleaseSync( + UINT64 Key) = 0; + + }; +# 894 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0004_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0004_v0_0_s_ifspec; +# 904 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern "C" const IID IID_IDXGISurface; + + + + struct __declspec(uuid("cafcb56c-6ac3-4889-bf47-9e23bbd260ec")) __declspec(novtable) + IDXGISurface : public IDXGIDeviceSubObject + { + public: + virtual HRESULT __stdcall GetDesc( + + DXGI_SURFACE_DESC *pDesc) = 0; + + virtual HRESULT __stdcall Map( + + DXGI_MAPPED_RECT *pLockedRect, + UINT MapFlags) = 0; + + virtual HRESULT __stdcall Unmap( void) = 0; + + }; +# 1063 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern "C" const IID IID_IDXGISurface1; + + + + struct __declspec(uuid("4AE63092-6327-4c1b-80AE-BFE12EA32B86")) __declspec(novtable) + IDXGISurface1 : public IDXGISurface + { + public: + virtual HRESULT __stdcall GetDC( + BOOL Discard, + + HDC *phdc) = 0; + + virtual HRESULT __stdcall ReleaseDC( + + RECT *pDirtyRect) = 0; + + }; +# 1237 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0006_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0006_v0_0_s_ifspec; +# 1247 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern "C" const IID IID_IDXGIAdapter; + + + + struct __declspec(uuid("2411e7e1-12ac-4ccf-bd14-9798e8534dc0")) __declspec(novtable) + IDXGIAdapter : public IDXGIObject + { + public: + virtual HRESULT __stdcall EnumOutputs( + UINT Output, + + IDXGIOutput **ppOutput) = 0; + + virtual HRESULT __stdcall GetDesc( + + DXGI_ADAPTER_DESC *pDesc) = 0; + + virtual HRESULT __stdcall CheckInterfaceSupport( + + const GUID & InterfaceName, + + LARGE_INTEGER *pUMDVersion) = 0; + + }; +# 1405 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0007_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0007_v0_0_s_ifspec; +# 1415 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern "C" const IID IID_IDXGIOutput; + + + + struct __declspec(uuid("ae02eedb-c735-4690-8d52-5a8dc20213aa")) __declspec(novtable) + IDXGIOutput : public IDXGIObject + { + public: + virtual HRESULT __stdcall GetDesc( + + DXGI_OUTPUT_DESC *pDesc) = 0; + + virtual HRESULT __stdcall GetDisplayModeList( + DXGI_FORMAT EnumFormat, + UINT Flags, + + UINT *pNumModes, + + DXGI_MODE_DESC *pDesc) = 0; + + virtual HRESULT __stdcall FindClosestMatchingMode( + + const DXGI_MODE_DESC *pModeToMatch, + + DXGI_MODE_DESC *pClosestMatch, + + IUnknown *pConcernedDevice) = 0; + + virtual HRESULT __stdcall WaitForVBlank( void) = 0; + + virtual HRESULT __stdcall TakeOwnership( + + IUnknown *pDevice, + BOOL Exclusive) = 0; + + virtual void __stdcall ReleaseOwnership( void) = 0; + + virtual HRESULT __stdcall GetGammaControlCapabilities( + + DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps) = 0; + + virtual HRESULT __stdcall SetGammaControl( + + const DXGI_GAMMA_CONTROL *pArray) = 0; + + virtual HRESULT __stdcall GetGammaControl( + + DXGI_GAMMA_CONTROL *pArray) = 0; + + virtual HRESULT __stdcall SetDisplaySurface( + + IDXGISurface *pScanoutSurface) = 0; + + virtual HRESULT __stdcall GetDisplaySurfaceData( + + IDXGISurface *pDestination) = 0; + + virtual HRESULT __stdcall GetFrameStatistics( + + DXGI_FRAME_STATISTICS *pStats) = 0; + + }; +# 1691 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0008_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0008_v0_0_s_ifspec; +# 1701 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern "C" const IID IID_IDXGISwapChain; + + + + struct __declspec(uuid("310d36a0-d2e7-4c0a-aa04-6a9d23b8886a")) __declspec(novtable) + IDXGISwapChain : public IDXGIDeviceSubObject + { + public: + virtual HRESULT __stdcall Present( + UINT SyncInterval, + UINT Flags) = 0; + + virtual HRESULT __stdcall GetBuffer( + UINT Buffer, + + const IID & riid, + + void **ppSurface) = 0; + + virtual HRESULT __stdcall SetFullscreenState( + BOOL Fullscreen, + + IDXGIOutput *pTarget) = 0; + + virtual HRESULT __stdcall GetFullscreenState( + + BOOL *pFullscreen, + + IDXGIOutput **ppTarget) = 0; + + virtual HRESULT __stdcall GetDesc( + + DXGI_SWAP_CHAIN_DESC *pDesc) = 0; + + virtual HRESULT __stdcall ResizeBuffers( + UINT BufferCount, + UINT Width, + UINT Height, + DXGI_FORMAT NewFormat, + UINT SwapChainFlags) = 0; + + virtual HRESULT __stdcall ResizeTarget( + + const DXGI_MODE_DESC *pNewTargetParameters) = 0; + + virtual HRESULT __stdcall GetContainingOutput( + + IDXGIOutput **ppOutput) = 0; + + virtual HRESULT __stdcall GetFrameStatistics( + + DXGI_FRAME_STATISTICS *pStats) = 0; + + virtual HRESULT __stdcall GetLastPresentCount( + + UINT *pLastPresentCount) = 0; + + }; +# 1966 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0009_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0009_v0_0_s_ifspec; +# 1976 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern "C" const IID IID_IDXGIFactory; + + + + struct __declspec(uuid("7b7166ec-21c7-44ae-b21a-c9ae321ae369")) __declspec(novtable) + IDXGIFactory : public IDXGIObject + { + public: + virtual HRESULT __stdcall EnumAdapters( + UINT Adapter, + + IDXGIAdapter **ppAdapter) = 0; + + virtual HRESULT __stdcall MakeWindowAssociation( + HWND WindowHandle, + UINT Flags) = 0; + + virtual HRESULT __stdcall GetWindowAssociation( + + HWND *pWindowHandle) = 0; + + virtual HRESULT __stdcall CreateSwapChain( + + IUnknown *pDevice, + + DXGI_SWAP_CHAIN_DESC *pDesc, + + IDXGISwapChain **ppSwapChain) = 0; + + virtual HRESULT __stdcall CreateSoftwareAdapter( + HMODULE Module, + + IDXGIAdapter **ppAdapter) = 0; + + }; +# 2160 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +HRESULT __stdcall CreateDXGIFactory(const IID & riid, void **ppFactory); + + +HRESULT __stdcall CreateDXGIFactory1(const IID & riid, void **ppFactory); + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0010_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0010_v0_0_s_ifspec; +# 2176 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern "C" const IID IID_IDXGIDevice; + + + + struct __declspec(uuid("54ec77fa-1377-44e6-8c32-88fd5f44c84c")) __declspec(novtable) + IDXGIDevice : public IDXGIObject + { + public: + virtual HRESULT __stdcall GetAdapter( + + IDXGIAdapter **pAdapter) = 0; + + virtual HRESULT __stdcall CreateSurface( + + const DXGI_SURFACE_DESC *pDesc, + UINT NumSurfaces, + DXGI_USAGE Usage, + + const DXGI_SHARED_RESOURCE *pSharedResource, + + IDXGISurface **ppSurface) = 0; + + virtual HRESULT __stdcall QueryResourceResidency( + + IUnknown *const *ppResources, + + DXGI_RESIDENCY *pResidencyStatus, + UINT NumResources) = 0; + + virtual HRESULT __stdcall SetGPUThreadPriority( + INT Priority) = 0; + + virtual HRESULT __stdcall GetGPUThreadPriority( + + INT *pPriority) = 0; + + }; +# 2362 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +typedef +enum DXGI_ADAPTER_FLAG + { + DXGI_ADAPTER_FLAG_NONE = 0, + DXGI_ADAPTER_FLAG_REMOTE = 1, + DXGI_ADAPTER_FLAG_SOFTWARE = 2, + DXGI_ADAPTER_FLAG_FORCE_DWORD = 0xffffffff + } DXGI_ADAPTER_FLAG; + +typedef struct DXGI_ADAPTER_DESC1 + { + WCHAR Description[ 128 ]; + UINT VendorId; + UINT DeviceId; + UINT SubSysId; + UINT Revision; + SIZE_T DedicatedVideoMemory; + SIZE_T DedicatedSystemMemory; + SIZE_T SharedSystemMemory; + LUID AdapterLuid; + UINT Flags; + } DXGI_ADAPTER_DESC1; + +typedef struct DXGI_DISPLAY_COLOR_SPACE + { + FLOAT PrimaryCoordinates[ 8 ][ 2 ]; + FLOAT WhitePoints[ 16 ][ 2 ]; + } DXGI_DISPLAY_COLOR_SPACE; + + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0011_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0011_v0_0_s_ifspec; +# 2404 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern "C" const IID IID_IDXGIFactory1; + + + + struct __declspec(uuid("770aae78-f26f-4dba-a829-253c83d1b387")) __declspec(novtable) + IDXGIFactory1 : public IDXGIFactory + { + public: + virtual HRESULT __stdcall EnumAdapters1( + UINT Adapter, + + IDXGIAdapter1 **ppAdapter) = 0; + + virtual BOOL __stdcall IsCurrent( void) = 0; + + }; +# 2587 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern "C" const IID IID_IDXGIAdapter1; + + + + struct __declspec(uuid("29038f61-3839-4626-91fd-086879011a05")) __declspec(novtable) + IDXGIAdapter1 : public IDXGIAdapter + { + public: + virtual HRESULT __stdcall GetDesc1( + + DXGI_ADAPTER_DESC1 *pDesc) = 0; + + }; +# 2741 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern "C" const IID IID_IDXGIDevice1; + + + + struct __declspec(uuid("77db970f-6276-48ba-ba28-070143b4392c")) __declspec(novtable) + IDXGIDevice1 : public IDXGIDevice + { + public: + virtual HRESULT __stdcall SetMaximumFrameLatency( + UINT MaxLatency) = 0; + + virtual HRESULT __stdcall GetMaximumFrameLatency( + + UINT *pMaxLatency) = 0; + + }; +# 2924 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi.h" +extern "C" const GUID IID_IDXGIObject; +extern "C" const GUID IID_IDXGIDeviceSubObject; +extern "C" const GUID IID_IDXGIResource; +extern "C" const GUID IID_IDXGIKeyedMutex; +extern "C" const GUID IID_IDXGISurface; +extern "C" const GUID IID_IDXGISurface1; +extern "C" const GUID IID_IDXGIAdapter; +extern "C" const GUID IID_IDXGIOutput; +extern "C" const GUID IID_IDXGISwapChain; +extern "C" const GUID IID_IDXGIFactory; +extern "C" const GUID IID_IDXGIDevice; +extern "C" const GUID IID_IDXGIFactory1; +extern "C" const GUID IID_IDXGIAdapter1; +extern "C" const GUID IID_IDXGIDevice1; + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0014_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0014_v0_0_s_ifspec; + + + + + + +} +# 189 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3dcommon.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3dcommon.h" +typedef struct ID3D10Blob ID3D10Blob; + + + + + + +typedef struct ID3DDestructionNotifier ID3DDestructionNotifier; +# 61 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3dcommon.h" +extern "C"{ + + + + + + +typedef +enum D3D_DRIVER_TYPE + { + D3D_DRIVER_TYPE_UNKNOWN = 0, + D3D_DRIVER_TYPE_HARDWARE = ( D3D_DRIVER_TYPE_UNKNOWN + 1 ) , + D3D_DRIVER_TYPE_REFERENCE = ( D3D_DRIVER_TYPE_HARDWARE + 1 ) , + D3D_DRIVER_TYPE_NULL = ( D3D_DRIVER_TYPE_REFERENCE + 1 ) , + D3D_DRIVER_TYPE_SOFTWARE = ( D3D_DRIVER_TYPE_NULL + 1 ) , + D3D_DRIVER_TYPE_WARP = ( D3D_DRIVER_TYPE_SOFTWARE + 1 ) + } D3D_DRIVER_TYPE; + +typedef +enum D3D_FEATURE_LEVEL + { + D3D_FEATURE_LEVEL_9_1 = 0x9100, + D3D_FEATURE_LEVEL_9_2 = 0x9200, + D3D_FEATURE_LEVEL_9_3 = 0x9300, + D3D_FEATURE_LEVEL_10_0 = 0xa000, + D3D_FEATURE_LEVEL_10_1 = 0xa100, + D3D_FEATURE_LEVEL_11_0 = 0xb000, + D3D_FEATURE_LEVEL_11_1 = 0xb100, + D3D_FEATURE_LEVEL_12_0 = 0xc000, + D3D_FEATURE_LEVEL_12_1 = 0xc100 + } D3D_FEATURE_LEVEL; +# 108 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3dcommon.h" +typedef +enum D3D_PRIMITIVE_TOPOLOGY + { + D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0, + D3D_PRIMITIVE_TOPOLOGY_POINTLIST = 1, + D3D_PRIMITIVE_TOPOLOGY_LINELIST = 2, + D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3, + D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4, + D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5, + D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10, + D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11, + D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12, + D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13, + D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33, + D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34, + D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35, + D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36, + D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37, + D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38, + D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39, + D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40, + D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41, + D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42, + D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43, + D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44, + D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45, + D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46, + D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47, + D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48, + D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49, + D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50, + D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51, + D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52, + D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53, + D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54, + D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55, + D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56, + D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57, + D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58, + D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59, + D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60, + D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61, + D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62, + D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63, + D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64, + D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED, + D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST, + D3D10_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST, + D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, + D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, + D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, + D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ, + D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ, + D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ, + D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ, + D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED, + D3D11_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST, + D3D11_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST, + D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, + D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, + D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, + D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ, + D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ, + D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ, + D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ, + D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST, + D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST + } D3D_PRIMITIVE_TOPOLOGY; + +typedef +enum D3D_PRIMITIVE + { + D3D_PRIMITIVE_UNDEFINED = 0, + D3D_PRIMITIVE_POINT = 1, + D3D_PRIMITIVE_LINE = 2, + D3D_PRIMITIVE_TRIANGLE = 3, + D3D_PRIMITIVE_LINE_ADJ = 6, + D3D_PRIMITIVE_TRIANGLE_ADJ = 7, + D3D_PRIMITIVE_1_CONTROL_POINT_PATCH = 8, + D3D_PRIMITIVE_2_CONTROL_POINT_PATCH = 9, + D3D_PRIMITIVE_3_CONTROL_POINT_PATCH = 10, + D3D_PRIMITIVE_4_CONTROL_POINT_PATCH = 11, + D3D_PRIMITIVE_5_CONTROL_POINT_PATCH = 12, + D3D_PRIMITIVE_6_CONTROL_POINT_PATCH = 13, + D3D_PRIMITIVE_7_CONTROL_POINT_PATCH = 14, + D3D_PRIMITIVE_8_CONTROL_POINT_PATCH = 15, + D3D_PRIMITIVE_9_CONTROL_POINT_PATCH = 16, + D3D_PRIMITIVE_10_CONTROL_POINT_PATCH = 17, + D3D_PRIMITIVE_11_CONTROL_POINT_PATCH = 18, + D3D_PRIMITIVE_12_CONTROL_POINT_PATCH = 19, + D3D_PRIMITIVE_13_CONTROL_POINT_PATCH = 20, + D3D_PRIMITIVE_14_CONTROL_POINT_PATCH = 21, + D3D_PRIMITIVE_15_CONTROL_POINT_PATCH = 22, + D3D_PRIMITIVE_16_CONTROL_POINT_PATCH = 23, + D3D_PRIMITIVE_17_CONTROL_POINT_PATCH = 24, + D3D_PRIMITIVE_18_CONTROL_POINT_PATCH = 25, + D3D_PRIMITIVE_19_CONTROL_POINT_PATCH = 26, + D3D_PRIMITIVE_20_CONTROL_POINT_PATCH = 27, + D3D_PRIMITIVE_21_CONTROL_POINT_PATCH = 28, + D3D_PRIMITIVE_22_CONTROL_POINT_PATCH = 29, + D3D_PRIMITIVE_23_CONTROL_POINT_PATCH = 30, + D3D_PRIMITIVE_24_CONTROL_POINT_PATCH = 31, + D3D_PRIMITIVE_25_CONTROL_POINT_PATCH = 32, + D3D_PRIMITIVE_26_CONTROL_POINT_PATCH = 33, + D3D_PRIMITIVE_27_CONTROL_POINT_PATCH = 34, + D3D_PRIMITIVE_28_CONTROL_POINT_PATCH = 35, + D3D_PRIMITIVE_29_CONTROL_POINT_PATCH = 36, + D3D_PRIMITIVE_30_CONTROL_POINT_PATCH = 37, + D3D_PRIMITIVE_31_CONTROL_POINT_PATCH = 38, + D3D_PRIMITIVE_32_CONTROL_POINT_PATCH = 39, + D3D10_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED, + D3D10_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT, + D3D10_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE, + D3D10_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE, + D3D10_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ, + D3D10_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ, + D3D11_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED, + D3D11_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT, + D3D11_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE, + D3D11_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE, + D3D11_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ, + D3D11_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ, + D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH = D3D_PRIMITIVE_1_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH = D3D_PRIMITIVE_2_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH = D3D_PRIMITIVE_3_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH = D3D_PRIMITIVE_4_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH = D3D_PRIMITIVE_5_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH = D3D_PRIMITIVE_6_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH = D3D_PRIMITIVE_7_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH = D3D_PRIMITIVE_8_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH = D3D_PRIMITIVE_9_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH = D3D_PRIMITIVE_10_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH = D3D_PRIMITIVE_11_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH = D3D_PRIMITIVE_12_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH = D3D_PRIMITIVE_13_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH = D3D_PRIMITIVE_14_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH = D3D_PRIMITIVE_15_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH = D3D_PRIMITIVE_16_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH = D3D_PRIMITIVE_17_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH = D3D_PRIMITIVE_18_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH = D3D_PRIMITIVE_19_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH = D3D_PRIMITIVE_20_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH = D3D_PRIMITIVE_21_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH = D3D_PRIMITIVE_22_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH = D3D_PRIMITIVE_23_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH = D3D_PRIMITIVE_24_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH = D3D_PRIMITIVE_25_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH = D3D_PRIMITIVE_26_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH = D3D_PRIMITIVE_27_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH = D3D_PRIMITIVE_28_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH = D3D_PRIMITIVE_29_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH = D3D_PRIMITIVE_30_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH = D3D_PRIMITIVE_31_CONTROL_POINT_PATCH, + D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH = D3D_PRIMITIVE_32_CONTROL_POINT_PATCH + } D3D_PRIMITIVE; + +typedef +enum D3D_SRV_DIMENSION + { + D3D_SRV_DIMENSION_UNKNOWN = 0, + D3D_SRV_DIMENSION_BUFFER = 1, + D3D_SRV_DIMENSION_TEXTURE1D = 2, + D3D_SRV_DIMENSION_TEXTURE1DARRAY = 3, + D3D_SRV_DIMENSION_TEXTURE2D = 4, + D3D_SRV_DIMENSION_TEXTURE2DARRAY = 5, + D3D_SRV_DIMENSION_TEXTURE2DMS = 6, + D3D_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, + D3D_SRV_DIMENSION_TEXTURE3D = 8, + D3D_SRV_DIMENSION_TEXTURECUBE = 9, + D3D_SRV_DIMENSION_TEXTURECUBEARRAY = 10, + D3D_SRV_DIMENSION_BUFFEREX = 11, + D3D10_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, + D3D10_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, + D3D10_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, + D3D10_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, + D3D10_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, + D3D10_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, + D3D10_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, + D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, + D3D10_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, + D3D10_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, + D3D10_1_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, + D3D10_1_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, + D3D10_1_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, + D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, + D3D10_1_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, + D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, + D3D10_1_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, + D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, + D3D10_1_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, + D3D10_1_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, + D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY, + D3D11_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, + D3D11_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, + D3D11_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, + D3D11_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, + D3D11_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, + D3D11_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, + D3D11_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, + D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, + D3D11_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, + D3D11_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, + D3D11_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY, + D3D11_SRV_DIMENSION_BUFFEREX = D3D_SRV_DIMENSION_BUFFEREX + } D3D_SRV_DIMENSION; + +typedef struct _D3D_SHADER_MACRO + { + LPCSTR Name; + LPCSTR Definition; + } D3D_SHADER_MACRO; + +typedef struct _D3D_SHADER_MACRO *LPD3D_SHADER_MACRO; + +extern "C" const GUID IID_ID3D10Blob; + + +extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0000_v0_0_s_ifspec; +# 365 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3dcommon.h" +extern "C" const IID IID_ID3D10Blob; + + + + struct __declspec(uuid("8BA5FB08-5195-40e2-AC58-0D989C3A0102")) __declspec(novtable) + ID3D10Blob : public IUnknown + { + public: + virtual LPVOID __stdcall GetBufferPointer( void) = 0; + + virtual SIZE_T __stdcall GetBufferSize( void) = 0; + + }; +# 447 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3dcommon.h" +typedef struct ID3D10Blob* LPD3D10BLOB; +typedef ID3D10Blob ID3DBlob; + +typedef ID3DBlob* LPD3DBLOB; + +typedef void ( __stdcall *PFN_DESTRUCTION_CALLBACK )( + void *pData); + + + +extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0001_v0_0_s_ifspec; +# 467 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3dcommon.h" +extern "C" const IID IID_ID3DDestructionNotifier; + + + + struct __declspec(uuid("a06eb39a-50da-425b-8c31-4eecd6c270f3")) __declspec(novtable) + ID3DDestructionNotifier : public IUnknown + { + public: + virtual HRESULT __stdcall RegisterDestructionCallback( + + PFN_DESTRUCTION_CALLBACK callbackFn, + + void *pData, + + UINT *pCallbackID) = 0; + + virtual HRESULT __stdcall UnregisterDestructionCallback( + + UINT callbackID) = 0; + + }; +# 565 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3dcommon.h" +typedef +enum _D3D_INCLUDE_TYPE + { + D3D_INCLUDE_LOCAL = 0, + D3D_INCLUDE_SYSTEM = ( D3D_INCLUDE_LOCAL + 1 ) , + D3D10_INCLUDE_LOCAL = D3D_INCLUDE_LOCAL, + D3D10_INCLUDE_SYSTEM = D3D_INCLUDE_SYSTEM, + D3D_INCLUDE_FORCE_DWORD = 0x7fffffff + } D3D_INCLUDE_TYPE; + +typedef struct ID3DInclude ID3DInclude; + + +struct __declspec(novtable) ID3DInclude +{ + virtual __declspec(nothrow) HRESULT __stdcall Open( D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes) = 0; + virtual __declspec(nothrow) HRESULT __stdcall Close( LPCVOID pData) = 0; +}; +typedef ID3DInclude* LPD3DINCLUDE; +typedef +enum _D3D_SHADER_VARIABLE_CLASS + { + D3D_SVC_SCALAR = 0, + D3D_SVC_VECTOR = ( D3D_SVC_SCALAR + 1 ) , + D3D_SVC_MATRIX_ROWS = ( D3D_SVC_VECTOR + 1 ) , + D3D_SVC_MATRIX_COLUMNS = ( D3D_SVC_MATRIX_ROWS + 1 ) , + D3D_SVC_OBJECT = ( D3D_SVC_MATRIX_COLUMNS + 1 ) , + D3D_SVC_STRUCT = ( D3D_SVC_OBJECT + 1 ) , + D3D_SVC_INTERFACE_CLASS = ( D3D_SVC_STRUCT + 1 ) , + D3D_SVC_INTERFACE_POINTER = ( D3D_SVC_INTERFACE_CLASS + 1 ) , + D3D10_SVC_SCALAR = D3D_SVC_SCALAR, + D3D10_SVC_VECTOR = D3D_SVC_VECTOR, + D3D10_SVC_MATRIX_ROWS = D3D_SVC_MATRIX_ROWS, + D3D10_SVC_MATRIX_COLUMNS = D3D_SVC_MATRIX_COLUMNS, + D3D10_SVC_OBJECT = D3D_SVC_OBJECT, + D3D10_SVC_STRUCT = D3D_SVC_STRUCT, + D3D11_SVC_INTERFACE_CLASS = D3D_SVC_INTERFACE_CLASS, + D3D11_SVC_INTERFACE_POINTER = D3D_SVC_INTERFACE_POINTER, + D3D_SVC_FORCE_DWORD = 0x7fffffff + } D3D_SHADER_VARIABLE_CLASS; + +typedef +enum _D3D_SHADER_VARIABLE_FLAGS + { + D3D_SVF_USERPACKED = 1, + D3D_SVF_USED = 2, + D3D_SVF_INTERFACE_POINTER = 4, + D3D_SVF_INTERFACE_PARAMETER = 8, + D3D10_SVF_USERPACKED = D3D_SVF_USERPACKED, + D3D10_SVF_USED = D3D_SVF_USED, + D3D11_SVF_INTERFACE_POINTER = D3D_SVF_INTERFACE_POINTER, + D3D11_SVF_INTERFACE_PARAMETER = D3D_SVF_INTERFACE_PARAMETER, + D3D_SVF_FORCE_DWORD = 0x7fffffff + } D3D_SHADER_VARIABLE_FLAGS; + +typedef +enum _D3D_SHADER_VARIABLE_TYPE + { + D3D_SVT_VOID = 0, + D3D_SVT_BOOL = 1, + D3D_SVT_INT = 2, + D3D_SVT_FLOAT = 3, + D3D_SVT_STRING = 4, + D3D_SVT_TEXTURE = 5, + D3D_SVT_TEXTURE1D = 6, + D3D_SVT_TEXTURE2D = 7, + D3D_SVT_TEXTURE3D = 8, + D3D_SVT_TEXTURECUBE = 9, + D3D_SVT_SAMPLER = 10, + D3D_SVT_SAMPLER1D = 11, + D3D_SVT_SAMPLER2D = 12, + D3D_SVT_SAMPLER3D = 13, + D3D_SVT_SAMPLERCUBE = 14, + D3D_SVT_PIXELSHADER = 15, + D3D_SVT_VERTEXSHADER = 16, + D3D_SVT_PIXELFRAGMENT = 17, + D3D_SVT_VERTEXFRAGMENT = 18, + D3D_SVT_UINT = 19, + D3D_SVT_UINT8 = 20, + D3D_SVT_GEOMETRYSHADER = 21, + D3D_SVT_RASTERIZER = 22, + D3D_SVT_DEPTHSTENCIL = 23, + D3D_SVT_BLEND = 24, + D3D_SVT_BUFFER = 25, + D3D_SVT_CBUFFER = 26, + D3D_SVT_TBUFFER = 27, + D3D_SVT_TEXTURE1DARRAY = 28, + D3D_SVT_TEXTURE2DARRAY = 29, + D3D_SVT_RENDERTARGETVIEW = 30, + D3D_SVT_DEPTHSTENCILVIEW = 31, + D3D_SVT_TEXTURE2DMS = 32, + D3D_SVT_TEXTURE2DMSARRAY = 33, + D3D_SVT_TEXTURECUBEARRAY = 34, + D3D_SVT_HULLSHADER = 35, + D3D_SVT_DOMAINSHADER = 36, + D3D_SVT_INTERFACE_POINTER = 37, + D3D_SVT_COMPUTESHADER = 38, + D3D_SVT_DOUBLE = 39, + D3D_SVT_RWTEXTURE1D = 40, + D3D_SVT_RWTEXTURE1DARRAY = 41, + D3D_SVT_RWTEXTURE2D = 42, + D3D_SVT_RWTEXTURE2DARRAY = 43, + D3D_SVT_RWTEXTURE3D = 44, + D3D_SVT_RWBUFFER = 45, + D3D_SVT_BYTEADDRESS_BUFFER = 46, + D3D_SVT_RWBYTEADDRESS_BUFFER = 47, + D3D_SVT_STRUCTURED_BUFFER = 48, + D3D_SVT_RWSTRUCTURED_BUFFER = 49, + D3D_SVT_APPEND_STRUCTURED_BUFFER = 50, + D3D_SVT_CONSUME_STRUCTURED_BUFFER = 51, + D3D_SVT_MIN8FLOAT = 52, + D3D_SVT_MIN10FLOAT = 53, + D3D_SVT_MIN16FLOAT = 54, + D3D_SVT_MIN12INT = 55, + D3D_SVT_MIN16INT = 56, + D3D_SVT_MIN16UINT = 57, + D3D10_SVT_VOID = D3D_SVT_VOID, + D3D10_SVT_BOOL = D3D_SVT_BOOL, + D3D10_SVT_INT = D3D_SVT_INT, + D3D10_SVT_FLOAT = D3D_SVT_FLOAT, + D3D10_SVT_STRING = D3D_SVT_STRING, + D3D10_SVT_TEXTURE = D3D_SVT_TEXTURE, + D3D10_SVT_TEXTURE1D = D3D_SVT_TEXTURE1D, + D3D10_SVT_TEXTURE2D = D3D_SVT_TEXTURE2D, + D3D10_SVT_TEXTURE3D = D3D_SVT_TEXTURE3D, + D3D10_SVT_TEXTURECUBE = D3D_SVT_TEXTURECUBE, + D3D10_SVT_SAMPLER = D3D_SVT_SAMPLER, + D3D10_SVT_SAMPLER1D = D3D_SVT_SAMPLER1D, + D3D10_SVT_SAMPLER2D = D3D_SVT_SAMPLER2D, + D3D10_SVT_SAMPLER3D = D3D_SVT_SAMPLER3D, + D3D10_SVT_SAMPLERCUBE = D3D_SVT_SAMPLERCUBE, + D3D10_SVT_PIXELSHADER = D3D_SVT_PIXELSHADER, + D3D10_SVT_VERTEXSHADER = D3D_SVT_VERTEXSHADER, + D3D10_SVT_PIXELFRAGMENT = D3D_SVT_PIXELFRAGMENT, + D3D10_SVT_VERTEXFRAGMENT = D3D_SVT_VERTEXFRAGMENT, + D3D10_SVT_UINT = D3D_SVT_UINT, + D3D10_SVT_UINT8 = D3D_SVT_UINT8, + D3D10_SVT_GEOMETRYSHADER = D3D_SVT_GEOMETRYSHADER, + D3D10_SVT_RASTERIZER = D3D_SVT_RASTERIZER, + D3D10_SVT_DEPTHSTENCIL = D3D_SVT_DEPTHSTENCIL, + D3D10_SVT_BLEND = D3D_SVT_BLEND, + D3D10_SVT_BUFFER = D3D_SVT_BUFFER, + D3D10_SVT_CBUFFER = D3D_SVT_CBUFFER, + D3D10_SVT_TBUFFER = D3D_SVT_TBUFFER, + D3D10_SVT_TEXTURE1DARRAY = D3D_SVT_TEXTURE1DARRAY, + D3D10_SVT_TEXTURE2DARRAY = D3D_SVT_TEXTURE2DARRAY, + D3D10_SVT_RENDERTARGETVIEW = D3D_SVT_RENDERTARGETVIEW, + D3D10_SVT_DEPTHSTENCILVIEW = D3D_SVT_DEPTHSTENCILVIEW, + D3D10_SVT_TEXTURE2DMS = D3D_SVT_TEXTURE2DMS, + D3D10_SVT_TEXTURE2DMSARRAY = D3D_SVT_TEXTURE2DMSARRAY, + D3D10_SVT_TEXTURECUBEARRAY = D3D_SVT_TEXTURECUBEARRAY, + D3D11_SVT_HULLSHADER = D3D_SVT_HULLSHADER, + D3D11_SVT_DOMAINSHADER = D3D_SVT_DOMAINSHADER, + D3D11_SVT_INTERFACE_POINTER = D3D_SVT_INTERFACE_POINTER, + D3D11_SVT_COMPUTESHADER = D3D_SVT_COMPUTESHADER, + D3D11_SVT_DOUBLE = D3D_SVT_DOUBLE, + D3D11_SVT_RWTEXTURE1D = D3D_SVT_RWTEXTURE1D, + D3D11_SVT_RWTEXTURE1DARRAY = D3D_SVT_RWTEXTURE1DARRAY, + D3D11_SVT_RWTEXTURE2D = D3D_SVT_RWTEXTURE2D, + D3D11_SVT_RWTEXTURE2DARRAY = D3D_SVT_RWTEXTURE2DARRAY, + D3D11_SVT_RWTEXTURE3D = D3D_SVT_RWTEXTURE3D, + D3D11_SVT_RWBUFFER = D3D_SVT_RWBUFFER, + D3D11_SVT_BYTEADDRESS_BUFFER = D3D_SVT_BYTEADDRESS_BUFFER, + D3D11_SVT_RWBYTEADDRESS_BUFFER = D3D_SVT_RWBYTEADDRESS_BUFFER, + D3D11_SVT_STRUCTURED_BUFFER = D3D_SVT_STRUCTURED_BUFFER, + D3D11_SVT_RWSTRUCTURED_BUFFER = D3D_SVT_RWSTRUCTURED_BUFFER, + D3D11_SVT_APPEND_STRUCTURED_BUFFER = D3D_SVT_APPEND_STRUCTURED_BUFFER, + D3D11_SVT_CONSUME_STRUCTURED_BUFFER = D3D_SVT_CONSUME_STRUCTURED_BUFFER, + D3D_SVT_FORCE_DWORD = 0x7fffffff + } D3D_SHADER_VARIABLE_TYPE; + +typedef +enum _D3D_SHADER_INPUT_FLAGS + { + D3D_SIF_USERPACKED = 0x1, + D3D_SIF_COMPARISON_SAMPLER = 0x2, + D3D_SIF_TEXTURE_COMPONENT_0 = 0x4, + D3D_SIF_TEXTURE_COMPONENT_1 = 0x8, + D3D_SIF_TEXTURE_COMPONENTS = 0xc, + D3D_SIF_UNUSED = 0x10, + D3D10_SIF_USERPACKED = D3D_SIF_USERPACKED, + D3D10_SIF_COMPARISON_SAMPLER = D3D_SIF_COMPARISON_SAMPLER, + D3D10_SIF_TEXTURE_COMPONENT_0 = D3D_SIF_TEXTURE_COMPONENT_0, + D3D10_SIF_TEXTURE_COMPONENT_1 = D3D_SIF_TEXTURE_COMPONENT_1, + D3D10_SIF_TEXTURE_COMPONENTS = D3D_SIF_TEXTURE_COMPONENTS, + D3D_SIF_FORCE_DWORD = 0x7fffffff + } D3D_SHADER_INPUT_FLAGS; + +typedef +enum _D3D_SHADER_INPUT_TYPE + { + D3D_SIT_CBUFFER = 0, + D3D_SIT_TBUFFER = ( D3D_SIT_CBUFFER + 1 ) , + D3D_SIT_TEXTURE = ( D3D_SIT_TBUFFER + 1 ) , + D3D_SIT_SAMPLER = ( D3D_SIT_TEXTURE + 1 ) , + D3D_SIT_UAV_RWTYPED = ( D3D_SIT_SAMPLER + 1 ) , + D3D_SIT_STRUCTURED = ( D3D_SIT_UAV_RWTYPED + 1 ) , + D3D_SIT_UAV_RWSTRUCTURED = ( D3D_SIT_STRUCTURED + 1 ) , + D3D_SIT_BYTEADDRESS = ( D3D_SIT_UAV_RWSTRUCTURED + 1 ) , + D3D_SIT_UAV_RWBYTEADDRESS = ( D3D_SIT_BYTEADDRESS + 1 ) , + D3D_SIT_UAV_APPEND_STRUCTURED = ( D3D_SIT_UAV_RWBYTEADDRESS + 1 ) , + D3D_SIT_UAV_CONSUME_STRUCTURED = ( D3D_SIT_UAV_APPEND_STRUCTURED + 1 ) , + D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = ( D3D_SIT_UAV_CONSUME_STRUCTURED + 1 ) , + D3D10_SIT_CBUFFER = D3D_SIT_CBUFFER, + D3D10_SIT_TBUFFER = D3D_SIT_TBUFFER, + D3D10_SIT_TEXTURE = D3D_SIT_TEXTURE, + D3D10_SIT_SAMPLER = D3D_SIT_SAMPLER, + D3D11_SIT_UAV_RWTYPED = D3D_SIT_UAV_RWTYPED, + D3D11_SIT_STRUCTURED = D3D_SIT_STRUCTURED, + D3D11_SIT_UAV_RWSTRUCTURED = D3D_SIT_UAV_RWSTRUCTURED, + D3D11_SIT_BYTEADDRESS = D3D_SIT_BYTEADDRESS, + D3D11_SIT_UAV_RWBYTEADDRESS = D3D_SIT_UAV_RWBYTEADDRESS, + D3D11_SIT_UAV_APPEND_STRUCTURED = D3D_SIT_UAV_APPEND_STRUCTURED, + D3D11_SIT_UAV_CONSUME_STRUCTURED = D3D_SIT_UAV_CONSUME_STRUCTURED, + D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER + } D3D_SHADER_INPUT_TYPE; + +typedef +enum _D3D_SHADER_CBUFFER_FLAGS + { + D3D_CBF_USERPACKED = 1, + D3D10_CBF_USERPACKED = D3D_CBF_USERPACKED, + D3D_CBF_FORCE_DWORD = 0x7fffffff + } D3D_SHADER_CBUFFER_FLAGS; + +typedef +enum _D3D_CBUFFER_TYPE + { + D3D_CT_CBUFFER = 0, + D3D_CT_TBUFFER = ( D3D_CT_CBUFFER + 1 ) , + D3D_CT_INTERFACE_POINTERS = ( D3D_CT_TBUFFER + 1 ) , + D3D_CT_RESOURCE_BIND_INFO = ( D3D_CT_INTERFACE_POINTERS + 1 ) , + D3D10_CT_CBUFFER = D3D_CT_CBUFFER, + D3D10_CT_TBUFFER = D3D_CT_TBUFFER, + D3D11_CT_CBUFFER = D3D_CT_CBUFFER, + D3D11_CT_TBUFFER = D3D_CT_TBUFFER, + D3D11_CT_INTERFACE_POINTERS = D3D_CT_INTERFACE_POINTERS, + D3D11_CT_RESOURCE_BIND_INFO = D3D_CT_RESOURCE_BIND_INFO + } D3D_CBUFFER_TYPE; + +typedef +enum D3D_NAME + { + D3D_NAME_UNDEFINED = 0, + D3D_NAME_POSITION = 1, + D3D_NAME_CLIP_DISTANCE = 2, + D3D_NAME_CULL_DISTANCE = 3, + D3D_NAME_RENDER_TARGET_ARRAY_INDEX = 4, + D3D_NAME_VIEWPORT_ARRAY_INDEX = 5, + D3D_NAME_VERTEX_ID = 6, + D3D_NAME_PRIMITIVE_ID = 7, + D3D_NAME_INSTANCE_ID = 8, + D3D_NAME_IS_FRONT_FACE = 9, + D3D_NAME_SAMPLE_INDEX = 10, + D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11, + D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12, + D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13, + D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14, + D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15, + D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16, + D3D_NAME_TARGET = 64, + D3D_NAME_DEPTH = 65, + D3D_NAME_COVERAGE = 66, + D3D_NAME_DEPTH_GREATER_EQUAL = 67, + D3D_NAME_DEPTH_LESS_EQUAL = 68, + D3D_NAME_STENCIL_REF = 69, + D3D_NAME_INNER_COVERAGE = 70, + D3D10_NAME_UNDEFINED = D3D_NAME_UNDEFINED, + D3D10_NAME_POSITION = D3D_NAME_POSITION, + D3D10_NAME_CLIP_DISTANCE = D3D_NAME_CLIP_DISTANCE, + D3D10_NAME_CULL_DISTANCE = D3D_NAME_CULL_DISTANCE, + D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = D3D_NAME_RENDER_TARGET_ARRAY_INDEX, + D3D10_NAME_VIEWPORT_ARRAY_INDEX = D3D_NAME_VIEWPORT_ARRAY_INDEX, + D3D10_NAME_VERTEX_ID = D3D_NAME_VERTEX_ID, + D3D10_NAME_PRIMITIVE_ID = D3D_NAME_PRIMITIVE_ID, + D3D10_NAME_INSTANCE_ID = D3D_NAME_INSTANCE_ID, + D3D10_NAME_IS_FRONT_FACE = D3D_NAME_IS_FRONT_FACE, + D3D10_NAME_SAMPLE_INDEX = D3D_NAME_SAMPLE_INDEX, + D3D10_NAME_TARGET = D3D_NAME_TARGET, + D3D10_NAME_DEPTH = D3D_NAME_DEPTH, + D3D10_NAME_COVERAGE = D3D_NAME_COVERAGE, + D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR = D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR, + D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR, + D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR = D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR, + D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR = D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR, + D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR = D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR, + D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR = D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR, + D3D11_NAME_DEPTH_GREATER_EQUAL = D3D_NAME_DEPTH_GREATER_EQUAL, + D3D11_NAME_DEPTH_LESS_EQUAL = D3D_NAME_DEPTH_LESS_EQUAL, + D3D11_NAME_STENCIL_REF = D3D_NAME_STENCIL_REF, + D3D11_NAME_INNER_COVERAGE = D3D_NAME_INNER_COVERAGE + } D3D_NAME; + +typedef +enum D3D_RESOURCE_RETURN_TYPE + { + D3D_RETURN_TYPE_UNORM = 1, + D3D_RETURN_TYPE_SNORM = 2, + D3D_RETURN_TYPE_SINT = 3, + D3D_RETURN_TYPE_UINT = 4, + D3D_RETURN_TYPE_FLOAT = 5, + D3D_RETURN_TYPE_MIXED = 6, + D3D_RETURN_TYPE_DOUBLE = 7, + D3D_RETURN_TYPE_CONTINUED = 8, + D3D10_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM, + D3D10_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM, + D3D10_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT, + D3D10_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT, + D3D10_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT, + D3D10_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED, + D3D11_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM, + D3D11_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM, + D3D11_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT, + D3D11_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT, + D3D11_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT, + D3D11_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED, + D3D11_RETURN_TYPE_DOUBLE = D3D_RETURN_TYPE_DOUBLE, + D3D11_RETURN_TYPE_CONTINUED = D3D_RETURN_TYPE_CONTINUED + } D3D_RESOURCE_RETURN_TYPE; + +typedef +enum D3D_REGISTER_COMPONENT_TYPE + { + D3D_REGISTER_COMPONENT_UNKNOWN = 0, + D3D_REGISTER_COMPONENT_UINT32 = 1, + D3D_REGISTER_COMPONENT_SINT32 = 2, + D3D_REGISTER_COMPONENT_FLOAT32 = 3, + D3D10_REGISTER_COMPONENT_UNKNOWN = D3D_REGISTER_COMPONENT_UNKNOWN, + D3D10_REGISTER_COMPONENT_UINT32 = D3D_REGISTER_COMPONENT_UINT32, + D3D10_REGISTER_COMPONENT_SINT32 = D3D_REGISTER_COMPONENT_SINT32, + D3D10_REGISTER_COMPONENT_FLOAT32 = D3D_REGISTER_COMPONENT_FLOAT32 + } D3D_REGISTER_COMPONENT_TYPE; + +typedef +enum D3D_TESSELLATOR_DOMAIN + { + D3D_TESSELLATOR_DOMAIN_UNDEFINED = 0, + D3D_TESSELLATOR_DOMAIN_ISOLINE = 1, + D3D_TESSELLATOR_DOMAIN_TRI = 2, + D3D_TESSELLATOR_DOMAIN_QUAD = 3, + D3D11_TESSELLATOR_DOMAIN_UNDEFINED = D3D_TESSELLATOR_DOMAIN_UNDEFINED, + D3D11_TESSELLATOR_DOMAIN_ISOLINE = D3D_TESSELLATOR_DOMAIN_ISOLINE, + D3D11_TESSELLATOR_DOMAIN_TRI = D3D_TESSELLATOR_DOMAIN_TRI, + D3D11_TESSELLATOR_DOMAIN_QUAD = D3D_TESSELLATOR_DOMAIN_QUAD + } D3D_TESSELLATOR_DOMAIN; + +typedef +enum D3D_TESSELLATOR_PARTITIONING + { + D3D_TESSELLATOR_PARTITIONING_UNDEFINED = 0, + D3D_TESSELLATOR_PARTITIONING_INTEGER = 1, + D3D_TESSELLATOR_PARTITIONING_POW2 = 2, + D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3, + D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4, + D3D11_TESSELLATOR_PARTITIONING_UNDEFINED = D3D_TESSELLATOR_PARTITIONING_UNDEFINED, + D3D11_TESSELLATOR_PARTITIONING_INTEGER = D3D_TESSELLATOR_PARTITIONING_INTEGER, + D3D11_TESSELLATOR_PARTITIONING_POW2 = D3D_TESSELLATOR_PARTITIONING_POW2, + D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD, + D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN + } D3D_TESSELLATOR_PARTITIONING; + +typedef +enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE + { + D3D_TESSELLATOR_OUTPUT_UNDEFINED = 0, + D3D_TESSELLATOR_OUTPUT_POINT = 1, + D3D_TESSELLATOR_OUTPUT_LINE = 2, + D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3, + D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4, + D3D11_TESSELLATOR_OUTPUT_UNDEFINED = D3D_TESSELLATOR_OUTPUT_UNDEFINED, + D3D11_TESSELLATOR_OUTPUT_POINT = D3D_TESSELLATOR_OUTPUT_POINT, + D3D11_TESSELLATOR_OUTPUT_LINE = D3D_TESSELLATOR_OUTPUT_LINE, + D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW, + D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW + } D3D_TESSELLATOR_OUTPUT_PRIMITIVE; + +typedef +enum D3D_MIN_PRECISION + { + D3D_MIN_PRECISION_DEFAULT = 0, + D3D_MIN_PRECISION_FLOAT_16 = 1, + D3D_MIN_PRECISION_FLOAT_2_8 = 2, + D3D_MIN_PRECISION_RESERVED = 3, + D3D_MIN_PRECISION_SINT_16 = 4, + D3D_MIN_PRECISION_UINT_16 = 5, + D3D_MIN_PRECISION_ANY_16 = 0xf0, + D3D_MIN_PRECISION_ANY_10 = 0xf1 + } D3D_MIN_PRECISION; + +typedef +enum D3D_INTERPOLATION_MODE + { + D3D_INTERPOLATION_UNDEFINED = 0, + D3D_INTERPOLATION_CONSTANT = 1, + D3D_INTERPOLATION_LINEAR = 2, + D3D_INTERPOLATION_LINEAR_CENTROID = 3, + D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4, + D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5, + D3D_INTERPOLATION_LINEAR_SAMPLE = 6, + D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7 + } D3D_INTERPOLATION_MODE; + +typedef +enum _D3D_PARAMETER_FLAGS + { + D3D_PF_NONE = 0, + D3D_PF_IN = 0x1, + D3D_PF_OUT = 0x2, + D3D_PF_FORCE_DWORD = 0x7fffffff + } D3D_PARAMETER_FLAGS; + +extern "C" const GUID WKPDID_D3DDebugObjectName; +extern "C" const GUID WKPDID_D3DDebugObjectNameW; +extern "C" const GUID WKPDID_CommentStringW; +# 989 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3dcommon.h" +extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0002_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0002_v0_0_s_ifspec; + + + + + + +} +# 190 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" 2 + + + +extern "C"{ +# 952 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS; + +typedef +enum D3D12_COMMAND_LIST_TYPE + { + D3D12_COMMAND_LIST_TYPE_DIRECT = 0, + D3D12_COMMAND_LIST_TYPE_BUNDLE = 1, + D3D12_COMMAND_LIST_TYPE_COMPUTE = 2, + D3D12_COMMAND_LIST_TYPE_COPY = 3 + } D3D12_COMMAND_LIST_TYPE; + +typedef +enum D3D12_COMMAND_QUEUE_FLAGS + { + D3D12_COMMAND_QUEUE_FLAG_NONE = 0, + D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1 + } D3D12_COMMAND_QUEUE_FLAGS; + +extern "C++" { inline constexpr D3D12_COMMAND_QUEUE_FLAGS operator | (D3D12_COMMAND_QUEUE_FLAGS a, D3D12_COMMAND_QUEUE_FLAGS b) throw() { return D3D12_COMMAND_QUEUE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_COMMAND_QUEUE_FLAGS &operator |= (D3D12_COMMAND_QUEUE_FLAGS &a, D3D12_COMMAND_QUEUE_FLAGS b) throw() { return (D3D12_COMMAND_QUEUE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_COMMAND_QUEUE_FLAGS operator & (D3D12_COMMAND_QUEUE_FLAGS a, D3D12_COMMAND_QUEUE_FLAGS b) throw() { return D3D12_COMMAND_QUEUE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_COMMAND_QUEUE_FLAGS &operator &= (D3D12_COMMAND_QUEUE_FLAGS &a, D3D12_COMMAND_QUEUE_FLAGS b) throw() { return (D3D12_COMMAND_QUEUE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_COMMAND_QUEUE_FLAGS operator ~ (D3D12_COMMAND_QUEUE_FLAGS a) throw() { return D3D12_COMMAND_QUEUE_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_COMMAND_QUEUE_FLAGS operator ^ (D3D12_COMMAND_QUEUE_FLAGS a, D3D12_COMMAND_QUEUE_FLAGS b) throw() { return D3D12_COMMAND_QUEUE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_COMMAND_QUEUE_FLAGS &operator ^= (D3D12_COMMAND_QUEUE_FLAGS &a, D3D12_COMMAND_QUEUE_FLAGS b) throw() { return (D3D12_COMMAND_QUEUE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef +enum D3D12_COMMAND_QUEUE_PRIORITY + { + D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0, + D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100 + } D3D12_COMMAND_QUEUE_PRIORITY; + +typedef struct D3D12_COMMAND_QUEUE_DESC + { + D3D12_COMMAND_LIST_TYPE Type; + INT Priority; + D3D12_COMMAND_QUEUE_FLAGS Flags; + UINT NodeMask; + } D3D12_COMMAND_QUEUE_DESC; + +typedef +enum D3D12_PRIMITIVE_TOPOLOGY_TYPE + { + D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0, + D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1, + D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2, + D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3, + D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4 + } D3D12_PRIMITIVE_TOPOLOGY_TYPE; + +typedef +enum D3D12_INPUT_CLASSIFICATION + { + D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0, + D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1 + } D3D12_INPUT_CLASSIFICATION; + +typedef struct D3D12_INPUT_ELEMENT_DESC + { + LPCSTR SemanticName; + UINT SemanticIndex; + DXGI_FORMAT Format; + UINT InputSlot; + UINT AlignedByteOffset; + D3D12_INPUT_CLASSIFICATION InputSlotClass; + UINT InstanceDataStepRate; + } D3D12_INPUT_ELEMENT_DESC; + +typedef +enum D3D12_FILL_MODE + { + D3D12_FILL_MODE_WIREFRAME = 2, + D3D12_FILL_MODE_SOLID = 3 + } D3D12_FILL_MODE; + +typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY; + +typedef D3D_PRIMITIVE D3D12_PRIMITIVE; + +typedef +enum D3D12_CULL_MODE + { + D3D12_CULL_MODE_NONE = 1, + D3D12_CULL_MODE_FRONT = 2, + D3D12_CULL_MODE_BACK = 3 + } D3D12_CULL_MODE; + +typedef struct D3D12_SO_DECLARATION_ENTRY + { + UINT Stream; + LPCSTR SemanticName; + UINT SemanticIndex; + BYTE StartComponent; + BYTE ComponentCount; + BYTE OutputSlot; + } D3D12_SO_DECLARATION_ENTRY; + +typedef struct D3D12_VIEWPORT + { + FLOAT TopLeftX; + FLOAT TopLeftY; + FLOAT Width; + FLOAT Height; + FLOAT MinDepth; + FLOAT MaxDepth; + } D3D12_VIEWPORT; + +typedef RECT D3D12_RECT; + +typedef struct D3D12_BOX + { + UINT left; + UINT top; + UINT front; + UINT right; + UINT bottom; + UINT back; + } D3D12_BOX; + +typedef +enum D3D12_COMPARISON_FUNC + { + D3D12_COMPARISON_FUNC_NEVER = 1, + D3D12_COMPARISON_FUNC_LESS = 2, + D3D12_COMPARISON_FUNC_EQUAL = 3, + D3D12_COMPARISON_FUNC_LESS_EQUAL = 4, + D3D12_COMPARISON_FUNC_GREATER = 5, + D3D12_COMPARISON_FUNC_NOT_EQUAL = 6, + D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7, + D3D12_COMPARISON_FUNC_ALWAYS = 8 + } D3D12_COMPARISON_FUNC; + +typedef +enum D3D12_DEPTH_WRITE_MASK + { + D3D12_DEPTH_WRITE_MASK_ZERO = 0, + D3D12_DEPTH_WRITE_MASK_ALL = 1 + } D3D12_DEPTH_WRITE_MASK; + +typedef +enum D3D12_STENCIL_OP + { + D3D12_STENCIL_OP_KEEP = 1, + D3D12_STENCIL_OP_ZERO = 2, + D3D12_STENCIL_OP_REPLACE = 3, + D3D12_STENCIL_OP_INCR_SAT = 4, + D3D12_STENCIL_OP_DECR_SAT = 5, + D3D12_STENCIL_OP_INVERT = 6, + D3D12_STENCIL_OP_INCR = 7, + D3D12_STENCIL_OP_DECR = 8 + } D3D12_STENCIL_OP; + +typedef struct D3D12_DEPTH_STENCILOP_DESC + { + D3D12_STENCIL_OP StencilFailOp; + D3D12_STENCIL_OP StencilDepthFailOp; + D3D12_STENCIL_OP StencilPassOp; + D3D12_COMPARISON_FUNC StencilFunc; + } D3D12_DEPTH_STENCILOP_DESC; + +typedef struct D3D12_DEPTH_STENCIL_DESC + { + BOOL DepthEnable; + D3D12_DEPTH_WRITE_MASK DepthWriteMask; + D3D12_COMPARISON_FUNC DepthFunc; + BOOL StencilEnable; + UINT8 StencilReadMask; + UINT8 StencilWriteMask; + D3D12_DEPTH_STENCILOP_DESC FrontFace; + D3D12_DEPTH_STENCILOP_DESC BackFace; + } D3D12_DEPTH_STENCIL_DESC; + +typedef +enum D3D12_BLEND + { + D3D12_BLEND_ZERO = 1, + D3D12_BLEND_ONE = 2, + D3D12_BLEND_SRC_COLOR = 3, + D3D12_BLEND_INV_SRC_COLOR = 4, + D3D12_BLEND_SRC_ALPHA = 5, + D3D12_BLEND_INV_SRC_ALPHA = 6, + D3D12_BLEND_DEST_ALPHA = 7, + D3D12_BLEND_INV_DEST_ALPHA = 8, + D3D12_BLEND_DEST_COLOR = 9, + D3D12_BLEND_INV_DEST_COLOR = 10, + D3D12_BLEND_SRC_ALPHA_SAT = 11, + D3D12_BLEND_BLEND_FACTOR = 14, + D3D12_BLEND_INV_BLEND_FACTOR = 15, + D3D12_BLEND_SRC1_COLOR = 16, + D3D12_BLEND_INV_SRC1_COLOR = 17, + D3D12_BLEND_SRC1_ALPHA = 18, + D3D12_BLEND_INV_SRC1_ALPHA = 19 + } D3D12_BLEND; + +typedef +enum D3D12_BLEND_OP + { + D3D12_BLEND_OP_ADD = 1, + D3D12_BLEND_OP_SUBTRACT = 2, + D3D12_BLEND_OP_REV_SUBTRACT = 3, + D3D12_BLEND_OP_MIN = 4, + D3D12_BLEND_OP_MAX = 5 + } D3D12_BLEND_OP; + +typedef +enum D3D12_COLOR_WRITE_ENABLE + { + D3D12_COLOR_WRITE_ENABLE_RED = 1, + D3D12_COLOR_WRITE_ENABLE_GREEN = 2, + D3D12_COLOR_WRITE_ENABLE_BLUE = 4, + D3D12_COLOR_WRITE_ENABLE_ALPHA = 8, + D3D12_COLOR_WRITE_ENABLE_ALL = ( ( ( D3D12_COLOR_WRITE_ENABLE_RED | D3D12_COLOR_WRITE_ENABLE_GREEN ) | D3D12_COLOR_WRITE_ENABLE_BLUE ) | D3D12_COLOR_WRITE_ENABLE_ALPHA ) + } D3D12_COLOR_WRITE_ENABLE; + +typedef +enum D3D12_LOGIC_OP + { + D3D12_LOGIC_OP_CLEAR = 0, + D3D12_LOGIC_OP_SET = ( D3D12_LOGIC_OP_CLEAR + 1 ) , + D3D12_LOGIC_OP_COPY = ( D3D12_LOGIC_OP_SET + 1 ) , + D3D12_LOGIC_OP_COPY_INVERTED = ( D3D12_LOGIC_OP_COPY + 1 ) , + D3D12_LOGIC_OP_NOOP = ( D3D12_LOGIC_OP_COPY_INVERTED + 1 ) , + D3D12_LOGIC_OP_INVERT = ( D3D12_LOGIC_OP_NOOP + 1 ) , + D3D12_LOGIC_OP_AND = ( D3D12_LOGIC_OP_INVERT + 1 ) , + D3D12_LOGIC_OP_NAND = ( D3D12_LOGIC_OP_AND + 1 ) , + D3D12_LOGIC_OP_OR = ( D3D12_LOGIC_OP_NAND + 1 ) , + D3D12_LOGIC_OP_NOR = ( D3D12_LOGIC_OP_OR + 1 ) , + D3D12_LOGIC_OP_XOR = ( D3D12_LOGIC_OP_NOR + 1 ) , + D3D12_LOGIC_OP_EQUIV = ( D3D12_LOGIC_OP_XOR + 1 ) , + D3D12_LOGIC_OP_AND_REVERSE = ( D3D12_LOGIC_OP_EQUIV + 1 ) , + D3D12_LOGIC_OP_AND_INVERTED = ( D3D12_LOGIC_OP_AND_REVERSE + 1 ) , + D3D12_LOGIC_OP_OR_REVERSE = ( D3D12_LOGIC_OP_AND_INVERTED + 1 ) , + D3D12_LOGIC_OP_OR_INVERTED = ( D3D12_LOGIC_OP_OR_REVERSE + 1 ) + } D3D12_LOGIC_OP; + +typedef struct D3D12_RENDER_TARGET_BLEND_DESC + { + BOOL BlendEnable; + BOOL LogicOpEnable; + D3D12_BLEND SrcBlend; + D3D12_BLEND DestBlend; + D3D12_BLEND_OP BlendOp; + D3D12_BLEND SrcBlendAlpha; + D3D12_BLEND DestBlendAlpha; + D3D12_BLEND_OP BlendOpAlpha; + D3D12_LOGIC_OP LogicOp; + UINT8 RenderTargetWriteMask; + } D3D12_RENDER_TARGET_BLEND_DESC; + +typedef struct D3D12_BLEND_DESC + { + BOOL AlphaToCoverageEnable; + BOOL IndependentBlendEnable; + D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[ 8 ]; + } D3D12_BLEND_DESC; + + + +typedef +enum D3D12_CONSERVATIVE_RASTERIZATION_MODE + { + D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0, + D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1 + } D3D12_CONSERVATIVE_RASTERIZATION_MODE; + +typedef struct D3D12_RASTERIZER_DESC + { + D3D12_FILL_MODE FillMode; + D3D12_CULL_MODE CullMode; + BOOL FrontCounterClockwise; + INT DepthBias; + FLOAT DepthBiasClamp; + FLOAT SlopeScaledDepthBias; + BOOL DepthClipEnable; + BOOL MultisampleEnable; + BOOL AntialiasedLineEnable; + UINT ForcedSampleCount; + D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; + } D3D12_RASTERIZER_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_s_ifspec; +# 1238 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12Object; + + + + struct __declspec(uuid("c4fec28f-7966-4e95-9f94-f431cb56c3b8")) __declspec(novtable) + ID3D12Object : public IUnknown + { + public: + virtual HRESULT __stdcall GetPrivateData( + const GUID & guid, + UINT *pDataSize, + void *pData) = 0; + + virtual HRESULT __stdcall SetPrivateData( + const GUID & guid, + UINT DataSize, + const void *pData) = 0; + + virtual HRESULT __stdcall SetPrivateDataInterface( + const GUID & guid, + const IUnknown *pData) = 0; + + virtual HRESULT __stdcall SetName( + LPCWSTR Name) = 0; + + }; +# 1357 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12DeviceChild; + + + + struct __declspec(uuid("905db94b-a00c-4140-9df5-2b64ca9ea357")) __declspec(novtable) + ID3D12DeviceChild : public ID3D12Object + { + public: + virtual HRESULT __stdcall GetDevice( + const IID & riid, + void **ppvDevice) = 0; + + }; +# 1472 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12RootSignature; + + + + struct __declspec(uuid("c54a6b66-72df-4ee8-8be5-a946a1429214")) __declspec(novtable) + ID3D12RootSignature : public ID3D12DeviceChild + { + public: + }; +# 1580 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +typedef struct D3D12_SHADER_BYTECODE + { + const void *pShaderBytecode; + SIZE_T BytecodeLength; + } D3D12_SHADER_BYTECODE; + +typedef struct D3D12_STREAM_OUTPUT_DESC + { + const D3D12_SO_DECLARATION_ENTRY *pSODeclaration; + UINT NumEntries; + const UINT *pBufferStrides; + UINT NumStrides; + UINT RasterizedStream; + } D3D12_STREAM_OUTPUT_DESC; + +typedef struct D3D12_INPUT_LAYOUT_DESC + { + const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs; + UINT NumElements; + } D3D12_INPUT_LAYOUT_DESC; + +typedef +enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE + { + D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0, + D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1, + D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2 + } D3D12_INDEX_BUFFER_STRIP_CUT_VALUE; + +typedef struct D3D12_CACHED_PIPELINE_STATE + { + const void *pCachedBlob; + SIZE_T CachedBlobSizeInBytes; + } D3D12_CACHED_PIPELINE_STATE; + +typedef +enum D3D12_PIPELINE_STATE_FLAGS + { + D3D12_PIPELINE_STATE_FLAG_NONE = 0, + D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG = 0x1 + } D3D12_PIPELINE_STATE_FLAGS; + +extern "C++" { inline constexpr D3D12_PIPELINE_STATE_FLAGS operator | (D3D12_PIPELINE_STATE_FLAGS a, D3D12_PIPELINE_STATE_FLAGS b) throw() { return D3D12_PIPELINE_STATE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_PIPELINE_STATE_FLAGS &operator |= (D3D12_PIPELINE_STATE_FLAGS &a, D3D12_PIPELINE_STATE_FLAGS b) throw() { return (D3D12_PIPELINE_STATE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_PIPELINE_STATE_FLAGS operator & (D3D12_PIPELINE_STATE_FLAGS a, D3D12_PIPELINE_STATE_FLAGS b) throw() { return D3D12_PIPELINE_STATE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_PIPELINE_STATE_FLAGS &operator &= (D3D12_PIPELINE_STATE_FLAGS &a, D3D12_PIPELINE_STATE_FLAGS b) throw() { return (D3D12_PIPELINE_STATE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_PIPELINE_STATE_FLAGS operator ~ (D3D12_PIPELINE_STATE_FLAGS a) throw() { return D3D12_PIPELINE_STATE_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_PIPELINE_STATE_FLAGS operator ^ (D3D12_PIPELINE_STATE_FLAGS a, D3D12_PIPELINE_STATE_FLAGS b) throw() { return D3D12_PIPELINE_STATE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_PIPELINE_STATE_FLAGS &operator ^= (D3D12_PIPELINE_STATE_FLAGS &a, D3D12_PIPELINE_STATE_FLAGS b) throw() { return (D3D12_PIPELINE_STATE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC + { + ID3D12RootSignature *pRootSignature; + D3D12_SHADER_BYTECODE VS; + D3D12_SHADER_BYTECODE PS; + D3D12_SHADER_BYTECODE DS; + D3D12_SHADER_BYTECODE HS; + D3D12_SHADER_BYTECODE GS; + D3D12_STREAM_OUTPUT_DESC StreamOutput; + D3D12_BLEND_DESC BlendState; + UINT SampleMask; + D3D12_RASTERIZER_DESC RasterizerState; + D3D12_DEPTH_STENCIL_DESC DepthStencilState; + D3D12_INPUT_LAYOUT_DESC InputLayout; + D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue; + D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType; + UINT NumRenderTargets; + DXGI_FORMAT RTVFormats[ 8 ]; + DXGI_FORMAT DSVFormat; + DXGI_SAMPLE_DESC SampleDesc; + UINT NodeMask; + D3D12_CACHED_PIPELINE_STATE CachedPSO; + D3D12_PIPELINE_STATE_FLAGS Flags; + } D3D12_GRAPHICS_PIPELINE_STATE_DESC; + +typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC + { + ID3D12RootSignature *pRootSignature; + D3D12_SHADER_BYTECODE CS; + UINT NodeMask; + D3D12_CACHED_PIPELINE_STATE CachedPSO; + D3D12_PIPELINE_STATE_FLAGS Flags; + } D3D12_COMPUTE_PIPELINE_STATE_DESC; + +typedef +enum D3D12_FEATURE + { + D3D12_FEATURE_D3D12_OPTIONS = 0, + D3D12_FEATURE_ARCHITECTURE = 1, + D3D12_FEATURE_FEATURE_LEVELS = 2, + D3D12_FEATURE_FORMAT_SUPPORT = 3, + D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4, + D3D12_FEATURE_FORMAT_INFO = 5, + D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6, + D3D12_FEATURE_SHADER_MODEL = 7, + D3D12_FEATURE_D3D12_OPTIONS1 = 8, + D3D12_FEATURE_ROOT_SIGNATURE = 12 + } D3D12_FEATURE; + +typedef +enum D3D12_SHADER_MIN_PRECISION_SUPPORT + { + D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0, + D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1, + D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2 + } D3D12_SHADER_MIN_PRECISION_SUPPORT; + +extern "C++" { inline constexpr D3D12_SHADER_MIN_PRECISION_SUPPORT operator | (D3D12_SHADER_MIN_PRECISION_SUPPORT a, D3D12_SHADER_MIN_PRECISION_SUPPORT b) throw() { return D3D12_SHADER_MIN_PRECISION_SUPPORT(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_SHADER_MIN_PRECISION_SUPPORT &operator |= (D3D12_SHADER_MIN_PRECISION_SUPPORT &a, D3D12_SHADER_MIN_PRECISION_SUPPORT b) throw() { return (D3D12_SHADER_MIN_PRECISION_SUPPORT &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_SHADER_MIN_PRECISION_SUPPORT operator & (D3D12_SHADER_MIN_PRECISION_SUPPORT a, D3D12_SHADER_MIN_PRECISION_SUPPORT b) throw() { return D3D12_SHADER_MIN_PRECISION_SUPPORT(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_SHADER_MIN_PRECISION_SUPPORT &operator &= (D3D12_SHADER_MIN_PRECISION_SUPPORT &a, D3D12_SHADER_MIN_PRECISION_SUPPORT b) throw() { return (D3D12_SHADER_MIN_PRECISION_SUPPORT &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_SHADER_MIN_PRECISION_SUPPORT operator ~ (D3D12_SHADER_MIN_PRECISION_SUPPORT a) throw() { return D3D12_SHADER_MIN_PRECISION_SUPPORT(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_SHADER_MIN_PRECISION_SUPPORT operator ^ (D3D12_SHADER_MIN_PRECISION_SUPPORT a, D3D12_SHADER_MIN_PRECISION_SUPPORT b) throw() { return D3D12_SHADER_MIN_PRECISION_SUPPORT(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_SHADER_MIN_PRECISION_SUPPORT &operator ^= (D3D12_SHADER_MIN_PRECISION_SUPPORT &a, D3D12_SHADER_MIN_PRECISION_SUPPORT b) throw() { return (D3D12_SHADER_MIN_PRECISION_SUPPORT &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef +enum D3D12_TILED_RESOURCES_TIER + { + D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0, + D3D12_TILED_RESOURCES_TIER_1 = 1, + D3D12_TILED_RESOURCES_TIER_2 = 2, + D3D12_TILED_RESOURCES_TIER_3 = 3 + } D3D12_TILED_RESOURCES_TIER; + +typedef +enum D3D12_RESOURCE_BINDING_TIER + { + D3D12_RESOURCE_BINDING_TIER_1 = 1, + D3D12_RESOURCE_BINDING_TIER_2 = 2, + D3D12_RESOURCE_BINDING_TIER_3 = 3 + } D3D12_RESOURCE_BINDING_TIER; + +typedef +enum D3D12_CONSERVATIVE_RASTERIZATION_TIER + { + D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0, + D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1, + D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2, + D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3 + } D3D12_CONSERVATIVE_RASTERIZATION_TIER; + +typedef +enum D3D12_FORMAT_SUPPORT1 + { + D3D12_FORMAT_SUPPORT1_NONE = 0, + D3D12_FORMAT_SUPPORT1_BUFFER = 0x1, + D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x2, + D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x4, + D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x8, + D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x10, + D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x20, + D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x40, + D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x80, + D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x100, + D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x200, + D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x400, + D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x800, + D3D12_FORMAT_SUPPORT1_MIP = 0x1000, + D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x4000, + D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x8000, + D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x10000, + D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x40000, + D3D12_FORMAT_SUPPORT1_DISPLAY = 0x80000, + D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x100000, + D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x200000, + D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x400000, + D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x800000, + D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x1000000, + D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000, + D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x4000000, + D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x8000000, + D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000, + D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000, + D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000 + } D3D12_FORMAT_SUPPORT1; + +extern "C++" { inline constexpr D3D12_FORMAT_SUPPORT1 operator | (D3D12_FORMAT_SUPPORT1 a, D3D12_FORMAT_SUPPORT1 b) throw() { return D3D12_FORMAT_SUPPORT1(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_FORMAT_SUPPORT1 &operator |= (D3D12_FORMAT_SUPPORT1 &a, D3D12_FORMAT_SUPPORT1 b) throw() { return (D3D12_FORMAT_SUPPORT1 &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_FORMAT_SUPPORT1 operator & (D3D12_FORMAT_SUPPORT1 a, D3D12_FORMAT_SUPPORT1 b) throw() { return D3D12_FORMAT_SUPPORT1(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_FORMAT_SUPPORT1 &operator &= (D3D12_FORMAT_SUPPORT1 &a, D3D12_FORMAT_SUPPORT1 b) throw() { return (D3D12_FORMAT_SUPPORT1 &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_FORMAT_SUPPORT1 operator ~ (D3D12_FORMAT_SUPPORT1 a) throw() { return D3D12_FORMAT_SUPPORT1(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_FORMAT_SUPPORT1 operator ^ (D3D12_FORMAT_SUPPORT1 a, D3D12_FORMAT_SUPPORT1 b) throw() { return D3D12_FORMAT_SUPPORT1(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_FORMAT_SUPPORT1 &operator ^= (D3D12_FORMAT_SUPPORT1 &a, D3D12_FORMAT_SUPPORT1 b) throw() { return (D3D12_FORMAT_SUPPORT1 &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef +enum D3D12_FORMAT_SUPPORT2 + { + D3D12_FORMAT_SUPPORT2_NONE = 0, + D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1, + D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2, + D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4, + D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8, + D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10, + D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20, + D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40, + D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80, + D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100, + D3D12_FORMAT_SUPPORT2_TILED = 0x200, + D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000 + } D3D12_FORMAT_SUPPORT2; + +extern "C++" { inline constexpr D3D12_FORMAT_SUPPORT2 operator | (D3D12_FORMAT_SUPPORT2 a, D3D12_FORMAT_SUPPORT2 b) throw() { return D3D12_FORMAT_SUPPORT2(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_FORMAT_SUPPORT2 &operator |= (D3D12_FORMAT_SUPPORT2 &a, D3D12_FORMAT_SUPPORT2 b) throw() { return (D3D12_FORMAT_SUPPORT2 &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_FORMAT_SUPPORT2 operator & (D3D12_FORMAT_SUPPORT2 a, D3D12_FORMAT_SUPPORT2 b) throw() { return D3D12_FORMAT_SUPPORT2(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_FORMAT_SUPPORT2 &operator &= (D3D12_FORMAT_SUPPORT2 &a, D3D12_FORMAT_SUPPORT2 b) throw() { return (D3D12_FORMAT_SUPPORT2 &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_FORMAT_SUPPORT2 operator ~ (D3D12_FORMAT_SUPPORT2 a) throw() { return D3D12_FORMAT_SUPPORT2(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_FORMAT_SUPPORT2 operator ^ (D3D12_FORMAT_SUPPORT2 a, D3D12_FORMAT_SUPPORT2 b) throw() { return D3D12_FORMAT_SUPPORT2(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_FORMAT_SUPPORT2 &operator ^= (D3D12_FORMAT_SUPPORT2 &a, D3D12_FORMAT_SUPPORT2 b) throw() { return (D3D12_FORMAT_SUPPORT2 &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef +enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS + { + D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0, + D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1 + } D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS; + +extern "C++" { inline constexpr D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS operator | (D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS a, D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS b) throw() { return D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS &operator |= (D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS &a, D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS b) throw() { return (D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS operator & (D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS a, D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS b) throw() { return D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS &operator &= (D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS &a, D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS b) throw() { return (D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS operator ~ (D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS a) throw() { return D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS operator ^ (D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS a, D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS b) throw() { return D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS &operator ^= (D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS &a, D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS b) throw() { return (D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef +enum D3D12_CROSS_NODE_SHARING_TIER + { + D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0, + D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1, + D3D12_CROSS_NODE_SHARING_TIER_1 = 2, + D3D12_CROSS_NODE_SHARING_TIER_2 = 3 + } D3D12_CROSS_NODE_SHARING_TIER; + +typedef +enum D3D12_RESOURCE_HEAP_TIER + { + D3D12_RESOURCE_HEAP_TIER_1 = 1, + D3D12_RESOURCE_HEAP_TIER_2 = 2 + } D3D12_RESOURCE_HEAP_TIER; + +typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS + { + BOOL DoublePrecisionFloatShaderOps; + BOOL OutputMergerLogicOp; + D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport; + D3D12_TILED_RESOURCES_TIER TiledResourcesTier; + D3D12_RESOURCE_BINDING_TIER ResourceBindingTier; + BOOL PSSpecifiedStencilRefSupported; + BOOL TypedUAVLoadAdditionalFormats; + BOOL ROVsSupported; + D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier; + UINT MaxGPUVirtualAddressBitsPerResource; + BOOL StandardSwizzle64KBSupported; + D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier; + BOOL CrossAdapterRowMajorTextureSupported; + BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation; + D3D12_RESOURCE_HEAP_TIER ResourceHeapTier; + } D3D12_FEATURE_DATA_D3D12_OPTIONS; + +typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1 + { + BOOL WaveOps; + UINT WaveLaneCountMin; + UINT WaveLaneCountMax; + UINT TotalLaneCount; + BOOL ExpandedComputeResourceStates; + BOOL Int64ShaderOps; + } D3D12_FEATURE_DATA_D3D12_OPTIONS1; + +typedef +enum D3D_ROOT_SIGNATURE_VERSION + { + D3D_ROOT_SIGNATURE_VERSION_1 = 0x1, + D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1, + D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2 + } D3D_ROOT_SIGNATURE_VERSION; + +typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE + { + D3D_ROOT_SIGNATURE_VERSION HighestVersion; + } D3D12_FEATURE_DATA_ROOT_SIGNATURE; + +typedef struct D3D12_FEATURE_DATA_ARCHITECTURE + { + UINT NodeIndex; + BOOL TileBasedRenderer; + BOOL UMA; + BOOL CacheCoherentUMA; + } D3D12_FEATURE_DATA_ARCHITECTURE; + +typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS + { + UINT NumFeatureLevels; + const D3D_FEATURE_LEVEL *pFeatureLevelsRequested; + D3D_FEATURE_LEVEL MaxSupportedFeatureLevel; + } D3D12_FEATURE_DATA_FEATURE_LEVELS; + +typedef +enum D3D_SHADER_MODEL + { + D3D_SHADER_MODEL_5_1 = 0x51, + D3D_SHADER_MODEL_6_0 = 0x60 + } D3D_SHADER_MODEL; + +typedef struct D3D12_FEATURE_DATA_SHADER_MODEL + { + D3D_SHADER_MODEL HighestShaderModel; + } D3D12_FEATURE_DATA_SHADER_MODEL; + +typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT + { + DXGI_FORMAT Format; + D3D12_FORMAT_SUPPORT1 Support1; + D3D12_FORMAT_SUPPORT2 Support2; + } D3D12_FEATURE_DATA_FORMAT_SUPPORT; + +typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS + { + DXGI_FORMAT Format; + UINT SampleCount; + D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags; + UINT NumQualityLevels; + } D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS; + +typedef struct D3D12_FEATURE_DATA_FORMAT_INFO + { + DXGI_FORMAT Format; + UINT8 PlaneCount; + } D3D12_FEATURE_DATA_FORMAT_INFO; + +typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT + { + UINT MaxGPUVirtualAddressBitsPerResource; + UINT MaxGPUVirtualAddressBitsPerProcess; + } D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT; + +typedef struct D3D12_RESOURCE_ALLOCATION_INFO + { + UINT64 SizeInBytes; + UINT64 Alignment; + } D3D12_RESOURCE_ALLOCATION_INFO; + +typedef +enum D3D12_HEAP_TYPE + { + D3D12_HEAP_TYPE_DEFAULT = 1, + D3D12_HEAP_TYPE_UPLOAD = 2, + D3D12_HEAP_TYPE_READBACK = 3, + D3D12_HEAP_TYPE_CUSTOM = 4 + } D3D12_HEAP_TYPE; + +typedef +enum D3D12_CPU_PAGE_PROPERTY + { + D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0, + D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1, + D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2, + D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3 + } D3D12_CPU_PAGE_PROPERTY; + +typedef +enum D3D12_MEMORY_POOL + { + D3D12_MEMORY_POOL_UNKNOWN = 0, + D3D12_MEMORY_POOL_L0 = 1, + D3D12_MEMORY_POOL_L1 = 2 + } D3D12_MEMORY_POOL; + +typedef struct D3D12_HEAP_PROPERTIES + { + D3D12_HEAP_TYPE Type; + D3D12_CPU_PAGE_PROPERTY CPUPageProperty; + D3D12_MEMORY_POOL MemoryPoolPreference; + UINT CreationNodeMask; + UINT VisibleNodeMask; + } D3D12_HEAP_PROPERTIES; + +typedef +enum D3D12_HEAP_FLAGS + { + D3D12_HEAP_FLAG_NONE = 0, + D3D12_HEAP_FLAG_SHARED = 0x1, + D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4, + D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8, + D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20, + D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40, + D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80, + D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100, + D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0, + D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0, + D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44, + D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84 + } D3D12_HEAP_FLAGS; + +extern "C++" { inline constexpr D3D12_HEAP_FLAGS operator | (D3D12_HEAP_FLAGS a, D3D12_HEAP_FLAGS b) throw() { return D3D12_HEAP_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_HEAP_FLAGS &operator |= (D3D12_HEAP_FLAGS &a, D3D12_HEAP_FLAGS b) throw() { return (D3D12_HEAP_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_HEAP_FLAGS operator & (D3D12_HEAP_FLAGS a, D3D12_HEAP_FLAGS b) throw() { return D3D12_HEAP_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_HEAP_FLAGS &operator &= (D3D12_HEAP_FLAGS &a, D3D12_HEAP_FLAGS b) throw() { return (D3D12_HEAP_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_HEAP_FLAGS operator ~ (D3D12_HEAP_FLAGS a) throw() { return D3D12_HEAP_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_HEAP_FLAGS operator ^ (D3D12_HEAP_FLAGS a, D3D12_HEAP_FLAGS b) throw() { return D3D12_HEAP_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_HEAP_FLAGS &operator ^= (D3D12_HEAP_FLAGS &a, D3D12_HEAP_FLAGS b) throw() { return (D3D12_HEAP_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef struct D3D12_HEAP_DESC + { + UINT64 SizeInBytes; + D3D12_HEAP_PROPERTIES Properties; + UINT64 Alignment; + D3D12_HEAP_FLAGS Flags; + } D3D12_HEAP_DESC; + +typedef +enum D3D12_RESOURCE_DIMENSION + { + D3D12_RESOURCE_DIMENSION_UNKNOWN = 0, + D3D12_RESOURCE_DIMENSION_BUFFER = 1, + D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2, + D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3, + D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4 + } D3D12_RESOURCE_DIMENSION; + +typedef +enum D3D12_TEXTURE_LAYOUT + { + D3D12_TEXTURE_LAYOUT_UNKNOWN = 0, + D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1, + D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2, + D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3 + } D3D12_TEXTURE_LAYOUT; + +typedef +enum D3D12_RESOURCE_FLAGS + { + D3D12_RESOURCE_FLAG_NONE = 0, + D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1, + D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2, + D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4, + D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8, + D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10, + D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20 + } D3D12_RESOURCE_FLAGS; + +extern "C++" { inline constexpr D3D12_RESOURCE_FLAGS operator | (D3D12_RESOURCE_FLAGS a, D3D12_RESOURCE_FLAGS b) throw() { return D3D12_RESOURCE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_RESOURCE_FLAGS &operator |= (D3D12_RESOURCE_FLAGS &a, D3D12_RESOURCE_FLAGS b) throw() { return (D3D12_RESOURCE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_RESOURCE_FLAGS operator & (D3D12_RESOURCE_FLAGS a, D3D12_RESOURCE_FLAGS b) throw() { return D3D12_RESOURCE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_RESOURCE_FLAGS &operator &= (D3D12_RESOURCE_FLAGS &a, D3D12_RESOURCE_FLAGS b) throw() { return (D3D12_RESOURCE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_RESOURCE_FLAGS operator ~ (D3D12_RESOURCE_FLAGS a) throw() { return D3D12_RESOURCE_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_RESOURCE_FLAGS operator ^ (D3D12_RESOURCE_FLAGS a, D3D12_RESOURCE_FLAGS b) throw() { return D3D12_RESOURCE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_RESOURCE_FLAGS &operator ^= (D3D12_RESOURCE_FLAGS &a, D3D12_RESOURCE_FLAGS b) throw() { return (D3D12_RESOURCE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef struct D3D12_RESOURCE_DESC + { + D3D12_RESOURCE_DIMENSION Dimension; + UINT64 Alignment; + UINT64 Width; + UINT Height; + UINT16 DepthOrArraySize; + UINT16 MipLevels; + DXGI_FORMAT Format; + DXGI_SAMPLE_DESC SampleDesc; + D3D12_TEXTURE_LAYOUT Layout; + D3D12_RESOURCE_FLAGS Flags; + } D3D12_RESOURCE_DESC; + +typedef struct D3D12_DEPTH_STENCIL_VALUE + { + FLOAT Depth; + UINT8 Stencil; + } D3D12_DEPTH_STENCIL_VALUE; + +typedef struct D3D12_CLEAR_VALUE + { + DXGI_FORMAT Format; + union + { + FLOAT Color[ 4 ]; + D3D12_DEPTH_STENCIL_VALUE DepthStencil; + } ; + } D3D12_CLEAR_VALUE; + +typedef struct D3D12_RANGE + { + SIZE_T Begin; + SIZE_T End; + } D3D12_RANGE; + +typedef struct D3D12_SUBRESOURCE_INFO + { + UINT64 Offset; + UINT RowPitch; + UINT DepthPitch; + } D3D12_SUBRESOURCE_INFO; + +typedef struct D3D12_TILED_RESOURCE_COORDINATE + { + UINT X; + UINT Y; + UINT Z; + UINT Subresource; + } D3D12_TILED_RESOURCE_COORDINATE; + +typedef struct D3D12_TILE_REGION_SIZE + { + UINT NumTiles; + BOOL UseBox; + UINT Width; + UINT16 Height; + UINT16 Depth; + } D3D12_TILE_REGION_SIZE; + +typedef +enum D3D12_TILE_RANGE_FLAGS + { + D3D12_TILE_RANGE_FLAG_NONE = 0, + D3D12_TILE_RANGE_FLAG_NULL = 1, + D3D12_TILE_RANGE_FLAG_SKIP = 2, + D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 4 + } D3D12_TILE_RANGE_FLAGS; + +typedef struct D3D12_SUBRESOURCE_TILING + { + UINT WidthInTiles; + UINT16 HeightInTiles; + UINT16 DepthInTiles; + UINT StartTileIndexInOverallResource; + } D3D12_SUBRESOURCE_TILING; + +typedef struct D3D12_TILE_SHAPE + { + UINT WidthInTexels; + UINT HeightInTexels; + UINT DepthInTexels; + } D3D12_TILE_SHAPE; + +typedef struct D3D12_PACKED_MIP_INFO + { + UINT8 NumStandardMips; + UINT8 NumPackedMips; + UINT NumTilesForPackedMips; + UINT StartTileIndexInOverallResource; + } D3D12_PACKED_MIP_INFO; + +typedef +enum D3D12_TILE_MAPPING_FLAGS + { + D3D12_TILE_MAPPING_FLAG_NONE = 0, + D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1 + } D3D12_TILE_MAPPING_FLAGS; + +extern "C++" { inline constexpr D3D12_TILE_MAPPING_FLAGS operator | (D3D12_TILE_MAPPING_FLAGS a, D3D12_TILE_MAPPING_FLAGS b) throw() { return D3D12_TILE_MAPPING_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_TILE_MAPPING_FLAGS &operator |= (D3D12_TILE_MAPPING_FLAGS &a, D3D12_TILE_MAPPING_FLAGS b) throw() { return (D3D12_TILE_MAPPING_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_TILE_MAPPING_FLAGS operator & (D3D12_TILE_MAPPING_FLAGS a, D3D12_TILE_MAPPING_FLAGS b) throw() { return D3D12_TILE_MAPPING_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_TILE_MAPPING_FLAGS &operator &= (D3D12_TILE_MAPPING_FLAGS &a, D3D12_TILE_MAPPING_FLAGS b) throw() { return (D3D12_TILE_MAPPING_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_TILE_MAPPING_FLAGS operator ~ (D3D12_TILE_MAPPING_FLAGS a) throw() { return D3D12_TILE_MAPPING_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_TILE_MAPPING_FLAGS operator ^ (D3D12_TILE_MAPPING_FLAGS a, D3D12_TILE_MAPPING_FLAGS b) throw() { return D3D12_TILE_MAPPING_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_TILE_MAPPING_FLAGS &operator ^= (D3D12_TILE_MAPPING_FLAGS &a, D3D12_TILE_MAPPING_FLAGS b) throw() { return (D3D12_TILE_MAPPING_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef +enum D3D12_TILE_COPY_FLAGS + { + D3D12_TILE_COPY_FLAG_NONE = 0, + D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1, + D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2, + D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4 + } D3D12_TILE_COPY_FLAGS; + +extern "C++" { inline constexpr D3D12_TILE_COPY_FLAGS operator | (D3D12_TILE_COPY_FLAGS a, D3D12_TILE_COPY_FLAGS b) throw() { return D3D12_TILE_COPY_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_TILE_COPY_FLAGS &operator |= (D3D12_TILE_COPY_FLAGS &a, D3D12_TILE_COPY_FLAGS b) throw() { return (D3D12_TILE_COPY_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_TILE_COPY_FLAGS operator & (D3D12_TILE_COPY_FLAGS a, D3D12_TILE_COPY_FLAGS b) throw() { return D3D12_TILE_COPY_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_TILE_COPY_FLAGS &operator &= (D3D12_TILE_COPY_FLAGS &a, D3D12_TILE_COPY_FLAGS b) throw() { return (D3D12_TILE_COPY_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_TILE_COPY_FLAGS operator ~ (D3D12_TILE_COPY_FLAGS a) throw() { return D3D12_TILE_COPY_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_TILE_COPY_FLAGS operator ^ (D3D12_TILE_COPY_FLAGS a, D3D12_TILE_COPY_FLAGS b) throw() { return D3D12_TILE_COPY_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_TILE_COPY_FLAGS &operator ^= (D3D12_TILE_COPY_FLAGS &a, D3D12_TILE_COPY_FLAGS b) throw() { return (D3D12_TILE_COPY_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef +enum D3D12_RESOURCE_STATES + { + D3D12_RESOURCE_STATE_COMMON = 0, + D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1, + D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2, + D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4, + D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8, + D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10, + D3D12_RESOURCE_STATE_DEPTH_READ = 0x20, + D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40, + D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80, + D3D12_RESOURCE_STATE_STREAM_OUT = 0x100, + D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200, + D3D12_RESOURCE_STATE_COPY_DEST = 0x400, + D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800, + D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000, + D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000, + D3D12_RESOURCE_STATE_GENERIC_READ = ( ( ( ( ( 0x1 | 0x2 ) | 0x40 ) | 0x80 ) | 0x200 ) | 0x800 ) , + D3D12_RESOURCE_STATE_PRESENT = 0, + D3D12_RESOURCE_STATE_PREDICATION = 0x200 + } D3D12_RESOURCE_STATES; + +extern "C++" { inline constexpr D3D12_RESOURCE_STATES operator | (D3D12_RESOURCE_STATES a, D3D12_RESOURCE_STATES b) throw() { return D3D12_RESOURCE_STATES(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_RESOURCE_STATES &operator |= (D3D12_RESOURCE_STATES &a, D3D12_RESOURCE_STATES b) throw() { return (D3D12_RESOURCE_STATES &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_RESOURCE_STATES operator & (D3D12_RESOURCE_STATES a, D3D12_RESOURCE_STATES b) throw() { return D3D12_RESOURCE_STATES(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_RESOURCE_STATES &operator &= (D3D12_RESOURCE_STATES &a, D3D12_RESOURCE_STATES b) throw() { return (D3D12_RESOURCE_STATES &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_RESOURCE_STATES operator ~ (D3D12_RESOURCE_STATES a) throw() { return D3D12_RESOURCE_STATES(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_RESOURCE_STATES operator ^ (D3D12_RESOURCE_STATES a, D3D12_RESOURCE_STATES b) throw() { return D3D12_RESOURCE_STATES(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_RESOURCE_STATES &operator ^= (D3D12_RESOURCE_STATES &a, D3D12_RESOURCE_STATES b) throw() { return (D3D12_RESOURCE_STATES &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef +enum D3D12_RESOURCE_BARRIER_TYPE + { + D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0, + D3D12_RESOURCE_BARRIER_TYPE_ALIASING = ( D3D12_RESOURCE_BARRIER_TYPE_TRANSITION + 1 ) , + D3D12_RESOURCE_BARRIER_TYPE_UAV = ( D3D12_RESOURCE_BARRIER_TYPE_ALIASING + 1 ) + } D3D12_RESOURCE_BARRIER_TYPE; + + +typedef struct D3D12_RESOURCE_TRANSITION_BARRIER + { + ID3D12Resource *pResource; + UINT Subresource; + D3D12_RESOURCE_STATES StateBefore; + D3D12_RESOURCE_STATES StateAfter; + } D3D12_RESOURCE_TRANSITION_BARRIER; + +typedef struct D3D12_RESOURCE_ALIASING_BARRIER + { + ID3D12Resource *pResourceBefore; + ID3D12Resource *pResourceAfter; + } D3D12_RESOURCE_ALIASING_BARRIER; + +typedef struct D3D12_RESOURCE_UAV_BARRIER + { + ID3D12Resource *pResource; + } D3D12_RESOURCE_UAV_BARRIER; + +typedef +enum D3D12_RESOURCE_BARRIER_FLAGS + { + D3D12_RESOURCE_BARRIER_FLAG_NONE = 0, + D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1, + D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2 + } D3D12_RESOURCE_BARRIER_FLAGS; + +extern "C++" { inline constexpr D3D12_RESOURCE_BARRIER_FLAGS operator | (D3D12_RESOURCE_BARRIER_FLAGS a, D3D12_RESOURCE_BARRIER_FLAGS b) throw() { return D3D12_RESOURCE_BARRIER_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_RESOURCE_BARRIER_FLAGS &operator |= (D3D12_RESOURCE_BARRIER_FLAGS &a, D3D12_RESOURCE_BARRIER_FLAGS b) throw() { return (D3D12_RESOURCE_BARRIER_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_RESOURCE_BARRIER_FLAGS operator & (D3D12_RESOURCE_BARRIER_FLAGS a, D3D12_RESOURCE_BARRIER_FLAGS b) throw() { return D3D12_RESOURCE_BARRIER_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_RESOURCE_BARRIER_FLAGS &operator &= (D3D12_RESOURCE_BARRIER_FLAGS &a, D3D12_RESOURCE_BARRIER_FLAGS b) throw() { return (D3D12_RESOURCE_BARRIER_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_RESOURCE_BARRIER_FLAGS operator ~ (D3D12_RESOURCE_BARRIER_FLAGS a) throw() { return D3D12_RESOURCE_BARRIER_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_RESOURCE_BARRIER_FLAGS operator ^ (D3D12_RESOURCE_BARRIER_FLAGS a, D3D12_RESOURCE_BARRIER_FLAGS b) throw() { return D3D12_RESOURCE_BARRIER_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_RESOURCE_BARRIER_FLAGS &operator ^= (D3D12_RESOURCE_BARRIER_FLAGS &a, D3D12_RESOURCE_BARRIER_FLAGS b) throw() { return (D3D12_RESOURCE_BARRIER_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef struct D3D12_RESOURCE_BARRIER + { + D3D12_RESOURCE_BARRIER_TYPE Type; + D3D12_RESOURCE_BARRIER_FLAGS Flags; + union + { + D3D12_RESOURCE_TRANSITION_BARRIER Transition; + D3D12_RESOURCE_ALIASING_BARRIER Aliasing; + D3D12_RESOURCE_UAV_BARRIER UAV; + } ; + } D3D12_RESOURCE_BARRIER; + +typedef struct D3D12_SUBRESOURCE_FOOTPRINT + { + DXGI_FORMAT Format; + UINT Width; + UINT Height; + UINT Depth; + UINT RowPitch; + } D3D12_SUBRESOURCE_FOOTPRINT; + +typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT + { + UINT64 Offset; + D3D12_SUBRESOURCE_FOOTPRINT Footprint; + } D3D12_PLACED_SUBRESOURCE_FOOTPRINT; + +typedef +enum D3D12_TEXTURE_COPY_TYPE + { + D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0, + D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1 + } D3D12_TEXTURE_COPY_TYPE; + +typedef struct D3D12_TEXTURE_COPY_LOCATION + { + ID3D12Resource *pResource; + D3D12_TEXTURE_COPY_TYPE Type; + union + { + D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint; + UINT SubresourceIndex; + } ; + } D3D12_TEXTURE_COPY_LOCATION; + +typedef +enum D3D12_SHADER_COMPONENT_MAPPING + { + D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0, + D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1, + D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2, + D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3, + D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4, + D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5 + } D3D12_SHADER_COMPONENT_MAPPING; +# 2217 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +typedef +enum D3D12_BUFFER_SRV_FLAGS + { + D3D12_BUFFER_SRV_FLAG_NONE = 0, + D3D12_BUFFER_SRV_FLAG_RAW = 0x1 + } D3D12_BUFFER_SRV_FLAGS; + +extern "C++" { inline constexpr D3D12_BUFFER_SRV_FLAGS operator | (D3D12_BUFFER_SRV_FLAGS a, D3D12_BUFFER_SRV_FLAGS b) throw() { return D3D12_BUFFER_SRV_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_BUFFER_SRV_FLAGS &operator |= (D3D12_BUFFER_SRV_FLAGS &a, D3D12_BUFFER_SRV_FLAGS b) throw() { return (D3D12_BUFFER_SRV_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_BUFFER_SRV_FLAGS operator & (D3D12_BUFFER_SRV_FLAGS a, D3D12_BUFFER_SRV_FLAGS b) throw() { return D3D12_BUFFER_SRV_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_BUFFER_SRV_FLAGS &operator &= (D3D12_BUFFER_SRV_FLAGS &a, D3D12_BUFFER_SRV_FLAGS b) throw() { return (D3D12_BUFFER_SRV_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_BUFFER_SRV_FLAGS operator ~ (D3D12_BUFFER_SRV_FLAGS a) throw() { return D3D12_BUFFER_SRV_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_BUFFER_SRV_FLAGS operator ^ (D3D12_BUFFER_SRV_FLAGS a, D3D12_BUFFER_SRV_FLAGS b) throw() { return D3D12_BUFFER_SRV_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_BUFFER_SRV_FLAGS &operator ^= (D3D12_BUFFER_SRV_FLAGS &a, D3D12_BUFFER_SRV_FLAGS b) throw() { return (D3D12_BUFFER_SRV_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef struct D3D12_BUFFER_SRV + { + UINT64 FirstElement; + UINT NumElements; + UINT StructureByteStride; + D3D12_BUFFER_SRV_FLAGS Flags; + } D3D12_BUFFER_SRV; + +typedef struct D3D12_TEX1D_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + FLOAT ResourceMinLODClamp; + } D3D12_TEX1D_SRV; + +typedef struct D3D12_TEX1D_ARRAY_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + UINT FirstArraySlice; + UINT ArraySize; + FLOAT ResourceMinLODClamp; + } D3D12_TEX1D_ARRAY_SRV; + +typedef struct D3D12_TEX2D_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + UINT PlaneSlice; + FLOAT ResourceMinLODClamp; + } D3D12_TEX2D_SRV; + +typedef struct D3D12_TEX2D_ARRAY_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + UINT FirstArraySlice; + UINT ArraySize; + UINT PlaneSlice; + FLOAT ResourceMinLODClamp; + } D3D12_TEX2D_ARRAY_SRV; + +typedef struct D3D12_TEX3D_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + FLOAT ResourceMinLODClamp; + } D3D12_TEX3D_SRV; + +typedef struct D3D12_TEXCUBE_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + FLOAT ResourceMinLODClamp; + } D3D12_TEXCUBE_SRV; + +typedef struct D3D12_TEXCUBE_ARRAY_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + UINT First2DArrayFace; + UINT NumCubes; + FLOAT ResourceMinLODClamp; + } D3D12_TEXCUBE_ARRAY_SRV; + +typedef struct D3D12_TEX2DMS_SRV + { + UINT UnusedField_NothingToDefine; + } D3D12_TEX2DMS_SRV; + +typedef struct D3D12_TEX2DMS_ARRAY_SRV + { + UINT FirstArraySlice; + UINT ArraySize; + } D3D12_TEX2DMS_ARRAY_SRV; + +typedef +enum D3D12_SRV_DIMENSION + { + D3D12_SRV_DIMENSION_UNKNOWN = 0, + D3D12_SRV_DIMENSION_BUFFER = 1, + D3D12_SRV_DIMENSION_TEXTURE1D = 2, + D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3, + D3D12_SRV_DIMENSION_TEXTURE2D = 4, + D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5, + D3D12_SRV_DIMENSION_TEXTURE2DMS = 6, + D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, + D3D12_SRV_DIMENSION_TEXTURE3D = 8, + D3D12_SRV_DIMENSION_TEXTURECUBE = 9, + D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10 + } D3D12_SRV_DIMENSION; + +typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC + { + DXGI_FORMAT Format; + D3D12_SRV_DIMENSION ViewDimension; + UINT Shader4ComponentMapping; + union + { + D3D12_BUFFER_SRV Buffer; + D3D12_TEX1D_SRV Texture1D; + D3D12_TEX1D_ARRAY_SRV Texture1DArray; + D3D12_TEX2D_SRV Texture2D; + D3D12_TEX2D_ARRAY_SRV Texture2DArray; + D3D12_TEX2DMS_SRV Texture2DMS; + D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray; + D3D12_TEX3D_SRV Texture3D; + D3D12_TEXCUBE_SRV TextureCube; + D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray; + } ; + } D3D12_SHADER_RESOURCE_VIEW_DESC; + +typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC + { + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; + UINT SizeInBytes; + } D3D12_CONSTANT_BUFFER_VIEW_DESC; + +typedef +enum D3D12_FILTER + { + D3D12_FILTER_MIN_MAG_MIP_POINT = 0, + D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1, + D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4, + D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5, + D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, + D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, + D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, + D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15, + D3D12_FILTER_ANISOTROPIC = 0x55, + D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, + D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, + D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, + D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, + D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, + D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, + D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, + D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, + D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5, + D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100, + D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101, + D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104, + D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105, + D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110, + D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111, + D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114, + D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115, + D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155, + D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180, + D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181, + D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184, + D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185, + D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190, + D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191, + D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194, + D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195, + D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5 + } D3D12_FILTER; + +typedef +enum D3D12_FILTER_TYPE + { + D3D12_FILTER_TYPE_POINT = 0, + D3D12_FILTER_TYPE_LINEAR = 1 + } D3D12_FILTER_TYPE; + +typedef +enum D3D12_FILTER_REDUCTION_TYPE + { + D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0, + D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1, + D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2, + D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3 + } D3D12_FILTER_REDUCTION_TYPE; +# 2446 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +typedef +enum D3D12_TEXTURE_ADDRESS_MODE + { + D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1, + D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2, + D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3, + D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4, + D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5 + } D3D12_TEXTURE_ADDRESS_MODE; + +typedef struct D3D12_SAMPLER_DESC + { + D3D12_FILTER Filter; + D3D12_TEXTURE_ADDRESS_MODE AddressU; + D3D12_TEXTURE_ADDRESS_MODE AddressV; + D3D12_TEXTURE_ADDRESS_MODE AddressW; + FLOAT MipLODBias; + UINT MaxAnisotropy; + D3D12_COMPARISON_FUNC ComparisonFunc; + FLOAT BorderColor[ 4 ]; + FLOAT MinLOD; + FLOAT MaxLOD; + } D3D12_SAMPLER_DESC; + +typedef +enum D3D12_BUFFER_UAV_FLAGS + { + D3D12_BUFFER_UAV_FLAG_NONE = 0, + D3D12_BUFFER_UAV_FLAG_RAW = 0x1 + } D3D12_BUFFER_UAV_FLAGS; + +extern "C++" { inline constexpr D3D12_BUFFER_UAV_FLAGS operator | (D3D12_BUFFER_UAV_FLAGS a, D3D12_BUFFER_UAV_FLAGS b) throw() { return D3D12_BUFFER_UAV_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_BUFFER_UAV_FLAGS &operator |= (D3D12_BUFFER_UAV_FLAGS &a, D3D12_BUFFER_UAV_FLAGS b) throw() { return (D3D12_BUFFER_UAV_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_BUFFER_UAV_FLAGS operator & (D3D12_BUFFER_UAV_FLAGS a, D3D12_BUFFER_UAV_FLAGS b) throw() { return D3D12_BUFFER_UAV_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_BUFFER_UAV_FLAGS &operator &= (D3D12_BUFFER_UAV_FLAGS &a, D3D12_BUFFER_UAV_FLAGS b) throw() { return (D3D12_BUFFER_UAV_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_BUFFER_UAV_FLAGS operator ~ (D3D12_BUFFER_UAV_FLAGS a) throw() { return D3D12_BUFFER_UAV_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_BUFFER_UAV_FLAGS operator ^ (D3D12_BUFFER_UAV_FLAGS a, D3D12_BUFFER_UAV_FLAGS b) throw() { return D3D12_BUFFER_UAV_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_BUFFER_UAV_FLAGS &operator ^= (D3D12_BUFFER_UAV_FLAGS &a, D3D12_BUFFER_UAV_FLAGS b) throw() { return (D3D12_BUFFER_UAV_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef struct D3D12_BUFFER_UAV + { + UINT64 FirstElement; + UINT NumElements; + UINT StructureByteStride; + UINT64 CounterOffsetInBytes; + D3D12_BUFFER_UAV_FLAGS Flags; + } D3D12_BUFFER_UAV; + +typedef struct D3D12_TEX1D_UAV + { + UINT MipSlice; + } D3D12_TEX1D_UAV; + +typedef struct D3D12_TEX1D_ARRAY_UAV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + } D3D12_TEX1D_ARRAY_UAV; + +typedef struct D3D12_TEX2D_UAV + { + UINT MipSlice; + UINT PlaneSlice; + } D3D12_TEX2D_UAV; + +typedef struct D3D12_TEX2D_ARRAY_UAV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + UINT PlaneSlice; + } D3D12_TEX2D_ARRAY_UAV; + +typedef struct D3D12_TEX3D_UAV + { + UINT MipSlice; + UINT FirstWSlice; + UINT WSize; + } D3D12_TEX3D_UAV; + +typedef +enum D3D12_UAV_DIMENSION + { + D3D12_UAV_DIMENSION_UNKNOWN = 0, + D3D12_UAV_DIMENSION_BUFFER = 1, + D3D12_UAV_DIMENSION_TEXTURE1D = 2, + D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3, + D3D12_UAV_DIMENSION_TEXTURE2D = 4, + D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5, + D3D12_UAV_DIMENSION_TEXTURE3D = 8 + } D3D12_UAV_DIMENSION; + +typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC + { + DXGI_FORMAT Format; + D3D12_UAV_DIMENSION ViewDimension; + union + { + D3D12_BUFFER_UAV Buffer; + D3D12_TEX1D_UAV Texture1D; + D3D12_TEX1D_ARRAY_UAV Texture1DArray; + D3D12_TEX2D_UAV Texture2D; + D3D12_TEX2D_ARRAY_UAV Texture2DArray; + D3D12_TEX3D_UAV Texture3D; + } ; + } D3D12_UNORDERED_ACCESS_VIEW_DESC; + +typedef struct D3D12_BUFFER_RTV + { + UINT64 FirstElement; + UINT NumElements; + } D3D12_BUFFER_RTV; + +typedef struct D3D12_TEX1D_RTV + { + UINT MipSlice; + } D3D12_TEX1D_RTV; + +typedef struct D3D12_TEX1D_ARRAY_RTV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + } D3D12_TEX1D_ARRAY_RTV; + +typedef struct D3D12_TEX2D_RTV + { + UINT MipSlice; + UINT PlaneSlice; + } D3D12_TEX2D_RTV; + +typedef struct D3D12_TEX2DMS_RTV + { + UINT UnusedField_NothingToDefine; + } D3D12_TEX2DMS_RTV; + +typedef struct D3D12_TEX2D_ARRAY_RTV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + UINT PlaneSlice; + } D3D12_TEX2D_ARRAY_RTV; + +typedef struct D3D12_TEX2DMS_ARRAY_RTV + { + UINT FirstArraySlice; + UINT ArraySize; + } D3D12_TEX2DMS_ARRAY_RTV; + +typedef struct D3D12_TEX3D_RTV + { + UINT MipSlice; + UINT FirstWSlice; + UINT WSize; + } D3D12_TEX3D_RTV; + +typedef +enum D3D12_RTV_DIMENSION + { + D3D12_RTV_DIMENSION_UNKNOWN = 0, + D3D12_RTV_DIMENSION_BUFFER = 1, + D3D12_RTV_DIMENSION_TEXTURE1D = 2, + D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3, + D3D12_RTV_DIMENSION_TEXTURE2D = 4, + D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5, + D3D12_RTV_DIMENSION_TEXTURE2DMS = 6, + D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7, + D3D12_RTV_DIMENSION_TEXTURE3D = 8 + } D3D12_RTV_DIMENSION; + +typedef struct D3D12_RENDER_TARGET_VIEW_DESC + { + DXGI_FORMAT Format; + D3D12_RTV_DIMENSION ViewDimension; + union + { + D3D12_BUFFER_RTV Buffer; + D3D12_TEX1D_RTV Texture1D; + D3D12_TEX1D_ARRAY_RTV Texture1DArray; + D3D12_TEX2D_RTV Texture2D; + D3D12_TEX2D_ARRAY_RTV Texture2DArray; + D3D12_TEX2DMS_RTV Texture2DMS; + D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray; + D3D12_TEX3D_RTV Texture3D; + } ; + } D3D12_RENDER_TARGET_VIEW_DESC; + +typedef struct D3D12_TEX1D_DSV + { + UINT MipSlice; + } D3D12_TEX1D_DSV; + +typedef struct D3D12_TEX1D_ARRAY_DSV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + } D3D12_TEX1D_ARRAY_DSV; + +typedef struct D3D12_TEX2D_DSV + { + UINT MipSlice; + } D3D12_TEX2D_DSV; + +typedef struct D3D12_TEX2D_ARRAY_DSV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + } D3D12_TEX2D_ARRAY_DSV; + +typedef struct D3D12_TEX2DMS_DSV + { + UINT UnusedField_NothingToDefine; + } D3D12_TEX2DMS_DSV; + +typedef struct D3D12_TEX2DMS_ARRAY_DSV + { + UINT FirstArraySlice; + UINT ArraySize; + } D3D12_TEX2DMS_ARRAY_DSV; + +typedef +enum D3D12_DSV_FLAGS + { + D3D12_DSV_FLAG_NONE = 0, + D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1, + D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2 + } D3D12_DSV_FLAGS; + +extern "C++" { inline constexpr D3D12_DSV_FLAGS operator | (D3D12_DSV_FLAGS a, D3D12_DSV_FLAGS b) throw() { return D3D12_DSV_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_DSV_FLAGS &operator |= (D3D12_DSV_FLAGS &a, D3D12_DSV_FLAGS b) throw() { return (D3D12_DSV_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_DSV_FLAGS operator & (D3D12_DSV_FLAGS a, D3D12_DSV_FLAGS b) throw() { return D3D12_DSV_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_DSV_FLAGS &operator &= (D3D12_DSV_FLAGS &a, D3D12_DSV_FLAGS b) throw() { return (D3D12_DSV_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_DSV_FLAGS operator ~ (D3D12_DSV_FLAGS a) throw() { return D3D12_DSV_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_DSV_FLAGS operator ^ (D3D12_DSV_FLAGS a, D3D12_DSV_FLAGS b) throw() { return D3D12_DSV_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_DSV_FLAGS &operator ^= (D3D12_DSV_FLAGS &a, D3D12_DSV_FLAGS b) throw() { return (D3D12_DSV_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef +enum D3D12_DSV_DIMENSION + { + D3D12_DSV_DIMENSION_UNKNOWN = 0, + D3D12_DSV_DIMENSION_TEXTURE1D = 1, + D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2, + D3D12_DSV_DIMENSION_TEXTURE2D = 3, + D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4, + D3D12_DSV_DIMENSION_TEXTURE2DMS = 5, + D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6 + } D3D12_DSV_DIMENSION; + +typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC + { + DXGI_FORMAT Format; + D3D12_DSV_DIMENSION ViewDimension; + D3D12_DSV_FLAGS Flags; + union + { + D3D12_TEX1D_DSV Texture1D; + D3D12_TEX1D_ARRAY_DSV Texture1DArray; + D3D12_TEX2D_DSV Texture2D; + D3D12_TEX2D_ARRAY_DSV Texture2DArray; + D3D12_TEX2DMS_DSV Texture2DMS; + D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray; + } ; + } D3D12_DEPTH_STENCIL_VIEW_DESC; + +typedef +enum D3D12_CLEAR_FLAGS + { + D3D12_CLEAR_FLAG_DEPTH = 0x1, + D3D12_CLEAR_FLAG_STENCIL = 0x2 + } D3D12_CLEAR_FLAGS; + +extern "C++" { inline constexpr D3D12_CLEAR_FLAGS operator | (D3D12_CLEAR_FLAGS a, D3D12_CLEAR_FLAGS b) throw() { return D3D12_CLEAR_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_CLEAR_FLAGS &operator |= (D3D12_CLEAR_FLAGS &a, D3D12_CLEAR_FLAGS b) throw() { return (D3D12_CLEAR_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_CLEAR_FLAGS operator & (D3D12_CLEAR_FLAGS a, D3D12_CLEAR_FLAGS b) throw() { return D3D12_CLEAR_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_CLEAR_FLAGS &operator &= (D3D12_CLEAR_FLAGS &a, D3D12_CLEAR_FLAGS b) throw() { return (D3D12_CLEAR_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_CLEAR_FLAGS operator ~ (D3D12_CLEAR_FLAGS a) throw() { return D3D12_CLEAR_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_CLEAR_FLAGS operator ^ (D3D12_CLEAR_FLAGS a, D3D12_CLEAR_FLAGS b) throw() { return D3D12_CLEAR_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_CLEAR_FLAGS &operator ^= (D3D12_CLEAR_FLAGS &a, D3D12_CLEAR_FLAGS b) throw() { return (D3D12_CLEAR_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef +enum D3D12_FENCE_FLAGS + { + D3D12_FENCE_FLAG_NONE = 0, + D3D12_FENCE_FLAG_SHARED = 0x1, + D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2 + } D3D12_FENCE_FLAGS; + +extern "C++" { inline constexpr D3D12_FENCE_FLAGS operator | (D3D12_FENCE_FLAGS a, D3D12_FENCE_FLAGS b) throw() { return D3D12_FENCE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_FENCE_FLAGS &operator |= (D3D12_FENCE_FLAGS &a, D3D12_FENCE_FLAGS b) throw() { return (D3D12_FENCE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_FENCE_FLAGS operator & (D3D12_FENCE_FLAGS a, D3D12_FENCE_FLAGS b) throw() { return D3D12_FENCE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_FENCE_FLAGS &operator &= (D3D12_FENCE_FLAGS &a, D3D12_FENCE_FLAGS b) throw() { return (D3D12_FENCE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_FENCE_FLAGS operator ~ (D3D12_FENCE_FLAGS a) throw() { return D3D12_FENCE_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_FENCE_FLAGS operator ^ (D3D12_FENCE_FLAGS a, D3D12_FENCE_FLAGS b) throw() { return D3D12_FENCE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_FENCE_FLAGS &operator ^= (D3D12_FENCE_FLAGS &a, D3D12_FENCE_FLAGS b) throw() { return (D3D12_FENCE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef +enum D3D12_DESCRIPTOR_HEAP_TYPE + { + D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV = 0, + D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV + 1 ) , + D3D12_DESCRIPTOR_HEAP_TYPE_RTV = ( D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER + 1 ) , + D3D12_DESCRIPTOR_HEAP_TYPE_DSV = ( D3D12_DESCRIPTOR_HEAP_TYPE_RTV + 1 ) , + D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES = ( D3D12_DESCRIPTOR_HEAP_TYPE_DSV + 1 ) + } D3D12_DESCRIPTOR_HEAP_TYPE; + +typedef +enum D3D12_DESCRIPTOR_HEAP_FLAGS + { + D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0, + D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1 + } D3D12_DESCRIPTOR_HEAP_FLAGS; + +extern "C++" { inline constexpr D3D12_DESCRIPTOR_HEAP_FLAGS operator | (D3D12_DESCRIPTOR_HEAP_FLAGS a, D3D12_DESCRIPTOR_HEAP_FLAGS b) throw() { return D3D12_DESCRIPTOR_HEAP_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_DESCRIPTOR_HEAP_FLAGS &operator |= (D3D12_DESCRIPTOR_HEAP_FLAGS &a, D3D12_DESCRIPTOR_HEAP_FLAGS b) throw() { return (D3D12_DESCRIPTOR_HEAP_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_DESCRIPTOR_HEAP_FLAGS operator & (D3D12_DESCRIPTOR_HEAP_FLAGS a, D3D12_DESCRIPTOR_HEAP_FLAGS b) throw() { return D3D12_DESCRIPTOR_HEAP_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_DESCRIPTOR_HEAP_FLAGS &operator &= (D3D12_DESCRIPTOR_HEAP_FLAGS &a, D3D12_DESCRIPTOR_HEAP_FLAGS b) throw() { return (D3D12_DESCRIPTOR_HEAP_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_DESCRIPTOR_HEAP_FLAGS operator ~ (D3D12_DESCRIPTOR_HEAP_FLAGS a) throw() { return D3D12_DESCRIPTOR_HEAP_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_DESCRIPTOR_HEAP_FLAGS operator ^ (D3D12_DESCRIPTOR_HEAP_FLAGS a, D3D12_DESCRIPTOR_HEAP_FLAGS b) throw() { return D3D12_DESCRIPTOR_HEAP_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_DESCRIPTOR_HEAP_FLAGS &operator ^= (D3D12_DESCRIPTOR_HEAP_FLAGS &a, D3D12_DESCRIPTOR_HEAP_FLAGS b) throw() { return (D3D12_DESCRIPTOR_HEAP_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef struct D3D12_DESCRIPTOR_HEAP_DESC + { + D3D12_DESCRIPTOR_HEAP_TYPE Type; + UINT NumDescriptors; + D3D12_DESCRIPTOR_HEAP_FLAGS Flags; + UINT NodeMask; + } D3D12_DESCRIPTOR_HEAP_DESC; + +typedef +enum D3D12_DESCRIPTOR_RANGE_TYPE + { + D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0, + D3D12_DESCRIPTOR_RANGE_TYPE_UAV = ( D3D12_DESCRIPTOR_RANGE_TYPE_SRV + 1 ) , + D3D12_DESCRIPTOR_RANGE_TYPE_CBV = ( D3D12_DESCRIPTOR_RANGE_TYPE_UAV + 1 ) , + D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_RANGE_TYPE_CBV + 1 ) + } D3D12_DESCRIPTOR_RANGE_TYPE; + +typedef struct D3D12_DESCRIPTOR_RANGE + { + D3D12_DESCRIPTOR_RANGE_TYPE RangeType; + UINT NumDescriptors; + UINT BaseShaderRegister; + UINT RegisterSpace; + UINT OffsetInDescriptorsFromTableStart; + } D3D12_DESCRIPTOR_RANGE; + +typedef struct D3D12_ROOT_DESCRIPTOR_TABLE + { + UINT NumDescriptorRanges; + const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges; + } D3D12_ROOT_DESCRIPTOR_TABLE; + +typedef struct D3D12_ROOT_CONSTANTS + { + UINT ShaderRegister; + UINT RegisterSpace; + UINT Num32BitValues; + } D3D12_ROOT_CONSTANTS; + +typedef struct D3D12_ROOT_DESCRIPTOR + { + UINT ShaderRegister; + UINT RegisterSpace; + } D3D12_ROOT_DESCRIPTOR; + +typedef +enum D3D12_SHADER_VISIBILITY + { + D3D12_SHADER_VISIBILITY_ALL = 0, + D3D12_SHADER_VISIBILITY_VERTEX = 1, + D3D12_SHADER_VISIBILITY_HULL = 2, + D3D12_SHADER_VISIBILITY_DOMAIN = 3, + D3D12_SHADER_VISIBILITY_GEOMETRY = 4, + D3D12_SHADER_VISIBILITY_PIXEL = 5 + } D3D12_SHADER_VISIBILITY; + +typedef +enum D3D12_ROOT_PARAMETER_TYPE + { + D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0, + D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = ( D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE + 1 ) , + D3D12_ROOT_PARAMETER_TYPE_CBV = ( D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS + 1 ) , + D3D12_ROOT_PARAMETER_TYPE_SRV = ( D3D12_ROOT_PARAMETER_TYPE_CBV + 1 ) , + D3D12_ROOT_PARAMETER_TYPE_UAV = ( D3D12_ROOT_PARAMETER_TYPE_SRV + 1 ) + } D3D12_ROOT_PARAMETER_TYPE; + +typedef struct D3D12_ROOT_PARAMETER + { + D3D12_ROOT_PARAMETER_TYPE ParameterType; + union + { + D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable; + D3D12_ROOT_CONSTANTS Constants; + D3D12_ROOT_DESCRIPTOR Descriptor; + } ; + D3D12_SHADER_VISIBILITY ShaderVisibility; + } D3D12_ROOT_PARAMETER; + +typedef +enum D3D12_ROOT_SIGNATURE_FLAGS + { + D3D12_ROOT_SIGNATURE_FLAG_NONE = 0, + D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1, + D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2, + D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4, + D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8, + D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10, + D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20, + D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40 + } D3D12_ROOT_SIGNATURE_FLAGS; + +extern "C++" { inline constexpr D3D12_ROOT_SIGNATURE_FLAGS operator | (D3D12_ROOT_SIGNATURE_FLAGS a, D3D12_ROOT_SIGNATURE_FLAGS b) throw() { return D3D12_ROOT_SIGNATURE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_ROOT_SIGNATURE_FLAGS &operator |= (D3D12_ROOT_SIGNATURE_FLAGS &a, D3D12_ROOT_SIGNATURE_FLAGS b) throw() { return (D3D12_ROOT_SIGNATURE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_ROOT_SIGNATURE_FLAGS operator & (D3D12_ROOT_SIGNATURE_FLAGS a, D3D12_ROOT_SIGNATURE_FLAGS b) throw() { return D3D12_ROOT_SIGNATURE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_ROOT_SIGNATURE_FLAGS &operator &= (D3D12_ROOT_SIGNATURE_FLAGS &a, D3D12_ROOT_SIGNATURE_FLAGS b) throw() { return (D3D12_ROOT_SIGNATURE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_ROOT_SIGNATURE_FLAGS operator ~ (D3D12_ROOT_SIGNATURE_FLAGS a) throw() { return D3D12_ROOT_SIGNATURE_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_ROOT_SIGNATURE_FLAGS operator ^ (D3D12_ROOT_SIGNATURE_FLAGS a, D3D12_ROOT_SIGNATURE_FLAGS b) throw() { return D3D12_ROOT_SIGNATURE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_ROOT_SIGNATURE_FLAGS &operator ^= (D3D12_ROOT_SIGNATURE_FLAGS &a, D3D12_ROOT_SIGNATURE_FLAGS b) throw() { return (D3D12_ROOT_SIGNATURE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef +enum D3D12_STATIC_BORDER_COLOR + { + D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0, + D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = ( D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK + 1 ) , + D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK + 1 ) + } D3D12_STATIC_BORDER_COLOR; + +typedef struct D3D12_STATIC_SAMPLER_DESC + { + D3D12_FILTER Filter; + D3D12_TEXTURE_ADDRESS_MODE AddressU; + D3D12_TEXTURE_ADDRESS_MODE AddressV; + D3D12_TEXTURE_ADDRESS_MODE AddressW; + FLOAT MipLODBias; + UINT MaxAnisotropy; + D3D12_COMPARISON_FUNC ComparisonFunc; + D3D12_STATIC_BORDER_COLOR BorderColor; + FLOAT MinLOD; + FLOAT MaxLOD; + UINT ShaderRegister; + UINT RegisterSpace; + D3D12_SHADER_VISIBILITY ShaderVisibility; + } D3D12_STATIC_SAMPLER_DESC; + +typedef struct D3D12_ROOT_SIGNATURE_DESC + { + UINT NumParameters; + const D3D12_ROOT_PARAMETER *pParameters; + UINT NumStaticSamplers; + const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers; + D3D12_ROOT_SIGNATURE_FLAGS Flags; + } D3D12_ROOT_SIGNATURE_DESC; + +typedef +enum D3D12_DESCRIPTOR_RANGE_FLAGS + { + D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0, + D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1, + D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2, + D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, + D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8 + } D3D12_DESCRIPTOR_RANGE_FLAGS; + +extern "C++" { inline constexpr D3D12_DESCRIPTOR_RANGE_FLAGS operator | (D3D12_DESCRIPTOR_RANGE_FLAGS a, D3D12_DESCRIPTOR_RANGE_FLAGS b) throw() { return D3D12_DESCRIPTOR_RANGE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_DESCRIPTOR_RANGE_FLAGS &operator |= (D3D12_DESCRIPTOR_RANGE_FLAGS &a, D3D12_DESCRIPTOR_RANGE_FLAGS b) throw() { return (D3D12_DESCRIPTOR_RANGE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_DESCRIPTOR_RANGE_FLAGS operator & (D3D12_DESCRIPTOR_RANGE_FLAGS a, D3D12_DESCRIPTOR_RANGE_FLAGS b) throw() { return D3D12_DESCRIPTOR_RANGE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_DESCRIPTOR_RANGE_FLAGS &operator &= (D3D12_DESCRIPTOR_RANGE_FLAGS &a, D3D12_DESCRIPTOR_RANGE_FLAGS b) throw() { return (D3D12_DESCRIPTOR_RANGE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_DESCRIPTOR_RANGE_FLAGS operator ~ (D3D12_DESCRIPTOR_RANGE_FLAGS a) throw() { return D3D12_DESCRIPTOR_RANGE_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_DESCRIPTOR_RANGE_FLAGS operator ^ (D3D12_DESCRIPTOR_RANGE_FLAGS a, D3D12_DESCRIPTOR_RANGE_FLAGS b) throw() { return D3D12_DESCRIPTOR_RANGE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_DESCRIPTOR_RANGE_FLAGS &operator ^= (D3D12_DESCRIPTOR_RANGE_FLAGS &a, D3D12_DESCRIPTOR_RANGE_FLAGS b) throw() { return (D3D12_DESCRIPTOR_RANGE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef struct D3D12_DESCRIPTOR_RANGE1 + { + D3D12_DESCRIPTOR_RANGE_TYPE RangeType; + UINT NumDescriptors; + UINT BaseShaderRegister; + UINT RegisterSpace; + D3D12_DESCRIPTOR_RANGE_FLAGS Flags; + UINT OffsetInDescriptorsFromTableStart; + } D3D12_DESCRIPTOR_RANGE1; + +typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1 + { + UINT NumDescriptorRanges; + const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges; + } D3D12_ROOT_DESCRIPTOR_TABLE1; + +typedef +enum D3D12_ROOT_DESCRIPTOR_FLAGS + { + D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0, + D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2, + D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, + D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8 + } D3D12_ROOT_DESCRIPTOR_FLAGS; + +extern "C++" { inline constexpr D3D12_ROOT_DESCRIPTOR_FLAGS operator | (D3D12_ROOT_DESCRIPTOR_FLAGS a, D3D12_ROOT_DESCRIPTOR_FLAGS b) throw() { return D3D12_ROOT_DESCRIPTOR_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_ROOT_DESCRIPTOR_FLAGS &operator |= (D3D12_ROOT_DESCRIPTOR_FLAGS &a, D3D12_ROOT_DESCRIPTOR_FLAGS b) throw() { return (D3D12_ROOT_DESCRIPTOR_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_ROOT_DESCRIPTOR_FLAGS operator & (D3D12_ROOT_DESCRIPTOR_FLAGS a, D3D12_ROOT_DESCRIPTOR_FLAGS b) throw() { return D3D12_ROOT_DESCRIPTOR_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_ROOT_DESCRIPTOR_FLAGS &operator &= (D3D12_ROOT_DESCRIPTOR_FLAGS &a, D3D12_ROOT_DESCRIPTOR_FLAGS b) throw() { return (D3D12_ROOT_DESCRIPTOR_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_ROOT_DESCRIPTOR_FLAGS operator ~ (D3D12_ROOT_DESCRIPTOR_FLAGS a) throw() { return D3D12_ROOT_DESCRIPTOR_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_ROOT_DESCRIPTOR_FLAGS operator ^ (D3D12_ROOT_DESCRIPTOR_FLAGS a, D3D12_ROOT_DESCRIPTOR_FLAGS b) throw() { return D3D12_ROOT_DESCRIPTOR_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_ROOT_DESCRIPTOR_FLAGS &operator ^= (D3D12_ROOT_DESCRIPTOR_FLAGS &a, D3D12_ROOT_DESCRIPTOR_FLAGS b) throw() { return (D3D12_ROOT_DESCRIPTOR_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef struct D3D12_ROOT_DESCRIPTOR1 + { + UINT ShaderRegister; + UINT RegisterSpace; + D3D12_ROOT_DESCRIPTOR_FLAGS Flags; + } D3D12_ROOT_DESCRIPTOR1; + +typedef struct D3D12_ROOT_PARAMETER1 + { + D3D12_ROOT_PARAMETER_TYPE ParameterType; + union + { + D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable; + D3D12_ROOT_CONSTANTS Constants; + D3D12_ROOT_DESCRIPTOR1 Descriptor; + } ; + D3D12_SHADER_VISIBILITY ShaderVisibility; + } D3D12_ROOT_PARAMETER1; + +typedef struct D3D12_ROOT_SIGNATURE_DESC1 + { + UINT NumParameters; + const D3D12_ROOT_PARAMETER1 *pParameters; + UINT NumStaticSamplers; + const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers; + D3D12_ROOT_SIGNATURE_FLAGS Flags; + } D3D12_ROOT_SIGNATURE_DESC1; + +typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC + { + D3D_ROOT_SIGNATURE_VERSION Version; + union + { + D3D12_ROOT_SIGNATURE_DESC Desc_1_0; + D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1; + } ; + } D3D12_VERSIONED_ROOT_SIGNATURE_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_s_ifspec; +# 2948 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12RootSignatureDeserializer; + + + + struct __declspec(uuid("34AB647B-3CC8-46AC-841B-C0965645C046")) __declspec(novtable) + ID3D12RootSignatureDeserializer : public IUnknown + { + public: + virtual const D3D12_ROOT_SIGNATURE_DESC *__stdcall GetRootSignatureDesc( void) = 0; + + }; +# 3025 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12VersionedRootSignatureDeserializer; + + + + struct __declspec(uuid("7F91CE67-090C-4BB7-B78E-ED8FF2E31DA0")) __declspec(novtable) + ID3D12VersionedRootSignatureDeserializer : public IUnknown + { + public: + virtual HRESULT __stdcall GetRootSignatureDescAtVersion( + D3D_ROOT_SIGNATURE_VERSION convertToVersion, + const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc) = 0; + + virtual const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *__stdcall GetUnconvertedRootSignatureDesc( void) = 0; + + }; +# 3110 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +typedef HRESULT (__stdcall* PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)( + const D3D12_ROOT_SIGNATURE_DESC* pRootSignature, + D3D_ROOT_SIGNATURE_VERSION Version, + ID3DBlob** ppBlob, + ID3DBlob** ppErrorBlob); + +HRESULT __stdcall D3D12SerializeRootSignature( + const D3D12_ROOT_SIGNATURE_DESC* pRootSignature, + D3D_ROOT_SIGNATURE_VERSION Version, + ID3DBlob** ppBlob, + ID3DBlob** ppErrorBlob); + +typedef HRESULT (__stdcall* PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)( + LPCVOID pSrcData, + SIZE_T SrcDataSizeInBytes, + const IID & pRootSignatureDeserializerInterface, + void** ppRootSignatureDeserializer); + +HRESULT __stdcall D3D12CreateRootSignatureDeserializer( + LPCVOID pSrcData, + SIZE_T SrcDataSizeInBytes, + const IID & pRootSignatureDeserializerInterface, + void** ppRootSignatureDeserializer); + +typedef HRESULT (__stdcall* PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)( + const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature, + ID3DBlob** ppBlob, + ID3DBlob** ppErrorBlob); + +HRESULT __stdcall D3D12SerializeVersionedRootSignature( + const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature, + ID3DBlob** ppBlob, + ID3DBlob** ppErrorBlob); + +typedef HRESULT (__stdcall* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)( + LPCVOID pSrcData, + SIZE_T SrcDataSizeInBytes, + const IID & pRootSignatureDeserializerInterface, + void** ppRootSignatureDeserializer); + +HRESULT __stdcall D3D12CreateVersionedRootSignatureDeserializer( + LPCVOID pSrcData, + SIZE_T SrcDataSizeInBytes, + const IID & pRootSignatureDeserializerInterface, + void** ppRootSignatureDeserializer); + +typedef struct D3D12_CPU_DESCRIPTOR_HANDLE + { + SIZE_T ptr; + } D3D12_CPU_DESCRIPTOR_HANDLE; + +typedef struct D3D12_GPU_DESCRIPTOR_HANDLE + { + UINT64 ptr; + } D3D12_GPU_DESCRIPTOR_HANDLE; + + + +typedef struct D3D12_DISCARD_REGION + { + UINT NumRects; + const D3D12_RECT *pRects; + UINT FirstSubresource; + UINT NumSubresources; + } D3D12_DISCARD_REGION; + +typedef +enum D3D12_QUERY_HEAP_TYPE + { + D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0, + D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1, + D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2, + D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3 + } D3D12_QUERY_HEAP_TYPE; + +typedef struct D3D12_QUERY_HEAP_DESC + { + D3D12_QUERY_HEAP_TYPE Type; + UINT Count; + UINT NodeMask; + } D3D12_QUERY_HEAP_DESC; + +typedef +enum D3D12_QUERY_TYPE + { + D3D12_QUERY_TYPE_OCCLUSION = 0, + D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1, + D3D12_QUERY_TYPE_TIMESTAMP = 2, + D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3, + D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4, + D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5, + D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6, + D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7 + } D3D12_QUERY_TYPE; + +typedef +enum D3D12_PREDICATION_OP + { + D3D12_PREDICATION_OP_EQUAL_ZERO = 0, + D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1 + } D3D12_PREDICATION_OP; + +typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS + { + UINT64 IAVertices; + UINT64 IAPrimitives; + UINT64 VSInvocations; + UINT64 GSInvocations; + UINT64 GSPrimitives; + UINT64 CInvocations; + UINT64 CPrimitives; + UINT64 PSInvocations; + UINT64 HSInvocations; + UINT64 DSInvocations; + UINT64 CSInvocations; + } D3D12_QUERY_DATA_PIPELINE_STATISTICS; + +typedef struct D3D12_QUERY_DATA_SO_STATISTICS + { + UINT64 NumPrimitivesWritten; + UINT64 PrimitivesStorageNeeded; + } D3D12_QUERY_DATA_SO_STATISTICS; + +typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW + { + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; + UINT64 SizeInBytes; + D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation; + } D3D12_STREAM_OUTPUT_BUFFER_VIEW; + +typedef struct D3D12_DRAW_ARGUMENTS + { + UINT VertexCountPerInstance; + UINT InstanceCount; + UINT StartVertexLocation; + UINT StartInstanceLocation; + } D3D12_DRAW_ARGUMENTS; + +typedef struct D3D12_DRAW_INDEXED_ARGUMENTS + { + UINT IndexCountPerInstance; + UINT InstanceCount; + UINT StartIndexLocation; + INT BaseVertexLocation; + UINT StartInstanceLocation; + } D3D12_DRAW_INDEXED_ARGUMENTS; + +typedef struct D3D12_DISPATCH_ARGUMENTS + { + UINT ThreadGroupCountX; + UINT ThreadGroupCountY; + UINT ThreadGroupCountZ; + } D3D12_DISPATCH_ARGUMENTS; + +typedef struct D3D12_VERTEX_BUFFER_VIEW + { + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; + UINT SizeInBytes; + UINT StrideInBytes; + } D3D12_VERTEX_BUFFER_VIEW; + +typedef struct D3D12_INDEX_BUFFER_VIEW + { + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; + UINT SizeInBytes; + DXGI_FORMAT Format; + } D3D12_INDEX_BUFFER_VIEW; + +typedef +enum D3D12_INDIRECT_ARGUMENT_TYPE + { + D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0, + D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW + 1 ) , + D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED + 1 ) , + D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH + 1 ) , + D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW + 1 ) , + D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW + 1 ) , + D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT + 1 ) , + D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW + 1 ) , + D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW + 1 ) + } D3D12_INDIRECT_ARGUMENT_TYPE; + +typedef struct D3D12_INDIRECT_ARGUMENT_DESC + { + D3D12_INDIRECT_ARGUMENT_TYPE Type; + union + { + struct + { + UINT Slot; + } VertexBuffer; + struct + { + UINT RootParameterIndex; + UINT DestOffsetIn32BitValues; + UINT Num32BitValuesToSet; + } Constant; + struct + { + UINT RootParameterIndex; + } ConstantBufferView; + struct + { + UINT RootParameterIndex; + } ShaderResourceView; + struct + { + UINT RootParameterIndex; + } UnorderedAccessView; + } ; + } D3D12_INDIRECT_ARGUMENT_DESC; + +typedef struct D3D12_COMMAND_SIGNATURE_DESC + { + UINT ByteStride; + UINT NumArgumentDescs; + const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs; + UINT NodeMask; + } D3D12_COMMAND_SIGNATURE_DESC; + + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_s_ifspec; +# 3343 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12Pageable; + + + + struct __declspec(uuid("63ee58fb-1268-4835-86da-f008ce62f0d6")) __declspec(novtable) + ID3D12Pageable : public ID3D12DeviceChild + { + public: + }; +# 3455 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12Heap; + + + + struct __declspec(uuid("6b3b2502-6e51-45b3-90ee-9884265e8df3")) __declspec(novtable) + ID3D12Heap : public ID3D12Pageable + { + public: + virtual D3D12_HEAP_DESC __stdcall GetDesc( void) = 0; + + }; +# 3580 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12Resource; + + + + struct __declspec(uuid("696442be-a72e-4059-bc79-5b5c98040fad")) __declspec(novtable) + ID3D12Resource : public ID3D12Pageable + { + public: + virtual HRESULT __stdcall Map( + UINT Subresource, + const D3D12_RANGE *pReadRange, + void **ppData) = 0; + + virtual void __stdcall Unmap( + UINT Subresource, + const D3D12_RANGE *pWrittenRange) = 0; + + virtual D3D12_RESOURCE_DESC __stdcall GetDesc( void) = 0; + + virtual D3D12_GPU_VIRTUAL_ADDRESS __stdcall GetGPUVirtualAddress( void) = 0; + + virtual HRESULT __stdcall WriteToSubresource( + UINT DstSubresource, + const D3D12_BOX *pDstBox, + const void *pSrcData, + UINT SrcRowPitch, + UINT SrcDepthPitch) = 0; + + virtual HRESULT __stdcall ReadFromSubresource( + void *pDstData, + UINT DstRowPitch, + UINT DstDepthPitch, + UINT SrcSubresource, + const D3D12_BOX *pSrcBox) = 0; + + virtual HRESULT __stdcall GetHeapProperties( + D3D12_HEAP_PROPERTIES *pHeapProperties, + D3D12_HEAP_FLAGS *pHeapFlags) = 0; + + }; +# 3787 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12CommandAllocator; + + + + struct __declspec(uuid("6102dee4-af59-4b09-b999-b44d73f09b24")) __declspec(novtable) + ID3D12CommandAllocator : public ID3D12Pageable + { + public: + virtual HRESULT __stdcall Reset( void) = 0; + + }; +# 3908 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12Fence; + + + + struct __declspec(uuid("0a753dcf-c4d8-4b91-adf6-be5a60d95a76")) __declspec(novtable) + ID3D12Fence : public ID3D12Pageable + { + public: + virtual UINT64 __stdcall GetCompletedValue( void) = 0; + + virtual HRESULT __stdcall SetEventOnCompletion( + UINT64 Value, + HANDLE hEvent) = 0; + + virtual HRESULT __stdcall Signal( + UINT64 Value) = 0; + + }; +# 4051 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12PipelineState; + + + + struct __declspec(uuid("765a30f3-f624-4c6f-a828-ace948622445")) __declspec(novtable) + ID3D12PipelineState : public ID3D12Pageable + { + public: + virtual HRESULT __stdcall GetCachedBlob( + ID3DBlob **ppBlob) = 0; + + }; +# 4174 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12DescriptorHeap; + + + + struct __declspec(uuid("8efb471d-616c-4f49-90f7-127bb763fa51")) __declspec(novtable) + ID3D12DescriptorHeap : public ID3D12Pageable + { + public: + virtual D3D12_DESCRIPTOR_HEAP_DESC __stdcall GetDesc( void) = 0; + + virtual D3D12_CPU_DESCRIPTOR_HANDLE __stdcall GetCPUDescriptorHandleForHeapStart( void) = 0; + + virtual D3D12_GPU_DESCRIPTOR_HANDLE __stdcall GetGPUDescriptorHandleForHeapStart( void) = 0; + + }; +# 4323 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12QueryHeap; + + + + struct __declspec(uuid("0d9658ae-ed45-469e-a61d-970ec583cab4")) __declspec(novtable) + ID3D12QueryHeap : public ID3D12Pageable + { + public: + }; +# 4436 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12CommandSignature; + + + + struct __declspec(uuid("c36a797c-ec80-4f0a-8985-a7b2475082d1")) __declspec(novtable) + ID3D12CommandSignature : public ID3D12Pageable + { + public: + }; +# 4549 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12CommandList; + + + + struct __declspec(uuid("7116d91c-e7e4-47ce-b8c6-ec8168f437e5")) __declspec(novtable) + ID3D12CommandList : public ID3D12DeviceChild + { + public: + virtual D3D12_COMMAND_LIST_TYPE __stdcall GetType( void) = 0; + + }; +# 4669 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12GraphicsCommandList; + + + + struct __declspec(uuid("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455")) __declspec(novtable) + ID3D12GraphicsCommandList : public ID3D12CommandList + { + public: + virtual HRESULT __stdcall Close( void) = 0; + + virtual HRESULT __stdcall Reset( + ID3D12CommandAllocator *pAllocator, + ID3D12PipelineState *pInitialState) = 0; + + virtual void __stdcall ClearState( + ID3D12PipelineState *pPipelineState) = 0; + + virtual void __stdcall DrawInstanced( + UINT VertexCountPerInstance, + UINT InstanceCount, + UINT StartVertexLocation, + UINT StartInstanceLocation) = 0; + + virtual void __stdcall DrawIndexedInstanced( + UINT IndexCountPerInstance, + UINT InstanceCount, + UINT StartIndexLocation, + INT BaseVertexLocation, + UINT StartInstanceLocation) = 0; + + virtual void __stdcall Dispatch( + UINT ThreadGroupCountX, + UINT ThreadGroupCountY, + UINT ThreadGroupCountZ) = 0; + + virtual void __stdcall CopyBufferRegion( + ID3D12Resource *pDstBuffer, + UINT64 DstOffset, + ID3D12Resource *pSrcBuffer, + UINT64 SrcOffset, + UINT64 NumBytes) = 0; + + virtual void __stdcall CopyTextureRegion( + const D3D12_TEXTURE_COPY_LOCATION *pDst, + UINT DstX, + UINT DstY, + UINT DstZ, + const D3D12_TEXTURE_COPY_LOCATION *pSrc, + const D3D12_BOX *pSrcBox) = 0; + + virtual void __stdcall CopyResource( + ID3D12Resource *pDstResource, + ID3D12Resource *pSrcResource) = 0; + + virtual void __stdcall CopyTiles( + ID3D12Resource *pTiledResource, + const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, + const D3D12_TILE_REGION_SIZE *pTileRegionSize, + ID3D12Resource *pBuffer, + UINT64 BufferStartOffsetInBytes, + D3D12_TILE_COPY_FLAGS Flags) = 0; + + virtual void __stdcall ResolveSubresource( + ID3D12Resource *pDstResource, + UINT DstSubresource, + ID3D12Resource *pSrcResource, + UINT SrcSubresource, + DXGI_FORMAT Format) = 0; + + virtual void __stdcall IASetPrimitiveTopology( + D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology) = 0; + + virtual void __stdcall RSSetViewports( + UINT NumViewports, + const D3D12_VIEWPORT *pViewports) = 0; + + virtual void __stdcall RSSetScissorRects( + UINT NumRects, + const D3D12_RECT *pRects) = 0; + + virtual void __stdcall OMSetBlendFactor( + const FLOAT BlendFactor[ 4 ]) = 0; + + virtual void __stdcall OMSetStencilRef( + UINT StencilRef) = 0; + + virtual void __stdcall SetPipelineState( + ID3D12PipelineState *pPipelineState) = 0; + + virtual void __stdcall ResourceBarrier( + UINT NumBarriers, + const D3D12_RESOURCE_BARRIER *pBarriers) = 0; + + virtual void __stdcall ExecuteBundle( + ID3D12GraphicsCommandList *pCommandList) = 0; + + virtual void __stdcall SetDescriptorHeaps( + UINT NumDescriptorHeaps, + ID3D12DescriptorHeap *const *ppDescriptorHeaps) = 0; + + virtual void __stdcall SetComputeRootSignature( + ID3D12RootSignature *pRootSignature) = 0; + + virtual void __stdcall SetGraphicsRootSignature( + ID3D12RootSignature *pRootSignature) = 0; + + virtual void __stdcall SetComputeRootDescriptorTable( + UINT RootParameterIndex, + D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0; + + virtual void __stdcall SetGraphicsRootDescriptorTable( + UINT RootParameterIndex, + D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0; + + virtual void __stdcall SetComputeRoot32BitConstant( + UINT RootParameterIndex, + UINT SrcData, + UINT DestOffsetIn32BitValues) = 0; + + virtual void __stdcall SetGraphicsRoot32BitConstant( + UINT RootParameterIndex, + UINT SrcData, + UINT DestOffsetIn32BitValues) = 0; + + virtual void __stdcall SetComputeRoot32BitConstants( + UINT RootParameterIndex, + UINT Num32BitValuesToSet, + const void *pSrcData, + UINT DestOffsetIn32BitValues) = 0; + + virtual void __stdcall SetGraphicsRoot32BitConstants( + UINT RootParameterIndex, + UINT Num32BitValuesToSet, + const void *pSrcData, + UINT DestOffsetIn32BitValues) = 0; + + virtual void __stdcall SetComputeRootConstantBufferView( + UINT RootParameterIndex, + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; + + virtual void __stdcall SetGraphicsRootConstantBufferView( + UINT RootParameterIndex, + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; + + virtual void __stdcall SetComputeRootShaderResourceView( + UINT RootParameterIndex, + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; + + virtual void __stdcall SetGraphicsRootShaderResourceView( + UINT RootParameterIndex, + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; + + virtual void __stdcall SetComputeRootUnorderedAccessView( + UINT RootParameterIndex, + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; + + virtual void __stdcall SetGraphicsRootUnorderedAccessView( + UINT RootParameterIndex, + D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; + + virtual void __stdcall IASetIndexBuffer( + const D3D12_INDEX_BUFFER_VIEW *pView) = 0; + + virtual void __stdcall IASetVertexBuffers( + UINT StartSlot, + UINT NumViews, + const D3D12_VERTEX_BUFFER_VIEW *pViews) = 0; + + virtual void __stdcall SOSetTargets( + UINT StartSlot, + UINT NumViews, + const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews) = 0; + + virtual void __stdcall OMSetRenderTargets( + UINT NumRenderTargetDescriptors, + const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, + BOOL RTsSingleHandleToDescriptorRange, + const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor) = 0; + + virtual void __stdcall ClearDepthStencilView( + D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, + D3D12_CLEAR_FLAGS ClearFlags, + FLOAT Depth, + UINT8 Stencil, + UINT NumRects, + const D3D12_RECT *pRects) = 0; + + virtual void __stdcall ClearRenderTargetView( + D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, + const FLOAT ColorRGBA[ 4 ], + UINT NumRects, + const D3D12_RECT *pRects) = 0; + + virtual void __stdcall ClearUnorderedAccessViewUint( + D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, + D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, + ID3D12Resource *pResource, + const UINT Values[ 4 ], + UINT NumRects, + const D3D12_RECT *pRects) = 0; + + virtual void __stdcall ClearUnorderedAccessViewFloat( + D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, + D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, + ID3D12Resource *pResource, + const FLOAT Values[ 4 ], + UINT NumRects, + const D3D12_RECT *pRects) = 0; + + virtual void __stdcall DiscardResource( + ID3D12Resource *pResource, + const D3D12_DISCARD_REGION *pRegion) = 0; + + virtual void __stdcall BeginQuery( + ID3D12QueryHeap *pQueryHeap, + D3D12_QUERY_TYPE Type, + UINT Index) = 0; + + virtual void __stdcall EndQuery( + ID3D12QueryHeap *pQueryHeap, + D3D12_QUERY_TYPE Type, + UINT Index) = 0; + + virtual void __stdcall ResolveQueryData( + ID3D12QueryHeap *pQueryHeap, + D3D12_QUERY_TYPE Type, + UINT StartIndex, + UINT NumQueries, + ID3D12Resource *pDestinationBuffer, + UINT64 AlignedDestinationBufferOffset) = 0; + + virtual void __stdcall SetPredication( + ID3D12Resource *pBuffer, + UINT64 AlignedBufferOffset, + D3D12_PREDICATION_OP Operation) = 0; + + virtual void __stdcall SetMarker( + UINT Metadata, + const void *pData, + UINT Size) = 0; + + virtual void __stdcall BeginEvent( + UINT Metadata, + const void *pData, + UINT Size) = 0; + + virtual void __stdcall EndEvent( void) = 0; + + virtual void __stdcall ExecuteIndirect( + ID3D12CommandSignature *pCommandSignature, + UINT MaxCommandCount, + ID3D12Resource *pArgumentBuffer, + UINT64 ArgumentBufferOffset, + ID3D12Resource *pCountBuffer, + UINT64 CountBufferOffset) = 0; + + }; +# 5488 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12CommandQueue; + + + + struct __declspec(uuid("0ec870a6-5d7e-4c22-8cfc-5baae07616ed")) __declspec(novtable) + ID3D12CommandQueue : public ID3D12Pageable + { + public: + virtual void __stdcall UpdateTileMappings( + ID3D12Resource *pResource, + UINT NumResourceRegions, + const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, + const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, + ID3D12Heap *pHeap, + UINT NumRanges, + const D3D12_TILE_RANGE_FLAGS *pRangeFlags, + const UINT *pHeapRangeStartOffsets, + const UINT *pRangeTileCounts, + D3D12_TILE_MAPPING_FLAGS Flags) = 0; + + virtual void __stdcall CopyTileMappings( + ID3D12Resource *pDstResource, + const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, + ID3D12Resource *pSrcResource, + const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, + const D3D12_TILE_REGION_SIZE *pRegionSize, + D3D12_TILE_MAPPING_FLAGS Flags) = 0; + + virtual void __stdcall ExecuteCommandLists( + UINT NumCommandLists, + ID3D12CommandList *const *ppCommandLists) = 0; + + virtual void __stdcall SetMarker( + UINT Metadata, + const void *pData, + UINT Size) = 0; + + virtual void __stdcall BeginEvent( + UINT Metadata, + const void *pData, + UINT Size) = 0; + + virtual void __stdcall EndEvent( void) = 0; + + virtual HRESULT __stdcall Signal( + ID3D12Fence *pFence, + UINT64 Value) = 0; + + virtual HRESULT __stdcall Wait( + ID3D12Fence *pFence, + UINT64 Value) = 0; + + virtual HRESULT __stdcall GetTimestampFrequency( + UINT64 *pFrequency) = 0; + + virtual HRESULT __stdcall GetClockCalibration( + UINT64 *pGpuTimestamp, + UINT64 *pCpuTimestamp) = 0; + + virtual D3D12_COMMAND_QUEUE_DESC __stdcall GetDesc( void) = 0; + + }; +# 5755 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12Device; + + + + struct __declspec(uuid("189819f1-1db6-4b57-be54-1821339b85f7")) __declspec(novtable) + ID3D12Device : public ID3D12Object + { + public: + virtual UINT __stdcall GetNodeCount( void) = 0; + + virtual HRESULT __stdcall CreateCommandQueue( + const D3D12_COMMAND_QUEUE_DESC *pDesc, + const IID & riid, + void **ppCommandQueue) = 0; + + virtual HRESULT __stdcall CreateCommandAllocator( + D3D12_COMMAND_LIST_TYPE type, + const IID & riid, + void **ppCommandAllocator) = 0; + + virtual HRESULT __stdcall CreateGraphicsPipelineState( + const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, + const IID & riid, + void **ppPipelineState) = 0; + + virtual HRESULT __stdcall CreateComputePipelineState( + const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, + const IID & riid, + void **ppPipelineState) = 0; + + virtual HRESULT __stdcall CreateCommandList( + UINT nodeMask, + D3D12_COMMAND_LIST_TYPE type, + ID3D12CommandAllocator *pCommandAllocator, + ID3D12PipelineState *pInitialState, + const IID & riid, + void **ppCommandList) = 0; + + virtual HRESULT __stdcall CheckFeatureSupport( + D3D12_FEATURE Feature, + void *pFeatureSupportData, + UINT FeatureSupportDataSize) = 0; + + virtual HRESULT __stdcall CreateDescriptorHeap( + const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, + const IID & riid, + void **ppvHeap) = 0; + + virtual UINT __stdcall GetDescriptorHandleIncrementSize( + D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) = 0; + + virtual HRESULT __stdcall CreateRootSignature( + UINT nodeMask, + const void *pBlobWithRootSignature, + SIZE_T blobLengthInBytes, + const IID & riid, + void **ppvRootSignature) = 0; + + virtual void __stdcall CreateConstantBufferView( + const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, + D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; + + virtual void __stdcall CreateShaderResourceView( + ID3D12Resource *pResource, + const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, + D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; + + virtual void __stdcall CreateUnorderedAccessView( + ID3D12Resource *pResource, + ID3D12Resource *pCounterResource, + const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, + D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; + + virtual void __stdcall CreateRenderTargetView( + ID3D12Resource *pResource, + const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, + D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; + + virtual void __stdcall CreateDepthStencilView( + ID3D12Resource *pResource, + const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, + D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; + + virtual void __stdcall CreateSampler( + const D3D12_SAMPLER_DESC *pDesc, + D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; + + virtual void __stdcall CopyDescriptors( + UINT NumDestDescriptorRanges, + const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, + const UINT *pDestDescriptorRangeSizes, + UINT NumSrcDescriptorRanges, + const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, + const UINT *pSrcDescriptorRangeSizes, + D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0; + + virtual void __stdcall CopyDescriptorsSimple( + UINT NumDescriptors, + D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, + D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, + D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0; + + virtual D3D12_RESOURCE_ALLOCATION_INFO __stdcall GetResourceAllocationInfo( + UINT visibleMask, + UINT numResourceDescs, + const D3D12_RESOURCE_DESC *pResourceDescs) = 0; + + virtual D3D12_HEAP_PROPERTIES __stdcall GetCustomHeapProperties( + UINT nodeMask, + D3D12_HEAP_TYPE heapType) = 0; + + virtual HRESULT __stdcall CreateCommittedResource( + const D3D12_HEAP_PROPERTIES *pHeapProperties, + D3D12_HEAP_FLAGS HeapFlags, + const D3D12_RESOURCE_DESC *pDesc, + D3D12_RESOURCE_STATES InitialResourceState, + const D3D12_CLEAR_VALUE *pOptimizedClearValue, + const IID & riidResource, + void **ppvResource) = 0; + + virtual HRESULT __stdcall CreateHeap( + const D3D12_HEAP_DESC *pDesc, + const IID & riid, + void **ppvHeap) = 0; + + virtual HRESULT __stdcall CreatePlacedResource( + ID3D12Heap *pHeap, + UINT64 HeapOffset, + const D3D12_RESOURCE_DESC *pDesc, + D3D12_RESOURCE_STATES InitialState, + const D3D12_CLEAR_VALUE *pOptimizedClearValue, + const IID & riid, + void **ppvResource) = 0; + + virtual HRESULT __stdcall CreateReservedResource( + const D3D12_RESOURCE_DESC *pDesc, + D3D12_RESOURCE_STATES InitialState, + const D3D12_CLEAR_VALUE *pOptimizedClearValue, + const IID & riid, + void **ppvResource) = 0; + + virtual HRESULT __stdcall CreateSharedHandle( + ID3D12DeviceChild *pObject, + const SECURITY_ATTRIBUTES *pAttributes, + DWORD Access, + LPCWSTR Name, + HANDLE *pHandle) = 0; + + virtual HRESULT __stdcall OpenSharedHandle( + HANDLE NTHandle, + const IID & riid, + void **ppvObj) = 0; + + virtual HRESULT __stdcall OpenSharedHandleByName( + LPCWSTR Name, + DWORD Access, + + HANDLE *pNTHandle) = 0; + + virtual HRESULT __stdcall MakeResident( + UINT NumObjects, + ID3D12Pageable *const *ppObjects) = 0; + + virtual HRESULT __stdcall Evict( + UINT NumObjects, + ID3D12Pageable *const *ppObjects) = 0; + + virtual HRESULT __stdcall CreateFence( + UINT64 InitialValue, + D3D12_FENCE_FLAGS Flags, + const IID & riid, + void **ppFence) = 0; + + virtual HRESULT __stdcall GetDeviceRemovedReason( void) = 0; + + virtual void __stdcall GetCopyableFootprints( + const D3D12_RESOURCE_DESC *pResourceDesc, + UINT FirstSubresource, + UINT NumSubresources, + UINT64 BaseOffset, + D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, + UINT *pNumRows, + UINT64 *pRowSizeInBytes, + UINT64 *pTotalBytes) = 0; + + virtual HRESULT __stdcall CreateQueryHeap( + const D3D12_QUERY_HEAP_DESC *pDesc, + const IID & riid, + void **ppvHeap) = 0; + + virtual HRESULT __stdcall SetStablePowerState( + BOOL Enable) = 0; + + virtual HRESULT __stdcall CreateCommandSignature( + const D3D12_COMMAND_SIGNATURE_DESC *pDesc, + ID3D12RootSignature *pRootSignature, + const IID & riid, + void **ppvCommandSignature) = 0; + + virtual void __stdcall GetResourceTiling( + ID3D12Resource *pTiledResource, + UINT *pNumTilesForEntireResource, + D3D12_PACKED_MIP_INFO *pPackedMipDesc, + D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, + UINT *pNumSubresourceTilings, + UINT FirstSubresourceTilingToGet, + D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips) = 0; + + virtual LUID __stdcall GetAdapterLuid( void) = 0; + + }; +# 6422 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12PipelineLibrary; + + + + struct __declspec(uuid("c64226a8-9201-46af-b4cc-53fb9ff7414f")) __declspec(novtable) + ID3D12PipelineLibrary : public ID3D12DeviceChild + { + public: + virtual HRESULT __stdcall StorePipeline( + LPCWSTR pName, + ID3D12PipelineState *pPipeline) = 0; + + virtual HRESULT __stdcall LoadGraphicsPipeline( + LPCWSTR pName, + const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, + const IID & riid, + void **ppPipelineState) = 0; + + virtual HRESULT __stdcall LoadComputePipeline( + LPCWSTR pName, + const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, + const IID & riid, + void **ppPipelineState) = 0; + + virtual SIZE_T __stdcall GetSerializedSize( void) = 0; + + virtual HRESULT __stdcall Serialize( + void *pData, + SIZE_T DataSizeInBytes) = 0; + + }; +# 6594 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +typedef +enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS + { + D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0, + D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1, + D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0 + } D3D12_MULTIPLE_FENCE_WAIT_FLAGS; + +extern "C++" { inline constexpr D3D12_MULTIPLE_FENCE_WAIT_FLAGS operator | (D3D12_MULTIPLE_FENCE_WAIT_FLAGS a, D3D12_MULTIPLE_FENCE_WAIT_FLAGS b) throw() { return D3D12_MULTIPLE_FENCE_WAIT_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_MULTIPLE_FENCE_WAIT_FLAGS &operator |= (D3D12_MULTIPLE_FENCE_WAIT_FLAGS &a, D3D12_MULTIPLE_FENCE_WAIT_FLAGS b) throw() { return (D3D12_MULTIPLE_FENCE_WAIT_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_MULTIPLE_FENCE_WAIT_FLAGS operator & (D3D12_MULTIPLE_FENCE_WAIT_FLAGS a, D3D12_MULTIPLE_FENCE_WAIT_FLAGS b) throw() { return D3D12_MULTIPLE_FENCE_WAIT_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_MULTIPLE_FENCE_WAIT_FLAGS &operator &= (D3D12_MULTIPLE_FENCE_WAIT_FLAGS &a, D3D12_MULTIPLE_FENCE_WAIT_FLAGS b) throw() { return (D3D12_MULTIPLE_FENCE_WAIT_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_MULTIPLE_FENCE_WAIT_FLAGS operator ~ (D3D12_MULTIPLE_FENCE_WAIT_FLAGS a) throw() { return D3D12_MULTIPLE_FENCE_WAIT_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_MULTIPLE_FENCE_WAIT_FLAGS operator ^ (D3D12_MULTIPLE_FENCE_WAIT_FLAGS a, D3D12_MULTIPLE_FENCE_WAIT_FLAGS b) throw() { return D3D12_MULTIPLE_FENCE_WAIT_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_MULTIPLE_FENCE_WAIT_FLAGS &operator ^= (D3D12_MULTIPLE_FENCE_WAIT_FLAGS &a, D3D12_MULTIPLE_FENCE_WAIT_FLAGS b) throw() { return (D3D12_MULTIPLE_FENCE_WAIT_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; +typedef +enum D3D12_RESIDENCY_PRIORITY + { + D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000, + D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000, + D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000, + D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0000000, + D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000 + } D3D12_RESIDENCY_PRIORITY; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0019_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0019_v0_0_s_ifspec; +# 6625 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +extern "C" const IID IID_ID3D12Device1; + + + + struct __declspec(uuid("77acce80-638e-4e65-8895-c1f23386863e")) __declspec(novtable) + ID3D12Device1 : public ID3D12Device + { + public: + virtual HRESULT __stdcall CreatePipelineLibrary( + const void *pLibraryBlob, + SIZE_T BlobLength, + const IID & riid, + void **ppPipelineLibrary) = 0; + + virtual HRESULT __stdcall SetEventOnMultipleFenceCompletion( + ID3D12Fence *const *ppFences, + const UINT64 *pFenceValues, + UINT NumFences, + D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, + HANDLE hEvent) = 0; + + virtual HRESULT __stdcall SetResidencyPriority( + UINT NumObjects, + ID3D12Pageable *const *ppObjects, + const D3D12_RESIDENCY_PRIORITY *pPriorities) = 0; + + }; +# 7123 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d12.h" +typedef struct D3D12_SUBRESOURCE_DATA + { + const void *pData; + LONG_PTR RowPitch; + LONG_PTR SlicePitch; + } D3D12_SUBRESOURCE_DATA; + +typedef struct D3D12_MEMCPY_DEST + { + void *pData; + SIZE_T RowPitch; + SIZE_T SlicePitch; + } D3D12_MEMCPY_DEST; + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" 1 +# 48 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" +typedef struct ID3D12Debug ID3D12Debug; + + + + + + +typedef struct ID3D12Debug1 ID3D12Debug1; + + + + + + +typedef struct ID3D12DebugDevice1 ID3D12DebugDevice1; + + + + + + +typedef struct ID3D12DebugDevice ID3D12DebugDevice; + + + + + + +typedef struct ID3D12DebugCommandQueue ID3D12DebugCommandQueue; + + + + + + +typedef struct ID3D12DebugCommandList1 ID3D12DebugCommandList1; + + + + + + +typedef struct ID3D12DebugCommandList ID3D12DebugCommandList; + + + + + + +typedef struct ID3D12InfoQueue ID3D12InfoQueue; +# 108 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" +extern "C"{ +# 120 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0000_v0_0_s_ifspec; +# 130 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" +extern "C" const IID IID_ID3D12Debug; + + + + struct __declspec(uuid("344488b7-6846-474b-b989-f027448245e0")) __declspec(novtable) + ID3D12Debug : public IUnknown + { + public: + virtual void __stdcall EnableDebugLayer( void) = 0; + + }; +# 207 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" +extern "C" const IID IID_ID3D12Debug1; + + + + struct __declspec(uuid("affaa4ca-63fe-4d8e-b8ad-159000af4304")) __declspec(novtable) + ID3D12Debug1 : public IUnknown + { + public: + virtual void __stdcall EnableDebugLayer( void) = 0; + + virtual void __stdcall SetEnableGPUBasedValidation( + BOOL Enable) = 0; + + virtual void __stdcall SetEnableSynchronizedCommandQueueValidation( + BOOL Enable) = 0; + + }; +# 300 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" +typedef +enum D3D12_RLDO_FLAGS + { + D3D12_RLDO_NONE = 0, + D3D12_RLDO_SUMMARY = 0x1, + D3D12_RLDO_DETAIL = 0x2, + D3D12_RLDO_IGNORE_INTERNAL = 0x4 + } D3D12_RLDO_FLAGS; + +extern "C++" { inline constexpr D3D12_RLDO_FLAGS operator | (D3D12_RLDO_FLAGS a, D3D12_RLDO_FLAGS b) throw() { return D3D12_RLDO_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_RLDO_FLAGS &operator |= (D3D12_RLDO_FLAGS &a, D3D12_RLDO_FLAGS b) throw() { return (D3D12_RLDO_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_RLDO_FLAGS operator & (D3D12_RLDO_FLAGS a, D3D12_RLDO_FLAGS b) throw() { return D3D12_RLDO_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_RLDO_FLAGS &operator &= (D3D12_RLDO_FLAGS &a, D3D12_RLDO_FLAGS b) throw() { return (D3D12_RLDO_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_RLDO_FLAGS operator ~ (D3D12_RLDO_FLAGS a) throw() { return D3D12_RLDO_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_RLDO_FLAGS operator ^ (D3D12_RLDO_FLAGS a, D3D12_RLDO_FLAGS b) throw() { return D3D12_RLDO_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_RLDO_FLAGS &operator ^= (D3D12_RLDO_FLAGS &a, D3D12_RLDO_FLAGS b) throw() { return (D3D12_RLDO_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } } +typedef +enum D3D12_DEBUG_DEVICE_PARAMETER_TYPE + { + D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS = 0, + D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS = ( D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS + 1 ) + } D3D12_DEBUG_DEVICE_PARAMETER_TYPE; + +typedef +enum D3D12_DEBUG_FEATURE + { + D3D12_DEBUG_FEATURE_NONE = 0, + D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS = 0x1, + D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING = 0x2, + D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION = 0x4, + D3D12_DEBUG_FEATURE_VALID_MASK = ( ( D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS | D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING ) | D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION ) + } D3D12_DEBUG_FEATURE; + +extern "C++" { inline constexpr D3D12_DEBUG_FEATURE operator | (D3D12_DEBUG_FEATURE a, D3D12_DEBUG_FEATURE b) throw() { return D3D12_DEBUG_FEATURE(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_DEBUG_FEATURE &operator |= (D3D12_DEBUG_FEATURE &a, D3D12_DEBUG_FEATURE b) throw() { return (D3D12_DEBUG_FEATURE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_DEBUG_FEATURE operator & (D3D12_DEBUG_FEATURE a, D3D12_DEBUG_FEATURE b) throw() { return D3D12_DEBUG_FEATURE(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_DEBUG_FEATURE &operator &= (D3D12_DEBUG_FEATURE &a, D3D12_DEBUG_FEATURE b) throw() { return (D3D12_DEBUG_FEATURE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_DEBUG_FEATURE operator ~ (D3D12_DEBUG_FEATURE a) throw() { return D3D12_DEBUG_FEATURE(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_DEBUG_FEATURE operator ^ (D3D12_DEBUG_FEATURE a, D3D12_DEBUG_FEATURE b) throw() { return D3D12_DEBUG_FEATURE(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_DEBUG_FEATURE &operator ^= (D3D12_DEBUG_FEATURE &a, D3D12_DEBUG_FEATURE b) throw() { return (D3D12_DEBUG_FEATURE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } } +typedef +enum D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE + { + D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE = 0, + D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY = ( D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE + 1 ) , + D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION = ( D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY + 1 ) , + D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION = ( D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION + 1 ) , + NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES = ( D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION + 1 ) + } D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE; + +typedef +enum D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS + { + D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE = 0, + D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS = 0x1, + D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS = 0x2, + D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS = 0x4, + D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_VALID_MASK = 0x7 + } D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS; + +extern "C++" { inline constexpr D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS operator | (D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS a, D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS b) throw() { return D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS &operator |= (D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS &a, D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS b) throw() { return (D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS operator & (D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS a, D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS b) throw() { return D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS &operator &= (D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS &a, D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS b) throw() { return (D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS operator ~ (D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS a) throw() { return D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS operator ^ (D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS a, D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS b) throw() { return D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS &operator ^= (D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS &a, D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS b) throw() { return (D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } } +typedef struct D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS + { + UINT MaxMessagesPerCommandList; + D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE DefaultShaderPatchMode; + D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS PipelineStateCreateFlags; + } D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0002_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0002_v0_0_s_ifspec; +# 368 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" +extern "C" const IID IID_ID3D12DebugDevice1; + + + + struct __declspec(uuid("a9b71770-d099-4a65-a698-3dee10020f88")) __declspec(novtable) + ID3D12DebugDevice1 : public IUnknown + { + public: + virtual HRESULT __stdcall SetDebugParameter( + D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, + const void *pData, + UINT DataSize) = 0; + + virtual HRESULT __stdcall GetDebugParameter( + D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, + void *pData, + UINT DataSize) = 0; + + virtual HRESULT __stdcall ReportLiveDeviceObjects( + D3D12_RLDO_FLAGS Flags) = 0; + + }; +# 475 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" +extern "C" const IID IID_ID3D12DebugDevice; + + + + struct __declspec(uuid("3febd6dd-4973-4787-8194-e45f9e28923e")) __declspec(novtable) + ID3D12DebugDevice : public IUnknown + { + public: + virtual HRESULT __stdcall SetFeatureMask( + D3D12_DEBUG_FEATURE Mask) = 0; + + virtual D3D12_DEBUG_FEATURE __stdcall GetFeatureMask( void) = 0; + + virtual HRESULT __stdcall ReportLiveDeviceObjects( + D3D12_RLDO_FLAGS Flags) = 0; + + }; +# 568 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" +extern "C" const GUID DXGI_DEBUG_D3D12; + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0004_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0004_v0_0_s_ifspec; +# 581 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" +extern "C" const IID IID_ID3D12DebugCommandQueue; + + + + struct __declspec(uuid("09e0bf36-54ac-484f-8847-4baeeab6053a")) __declspec(novtable) + ID3D12DebugCommandQueue : public IUnknown + { + public: + virtual BOOL __stdcall AssertResourceState( + ID3D12Resource *pResource, + UINT Subresource, + UINT State) = 0; + + }; +# 660 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" +typedef +enum D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE + { + D3D12_DEBUG_COMMAND_LIST_PARAMETER_GPU_BASED_VALIDATION_SETTINGS = 0 + } D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE; + +typedef struct D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS + { + D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE ShaderPatchMode; + } D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0005_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0005_v0_0_s_ifspec; +# 683 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" +extern "C" const IID IID_ID3D12DebugCommandList1; + + + + struct __declspec(uuid("102ca951-311b-4b01-b11f-ecb83e061b37")) __declspec(novtable) + ID3D12DebugCommandList1 : public IUnknown + { + public: + virtual BOOL __stdcall AssertResourceState( + ID3D12Resource *pResource, + UINT Subresource, + UINT State) = 0; + + virtual HRESULT __stdcall SetDebugParameter( + D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, + const void *pData, + UINT DataSize) = 0; + + virtual HRESULT __stdcall GetDebugParameter( + D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, + void *pData, + UINT DataSize) = 0; + + }; +# 794 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" +extern "C" const IID IID_ID3D12DebugCommandList; + + + + struct __declspec(uuid("09e0bf36-54ac-484f-8847-4baeeab6053f")) __declspec(novtable) + ID3D12DebugCommandList : public IUnknown + { + public: + virtual BOOL __stdcall AssertResourceState( + ID3D12Resource *pResource, + UINT Subresource, + UINT State) = 0; + + virtual HRESULT __stdcall SetFeatureMask( + D3D12_DEBUG_FEATURE Mask) = 0; + + virtual D3D12_DEBUG_FEATURE __stdcall GetFeatureMask( void) = 0; + + }; +# 891 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" +typedef +enum D3D12_MESSAGE_CATEGORY + { + D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED = 0, + D3D12_MESSAGE_CATEGORY_MISCELLANEOUS = ( D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED + 1 ) , + D3D12_MESSAGE_CATEGORY_INITIALIZATION = ( D3D12_MESSAGE_CATEGORY_MISCELLANEOUS + 1 ) , + D3D12_MESSAGE_CATEGORY_CLEANUP = ( D3D12_MESSAGE_CATEGORY_INITIALIZATION + 1 ) , + D3D12_MESSAGE_CATEGORY_COMPILATION = ( D3D12_MESSAGE_CATEGORY_CLEANUP + 1 ) , + D3D12_MESSAGE_CATEGORY_STATE_CREATION = ( D3D12_MESSAGE_CATEGORY_COMPILATION + 1 ) , + D3D12_MESSAGE_CATEGORY_STATE_SETTING = ( D3D12_MESSAGE_CATEGORY_STATE_CREATION + 1 ) , + D3D12_MESSAGE_CATEGORY_STATE_GETTING = ( D3D12_MESSAGE_CATEGORY_STATE_SETTING + 1 ) , + D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION = ( D3D12_MESSAGE_CATEGORY_STATE_GETTING + 1 ) , + D3D12_MESSAGE_CATEGORY_EXECUTION = ( D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION + 1 ) , + D3D12_MESSAGE_CATEGORY_SHADER = ( D3D12_MESSAGE_CATEGORY_EXECUTION + 1 ) + } D3D12_MESSAGE_CATEGORY; + +typedef +enum D3D12_MESSAGE_SEVERITY + { + D3D12_MESSAGE_SEVERITY_CORRUPTION = 0, + D3D12_MESSAGE_SEVERITY_ERROR = ( D3D12_MESSAGE_SEVERITY_CORRUPTION + 1 ) , + D3D12_MESSAGE_SEVERITY_WARNING = ( D3D12_MESSAGE_SEVERITY_ERROR + 1 ) , + D3D12_MESSAGE_SEVERITY_INFO = ( D3D12_MESSAGE_SEVERITY_WARNING + 1 ) , + D3D12_MESSAGE_SEVERITY_MESSAGE = ( D3D12_MESSAGE_SEVERITY_INFO + 1 ) + } D3D12_MESSAGE_SEVERITY; + +typedef +enum D3D12_MESSAGE_ID + { + D3D12_MESSAGE_ID_UNKNOWN = 0, + D3D12_MESSAGE_ID_STRING_FROM_APPLICATION = ( D3D12_MESSAGE_ID_UNKNOWN + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_THIS = ( D3D12_MESSAGE_ID_STRING_FROM_APPLICATION + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1 = ( D3D12_MESSAGE_ID_CORRUPTED_THIS + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1 + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2 + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3 + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4 + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5 + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6 + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7 + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8 + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9 + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10 + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11 + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12 + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13 + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14 + 1 ) , + D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15 + 1 ) , + D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING + 1 ) , + D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA = ( D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY + 1 ) , + D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA = ( D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA + 1 ) , + D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN = ( D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA + 1 ) , + D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS = ( D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN + 1 ) , + D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS = ( D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS + 1 ) , + D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY = ( D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS + 1 ) , + D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT = ( D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY + 1 ) , + D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT + 1 ) , + D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC + 1 ) , + D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT + 1 ) , + D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE + 1 ) , + D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE + 1 ) , + D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS + 1 ) , + D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE + 1 ) , + D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN + 1 ) , + D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN + 1 ) , + D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT + 1 ) , + D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT + 1 ) , + D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC + 1 ) , + D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT + 1 ) , + D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE + 1 ) , + D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE + 1 ) , + D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS + 1 ) , + D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE + 1 ) , + D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC + 1 ) , + D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT + 1 ) , + D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE = ( D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY + 1 ) , + D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE = ( D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX + 1 ) , + D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE + 1 ) , + D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE = ( D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY + 1 ) , + D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE = ( D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE + 1 ) , + D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE = ( D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE + 1 ) , + D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE = ( D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE + 1 ) , + D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP = ( D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE + 1 ) , + D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS = ( D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP + 1 ) , + D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC = ( D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK = ( D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC + 1 ) , + D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC + 1 ) , + D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND + 1 ) , + D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND + 1 ) , + D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP + 1 ) , + D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA + 1 ) , + D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA + 1 ) , + D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA + 1 ) , + D3D12_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK + 1 ) , + D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC + 1 ) , + D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER + 1 ) , + D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU + 1 ) , + D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV + 1 ) , + D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW + 1 ) , + D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS + 1 ) , + D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY + 1 ) , + D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC + 1 ) , + D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD + 1 ) , + D3D12_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD + 1 ) , + D3D12_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC + 1 ) , + D3D12_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED = ( D3D12_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT = ( D3D12_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR = ( D3D12_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT + 1 ) , + D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH = ( D3D12_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR + 1 ) , + D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH = ( D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH + 1 ) , + D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID = ( D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH + 1 ) , + D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE = ( D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID + 1 ) , + D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE = ( D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE + 1 ) , + D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE = ( D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE + 1 ) , + D3D12_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE = ( D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE + 1 ) , + D3D12_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX = ( D3D12_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE = ( D3D12_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX + 1 ) , + D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID = ( D3D12_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE + 1 ) , + D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID = ( D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID + 1 ) , + D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID = ( D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID + 1 ) , + D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID = ( D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID + 1 ) , + D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID = ( D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID + 1 ) , + D3D12_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE = ( D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID + 1 ) , + D3D12_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS = ( D3D12_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE + 1 ) , + D3D12_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED = ( D3D12_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS + 1 ) , + D3D12_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN = ( D3D12_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED + 1 ) , + D3D12_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED = ( D3D12_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN + 1 ) , + D3D12_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE = ( D3D12_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED + 1 ) , + D3D12_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE + 1 ) , + D3D12_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS = ( D3D12_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED = ( D3D12_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS + 1 ) , + D3D12_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN = ( D3D12_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED + 1 ) , + D3D12_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN + 1 ) , + D3D12_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED = ( D3D12_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE = ( D3D12_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED + 1 ) , + D3D12_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE + 1 ) , + D3D12_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS = ( D3D12_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED = ( D3D12_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS + 1 ) , + D3D12_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN = ( D3D12_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED + 1 ) , + D3D12_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN + 1 ) , + D3D12_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED = ( D3D12_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE = ( D3D12_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED + 1 ) , + D3D12_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE + 1 ) , + D3D12_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS = ( D3D12_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED = ( D3D12_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS + 1 ) , + D3D12_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN = ( D3D12_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED + 1 ) , + D3D12_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN + 1 ) , + D3D12_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED = ( D3D12_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED = ( D3D12_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED + 1 ) , + D3D12_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED = ( D3D12_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED + 1 ) , + D3D12_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS = ( D3D12_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED + 1 ) , + D3D12_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS + 1 ) , + D3D12_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN = ( D3D12_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN + 1 ) , + D3D12_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE = ( D3D12_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN + 1 ) , + D3D12_MESSAGE_ID_REF_THREADING_MODE = ( D3D12_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE + 1 ) , + D3D12_MESSAGE_ID_REF_UMDRIVER_EXCEPTION = ( D3D12_MESSAGE_ID_REF_THREADING_MODE + 1 ) , + D3D12_MESSAGE_ID_REF_KMDRIVER_EXCEPTION = ( D3D12_MESSAGE_ID_REF_UMDRIVER_EXCEPTION + 1 ) , + D3D12_MESSAGE_ID_REF_HARDWARE_EXCEPTION = ( D3D12_MESSAGE_ID_REF_KMDRIVER_EXCEPTION + 1 ) , + D3D12_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE = ( D3D12_MESSAGE_ID_REF_HARDWARE_EXCEPTION + 1 ) , + D3D12_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER = ( D3D12_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE + 1 ) , + D3D12_MESSAGE_ID_REF_OUT_OF_MEMORY = ( D3D12_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER + 1 ) , + D3D12_MESSAGE_ID_REF_INFO = ( D3D12_MESSAGE_ID_REF_OUT_OF_MEMORY + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW = ( D3D12_MESSAGE_ID_REF_INFO + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW = ( D3D12_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW = ( D3D12_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW = ( D3D12_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW = ( D3D12_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW = ( D3D12_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET = ( D3D12_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW + 1 ) , + D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = ( D3D12_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX = ( D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND + 1 ) , + D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE = ( D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX + 1 ) , + D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK = ( D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE + 1 ) , + D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE = ( D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK + 1 ) , + D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = ( D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET = ( D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INPUTLAYOUT_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_CONSTANT_BUFFER_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INPUTLAYOUT_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_CONSTANT_BUFFER_TOO_SMALL = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_CONSTANT_BUFFER_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SAMPLER_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_CONSTANT_BUFFER_TOO_SMALL + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SHADERRESOURCEVIEW_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SAMPLER_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VIEW_DIMENSION_MISMATCH = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SHADERRESOURCEVIEW_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VIEW_DIMENSION_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_GS_INPUT_PRIMITIVE_MISMATCH = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_RETURN_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_GS_INPUT_PRIMITIVE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_POSITION_NOT_PRESENT = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_RETURN_TYPE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OUTPUT_STREAM_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_POSITION_NOT_PRESENT + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_BOUND_RESOURCE_MAPPED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OUTPUT_STREAM_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_BOUND_RESOURCE_MAPPED + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_OFFSET_UNALIGNED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_OFFSET_UNALIGNED + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SO_STRIDE_LARGER_THAN_BUFFER = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SO_STRIDE_LARGER_THAN_BUFFER + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING + 1 ) , + D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 + 1 ) , + D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT = ( D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT + 1 ) , + D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT = ( D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT + 1 ) , + D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT + 1 ) , + D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN + 1 ) , + D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN = ( D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET = ( D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC = ( D3D12_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC + 1 ) , + D3D12_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC + 1 ) , + D3D12_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW = ( D3D12_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH + 1 ) , + D3D12_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS = ( D3D12_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY = ( D3D12_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = ( D3D12_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE = ( D3D12_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN + 1 ) , + D3D12_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE = ( D3D12_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT = ( D3D12_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT + 1 ) , + D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY = ( D3D12_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_LIVE_BUFFER = ( D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY + 1 ) , + D3D12_MESSAGE_ID_LIVE_TEXTURE1D = ( D3D12_MESSAGE_ID_LIVE_BUFFER + 1 ) , + D3D12_MESSAGE_ID_LIVE_TEXTURE2D = ( D3D12_MESSAGE_ID_LIVE_TEXTURE1D + 1 ) , + D3D12_MESSAGE_ID_LIVE_TEXTURE3D = ( D3D12_MESSAGE_ID_LIVE_TEXTURE2D + 1 ) , + D3D12_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW = ( D3D12_MESSAGE_ID_LIVE_TEXTURE3D + 1 ) , + D3D12_MESSAGE_ID_LIVE_RENDERTARGETVIEW = ( D3D12_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW + 1 ) , + D3D12_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW = ( D3D12_MESSAGE_ID_LIVE_RENDERTARGETVIEW + 1 ) , + D3D12_MESSAGE_ID_LIVE_VERTEXSHADER = ( D3D12_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW + 1 ) , + D3D12_MESSAGE_ID_LIVE_GEOMETRYSHADER = ( D3D12_MESSAGE_ID_LIVE_VERTEXSHADER + 1 ) , + D3D12_MESSAGE_ID_LIVE_PIXELSHADER = ( D3D12_MESSAGE_ID_LIVE_GEOMETRYSHADER + 1 ) , + D3D12_MESSAGE_ID_LIVE_INPUTLAYOUT = ( D3D12_MESSAGE_ID_LIVE_PIXELSHADER + 1 ) , + D3D12_MESSAGE_ID_LIVE_SAMPLER = ( D3D12_MESSAGE_ID_LIVE_INPUTLAYOUT + 1 ) , + D3D12_MESSAGE_ID_LIVE_BLENDSTATE = ( D3D12_MESSAGE_ID_LIVE_SAMPLER + 1 ) , + D3D12_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE = ( D3D12_MESSAGE_ID_LIVE_BLENDSTATE + 1 ) , + D3D12_MESSAGE_ID_LIVE_RASTERIZERSTATE = ( D3D12_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE + 1 ) , + D3D12_MESSAGE_ID_LIVE_QUERY = ( D3D12_MESSAGE_ID_LIVE_RASTERIZERSTATE + 1 ) , + D3D12_MESSAGE_ID_LIVE_PREDICATE = ( D3D12_MESSAGE_ID_LIVE_QUERY + 1 ) , + D3D12_MESSAGE_ID_LIVE_COUNTER = ( D3D12_MESSAGE_ID_LIVE_PREDICATE + 1 ) , + D3D12_MESSAGE_ID_LIVE_DEVICE = ( D3D12_MESSAGE_ID_LIVE_COUNTER + 1 ) , + D3D12_MESSAGE_ID_LIVE_SWAPCHAIN = ( D3D12_MESSAGE_ID_LIVE_DEVICE + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS = ( D3D12_MESSAGE_ID_LIVE_SWAPCHAIN + 1 ) , + D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE = ( D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTREAMS = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTREAMS + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTREAMS = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCLASSLINKAGE = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTREAMS + 1 ) , + D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCLASSLINKAGE + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM = ( D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES + 1 ) , + D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES + 1 ) , + D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCALL = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES + 1 ) , + D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCALL + 1 ) , + D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE = ( D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY + 1 ) , + D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE = ( D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE + 1 ) , + D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE = ( D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE + 1 ) , + D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCALL = ( D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE + 1 ) , + D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCALL + 1 ) , + D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE = ( D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY + 1 ) , + D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE = ( D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE + 1 ) , + D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE = ( D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_HS_XOR_DS_MISMATCH = ( D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAWINDIRECT_INVALID_ARG_BUFFER = ( D3D12_MESSAGE_ID_DEVICE_DRAW_HS_XOR_DS_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_UNALIGNED = ( D3D12_MESSAGE_ID_DEVICE_DRAWINDIRECT_INVALID_ARG_BUFFER + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_OVERFLOW = ( D3D12_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_UNALIGNED + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_MAP_INVALIDMAPTYPE = ( D3D12_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_OVERFLOW + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_MAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_RESOURCE_MAP_INVALIDMAPTYPE + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_MAP_INVALIDFLAGS = ( D3D12_MESSAGE_ID_RESOURCE_MAP_INVALIDSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_MAP_ALREADYMAPPED = ( D3D12_MESSAGE_ID_RESOURCE_MAP_INVALIDFLAGS + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_MAP_DEVICEREMOVED_RETURN = ( D3D12_MESSAGE_ID_RESOURCE_MAP_ALREADYMAPPED + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_MAP_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_RESOURCE_MAP_DEVICEREMOVED_RETURN + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_MAP_WITHOUT_INITIAL_DISCARD = ( D3D12_MESSAGE_ID_RESOURCE_MAP_OUTOFMEMORY_RETURN + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_UNMAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_RESOURCE_MAP_WITHOUT_INITIAL_DISCARD + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED = ( D3D12_MESSAGE_ID_RESOURCE_UNMAP_INVALIDSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_RASTERIZING_CONTROL_POINTS = ( D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_DRAW_RASTERIZING_CONTROL_POINTS + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_HS_DS_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_DRAW_HS_DS_SIGNATURE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_HS_DS_CONTROL_POINT_COUNT_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_DRAW_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_HS_DS_TESSELLATOR_DOMAIN_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_DRAW_HS_DS_CONTROL_POINT_COUNT_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_UNRECOGNIZED_FEATURE = ( D3D12_MESSAGE_ID_DEVICE_DRAW_HS_DS_TESSELLATOR_DOMAIN_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE = ( D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_UNRECOGNIZED_FEATURE + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE + 1 ) , + D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCALL = ( D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_INVALIDARG_RETURN + 1 ) , + D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCALL + 1 ) , + D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE = ( D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY + 1 ) , + D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE = ( D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_VIEWS_EMPTY = ( D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE + 1 ) , + D3D12_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFER = ( D3D12_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D12_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CSSETSAMPLERS_SAMPLERS_EMPTY = ( D3D12_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CSGETSHADERRESOURCES_VIEWS_EMPTY = ( D3D12_MESSAGE_ID_DEVICE_CSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CSGETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D12_MESSAGE_ID_DEVICE_CSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CSGETSAMPLERS_SAMPLERS_EMPTY = ( D3D12_MESSAGE_ID_DEVICE_CSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_CREATEBUFFER_INVALIDSTRUCTURESTRIDE = ( D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFLAGS = ( D3D12_MESSAGE_ID_CREATEBUFFER_INVALIDSTRUCTURESTRIDE + 1 ) , + D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFLAGS + 1 ) , + D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE + 1 ) , + D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC + 1 ) , + D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT + 1 ) , + D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE + 1 ) , + D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE + 1 ) , + D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS + 1 ) , + D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_OVERLAPPING_OLD_SLOTS = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT + 1 ) , + D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NO_OP = ( D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_OVERLAPPING_OLD_SLOTS + 1 ) , + D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NO_OP + 1 ) , + D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARG_RETURN + 1 ) , + D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_DENORMFLUSH = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_OUTOFMEMORY_RETURN + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSS_VIEWS_EMPTY = ( D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_DENORMFLUSH + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CSGETUNORDEREDACCESSS_VIEWS_EMPTY = ( D3D12_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSS_VIEWS_EMPTY + 1 ) , + D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS = ( D3D12_MESSAGE_ID_DEVICE_CSGETUNORDEREDACCESSS_VIEWS_EMPTY + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_INVALID_ARG_BUFFER = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_UNALIGNED = ( D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_INVALID_ARG_BUFFER + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_OVERFLOW = ( D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_UNALIGNED + 1 ) , + D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DEPTH_READONLY = ( D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_OVERFLOW + 1 ) , + D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_STENCIL_READONLY = ( D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DEPTH_READONLY + 1 ) , + D3D12_MESSAGE_ID_CHECKFEATURESUPPORT_FORMAT_DEPRECATED = ( D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_STENCIL_READONLY + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RETURN_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_CHECKFEATURESUPPORT_FORMAT_DEPRECATED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RETURN_TYPE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_UNORDEREDACCESSVIEW_RENDERTARGETVIEW_OVERLAP = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_DIMENSION_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_DRAW_UNORDEREDACCESSVIEW_RENDERTARGETVIEW_OVERLAP + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_APPEND_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_DIMENSION_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMICS_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_APPEND_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_STRUCTURE_STRIDE_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMICS_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_BUFFER_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_STRUCTURE_STRIDE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RAW_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_BUFFER_TYPE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_LD_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RAW_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_STORE_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_LD_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_ADD_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_STORE_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_BITWISE_OPS_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_ADD_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_CMPSTORE_CMPEXCHANGE_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_BITWISE_OPS_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_EXCHANGE_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_CMPSTORE_CMPEXCHANGE_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_SIGNED_MINMAX_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_EXCHANGE_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_UNSIGNED_MINMAX_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_SIGNED_MINMAX_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DISPATCH_BOUND_RESOURCE_MAPPED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_UNSIGNED_MINMAX_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_OVERFLOW = ( D3D12_MESSAGE_ID_DEVICE_DISPATCH_BOUND_RESOURCE_MAPPED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_ZERO = ( D3D12_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_OVERFLOW + 1 ) , + D3D12_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_STRUCTURE_STRIDE_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_ZERO + 1 ) , + D3D12_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_BUFFER_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_STRUCTURE_STRIDE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_RAW_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_BUFFER_TYPE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DISPATCH_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_RAW_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_DISPATCH_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDOFFSET = ( D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_LARGEOFFSET = ( D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDOFFSET + 1 ) , + D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDDESTINATIONSTATE = ( D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_LARGEOFFSET + 1 ) , + D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDSOURCESTATE = ( D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDDESTINATIONSTATE + 1 ) , + D3D12_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDSOURCESTATE + 1 ) , + D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_INVALIDFORMAT = ( D3D12_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_NOT_SUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_COUNTER_UNSUPPORTED = ( D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_INVALIDFORMAT + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_PIXEL_SHADER_WITHOUT_RTV_OR_DSV = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_COUNTER_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_SHADER_ABORT = ( D3D12_MESSAGE_ID_DEVICE_DRAW_PIXEL_SHADER_WITHOUT_RTV_OR_DSV + 1 ) , + D3D12_MESSAGE_ID_SHADER_MESSAGE = ( D3D12_MESSAGE_ID_SHADER_ABORT + 1 ) , + D3D12_MESSAGE_ID_SHADER_ERROR = ( D3D12_MESSAGE_ID_SHADER_MESSAGE + 1 ) , + D3D12_MESSAGE_ID_OFFERRESOURCES_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_SHADER_ERROR + 1 ) , + D3D12_MESSAGE_ID_ENQUEUESETEVENT_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_OFFERRESOURCES_INVALIDRESOURCE + 1 ) , + D3D12_MESSAGE_ID_ENQUEUESETEVENT_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_ENQUEUESETEVENT_INVALIDARG_RETURN + 1 ) , + D3D12_MESSAGE_ID_ENQUEUESETEVENT_ACCESSDENIED_RETURN = ( D3D12_MESSAGE_ID_ENQUEUESETEVENT_OUTOFMEMORY_RETURN + 1 ) , + D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT = ( D3D12_MESSAGE_ID_ENQUEUESETEVENT_ACCESSDENIED_RETURN + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_FORCED_SAMPLE_COUNT = ( D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT + 1 ) , + D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS = ( D3D12_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_FORCED_SAMPLE_COUNT + 1 ) , + D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDARRAYWITHDECODER = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS + 1 ) , + D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDARRAYWITHDECODER = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDARRAYWITHDECODER + 1 ) , + D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDARRAYWITHDECODER = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDARRAYWITHDECODER + 1 ) , + D3D12_MESSAGE_ID_DEVICE_LOCKEDOUT_INTERFACE = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDARRAYWITHDECODER + 1 ) , + D3D12_MESSAGE_ID_OFFERRESOURCES_INVALIDPRIORITY = ( D3D12_MESSAGE_ID_DEVICE_LOCKEDOUT_INTERFACE + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDVIEW = ( D3D12_MESSAGE_ID_OFFERRESOURCES_INVALIDPRIORITY + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDVIEW + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_SHADEREXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_MINPRECISION = ( D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_MINPRECISION + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_INVALIDOFFSET = ( D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_TOOMANYVIEWS = ( D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_INVALIDOFFSET + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_NOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_TOOMANYVIEWS + 1 ) , + D3D12_MESSAGE_ID_SWAPDEVICECONTEXTSTATE_NOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_NOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_UPDATESUBRESOURCE_PREFERUPDATESUBRESOURCE1 = ( D3D12_MESSAGE_ID_SWAPDEVICECONTEXTSTATE_NOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_GETDC_INACCESSIBLE = ( D3D12_MESSAGE_ID_UPDATESUBRESOURCE_PREFERUPDATESUBRESOURCE1 + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDRECT = ( D3D12_MESSAGE_ID_GETDC_INACCESSIBLE + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_SAMPLE_MASK_IGNORED_ON_FL9 = ( D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDRECT + 1 ) , + D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE1_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_DRAW_SAMPLE_MASK_IGNORED_ON_FL9 + 1 ) , + D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BY_NAME_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE1_NOT_SUPPORTED + 1 ) , + D3D12_MESSAGE_ID_ENQUEUESETEVENT_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BY_NAME_NOT_SUPPORTED + 1 ) , + D3D12_MESSAGE_ID_OFFERRELEASE_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_ENQUEUESETEVENT_NOT_SUPPORTED + 1 ) , + D3D12_MESSAGE_ID_OFFERRESOURCES_INACCESSIBLE = ( D3D12_MESSAGE_ID_OFFERRELEASE_NOT_SUPPORTED + 1 ) , + D3D12_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMSAA = ( D3D12_MESSAGE_ID_OFFERRESOURCES_INACCESSIBLE + 1 ) , + D3D12_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDMSAA = ( D3D12_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMSAA + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT = ( D3D12_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDMSAA + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT = ( D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT + 1 ) , + D3D12_MESSAGE_ID_UPDATESUBRESOURCE_EMPTYDESTBOX = ( D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT + 1 ) , + D3D12_MESSAGE_ID_COPYSUBRESOURCEREGION_EMPTYSOURCEBOX = ( D3D12_MESSAGE_ID_UPDATESUBRESOURCE_EMPTYDESTBOX + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS = ( D3D12_MESSAGE_ID_COPYSUBRESOURCEREGION_EMPTYSOURCEBOX + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_DEPTHSTENCILVIEW_NOT_SET = ( D3D12_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET = ( D3D12_MESSAGE_ID_DEVICE_DRAW_DEPTHSTENCILVIEW_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET_DUE_TO_FLIP_PRESENT = ( D3D12_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET_DUE_TO_FLIP_PRESENT = ( D3D12_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET_DUE_TO_FLIP_PRESENT + 1 ) , + D3D12_MESSAGE_ID_GETDATAFORNEWHARDWAREKEY_NULLPARAM = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET_DUE_TO_FLIP_PRESENT + 1 ) , + D3D12_MESSAGE_ID_CHECKCRYPTOSESSIONSTATUS_NULLPARAM = ( D3D12_MESSAGE_ID_GETDATAFORNEWHARDWAREKEY_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_SETEVENTONHARDWARECONTENTPROTECTIONTILT_NULLPARAM = ( D3D12_MESSAGE_ID_CHECKCRYPTOSESSIONSTATUS_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_GETVIDEODECODERCAPS_NULLPARAM = ( D3D12_MESSAGE_ID_SETEVENTONHARDWARECONTENTPROTECTIONTILT_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_GETVIDEODECODERCAPS_ZEROWIDTHHEIGHT = ( D3D12_MESSAGE_ID_GETVIDEODECODERCAPS_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_NULLPARAM = ( D3D12_MESSAGE_ID_GETVIDEODECODERCAPS_ZEROWIDTHHEIGHT + 1 ) , + D3D12_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_INVALIDCOLORSPACE = ( D3D12_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_ZEROWIDTHHEIGHT = ( D3D12_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_INVALIDCOLORSPACE + 1 ) , + D3D12_MESSAGE_ID_VIDEODECODERENABLEDOWNSAMPLING_NULLPARAM = ( D3D12_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_ZEROWIDTHHEIGHT + 1 ) , + D3D12_MESSAGE_ID_VIDEODECODERENABLEDOWNSAMPLING_UNSUPPORTED = ( D3D12_MESSAGE_ID_VIDEODECODERENABLEDOWNSAMPLING_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_VIDEODECODERUPDATEDOWNSAMPLING_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEODECODERENABLEDOWNSAMPLING_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_VIDEODECODERUPDATEDOWNSAMPLING_UNSUPPORTED = ( D3D12_MESSAGE_ID_VIDEODECODERUPDATEDOWNSAMPLING_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_CHECKVIDEOPROCESSORFORMATCONVERSION_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEODECODERUPDATEDOWNSAMPLING_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCOLORSPACE1_NULLPARAM = ( D3D12_MESSAGE_ID_CHECKVIDEOPROCESSORFORMATCONVERSION_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCOLORSPACE1_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCOLORSPACE1_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE1_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCOLORSPACE1_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE1_INVALIDSTREAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE1_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE1_INVALIDSTREAM + 1 ) , + D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_INVALIDSTREAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_UNSUPPORTED = ( D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_INVALIDSTREAM + 1 ) , + D3D12_MESSAGE_ID_VIDEOPROCESSORGETSTREAMCOLORSPACE1_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_VIDEOPROCESSORGETSTREAMMIRROR_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETSTREAMCOLORSPACE1_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETSTREAMMIRROR_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_INVALIDCOLORSPACE = ( D3D12_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_ZEROWIDTHHEIGHT = ( D3D12_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_INVALIDCOLORSPACE + 1 ) , + D3D12_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSHADERUSAGE_NULLPARAM = ( D3D12_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_ZEROWIDTHHEIGHT + 1 ) , + D3D12_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTSHADERUSAGE_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSHADERUSAGE_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTSHADERUSAGE_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDSTREAMCOUNT = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_NULLPARAM + 1 ) , + D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_TARGETRECT = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDSTREAMCOUNT + 1 ) , + D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDSOURCERECT = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_TARGETRECT + 1 ) , + D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDDESTRECT = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDSOURCERECT + 1 ) , + D3D12_MESSAGE_ID_CREATEBUFFER_INVALIDUSAGE = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDDESTRECT + 1 ) , + D3D12_MESSAGE_ID_CREATETEXTURE1D_INVALIDUSAGE = ( D3D12_MESSAGE_ID_CREATEBUFFER_INVALIDUSAGE + 1 ) , + D3D12_MESSAGE_ID_CREATETEXTURE2D_INVALIDUSAGE = ( D3D12_MESSAGE_ID_CREATETEXTURE1D_INVALIDUSAGE + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_LEVEL9_STEPRATE_NOT_1 = ( D3D12_MESSAGE_ID_CREATETEXTURE2D_INVALIDUSAGE + 1 ) , + D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_LEVEL9_INSTANCING_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_LEVEL9_STEPRATE_NOT_1 + 1 ) , + D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_LEVEL9_INSTANCING_NOT_SUPPORTED + 1 ) , + D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER = ( D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER + 1 ) , + D3D12_MESSAGE_ID_COPYTILES_INVALID_PARAMETER = ( D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER + 1 ) , + D3D12_MESSAGE_ID_NULL_TILE_MAPPING_ACCESS_WARNING = ( D3D12_MESSAGE_ID_COPYTILES_INVALID_PARAMETER + 1 ) , + D3D12_MESSAGE_ID_NULL_TILE_MAPPING_ACCESS_ERROR = ( D3D12_MESSAGE_ID_NULL_TILE_MAPPING_ACCESS_WARNING + 1 ) , + D3D12_MESSAGE_ID_DIRTY_TILE_MAPPING_ACCESS = ( D3D12_MESSAGE_ID_NULL_TILE_MAPPING_ACCESS_ERROR + 1 ) , + D3D12_MESSAGE_ID_DUPLICATE_TILE_MAPPINGS_IN_COVERED_AREA = ( D3D12_MESSAGE_ID_DIRTY_TILE_MAPPING_ACCESS + 1 ) , + D3D12_MESSAGE_ID_TILE_MAPPINGS_IN_COVERED_AREA_DUPLICATED_OUTSIDE = ( D3D12_MESSAGE_ID_DUPLICATE_TILE_MAPPINGS_IN_COVERED_AREA + 1 ) , + D3D12_MESSAGE_ID_TILE_MAPPINGS_SHARED_BETWEEN_INCOMPATIBLE_RESOURCES = ( D3D12_MESSAGE_ID_TILE_MAPPINGS_IN_COVERED_AREA_DUPLICATED_OUTSIDE + 1 ) , + D3D12_MESSAGE_ID_TILE_MAPPINGS_SHARED_BETWEEN_INPUT_AND_OUTPUT = ( D3D12_MESSAGE_ID_TILE_MAPPINGS_SHARED_BETWEEN_INCOMPATIBLE_RESOURCES + 1 ) , + D3D12_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_INVALIDFLAGS = ( D3D12_MESSAGE_ID_TILE_MAPPINGS_SHARED_BETWEEN_INPUT_AND_OUTPUT + 1 ) , + D3D12_MESSAGE_ID_GETRESOURCETILING_NONTILED_RESOURCE = ( D3D12_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_INVALIDFLAGS + 1 ) , + D3D12_MESSAGE_ID_NEED_TO_CALL_TILEDRESOURCEBARRIER = ( D3D12_MESSAGE_ID_GETRESOURCETILING_NONTILED_RESOURCE + 1 ) , + D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS = ( D3D12_MESSAGE_ID_NEED_TO_CALL_TILEDRESOURCEBARRIER + 1 ) , + D3D12_MESSAGE_ID_CREATEDEVICE_WARNING = ( D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS + 1 ) , + D3D12_MESSAGE_ID_TILED_RESOURCE_TIER_1_BUFFER_TEXTURE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEDEVICE_WARNING + 1 ) , + D3D12_MESSAGE_ID_CREATE_CRYPTOSESSION = ( D3D12_MESSAGE_ID_TILED_RESOURCE_TIER_1_BUFFER_TEXTURE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATE_AUTHENTICATEDCHANNEL = ( D3D12_MESSAGE_ID_CREATE_CRYPTOSESSION + 1 ) , + D3D12_MESSAGE_ID_LIVE_CRYPTOSESSION = ( D3D12_MESSAGE_ID_CREATE_AUTHENTICATEDCHANNEL + 1 ) , + D3D12_MESSAGE_ID_LIVE_AUTHENTICATEDCHANNEL = ( D3D12_MESSAGE_ID_LIVE_CRYPTOSESSION + 1 ) , + D3D12_MESSAGE_ID_DESTROY_CRYPTOSESSION = ( D3D12_MESSAGE_ID_LIVE_AUTHENTICATEDCHANNEL + 1 ) , + D3D12_MESSAGE_ID_DESTROY_AUTHENTICATEDCHANNEL = ( D3D12_MESSAGE_ID_DESTROY_CRYPTOSESSION + 1 ) , + D3D12_MESSAGE_ID_MAP_INVALID_SUBRESOURCE = ( D3D12_MESSAGE_ID_DESTROY_AUTHENTICATEDCHANNEL + 1 ) , + D3D12_MESSAGE_ID_MAP_INVALID_TYPE = ( D3D12_MESSAGE_ID_MAP_INVALID_SUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_MAP_UNSUPPORTED_TYPE = ( D3D12_MESSAGE_ID_MAP_INVALID_TYPE + 1 ) , + D3D12_MESSAGE_ID_UNMAP_INVALID_SUBRESOURCE = ( D3D12_MESSAGE_ID_MAP_UNSUPPORTED_TYPE + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE = ( D3D12_MESSAGE_ID_UNMAP_INVALID_SUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG + 1 ) , + D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE + 1 ) , + D3D12_MESSAGE_ID_INEFFICIENT_PRESENT = ( D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE + 1 ) , + D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION = ( D3D12_MESSAGE_ID_INEFFICIENT_PRESENT + 1 ) , + D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET = ( D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION + 1 ) , + D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE = ( D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET + 1 ) , + D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET = ( D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_OPEN = ( D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET + 1 ) , + D3D12_MESSAGE_ID_QUERY_STATE_MISMATCH = ( D3D12_MESSAGE_ID_COMMAND_LIST_OPEN + 1 ) , + D3D12_MESSAGE_ID_INVALID_BUNDLE_API = ( D3D12_MESSAGE_ID_QUERY_STATE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED = ( D3D12_MESSAGE_ID_INVALID_BUNDLE_API + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED_WITH_INVALID_RESOURCE = ( D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED + 1 ) , + D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE = ( D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED_WITH_INVALID_RESOURCE + 1 ) , + D3D12_MESSAGE_ID_INVALID_INDIRECT_ARGUMENT_BUFFER = ( D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE + 1 ) , + D3D12_MESSAGE_ID_COMPUTE_AND_GRAPHICS_PIPELINE = ( D3D12_MESSAGE_ID_INVALID_INDIRECT_ARGUMENT_BUFFER + 1 ) , + D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC = ( D3D12_MESSAGE_ID_COMPUTE_AND_GRAPHICS_PIPELINE + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_SYNC = ( D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC + 1 ) , + D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID = ( D3D12_MESSAGE_ID_COMMAND_LIST_SYNC + 1 ) , + D3D12_MESSAGE_ID_CREATE_QUEUE_IMAGE_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID + 1 ) , + D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_IMAGE_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_CREATE_QUEUE_IMAGE_NOT_SUPPORTED + 1 ) , + D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE = ( D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_IMAGE_NOT_SUPPORTED + 1 ) , + D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR = ( D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE + 1 ) , + D3D12_MESSAGE_ID_CREATE_PIPELINESTATE = ( D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR + 1 ) , + D3D12_MESSAGE_ID_CREATE_COMMANDLIST12 = ( D3D12_MESSAGE_ID_CREATE_PIPELINESTATE + 1 ) , + D3D12_MESSAGE_ID_CREATE_IMAGECOMMANDLIST = ( D3D12_MESSAGE_ID_CREATE_COMMANDLIST12 + 1 ) , + D3D12_MESSAGE_ID_CREATE_RESOURCE = ( D3D12_MESSAGE_ID_CREATE_IMAGECOMMANDLIST + 1 ) , + D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP = ( D3D12_MESSAGE_ID_CREATE_RESOURCE + 1 ) , + D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE = ( D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP + 1 ) , + D3D12_MESSAGE_ID_CREATE_LIBRARY = ( D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE + 1 ) , + D3D12_MESSAGE_ID_CREATE_HEAP = ( D3D12_MESSAGE_ID_CREATE_LIBRARY + 1 ) , + D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE = ( D3D12_MESSAGE_ID_CREATE_HEAP + 1 ) , + D3D12_MESSAGE_ID_CREATE_QUERYHEAP = ( D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE + 1 ) , + D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE = ( D3D12_MESSAGE_ID_CREATE_QUERYHEAP + 1 ) , + D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE = ( D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE + 1 ) , + D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR = ( D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE + 1 ) , + D3D12_MESSAGE_ID_LIVE_PIPELINESTATE = ( D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR + 1 ) , + D3D12_MESSAGE_ID_LIVE_COMMANDLIST12 = ( D3D12_MESSAGE_ID_LIVE_PIPELINESTATE + 1 ) , + D3D12_MESSAGE_ID_LIVE_IMAGECOMMANDLIST = ( D3D12_MESSAGE_ID_LIVE_COMMANDLIST12 + 1 ) , + D3D12_MESSAGE_ID_LIVE_RESOURCE = ( D3D12_MESSAGE_ID_LIVE_IMAGECOMMANDLIST + 1 ) , + D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP = ( D3D12_MESSAGE_ID_LIVE_RESOURCE + 1 ) , + D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE = ( D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP + 1 ) , + D3D12_MESSAGE_ID_LIVE_LIBRARY = ( D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE + 1 ) , + D3D12_MESSAGE_ID_LIVE_HEAP = ( D3D12_MESSAGE_ID_LIVE_LIBRARY + 1 ) , + D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE = ( D3D12_MESSAGE_ID_LIVE_HEAP + 1 ) , + D3D12_MESSAGE_ID_LIVE_QUERYHEAP = ( D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE + 1 ) , + D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE = ( D3D12_MESSAGE_ID_LIVE_QUERYHEAP + 1 ) , + D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE = ( D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE + 1 ) , + D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR = ( D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE + 1 ) , + D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE = ( D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR + 1 ) , + D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12 = ( D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE + 1 ) , + D3D12_MESSAGE_ID_DESTROY_IMAGECOMMANDLIST = ( D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12 + 1 ) , + D3D12_MESSAGE_ID_DESTROY_RESOURCE = ( D3D12_MESSAGE_ID_DESTROY_IMAGECOMMANDLIST + 1 ) , + D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP = ( D3D12_MESSAGE_ID_DESTROY_RESOURCE + 1 ) , + D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE = ( D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP + 1 ) , + D3D12_MESSAGE_ID_DESTROY_LIBRARY = ( D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE + 1 ) , + D3D12_MESSAGE_ID_DESTROY_HEAP = ( D3D12_MESSAGE_ID_DESTROY_LIBRARY + 1 ) , + D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE = ( D3D12_MESSAGE_ID_DESTROY_HEAP + 1 ) , + D3D12_MESSAGE_ID_DESTROY_QUERYHEAP = ( D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE + 1 ) , + D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE = ( D3D12_MESSAGE_ID_DESTROY_QUERYHEAP + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDHEAPTYPE = ( D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS = ( D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDHEAPTYPE + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDMISCFLAGS = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS = ( D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDMISCFLAGS + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_LARGEALLOCATION = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_SMALLALLOCATION = ( D3D12_MESSAGE_ID_CREATERESOURCE_LARGEALLOCATION + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_CREATERESOURCE_SMALLALLOCATION + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC = ( D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDINITIALSTATE = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_HAS_PENDING_INITIAL_DATA = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDINITIALSTATE + 1 ) , + D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE = ( D3D12_MESSAGE_ID_RESOURCE_HAS_PENDING_INITIAL_DATA + 1 ) , + D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE = ( D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE + 1 ) , + D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE = ( D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE + 1 ) , + D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH = ( D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE + 1 ) , + D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE = ( D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_RENDER_TARGET_NUMBER_MISMATCH_PIPELINE_STATE = ( D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE + 1 ) , + D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE = ( D3D12_MESSAGE_ID_RENDER_TARGET_NUMBER_MISMATCH_PIPELINE_STATE + 1 ) , + D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = ( D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE + 1 ) , + D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE = ( D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE + 1 ) , + D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = ( D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE + 1 ) , + D3D12_MESSAGE_ID_RENDER_TARGET_NUMBER_MISMATCH_BUNDLE_PIPELINE_STATE = ( D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE + 1 ) , + D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_BUNDLE_PIPELINE_STATE = ( D3D12_MESSAGE_ID_RENDER_TARGET_NUMBER_MISMATCH_BUNDLE_PIPELINE_STATE + 1 ) , + D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_BUNDLE_PIPELINE_STATE = ( D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_BUNDLE_PIPELINE_STATE + 1 ) , + D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_BUNDLE_PIPELINE_STATE = ( D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_BUNDLE_PIPELINE_STATE + 1 ) , + D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_BUNDLE_PIPELINE_STATE = ( D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_BUNDLE_PIPELINE_STATE + 1 ) , + D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE = ( D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_BUNDLE_PIPELINE_STATE + 1 ) , + D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC = ( D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE + 1 ) , + D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE = ( D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC + 1 ) , + D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE = ( D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE + 1 ) , + D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = ( D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE + 1 ) , + D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL = ( D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES + 1 ) , + D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES = ( D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL + 1 ) , + D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT = ( D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES + 1 ) , + D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS = ( D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT + 1 ) , + D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS = ( D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS + 1 ) , + D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS + 1 ) , + D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES = ( D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN + 1 ) , + D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN + 1 ) , + D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE = ( D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE + 1 ) , + D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC = ( D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE + 1 ) , + D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE = ( D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC + 1 ) , + D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE = ( D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE + 1 ) , + D3D12_MESSAGE_ID_DEVICE_DRAW_INVALID_SYSTEMVALUE = ( D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE + 1 ) , + D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE = ( D3D12_MESSAGE_ID_DEVICE_DRAW_INVALID_SYSTEMVALUE + 1 ) , + D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC = ( D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE + 1 ) , + D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_LARGE_OFFSET = ( D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC + 1 ) , + D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE = ( D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_LARGE_OFFSET + 1 ) , + D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES = ( D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE + 1 ) , + D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR = ( D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN = ( D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE + 1 ) , + D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH = ( D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE + 1 ) , + D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE = ( D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE = ( D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE + 1 ) , + D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND = ( D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE + 1 ) , + D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED = ( D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND + 1 ) , + D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION = ( D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED + 1 ) , + D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE = ( D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES = ( D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES + 1 ) , + D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP + 1 ) , + D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY = ( D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS + 1 ) , + D3D12_MESSAGE_ID_MAKERESIDENT_INVALIDOBJECT = ( D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY + 1 ) , + D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY = ( D3D12_MESSAGE_ID_MAKERESIDENT_INVALIDOBJECT + 1 ) , + D3D12_MESSAGE_ID_EVICT_INVALIDOBJECT = ( D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY + 1 ) , + D3D12_MESSAGE_ID_HEAPS_UNSUPPORTED = ( D3D12_MESSAGE_ID_EVICT_INVALIDOBJECT + 1 ) , + D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID = ( D3D12_MESSAGE_ID_HEAPS_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID = ( D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID + 1 ) , + D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID = ( D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID + 1 ) , + D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID = ( D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID + 1 ) , + D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID = ( D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID + 1 ) , + D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC = ( D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID + 1 ) , + D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_LARGE_OFFSET = ( D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC + 1 ) , + D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC = ( D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_LARGE_OFFSET + 1 ) , + D3D12_MESSAGE_ID_SET_INDEX_BUFFER_LARGE_OFFSET = ( D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC + 1 ) , + D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC = ( D3D12_MESSAGE_ID_SET_INDEX_BUFFER_LARGE_OFFSET + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY = ( D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT = ( D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY = ( D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC + 1 ) , + D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT + 1 ) , + D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID = ( D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID + 1 ) , + D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID = ( D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID + 1 ) , + D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID = ( D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID + 1 ) , + D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS = ( D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID + 1 ) , + D3D12_MESSAGE_ID_CREATEQUERY_HEAP_JPEG_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS + 1 ) , + D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS = ( D3D12_MESSAGE_ID_CREATEQUERY_HEAP_JPEG_NOT_SUPPORTED + 1 ) , + D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY = ( D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS + 1 ) , + D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS = ( D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY + 1 ) , + D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS = ( D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS + 1 ) , + D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS + 1 ) , + D3D12_MESSAGE_ID_UNSTABLE_POWER_STATE = ( D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT = ( D3D12_MESSAGE_ID_UNSTABLE_POWER_STATE + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT = ( D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT + 1 ) , + D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDSUBRESOURCERANGE = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT + 1 ) , + D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDBASEOFFSET = ( D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDSUBRESOURCERANGE + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP = ( D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDBASEOFFSET + 1 ) , + D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP + 1 ) , + D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID = ( D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID + 1 ) , + D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS = ( D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID + 1 ) , + D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION = ( D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS + 1 ) , + D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDCONTEXTTYPE = ( D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION + 1 ) , + D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_DECODENOTSUPPORTED = ( D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDCONTEXTTYPE + 1 ) , + D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_ENCODENOTSUPPORTED = ( D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_DECODENOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANEINDEX = ( D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_ENCODENOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANEINDEX = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANEINDEX + 1 ) , + D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_AMBIGUOUSVIDEOPLANEINDEX = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANEINDEX + 1 ) , + D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANEINDEX = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_AMBIGUOUSVIDEOPLANEINDEX + 1 ) , + D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANEINDEX = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANEINDEX + 1 ) , + D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_AMBIGUOUSVIDEOPLANEINDEX = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANEINDEX + 1 ) , + D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANEINDEX = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_AMBIGUOUSVIDEOPLANEINDEX + 1 ) , + D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANEINDEX = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANEINDEX + 1 ) , + D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_AMBIGUOUSVIDEOPLANEINDEX = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANEINDEX + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_INVALIDSCANDATAOFFSET = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_AMBIGUOUSVIDEOPLANEINDEX + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_NOTSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_INVALIDSCANDATAOFFSET + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_DIMENSIONSTOOLARGE = ( D3D12_MESSAGE_ID_JPEGDECODE_NOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_INVALIDCOMPONENTS = ( D3D12_MESSAGE_ID_JPEGDECODE_DIMENSIONSTOOLARGE + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDCOMPONENTS = ( D3D12_MESSAGE_ID_JPEGDECODE_INVALIDCOMPONENTS + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_DESTINATIONNOT2D = ( D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDCOMPONENTS + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_TILEDRESOURCESUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_DESTINATIONNOT2D + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_GUARDRECTSUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_TILEDRESOURCESUNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_FORMATUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_GUARDRECTSUNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_JPEGDECODE_FORMATUNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_INVALIDMIPLEVEL = ( D3D12_MESSAGE_ID_JPEGDECODE_INVALIDSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_EMPTYDESTBOX = ( D3D12_MESSAGE_ID_JPEGDECODE_INVALIDMIPLEVEL + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_DESTBOXNOT2D = ( D3D12_MESSAGE_ID_JPEGDECODE_EMPTYDESTBOX + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_DESTBOXNOTSUB = ( D3D12_MESSAGE_ID_JPEGDECODE_DESTBOXNOT2D + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_DESTBOXESINTERSECT = ( D3D12_MESSAGE_ID_JPEGDECODE_DESTBOXNOTSUB + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_XSUBSAMPLEMISMATCH = ( D3D12_MESSAGE_ID_JPEGDECODE_DESTBOXESINTERSECT + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_YSUBSAMPLEMISMATCH = ( D3D12_MESSAGE_ID_JPEGDECODE_XSUBSAMPLEMISMATCH + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_XSUBSAMPLEODD = ( D3D12_MESSAGE_ID_JPEGDECODE_YSUBSAMPLEMISMATCH + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_YSUBSAMPLEODD = ( D3D12_MESSAGE_ID_JPEGDECODE_XSUBSAMPLEODD + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_UPSCALEUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_YSUBSAMPLEODD + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_TIER4DOWNSCALETOLARGE = ( D3D12_MESSAGE_ID_JPEGDECODE_UPSCALEUNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_TIER3DOWNSCALEUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_TIER4DOWNSCALETOLARGE + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_CHROMASIZEMISMATCH = ( D3D12_MESSAGE_ID_JPEGDECODE_TIER3DOWNSCALEUNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_LUMACHROMASIZEMISMATCH = ( D3D12_MESSAGE_ID_JPEGDECODE_CHROMASIZEMISMATCH + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_INVALIDNUMDESTINATIONS = ( D3D12_MESSAGE_ID_JPEGDECODE_LUMACHROMASIZEMISMATCH + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_SUBBOXUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_INVALIDNUMDESTINATIONS + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_1DESTUNSUPPORTEDFORMAT = ( D3D12_MESSAGE_ID_JPEGDECODE_SUBBOXUNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_3DESTUNSUPPORTEDFORMAT = ( D3D12_MESSAGE_ID_JPEGDECODE_1DESTUNSUPPORTEDFORMAT + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_SCALEUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_3DESTUNSUPPORTEDFORMAT + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_INVALIDSOURCESIZE = ( D3D12_MESSAGE_ID_JPEGDECODE_SCALEUNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_INVALIDCOPYFLAGS = ( D3D12_MESSAGE_ID_JPEGDECODE_INVALIDSOURCESIZE + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_HAZARD = ( D3D12_MESSAGE_ID_JPEGDECODE_INVALIDCOPYFLAGS + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDSRCBUFFERUSAGE = ( D3D12_MESSAGE_ID_JPEGDECODE_HAZARD + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDSRCBUFFERMISCFLAGS = ( D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDSRCBUFFERUSAGE + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDDSTTEXTUREUSAGE = ( D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDSRCBUFFERMISCFLAGS + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_BACKBUFFERNOTSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDDSTTEXTUREUSAGE + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPRTEDCOPYFLAGS = ( D3D12_MESSAGE_ID_JPEGDECODE_BACKBUFFERNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_NOTSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPRTEDCOPYFLAGS + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_INVALIDSCANDATAOFFSET = ( D3D12_MESSAGE_ID_JPEGENCODE_NOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_INVALIDCOMPONENTS = ( D3D12_MESSAGE_ID_JPEGENCODE_INVALIDSCANDATAOFFSET + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_SOURCENOT2D = ( D3D12_MESSAGE_ID_JPEGENCODE_INVALIDCOMPONENTS + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_TILEDRESOURCESUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGENCODE_SOURCENOT2D + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_GUARDRECTSUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGENCODE_TILEDRESOURCESUNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_XSUBSAMPLEMISMATCH = ( D3D12_MESSAGE_ID_JPEGENCODE_GUARDRECTSUNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_YSUBSAMPLEMISMATCH = ( D3D12_MESSAGE_ID_JPEGENCODE_XSUBSAMPLEMISMATCH + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDCOMPONENTS = ( D3D12_MESSAGE_ID_JPEGENCODE_YSUBSAMPLEMISMATCH + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_FORMATUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDCOMPONENTS + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_JPEGENCODE_FORMATUNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_INVALIDMIPLEVEL = ( D3D12_MESSAGE_ID_JPEGENCODE_INVALIDSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_DIMENSIONSTOOLARGE = ( D3D12_MESSAGE_ID_JPEGENCODE_INVALIDMIPLEVEL + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_HAZARD = ( D3D12_MESSAGE_ID_JPEGENCODE_DIMENSIONSTOOLARGE + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDDSTBUFFERUSAGE = ( D3D12_MESSAGE_ID_JPEGENCODE_HAZARD + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDDSTBUFFERMISCFLAGS = ( D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDDSTBUFFERUSAGE + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDSRCTEXTUREUSAGE = ( D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDDSTBUFFERMISCFLAGS + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_BACKBUFFERNOTSUPPORTED = ( D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDSRCTEXTUREUSAGE + 1 ) , + D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_UNSUPPORTEDCONTEXTTTYPEFORQUERY = ( D3D12_MESSAGE_ID_JPEGENCODE_BACKBUFFERNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_FLUSH1_INVALIDCONTEXTTYPE = ( D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_UNSUPPORTEDCONTEXTTTYPEFORQUERY + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE = ( D3D12_MESSAGE_ID_FLUSH1_INVALIDCONTEXTTYPE + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT = ( D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT + 1 ) , + D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT + 1 ) , + D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALIDDEPTH = ( D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH + 1 ) , + D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE = ( D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALIDDEPTH + 1 ) , + D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE = ( D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE + 1 ) , + D3D12_MESSAGE_ID_MAP_INVALIDHEAP = ( D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE + 1 ) , + D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP = ( D3D12_MESSAGE_ID_MAP_INVALIDHEAP + 1 ) , + D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP + 1 ) , + D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE + 1 ) , + D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE + 1 ) , + D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_MAP_INVALIDRANGE = ( D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE = ( D3D12_MESSAGE_ID_MAP_INVALIDRANGE + 1 ) , + D3D12_MESSAGE_ID_MAP_NULLRANGE = ( D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE + 1 ) , + D3D12_MESSAGE_ID_UNMAP_NULLRANGE = ( D3D12_MESSAGE_ID_MAP_NULLRANGE + 1 ) , + D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER = ( D3D12_MESSAGE_ID_UNMAP_NULLRANGE + 1 ) , + D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER + 1 ) , + D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN + 1 ) , + D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED = ( D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN + 1 ) , + D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH = ( D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST = ( D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH + 1 ) , + D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST = ( D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST + 1 ) , + D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST = ( D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST + 1 ) , + D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION = ( D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST + 1 ) , + D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS = ( D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION + 1 ) , + D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC = ( D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS + 1 ) , + D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION = ( D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC + 1 ) , + D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS = ( D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION + 1 ) , + D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS = ( D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST = ( D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH + 1 ) , + D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX + 1 ) , + D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS + 1 ) , + D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX + 1 ) , + D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT + 1 ) , + D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT + 1 ) , + D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER + 1 ) , + D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE = ( D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB = ( D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE + 1 ) , + D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB + 1 ) , + D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH + 1 ) , + D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED + 1 ) , + D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP + 1 ) , + D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX = ( D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE + 1 ) , + D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX + 1 ) , + D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX = ( D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP = ( D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX + 1 ) , + D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP + 1 ) , + D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX = ( D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE + 1 ) , + D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX + 1 ) , + D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX = ( D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED = ( D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX + 1 ) , + D3D12_MESSAGE_ID_INVALID_NODE_INDEX = ( D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED + 1 ) , + D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_INVALID_NODE_INDEX + 1 ) , + D3D12_MESSAGE_ID_NODE_MASK_MISMATCH = ( D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY = ( D3D12_MESSAGE_ID_NODE_MASK_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES = ( D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES = ( D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES + 1 ) , + D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES = ( D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES + 1 ) , + D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE = ( D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS = ( D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE + 1 ) , + D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE = ( D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS + 1 ) , + D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS = ( D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE + 1 ) , + D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS = ( D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS + 1 ) , + D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT = ( D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS + 1 ) , + D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS = ( D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT + 1 ) , + D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES = ( D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS + 1 ) , + D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE = ( D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES + 1 ) , + D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT = ( D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE + 1 ) , + D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT = ( D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT + 1 ) , + D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY = ( D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT + 1 ) , + D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE = ( D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY + 1 ) , + D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY = ( D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE + 1 ) , + D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE = ( D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY + 1 ) , + D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS = ( D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE + 1 ) , + D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED = ( D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED + 1 ) , + D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT + 1 ) , + D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED = ( D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS + 1 ) , + D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_NEEDED = ( D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED + 1 ) , + D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY = ( D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_NEEDED + 1 ) , + D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE = ( D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY + 1 ) , + D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE = ( D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE + 1 ) , + D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT = ( D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE + 1 ) , + D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT = ( D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT + 1 ) , + D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT + 1 ) , + D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED + 1 ) , + D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED + 1 ) , + D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS + 1 ) , + D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS + 1 ) , + D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED + 1 ) , + D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE + 1 ) , + D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE = ( D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST + 1 ) , + D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC = ( D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE + 1 ) , + D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE = ( D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC + 1 ) , + D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST = ( D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE + 1 ) , + D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST + 1 ) , + D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE + 1 ) , + D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC + 1 ) , + D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET = ( D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS = ( D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH = ( D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END + 1 ) , + D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE + 1 ) , + D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE = ( D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT + 1 ) , + D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS = ( D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE + 1 ) , + D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS + 1 ) , + D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH = ( D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB + 1 ) , + D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH = ( D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED = ( D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY = ( D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY = ( D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY + 1 ) , + D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY = ( D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY + 1 ) , + D3D12_MESSAGE_ID_STOREPIPELINE_NONAME = ( D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY + 1 ) , + D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME = ( D3D12_MESSAGE_ID_STOREPIPELINE_NONAME + 1 ) , + D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND = ( D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME + 1 ) , + D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC = ( D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND + 1 ) , + D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY = ( D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH = ( D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY + 1 ) , + D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS + 1 ) , + D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED + 1 ) , + D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED + 1 ) , + D3D12_MESSAGE_ID_CREATE_VIDEOCOMMANDLIST = ( D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED + 1 ) , + D3D12_MESSAGE_ID_CREATE_VIDEODECODER = ( D3D12_MESSAGE_ID_CREATE_VIDEOCOMMANDLIST + 1 ) , + D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM = ( D3D12_MESSAGE_ID_CREATE_VIDEODECODER + 1 ) , + D3D12_MESSAGE_ID_LIVE_VIDEOCOMMANDLIST = ( D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM + 1 ) , + D3D12_MESSAGE_ID_LIVE_VIDEODECODER = ( D3D12_MESSAGE_ID_LIVE_VIDEOCOMMANDLIST + 1 ) , + D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM = ( D3D12_MESSAGE_ID_LIVE_VIDEODECODER + 1 ) , + D3D12_MESSAGE_ID_DESTROY_VIDEOCOMMANDLIST = ( D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM + 1 ) , + D3D12_MESSAGE_ID_DESTROY_VIDEODECODER = ( D3D12_MESSAGE_ID_DESTROY_VIDEOCOMMANDLIST + 1 ) , + D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM = ( D3D12_MESSAGE_ID_DESTROY_VIDEODECODER + 1 ) , + D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS = ( D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM + 1 ) , + D3D12_MESSAGE_ID_DEPRECATED_API = ( D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE = ( D3D12_MESSAGE_ID_DEPRECATED_API + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE = ( D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS = ( D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE + 1 ) , + D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D = ( D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS + 1 ) , + D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE = ( D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D + 1 ) , + D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE = ( D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE + 1 ) , + D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED = ( D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE + 1 ) , + D3D12_MESSAGE_ID_D3D12_MESSAGES_END = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED + 1 ) + } D3D12_MESSAGE_ID; + +typedef struct D3D12_MESSAGE + { + D3D12_MESSAGE_CATEGORY Category; + D3D12_MESSAGE_SEVERITY Severity; + D3D12_MESSAGE_ID ID; + const char *pDescription; + SIZE_T DescriptionByteLength; + } D3D12_MESSAGE; + +typedef struct D3D12_INFO_QUEUE_FILTER_DESC + { + UINT NumCategories; + D3D12_MESSAGE_CATEGORY *pCategoryList; + UINT NumSeverities; + D3D12_MESSAGE_SEVERITY *pSeverityList; + UINT NumIDs; + D3D12_MESSAGE_ID *pIDList; + } D3D12_INFO_QUEUE_FILTER_DESC; + +typedef struct D3D12_INFO_QUEUE_FILTER + { + D3D12_INFO_QUEUE_FILTER_DESC AllowList; + D3D12_INFO_QUEUE_FILTER_DESC DenyList; + } D3D12_INFO_QUEUE_FILTER; + + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0007_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0007_v0_0_s_ifspec; +# 1962 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" +extern "C" const IID IID_ID3D12InfoQueue; + + + + struct __declspec(uuid("0742a90b-c387-483f-b946-30a7e4e61458")) __declspec(novtable) + ID3D12InfoQueue : public IUnknown + { + public: + virtual HRESULT __stdcall SetMessageCountLimit( + UINT64 MessageCountLimit) = 0; + + virtual void __stdcall ClearStoredMessages( void) = 0; + + virtual HRESULT __stdcall GetMessageW( + UINT64 MessageIndex, + D3D12_MESSAGE *pMessage, + SIZE_T *pMessageByteLength) = 0; + + virtual UINT64 __stdcall GetNumMessagesAllowedByStorageFilter( void) = 0; + + virtual UINT64 __stdcall GetNumMessagesDeniedByStorageFilter( void) = 0; + + virtual UINT64 __stdcall GetNumStoredMessages( void) = 0; + + virtual UINT64 __stdcall GetNumStoredMessagesAllowedByRetrievalFilter( void) = 0; + + virtual UINT64 __stdcall GetNumMessagesDiscardedByMessageCountLimit( void) = 0; + + virtual UINT64 __stdcall GetMessageCountLimit( void) = 0; + + virtual HRESULT __stdcall AddStorageFilterEntries( + D3D12_INFO_QUEUE_FILTER *pFilter) = 0; + + virtual HRESULT __stdcall GetStorageFilter( + D3D12_INFO_QUEUE_FILTER *pFilter, + SIZE_T *pFilterByteLength) = 0; + + virtual void __stdcall ClearStorageFilter( void) = 0; + + virtual HRESULT __stdcall PushEmptyStorageFilter( void) = 0; + + virtual HRESULT __stdcall PushCopyOfStorageFilter( void) = 0; + + virtual HRESULT __stdcall PushStorageFilter( + D3D12_INFO_QUEUE_FILTER *pFilter) = 0; + + virtual void __stdcall PopStorageFilter( void) = 0; + + virtual UINT __stdcall GetStorageFilterStackSize( void) = 0; + + virtual HRESULT __stdcall AddRetrievalFilterEntries( + D3D12_INFO_QUEUE_FILTER *pFilter) = 0; + + virtual HRESULT __stdcall GetRetrievalFilter( + D3D12_INFO_QUEUE_FILTER *pFilter, + SIZE_T *pFilterByteLength) = 0; + + virtual void __stdcall ClearRetrievalFilter( void) = 0; + + virtual HRESULT __stdcall PushEmptyRetrievalFilter( void) = 0; + + virtual HRESULT __stdcall PushCopyOfRetrievalFilter( void) = 0; + + virtual HRESULT __stdcall PushRetrievalFilter( + D3D12_INFO_QUEUE_FILTER *pFilter) = 0; + + virtual void __stdcall PopRetrievalFilter( void) = 0; + + virtual UINT __stdcall GetRetrievalFilterStackSize( void) = 0; + + virtual HRESULT __stdcall AddMessage( + D3D12_MESSAGE_CATEGORY Category, + D3D12_MESSAGE_SEVERITY Severity, + D3D12_MESSAGE_ID ID, + LPCSTR pDescription) = 0; + + virtual HRESULT __stdcall AddApplicationMessage( + D3D12_MESSAGE_SEVERITY Severity, + LPCSTR pDescription) = 0; + + virtual HRESULT __stdcall SetBreakOnCategory( + D3D12_MESSAGE_CATEGORY Category, + BOOL bEnable) = 0; + + virtual HRESULT __stdcall SetBreakOnSeverity( + D3D12_MESSAGE_SEVERITY Severity, + BOOL bEnable) = 0; + + virtual HRESULT __stdcall SetBreakOnID( + D3D12_MESSAGE_ID ID, + BOOL bEnable) = 0; + + virtual BOOL __stdcall GetBreakOnCategory( + D3D12_MESSAGE_CATEGORY Category) = 0; + + virtual BOOL __stdcall GetBreakOnSeverity( + D3D12_MESSAGE_SEVERITY Severity) = 0; + + virtual BOOL __stdcall GetBreakOnID( + D3D12_MESSAGE_ID ID) = 0; + + virtual void __stdcall SetMuteDebugOutput( + BOOL bMute) = 0; + + virtual BOOL __stdcall GetMuteDebugOutput( void) = 0; + + }; +# 2365 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12sdklayers.h" +extern "C" const GUID IID_ID3D12Debug; +extern "C" const GUID IID_ID3D12Debug1; +extern "C" const GUID IID_ID3D12DebugDevice1; +extern "C" const GUID IID_ID3D12DebugDevice; +extern "C" const GUID IID_ID3D12DebugCommandQueue; +extern "C" const GUID IID_ID3D12DebugCommandList1; +extern "C" const GUID IID_ID3D12DebugCommandList; +extern "C" const GUID IID_ID3D12InfoQueue; + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0008_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0008_v0_0_s_ifspec; + + + + + + +} +# 7138 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12.h" 2 +# 7162 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12.h" +typedef HRESULT (__stdcall* PFN_D3D12_CREATE_DEVICE)( IUnknown*, + D3D_FEATURE_LEVEL, + const IID &, void** ); + +HRESULT __stdcall D3D12CreateDevice( + IUnknown* pAdapter, + D3D_FEATURE_LEVEL MinimumFeatureLevel, + const IID & riid, + void** ppDevice ); + + +typedef HRESULT (__stdcall* PFN_D3D12_GET_DEBUG_INTERFACE)( const IID &, void** ); + +HRESULT __stdcall D3D12GetDebugInterface( const IID & riid, void** ppvDebug ); + + + +extern "C" const GUID IID_ID3D12Object; +extern "C" const GUID IID_ID3D12DeviceChild; +extern "C" const GUID IID_ID3D12RootSignature; +extern "C" const GUID IID_ID3D12RootSignatureDeserializer; +extern "C" const GUID IID_ID3D12VersionedRootSignatureDeserializer; +extern "C" const GUID IID_ID3D12Pageable; +extern "C" const GUID IID_ID3D12Heap; +extern "C" const GUID IID_ID3D12Resource; +extern "C" const GUID IID_ID3D12CommandAllocator; +extern "C" const GUID IID_ID3D12Fence; +extern "C" const GUID IID_ID3D12PipelineState; +extern "C" const GUID IID_ID3D12DescriptorHeap; +extern "C" const GUID IID_ID3D12QueryHeap; +extern "C" const GUID IID_ID3D12CommandSignature; +extern "C" const GUID IID_ID3D12CommandList; +extern "C" const GUID IID_ID3D12GraphicsCommandList; +extern "C" const GUID IID_ID3D12CommandQueue; +extern "C" const GUID IID_ID3D12Device; +extern "C" const GUID IID_ID3D12PipelineLibrary; +extern "C" const GUID IID_ID3D12Device1; + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0020_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0020_v0_0_s_ifspec; + + + + + + +} +# 9 "../LEngine/Shader.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" 1 +# 49 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef struct ID3D11DeviceChild ID3D11DeviceChild; + + + + + + +typedef struct ID3D11DepthStencilState ID3D11DepthStencilState; + + + + + + +typedef struct ID3D11BlendState ID3D11BlendState; + + + + + + +typedef struct ID3D11RasterizerState ID3D11RasterizerState; + + + + + + +typedef struct ID3D11Resource ID3D11Resource; + + + + + + +typedef struct ID3D11Buffer ID3D11Buffer; + + + + + + +typedef struct ID3D11Texture1D ID3D11Texture1D; + + + + + + +typedef struct ID3D11Texture2D ID3D11Texture2D; + + + + + + +typedef struct ID3D11Texture3D ID3D11Texture3D; + + + + + + +typedef struct ID3D11View ID3D11View; + + + + + + +typedef struct ID3D11ShaderResourceView ID3D11ShaderResourceView; + + + + + + +typedef struct ID3D11RenderTargetView ID3D11RenderTargetView; + + + + + + +typedef struct ID3D11DepthStencilView ID3D11DepthStencilView; + + + + + + +typedef struct ID3D11UnorderedAccessView ID3D11UnorderedAccessView; + + + + + + +typedef struct ID3D11VertexShader ID3D11VertexShader; + + + + + + +typedef struct ID3D11HullShader ID3D11HullShader; + + + + + + +typedef struct ID3D11DomainShader ID3D11DomainShader; + + + + + + +typedef struct ID3D11GeometryShader ID3D11GeometryShader; + + + + + + +typedef struct ID3D11PixelShader ID3D11PixelShader; + + + + + + +typedef struct ID3D11ComputeShader ID3D11ComputeShader; + + + + + + +typedef struct ID3D11InputLayout ID3D11InputLayout; + + + + + + +typedef struct ID3D11SamplerState ID3D11SamplerState; + + + + + + +typedef struct ID3D11Asynchronous ID3D11Asynchronous; + + + + + + +typedef struct ID3D11Query ID3D11Query; + + + + + + +typedef struct ID3D11Predicate ID3D11Predicate; + + + + + + +typedef struct ID3D11Counter ID3D11Counter; + + + + + + +typedef struct ID3D11ClassInstance ID3D11ClassInstance; + + + + + + +typedef struct ID3D11ClassLinkage ID3D11ClassLinkage; + + + + + + +typedef struct ID3D11CommandList ID3D11CommandList; + + + + + + +typedef struct ID3D11DeviceContext ID3D11DeviceContext; + + + + + + +typedef struct ID3D11VideoDecoder ID3D11VideoDecoder; + + + + + + +typedef struct ID3D11VideoProcessorEnumerator ID3D11VideoProcessorEnumerator; + + + + + + +typedef struct ID3D11VideoProcessor ID3D11VideoProcessor; + + + + + + +typedef struct ID3D11AuthenticatedChannel ID3D11AuthenticatedChannel; + + + + + + +typedef struct ID3D11CryptoSession ID3D11CryptoSession; + + + + + + +typedef struct ID3D11VideoDecoderOutputView ID3D11VideoDecoderOutputView; + + + + + + +typedef struct ID3D11VideoProcessorInputView ID3D11VideoProcessorInputView; + + + + + + +typedef struct ID3D11VideoProcessorOutputView ID3D11VideoProcessorOutputView; + + + + + + +typedef struct ID3D11VideoContext ID3D11VideoContext; + + + + + + +typedef struct ID3D11VideoDevice ID3D11VideoDevice; + + + + + + +typedef struct ID3D11Device ID3D11Device; +# 341 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C"{ +# 1062 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +} +struct CD3D11_DEFAULT {}; +extern const __declspec(selectany) CD3D11_DEFAULT D3D11_DEFAULT; +extern "C"{ + +typedef +enum D3D11_INPUT_CLASSIFICATION + { + D3D11_INPUT_PER_VERTEX_DATA = 0, + D3D11_INPUT_PER_INSTANCE_DATA = 1 + } D3D11_INPUT_CLASSIFICATION; + + + +typedef struct D3D11_INPUT_ELEMENT_DESC + { + LPCSTR SemanticName; + UINT SemanticIndex; + DXGI_FORMAT Format; + UINT InputSlot; + UINT AlignedByteOffset; + D3D11_INPUT_CLASSIFICATION InputSlotClass; + UINT InstanceDataStepRate; + } D3D11_INPUT_ELEMENT_DESC; + +typedef +enum D3D11_FILL_MODE + { + D3D11_FILL_WIREFRAME = 2, + D3D11_FILL_SOLID = 3 + } D3D11_FILL_MODE; + +typedef D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY; + +typedef D3D_PRIMITIVE D3D11_PRIMITIVE; + +typedef +enum D3D11_CULL_MODE + { + D3D11_CULL_NONE = 1, + D3D11_CULL_FRONT = 2, + D3D11_CULL_BACK = 3 + } D3D11_CULL_MODE; + +typedef struct D3D11_SO_DECLARATION_ENTRY + { + UINT Stream; + LPCSTR SemanticName; + UINT SemanticIndex; + BYTE StartComponent; + BYTE ComponentCount; + BYTE OutputSlot; + } D3D11_SO_DECLARATION_ENTRY; + +typedef struct D3D11_VIEWPORT + { + FLOAT TopLeftX; + FLOAT TopLeftY; + FLOAT Width; + FLOAT Height; + FLOAT MinDepth; + FLOAT MaxDepth; + } D3D11_VIEWPORT; + + +} +inline bool operator==( const D3D11_VIEWPORT& l, const D3D11_VIEWPORT& r ) +{ + return l.TopLeftX == r.TopLeftX && l.TopLeftY == r.TopLeftY && l.Width == r.Width && + l.Height == r.Height && l.MinDepth == r.MinDepth && l.MaxDepth == r.MaxDepth; +} +inline bool operator!=( const D3D11_VIEWPORT& l, const D3D11_VIEWPORT& r ) +{ return !( l == r ); } +extern "C"{ + +typedef struct D3D11_DRAW_INSTANCED_INDIRECT_ARGS + { + UINT VertexCountPerInstance; + UINT InstanceCount; + UINT StartVertexLocation; + UINT StartInstanceLocation; + } D3D11_DRAW_INSTANCED_INDIRECT_ARGS; + +typedef struct D3D11_DRAW_INDEXED_INSTANCED_INDIRECT_ARGS + { + UINT IndexCountPerInstance; + UINT InstanceCount; + UINT StartIndexLocation; + INT BaseVertexLocation; + UINT StartInstanceLocation; + } D3D11_DRAW_INDEXED_INSTANCED_INDIRECT_ARGS; + +typedef +enum D3D11_RESOURCE_DIMENSION + { + D3D11_RESOURCE_DIMENSION_UNKNOWN = 0, + D3D11_RESOURCE_DIMENSION_BUFFER = 1, + D3D11_RESOURCE_DIMENSION_TEXTURE1D = 2, + D3D11_RESOURCE_DIMENSION_TEXTURE2D = 3, + D3D11_RESOURCE_DIMENSION_TEXTURE3D = 4 + } D3D11_RESOURCE_DIMENSION; + +typedef D3D_SRV_DIMENSION D3D11_SRV_DIMENSION; + +typedef +enum D3D11_DSV_DIMENSION + { + D3D11_DSV_DIMENSION_UNKNOWN = 0, + D3D11_DSV_DIMENSION_TEXTURE1D = 1, + D3D11_DSV_DIMENSION_TEXTURE1DARRAY = 2, + D3D11_DSV_DIMENSION_TEXTURE2D = 3, + D3D11_DSV_DIMENSION_TEXTURE2DARRAY = 4, + D3D11_DSV_DIMENSION_TEXTURE2DMS = 5, + D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY = 6 + } D3D11_DSV_DIMENSION; + +typedef +enum D3D11_RTV_DIMENSION + { + D3D11_RTV_DIMENSION_UNKNOWN = 0, + D3D11_RTV_DIMENSION_BUFFER = 1, + D3D11_RTV_DIMENSION_TEXTURE1D = 2, + D3D11_RTV_DIMENSION_TEXTURE1DARRAY = 3, + D3D11_RTV_DIMENSION_TEXTURE2D = 4, + D3D11_RTV_DIMENSION_TEXTURE2DARRAY = 5, + D3D11_RTV_DIMENSION_TEXTURE2DMS = 6, + D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY = 7, + D3D11_RTV_DIMENSION_TEXTURE3D = 8 + } D3D11_RTV_DIMENSION; + +typedef +enum D3D11_UAV_DIMENSION + { + D3D11_UAV_DIMENSION_UNKNOWN = 0, + D3D11_UAV_DIMENSION_BUFFER = 1, + D3D11_UAV_DIMENSION_TEXTURE1D = 2, + D3D11_UAV_DIMENSION_TEXTURE1DARRAY = 3, + D3D11_UAV_DIMENSION_TEXTURE2D = 4, + D3D11_UAV_DIMENSION_TEXTURE2DARRAY = 5, + D3D11_UAV_DIMENSION_TEXTURE3D = 8 + } D3D11_UAV_DIMENSION; + +typedef +enum D3D11_USAGE + { + D3D11_USAGE_DEFAULT = 0, + D3D11_USAGE_IMMUTABLE = 1, + D3D11_USAGE_DYNAMIC = 2, + D3D11_USAGE_STAGING = 3 + } D3D11_USAGE; + +typedef +enum D3D11_BIND_FLAG + { + D3D11_BIND_VERTEX_BUFFER = 0x1L, + D3D11_BIND_INDEX_BUFFER = 0x2L, + D3D11_BIND_CONSTANT_BUFFER = 0x4L, + D3D11_BIND_SHADER_RESOURCE = 0x8L, + D3D11_BIND_STREAM_OUTPUT = 0x10L, + D3D11_BIND_RENDER_TARGET = 0x20L, + D3D11_BIND_DEPTH_STENCIL = 0x40L, + D3D11_BIND_UNORDERED_ACCESS = 0x80L, + D3D11_BIND_DECODER = 0x200L, + D3D11_BIND_VIDEO_ENCODER = 0x400L + } D3D11_BIND_FLAG; + +typedef +enum D3D11_CPU_ACCESS_FLAG + { + D3D11_CPU_ACCESS_WRITE = 0x10000L, + D3D11_CPU_ACCESS_READ = 0x20000L + } D3D11_CPU_ACCESS_FLAG; + +typedef +enum D3D11_RESOURCE_MISC_FLAG + { + D3D11_RESOURCE_MISC_GENERATE_MIPS = 0x1L, + D3D11_RESOURCE_MISC_SHARED = 0x2L, + D3D11_RESOURCE_MISC_TEXTURECUBE = 0x4L, + D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10L, + D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20L, + D3D11_RESOURCE_MISC_BUFFER_STRUCTURED = 0x40L, + D3D11_RESOURCE_MISC_RESOURCE_CLAMP = 0x80L, + D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100L, + D3D11_RESOURCE_MISC_GDI_COMPATIBLE = 0x200L, + D3D11_RESOURCE_MISC_SHARED_NTHANDLE = 0x800L, + D3D11_RESOURCE_MISC_RESTRICTED_CONTENT = 0x1000L, + D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE = 0x2000L, + D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER = 0x4000L, + D3D11_RESOURCE_MISC_GUARDED = 0x8000L, + D3D11_RESOURCE_MISC_TILE_POOL = 0x20000L, + D3D11_RESOURCE_MISC_TILED = 0x40000L, + D3D11_RESOURCE_MISC_HW_PROTECTED = 0x80000L + } D3D11_RESOURCE_MISC_FLAG; + +typedef +enum D3D11_MAP + { + D3D11_MAP_READ = 1, + D3D11_MAP_WRITE = 2, + D3D11_MAP_READ_WRITE = 3, + D3D11_MAP_WRITE_DISCARD = 4, + D3D11_MAP_WRITE_NO_OVERWRITE = 5 + } D3D11_MAP; + +typedef +enum D3D11_MAP_FLAG + { + D3D11_MAP_FLAG_DO_NOT_WAIT = 0x100000L + } D3D11_MAP_FLAG; + +typedef +enum D3D11_RAISE_FLAG + { + D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x1L + } D3D11_RAISE_FLAG; + +typedef +enum D3D11_CLEAR_FLAG + { + D3D11_CLEAR_DEPTH = 0x1L, + D3D11_CLEAR_STENCIL = 0x2L + } D3D11_CLEAR_FLAG; + +typedef RECT D3D11_RECT; + + +} +struct CD3D11_RECT : public D3D11_RECT +{ + CD3D11_RECT() + {} + explicit CD3D11_RECT( const D3D11_RECT& o ) : + D3D11_RECT( o ) + {} + explicit CD3D11_RECT( + LONG Left, + LONG Top, + LONG Right, + LONG Bottom ) + { + left = Left; + top = Top; + right = Right; + bottom = Bottom; + } + ~CD3D11_RECT() {} + operator const D3D11_RECT&() const { return *this; } +}; +inline bool operator==( const D3D11_RECT& l, const D3D11_RECT& r ) +{ + return l.left == r.left && l.top == r.top && + l.right == r.right && l.bottom == r.bottom; +} +inline bool operator!=( const D3D11_RECT& l, const D3D11_RECT& r ) +{ return !( l == r ); } +extern "C"{ + +typedef struct D3D11_BOX + { + UINT left; + UINT top; + UINT front; + UINT right; + UINT bottom; + UINT back; + } D3D11_BOX; + + +} +struct CD3D11_BOX : public D3D11_BOX +{ + CD3D11_BOX() + {} + explicit CD3D11_BOX( const D3D11_BOX& o ) : + D3D11_BOX( o ) + {} + explicit CD3D11_BOX( + LONG Left, + LONG Top, + LONG Front, + LONG Right, + LONG Bottom, + LONG Back ) + { + left = Left; + top = Top; + front = Front; + right = Right; + bottom = Bottom; + back = Back; + } + ~CD3D11_BOX() {} + operator const D3D11_BOX&() const { return *this; } +}; +inline bool operator==( const D3D11_BOX& l, const D3D11_BOX& r ) +{ + return l.left == r.left && l.top == r.top && l.front == r.front && + l.right == r.right && l.bottom == r.bottom && l.back == r.back; +} +inline bool operator!=( const D3D11_BOX& l, const D3D11_BOX& r ) +{ return !( l == r ); } +extern "C"{ + + + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0000_v0_0_s_ifspec; +# 1380 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11DeviceChild; + + + + struct __declspec(uuid("1841e5c8-16b0-489b-bcc8-44cfb0d5deae")) __declspec(novtable) + ID3D11DeviceChild : public IUnknown + { + public: + virtual void __stdcall GetDevice( + + ID3D11Device **ppDevice) = 0; + + virtual HRESULT __stdcall GetPrivateData( + + const GUID & guid, + + UINT *pDataSize, + + void *pData) = 0; + + virtual HRESULT __stdcall SetPrivateData( + + const GUID & guid, + + UINT DataSize, + + const void *pData) = 0; + + virtual HRESULT __stdcall SetPrivateDataInterface( + + const GUID & guid, + + const IUnknown *pData) = 0; + + }; +# 1514 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef +enum D3D11_COMPARISON_FUNC + { + D3D11_COMPARISON_NEVER = 1, + D3D11_COMPARISON_LESS = 2, + D3D11_COMPARISON_EQUAL = 3, + D3D11_COMPARISON_LESS_EQUAL = 4, + D3D11_COMPARISON_GREATER = 5, + D3D11_COMPARISON_NOT_EQUAL = 6, + D3D11_COMPARISON_GREATER_EQUAL = 7, + D3D11_COMPARISON_ALWAYS = 8 + } D3D11_COMPARISON_FUNC; + +typedef +enum D3D11_DEPTH_WRITE_MASK + { + D3D11_DEPTH_WRITE_MASK_ZERO = 0, + D3D11_DEPTH_WRITE_MASK_ALL = 1 + } D3D11_DEPTH_WRITE_MASK; + +typedef +enum D3D11_STENCIL_OP + { + D3D11_STENCIL_OP_KEEP = 1, + D3D11_STENCIL_OP_ZERO = 2, + D3D11_STENCIL_OP_REPLACE = 3, + D3D11_STENCIL_OP_INCR_SAT = 4, + D3D11_STENCIL_OP_DECR_SAT = 5, + D3D11_STENCIL_OP_INVERT = 6, + D3D11_STENCIL_OP_INCR = 7, + D3D11_STENCIL_OP_DECR = 8 + } D3D11_STENCIL_OP; + +typedef struct D3D11_DEPTH_STENCILOP_DESC + { + D3D11_STENCIL_OP StencilFailOp; + D3D11_STENCIL_OP StencilDepthFailOp; + D3D11_STENCIL_OP StencilPassOp; + D3D11_COMPARISON_FUNC StencilFunc; + } D3D11_DEPTH_STENCILOP_DESC; + +typedef struct D3D11_DEPTH_STENCIL_DESC + { + BOOL DepthEnable; + D3D11_DEPTH_WRITE_MASK DepthWriteMask; + D3D11_COMPARISON_FUNC DepthFunc; + BOOL StencilEnable; + UINT8 StencilReadMask; + UINT8 StencilWriteMask; + D3D11_DEPTH_STENCILOP_DESC FrontFace; + D3D11_DEPTH_STENCILOP_DESC BackFace; + } D3D11_DEPTH_STENCIL_DESC; + + +} +struct CD3D11_DEPTH_STENCIL_DESC : public D3D11_DEPTH_STENCIL_DESC +{ + CD3D11_DEPTH_STENCIL_DESC() + {} + explicit CD3D11_DEPTH_STENCIL_DESC( const D3D11_DEPTH_STENCIL_DESC& o ) : + D3D11_DEPTH_STENCIL_DESC( o ) + {} + explicit CD3D11_DEPTH_STENCIL_DESC( CD3D11_DEFAULT ) + { + DepthEnable = 1; + DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL; + DepthFunc = D3D11_COMPARISON_LESS; + StencilEnable = 0; + StencilReadMask = ( 0xff ); + StencilWriteMask = ( 0xff ); + const D3D11_DEPTH_STENCILOP_DESC defaultStencilOp = + { D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_COMPARISON_ALWAYS }; + FrontFace = defaultStencilOp; + BackFace = defaultStencilOp; + } + explicit CD3D11_DEPTH_STENCIL_DESC( + BOOL depthEnable, + D3D11_DEPTH_WRITE_MASK depthWriteMask, + D3D11_COMPARISON_FUNC depthFunc, + BOOL stencilEnable, + UINT8 stencilReadMask, + UINT8 stencilWriteMask, + D3D11_STENCIL_OP frontStencilFailOp, + D3D11_STENCIL_OP frontStencilDepthFailOp, + D3D11_STENCIL_OP frontStencilPassOp, + D3D11_COMPARISON_FUNC frontStencilFunc, + D3D11_STENCIL_OP backStencilFailOp, + D3D11_STENCIL_OP backStencilDepthFailOp, + D3D11_STENCIL_OP backStencilPassOp, + D3D11_COMPARISON_FUNC backStencilFunc ) + { + DepthEnable = depthEnable; + DepthWriteMask = depthWriteMask; + DepthFunc = depthFunc; + StencilEnable = stencilEnable; + StencilReadMask = stencilReadMask; + StencilWriteMask = stencilWriteMask; + FrontFace.StencilFailOp = frontStencilFailOp; + FrontFace.StencilDepthFailOp = frontStencilDepthFailOp; + FrontFace.StencilPassOp = frontStencilPassOp; + FrontFace.StencilFunc = frontStencilFunc; + BackFace.StencilFailOp = backStencilFailOp; + BackFace.StencilDepthFailOp = backStencilDepthFailOp; + BackFace.StencilPassOp = backStencilPassOp; + BackFace.StencilFunc = backStencilFunc; + } + ~CD3D11_DEPTH_STENCIL_DESC() {} + operator const D3D11_DEPTH_STENCIL_DESC&() const { return *this; } +}; +extern "C"{ + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0001_v0_0_s_ifspec; +# 1637 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11DepthStencilState; + + + + struct __declspec(uuid("03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1")) __declspec(novtable) + ID3D11DepthStencilState : public ID3D11DeviceChild + { + public: + virtual void __stdcall GetDesc( + + D3D11_DEPTH_STENCIL_DESC *pDesc) = 0; + + }; +# 1758 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef +enum D3D11_BLEND + { + D3D11_BLEND_ZERO = 1, + D3D11_BLEND_ONE = 2, + D3D11_BLEND_SRC_COLOR = 3, + D3D11_BLEND_INV_SRC_COLOR = 4, + D3D11_BLEND_SRC_ALPHA = 5, + D3D11_BLEND_INV_SRC_ALPHA = 6, + D3D11_BLEND_DEST_ALPHA = 7, + D3D11_BLEND_INV_DEST_ALPHA = 8, + D3D11_BLEND_DEST_COLOR = 9, + D3D11_BLEND_INV_DEST_COLOR = 10, + D3D11_BLEND_SRC_ALPHA_SAT = 11, + D3D11_BLEND_BLEND_FACTOR = 14, + D3D11_BLEND_INV_BLEND_FACTOR = 15, + D3D11_BLEND_SRC1_COLOR = 16, + D3D11_BLEND_INV_SRC1_COLOR = 17, + D3D11_BLEND_SRC1_ALPHA = 18, + D3D11_BLEND_INV_SRC1_ALPHA = 19 + } D3D11_BLEND; + +typedef +enum D3D11_BLEND_OP + { + D3D11_BLEND_OP_ADD = 1, + D3D11_BLEND_OP_SUBTRACT = 2, + D3D11_BLEND_OP_REV_SUBTRACT = 3, + D3D11_BLEND_OP_MIN = 4, + D3D11_BLEND_OP_MAX = 5 + } D3D11_BLEND_OP; + +typedef +enum D3D11_COLOR_WRITE_ENABLE + { + D3D11_COLOR_WRITE_ENABLE_RED = 1, + D3D11_COLOR_WRITE_ENABLE_GREEN = 2, + D3D11_COLOR_WRITE_ENABLE_BLUE = 4, + D3D11_COLOR_WRITE_ENABLE_ALPHA = 8, + D3D11_COLOR_WRITE_ENABLE_ALL = ( ( ( D3D11_COLOR_WRITE_ENABLE_RED | D3D11_COLOR_WRITE_ENABLE_GREEN ) | D3D11_COLOR_WRITE_ENABLE_BLUE ) | D3D11_COLOR_WRITE_ENABLE_ALPHA ) + } D3D11_COLOR_WRITE_ENABLE; + +typedef struct D3D11_RENDER_TARGET_BLEND_DESC + { + BOOL BlendEnable; + D3D11_BLEND SrcBlend; + D3D11_BLEND DestBlend; + D3D11_BLEND_OP BlendOp; + D3D11_BLEND SrcBlendAlpha; + D3D11_BLEND DestBlendAlpha; + D3D11_BLEND_OP BlendOpAlpha; + UINT8 RenderTargetWriteMask; + } D3D11_RENDER_TARGET_BLEND_DESC; + +typedef struct D3D11_BLEND_DESC + { + BOOL AlphaToCoverageEnable; + BOOL IndependentBlendEnable; + D3D11_RENDER_TARGET_BLEND_DESC RenderTarget[ 8 ]; + } D3D11_BLEND_DESC; + + + + +} +struct CD3D11_BLEND_DESC : public D3D11_BLEND_DESC +{ + CD3D11_BLEND_DESC() + {} + explicit CD3D11_BLEND_DESC( const D3D11_BLEND_DESC& o ) : + D3D11_BLEND_DESC( o ) + {} + explicit CD3D11_BLEND_DESC( CD3D11_DEFAULT ) + { + AlphaToCoverageEnable = 0; + IndependentBlendEnable = 0; + const D3D11_RENDER_TARGET_BLEND_DESC defaultRenderTargetBlendDesc = + { + 0, + D3D11_BLEND_ONE, D3D11_BLEND_ZERO, D3D11_BLEND_OP_ADD, + D3D11_BLEND_ONE, D3D11_BLEND_ZERO, D3D11_BLEND_OP_ADD, + D3D11_COLOR_WRITE_ENABLE_ALL, + }; + for (UINT i = 0; i < ( 8 ); ++i) + RenderTarget[ i ] = defaultRenderTargetBlendDesc; + } + ~CD3D11_BLEND_DESC() {} + operator const D3D11_BLEND_DESC&() const { return *this; } +}; +extern "C"{ + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0002_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0002_v0_0_s_ifspec; +# 1861 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11BlendState; + + + + struct __declspec(uuid("75b68faa-347d-4159-8f45-a0640f01cd9a")) __declspec(novtable) + ID3D11BlendState : public ID3D11DeviceChild + { + public: + virtual void __stdcall GetDesc( + + D3D11_BLEND_DESC *pDesc) = 0; + + }; +# 1982 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef struct D3D11_RASTERIZER_DESC + { + D3D11_FILL_MODE FillMode; + D3D11_CULL_MODE CullMode; + BOOL FrontCounterClockwise; + INT DepthBias; + FLOAT DepthBiasClamp; + FLOAT SlopeScaledDepthBias; + BOOL DepthClipEnable; + BOOL ScissorEnable; + BOOL MultisampleEnable; + BOOL AntialiasedLineEnable; + } D3D11_RASTERIZER_DESC; + + +} +struct CD3D11_RASTERIZER_DESC : public D3D11_RASTERIZER_DESC +{ + CD3D11_RASTERIZER_DESC() + {} + explicit CD3D11_RASTERIZER_DESC( const D3D11_RASTERIZER_DESC& o ) : + D3D11_RASTERIZER_DESC( o ) + {} + explicit CD3D11_RASTERIZER_DESC( CD3D11_DEFAULT ) + { + FillMode = D3D11_FILL_SOLID; + CullMode = D3D11_CULL_BACK; + FrontCounterClockwise = 0; + DepthBias = ( 0 ); + DepthBiasClamp = ( 0.0f ); + SlopeScaledDepthBias = ( 0.0f ); + DepthClipEnable = 1; + ScissorEnable = 0; + MultisampleEnable = 0; + AntialiasedLineEnable = 0; + } + explicit CD3D11_RASTERIZER_DESC( + D3D11_FILL_MODE fillMode, + D3D11_CULL_MODE cullMode, + BOOL frontCounterClockwise, + INT depthBias, + FLOAT depthBiasClamp, + FLOAT slopeScaledDepthBias, + BOOL depthClipEnable, + BOOL scissorEnable, + BOOL multisampleEnable, + BOOL antialiasedLineEnable ) + { + FillMode = fillMode; + CullMode = cullMode; + FrontCounterClockwise = frontCounterClockwise; + DepthBias = depthBias; + DepthBiasClamp = depthBiasClamp; + SlopeScaledDepthBias = slopeScaledDepthBias; + DepthClipEnable = depthClipEnable; + ScissorEnable = scissorEnable; + MultisampleEnable = multisampleEnable; + AntialiasedLineEnable = antialiasedLineEnable; + } + ~CD3D11_RASTERIZER_DESC() {} + operator const D3D11_RASTERIZER_DESC&() const { return *this; } +}; +extern "C"{ + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0003_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0003_v0_0_s_ifspec; +# 2058 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11RasterizerState; + + + + struct __declspec(uuid("9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7")) __declspec(novtable) + ID3D11RasterizerState : public ID3D11DeviceChild + { + public: + virtual void __stdcall GetDesc( + + D3D11_RASTERIZER_DESC *pDesc) = 0; + + }; +# 2180 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +} +inline UINT D3D11CalcSubresource( UINT MipSlice, UINT ArraySlice, UINT MipLevels ) +{ return MipSlice + ArraySlice * MipLevels; } +extern "C"{ + +typedef struct D3D11_SUBRESOURCE_DATA + { + const void *pSysMem; + UINT SysMemPitch; + UINT SysMemSlicePitch; + } D3D11_SUBRESOURCE_DATA; + +typedef struct D3D11_MAPPED_SUBRESOURCE + { + void *pData; + UINT RowPitch; + UINT DepthPitch; + } D3D11_MAPPED_SUBRESOURCE; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0004_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0004_v0_0_s_ifspec; +# 2211 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11Resource; + + + + struct __declspec(uuid("dc8e63f3-d12b-4952-b47b-5e45026a862d")) __declspec(novtable) + ID3D11Resource : public ID3D11DeviceChild + { + public: + virtual void __stdcall GetType( + + D3D11_RESOURCE_DIMENSION *pResourceDimension) = 0; + + virtual void __stdcall SetEvictionPriority( + + UINT EvictionPriority) = 0; + + virtual UINT __stdcall GetEvictionPriority( void) = 0; + + }; +# 2352 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef struct D3D11_BUFFER_DESC + { + UINT ByteWidth; + D3D11_USAGE Usage; + UINT BindFlags; + UINT CPUAccessFlags; + UINT MiscFlags; + UINT StructureByteStride; + } D3D11_BUFFER_DESC; + + +} +struct CD3D11_BUFFER_DESC : public D3D11_BUFFER_DESC +{ + CD3D11_BUFFER_DESC() + {} + explicit CD3D11_BUFFER_DESC( const D3D11_BUFFER_DESC& o ) : + D3D11_BUFFER_DESC( o ) + {} + explicit CD3D11_BUFFER_DESC( + UINT byteWidth, + UINT bindFlags, + D3D11_USAGE usage = D3D11_USAGE_DEFAULT, + UINT cpuaccessFlags = 0, + UINT miscFlags = 0, + UINT structureByteStride = 0 ) + { + ByteWidth = byteWidth; + Usage = usage; + BindFlags = bindFlags; + CPUAccessFlags = cpuaccessFlags ; + MiscFlags = miscFlags; + StructureByteStride = structureByteStride; + } + ~CD3D11_BUFFER_DESC() {} + operator const D3D11_BUFFER_DESC&() const { return *this; } +}; +extern "C"{ + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0005_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0005_v0_0_s_ifspec; +# 2403 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11Buffer; + + + + struct __declspec(uuid("48570b85-d1ee-4fcd-a250-eb350722b037")) __declspec(novtable) + ID3D11Buffer : public ID3D11Resource + { + public: + virtual void __stdcall GetDesc( + + D3D11_BUFFER_DESC *pDesc) = 0; + + }; +# 2547 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef struct D3D11_TEXTURE1D_DESC + { + UINT Width; + UINT MipLevels; + UINT ArraySize; + DXGI_FORMAT Format; + D3D11_USAGE Usage; + UINT BindFlags; + UINT CPUAccessFlags; + UINT MiscFlags; + } D3D11_TEXTURE1D_DESC; + + +} +struct CD3D11_TEXTURE1D_DESC : public D3D11_TEXTURE1D_DESC +{ + CD3D11_TEXTURE1D_DESC() + {} + explicit CD3D11_TEXTURE1D_DESC( const D3D11_TEXTURE1D_DESC& o ) : + D3D11_TEXTURE1D_DESC( o ) + {} + explicit CD3D11_TEXTURE1D_DESC( + DXGI_FORMAT format, + UINT width, + UINT arraySize = 1, + UINT mipLevels = 0, + UINT bindFlags = D3D11_BIND_SHADER_RESOURCE, + D3D11_USAGE usage = D3D11_USAGE_DEFAULT, + UINT cpuaccessFlags= 0, + UINT miscFlags = 0 ) + { + Width = width; + MipLevels = mipLevels; + ArraySize = arraySize; + Format = format; + Usage = usage; + BindFlags = bindFlags; + CPUAccessFlags = cpuaccessFlags; + MiscFlags = miscFlags; + } + ~CD3D11_TEXTURE1D_DESC() {} + operator const D3D11_TEXTURE1D_DESC&() const { return *this; } +}; +extern "C"{ + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0006_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0006_v0_0_s_ifspec; +# 2604 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11Texture1D; + + + + struct __declspec(uuid("f8fb5c27-c6b3-4f75-a4c8-439af2ef564c")) __declspec(novtable) + ID3D11Texture1D : public ID3D11Resource + { + public: + virtual void __stdcall GetDesc( + + D3D11_TEXTURE1D_DESC *pDesc) = 0; + + }; +# 2748 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef struct D3D11_TEXTURE2D_DESC + { + UINT Width; + UINT Height; + UINT MipLevels; + UINT ArraySize; + DXGI_FORMAT Format; + DXGI_SAMPLE_DESC SampleDesc; + D3D11_USAGE Usage; + UINT BindFlags; + UINT CPUAccessFlags; + UINT MiscFlags; + } D3D11_TEXTURE2D_DESC; + + +} +struct CD3D11_TEXTURE2D_DESC : public D3D11_TEXTURE2D_DESC +{ + CD3D11_TEXTURE2D_DESC() + {} + explicit CD3D11_TEXTURE2D_DESC( const D3D11_TEXTURE2D_DESC& o ) : + D3D11_TEXTURE2D_DESC( o ) + {} + explicit CD3D11_TEXTURE2D_DESC( + DXGI_FORMAT format, + UINT width, + UINT height, + UINT arraySize = 1, + UINT mipLevels = 0, + UINT bindFlags = D3D11_BIND_SHADER_RESOURCE, + D3D11_USAGE usage = D3D11_USAGE_DEFAULT, + UINT cpuaccessFlags = 0, + UINT sampleCount = 1, + UINT sampleQuality = 0, + UINT miscFlags = 0 ) + { + Width = width; + Height = height; + MipLevels = mipLevels; + ArraySize = arraySize; + Format = format; + SampleDesc.Count = sampleCount; + SampleDesc.Quality = sampleQuality; + Usage = usage; + BindFlags = bindFlags; + CPUAccessFlags = cpuaccessFlags; + MiscFlags = miscFlags; + } + ~CD3D11_TEXTURE2D_DESC() {} + operator const D3D11_TEXTURE2D_DESC&() const { return *this; } +}; +extern "C"{ + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0007_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0007_v0_0_s_ifspec; +# 2813 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11Texture2D; + + + + struct __declspec(uuid("6f15aaf2-d208-4e89-9ab4-489535d34f9c")) __declspec(novtable) + ID3D11Texture2D : public ID3D11Resource + { + public: + virtual void __stdcall GetDesc( + + D3D11_TEXTURE2D_DESC *pDesc) = 0; + + }; +# 2957 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef struct D3D11_TEXTURE3D_DESC + { + UINT Width; + UINT Height; + UINT Depth; + UINT MipLevels; + DXGI_FORMAT Format; + D3D11_USAGE Usage; + UINT BindFlags; + UINT CPUAccessFlags; + UINT MiscFlags; + } D3D11_TEXTURE3D_DESC; + + +} +struct CD3D11_TEXTURE3D_DESC : public D3D11_TEXTURE3D_DESC +{ + CD3D11_TEXTURE3D_DESC() + {} + explicit CD3D11_TEXTURE3D_DESC( const D3D11_TEXTURE3D_DESC& o ) : + D3D11_TEXTURE3D_DESC( o ) + {} + explicit CD3D11_TEXTURE3D_DESC( + DXGI_FORMAT format, + UINT width, + UINT height, + UINT depth, + UINT mipLevels = 0, + UINT bindFlags = D3D11_BIND_SHADER_RESOURCE, + D3D11_USAGE usage = D3D11_USAGE_DEFAULT, + UINT cpuaccessFlags = 0, + UINT miscFlags = 0 ) + { + Width = width; + Height = height; + Depth = depth; + MipLevels = mipLevels; + Format = format; + Usage = usage; + BindFlags = bindFlags; + CPUAccessFlags = cpuaccessFlags; + MiscFlags = miscFlags; + } + ~CD3D11_TEXTURE3D_DESC() {} + operator const D3D11_TEXTURE3D_DESC&() const { return *this; } +}; +extern "C"{ + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0008_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0008_v0_0_s_ifspec; +# 3017 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11Texture3D; + + + + struct __declspec(uuid("037e866e-f56d-4357-a8af-9dabbe6e250e")) __declspec(novtable) + ID3D11Texture3D : public ID3D11Resource + { + public: + virtual void __stdcall GetDesc( + + D3D11_TEXTURE3D_DESC *pDesc) = 0; + + }; +# 3161 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef +enum D3D11_TEXTURECUBE_FACE + { + D3D11_TEXTURECUBE_FACE_POSITIVE_X = 0, + D3D11_TEXTURECUBE_FACE_NEGATIVE_X = 1, + D3D11_TEXTURECUBE_FACE_POSITIVE_Y = 2, + D3D11_TEXTURECUBE_FACE_NEGATIVE_Y = 3, + D3D11_TEXTURECUBE_FACE_POSITIVE_Z = 4, + D3D11_TEXTURECUBE_FACE_NEGATIVE_Z = 5 + } D3D11_TEXTURECUBE_FACE; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0009_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0009_v0_0_s_ifspec; +# 3184 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11View; + + + + struct __declspec(uuid("839d1216-bb2e-412b-b7f4-a9dbebe08ed1")) __declspec(novtable) + ID3D11View : public ID3D11DeviceChild + { + public: + virtual void __stdcall GetResource( + + ID3D11Resource **ppResource) = 0; + + }; +# 3305 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef struct D3D11_BUFFER_SRV + { + union + { + UINT FirstElement; + UINT ElementOffset; + } ; + union + { + UINT NumElements; + UINT ElementWidth; + } ; + } D3D11_BUFFER_SRV; + +typedef +enum D3D11_BUFFEREX_SRV_FLAG + { + D3D11_BUFFEREX_SRV_FLAG_RAW = 0x1 + } D3D11_BUFFEREX_SRV_FLAG; + +typedef struct D3D11_BUFFEREX_SRV + { + UINT FirstElement; + UINT NumElements; + UINT Flags; + } D3D11_BUFFEREX_SRV; + +typedef struct D3D11_TEX1D_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + } D3D11_TEX1D_SRV; + +typedef struct D3D11_TEX1D_ARRAY_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + UINT FirstArraySlice; + UINT ArraySize; + } D3D11_TEX1D_ARRAY_SRV; + +typedef struct D3D11_TEX2D_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + } D3D11_TEX2D_SRV; + +typedef struct D3D11_TEX2D_ARRAY_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + UINT FirstArraySlice; + UINT ArraySize; + } D3D11_TEX2D_ARRAY_SRV; + +typedef struct D3D11_TEX3D_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + } D3D11_TEX3D_SRV; + +typedef struct D3D11_TEXCUBE_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + } D3D11_TEXCUBE_SRV; + +typedef struct D3D11_TEXCUBE_ARRAY_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + UINT First2DArrayFace; + UINT NumCubes; + } D3D11_TEXCUBE_ARRAY_SRV; + +typedef struct D3D11_TEX2DMS_SRV + { + UINT UnusedField_NothingToDefine; + } D3D11_TEX2DMS_SRV; + +typedef struct D3D11_TEX2DMS_ARRAY_SRV + { + UINT FirstArraySlice; + UINT ArraySize; + } D3D11_TEX2DMS_ARRAY_SRV; + +typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC + { + DXGI_FORMAT Format; + D3D11_SRV_DIMENSION ViewDimension; + union + { + D3D11_BUFFER_SRV Buffer; + D3D11_TEX1D_SRV Texture1D; + D3D11_TEX1D_ARRAY_SRV Texture1DArray; + D3D11_TEX2D_SRV Texture2D; + D3D11_TEX2D_ARRAY_SRV Texture2DArray; + D3D11_TEX2DMS_SRV Texture2DMS; + D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray; + D3D11_TEX3D_SRV Texture3D; + D3D11_TEXCUBE_SRV TextureCube; + D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray; + D3D11_BUFFEREX_SRV BufferEx; + } ; + } D3D11_SHADER_RESOURCE_VIEW_DESC; + + +} +struct CD3D11_SHADER_RESOURCE_VIEW_DESC : public D3D11_SHADER_RESOURCE_VIEW_DESC +{ + CD3D11_SHADER_RESOURCE_VIEW_DESC() + {} + explicit CD3D11_SHADER_RESOURCE_VIEW_DESC( const D3D11_SHADER_RESOURCE_VIEW_DESC& o ) : + D3D11_SHADER_RESOURCE_VIEW_DESC( o ) + {} + explicit CD3D11_SHADER_RESOURCE_VIEW_DESC( + D3D11_SRV_DIMENSION viewDimension, + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, + UINT mostDetailedMip = 0, + UINT mipLevels = -1, + UINT firstArraySlice = 0, + UINT arraySize = -1, + UINT flags = 0 ) + { + Format = format; + ViewDimension = viewDimension; + switch (viewDimension) + { + case D3D11_SRV_DIMENSION_BUFFER: + Buffer.FirstElement = mostDetailedMip; + Buffer.NumElements = mipLevels; + break; + case D3D11_SRV_DIMENSION_TEXTURE1D: + Texture1D.MostDetailedMip = mostDetailedMip; + Texture1D.MipLevels = mipLevels; + break; + case D3D11_SRV_DIMENSION_TEXTURE1DARRAY: + Texture1DArray.MostDetailedMip = mostDetailedMip; + Texture1DArray.MipLevels = mipLevels; + Texture1DArray.FirstArraySlice = firstArraySlice; + Texture1DArray.ArraySize = arraySize; + break; + case D3D11_SRV_DIMENSION_TEXTURE2D: + Texture2D.MostDetailedMip = mostDetailedMip; + Texture2D.MipLevels = mipLevels; + break; + case D3D11_SRV_DIMENSION_TEXTURE2DARRAY: + Texture2DArray.MostDetailedMip = mostDetailedMip; + Texture2DArray.MipLevels = mipLevels; + Texture2DArray.FirstArraySlice = firstArraySlice; + Texture2DArray.ArraySize = arraySize; + break; + case D3D11_SRV_DIMENSION_TEXTURE2DMS: + break; + case D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY: + Texture2DMSArray.FirstArraySlice = firstArraySlice; + Texture2DMSArray.ArraySize = arraySize; + break; + case D3D11_SRV_DIMENSION_TEXTURE3D: + Texture3D.MostDetailedMip = mostDetailedMip; + Texture3D.MipLevels = mipLevels; + break; + case D3D11_SRV_DIMENSION_TEXTURECUBE: + TextureCube.MostDetailedMip = mostDetailedMip; + TextureCube.MipLevels = mipLevels; + break; + case D3D11_SRV_DIMENSION_TEXTURECUBEARRAY: + TextureCubeArray.MostDetailedMip = mostDetailedMip; + TextureCubeArray.MipLevels = mipLevels; + TextureCubeArray.First2DArrayFace = firstArraySlice; + TextureCubeArray.NumCubes = arraySize; + break; + case D3D11_SRV_DIMENSION_BUFFEREX: + BufferEx.FirstElement = mostDetailedMip; + BufferEx.NumElements = mipLevels; + BufferEx.Flags = flags; + break; + default: break; + } + } + explicit CD3D11_SHADER_RESOURCE_VIEW_DESC( + ID3D11Buffer*, + DXGI_FORMAT format, + UINT firstElement, + UINT numElements, + UINT flags = 0 ) + { + Format = format; + ViewDimension = D3D11_SRV_DIMENSION_BUFFEREX; + BufferEx.FirstElement = firstElement; + BufferEx.NumElements = numElements; + BufferEx.Flags = flags; + } + explicit CD3D11_SHADER_RESOURCE_VIEW_DESC( + ID3D11Texture1D* pTex1D, + D3D11_SRV_DIMENSION viewDimension, + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, + UINT mostDetailedMip = 0, + UINT mipLevels = -1, + UINT firstArraySlice = 0, + UINT arraySize = -1 ) + { + ViewDimension = viewDimension; + if (DXGI_FORMAT_UNKNOWN == format || -1 == mipLevels || + (-1 == arraySize && D3D11_SRV_DIMENSION_TEXTURE1DARRAY == viewDimension)) + { + D3D11_TEXTURE1D_DESC TexDesc; + pTex1D->GetDesc( &TexDesc ); + if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; + if (-1 == mipLevels) mipLevels = TexDesc.MipLevels - mostDetailedMip; + if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; + } + Format = format; + switch (viewDimension) + { + case D3D11_SRV_DIMENSION_TEXTURE1D: + Texture1D.MostDetailedMip = mostDetailedMip; + Texture1D.MipLevels = mipLevels; + break; + case D3D11_SRV_DIMENSION_TEXTURE1DARRAY: + Texture1DArray.MostDetailedMip = mostDetailedMip; + Texture1DArray.MipLevels = mipLevels; + Texture1DArray.FirstArraySlice = firstArraySlice; + Texture1DArray.ArraySize = arraySize; + break; + default: break; + } + } + explicit CD3D11_SHADER_RESOURCE_VIEW_DESC( + ID3D11Texture2D* pTex2D, + D3D11_SRV_DIMENSION viewDimension, + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, + UINT mostDetailedMip = 0, + UINT mipLevels = -1, + UINT firstArraySlice = 0, + UINT arraySize = -1 ) + { + ViewDimension = viewDimension; + if (DXGI_FORMAT_UNKNOWN == format || + (-1 == mipLevels && + D3D11_SRV_DIMENSION_TEXTURE2DMS != viewDimension && + D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY != viewDimension) || + (-1 == arraySize && + (D3D11_SRV_DIMENSION_TEXTURE2DARRAY == viewDimension || + D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY == viewDimension || + D3D11_SRV_DIMENSION_TEXTURECUBEARRAY == viewDimension))) + { + D3D11_TEXTURE2D_DESC TexDesc; + pTex2D->GetDesc( &TexDesc ); + if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; + if (-1 == mipLevels) mipLevels = TexDesc.MipLevels - mostDetailedMip; + if (-1 == arraySize) + { + arraySize = TexDesc.ArraySize - firstArraySlice; + if (D3D11_SRV_DIMENSION_TEXTURECUBEARRAY == viewDimension) arraySize /= 6; + } + } + Format = format; + switch (viewDimension) + { + case D3D11_SRV_DIMENSION_TEXTURE2D: + Texture2D.MostDetailedMip = mostDetailedMip; + Texture2D.MipLevels = mipLevels; + break; + case D3D11_SRV_DIMENSION_TEXTURE2DARRAY: + Texture2DArray.MostDetailedMip = mostDetailedMip; + Texture2DArray.MipLevels = mipLevels; + Texture2DArray.FirstArraySlice = firstArraySlice; + Texture2DArray.ArraySize = arraySize; + break; + case D3D11_SRV_DIMENSION_TEXTURE2DMS: + break; + case D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY: + Texture2DMSArray.FirstArraySlice = firstArraySlice; + Texture2DMSArray.ArraySize = arraySize; + break; + case D3D11_SRV_DIMENSION_TEXTURECUBE: + TextureCube.MostDetailedMip = mostDetailedMip; + TextureCube.MipLevels = mipLevels; + break; + case D3D11_SRV_DIMENSION_TEXTURECUBEARRAY: + TextureCubeArray.MostDetailedMip = mostDetailedMip; + TextureCubeArray.MipLevels = mipLevels; + TextureCubeArray.First2DArrayFace = firstArraySlice; + TextureCubeArray.NumCubes = arraySize; + break; + default: break; + } + } + explicit CD3D11_SHADER_RESOURCE_VIEW_DESC( + ID3D11Texture3D* pTex3D, + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, + UINT mostDetailedMip = 0, + UINT mipLevels = -1 ) + { + ViewDimension = D3D11_SRV_DIMENSION_TEXTURE3D; + if (DXGI_FORMAT_UNKNOWN == format || -1 == mipLevels) + { + D3D11_TEXTURE3D_DESC TexDesc; + pTex3D->GetDesc( &TexDesc ); + if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; + if (-1 == mipLevels) mipLevels = TexDesc.MipLevels - mostDetailedMip; + } + Format = format; + Texture3D.MostDetailedMip = mostDetailedMip; + Texture3D.MipLevels = mipLevels; + } + ~CD3D11_SHADER_RESOURCE_VIEW_DESC() {} + operator const D3D11_SHADER_RESOURCE_VIEW_DESC&() const { return *this; } +}; +extern "C"{ + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0010_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0010_v0_0_s_ifspec; +# 3629 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11ShaderResourceView; + + + + struct __declspec(uuid("b0e06fe0-8192-4e1a-b1ca-36d7414710b2")) __declspec(novtable) + ID3D11ShaderResourceView : public ID3D11View + { + public: + virtual void __stdcall GetDesc( + + D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc) = 0; + + }; +# 3759 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef struct D3D11_BUFFER_RTV + { + union + { + UINT FirstElement; + UINT ElementOffset; + } ; + union + { + UINT NumElements; + UINT ElementWidth; + } ; + } D3D11_BUFFER_RTV; + +typedef struct D3D11_TEX1D_RTV + { + UINT MipSlice; + } D3D11_TEX1D_RTV; + +typedef struct D3D11_TEX1D_ARRAY_RTV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + } D3D11_TEX1D_ARRAY_RTV; + +typedef struct D3D11_TEX2D_RTV + { + UINT MipSlice; + } D3D11_TEX2D_RTV; + +typedef struct D3D11_TEX2DMS_RTV + { + UINT UnusedField_NothingToDefine; + } D3D11_TEX2DMS_RTV; + +typedef struct D3D11_TEX2D_ARRAY_RTV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + } D3D11_TEX2D_ARRAY_RTV; + +typedef struct D3D11_TEX2DMS_ARRAY_RTV + { + UINT FirstArraySlice; + UINT ArraySize; + } D3D11_TEX2DMS_ARRAY_RTV; + +typedef struct D3D11_TEX3D_RTV + { + UINT MipSlice; + UINT FirstWSlice; + UINT WSize; + } D3D11_TEX3D_RTV; + +typedef struct D3D11_RENDER_TARGET_VIEW_DESC + { + DXGI_FORMAT Format; + D3D11_RTV_DIMENSION ViewDimension; + union + { + D3D11_BUFFER_RTV Buffer; + D3D11_TEX1D_RTV Texture1D; + D3D11_TEX1D_ARRAY_RTV Texture1DArray; + D3D11_TEX2D_RTV Texture2D; + D3D11_TEX2D_ARRAY_RTV Texture2DArray; + D3D11_TEX2DMS_RTV Texture2DMS; + D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray; + D3D11_TEX3D_RTV Texture3D; + } ; + } D3D11_RENDER_TARGET_VIEW_DESC; + + +} +struct CD3D11_RENDER_TARGET_VIEW_DESC : public D3D11_RENDER_TARGET_VIEW_DESC +{ + CD3D11_RENDER_TARGET_VIEW_DESC() + {} + explicit CD3D11_RENDER_TARGET_VIEW_DESC( const D3D11_RENDER_TARGET_VIEW_DESC& o ) : + D3D11_RENDER_TARGET_VIEW_DESC( o ) + {} + explicit CD3D11_RENDER_TARGET_VIEW_DESC( + D3D11_RTV_DIMENSION viewDimension, + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, + UINT mipSlice = 0, + UINT firstArraySlice = 0, + UINT arraySize = -1 ) + { + Format = format; + ViewDimension = viewDimension; + switch (viewDimension) + { + case D3D11_RTV_DIMENSION_BUFFER: + Buffer.FirstElement = mipSlice; + Buffer.NumElements = firstArraySlice; + break; + case D3D11_RTV_DIMENSION_TEXTURE1D: + Texture1D.MipSlice = mipSlice; + break; + case D3D11_RTV_DIMENSION_TEXTURE1DARRAY: + Texture1DArray.MipSlice = mipSlice; + Texture1DArray.FirstArraySlice = firstArraySlice; + Texture1DArray.ArraySize = arraySize; + break; + case D3D11_RTV_DIMENSION_TEXTURE2D: + Texture2D.MipSlice = mipSlice; + break; + case D3D11_RTV_DIMENSION_TEXTURE2DARRAY: + Texture2DArray.MipSlice = mipSlice; + Texture2DArray.FirstArraySlice = firstArraySlice; + Texture2DArray.ArraySize = arraySize; + break; + case D3D11_RTV_DIMENSION_TEXTURE2DMS: + break; + case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY: + Texture2DMSArray.FirstArraySlice = firstArraySlice; + Texture2DMSArray.ArraySize = arraySize; + break; + case D3D11_RTV_DIMENSION_TEXTURE3D: + Texture3D.MipSlice = mipSlice; + Texture3D.FirstWSlice = firstArraySlice; + Texture3D.WSize = arraySize; + break; + default: break; + } + } + explicit CD3D11_RENDER_TARGET_VIEW_DESC( + ID3D11Buffer*, + DXGI_FORMAT format, + UINT firstElement, + UINT numElements ) + { + Format = format; + ViewDimension = D3D11_RTV_DIMENSION_BUFFER; + Buffer.FirstElement = firstElement; + Buffer.NumElements = numElements; + } + explicit CD3D11_RENDER_TARGET_VIEW_DESC( + ID3D11Texture1D* pTex1D, + D3D11_RTV_DIMENSION viewDimension, + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, + UINT mipSlice = 0, + UINT firstArraySlice = 0, + UINT arraySize = -1 ) + { + ViewDimension = viewDimension; + if (DXGI_FORMAT_UNKNOWN == format || + (-1 == arraySize && D3D11_RTV_DIMENSION_TEXTURE1DARRAY == viewDimension)) + { + D3D11_TEXTURE1D_DESC TexDesc; + pTex1D->GetDesc( &TexDesc ); + if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; + if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; + } + Format = format; + switch (viewDimension) + { + case D3D11_RTV_DIMENSION_TEXTURE1D: + Texture1D.MipSlice = mipSlice; + break; + case D3D11_RTV_DIMENSION_TEXTURE1DARRAY: + Texture1DArray.MipSlice = mipSlice; + Texture1DArray.FirstArraySlice = firstArraySlice; + Texture1DArray.ArraySize = arraySize; + break; + default: break; + } + } + explicit CD3D11_RENDER_TARGET_VIEW_DESC( + ID3D11Texture2D* pTex2D, + D3D11_RTV_DIMENSION viewDimension, + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, + UINT mipSlice = 0, + UINT firstArraySlice = 0, + UINT arraySize = -1 ) + { + ViewDimension = viewDimension; + if (DXGI_FORMAT_UNKNOWN == format || + (-1 == arraySize && + (D3D11_RTV_DIMENSION_TEXTURE2DARRAY == viewDimension || + D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY == viewDimension))) + { + D3D11_TEXTURE2D_DESC TexDesc; + pTex2D->GetDesc( &TexDesc ); + if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; + if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; + } + Format = format; + switch (viewDimension) + { + case D3D11_RTV_DIMENSION_TEXTURE2D: + Texture2D.MipSlice = mipSlice; + break; + case D3D11_RTV_DIMENSION_TEXTURE2DARRAY: + Texture2DArray.MipSlice = mipSlice; + Texture2DArray.FirstArraySlice = firstArraySlice; + Texture2DArray.ArraySize = arraySize; + break; + case D3D11_RTV_DIMENSION_TEXTURE2DMS: + break; + case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY: + Texture2DMSArray.FirstArraySlice = firstArraySlice; + Texture2DMSArray.ArraySize = arraySize; + break; + default: break; + } + } + explicit CD3D11_RENDER_TARGET_VIEW_DESC( + ID3D11Texture3D* pTex3D, + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, + UINT mipSlice = 0, + UINT firstWSlice = 0, + UINT wSize = -1 ) + { + ViewDimension = D3D11_RTV_DIMENSION_TEXTURE3D; + if (DXGI_FORMAT_UNKNOWN == format || -1 == wSize) + { + D3D11_TEXTURE3D_DESC TexDesc; + pTex3D->GetDesc( &TexDesc ); + if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; + if (-1 == wSize) wSize = TexDesc.Depth - firstWSlice; + } + Format = format; + Texture3D.MipSlice = mipSlice; + Texture3D.FirstWSlice = firstWSlice; + Texture3D.WSize = wSize; + } + ~CD3D11_RENDER_TARGET_VIEW_DESC() {} + operator const D3D11_RENDER_TARGET_VIEW_DESC&() const { return *this; } +}; +extern "C"{ + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0011_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0011_v0_0_s_ifspec; +# 4004 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11RenderTargetView; + + + + struct __declspec(uuid("dfdba067-0b8d-4865-875b-d7b4516cc164")) __declspec(novtable) + ID3D11RenderTargetView : public ID3D11View + { + public: + virtual void __stdcall GetDesc( + + D3D11_RENDER_TARGET_VIEW_DESC *pDesc) = 0; + + }; +# 4135 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +} +struct CD3D11_VIEWPORT : public D3D11_VIEWPORT +{ + CD3D11_VIEWPORT() + {} + explicit CD3D11_VIEWPORT( const D3D11_VIEWPORT& o ) : + D3D11_VIEWPORT( o ) + {} + explicit CD3D11_VIEWPORT( + FLOAT topLeftX, + FLOAT topLeftY, + FLOAT width, + FLOAT height, + FLOAT minDepth = ( 0.0f ), + FLOAT maxDepth = ( 1.0f ) ) + { + TopLeftX = topLeftX; + TopLeftY = topLeftY; + Width = width; + Height = height; + MinDepth = minDepth; + MaxDepth = maxDepth; + } + explicit CD3D11_VIEWPORT( + ID3D11Buffer*, + ID3D11RenderTargetView* pRTView, + FLOAT topLeftX = 0.0f, + FLOAT minDepth = ( 0.0f ), + FLOAT maxDepth = ( 1.0f ) ) + { + D3D11_RENDER_TARGET_VIEW_DESC RTVDesc; + pRTView->GetDesc( &RTVDesc ); + UINT NumElements = 0; + switch (RTVDesc.ViewDimension) + { + case D3D11_RTV_DIMENSION_BUFFER: + NumElements = RTVDesc.Buffer.NumElements; + break; + default: break; + } + TopLeftX = topLeftX; + TopLeftY = 0.0f; + Width = NumElements - topLeftX; + Height = 1.0f; + MinDepth = minDepth; + MaxDepth = maxDepth; + } + explicit CD3D11_VIEWPORT( + ID3D11Texture1D* pTex1D, + ID3D11RenderTargetView* pRTView, + FLOAT topLeftX = 0.0f, + FLOAT minDepth = ( 0.0f ), + FLOAT maxDepth = ( 1.0f ) ) + { + D3D11_TEXTURE1D_DESC TexDesc; + pTex1D->GetDesc( &TexDesc ); + D3D11_RENDER_TARGET_VIEW_DESC RTVDesc; + pRTView->GetDesc( &RTVDesc ); + UINT MipSlice = 0; + switch (RTVDesc.ViewDimension) + { + case D3D11_RTV_DIMENSION_TEXTURE1D: + MipSlice = RTVDesc.Texture1D.MipSlice; + break; + case D3D11_RTV_DIMENSION_TEXTURE1DARRAY: + MipSlice = RTVDesc.Texture1DArray.MipSlice; + break; + default: break; + } + const UINT SubResourceWidth = TexDesc.Width / (UINT( 1 ) << MipSlice); + TopLeftX = topLeftX; + TopLeftY = 0.0f; + Width = (SubResourceWidth ? SubResourceWidth : 1) - topLeftX; + Height = 1.0f; + MinDepth = minDepth; + MaxDepth = maxDepth; + } + explicit CD3D11_VIEWPORT( + ID3D11Texture2D* pTex2D, + ID3D11RenderTargetView* pRTView, + FLOAT topLeftX = 0.0f, + FLOAT topLeftY = 0.0f, + FLOAT minDepth = ( 0.0f ), + FLOAT maxDepth = ( 1.0f ) ) + { + D3D11_TEXTURE2D_DESC TexDesc; + pTex2D->GetDesc( &TexDesc ); + D3D11_RENDER_TARGET_VIEW_DESC RTVDesc; + pRTView->GetDesc( &RTVDesc ); + UINT MipSlice = 0; + switch (RTVDesc.ViewDimension) + { + case D3D11_RTV_DIMENSION_TEXTURE2D: + MipSlice = RTVDesc.Texture2D.MipSlice; + break; + case D3D11_RTV_DIMENSION_TEXTURE2DARRAY: + MipSlice = RTVDesc.Texture2DArray.MipSlice; + break; + case D3D11_RTV_DIMENSION_TEXTURE2DMS: + case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY: + break; + default: break; + } + const UINT SubResourceWidth = TexDesc.Width / (UINT( 1 ) << MipSlice); + const UINT SubResourceHeight = TexDesc.Height / (UINT( 1 ) << MipSlice); + TopLeftX = topLeftX; + TopLeftY = topLeftY; + Width = (SubResourceWidth ? SubResourceWidth : 1) - topLeftX; + Height = (SubResourceHeight ? SubResourceHeight : 1) - topLeftY; + MinDepth = minDepth; + MaxDepth = maxDepth; + } + explicit CD3D11_VIEWPORT( + ID3D11Texture3D* pTex3D, + ID3D11RenderTargetView* pRTView, + FLOAT topLeftX = 0.0f, + FLOAT topLeftY = 0.0f, + FLOAT minDepth = ( 0.0f ), + FLOAT maxDepth = ( 1.0f ) ) + { + D3D11_TEXTURE3D_DESC TexDesc; + pTex3D->GetDesc( &TexDesc ); + D3D11_RENDER_TARGET_VIEW_DESC RTVDesc; + pRTView->GetDesc( &RTVDesc ); + UINT MipSlice = 0; + switch (RTVDesc.ViewDimension) + { + case D3D11_RTV_DIMENSION_TEXTURE3D: + MipSlice = RTVDesc.Texture3D.MipSlice; + break; + default: break; + } + const UINT SubResourceWidth = TexDesc.Width / (UINT( 1 ) << MipSlice); + const UINT SubResourceHeight = TexDesc.Height / (UINT( 1 ) << MipSlice); + TopLeftX = topLeftX; + TopLeftY = topLeftY; + Width = (SubResourceWidth ? SubResourceWidth : 1) - topLeftX; + Height = (SubResourceHeight ? SubResourceHeight : 1) - topLeftY; + MinDepth = minDepth; + MaxDepth = maxDepth; + } + ~CD3D11_VIEWPORT() {} + operator const D3D11_VIEWPORT&() const { return *this; } +}; +extern "C"{ + +typedef struct D3D11_TEX1D_DSV + { + UINT MipSlice; + } D3D11_TEX1D_DSV; + +typedef struct D3D11_TEX1D_ARRAY_DSV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + } D3D11_TEX1D_ARRAY_DSV; + +typedef struct D3D11_TEX2D_DSV + { + UINT MipSlice; + } D3D11_TEX2D_DSV; + +typedef struct D3D11_TEX2D_ARRAY_DSV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + } D3D11_TEX2D_ARRAY_DSV; + +typedef struct D3D11_TEX2DMS_DSV + { + UINT UnusedField_NothingToDefine; + } D3D11_TEX2DMS_DSV; + +typedef struct D3D11_TEX2DMS_ARRAY_DSV + { + UINT FirstArraySlice; + UINT ArraySize; + } D3D11_TEX2DMS_ARRAY_DSV; + +typedef +enum D3D11_DSV_FLAG + { + D3D11_DSV_READ_ONLY_DEPTH = 0x1L, + D3D11_DSV_READ_ONLY_STENCIL = 0x2L + } D3D11_DSV_FLAG; + +typedef struct D3D11_DEPTH_STENCIL_VIEW_DESC + { + DXGI_FORMAT Format; + D3D11_DSV_DIMENSION ViewDimension; + UINT Flags; + union + { + D3D11_TEX1D_DSV Texture1D; + D3D11_TEX1D_ARRAY_DSV Texture1DArray; + D3D11_TEX2D_DSV Texture2D; + D3D11_TEX2D_ARRAY_DSV Texture2DArray; + D3D11_TEX2DMS_DSV Texture2DMS; + D3D11_TEX2DMS_ARRAY_DSV Texture2DMSArray; + } ; + } D3D11_DEPTH_STENCIL_VIEW_DESC; + + +} +struct CD3D11_DEPTH_STENCIL_VIEW_DESC : public D3D11_DEPTH_STENCIL_VIEW_DESC +{ + CD3D11_DEPTH_STENCIL_VIEW_DESC() + {} + explicit CD3D11_DEPTH_STENCIL_VIEW_DESC( const D3D11_DEPTH_STENCIL_VIEW_DESC& o ) : + D3D11_DEPTH_STENCIL_VIEW_DESC( o ) + {} + explicit CD3D11_DEPTH_STENCIL_VIEW_DESC( + D3D11_DSV_DIMENSION viewDimension, + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, + UINT mipSlice = 0, + UINT firstArraySlice = 0, + UINT arraySize = -1, + UINT flags = 0 ) + { + Format = format; + ViewDimension = viewDimension; + Flags = flags; + switch (viewDimension) + { + case D3D11_DSV_DIMENSION_TEXTURE1D: + Texture1D.MipSlice = mipSlice; + break; + case D3D11_DSV_DIMENSION_TEXTURE1DARRAY: + Texture1DArray.MipSlice = mipSlice; + Texture1DArray.FirstArraySlice = firstArraySlice; + Texture1DArray.ArraySize = arraySize; + break; + case D3D11_DSV_DIMENSION_TEXTURE2D: + Texture2D.MipSlice = mipSlice; + break; + case D3D11_DSV_DIMENSION_TEXTURE2DARRAY: + Texture2DArray.MipSlice = mipSlice; + Texture2DArray.FirstArraySlice = firstArraySlice; + Texture2DArray.ArraySize = arraySize; + break; + case D3D11_DSV_DIMENSION_TEXTURE2DMS: + break; + case D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY: + Texture2DMSArray.FirstArraySlice = firstArraySlice; + Texture2DMSArray.ArraySize = arraySize; + break; + default: break; + } + } + explicit CD3D11_DEPTH_STENCIL_VIEW_DESC( + ID3D11Texture1D* pTex1D, + D3D11_DSV_DIMENSION viewDimension, + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, + UINT mipSlice = 0, + UINT firstArraySlice = 0, + UINT arraySize = -1, + UINT flags = 0 ) + { + ViewDimension = viewDimension; + Flags = flags; + if (DXGI_FORMAT_UNKNOWN == format || + (-1 == arraySize && D3D11_DSV_DIMENSION_TEXTURE1DARRAY == viewDimension)) + { + D3D11_TEXTURE1D_DESC TexDesc; + pTex1D->GetDesc( &TexDesc ); + if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; + if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; + } + Format = format; + switch (viewDimension) + { + case D3D11_DSV_DIMENSION_TEXTURE1D: + Texture1D.MipSlice = mipSlice; + break; + case D3D11_DSV_DIMENSION_TEXTURE1DARRAY: + Texture1DArray.MipSlice = mipSlice; + Texture1DArray.FirstArraySlice = firstArraySlice; + Texture1DArray.ArraySize = arraySize; + break; + default: break; + } + } + explicit CD3D11_DEPTH_STENCIL_VIEW_DESC( + ID3D11Texture2D* pTex2D, + D3D11_DSV_DIMENSION viewDimension, + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, + UINT mipSlice = 0, + UINT firstArraySlice = 0, + UINT arraySize = -1, + UINT flags = 0 ) + { + ViewDimension = viewDimension; + Flags = flags; + if (DXGI_FORMAT_UNKNOWN == format || + (-1 == arraySize && + (D3D11_DSV_DIMENSION_TEXTURE2DARRAY == viewDimension || + D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY == viewDimension))) + { + D3D11_TEXTURE2D_DESC TexDesc; + pTex2D->GetDesc( &TexDesc ); + if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; + if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; + } + Format = format; + switch (viewDimension) + { + case D3D11_DSV_DIMENSION_TEXTURE2D: + Texture2D.MipSlice = mipSlice; + break; + case D3D11_DSV_DIMENSION_TEXTURE2DARRAY: + Texture2DArray.MipSlice = mipSlice; + Texture2DArray.FirstArraySlice = firstArraySlice; + Texture2DArray.ArraySize = arraySize; + break; + case D3D11_DSV_DIMENSION_TEXTURE2DMS: + break; + case D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY: + Texture2DMSArray.FirstArraySlice = firstArraySlice; + Texture2DMSArray.ArraySize = arraySize; + break; + default: break; + } + } + ~CD3D11_DEPTH_STENCIL_VIEW_DESC() {} + operator const D3D11_DEPTH_STENCIL_VIEW_DESC&() const { return *this; } +}; +extern "C"{ + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0012_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0012_v0_0_s_ifspec; +# 4477 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11DepthStencilView; + + + + struct __declspec(uuid("9fdac92a-1876-48c3-afad-25b94f84a9b6")) __declspec(novtable) + ID3D11DepthStencilView : public ID3D11View + { + public: + virtual void __stdcall GetDesc( + + D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc) = 0; + + }; +# 4607 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef +enum D3D11_BUFFER_UAV_FLAG + { + D3D11_BUFFER_UAV_FLAG_RAW = 0x1, + D3D11_BUFFER_UAV_FLAG_APPEND = 0x2, + D3D11_BUFFER_UAV_FLAG_COUNTER = 0x4 + } D3D11_BUFFER_UAV_FLAG; + +typedef struct D3D11_BUFFER_UAV + { + UINT FirstElement; + UINT NumElements; + UINT Flags; + } D3D11_BUFFER_UAV; + +typedef struct D3D11_TEX1D_UAV + { + UINT MipSlice; + } D3D11_TEX1D_UAV; + +typedef struct D3D11_TEX1D_ARRAY_UAV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + } D3D11_TEX1D_ARRAY_UAV; + +typedef struct D3D11_TEX2D_UAV + { + UINT MipSlice; + } D3D11_TEX2D_UAV; + +typedef struct D3D11_TEX2D_ARRAY_UAV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + } D3D11_TEX2D_ARRAY_UAV; + +typedef struct D3D11_TEX3D_UAV + { + UINT MipSlice; + UINT FirstWSlice; + UINT WSize; + } D3D11_TEX3D_UAV; + +typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC + { + DXGI_FORMAT Format; + D3D11_UAV_DIMENSION ViewDimension; + union + { + D3D11_BUFFER_UAV Buffer; + D3D11_TEX1D_UAV Texture1D; + D3D11_TEX1D_ARRAY_UAV Texture1DArray; + D3D11_TEX2D_UAV Texture2D; + D3D11_TEX2D_ARRAY_UAV Texture2DArray; + D3D11_TEX3D_UAV Texture3D; + } ; + } D3D11_UNORDERED_ACCESS_VIEW_DESC; + + +} +struct CD3D11_UNORDERED_ACCESS_VIEW_DESC : public D3D11_UNORDERED_ACCESS_VIEW_DESC +{ + CD3D11_UNORDERED_ACCESS_VIEW_DESC() + {} + explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC( const D3D11_UNORDERED_ACCESS_VIEW_DESC& o ) : + D3D11_UNORDERED_ACCESS_VIEW_DESC( o ) + {} + explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC( + D3D11_UAV_DIMENSION viewDimension, + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, + UINT mipSlice = 0, + UINT firstArraySlice = 0, + UINT arraySize = -1, + UINT flags = 0 ) + { + Format = format; + ViewDimension = viewDimension; + switch (viewDimension) + { + case D3D11_UAV_DIMENSION_BUFFER: + Buffer.FirstElement = mipSlice; + Buffer.NumElements = firstArraySlice; + Buffer.Flags = flags; + break; + case D3D11_UAV_DIMENSION_TEXTURE1D: + Texture1D.MipSlice = mipSlice; + break; + case D3D11_UAV_DIMENSION_TEXTURE1DARRAY: + Texture1DArray.MipSlice = mipSlice; + Texture1DArray.FirstArraySlice = firstArraySlice; + Texture1DArray.ArraySize = arraySize; + break; + case D3D11_UAV_DIMENSION_TEXTURE2D: + Texture2D.MipSlice = mipSlice; + break; + case D3D11_UAV_DIMENSION_TEXTURE2DARRAY: + Texture2DArray.MipSlice = mipSlice; + Texture2DArray.FirstArraySlice = firstArraySlice; + Texture2DArray.ArraySize = arraySize; + break; + case D3D11_UAV_DIMENSION_TEXTURE3D: + Texture3D.MipSlice = mipSlice; + Texture3D.FirstWSlice = firstArraySlice; + Texture3D.WSize = arraySize; + break; + default: break; + } + } + explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC( + ID3D11Buffer*, + DXGI_FORMAT format, + UINT firstElement, + UINT numElements, + UINT flags = 0 ) + { + Format = format; + ViewDimension = D3D11_UAV_DIMENSION_BUFFER; + Buffer.FirstElement = firstElement; + Buffer.NumElements = numElements; + Buffer.Flags = flags; + } + explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC( + ID3D11Texture1D* pTex1D, + D3D11_UAV_DIMENSION viewDimension, + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, + UINT mipSlice = 0, + UINT firstArraySlice = 0, + UINT arraySize = -1 ) + { + ViewDimension = viewDimension; + if (DXGI_FORMAT_UNKNOWN == format || + (-1 == arraySize && D3D11_UAV_DIMENSION_TEXTURE1DARRAY == viewDimension)) + { + D3D11_TEXTURE1D_DESC TexDesc; + pTex1D->GetDesc( &TexDesc ); + if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; + if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; + } + Format = format; + switch (viewDimension) + { + case D3D11_UAV_DIMENSION_TEXTURE1D: + Texture1D.MipSlice = mipSlice; + break; + case D3D11_UAV_DIMENSION_TEXTURE1DARRAY: + Texture1DArray.MipSlice = mipSlice; + Texture1DArray.FirstArraySlice = firstArraySlice; + Texture1DArray.ArraySize = arraySize; + break; + default: break; + } + } + explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC( + ID3D11Texture2D* pTex2D, + D3D11_UAV_DIMENSION viewDimension, + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, + UINT mipSlice = 0, + UINT firstArraySlice = 0, + UINT arraySize = -1 ) + { + ViewDimension = viewDimension; + if (DXGI_FORMAT_UNKNOWN == format || + (-1 == arraySize && D3D11_UAV_DIMENSION_TEXTURE2DARRAY == viewDimension)) + { + D3D11_TEXTURE2D_DESC TexDesc; + pTex2D->GetDesc( &TexDesc ); + if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; + if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; + } + Format = format; + switch (viewDimension) + { + case D3D11_UAV_DIMENSION_TEXTURE2D: + Texture2D.MipSlice = mipSlice; + break; + case D3D11_UAV_DIMENSION_TEXTURE2DARRAY: + Texture2DArray.MipSlice = mipSlice; + Texture2DArray.FirstArraySlice = firstArraySlice; + Texture2DArray.ArraySize = arraySize; + break; + default: break; + } + } + explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC( + ID3D11Texture3D* pTex3D, + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, + UINT mipSlice = 0, + UINT firstWSlice = 0, + UINT wSize = -1 ) + { + ViewDimension = D3D11_UAV_DIMENSION_TEXTURE3D; + if (DXGI_FORMAT_UNKNOWN == format || -1 == wSize) + { + D3D11_TEXTURE3D_DESC TexDesc; + pTex3D->GetDesc( &TexDesc ); + if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; + if (-1 == wSize) wSize = TexDesc.Depth - firstWSlice; + } + Format = format; + Texture3D.MipSlice = mipSlice; + Texture3D.FirstWSlice = firstWSlice; + Texture3D.WSize = wSize; + } + ~CD3D11_UNORDERED_ACCESS_VIEW_DESC() {} + operator const D3D11_UNORDERED_ACCESS_VIEW_DESC&() const { return *this; } +}; +extern "C"{ + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0013_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0013_v0_0_s_ifspec; +# 4830 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11UnorderedAccessView; + + + + struct __declspec(uuid("28acf509-7f5c-48f6-8611-f316010a6380")) __declspec(novtable) + ID3D11UnorderedAccessView : public ID3D11View + { + public: + virtual void __stdcall GetDesc( + + D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc) = 0; + + }; +# 4964 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11VertexShader; + + + + struct __declspec(uuid("3b301d64-d678-4289-8897-22f8928b72f3")) __declspec(novtable) + ID3D11VertexShader : public ID3D11DeviceChild + { + public: + }; +# 5077 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11HullShader; + + + + struct __declspec(uuid("8e5c6061-628a-4c8e-8264-bbe45cb3d5dd")) __declspec(novtable) + ID3D11HullShader : public ID3D11DeviceChild + { + public: + }; +# 5190 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11DomainShader; + + + + struct __declspec(uuid("f582c508-0f36-490c-9977-31eece268cfa")) __declspec(novtable) + ID3D11DomainShader : public ID3D11DeviceChild + { + public: + }; +# 5303 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11GeometryShader; + + + + struct __declspec(uuid("38325b96-effb-4022-ba02-2e795b70275c")) __declspec(novtable) + ID3D11GeometryShader : public ID3D11DeviceChild + { + public: + }; +# 5416 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11PixelShader; + + + + struct __declspec(uuid("ea82e40d-51dc-4f33-93d4-db7c9125ae8c")) __declspec(novtable) + ID3D11PixelShader : public ID3D11DeviceChild + { + public: + }; +# 5529 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11ComputeShader; + + + + struct __declspec(uuid("4f5b196e-c2bd-495e-bd01-1fded38e4969")) __declspec(novtable) + ID3D11ComputeShader : public ID3D11DeviceChild + { + public: + }; +# 5642 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11InputLayout; + + + + struct __declspec(uuid("e4819ddc-4cf0-4025-bd26-5de82a3e07b7")) __declspec(novtable) + ID3D11InputLayout : public ID3D11DeviceChild + { + public: + }; +# 5751 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef +enum D3D11_FILTER + { + D3D11_FILTER_MIN_MAG_MIP_POINT = 0, + D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1, + D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4, + D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5, + D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, + D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, + D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, + D3D11_FILTER_MIN_MAG_MIP_LINEAR = 0x15, + D3D11_FILTER_ANISOTROPIC = 0x55, + D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, + D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, + D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, + D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, + D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, + D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, + D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, + D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, + D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5, + D3D11_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100, + D3D11_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101, + D3D11_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104, + D3D11_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105, + D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110, + D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111, + D3D11_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114, + D3D11_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115, + D3D11_FILTER_MINIMUM_ANISOTROPIC = 0x155, + D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180, + D3D11_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181, + D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184, + D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185, + D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190, + D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191, + D3D11_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194, + D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195, + D3D11_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5 + } D3D11_FILTER; + +typedef +enum D3D11_FILTER_TYPE + { + D3D11_FILTER_TYPE_POINT = 0, + D3D11_FILTER_TYPE_LINEAR = 1 + } D3D11_FILTER_TYPE; + +typedef +enum D3D11_FILTER_REDUCTION_TYPE + { + D3D11_FILTER_REDUCTION_TYPE_STANDARD = 0, + D3D11_FILTER_REDUCTION_TYPE_COMPARISON = 1, + D3D11_FILTER_REDUCTION_TYPE_MINIMUM = 2, + D3D11_FILTER_REDUCTION_TYPE_MAXIMUM = 3 + } D3D11_FILTER_REDUCTION_TYPE; +# 5859 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef +enum D3D11_TEXTURE_ADDRESS_MODE + { + D3D11_TEXTURE_ADDRESS_WRAP = 1, + D3D11_TEXTURE_ADDRESS_MIRROR = 2, + D3D11_TEXTURE_ADDRESS_CLAMP = 3, + D3D11_TEXTURE_ADDRESS_BORDER = 4, + D3D11_TEXTURE_ADDRESS_MIRROR_ONCE = 5 + } D3D11_TEXTURE_ADDRESS_MODE; + +typedef struct D3D11_SAMPLER_DESC + { + D3D11_FILTER Filter; + D3D11_TEXTURE_ADDRESS_MODE AddressU; + D3D11_TEXTURE_ADDRESS_MODE AddressV; + D3D11_TEXTURE_ADDRESS_MODE AddressW; + FLOAT MipLODBias; + UINT MaxAnisotropy; + D3D11_COMPARISON_FUNC ComparisonFunc; + FLOAT BorderColor[ 4 ]; + FLOAT MinLOD; + FLOAT MaxLOD; + } D3D11_SAMPLER_DESC; + + +} +struct CD3D11_SAMPLER_DESC : public D3D11_SAMPLER_DESC +{ + CD3D11_SAMPLER_DESC() + {} + explicit CD3D11_SAMPLER_DESC( const D3D11_SAMPLER_DESC& o ) : + D3D11_SAMPLER_DESC( o ) + {} + explicit CD3D11_SAMPLER_DESC( CD3D11_DEFAULT ) + { + Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR; + AddressU = D3D11_TEXTURE_ADDRESS_CLAMP; + AddressV = D3D11_TEXTURE_ADDRESS_CLAMP; + AddressW = D3D11_TEXTURE_ADDRESS_CLAMP; + MipLODBias = 0; + MaxAnisotropy = 1; + ComparisonFunc = D3D11_COMPARISON_NEVER; + BorderColor[ 0 ] = 1.0f; + BorderColor[ 1 ] = 1.0f; + BorderColor[ 2 ] = 1.0f; + BorderColor[ 3 ] = 1.0f; + MinLOD = -3.402823466e+38F; + MaxLOD = 3.402823466e+38F; + } + explicit CD3D11_SAMPLER_DESC( + D3D11_FILTER filter, + D3D11_TEXTURE_ADDRESS_MODE addressU, + D3D11_TEXTURE_ADDRESS_MODE addressV, + D3D11_TEXTURE_ADDRESS_MODE addressW, + FLOAT mipLODBias, + UINT maxAnisotropy, + D3D11_COMPARISON_FUNC comparisonFunc, + const FLOAT* borderColor, + FLOAT minLOD, + FLOAT maxLOD ) + { + Filter = filter; + AddressU = addressU; + AddressV = addressV; + AddressW = addressW; + MipLODBias = mipLODBias; + MaxAnisotropy = maxAnisotropy; + ComparisonFunc = comparisonFunc; + const float defaultColor[ 4 ] = { 1.0f, 1.0f, 1.0f, 1.0f }; + if (!borderColor) borderColor = defaultColor; + BorderColor[ 0 ] = borderColor[ 0 ]; + BorderColor[ 1 ] = borderColor[ 1 ]; + BorderColor[ 2 ] = borderColor[ 2 ]; + BorderColor[ 3 ] = borderColor[ 3 ]; + MinLOD = minLOD; + MaxLOD = maxLOD; + } + ~CD3D11_SAMPLER_DESC() {} + operator const D3D11_SAMPLER_DESC&() const { return *this; } +}; +extern "C"{ + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0021_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0021_v0_0_s_ifspec; +# 5953 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11SamplerState; + + + + struct __declspec(uuid("da6fea51-564c-4487-9810-f0d0f9b4e3a5")) __declspec(novtable) + ID3D11SamplerState : public ID3D11DeviceChild + { + public: + virtual void __stdcall GetDesc( + + D3D11_SAMPLER_DESC *pDesc) = 0; + + }; +# 6074 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef +enum D3D11_FORMAT_SUPPORT + { + D3D11_FORMAT_SUPPORT_BUFFER = 0x1, + D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x2, + D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x4, + D3D11_FORMAT_SUPPORT_SO_BUFFER = 0x8, + D3D11_FORMAT_SUPPORT_TEXTURE1D = 0x10, + D3D11_FORMAT_SUPPORT_TEXTURE2D = 0x20, + D3D11_FORMAT_SUPPORT_TEXTURE3D = 0x40, + D3D11_FORMAT_SUPPORT_TEXTURECUBE = 0x80, + D3D11_FORMAT_SUPPORT_SHADER_LOAD = 0x100, + D3D11_FORMAT_SUPPORT_SHADER_SAMPLE = 0x200, + D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x400, + D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x800, + D3D11_FORMAT_SUPPORT_MIP = 0x1000, + D3D11_FORMAT_SUPPORT_MIP_AUTOGEN = 0x2000, + D3D11_FORMAT_SUPPORT_RENDER_TARGET = 0x4000, + D3D11_FORMAT_SUPPORT_BLENDABLE = 0x8000, + D3D11_FORMAT_SUPPORT_DEPTH_STENCIL = 0x10000, + D3D11_FORMAT_SUPPORT_CPU_LOCKABLE = 0x20000, + D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x40000, + D3D11_FORMAT_SUPPORT_DISPLAY = 0x80000, + D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000, + D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000, + D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000, + D3D11_FORMAT_SUPPORT_SHADER_GATHER = 0x800000, + D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST = 0x1000000, + D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000, + D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON = 0x4000000, + D3D11_FORMAT_SUPPORT_DECODER_OUTPUT = 0x8000000, + D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_OUTPUT = 0x10000000, + D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_INPUT = 0x20000000, + D3D11_FORMAT_SUPPORT_VIDEO_ENCODER = 0x40000000 + } D3D11_FORMAT_SUPPORT; + +typedef +enum D3D11_FORMAT_SUPPORT2 + { + D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1, + D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2, + D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4, + D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8, + D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10, + D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20, + D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40, + D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80, + D3D11_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100, + D3D11_FORMAT_SUPPORT2_TILED = 0x200, + D3D11_FORMAT_SUPPORT2_SHAREABLE = 0x400, + D3D11_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000 + } D3D11_FORMAT_SUPPORT2; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0022_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0022_v0_0_s_ifspec; +# 6139 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11Asynchronous; + + + + struct __declspec(uuid("4b35d0cd-1e15-4258-9c98-1b1333f6dd3b")) __declspec(novtable) + ID3D11Asynchronous : public ID3D11DeviceChild + { + public: + virtual UINT __stdcall GetDataSize( void) = 0; + + }; +# 6256 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef +enum D3D11_ASYNC_GETDATA_FLAG + { + D3D11_ASYNC_GETDATA_DONOTFLUSH = 0x1 + } D3D11_ASYNC_GETDATA_FLAG; + +typedef +enum D3D11_QUERY + { + D3D11_QUERY_EVENT = 0, + D3D11_QUERY_OCCLUSION = ( D3D11_QUERY_EVENT + 1 ) , + D3D11_QUERY_TIMESTAMP = ( D3D11_QUERY_OCCLUSION + 1 ) , + D3D11_QUERY_TIMESTAMP_DISJOINT = ( D3D11_QUERY_TIMESTAMP + 1 ) , + D3D11_QUERY_PIPELINE_STATISTICS = ( D3D11_QUERY_TIMESTAMP_DISJOINT + 1 ) , + D3D11_QUERY_OCCLUSION_PREDICATE = ( D3D11_QUERY_PIPELINE_STATISTICS + 1 ) , + D3D11_QUERY_SO_STATISTICS = ( D3D11_QUERY_OCCLUSION_PREDICATE + 1 ) , + D3D11_QUERY_SO_OVERFLOW_PREDICATE = ( D3D11_QUERY_SO_STATISTICS + 1 ) , + D3D11_QUERY_SO_STATISTICS_STREAM0 = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE + 1 ) , + D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 = ( D3D11_QUERY_SO_STATISTICS_STREAM0 + 1 ) , + D3D11_QUERY_SO_STATISTICS_STREAM1 = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 + 1 ) , + D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 = ( D3D11_QUERY_SO_STATISTICS_STREAM1 + 1 ) , + D3D11_QUERY_SO_STATISTICS_STREAM2 = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 + 1 ) , + D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 = ( D3D11_QUERY_SO_STATISTICS_STREAM2 + 1 ) , + D3D11_QUERY_SO_STATISTICS_STREAM3 = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 + 1 ) , + D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3 = ( D3D11_QUERY_SO_STATISTICS_STREAM3 + 1 ) + } D3D11_QUERY; + +typedef +enum D3D11_QUERY_MISC_FLAG + { + D3D11_QUERY_MISC_PREDICATEHINT = 0x1 + } D3D11_QUERY_MISC_FLAG; + +typedef struct D3D11_QUERY_DESC + { + D3D11_QUERY Query; + UINT MiscFlags; + } D3D11_QUERY_DESC; + + +} +struct CD3D11_QUERY_DESC : public D3D11_QUERY_DESC +{ + CD3D11_QUERY_DESC() + {} + explicit CD3D11_QUERY_DESC( const D3D11_QUERY_DESC& o ) : + D3D11_QUERY_DESC( o ) + {} + explicit CD3D11_QUERY_DESC( + D3D11_QUERY query, + UINT miscFlags = 0 ) + { + Query = query; + MiscFlags = miscFlags; + } + ~CD3D11_QUERY_DESC() {} + operator const D3D11_QUERY_DESC&() const { return *this; } +}; +extern "C"{ + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0023_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0023_v0_0_s_ifspec; +# 6328 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11Query; + + + + struct __declspec(uuid("d6c00747-87b7-425e-b84d-44d108560afd")) __declspec(novtable) + ID3D11Query : public ID3D11Asynchronous + { + public: + virtual void __stdcall GetDesc( + + D3D11_QUERY_DESC *pDesc) = 0; + + }; +# 6460 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11Predicate; + + + + struct __declspec(uuid("9eb576dd-9f77-4d86-81aa-8bab5fe490e2")) __declspec(novtable) + ID3D11Predicate : public ID3D11Query + { + public: + }; +# 6585 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef struct D3D11_QUERY_DATA_TIMESTAMP_DISJOINT + { + UINT64 Frequency; + BOOL Disjoint; + } D3D11_QUERY_DATA_TIMESTAMP_DISJOINT; + +typedef struct D3D11_QUERY_DATA_PIPELINE_STATISTICS + { + UINT64 IAVertices; + UINT64 IAPrimitives; + UINT64 VSInvocations; + UINT64 GSInvocations; + UINT64 GSPrimitives; + UINT64 CInvocations; + UINT64 CPrimitives; + UINT64 PSInvocations; + UINT64 HSInvocations; + UINT64 DSInvocations; + UINT64 CSInvocations; + } D3D11_QUERY_DATA_PIPELINE_STATISTICS; + +typedef struct D3D11_QUERY_DATA_SO_STATISTICS + { + UINT64 NumPrimitivesWritten; + UINT64 PrimitivesStorageNeeded; + } D3D11_QUERY_DATA_SO_STATISTICS; + +typedef +enum D3D11_COUNTER + { + D3D11_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000 + } D3D11_COUNTER; + +typedef +enum D3D11_COUNTER_TYPE + { + D3D11_COUNTER_TYPE_FLOAT32 = 0, + D3D11_COUNTER_TYPE_UINT16 = ( D3D11_COUNTER_TYPE_FLOAT32 + 1 ) , + D3D11_COUNTER_TYPE_UINT32 = ( D3D11_COUNTER_TYPE_UINT16 + 1 ) , + D3D11_COUNTER_TYPE_UINT64 = ( D3D11_COUNTER_TYPE_UINT32 + 1 ) + } D3D11_COUNTER_TYPE; + +typedef struct D3D11_COUNTER_DESC + { + D3D11_COUNTER Counter; + UINT MiscFlags; + } D3D11_COUNTER_DESC; + + +} +struct CD3D11_COUNTER_DESC : public D3D11_COUNTER_DESC +{ + CD3D11_COUNTER_DESC() + {} + explicit CD3D11_COUNTER_DESC( const D3D11_COUNTER_DESC& o ) : + D3D11_COUNTER_DESC( o ) + {} + explicit CD3D11_COUNTER_DESC( + D3D11_COUNTER counter, + UINT miscFlags = 0 ) + { + Counter = counter; + MiscFlags = miscFlags; + } + ~CD3D11_COUNTER_DESC() {} + operator const D3D11_COUNTER_DESC&() const { return *this; } +}; +extern "C"{ + +typedef struct D3D11_COUNTER_INFO + { + D3D11_COUNTER LastDeviceDependentCounter; + UINT NumSimultaneousCounters; + UINT8 NumDetectableParallelUnits; + } D3D11_COUNTER_INFO; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0025_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0025_v0_0_s_ifspec; +# 6673 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11Counter; + + + + struct __declspec(uuid("6e8c49fb-a371-4770-b440-29086022b741")) __declspec(novtable) + ID3D11Counter : public ID3D11Asynchronous + { + public: + virtual void __stdcall GetDesc( + + D3D11_COUNTER_DESC *pDesc) = 0; + + }; +# 6801 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef +enum D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS + { + D3D11_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff, + D3D11_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe + } D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS; + +typedef +enum D3D11_DEVICE_CONTEXT_TYPE + { + D3D11_DEVICE_CONTEXT_IMMEDIATE = 0, + D3D11_DEVICE_CONTEXT_DEFERRED = ( D3D11_DEVICE_CONTEXT_IMMEDIATE + 1 ) + } D3D11_DEVICE_CONTEXT_TYPE; + +typedef struct D3D11_CLASS_INSTANCE_DESC + { + UINT InstanceId; + UINT InstanceIndex; + UINT TypeId; + UINT ConstantBuffer; + UINT BaseConstantBufferOffset; + UINT BaseTexture; + UINT BaseSampler; + BOOL Created; + } D3D11_CLASS_INSTANCE_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0026_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0026_v0_0_s_ifspec; +# 6839 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11ClassInstance; + + + + struct __declspec(uuid("a6cd7faa-b0b7-4a2f-9436-8662a65797cb")) __declspec(novtable) + ID3D11ClassInstance : public ID3D11DeviceChild + { + public: + virtual void __stdcall GetClassLinkage( + + ID3D11ClassLinkage **ppLinkage) = 0; + + virtual void __stdcall GetDesc( + + D3D11_CLASS_INSTANCE_DESC *pDesc) = 0; + + virtual void __stdcall GetInstanceName( + + LPSTR pInstanceName, + + SIZE_T *pBufferLength) = 0; + + virtual void __stdcall GetTypeName( + + LPSTR pTypeName, + + SIZE_T *pBufferLength) = 0; + + }; +# 7008 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11ClassLinkage; + + + + struct __declspec(uuid("ddf57cba-9543-46e4-a12b-f207a0fe7fed")) __declspec(novtable) + ID3D11ClassLinkage : public ID3D11DeviceChild + { + public: + virtual HRESULT __stdcall GetClassInstance( + + LPCSTR pClassInstanceName, + + UINT InstanceIndex, + + ID3D11ClassInstance **ppInstance) = 0; + + virtual HRESULT __stdcall CreateClassInstance( + + LPCSTR pClassTypeName, + + UINT ConstantBufferOffset, + + UINT ConstantVectorOffset, + + UINT TextureOffset, + + UINT SamplerOffset, + + ID3D11ClassInstance **ppInstance) = 0; + + }; +# 7173 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11CommandList; + + + + struct __declspec(uuid("a24bc4d1-769e-43f7-8013-98ff566c18e2")) __declspec(novtable) + ID3D11CommandList : public ID3D11DeviceChild + { + public: + virtual UINT __stdcall GetContextFlags( void) = 0; + + }; +# 7290 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef +enum D3D11_FEATURE + { + D3D11_FEATURE_THREADING = 0, + D3D11_FEATURE_DOUBLES = ( D3D11_FEATURE_THREADING + 1 ) , + D3D11_FEATURE_FORMAT_SUPPORT = ( D3D11_FEATURE_DOUBLES + 1 ) , + D3D11_FEATURE_FORMAT_SUPPORT2 = ( D3D11_FEATURE_FORMAT_SUPPORT + 1 ) , + D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS = ( D3D11_FEATURE_FORMAT_SUPPORT2 + 1 ) , + D3D11_FEATURE_D3D11_OPTIONS = ( D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS + 1 ) , + D3D11_FEATURE_ARCHITECTURE_INFO = ( D3D11_FEATURE_D3D11_OPTIONS + 1 ) , + D3D11_FEATURE_D3D9_OPTIONS = ( D3D11_FEATURE_ARCHITECTURE_INFO + 1 ) , + D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT = ( D3D11_FEATURE_D3D9_OPTIONS + 1 ) , + D3D11_FEATURE_D3D9_SHADOW_SUPPORT = ( D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT + 1 ) , + D3D11_FEATURE_D3D11_OPTIONS1 = ( D3D11_FEATURE_D3D9_SHADOW_SUPPORT + 1 ) , + D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT = ( D3D11_FEATURE_D3D11_OPTIONS1 + 1 ) , + D3D11_FEATURE_MARKER_SUPPORT = ( D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT + 1 ) , + D3D11_FEATURE_D3D9_OPTIONS1 = ( D3D11_FEATURE_MARKER_SUPPORT + 1 ) , + D3D11_FEATURE_D3D11_OPTIONS2 = ( D3D11_FEATURE_D3D9_OPTIONS1 + 1 ) , + D3D11_FEATURE_D3D11_OPTIONS3 = ( D3D11_FEATURE_D3D11_OPTIONS2 + 1 ) , + D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = ( D3D11_FEATURE_D3D11_OPTIONS3 + 1 ) , + D3D11_FEATURE_D3D11_OPTIONS4 = ( D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT + 1 ) + } D3D11_FEATURE; + +typedef struct D3D11_FEATURE_DATA_THREADING + { + BOOL DriverConcurrentCreates; + BOOL DriverCommandLists; + } D3D11_FEATURE_DATA_THREADING; + +typedef struct D3D11_FEATURE_DATA_DOUBLES + { + BOOL DoublePrecisionFloatShaderOps; + } D3D11_FEATURE_DATA_DOUBLES; + +typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT + { + DXGI_FORMAT InFormat; + UINT OutFormatSupport; + } D3D11_FEATURE_DATA_FORMAT_SUPPORT; + +typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2 + { + DXGI_FORMAT InFormat; + UINT OutFormatSupport2; + } D3D11_FEATURE_DATA_FORMAT_SUPPORT2; + +typedef struct D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS + { + BOOL ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x; + } D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS; +# 7354 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS + { + BOOL OutputMergerLogicOp; + BOOL UAVOnlyRenderingForcedSampleCount; + BOOL DiscardAPIsSeenByDriver; + BOOL FlagsForUpdateAndCopySeenByDriver; + BOOL ClearView; + BOOL CopyWithOverlap; + BOOL ConstantBufferPartialUpdate; + BOOL ConstantBufferOffsetting; + BOOL MapNoOverwriteOnDynamicConstantBuffer; + BOOL MapNoOverwriteOnDynamicBufferSRV; + BOOL MultisampleRTVWithForcedSampleCountOne; + BOOL SAD4ShaderInstructions; + BOOL ExtendedDoublesShaderInstructions; + BOOL ExtendedResourceSharing; + } D3D11_FEATURE_DATA_D3D11_OPTIONS; + +typedef struct D3D11_FEATURE_DATA_ARCHITECTURE_INFO + { + BOOL TileBasedDeferredRenderer; + } D3D11_FEATURE_DATA_ARCHITECTURE_INFO; + +typedef struct D3D11_FEATURE_DATA_D3D9_OPTIONS + { + BOOL FullNonPow2TextureSupport; + } D3D11_FEATURE_DATA_D3D9_OPTIONS; + +typedef struct D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT + { + BOOL SupportsDepthAsTextureWithLessEqualComparisonFilter; + } D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT; + +typedef +enum D3D11_SHADER_MIN_PRECISION_SUPPORT + { + D3D11_SHADER_MIN_PRECISION_10_BIT = 0x1, + D3D11_SHADER_MIN_PRECISION_16_BIT = 0x2 + } D3D11_SHADER_MIN_PRECISION_SUPPORT; + +typedef struct D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT + { + UINT PixelShaderMinPrecision; + UINT AllOtherShaderStagesMinPrecision; + } D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT; + +typedef +enum D3D11_TILED_RESOURCES_TIER + { + D3D11_TILED_RESOURCES_NOT_SUPPORTED = 0, + D3D11_TILED_RESOURCES_TIER_1 = 1, + D3D11_TILED_RESOURCES_TIER_2 = 2, + D3D11_TILED_RESOURCES_TIER_3 = 3 + } D3D11_TILED_RESOURCES_TIER; + +typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS1 + { + D3D11_TILED_RESOURCES_TIER TiledResourcesTier; + BOOL MinMaxFiltering; + BOOL ClearViewAlsoSupportsDepthOnlyFormats; + BOOL MapOnDefaultBuffers; + } D3D11_FEATURE_DATA_D3D11_OPTIONS1; + +typedef struct D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT + { + BOOL SimpleInstancingSupported; + } D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT; + +typedef struct D3D11_FEATURE_DATA_MARKER_SUPPORT + { + BOOL Profile; + } D3D11_FEATURE_DATA_MARKER_SUPPORT; + +typedef struct D3D11_FEATURE_DATA_D3D9_OPTIONS1 + { + BOOL FullNonPow2TextureSupported; + BOOL DepthAsTextureWithLessEqualComparisonFilterSupported; + BOOL SimpleInstancingSupported; + BOOL TextureCubeFaceRenderTargetWithNonCubeDepthStencilSupported; + } D3D11_FEATURE_DATA_D3D9_OPTIONS1; + +typedef +enum D3D11_CONSERVATIVE_RASTERIZATION_TIER + { + D3D11_CONSERVATIVE_RASTERIZATION_NOT_SUPPORTED = 0, + D3D11_CONSERVATIVE_RASTERIZATION_TIER_1 = 1, + D3D11_CONSERVATIVE_RASTERIZATION_TIER_2 = 2, + D3D11_CONSERVATIVE_RASTERIZATION_TIER_3 = 3 + } D3D11_CONSERVATIVE_RASTERIZATION_TIER; + +typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS2 + { + BOOL PSSpecifiedStencilRefSupported; + BOOL TypedUAVLoadAdditionalFormats; + BOOL ROVsSupported; + D3D11_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier; + D3D11_TILED_RESOURCES_TIER TiledResourcesTier; + BOOL MapOnDefaultTextures; + BOOL StandardSwizzle; + BOOL UnifiedMemoryArchitecture; + } D3D11_FEATURE_DATA_D3D11_OPTIONS2; + +typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS3 + { + BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizer; + } D3D11_FEATURE_DATA_D3D11_OPTIONS3; + +typedef struct D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT + { + UINT MaxGPUVirtualAddressBitsPerResource; + UINT MaxGPUVirtualAddressBitsPerProcess; + } D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0029_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0029_v0_0_s_ifspec; +# 7479 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11DeviceContext; + + + + struct __declspec(uuid("c0bfa96c-e089-44fb-8eaf-26f8796190da")) __declspec(novtable) + ID3D11DeviceContext : public ID3D11DeviceChild + { + public: + virtual void __stdcall VSSetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D11Buffer *const *ppConstantBuffers) = 0; + + virtual void __stdcall PSSetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0; + + virtual void __stdcall PSSetShader( + + ID3D11PixelShader *pPixelShader, + + ID3D11ClassInstance *const *ppClassInstances, + UINT NumClassInstances) = 0; + + virtual void __stdcall PSSetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D11SamplerState *const *ppSamplers) = 0; + + virtual void __stdcall VSSetShader( + + ID3D11VertexShader *pVertexShader, + + ID3D11ClassInstance *const *ppClassInstances, + UINT NumClassInstances) = 0; + + virtual void __stdcall DrawIndexed( + + UINT IndexCount, + + UINT StartIndexLocation, + + INT BaseVertexLocation) = 0; + + virtual void __stdcall Draw( + + UINT VertexCount, + + UINT StartVertexLocation) = 0; + + virtual HRESULT __stdcall Map( + + ID3D11Resource *pResource, + + UINT Subresource, + + D3D11_MAP MapType, + + UINT MapFlags, + + D3D11_MAPPED_SUBRESOURCE *pMappedResource) = 0; + + virtual void __stdcall Unmap( + + ID3D11Resource *pResource, + + UINT Subresource) = 0; + + virtual void __stdcall PSSetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D11Buffer *const *ppConstantBuffers) = 0; + + virtual void __stdcall IASetInputLayout( + + ID3D11InputLayout *pInputLayout) = 0; + + virtual void __stdcall IASetVertexBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D11Buffer *const *ppVertexBuffers, + + const UINT *pStrides, + + const UINT *pOffsets) = 0; + + virtual void __stdcall IASetIndexBuffer( + + ID3D11Buffer *pIndexBuffer, + + DXGI_FORMAT Format, + + UINT Offset) = 0; + + virtual void __stdcall DrawIndexedInstanced( + + UINT IndexCountPerInstance, + + UINT InstanceCount, + + UINT StartIndexLocation, + + INT BaseVertexLocation, + + UINT StartInstanceLocation) = 0; + + virtual void __stdcall DrawInstanced( + + UINT VertexCountPerInstance, + + UINT InstanceCount, + + UINT StartVertexLocation, + + UINT StartInstanceLocation) = 0; + + virtual void __stdcall GSSetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D11Buffer *const *ppConstantBuffers) = 0; + + virtual void __stdcall GSSetShader( + + ID3D11GeometryShader *pShader, + + ID3D11ClassInstance *const *ppClassInstances, + UINT NumClassInstances) = 0; + + virtual void __stdcall IASetPrimitiveTopology( + + D3D11_PRIMITIVE_TOPOLOGY Topology) = 0; + + virtual void __stdcall VSSetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0; + + virtual void __stdcall VSSetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D11SamplerState *const *ppSamplers) = 0; + + virtual void __stdcall Begin( + + ID3D11Asynchronous *pAsync) = 0; + + virtual void __stdcall End( + + ID3D11Asynchronous *pAsync) = 0; + + virtual HRESULT __stdcall GetData( + + ID3D11Asynchronous *pAsync, + + void *pData, + + UINT DataSize, + + UINT GetDataFlags) = 0; + + virtual void __stdcall SetPredication( + + ID3D11Predicate *pPredicate, + + BOOL PredicateValue) = 0; + + virtual void __stdcall GSSetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0; + + virtual void __stdcall GSSetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D11SamplerState *const *ppSamplers) = 0; + + virtual void __stdcall OMSetRenderTargets( + + UINT NumViews, + + ID3D11RenderTargetView *const *ppRenderTargetViews, + + ID3D11DepthStencilView *pDepthStencilView) = 0; + + virtual void __stdcall OMSetRenderTargetsAndUnorderedAccessViews( + + UINT NumRTVs, + + ID3D11RenderTargetView *const *ppRenderTargetViews, + + ID3D11DepthStencilView *pDepthStencilView, + + UINT UAVStartSlot, + + UINT NumUAVs, + + ID3D11UnorderedAccessView *const *ppUnorderedAccessViews, + + const UINT *pUAVInitialCounts) = 0; + + virtual void __stdcall OMSetBlendState( + + ID3D11BlendState *pBlendState, + + const FLOAT BlendFactor[ 4 ], + + UINT SampleMask) = 0; + + virtual void __stdcall OMSetDepthStencilState( + + ID3D11DepthStencilState *pDepthStencilState, + + UINT StencilRef) = 0; + + virtual void __stdcall SOSetTargets( + + UINT NumBuffers, + + ID3D11Buffer *const *ppSOTargets, + + const UINT *pOffsets) = 0; + + virtual void __stdcall DrawAuto( void) = 0; + + virtual void __stdcall DrawIndexedInstancedIndirect( + + ID3D11Buffer *pBufferForArgs, + + UINT AlignedByteOffsetForArgs) = 0; + + virtual void __stdcall DrawInstancedIndirect( + + ID3D11Buffer *pBufferForArgs, + + UINT AlignedByteOffsetForArgs) = 0; + + virtual void __stdcall Dispatch( + + UINT ThreadGroupCountX, + + UINT ThreadGroupCountY, + + UINT ThreadGroupCountZ) = 0; + + virtual void __stdcall DispatchIndirect( + + ID3D11Buffer *pBufferForArgs, + + UINT AlignedByteOffsetForArgs) = 0; + + virtual void __stdcall RSSetState( + + ID3D11RasterizerState *pRasterizerState) = 0; + + virtual void __stdcall RSSetViewports( + + UINT NumViewports, + + const D3D11_VIEWPORT *pViewports) = 0; + + virtual void __stdcall RSSetScissorRects( + + UINT NumRects, + + const D3D11_RECT *pRects) = 0; + + virtual void __stdcall CopySubresourceRegion( + + ID3D11Resource *pDstResource, + + UINT DstSubresource, + + UINT DstX, + + UINT DstY, + + UINT DstZ, + + ID3D11Resource *pSrcResource, + + UINT SrcSubresource, + + const D3D11_BOX *pSrcBox) = 0; + + virtual void __stdcall CopyResource( + + ID3D11Resource *pDstResource, + + ID3D11Resource *pSrcResource) = 0; + + virtual void __stdcall UpdateSubresource( + + ID3D11Resource *pDstResource, + + UINT DstSubresource, + + const D3D11_BOX *pDstBox, + + const void *pSrcData, + + UINT SrcRowPitch, + + UINT SrcDepthPitch) = 0; + + virtual void __stdcall CopyStructureCount( + + ID3D11Buffer *pDstBuffer, + + UINT DstAlignedByteOffset, + + ID3D11UnorderedAccessView *pSrcView) = 0; + + virtual void __stdcall ClearRenderTargetView( + + ID3D11RenderTargetView *pRenderTargetView, + + const FLOAT ColorRGBA[ 4 ]) = 0; + + virtual void __stdcall ClearUnorderedAccessViewUint( + + ID3D11UnorderedAccessView *pUnorderedAccessView, + + const UINT Values[ 4 ]) = 0; + + virtual void __stdcall ClearUnorderedAccessViewFloat( + + ID3D11UnorderedAccessView *pUnorderedAccessView, + + const FLOAT Values[ 4 ]) = 0; + + virtual void __stdcall ClearDepthStencilView( + + ID3D11DepthStencilView *pDepthStencilView, + + UINT ClearFlags, + + FLOAT Depth, + + UINT8 Stencil) = 0; + + virtual void __stdcall GenerateMips( + + ID3D11ShaderResourceView *pShaderResourceView) = 0; + + virtual void __stdcall SetResourceMinLOD( + + ID3D11Resource *pResource, + FLOAT MinLOD) = 0; + + virtual FLOAT __stdcall GetResourceMinLOD( + + ID3D11Resource *pResource) = 0; + + virtual void __stdcall ResolveSubresource( + + ID3D11Resource *pDstResource, + + UINT DstSubresource, + + ID3D11Resource *pSrcResource, + + UINT SrcSubresource, + + DXGI_FORMAT Format) = 0; + + virtual void __stdcall ExecuteCommandList( + + ID3D11CommandList *pCommandList, + BOOL RestoreContextState) = 0; + + virtual void __stdcall HSSetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0; + + virtual void __stdcall HSSetShader( + + ID3D11HullShader *pHullShader, + + ID3D11ClassInstance *const *ppClassInstances, + UINT NumClassInstances) = 0; + + virtual void __stdcall HSSetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D11SamplerState *const *ppSamplers) = 0; + + virtual void __stdcall HSSetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D11Buffer *const *ppConstantBuffers) = 0; + + virtual void __stdcall DSSetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0; + + virtual void __stdcall DSSetShader( + + ID3D11DomainShader *pDomainShader, + + ID3D11ClassInstance *const *ppClassInstances, + UINT NumClassInstances) = 0; + + virtual void __stdcall DSSetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D11SamplerState *const *ppSamplers) = 0; + + virtual void __stdcall DSSetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D11Buffer *const *ppConstantBuffers) = 0; + + virtual void __stdcall CSSetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D11ShaderResourceView *const *ppShaderResourceViews) = 0; + + virtual void __stdcall CSSetUnorderedAccessViews( + + UINT StartSlot, + + UINT NumUAVs, + + ID3D11UnorderedAccessView *const *ppUnorderedAccessViews, + + const UINT *pUAVInitialCounts) = 0; + + virtual void __stdcall CSSetShader( + + ID3D11ComputeShader *pComputeShader, + + ID3D11ClassInstance *const *ppClassInstances, + UINT NumClassInstances) = 0; + + virtual void __stdcall CSSetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D11SamplerState *const *ppSamplers) = 0; + + virtual void __stdcall CSSetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D11Buffer *const *ppConstantBuffers) = 0; + + virtual void __stdcall VSGetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D11Buffer **ppConstantBuffers) = 0; + + virtual void __stdcall PSGetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D11ShaderResourceView **ppShaderResourceViews) = 0; + + virtual void __stdcall PSGetShader( + + ID3D11PixelShader **ppPixelShader, + + ID3D11ClassInstance **ppClassInstances, + + UINT *pNumClassInstances) = 0; + + virtual void __stdcall PSGetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D11SamplerState **ppSamplers) = 0; + + virtual void __stdcall VSGetShader( + + ID3D11VertexShader **ppVertexShader, + + ID3D11ClassInstance **ppClassInstances, + + UINT *pNumClassInstances) = 0; + + virtual void __stdcall PSGetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D11Buffer **ppConstantBuffers) = 0; + + virtual void __stdcall IAGetInputLayout( + + ID3D11InputLayout **ppInputLayout) = 0; + + virtual void __stdcall IAGetVertexBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D11Buffer **ppVertexBuffers, + + UINT *pStrides, + + UINT *pOffsets) = 0; + + virtual void __stdcall IAGetIndexBuffer( + + ID3D11Buffer **pIndexBuffer, + + DXGI_FORMAT *Format, + + UINT *Offset) = 0; + + virtual void __stdcall GSGetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D11Buffer **ppConstantBuffers) = 0; + + virtual void __stdcall GSGetShader( + + ID3D11GeometryShader **ppGeometryShader, + + ID3D11ClassInstance **ppClassInstances, + + UINT *pNumClassInstances) = 0; + + virtual void __stdcall IAGetPrimitiveTopology( + + D3D11_PRIMITIVE_TOPOLOGY *pTopology) = 0; + + virtual void __stdcall VSGetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D11ShaderResourceView **ppShaderResourceViews) = 0; + + virtual void __stdcall VSGetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D11SamplerState **ppSamplers) = 0; + + virtual void __stdcall GetPredication( + + ID3D11Predicate **ppPredicate, + + BOOL *pPredicateValue) = 0; + + virtual void __stdcall GSGetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D11ShaderResourceView **ppShaderResourceViews) = 0; + + virtual void __stdcall GSGetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D11SamplerState **ppSamplers) = 0; + + virtual void __stdcall OMGetRenderTargets( + + UINT NumViews, + + ID3D11RenderTargetView **ppRenderTargetViews, + + ID3D11DepthStencilView **ppDepthStencilView) = 0; + + virtual void __stdcall OMGetRenderTargetsAndUnorderedAccessViews( + + UINT NumRTVs, + + ID3D11RenderTargetView **ppRenderTargetViews, + + ID3D11DepthStencilView **ppDepthStencilView, + + UINT UAVStartSlot, + + UINT NumUAVs, + + ID3D11UnorderedAccessView **ppUnorderedAccessViews) = 0; + + virtual void __stdcall OMGetBlendState( + + ID3D11BlendState **ppBlendState, + + FLOAT BlendFactor[ 4 ], + + UINT *pSampleMask) = 0; + + virtual void __stdcall OMGetDepthStencilState( + + ID3D11DepthStencilState **ppDepthStencilState, + + UINT *pStencilRef) = 0; + + virtual void __stdcall SOGetTargets( + + UINT NumBuffers, + + ID3D11Buffer **ppSOTargets) = 0; + + virtual void __stdcall RSGetState( + + ID3D11RasterizerState **ppRasterizerState) = 0; + + virtual void __stdcall RSGetViewports( + + UINT *pNumViewports, + + D3D11_VIEWPORT *pViewports) = 0; + + virtual void __stdcall RSGetScissorRects( + + UINT *pNumRects, + + D3D11_RECT *pRects) = 0; + + virtual void __stdcall HSGetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D11ShaderResourceView **ppShaderResourceViews) = 0; + + virtual void __stdcall HSGetShader( + + ID3D11HullShader **ppHullShader, + + ID3D11ClassInstance **ppClassInstances, + + UINT *pNumClassInstances) = 0; + + virtual void __stdcall HSGetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D11SamplerState **ppSamplers) = 0; + + virtual void __stdcall HSGetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D11Buffer **ppConstantBuffers) = 0; + + virtual void __stdcall DSGetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D11ShaderResourceView **ppShaderResourceViews) = 0; + + virtual void __stdcall DSGetShader( + + ID3D11DomainShader **ppDomainShader, + + ID3D11ClassInstance **ppClassInstances, + + UINT *pNumClassInstances) = 0; + + virtual void __stdcall DSGetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D11SamplerState **ppSamplers) = 0; + + virtual void __stdcall DSGetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D11Buffer **ppConstantBuffers) = 0; + + virtual void __stdcall CSGetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D11ShaderResourceView **ppShaderResourceViews) = 0; + + virtual void __stdcall CSGetUnorderedAccessViews( + + UINT StartSlot, + + UINT NumUAVs, + + ID3D11UnorderedAccessView **ppUnorderedAccessViews) = 0; + + virtual void __stdcall CSGetShader( + + ID3D11ComputeShader **ppComputeShader, + + ID3D11ClassInstance **ppClassInstances, + + UINT *pNumClassInstances) = 0; + + virtual void __stdcall CSGetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D11SamplerState **ppSamplers) = 0; + + virtual void __stdcall CSGetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D11Buffer **ppConstantBuffers) = 0; + + virtual void __stdcall ClearState( void) = 0; + + virtual void __stdcall Flush( void) = 0; + + virtual D3D11_DEVICE_CONTEXT_TYPE __stdcall GetType( void) = 0; + + virtual UINT __stdcall GetContextFlags( void) = 0; + + virtual HRESULT __stdcall FinishCommandList( + BOOL RestoreDeferredContextState, + + ID3D11CommandList **ppCommandList) = 0; + + }; +# 9623 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +} +struct CD3D11_VIDEO_DEFAULT {}; +extern const __declspec(selectany) CD3D11_VIDEO_DEFAULT D3D11_VIDEO_DEFAULT; +extern "C"{ + + + + + +typedef HRESULT APP_DEPRECATED_HRESULT; + + +extern "C" const GUID D3D11_DECODER_PROFILE_MPEG2_MOCOMP; +extern "C" const GUID D3D11_DECODER_PROFILE_MPEG2_IDCT; +extern "C" const GUID D3D11_DECODER_PROFILE_MPEG2_VLD; +extern "C" const GUID D3D11_DECODER_PROFILE_MPEG1_VLD; +extern "C" const GUID D3D11_DECODER_PROFILE_MPEG2and1_VLD; +extern "C" const GUID D3D11_DECODER_PROFILE_H264_MOCOMP_NOFGT; +extern "C" const GUID D3D11_DECODER_PROFILE_H264_MOCOMP_FGT; +extern "C" const GUID D3D11_DECODER_PROFILE_H264_IDCT_NOFGT; +extern "C" const GUID D3D11_DECODER_PROFILE_H264_IDCT_FGT; +extern "C" const GUID D3D11_DECODER_PROFILE_H264_VLD_NOFGT; +extern "C" const GUID D3D11_DECODER_PROFILE_H264_VLD_FGT; +extern "C" const GUID D3D11_DECODER_PROFILE_H264_VLD_WITHFMOASO_NOFGT; +extern "C" const GUID D3D11_DECODER_PROFILE_H264_VLD_STEREO_PROGRESSIVE_NOFGT; +extern "C" const GUID D3D11_DECODER_PROFILE_H264_VLD_STEREO_NOFGT; +extern "C" const GUID D3D11_DECODER_PROFILE_H264_VLD_MULTIVIEW_NOFGT; +extern "C" const GUID D3D11_DECODER_PROFILE_WMV8_POSTPROC; +extern "C" const GUID D3D11_DECODER_PROFILE_WMV8_MOCOMP; +extern "C" const GUID D3D11_DECODER_PROFILE_WMV9_POSTPROC; +extern "C" const GUID D3D11_DECODER_PROFILE_WMV9_MOCOMP; +extern "C" const GUID D3D11_DECODER_PROFILE_WMV9_IDCT; +extern "C" const GUID D3D11_DECODER_PROFILE_VC1_POSTPROC; +extern "C" const GUID D3D11_DECODER_PROFILE_VC1_MOCOMP; +extern "C" const GUID D3D11_DECODER_PROFILE_VC1_IDCT; +extern "C" const GUID D3D11_DECODER_PROFILE_VC1_VLD; +extern "C" const GUID D3D11_DECODER_PROFILE_VC1_D2010; +extern "C" const GUID D3D11_DECODER_PROFILE_MPEG4PT2_VLD_SIMPLE; +extern "C" const GUID D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_NOGMC; +extern "C" const GUID D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_GMC; +extern "C" const GUID D3D11_DECODER_PROFILE_HEVC_VLD_MAIN; +extern "C" const GUID D3D11_DECODER_PROFILE_HEVC_VLD_MAIN10; +extern "C" const GUID D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0; +extern "C" const GUID D3D11_DECODER_PROFILE_VP9_VLD_10BIT_PROFILE2; +extern "C" const GUID D3D11_DECODER_PROFILE_VP8_VLD; +typedef struct D3D11_VIDEO_DECODER_DESC + { + GUID Guid; + UINT SampleWidth; + UINT SampleHeight; + DXGI_FORMAT OutputFormat; + } D3D11_VIDEO_DECODER_DESC; + +typedef struct D3D11_VIDEO_DECODER_CONFIG + { + GUID guidConfigBitstreamEncryption; + GUID guidConfigMBcontrolEncryption; + GUID guidConfigResidDiffEncryption; + UINT ConfigBitstreamRaw; + UINT ConfigMBcontrolRasterOrder; + UINT ConfigResidDiffHost; + UINT ConfigSpatialResid8; + UINT ConfigResid8Subtraction; + UINT ConfigSpatialHost8or9Clipping; + UINT ConfigSpatialResidInterleaved; + UINT ConfigIntraResidUnsigned; + UINT ConfigResidDiffAccelerator; + UINT ConfigHostInverseScan; + UINT ConfigSpecificIDCT; + UINT Config4GroupedCoefs; + USHORT ConfigMinRenderTargetBuffCount; + USHORT ConfigDecoderSpecific; + } D3D11_VIDEO_DECODER_CONFIG; + +typedef +enum D3D11_VIDEO_DECODER_BUFFER_TYPE + { + D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, + D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1, + D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2, + D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3, + D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4, + D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5, + D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6, + D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7, + D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8 + } D3D11_VIDEO_DECODER_BUFFER_TYPE; + +typedef struct _D3D11_AES_CTR_IV + { + UINT64 IV; + UINT64 Count; + } D3D11_AES_CTR_IV; + +typedef struct D3D11_ENCRYPTED_BLOCK_INFO + { + UINT NumEncryptedBytesAtBeginning; + UINT NumBytesInSkipPattern; + UINT NumBytesInEncryptPattern; + } D3D11_ENCRYPTED_BLOCK_INFO; + +typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC + { + D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; + UINT BufferIndex; + UINT DataOffset; + UINT DataSize; + UINT FirstMBaddress; + UINT NumMBsInBuffer; + UINT Width; + UINT Height; + UINT Stride; + UINT ReservedBits; + + void *pIV; + UINT IVSize; + BOOL PartialEncryption; + D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; + } D3D11_VIDEO_DECODER_BUFFER_DESC; + +typedef struct D3D11_VIDEO_DECODER_EXTENSION + { + UINT Function; + + void *pPrivateInputData; + UINT PrivateInputDataSize; + + void *pPrivateOutputData; + UINT PrivateOutputDataSize; + UINT ResourceCount; + + ID3D11Resource **ppResourceList; + } D3D11_VIDEO_DECODER_EXTENSION; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0030_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0030_v0_0_s_ifspec; +# 9769 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11VideoDecoder; + + + + struct __declspec(uuid("3C9C5B51-995D-48d1-9B8D-FA5CAEDED65C")) __declspec(novtable) + ID3D11VideoDecoder : public ID3D11DeviceChild + { + public: + virtual HRESULT __stdcall GetCreationParameters( + + D3D11_VIDEO_DECODER_DESC *pVideoDesc, + + D3D11_VIDEO_DECODER_CONFIG *pConfig) = 0; + + virtual HRESULT __stdcall GetDriverHandle( + + HANDLE *pDriverHandle) = 0; + + }; +# 9906 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef +enum D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT + { + D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_INPUT = 0x1, + D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_OUTPUT = 0x2 + } D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT; + +typedef +enum D3D11_VIDEO_PROCESSOR_DEVICE_CAPS + { + D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_LINEAR_SPACE = 0x1, + D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_xvYCC = 0x2, + D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_RGB_RANGE_CONVERSION = 0x4, + D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION = 0x8, + D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_NOMINAL_RANGE = 0x10 + } D3D11_VIDEO_PROCESSOR_DEVICE_CAPS; + +typedef +enum D3D11_VIDEO_PROCESSOR_FEATURE_CAPS + { + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_FILL = 0x1, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION = 0x2, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY = 0x4, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_PALETTE = 0x8, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LEGACY = 0x10, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_STEREO = 0x20, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION = 0x40, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_STREAM = 0x80, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_PIXEL_ASPECT_RATIO = 0x100, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_MIRROR = 0x200, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_SHADER_USAGE = 0x400, + D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_METADATA_HDR10 = 0x800 + } D3D11_VIDEO_PROCESSOR_FEATURE_CAPS; + +typedef +enum D3D11_VIDEO_PROCESSOR_FILTER_CAPS + { + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_BRIGHTNESS = 0x1, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_CONTRAST = 0x2, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_HUE = 0x4, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_SATURATION = 0x8, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_NOISE_REDUCTION = 0x10, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_EDGE_ENHANCEMENT = 0x20, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_ANAMORPHIC_SCALING = 0x40, + D3D11_VIDEO_PROCESSOR_FILTER_CAPS_STEREO_ADJUSTMENT = 0x80 + } D3D11_VIDEO_PROCESSOR_FILTER_CAPS; + +typedef +enum D3D11_VIDEO_PROCESSOR_FORMAT_CAPS + { + D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_INTERLACED = 0x1, + D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_PROCAMP = 0x2, + D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY = 0x4, + D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_PALETTE_INTERLACED = 0x8 + } D3D11_VIDEO_PROCESSOR_FORMAT_CAPS; + +typedef +enum D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS + { + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DENOISE = 0x1, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DERINGING = 0x2, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_EDGE_ENHANCEMENT = 0x4, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_COLOR_CORRECTION = 0x8, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_FLESH_TONE_MAPPING = 0x10, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_IMAGE_STABILIZATION = 0x20, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_SUPER_RESOLUTION = 0x40, + D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_ANAMORPHIC_SCALING = 0x80 + } D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS; + +typedef +enum D3D11_VIDEO_PROCESSOR_STEREO_CAPS + { + D3D11_VIDEO_PROCESSOR_STEREO_CAPS_MONO_OFFSET = 0x1, + D3D11_VIDEO_PROCESSOR_STEREO_CAPS_ROW_INTERLEAVED = 0x2, + D3D11_VIDEO_PROCESSOR_STEREO_CAPS_COLUMN_INTERLEAVED = 0x4, + D3D11_VIDEO_PROCESSOR_STEREO_CAPS_CHECKERBOARD = 0x8, + D3D11_VIDEO_PROCESSOR_STEREO_CAPS_FLIP_MODE = 0x10 + } D3D11_VIDEO_PROCESSOR_STEREO_CAPS; + +typedef struct D3D11_VIDEO_PROCESSOR_CAPS + { + UINT DeviceCaps; + UINT FeatureCaps; + UINT FilterCaps; + UINT InputFormatCaps; + UINT AutoStreamCaps; + UINT StereoCaps; + UINT RateConversionCapsCount; + UINT MaxInputStreams; + UINT MaxStreamStates; + } D3D11_VIDEO_PROCESSOR_CAPS; + +typedef +enum D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS + { + D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BLEND = 0x1, + D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BOB = 0x2, + D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE = 0x4, + D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION = 0x8, + D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_INVERSE_TELECINE = 0x10, + D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_FRAME_RATE_CONVERSION = 0x20 + } D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS; + +typedef +enum D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS + { + D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32 = 0x1, + D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_22 = 0x2, + D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2224 = 0x4, + D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2332 = 0x8, + D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32322 = 0x10, + D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_55 = 0x20, + D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_64 = 0x40, + D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_87 = 0x80, + D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_222222222223 = 0x100, + D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_OTHER = 0x80000000 + } D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS; + +typedef struct D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS + { + UINT PastFrames; + UINT FutureFrames; + UINT ProcessorCaps; + UINT ITelecineCaps; + UINT CustomRateCount; + } D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS; + +typedef +enum D3D11_CONTENT_PROTECTION_CAPS + { + D3D11_CONTENT_PROTECTION_CAPS_SOFTWARE = 0x1, + D3D11_CONTENT_PROTECTION_CAPS_HARDWARE = 0x2, + D3D11_CONTENT_PROTECTION_CAPS_PROTECTION_ALWAYS_ON = 0x4, + D3D11_CONTENT_PROTECTION_CAPS_PARTIAL_DECRYPTION = 0x8, + D3D11_CONTENT_PROTECTION_CAPS_CONTENT_KEY = 0x10, + D3D11_CONTENT_PROTECTION_CAPS_FRESHEN_SESSION_KEY = 0x20, + D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK = 0x40, + D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY = 0x80, + D3D11_CONTENT_PROTECTION_CAPS_SEQUENTIAL_CTR_IV = 0x100, + D3D11_CONTENT_PROTECTION_CAPS_ENCRYPT_SLICEDATA_ONLY = 0x200, + D3D11_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT = 0x400, + D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECT_UNCOMPRESSED = 0x800, + D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECTED_MEMORY_PAGEABLE = 0x1000, + D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_TEARDOWN = 0x2000, + D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_DRM_COMMUNICATION = 0x4000 + } D3D11_CONTENT_PROTECTION_CAPS; + +extern "C" const GUID D3D11_CRYPTO_TYPE_AES128_CTR; +extern "C" const GUID D3D11_DECODER_ENCRYPTION_HW_CENC; +extern "C" const GUID D3D11_KEY_EXCHANGE_HW_PROTECTION; +typedef struct D3D11_VIDEO_CONTENT_PROTECTION_CAPS + { + UINT Caps; + UINT KeyExchangeTypeCount; + UINT BlockAlignmentSize; + ULONGLONG ProtectedMemorySize; + } D3D11_VIDEO_CONTENT_PROTECTION_CAPS; + +typedef struct D3D11_VIDEO_PROCESSOR_CUSTOM_RATE + { + DXGI_RATIONAL CustomRate; + UINT OutputFrames; + BOOL InputInterlaced; + UINT InputFramesOrFields; + } D3D11_VIDEO_PROCESSOR_CUSTOM_RATE; + +typedef +enum D3D11_VIDEO_PROCESSOR_FILTER + { + D3D11_VIDEO_PROCESSOR_FILTER_BRIGHTNESS = 0, + D3D11_VIDEO_PROCESSOR_FILTER_CONTRAST = 1, + D3D11_VIDEO_PROCESSOR_FILTER_HUE = 2, + D3D11_VIDEO_PROCESSOR_FILTER_SATURATION = 3, + D3D11_VIDEO_PROCESSOR_FILTER_NOISE_REDUCTION = 4, + D3D11_VIDEO_PROCESSOR_FILTER_EDGE_ENHANCEMENT = 5, + D3D11_VIDEO_PROCESSOR_FILTER_ANAMORPHIC_SCALING = 6, + D3D11_VIDEO_PROCESSOR_FILTER_STEREO_ADJUSTMENT = 7 + } D3D11_VIDEO_PROCESSOR_FILTER; + +typedef struct D3D11_VIDEO_PROCESSOR_FILTER_RANGE + { + int Minimum; + int Maximum; + int Default; + float Multiplier; + } D3D11_VIDEO_PROCESSOR_FILTER_RANGE; + +typedef +enum D3D11_VIDEO_FRAME_FORMAT + { + D3D11_VIDEO_FRAME_FORMAT_PROGRESSIVE = 0, + D3D11_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1, + D3D11_VIDEO_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2 + } D3D11_VIDEO_FRAME_FORMAT; + +typedef +enum D3D11_VIDEO_USAGE + { + D3D11_VIDEO_USAGE_PLAYBACK_NORMAL = 0, + D3D11_VIDEO_USAGE_OPTIMAL_SPEED = 1, + D3D11_VIDEO_USAGE_OPTIMAL_QUALITY = 2 + } D3D11_VIDEO_USAGE; + +typedef struct D3D11_VIDEO_PROCESSOR_CONTENT_DESC + { + D3D11_VIDEO_FRAME_FORMAT InputFrameFormat; + DXGI_RATIONAL InputFrameRate; + UINT InputWidth; + UINT InputHeight; + DXGI_RATIONAL OutputFrameRate; + UINT OutputWidth; + UINT OutputHeight; + D3D11_VIDEO_USAGE Usage; + } D3D11_VIDEO_PROCESSOR_CONTENT_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0031_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0031_v0_0_s_ifspec; +# 10133 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11VideoProcessorEnumerator; + + + + struct __declspec(uuid("31627037-53AB-4200-9061-05FAA9AB45F9")) __declspec(novtable) + ID3D11VideoProcessorEnumerator : public ID3D11DeviceChild + { + public: + virtual HRESULT __stdcall GetVideoProcessorContentDesc( + + D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc) = 0; + + virtual HRESULT __stdcall CheckVideoProcessorFormat( + + DXGI_FORMAT Format, + + UINT *pFlags) = 0; + + virtual HRESULT __stdcall GetVideoProcessorCaps( + + D3D11_VIDEO_PROCESSOR_CAPS *pCaps) = 0; + + virtual HRESULT __stdcall GetVideoProcessorRateConversionCaps( + + UINT TypeIndex, + + D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps) = 0; + + virtual HRESULT __stdcall GetVideoProcessorCustomRate( + + UINT TypeIndex, + + UINT CustomRateIndex, + + D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate) = 0; + + virtual HRESULT __stdcall GetVideoProcessorFilterRange( + + D3D11_VIDEO_PROCESSOR_FILTER Filter, + + D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange) = 0; + + }; +# 10334 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef struct D3D11_VIDEO_COLOR_RGBA + { + float R; + float G; + float B; + float A; + } D3D11_VIDEO_COLOR_RGBA; + +typedef struct D3D11_VIDEO_COLOR_YCbCrA + { + float Y; + float Cb; + float Cr; + float A; + } D3D11_VIDEO_COLOR_YCbCrA; + +typedef struct D3D11_VIDEO_COLOR + { + union + { + D3D11_VIDEO_COLOR_YCbCrA YCbCr; + D3D11_VIDEO_COLOR_RGBA RGBA; + } ; + } D3D11_VIDEO_COLOR; + +typedef +enum D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE + { + D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_UNDEFINED = 0, + D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_16_235 = 1, + D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_0_255 = 2 + } D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE; + +typedef struct D3D11_VIDEO_PROCESSOR_COLOR_SPACE + { + UINT Usage : 1; + UINT RGB_Range : 1; + UINT YCbCr_Matrix : 1; + UINT YCbCr_xvYCC : 1; + UINT Nominal_Range : 2; + UINT Reserved : 26; + } D3D11_VIDEO_PROCESSOR_COLOR_SPACE; + +typedef +enum D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE + { + D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_OPAQUE = 0, + D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_BACKGROUND = 1, + D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_DESTINATION = 2, + D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_SOURCE_STREAM = 3 + } D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE; + +typedef +enum D3D11_VIDEO_PROCESSOR_OUTPUT_RATE + { + D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_NORMAL = 0, + D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_HALF = 1, + D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_CUSTOM = 2 + } D3D11_VIDEO_PROCESSOR_OUTPUT_RATE; + +typedef +enum D3D11_VIDEO_PROCESSOR_STEREO_FORMAT + { + D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO = 0, + D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_HORIZONTAL = 1, + D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_VERTICAL = 2, + D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_SEPARATE = 3, + D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET = 4, + D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_ROW_INTERLEAVED = 5, + D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_COLUMN_INTERLEAVED = 6, + D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_CHECKERBOARD = 7 + } D3D11_VIDEO_PROCESSOR_STEREO_FORMAT; + +typedef +enum D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE + { + D3D11_VIDEO_PROCESSOR_STEREO_FLIP_NONE = 0, + D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME0 = 1, + D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME1 = 2 + } D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE; + +typedef +enum D3D11_VIDEO_PROCESSOR_ROTATION + { + D3D11_VIDEO_PROCESSOR_ROTATION_IDENTITY = 0, + D3D11_VIDEO_PROCESSOR_ROTATION_90 = 1, + D3D11_VIDEO_PROCESSOR_ROTATION_180 = 2, + D3D11_VIDEO_PROCESSOR_ROTATION_270 = 3 + } D3D11_VIDEO_PROCESSOR_ROTATION; + +typedef struct D3D11_VIDEO_PROCESSOR_STREAM + { + BOOL Enable; + UINT OutputIndex; + UINT InputFrameOrField; + UINT PastFrames; + UINT FutureFrames; + + ID3D11VideoProcessorInputView **ppPastSurfaces; + ID3D11VideoProcessorInputView *pInputSurface; + + ID3D11VideoProcessorInputView **ppFutureSurfaces; + + ID3D11VideoProcessorInputView **ppPastSurfacesRight; + ID3D11VideoProcessorInputView *pInputSurfaceRight; + + ID3D11VideoProcessorInputView **ppFutureSurfacesRight; + } D3D11_VIDEO_PROCESSOR_STREAM; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0032_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0032_v0_0_s_ifspec; +# 10455 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11VideoProcessor; + + + + struct __declspec(uuid("1D7B0652-185F-41c6-85CE-0C5BE3D4AE6C")) __declspec(novtable) + ID3D11VideoProcessor : public ID3D11DeviceChild + { + public: + virtual void __stdcall GetContentDesc( + + D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc) = 0; + + virtual void __stdcall GetRateConversionCaps( + + D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps) = 0; + + }; +# 10588 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef struct D3D11_OMAC + { + BYTE Omac[ 16 ]; + } D3D11_OMAC; + +typedef +enum D3D11_AUTHENTICATED_CHANNEL_TYPE + { + D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1, + D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE = 2, + D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE = 3 + } D3D11_AUTHENTICATED_CHANNEL_TYPE; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0033_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0033_v0_0_s_ifspec; +# 10613 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11AuthenticatedChannel; + + + + struct __declspec(uuid("3015A308-DCBD-47aa-A747-192486D14D4A")) __declspec(novtable) + ID3D11AuthenticatedChannel : public ID3D11DeviceChild + { + public: + virtual HRESULT __stdcall GetCertificateSize( + + UINT *pCertificateSize) = 0; + + virtual HRESULT __stdcall GetCertificate( + + UINT CertificateSize, + + BYTE *pCertificate) = 0; + + virtual void __stdcall GetChannelHandle( + + HANDLE *pChannelHandle) = 0; + + }; +# 10762 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const GUID D3D11_AUTHENTICATED_QUERY_PROTECTION; +extern "C" const GUID D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE; +extern "C" const GUID D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE; +extern "C" const GUID D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION; +extern "C" const GUID D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT; +extern "C" const GUID D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS; +extern "C" const GUID D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT; +extern "C" const GUID D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT; +extern "C" const GUID D3D11_AUTHENTICATED_QUERY_OUTPUT_ID; +extern "C" const GUID D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ATTRIBUTES; +extern "C" const GUID D3D11_AUTHENTICATED_QUERY_ENCRYPTION_WHEN_ACCESSIBLE_GUID_COUNT; +extern "C" const GUID D3D11_AUTHENTICATED_QUERY_ENCRYPTION_WHEN_ACCESSIBLE_GUID; +extern "C" const GUID D3D11_AUTHENTICATED_QUERY_CURRENT_ENCRYPTION_WHEN_ACCESSIBLE; +extern "C" const GUID D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE; +extern "C" const GUID D3D11_AUTHENTICATED_CONFIGURE_PROTECTION; +extern "C" const GUID D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION; +extern "C" const GUID D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE; +extern "C" const GUID D3D11_AUTHENTICATED_CONFIGURE_ENCRYPTION_WHEN_ACCESSIBLE; +typedef struct D3D11_AUTHENTICATED_QUERY_INPUT + { + GUID QueryType; + HANDLE hChannel; + UINT SequenceNumber; + } D3D11_AUTHENTICATED_QUERY_INPUT; + +typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT + { + D3D11_OMAC omac; + GUID QueryType; + HANDLE hChannel; + UINT SequenceNumber; + HRESULT ReturnCode; + } D3D11_AUTHENTICATED_QUERY_OUTPUT; + +typedef union D3D11_AUTHENTICATED_PROTECTION_FLAGS + { + struct __MIDL___MIDL_itf_d3d11_0000_0034_0001 + { + UINT ProtectionEnabled : 1; + UINT OverlayOrFullscreenRequired : 1; + UINT Reserved : 30; + } Flags; + UINT Value; + } D3D11_AUTHENTICATED_PROTECTION_FLAGS; + +typedef struct D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT + { + D3D11_AUTHENTICATED_QUERY_OUTPUT Output; + D3D11_AUTHENTICATED_PROTECTION_FLAGS ProtectionFlags; + } D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT; + +typedef struct D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT + { + D3D11_AUTHENTICATED_QUERY_OUTPUT Output; + D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType; + } D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT; + +typedef struct D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT + { + D3D11_AUTHENTICATED_QUERY_OUTPUT Output; + HANDLE DeviceHandle; + } D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT; + +typedef struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT + { + D3D11_AUTHENTICATED_QUERY_INPUT Input; + HANDLE DecoderHandle; + } D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT; + +typedef struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT + { + D3D11_AUTHENTICATED_QUERY_OUTPUT Output; + HANDLE DecoderHandle; + HANDLE CryptoSessionHandle; + HANDLE DeviceHandle; + } D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT; + +typedef struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT + { + D3D11_AUTHENTICATED_QUERY_OUTPUT Output; + UINT RestrictedSharedResourceProcessCount; + } D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT; + +typedef struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT + { + D3D11_AUTHENTICATED_QUERY_INPUT Input; + UINT ProcessIndex; + } D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT; + +typedef +enum D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE + { + D3D11_PROCESSIDTYPE_UNKNOWN = 0, + D3D11_PROCESSIDTYPE_DWM = 1, + D3D11_PROCESSIDTYPE_HANDLE = 2 + } D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE; + +typedef struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT + { + D3D11_AUTHENTICATED_QUERY_OUTPUT Output; + UINT ProcessIndex; + D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE ProcessIdentifier; + HANDLE ProcessHandle; + } D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT; + +typedef struct D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT + { + D3D11_AUTHENTICATED_QUERY_OUTPUT Output; + UINT UnrestrictedProtectedSharedResourceCount; + } D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT; + +typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT + { + D3D11_AUTHENTICATED_QUERY_INPUT Input; + HANDLE DeviceHandle; + HANDLE CryptoSessionHandle; + } D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT; + +typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT + { + D3D11_AUTHENTICATED_QUERY_OUTPUT Output; + HANDLE DeviceHandle; + HANDLE CryptoSessionHandle; + UINT OutputIDCount; + } D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT; + +typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT + { + D3D11_AUTHENTICATED_QUERY_INPUT Input; + HANDLE DeviceHandle; + HANDLE CryptoSessionHandle; + UINT OutputIDIndex; + } D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT; + +typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT + { + D3D11_AUTHENTICATED_QUERY_OUTPUT Output; + HANDLE DeviceHandle; + HANDLE CryptoSessionHandle; + UINT OutputIDIndex; + UINT64 OutputID; + } D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT; + +typedef +enum D3D11_BUS_TYPE + { + D3D11_BUS_TYPE_OTHER = 0, + D3D11_BUS_TYPE_PCI = 0x1, + D3D11_BUS_TYPE_PCIX = 0x2, + D3D11_BUS_TYPE_PCIEXPRESS = 0x3, + D3D11_BUS_TYPE_AGP = 0x4, + D3D11_BUS_IMPL_MODIFIER_INSIDE_OF_CHIPSET = 0x10000, + D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP = 0x20000, + D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET = 0x30000, + D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR = 0x40000, + D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE = 0x50000, + D3D11_BUS_IMPL_MODIFIER_NON_STANDARD = 0x80000000 + } D3D11_BUS_TYPE; + +typedef struct D3D11_AUTHENTICATED_QUERY_ACESSIBILITY_OUTPUT + { + D3D11_AUTHENTICATED_QUERY_OUTPUT Output; + D3D11_BUS_TYPE BusType; + BOOL AccessibleInContiguousBlocks; + BOOL AccessibleInNonContiguousBlocks; + } D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_OUTPUT; + +typedef struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT + { + D3D11_AUTHENTICATED_QUERY_OUTPUT Output; + UINT EncryptionGuidCount; + } D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT; + +typedef struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT + { + D3D11_AUTHENTICATED_QUERY_INPUT Input; + UINT EncryptionGuidIndex; + } D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT; + +typedef struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT + { + D3D11_AUTHENTICATED_QUERY_OUTPUT Output; + UINT EncryptionGuidIndex; + GUID EncryptionGuid; + } D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT; + +typedef struct D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT + { + D3D11_AUTHENTICATED_QUERY_OUTPUT Output; + GUID EncryptionGuid; + } D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT; + +typedef struct D3D11_AUTHENTICATED_CONFIGURE_INPUT + { + D3D11_OMAC omac; + GUID ConfigureType; + HANDLE hChannel; + UINT SequenceNumber; + } D3D11_AUTHENTICATED_CONFIGURE_INPUT; + +typedef struct D3D11_AUTHENTICATED_CONFIGURE_OUTPUT + { + D3D11_OMAC omac; + GUID ConfigureType; + HANDLE hChannel; + UINT SequenceNumber; + HRESULT ReturnCode; + } D3D11_AUTHENTICATED_CONFIGURE_OUTPUT; + +typedef struct D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT + { + D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters; + UINT StartSequenceQuery; + UINT StartSequenceConfigure; + } D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT; + +typedef struct D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT + { + D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters; + D3D11_AUTHENTICATED_PROTECTION_FLAGS Protections; + } D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT; + +typedef struct D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT + { + D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters; + HANDLE DecoderHandle; + HANDLE CryptoSessionHandle; + HANDLE DeviceHandle; + } D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT; + +typedef struct D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT + { + D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters; + D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE ProcessType; + HANDLE ProcessHandle; + BOOL AllowAccess; + } D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT; + +typedef struct D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT + { + D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters; + GUID EncryptionGuid; + } D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT; + +extern "C" const GUID D3D11_KEY_EXCHANGE_RSAES_OAEP; + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0034_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0034_v0_0_s_ifspec; +# 11019 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11CryptoSession; + + + + struct __declspec(uuid("9B32F9AD-BDCC-40a6-A39D-D5C865845720")) __declspec(novtable) + ID3D11CryptoSession : public ID3D11DeviceChild + { + public: + virtual void __stdcall GetCryptoType( + + GUID *pCryptoType) = 0; + + virtual void __stdcall GetDecoderProfile( + + GUID *pDecoderProfile) = 0; + + virtual HRESULT __stdcall GetCertificateSize( + + UINT *pCertificateSize) = 0; + + virtual HRESULT __stdcall GetCertificate( + + UINT CertificateSize, + + BYTE *pCertificate) = 0; + + virtual void __stdcall GetCryptoSessionHandle( + + HANDLE *pCryptoSessionHandle) = 0; + + }; +# 11192 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef +enum D3D11_VDOV_DIMENSION + { + D3D11_VDOV_DIMENSION_UNKNOWN = 0, + D3D11_VDOV_DIMENSION_TEXTURE2D = 1 + } D3D11_VDOV_DIMENSION; + +typedef struct D3D11_TEX2D_VDOV + { + UINT ArraySlice; + } D3D11_TEX2D_VDOV; + +typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC + { + GUID DecodeProfile; + D3D11_VDOV_DIMENSION ViewDimension; + union + { + D3D11_TEX2D_VDOV Texture2D; + } ; + } D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0035_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0035_v0_0_s_ifspec; +# 11226 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11VideoDecoderOutputView; + + + + struct __declspec(uuid("C2931AEA-2A85-4f20-860F-FBA1FD256E18")) __declspec(novtable) + ID3D11VideoDecoderOutputView : public ID3D11View + { + public: + virtual void __stdcall GetDesc( + + D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) = 0; + + }; +# 11356 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef +enum D3D11_VPIV_DIMENSION + { + D3D11_VPIV_DIMENSION_UNKNOWN = 0, + D3D11_VPIV_DIMENSION_TEXTURE2D = 1 + } D3D11_VPIV_DIMENSION; + +typedef struct D3D11_TEX2D_VPIV + { + UINT MipSlice; + UINT ArraySlice; + } D3D11_TEX2D_VPIV; + +typedef struct D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC + { + UINT FourCC; + D3D11_VPIV_DIMENSION ViewDimension; + union + { + D3D11_TEX2D_VPIV Texture2D; + } ; + } D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0036_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0036_v0_0_s_ifspec; +# 11391 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11VideoProcessorInputView; + + + + struct __declspec(uuid("11EC5A5F-51DC-4945-AB34-6E8C21300EA5")) __declspec(novtable) + ID3D11VideoProcessorInputView : public ID3D11View + { + public: + virtual void __stdcall GetDesc( + + D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc) = 0; + + }; +# 11521 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef +enum D3D11_VPOV_DIMENSION + { + D3D11_VPOV_DIMENSION_UNKNOWN = 0, + D3D11_VPOV_DIMENSION_TEXTURE2D = 1, + D3D11_VPOV_DIMENSION_TEXTURE2DARRAY = 2 + } D3D11_VPOV_DIMENSION; + +typedef struct D3D11_TEX2D_VPOV + { + UINT MipSlice; + } D3D11_TEX2D_VPOV; + +typedef struct D3D11_TEX2D_ARRAY_VPOV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + } D3D11_TEX2D_ARRAY_VPOV; + +typedef struct D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC + { + D3D11_VPOV_DIMENSION ViewDimension; + union + { + D3D11_TEX2D_VPOV Texture2D; + D3D11_TEX2D_ARRAY_VPOV Texture2DArray; + } ; + } D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0037_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0037_v0_0_s_ifspec; +# 11563 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11VideoProcessorOutputView; + + + + struct __declspec(uuid("A048285E-25A9-4527-BD93-D68B68C44254")) __declspec(novtable) + ID3D11VideoProcessorOutputView : public ID3D11View + { + public: + virtual void __stdcall GetDesc( + + D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc) = 0; + + }; +# 11697 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11VideoContext; + + + + struct __declspec(uuid("61F21C45-3C0E-4a74-9CEA-67100D9AD5E4")) __declspec(novtable) + ID3D11VideoContext : public ID3D11DeviceChild + { + public: + virtual HRESULT __stdcall GetDecoderBuffer( + + ID3D11VideoDecoder *pDecoder, + D3D11_VIDEO_DECODER_BUFFER_TYPE Type, + + UINT *pBufferSize, + + void **ppBuffer) = 0; + + virtual HRESULT __stdcall ReleaseDecoderBuffer( + + ID3D11VideoDecoder *pDecoder, + + D3D11_VIDEO_DECODER_BUFFER_TYPE Type) = 0; + + virtual HRESULT __stdcall DecoderBeginFrame( + + ID3D11VideoDecoder *pDecoder, + + ID3D11VideoDecoderOutputView *pView, + UINT ContentKeySize, + + const void *pContentKey) = 0; + + virtual HRESULT __stdcall DecoderEndFrame( + + ID3D11VideoDecoder *pDecoder) = 0; + + virtual HRESULT __stdcall SubmitDecoderBuffers( + + ID3D11VideoDecoder *pDecoder, + + UINT NumBuffers, + + const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) = 0; + + virtual APP_DEPRECATED_HRESULT __stdcall DecoderExtension( + + ID3D11VideoDecoder *pDecoder, + + const D3D11_VIDEO_DECODER_EXTENSION *pExtensionData) = 0; + + virtual void __stdcall VideoProcessorSetOutputTargetRect( + + ID3D11VideoProcessor *pVideoProcessor, + + BOOL Enable, + + const RECT *pRect) = 0; + + virtual void __stdcall VideoProcessorSetOutputBackgroundColor( + + ID3D11VideoProcessor *pVideoProcessor, + + BOOL YCbCr, + + const D3D11_VIDEO_COLOR *pColor) = 0; + + virtual void __stdcall VideoProcessorSetOutputColorSpace( + + ID3D11VideoProcessor *pVideoProcessor, + + const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace) = 0; + + virtual void __stdcall VideoProcessorSetOutputAlphaFillMode( + + ID3D11VideoProcessor *pVideoProcessor, + + D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE AlphaFillMode, + + UINT StreamIndex) = 0; + + virtual void __stdcall VideoProcessorSetOutputConstriction( + + ID3D11VideoProcessor *pVideoProcessor, + + BOOL Enable, + + SIZE Size) = 0; + + virtual void __stdcall VideoProcessorSetOutputStereoMode( + + ID3D11VideoProcessor *pVideoProcessor, + + BOOL Enable) = 0; + + virtual APP_DEPRECATED_HRESULT __stdcall VideoProcessorSetOutputExtension( + + ID3D11VideoProcessor *pVideoProcessor, + + const GUID *pExtensionGuid, + + UINT DataSize, + + void *pData) = 0; + + virtual void __stdcall VideoProcessorGetOutputTargetRect( + + ID3D11VideoProcessor *pVideoProcessor, + + BOOL *Enabled, + + RECT *pRect) = 0; + + virtual void __stdcall VideoProcessorGetOutputBackgroundColor( + + ID3D11VideoProcessor *pVideoProcessor, + + BOOL *pYCbCr, + + D3D11_VIDEO_COLOR *pColor) = 0; + + virtual void __stdcall VideoProcessorGetOutputColorSpace( + + ID3D11VideoProcessor *pVideoProcessor, + + D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace) = 0; + + virtual void __stdcall VideoProcessorGetOutputAlphaFillMode( + + ID3D11VideoProcessor *pVideoProcessor, + + D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *pAlphaFillMode, + + UINT *pStreamIndex) = 0; + + virtual void __stdcall VideoProcessorGetOutputConstriction( + + ID3D11VideoProcessor *pVideoProcessor, + + BOOL *pEnabled, + + SIZE *pSize) = 0; + + virtual void __stdcall VideoProcessorGetOutputStereoMode( + + ID3D11VideoProcessor *pVideoProcessor, + + BOOL *pEnabled) = 0; + + virtual APP_DEPRECATED_HRESULT __stdcall VideoProcessorGetOutputExtension( + + ID3D11VideoProcessor *pVideoProcessor, + + const GUID *pExtensionGuid, + + UINT DataSize, + + void *pData) = 0; + + virtual void __stdcall VideoProcessorSetStreamFrameFormat( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + D3D11_VIDEO_FRAME_FORMAT FrameFormat) = 0; + + virtual void __stdcall VideoProcessorSetStreamColorSpace( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace) = 0; + + virtual void __stdcall VideoProcessorSetStreamOutputRate( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + D3D11_VIDEO_PROCESSOR_OUTPUT_RATE OutputRate, + + BOOL RepeatFrame, + + const DXGI_RATIONAL *pCustomRate) = 0; + + virtual void __stdcall VideoProcessorSetStreamSourceRect( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + BOOL Enable, + + const RECT *pRect) = 0; + + virtual void __stdcall VideoProcessorSetStreamDestRect( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + BOOL Enable, + + const RECT *pRect) = 0; + + virtual void __stdcall VideoProcessorSetStreamAlpha( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + BOOL Enable, + + FLOAT Alpha) = 0; + + virtual void __stdcall VideoProcessorSetStreamPalette( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + UINT Count, + + const UINT *pEntries) = 0; + + virtual void __stdcall VideoProcessorSetStreamPixelAspectRatio( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + BOOL Enable, + + const DXGI_RATIONAL *pSourceAspectRatio, + + const DXGI_RATIONAL *pDestinationAspectRatio) = 0; + + virtual void __stdcall VideoProcessorSetStreamLumaKey( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + BOOL Enable, + + FLOAT Lower, + + FLOAT Upper) = 0; + + virtual void __stdcall VideoProcessorSetStreamStereoFormat( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + BOOL Enable, + + D3D11_VIDEO_PROCESSOR_STEREO_FORMAT Format, + + BOOL LeftViewFrame0, + + BOOL BaseViewFrame0, + + D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE FlipMode, + + int MonoOffset) = 0; + + virtual void __stdcall VideoProcessorSetStreamAutoProcessingMode( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + BOOL Enable) = 0; + + virtual void __stdcall VideoProcessorSetStreamFilter( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + D3D11_VIDEO_PROCESSOR_FILTER Filter, + + BOOL Enable, + + int Level) = 0; + + virtual APP_DEPRECATED_HRESULT __stdcall VideoProcessorSetStreamExtension( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + const GUID *pExtensionGuid, + + UINT DataSize, + + void *pData) = 0; + + virtual void __stdcall VideoProcessorGetStreamFrameFormat( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + D3D11_VIDEO_FRAME_FORMAT *pFrameFormat) = 0; + + virtual void __stdcall VideoProcessorGetStreamColorSpace( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace) = 0; + + virtual void __stdcall VideoProcessorGetStreamOutputRate( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *pOutputRate, + + BOOL *pRepeatFrame, + + DXGI_RATIONAL *pCustomRate) = 0; + + virtual void __stdcall VideoProcessorGetStreamSourceRect( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + BOOL *pEnabled, + + RECT *pRect) = 0; + + virtual void __stdcall VideoProcessorGetStreamDestRect( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + BOOL *pEnabled, + + RECT *pRect) = 0; + + virtual void __stdcall VideoProcessorGetStreamAlpha( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + BOOL *pEnabled, + + FLOAT *pAlpha) = 0; + + virtual void __stdcall VideoProcessorGetStreamPalette( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + UINT Count, + + UINT *pEntries) = 0; + + virtual void __stdcall VideoProcessorGetStreamPixelAspectRatio( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + BOOL *pEnabled, + + DXGI_RATIONAL *pSourceAspectRatio, + + DXGI_RATIONAL *pDestinationAspectRatio) = 0; + + virtual void __stdcall VideoProcessorGetStreamLumaKey( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + BOOL *pEnabled, + + FLOAT *pLower, + + FLOAT *pUpper) = 0; + + virtual void __stdcall VideoProcessorGetStreamStereoFormat( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + BOOL *pEnable, + + D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *pFormat, + + BOOL *pLeftViewFrame0, + + BOOL *pBaseViewFrame0, + + D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *pFlipMode, + + int *MonoOffset) = 0; + + virtual void __stdcall VideoProcessorGetStreamAutoProcessingMode( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + BOOL *pEnabled) = 0; + + virtual void __stdcall VideoProcessorGetStreamFilter( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + D3D11_VIDEO_PROCESSOR_FILTER Filter, + + BOOL *pEnabled, + + int *pLevel) = 0; + + virtual APP_DEPRECATED_HRESULT __stdcall VideoProcessorGetStreamExtension( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + const GUID *pExtensionGuid, + + UINT DataSize, + + void *pData) = 0; + + virtual HRESULT __stdcall VideoProcessorBlt( + + ID3D11VideoProcessor *pVideoProcessor, + + ID3D11VideoProcessorOutputView *pView, + + UINT OutputFrame, + + UINT StreamCount, + + const D3D11_VIDEO_PROCESSOR_STREAM *pStreams) = 0; + + virtual HRESULT __stdcall NegotiateCryptoSessionKeyExchange( + + ID3D11CryptoSession *pCryptoSession, + + UINT DataSize, + + void *pData) = 0; + + virtual void __stdcall EncryptionBlt( + + ID3D11CryptoSession *pCryptoSession, + + ID3D11Texture2D *pSrcSurface, + + ID3D11Texture2D *pDstSurface, + + UINT IVSize, + + void *pIV) = 0; + + virtual void __stdcall DecryptionBlt( + + ID3D11CryptoSession *pCryptoSession, + + ID3D11Texture2D *pSrcSurface, + + ID3D11Texture2D *pDstSurface, + + D3D11_ENCRYPTED_BLOCK_INFO *pEncryptedBlockInfo, + + UINT ContentKeySize, + + const void *pContentKey, + + UINT IVSize, + + void *pIV) = 0; + + virtual void __stdcall StartSessionKeyRefresh( + + ID3D11CryptoSession *pCryptoSession, + + UINT RandomNumberSize, + + void *pRandomNumber) = 0; + + virtual void __stdcall FinishSessionKeyRefresh( + + ID3D11CryptoSession *pCryptoSession) = 0; + + virtual HRESULT __stdcall GetEncryptionBltKey( + + ID3D11CryptoSession *pCryptoSession, + + UINT KeySize, + + void *pReadbackKey) = 0; + + virtual HRESULT __stdcall NegotiateAuthenticatedChannelKeyExchange( + + ID3D11AuthenticatedChannel *pChannel, + + UINT DataSize, + + void *pData) = 0; + + virtual HRESULT __stdcall QueryAuthenticatedChannel( + + ID3D11AuthenticatedChannel *pChannel, + + UINT InputSize, + + const void *pInput, + + UINT OutputSize, + + void *pOutput) = 0; + + virtual HRESULT __stdcall ConfigureAuthenticatedChannel( + + ID3D11AuthenticatedChannel *pChannel, + + UINT InputSize, + + const void *pInput, + + D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *pOutput) = 0; + + virtual void __stdcall VideoProcessorSetStreamRotation( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + BOOL Enable, + + D3D11_VIDEO_PROCESSOR_ROTATION Rotation) = 0; + + virtual void __stdcall VideoProcessorGetStreamRotation( + + ID3D11VideoProcessor *pVideoProcessor, + + UINT StreamIndex, + + BOOL *pEnable, + + D3D11_VIDEO_PROCESSOR_ROTATION *pRotation) = 0; + + }; +# 13150 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11VideoDevice; + + + + struct __declspec(uuid("10EC4D5B-975A-4689-B9E4-D0AAC30FE333")) __declspec(novtable) + ID3D11VideoDevice : public IUnknown + { + public: + virtual HRESULT __stdcall CreateVideoDecoder( + + const D3D11_VIDEO_DECODER_DESC *pVideoDesc, + + const D3D11_VIDEO_DECODER_CONFIG *pConfig, + + ID3D11VideoDecoder **ppDecoder) = 0; + + virtual HRESULT __stdcall CreateVideoProcessor( + + ID3D11VideoProcessorEnumerator *pEnum, + + UINT RateConversionIndex, + + ID3D11VideoProcessor **ppVideoProcessor) = 0; + + virtual HRESULT __stdcall CreateAuthenticatedChannel( + + D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, + + ID3D11AuthenticatedChannel **ppAuthenticatedChannel) = 0; + + virtual HRESULT __stdcall CreateCryptoSession( + + const GUID *pCryptoType, + + const GUID *pDecoderProfile, + + const GUID *pKeyExchangeType, + + ID3D11CryptoSession **ppCryptoSession) = 0; + + virtual HRESULT __stdcall CreateVideoDecoderOutputView( + + ID3D11Resource *pResource, + + const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, + + ID3D11VideoDecoderOutputView **ppVDOVView) = 0; + + virtual HRESULT __stdcall CreateVideoProcessorInputView( + + ID3D11Resource *pResource, + + ID3D11VideoProcessorEnumerator *pEnum, + + const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc, + + ID3D11VideoProcessorInputView **ppVPIView) = 0; + + virtual HRESULT __stdcall CreateVideoProcessorOutputView( + + ID3D11Resource *pResource, + + ID3D11VideoProcessorEnumerator *pEnum, + + const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc, + + ID3D11VideoProcessorOutputView **ppVPOView) = 0; + + virtual HRESULT __stdcall CreateVideoProcessorEnumerator( + + const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc, + + ID3D11VideoProcessorEnumerator **ppEnum) = 0; + + virtual UINT __stdcall GetVideoDecoderProfileCount( void) = 0; + + virtual HRESULT __stdcall GetVideoDecoderProfile( + + UINT Index, + + GUID *pDecoderProfile) = 0; + + virtual HRESULT __stdcall CheckVideoDecoderFormat( + + const GUID *pDecoderProfile, + + DXGI_FORMAT Format, + + BOOL *pSupported) = 0; + + virtual HRESULT __stdcall GetVideoDecoderConfigCount( + + const D3D11_VIDEO_DECODER_DESC *pDesc, + + UINT *pCount) = 0; + + virtual HRESULT __stdcall GetVideoDecoderConfig( + + const D3D11_VIDEO_DECODER_DESC *pDesc, + + UINT Index, + + D3D11_VIDEO_DECODER_CONFIG *pConfig) = 0; + + virtual HRESULT __stdcall GetContentProtectionCaps( + + const GUID *pCryptoType, + + const GUID *pDecoderProfile, + + D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps) = 0; + + virtual HRESULT __stdcall CheckCryptoKeyExchange( + + const GUID *pCryptoType, + + const GUID *pDecoderProfile, + + UINT Index, + + GUID *pKeyExchangeType) = 0; + + virtual HRESULT __stdcall SetPrivateData( + + const GUID & guid, + + UINT DataSize, + + const void *pData) = 0; + + virtual HRESULT __stdcall SetPrivateDataInterface( + + const GUID & guid, + + const IUnknown *pData) = 0; + + }; +# 13543 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0040_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0040_v0_0_s_ifspec; +# 13553 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +extern "C" const IID IID_ID3D11Device; + + + + struct __declspec(uuid("db6f6ddb-ac77-4e88-8253-819df9bbf140")) __declspec(novtable) + ID3D11Device : public IUnknown + { + public: + virtual HRESULT __stdcall CreateBuffer( + + const D3D11_BUFFER_DESC *pDesc, + + const D3D11_SUBRESOURCE_DATA *pInitialData, + + ID3D11Buffer **ppBuffer) = 0; + + virtual HRESULT __stdcall CreateTexture1D( + + const D3D11_TEXTURE1D_DESC *pDesc, + + const D3D11_SUBRESOURCE_DATA *pInitialData, + + ID3D11Texture1D **ppTexture1D) = 0; + + virtual HRESULT __stdcall CreateTexture2D( + + const D3D11_TEXTURE2D_DESC *pDesc, + + const D3D11_SUBRESOURCE_DATA *pInitialData, + + ID3D11Texture2D **ppTexture2D) = 0; + + virtual HRESULT __stdcall CreateTexture3D( + + const D3D11_TEXTURE3D_DESC *pDesc, + + const D3D11_SUBRESOURCE_DATA *pInitialData, + + ID3D11Texture3D **ppTexture3D) = 0; + + virtual HRESULT __stdcall CreateShaderResourceView( + + ID3D11Resource *pResource, + + const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc, + + ID3D11ShaderResourceView **ppSRView) = 0; + + virtual HRESULT __stdcall CreateUnorderedAccessView( + + ID3D11Resource *pResource, + + const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc, + + ID3D11UnorderedAccessView **ppUAView) = 0; + + virtual HRESULT __stdcall CreateRenderTargetView( + + ID3D11Resource *pResource, + + const D3D11_RENDER_TARGET_VIEW_DESC *pDesc, + + ID3D11RenderTargetView **ppRTView) = 0; + + virtual HRESULT __stdcall CreateDepthStencilView( + + ID3D11Resource *pResource, + + const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc, + + ID3D11DepthStencilView **ppDepthStencilView) = 0; + + virtual HRESULT __stdcall CreateInputLayout( + + const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs, + + UINT NumElements, + + const void *pShaderBytecodeWithInputSignature, + + SIZE_T BytecodeLength, + + ID3D11InputLayout **ppInputLayout) = 0; + + virtual HRESULT __stdcall CreateVertexShader( + + const void *pShaderBytecode, + + SIZE_T BytecodeLength, + + ID3D11ClassLinkage *pClassLinkage, + + ID3D11VertexShader **ppVertexShader) = 0; + + virtual HRESULT __stdcall CreateGeometryShader( + + const void *pShaderBytecode, + + SIZE_T BytecodeLength, + + ID3D11ClassLinkage *pClassLinkage, + + ID3D11GeometryShader **ppGeometryShader) = 0; + + virtual HRESULT __stdcall CreateGeometryShaderWithStreamOutput( + + const void *pShaderBytecode, + + SIZE_T BytecodeLength, + + const D3D11_SO_DECLARATION_ENTRY *pSODeclaration, + + UINT NumEntries, + + const UINT *pBufferStrides, + + UINT NumStrides, + + UINT RasterizedStream, + + ID3D11ClassLinkage *pClassLinkage, + + ID3D11GeometryShader **ppGeometryShader) = 0; + + virtual HRESULT __stdcall CreatePixelShader( + + const void *pShaderBytecode, + + SIZE_T BytecodeLength, + + ID3D11ClassLinkage *pClassLinkage, + + ID3D11PixelShader **ppPixelShader) = 0; + + virtual HRESULT __stdcall CreateHullShader( + + const void *pShaderBytecode, + + SIZE_T BytecodeLength, + + ID3D11ClassLinkage *pClassLinkage, + + ID3D11HullShader **ppHullShader) = 0; + + virtual HRESULT __stdcall CreateDomainShader( + + const void *pShaderBytecode, + + SIZE_T BytecodeLength, + + ID3D11ClassLinkage *pClassLinkage, + + ID3D11DomainShader **ppDomainShader) = 0; + + virtual HRESULT __stdcall CreateComputeShader( + + const void *pShaderBytecode, + + SIZE_T BytecodeLength, + + ID3D11ClassLinkage *pClassLinkage, + + ID3D11ComputeShader **ppComputeShader) = 0; + + virtual HRESULT __stdcall CreateClassLinkage( + + ID3D11ClassLinkage **ppLinkage) = 0; + + virtual HRESULT __stdcall CreateBlendState( + + const D3D11_BLEND_DESC *pBlendStateDesc, + + ID3D11BlendState **ppBlendState) = 0; + + virtual HRESULT __stdcall CreateDepthStencilState( + + const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc, + + ID3D11DepthStencilState **ppDepthStencilState) = 0; + + virtual HRESULT __stdcall CreateRasterizerState( + + const D3D11_RASTERIZER_DESC *pRasterizerDesc, + + ID3D11RasterizerState **ppRasterizerState) = 0; + + virtual HRESULT __stdcall CreateSamplerState( + + const D3D11_SAMPLER_DESC *pSamplerDesc, + + ID3D11SamplerState **ppSamplerState) = 0; + + virtual HRESULT __stdcall CreateQuery( + + const D3D11_QUERY_DESC *pQueryDesc, + + ID3D11Query **ppQuery) = 0; + + virtual HRESULT __stdcall CreatePredicate( + + const D3D11_QUERY_DESC *pPredicateDesc, + + ID3D11Predicate **ppPredicate) = 0; + + virtual HRESULT __stdcall CreateCounter( + + const D3D11_COUNTER_DESC *pCounterDesc, + + ID3D11Counter **ppCounter) = 0; + + virtual HRESULT __stdcall CreateDeferredContext( + UINT ContextFlags, + + ID3D11DeviceContext **ppDeferredContext) = 0; + + virtual HRESULT __stdcall OpenSharedResource( + + HANDLE hResource, + + const IID & ReturnedInterface, + + void **ppResource) = 0; + + virtual HRESULT __stdcall CheckFormatSupport( + + DXGI_FORMAT Format, + + UINT *pFormatSupport) = 0; + + virtual HRESULT __stdcall CheckMultisampleQualityLevels( + + DXGI_FORMAT Format, + + UINT SampleCount, + + UINT *pNumQualityLevels) = 0; + + virtual void __stdcall CheckCounterInfo( + + D3D11_COUNTER_INFO *pCounterInfo) = 0; + + virtual HRESULT __stdcall CheckCounter( + + const D3D11_COUNTER_DESC *pDesc, + + D3D11_COUNTER_TYPE *pType, + + UINT *pActiveCounters, + + LPSTR szName, + + UINT *pNameLength, + + LPSTR szUnits, + + UINT *pUnitsLength, + + LPSTR szDescription, + + UINT *pDescriptionLength) = 0; + + virtual HRESULT __stdcall CheckFeatureSupport( + D3D11_FEATURE Feature, + + void *pFeatureSupportData, + UINT FeatureSupportDataSize) = 0; + + virtual HRESULT __stdcall GetPrivateData( + + const GUID & guid, + + UINT *pDataSize, + + void *pData) = 0; + + virtual HRESULT __stdcall SetPrivateData( + + const GUID & guid, + + UINT DataSize, + + const void *pData) = 0; + + virtual HRESULT __stdcall SetPrivateDataInterface( + + const GUID & guid, + + const IUnknown *pData) = 0; + + virtual D3D_FEATURE_LEVEL __stdcall GetFeatureLevel( void) = 0; + + virtual UINT __stdcall GetCreationFlags( void) = 0; + + virtual HRESULT __stdcall GetDeviceRemovedReason( void) = 0; + + virtual void __stdcall GetImmediateContext( + + ID3D11DeviceContext **ppImmediateContext) = 0; + + virtual HRESULT __stdcall SetExceptionMode( + UINT RaiseFlags) = 0; + + virtual UINT __stdcall GetExceptionMode( void) = 0; + + }; +# 14371 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3d11.h" +typedef +enum D3D11_CREATE_DEVICE_FLAG + { + D3D11_CREATE_DEVICE_SINGLETHREADED = 0x1, + D3D11_CREATE_DEVICE_DEBUG = 0x2, + D3D11_CREATE_DEVICE_SWITCH_TO_REF = 0x4, + D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8, + D3D11_CREATE_DEVICE_BGRA_SUPPORT = 0x20, + D3D11_CREATE_DEVICE_DEBUGGABLE = 0x40, + D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x80, + D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 0x100, + D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 0x800 + } D3D11_CREATE_DEVICE_FLAG; + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11sdklayers.h" 1 +# 49 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11sdklayers.h" +typedef struct ID3D11Debug ID3D11Debug; + + + + + + +typedef struct ID3D11SwitchToRef ID3D11SwitchToRef; + + + + + + +typedef struct ID3D11TracingDevice ID3D11TracingDevice; + + + + + + +typedef struct ID3D11RefTrackingOptions ID3D11RefTrackingOptions; + + + + + + +typedef struct ID3D11RefDefaultTrackingOptions ID3D11RefDefaultTrackingOptions; + + + + + + +typedef struct ID3D11InfoQueue ID3D11InfoQueue; +# 95 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11sdklayers.h" +extern "C"{ +# 122 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11sdklayers.h" +typedef +enum D3D11_RLDO_FLAGS + { + D3D11_RLDO_SUMMARY = 0x1, + D3D11_RLDO_DETAIL = 0x2, + D3D11_RLDO_IGNORE_INTERNAL = 0x4 + } D3D11_RLDO_FLAGS; + +extern "C++" { inline constexpr D3D11_RLDO_FLAGS operator | (D3D11_RLDO_FLAGS a, D3D11_RLDO_FLAGS b) throw() { return D3D11_RLDO_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D11_RLDO_FLAGS &operator |= (D3D11_RLDO_FLAGS &a, D3D11_RLDO_FLAGS b) throw() { return (D3D11_RLDO_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D11_RLDO_FLAGS operator & (D3D11_RLDO_FLAGS a, D3D11_RLDO_FLAGS b) throw() { return D3D11_RLDO_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D11_RLDO_FLAGS &operator &= (D3D11_RLDO_FLAGS &a, D3D11_RLDO_FLAGS b) throw() { return (D3D11_RLDO_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D3D11_RLDO_FLAGS operator ~ (D3D11_RLDO_FLAGS a) throw() { return D3D11_RLDO_FLAGS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D3D11_RLDO_FLAGS operator ^ (D3D11_RLDO_FLAGS a, D3D11_RLDO_FLAGS b) throw() { return D3D11_RLDO_FLAGS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D3D11_RLDO_FLAGS &operator ^= (D3D11_RLDO_FLAGS &a, D3D11_RLDO_FLAGS b) throw() { return (D3D11_RLDO_FLAGS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } } + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0000_v0_0_s_ifspec; +# 143 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11sdklayers.h" +extern "C" const IID IID_ID3D11Debug; + + + + struct __declspec(uuid("79cf2233-7536-4948-9d36-1e4692dc5760")) __declspec(novtable) + ID3D11Debug : public IUnknown + { + public: + virtual HRESULT __stdcall SetFeatureMask( + UINT Mask) = 0; + + virtual UINT __stdcall GetFeatureMask( void) = 0; + + virtual HRESULT __stdcall SetPresentPerRenderOpDelay( + UINT Milliseconds) = 0; + + virtual UINT __stdcall GetPresentPerRenderOpDelay( void) = 0; + + virtual HRESULT __stdcall SetSwapChain( + + IDXGISwapChain *pSwapChain) = 0; + + virtual HRESULT __stdcall GetSwapChain( + + IDXGISwapChain **ppSwapChain) = 0; + + virtual HRESULT __stdcall ValidateContext( + + ID3D11DeviceContext *pContext) = 0; + + virtual HRESULT __stdcall ReportLiveDeviceObjects( + D3D11_RLDO_FLAGS Flags) = 0; + + virtual HRESULT __stdcall ValidateContextForDispatch( + + ID3D11DeviceContext *pContext) = 0; + + }; +# 310 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11sdklayers.h" +extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0001_v0_0_s_ifspec; +# 320 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11sdklayers.h" +extern "C" const IID IID_ID3D11SwitchToRef; + + + + struct __declspec(uuid("1ef337e3-58e7-4f83-a692-db221f5ed47e")) __declspec(novtable) + ID3D11SwitchToRef : public IUnknown + { + public: + virtual BOOL __stdcall SetUseRef( + BOOL UseRef) = 0; + + virtual BOOL __stdcall GetUseRef( void) = 0; + + }; +# 409 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11sdklayers.h" +typedef +enum D3D11_SHADER_TRACKING_RESOURCE_TYPE + { + D3D11_SHADER_TRACKING_RESOURCE_TYPE_NONE = 0, + D3D11_SHADER_TRACKING_RESOURCE_TYPE_UAV_DEVICEMEMORY = 1, + D3D11_SHADER_TRACKING_RESOURCE_TYPE_NON_UAV_DEVICEMEMORY = 2, + D3D11_SHADER_TRACKING_RESOURCE_TYPE_ALL_DEVICEMEMORY = 3, + D3D11_SHADER_TRACKING_RESOURCE_TYPE_GROUPSHARED_MEMORY = 4, + D3D11_SHADER_TRACKING_RESOURCE_TYPE_ALL_SHARED_MEMORY = 5, + D3D11_SHADER_TRACKING_RESOURCE_TYPE_GROUPSHARED_NON_UAV = 6, + D3D11_SHADER_TRACKING_RESOURCE_TYPE_ALL = 7 + } D3D11_SHADER_TRACKING_RESOURCE_TYPE; + +typedef +enum D3D11_SHADER_TRACKING_OPTION + { + D3D11_SHADER_TRACKING_OPTION_IGNORE = 0, + D3D11_SHADER_TRACKING_OPTION_TRACK_UNINITIALIZED = 0x1, + D3D11_SHADER_TRACKING_OPTION_TRACK_RAW = 0x2, + D3D11_SHADER_TRACKING_OPTION_TRACK_WAR = 0x4, + D3D11_SHADER_TRACKING_OPTION_TRACK_WAW = 0x8, + D3D11_SHADER_TRACKING_OPTION_ALLOW_SAME = 0x10, + D3D11_SHADER_TRACKING_OPTION_TRACK_ATOMIC_CONSISTENCY = 0x20, + D3D11_SHADER_TRACKING_OPTION_TRACK_RAW_ACROSS_THREADGROUPS = 0x40, + D3D11_SHADER_TRACKING_OPTION_TRACK_WAR_ACROSS_THREADGROUPS = 0x80, + D3D11_SHADER_TRACKING_OPTION_TRACK_WAW_ACROSS_THREADGROUPS = 0x100, + D3D11_SHADER_TRACKING_OPTION_TRACK_ATOMIC_CONSISTENCY_ACROSS_THREADGROUPS = 0x200, + D3D11_SHADER_TRACKING_OPTION_UAV_SPECIFIC_FLAGS = ( ( ( D3D11_SHADER_TRACKING_OPTION_TRACK_RAW_ACROSS_THREADGROUPS | D3D11_SHADER_TRACKING_OPTION_TRACK_WAR_ACROSS_THREADGROUPS ) | D3D11_SHADER_TRACKING_OPTION_TRACK_WAW_ACROSS_THREADGROUPS ) | D3D11_SHADER_TRACKING_OPTION_TRACK_ATOMIC_CONSISTENCY_ACROSS_THREADGROUPS ) , + D3D11_SHADER_TRACKING_OPTION_ALL_HAZARDS = ( ( ( ( ( ( ( D3D11_SHADER_TRACKING_OPTION_TRACK_RAW | D3D11_SHADER_TRACKING_OPTION_TRACK_WAR ) | D3D11_SHADER_TRACKING_OPTION_TRACK_WAW ) | D3D11_SHADER_TRACKING_OPTION_TRACK_ATOMIC_CONSISTENCY ) | D3D11_SHADER_TRACKING_OPTION_TRACK_RAW_ACROSS_THREADGROUPS ) | D3D11_SHADER_TRACKING_OPTION_TRACK_WAR_ACROSS_THREADGROUPS ) | D3D11_SHADER_TRACKING_OPTION_TRACK_WAW_ACROSS_THREADGROUPS ) | D3D11_SHADER_TRACKING_OPTION_TRACK_ATOMIC_CONSISTENCY_ACROSS_THREADGROUPS ) , + D3D11_SHADER_TRACKING_OPTION_ALL_HAZARDS_ALLOWING_SAME = ( D3D11_SHADER_TRACKING_OPTION_ALL_HAZARDS | D3D11_SHADER_TRACKING_OPTION_ALLOW_SAME ) , + D3D11_SHADER_TRACKING_OPTION_ALL_OPTIONS = ( D3D11_SHADER_TRACKING_OPTION_ALL_HAZARDS_ALLOWING_SAME | D3D11_SHADER_TRACKING_OPTION_TRACK_UNINITIALIZED ) + } D3D11_SHADER_TRACKING_OPTIONS; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0002_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0002_v0_0_s_ifspec; +# 454 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11sdklayers.h" +extern "C" const IID IID_ID3D11TracingDevice; + + + + struct __declspec(uuid("1911c771-1587-413e-a7e0-fb26c3de0268")) __declspec(novtable) + ID3D11TracingDevice : public IUnknown + { + public: + virtual HRESULT __stdcall SetShaderTrackingOptionsByType( + + UINT ResourceTypeFlags, + + UINT Options) = 0; + + virtual HRESULT __stdcall SetShaderTrackingOptions( + + IUnknown *pShader, + + UINT Options) = 0; + + }; +# 556 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11sdklayers.h" +extern "C" const IID IID_ID3D11RefTrackingOptions; + + + + struct __declspec(uuid("193dacdf-0db2-4c05-a55c-ef06cac56fd9")) __declspec(novtable) + ID3D11RefTrackingOptions : public IUnknown + { + public: + virtual HRESULT __stdcall SetTrackingOptions( + UINT uOptions) = 0; + + }; +# 636 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11sdklayers.h" +extern "C" const IID IID_ID3D11RefDefaultTrackingOptions; + + + + struct __declspec(uuid("03916615-c644-418c-9bf4-75db5be63ca0")) __declspec(novtable) + ID3D11RefDefaultTrackingOptions : public IUnknown + { + public: + virtual HRESULT __stdcall SetTrackingOptions( + UINT ResourceTypeFlags, + UINT Options) = 0; + + }; +# 720 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11sdklayers.h" +extern "C" const GUID DXGI_DEBUG_D3D11; +# 738 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11sdklayers.h" +typedef +enum D3D11_MESSAGE_CATEGORY + { + D3D11_MESSAGE_CATEGORY_APPLICATION_DEFINED = 0, + D3D11_MESSAGE_CATEGORY_MISCELLANEOUS = ( D3D11_MESSAGE_CATEGORY_APPLICATION_DEFINED + 1 ) , + D3D11_MESSAGE_CATEGORY_INITIALIZATION = ( D3D11_MESSAGE_CATEGORY_MISCELLANEOUS + 1 ) , + D3D11_MESSAGE_CATEGORY_CLEANUP = ( D3D11_MESSAGE_CATEGORY_INITIALIZATION + 1 ) , + D3D11_MESSAGE_CATEGORY_COMPILATION = ( D3D11_MESSAGE_CATEGORY_CLEANUP + 1 ) , + D3D11_MESSAGE_CATEGORY_STATE_CREATION = ( D3D11_MESSAGE_CATEGORY_COMPILATION + 1 ) , + D3D11_MESSAGE_CATEGORY_STATE_SETTING = ( D3D11_MESSAGE_CATEGORY_STATE_CREATION + 1 ) , + D3D11_MESSAGE_CATEGORY_STATE_GETTING = ( D3D11_MESSAGE_CATEGORY_STATE_SETTING + 1 ) , + D3D11_MESSAGE_CATEGORY_RESOURCE_MANIPULATION = ( D3D11_MESSAGE_CATEGORY_STATE_GETTING + 1 ) , + D3D11_MESSAGE_CATEGORY_EXECUTION = ( D3D11_MESSAGE_CATEGORY_RESOURCE_MANIPULATION + 1 ) , + D3D11_MESSAGE_CATEGORY_SHADER = ( D3D11_MESSAGE_CATEGORY_EXECUTION + 1 ) + } D3D11_MESSAGE_CATEGORY; + +typedef +enum D3D11_MESSAGE_SEVERITY + { + D3D11_MESSAGE_SEVERITY_CORRUPTION = 0, + D3D11_MESSAGE_SEVERITY_ERROR = ( D3D11_MESSAGE_SEVERITY_CORRUPTION + 1 ) , + D3D11_MESSAGE_SEVERITY_WARNING = ( D3D11_MESSAGE_SEVERITY_ERROR + 1 ) , + D3D11_MESSAGE_SEVERITY_INFO = ( D3D11_MESSAGE_SEVERITY_WARNING + 1 ) , + D3D11_MESSAGE_SEVERITY_MESSAGE = ( D3D11_MESSAGE_SEVERITY_INFO + 1 ) + } D3D11_MESSAGE_SEVERITY; + +typedef +enum D3D11_MESSAGE_ID + { + D3D11_MESSAGE_ID_UNKNOWN = 0, + D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_HAZARD = ( D3D11_MESSAGE_ID_UNKNOWN + 1 ) , + D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_HAZARD = ( D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_HAZARD + 1 ) , + D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_HAZARD = ( D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_HAZARD + 1 ) , + D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_HAZARD = ( D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_HAZARD + 1 ) , + D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_HAZARD = ( D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_HAZARD + 1 ) , + D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_HAZARD = ( D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_HAZARD + 1 ) , + D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_HAZARD = ( D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_HAZARD + 1 ) , + D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_HAZARD = ( D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_HAZARD + 1 ) , + D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETS_HAZARD = ( D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_HAZARD + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_HAZARD = ( D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETS_HAZARD + 1 ) , + D3D11_MESSAGE_ID_STRING_FROM_APPLICATION = ( D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_HAZARD + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_THIS = ( D3D11_MESSAGE_ID_STRING_FROM_APPLICATION + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_PARAMETER1 = ( D3D11_MESSAGE_ID_CORRUPTED_THIS + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_PARAMETER2 = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER1 + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_PARAMETER3 = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER2 + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_PARAMETER4 = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER3 + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_PARAMETER5 = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER4 + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_PARAMETER6 = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER5 + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_PARAMETER7 = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER6 + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_PARAMETER8 = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER7 + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_PARAMETER9 = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER8 + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_PARAMETER10 = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER9 + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_PARAMETER11 = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER10 + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_PARAMETER12 = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER11 + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_PARAMETER13 = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER12 + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_PARAMETER14 = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER13 + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_PARAMETER15 = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER14 + 1 ) , + D3D11_MESSAGE_ID_CORRUPTED_MULTITHREADING = ( D3D11_MESSAGE_ID_CORRUPTED_PARAMETER15 + 1 ) , + D3D11_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY = ( D3D11_MESSAGE_ID_CORRUPTED_MULTITHREADING + 1 ) , + D3D11_MESSAGE_ID_IASETINPUTLAYOUT_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY + 1 ) , + D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_IASETINPUTLAYOUT_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_IASETINDEXBUFFER_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_VSSETSHADER_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_IASETINDEXBUFFER_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_VSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_VSSETSHADER_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_VSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_VSSETSAMPLERS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_GSSETSHADER_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_VSSETSAMPLERS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_GSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_GSSETSHADER_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_GSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_GSSETSAMPLERS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_SOSETTARGETS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_GSSETSAMPLERS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_PSSETSHADER_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_SOSETTARGETS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_PSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_PSSETSHADER_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_PSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_PSSETSAMPLERS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_RSSETSTATE_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_PSSETSAMPLERS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_OMSETBLENDSTATE_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_RSSETSTATE_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_OMSETDEPTHSTENCILSTATE_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_OMSETBLENDSTATE_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_OMSETRENDERTARGETS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_OMSETDEPTHSTENCILSTATE_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_SETPREDICATION_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_OMSETRENDERTARGETS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_GETPRIVATEDATA_MOREDATA = ( D3D11_MESSAGE_ID_SETPREDICATION_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA = ( D3D11_MESSAGE_ID_GETPRIVATEDATA_MOREDATA + 1 ) , + D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN = ( D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA + 1 ) , + D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS = ( D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN + 1 ) , + D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS = ( D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS + 1 ) , + D3D11_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY = ( D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDFORMAT = ( D3D11_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSAMPLES = ( D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDUSAGE = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSAMPLES + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDBINDFLAGS = ( D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDUSAGE + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDCPUACCESSFLAGS = ( D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDBINDFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDMISCFLAGS = ( D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDCPUACCESSFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCPUACCESSFLAGS = ( D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDMISCFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDBINDFLAGS = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCPUACCESSFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDINITIALDATA = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDBINDFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDDIMENSIONS = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDINITIALDATA + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMIPLEVELS = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDDIMENSIONS + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMISCFLAGS = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMIPLEVELS + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDARG_RETURN = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMISCFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDARG_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_NULLDESC = ( D3D11_MESSAGE_ID_CREATEBUFFER_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCONSTANTBUFFERBINDINGS = ( D3D11_MESSAGE_ID_CREATEBUFFER_NULLDESC + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_LARGEALLOCATION = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCONSTANTBUFFERBINDINGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDFORMAT = ( D3D11_MESSAGE_ID_CREATEBUFFER_LARGEALLOCATION + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_UNSUPPORTEDFORMAT = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDSAMPLES = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNSUPPORTEDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDUSAGE = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDSAMPLES + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDBINDFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDUSAGE + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDCPUACCESSFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDBINDFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDMISCFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDCPUACCESSFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDCPUACCESSFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDMISCFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDBINDFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDCPUACCESSFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDINITIALDATA = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDBINDFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDDIMENSIONS = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDINITIALDATA + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMIPLEVELS = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDDIMENSIONS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMISCFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMIPLEVELS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDARG_RETURN = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMISCFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDARG_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_NULLDESC = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_LARGEALLOCATION = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_NULLDESC + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDFORMAT = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_LARGEALLOCATION + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_UNSUPPORTEDFORMAT = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDSAMPLES = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNSUPPORTEDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDUSAGE = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDSAMPLES + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDBINDFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDUSAGE + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDCPUACCESSFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDBINDFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDMISCFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDCPUACCESSFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDCPUACCESSFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDMISCFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDBINDFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDCPUACCESSFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDINITIALDATA = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDBINDFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDDIMENSIONS = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDINITIALDATA + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMIPLEVELS = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDDIMENSIONS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMISCFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMIPLEVELS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDARG_RETURN = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMISCFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDARG_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_NULLDESC = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_LARGEALLOCATION = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_NULLDESC + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDFORMAT = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_LARGEALLOCATION + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_UNSUPPORTEDFORMAT = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDSAMPLES = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNSUPPORTEDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDUSAGE = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDSAMPLES + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDBINDFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDUSAGE + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDCPUACCESSFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDBINDFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDMISCFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDCPUACCESSFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDCPUACCESSFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDMISCFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDBINDFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDCPUACCESSFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDINITIALDATA = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDBINDFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDDIMENSIONS = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDINITIALDATA + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMIPLEVELS = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDDIMENSIONS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMISCFLAGS = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMIPLEVELS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDARG_RETURN = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMISCFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDARG_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_NULLDESC = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE3D_LARGEALLOCATION = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_NULLDESC + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT = ( D3D11_MESSAGE_ID_CREATETEXTURE3D_LARGEALLOCATION + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_TOOMANYOBJECTS = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_TOOMANYOBJECTS + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC + 1 ) , + D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS + 1 ) , + D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_TOOMANYOBJECTS = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE + 1 ) , + D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_TOOMANYOBJECTS + 1 ) , + D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_TOOMANYOBJECTS = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_TOOMANYOBJECTS + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLDESC = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT + 1 ) , + D3D11_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLDESC + 1 ) , + D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE = ( D3D11_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY + 1 ) , + D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE = ( D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY = ( D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX + 1 ) , + D3D11_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE + 1 ) , + D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE = ( D3D11_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY + 1 ) , + D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE = ( D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE + 1 ) , + D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE = ( D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE + 1 ) , + D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE + 1 ) , + D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE + 1 ) , + D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP + 1 ) , + D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_TOOMANYOBJECTS = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS + 1 ) , + D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_TOOMANYOBJECTS + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_TOOMANYOBJECTS = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC + 1 ) , + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_TOOMANYOBJECTS + 1 ) , + D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC + 1 ) , + D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND + 1 ) , + D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND + 1 ) , + D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP + 1 ) , + D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA + 1 ) , + D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA + 1 ) , + D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA + 1 ) , + D3D11_MESSAGE_ID_CREATEBLENDSTATE_TOOMANYOBJECTS = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK + 1 ) , + D3D11_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_TOOMANYOBJECTS + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_TOOMANYOBJECTS = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_TOOMANYOBJECTS + 1 ) , + D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDQUERY = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC + 1 ) , + D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDMISCFLAGS = ( D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDQUERY + 1 ) , + D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_UNEXPECTEDMISCFLAG = ( D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDMISCFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_NULLDESC = ( D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_UNEXPECTEDMISCFLAG + 1 ) , + D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED = ( D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_NULLDESC + 1 ) , + D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED = ( D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED + 1 ) , + D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_INVALIDBUFFER = ( D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_OFFSET_TOO_LARGE = ( D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_INVALIDBUFFER + 1 ) , + D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_BUFFERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_OFFSET_TOO_LARGE + 1 ) , + D3D11_MESSAGE_ID_IASETINDEXBUFFER_INVALIDBUFFER = ( D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_FORMAT_INVALID = ( D3D11_MESSAGE_ID_IASETINDEXBUFFER_INVALIDBUFFER + 1 ) , + D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_TOO_LARGE = ( D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_FORMAT_INVALID + 1 ) , + D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_UNALIGNED = ( D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_TOO_LARGE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_VIEWS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_UNALIGNED + 1 ) , + D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFER = ( D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) , + D3D11_MESSAGE_ID_DEVICE_VSSETSAMPLERS_SAMPLERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_VIEWS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_VSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFER = ( D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) , + D3D11_MESSAGE_ID_DEVICE_GSSETSAMPLERS_SAMPLERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_SOSETTARGETS_INVALIDBUFFER = ( D3D11_MESSAGE_ID_DEVICE_GSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_OFFSET_UNALIGNED = ( D3D11_MESSAGE_ID_SOSETTARGETS_INVALIDBUFFER + 1 ) , + D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_VIEWS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_OFFSET_UNALIGNED + 1 ) , + D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFER = ( D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) , + D3D11_MESSAGE_ID_DEVICE_PSSETSAMPLERS_SAMPLERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT = ( D3D11_MESSAGE_ID_DEVICE_PSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR = ( D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT + 1 ) , + D3D11_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH = ( D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR + 1 ) , + D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH = ( D3D11_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH + 1 ) , + D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID = ( D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_IAGETVERTEXBUFFERS_BUFFERS_EMPTY = ( D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID + 1 ) , + D3D11_MESSAGE_ID_DEVICE_VSGETSHADERRESOURCES_VIEWS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_IAGETVERTEXBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_VSGETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_VSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_VSGETSAMPLERS_SAMPLERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_VSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_GSGETSHADERRESOURCES_VIEWS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_VSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_GSGETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_GSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_GSGETSAMPLERS_SAMPLERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_GSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SOGETTARGETS_BUFFERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_GSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_PSGETSHADERRESOURCES_VIEWS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_SOGETTARGETS_BUFFERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_PSGETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_PSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_PSGETSAMPLERS_SAMPLERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_PSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_RSGETVIEWPORTS_VIEWPORTS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_PSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_RSGETSCISSORRECTS_RECTS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_RSGETVIEWPORTS_VIEWPORTS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_GENERATEMIPS_RESOURCE_INVALID = ( D3D11_MESSAGE_ID_DEVICE_RSGETSCISSORRECTS_RECTS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSUBRESOURCE = ( D3D11_MESSAGE_ID_DEVICE_GENERATEMIPS_RESOURCE_INVALID + 1 ) , + D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESUBRESOURCE = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSUBRESOURCE + 1 ) , + D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCEBOX = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESUBRESOURCE + 1 ) , + D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCE = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCEBOX + 1 ) , + D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSTATE = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCE + 1 ) , + D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESTATE = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSTATE + 1 ) , + D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESTATE + 1 ) , + D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE = ( D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE + 1 ) , + D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE = ( D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE + 1 ) , + D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE = ( D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE + 1 ) , + D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX = ( D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE + 1 ) , + D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE = ( D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX + 1 ) , + D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID = ( D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID = ( D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID + 1 ) , + D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID = ( D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID + 1 ) , + D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID = ( D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID + 1 ) , + D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID = ( D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID + 1 ) , + D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE = ( D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID + 1 ) , + D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS = ( D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE + 1 ) , + D3D11_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED = ( D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS + 1 ) , + D3D11_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN = ( D3D11_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED + 1 ) , + D3D11_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED = ( D3D11_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN + 1 ) , + D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE = ( D3D11_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED + 1 ) , + D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE = ( D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE + 1 ) , + D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS = ( D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE + 1 ) , + D3D11_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED = ( D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS + 1 ) , + D3D11_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN = ( D3D11_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED + 1 ) , + D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE = ( D3D11_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN + 1 ) , + D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED = ( D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE + 1 ) , + D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE = ( D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED + 1 ) , + D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE = ( D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE + 1 ) , + D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS = ( D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE + 1 ) , + D3D11_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED = ( D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS + 1 ) , + D3D11_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN = ( D3D11_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED + 1 ) , + D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE = ( D3D11_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN + 1 ) , + D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED = ( D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE + 1 ) , + D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE = ( D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED + 1 ) , + D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE = ( D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE + 1 ) , + D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS = ( D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE + 1 ) , + D3D11_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED = ( D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS + 1 ) , + D3D11_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN = ( D3D11_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED + 1 ) , + D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE = ( D3D11_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN + 1 ) , + D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED = ( D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE + 1 ) , + D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED = ( D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED + 1 ) , + D3D11_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED = ( D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED + 1 ) , + D3D11_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS = ( D3D11_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED + 1 ) , + D3D11_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN = ( D3D11_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS + 1 ) , + D3D11_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN = ( D3D11_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN + 1 ) , + D3D11_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE = ( D3D11_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN + 1 ) , + D3D11_MESSAGE_ID_REF_THREADING_MODE = ( D3D11_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE + 1 ) , + D3D11_MESSAGE_ID_REF_UMDRIVER_EXCEPTION = ( D3D11_MESSAGE_ID_REF_THREADING_MODE + 1 ) , + D3D11_MESSAGE_ID_REF_KMDRIVER_EXCEPTION = ( D3D11_MESSAGE_ID_REF_UMDRIVER_EXCEPTION + 1 ) , + D3D11_MESSAGE_ID_REF_HARDWARE_EXCEPTION = ( D3D11_MESSAGE_ID_REF_KMDRIVER_EXCEPTION + 1 ) , + D3D11_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE = ( D3D11_MESSAGE_ID_REF_HARDWARE_EXCEPTION + 1 ) , + D3D11_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER = ( D3D11_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE + 1 ) , + D3D11_MESSAGE_ID_REF_OUT_OF_MEMORY = ( D3D11_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER + 1 ) , + D3D11_MESSAGE_ID_REF_INFO = ( D3D11_MESSAGE_ID_REF_OUT_OF_MEMORY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW = ( D3D11_MESSAGE_ID_REF_INFO + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW = ( D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW = ( D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_NOT_SET = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_INPUTLAYOUT_NOT_SET = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_NOT_SET + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_NOT_SET = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INPUTLAYOUT_NOT_SET + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_TOO_SMALL = ( D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_NOT_SET + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_NOT_SET = ( D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_TOO_SMALL + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_SHADERRESOURCEVIEW_NOT_SET = ( D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_NOT_SET + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_VIEW_DIMENSION_MISMATCH = ( D3D11_MESSAGE_ID_DEVICE_DRAW_SHADERRESOURCEVIEW_NOT_SET + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VIEW_DIMENSION_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_TOO_SMALL = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_NOT_SET = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_TOO_SMALL + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_FORMAT_INVALID = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_NOT_SET + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_TOO_SMALL = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_FORMAT_INVALID + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_GS_INPUT_PRIMITIVE_MISMATCH = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_TOO_SMALL + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_RETURN_TYPE_MISMATCH = ( D3D11_MESSAGE_ID_DEVICE_DRAW_GS_INPUT_PRIMITIVE_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_POSITION_NOT_PRESENT = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_RETURN_TYPE_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_NOT_SET = ( D3D11_MESSAGE_ID_DEVICE_DRAW_POSITION_NOT_PRESENT + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_BOUND_RESOURCE_MAPPED = ( D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_NOT_SET + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_PRIMITIVETOPOLOGY = ( D3D11_MESSAGE_ID_DEVICE_DRAW_BOUND_RESOURCE_MAPPED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_OFFSET_UNALIGNED = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_PRIMITIVETOPOLOGY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_STRIDE_UNALIGNED = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_OFFSET_UNALIGNED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_OFFSET_UNALIGNED = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_STRIDE_UNALIGNED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_OFFSET_UNALIGNED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_SO_STRIDE_LARGER_THAN_BUFFER = ( D3D11_MESSAGE_ID_DEVICE_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = ( D3D11_MESSAGE_ID_DEVICE_DRAW_SO_STRIDE_LARGER_THAN_BUFFER + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = ( D3D11_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING + 1 ) , + D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT = ( D3D11_MESSAGE_ID_DEVICE_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 + 1 ) , + D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT = ( D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT + 1 ) , + D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT = ( D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT + 1 ) , + D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN = ( D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT + 1 ) , + D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN + 1 ) , + D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN = ( D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET = ( D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC = ( D3D11_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC + 1 ) , + D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC + 1 ) , + D3D11_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW = ( D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS = ( D3D11_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH = ( D3D11_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH = ( D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY = ( D3D11_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY + 1 ) , + D3D11_MESSAGE_ID_CREATEQUERY_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY + 1 ) , + D3D11_MESSAGE_ID_CREATEPREDICATE_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CREATEQUERY_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFRANGE_COUNTER = ( D3D11_MESSAGE_ID_CREATEPREDICATE_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATECOUNTER_SIMULTANEOUS_ACTIVE_COUNTERS_EXHAUSTED = ( D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFRANGE_COUNTER + 1 ) , + D3D11_MESSAGE_ID_CREATECOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER = ( D3D11_MESSAGE_ID_CREATECOUNTER_SIMULTANEOUS_ACTIVE_COUNTERS_EXHAUSTED + 1 ) , + D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CREATECOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER + 1 ) , + D3D11_MESSAGE_ID_CREATECOUNTER_NONEXCLUSIVE_RETURN = ( D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATECOUNTER_NULLDESC = ( D3D11_MESSAGE_ID_CREATECOUNTER_NONEXCLUSIVE_RETURN + 1 ) , + D3D11_MESSAGE_ID_CHECKCOUNTER_OUTOFRANGE_COUNTER = ( D3D11_MESSAGE_ID_CREATECOUNTER_NULLDESC + 1 ) , + D3D11_MESSAGE_ID_CHECKCOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER = ( D3D11_MESSAGE_ID_CHECKCOUNTER_OUTOFRANGE_COUNTER + 1 ) , + D3D11_MESSAGE_ID_SETPREDICATION_INVALID_PREDICATE_STATE = ( D3D11_MESSAGE_ID_CHECKCOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER + 1 ) , + D3D11_MESSAGE_ID_QUERY_BEGIN_UNSUPPORTED = ( D3D11_MESSAGE_ID_SETPREDICATION_INVALID_PREDICATE_STATE + 1 ) , + D3D11_MESSAGE_ID_PREDICATE_BEGIN_DURING_PREDICATION = ( D3D11_MESSAGE_ID_QUERY_BEGIN_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_QUERY_BEGIN_DUPLICATE = ( D3D11_MESSAGE_ID_PREDICATE_BEGIN_DURING_PREDICATION + 1 ) , + D3D11_MESSAGE_ID_QUERY_BEGIN_ABANDONING_PREVIOUS_RESULTS = ( D3D11_MESSAGE_ID_QUERY_BEGIN_DUPLICATE + 1 ) , + D3D11_MESSAGE_ID_PREDICATE_END_DURING_PREDICATION = ( D3D11_MESSAGE_ID_QUERY_BEGIN_ABANDONING_PREVIOUS_RESULTS + 1 ) , + D3D11_MESSAGE_ID_QUERY_END_ABANDONING_PREVIOUS_RESULTS = ( D3D11_MESSAGE_ID_PREDICATE_END_DURING_PREDICATION + 1 ) , + D3D11_MESSAGE_ID_QUERY_END_WITHOUT_BEGIN = ( D3D11_MESSAGE_ID_QUERY_END_ABANDONING_PREVIOUS_RESULTS + 1 ) , + D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_DATASIZE = ( D3D11_MESSAGE_ID_QUERY_END_WITHOUT_BEGIN + 1 ) , + D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_FLAGS = ( D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_DATASIZE + 1 ) , + D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_CALL = ( D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_FLAGS + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH = ( D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_CALL + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN + 1 ) , + D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE = ( D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT = ( D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT + 1 ) , + D3D11_MESSAGE_ID_LIVE_OBJECT_SUMMARY = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_LIVE_BUFFER = ( D3D11_MESSAGE_ID_LIVE_OBJECT_SUMMARY + 1 ) , + D3D11_MESSAGE_ID_LIVE_TEXTURE1D = ( D3D11_MESSAGE_ID_LIVE_BUFFER + 1 ) , + D3D11_MESSAGE_ID_LIVE_TEXTURE2D = ( D3D11_MESSAGE_ID_LIVE_TEXTURE1D + 1 ) , + D3D11_MESSAGE_ID_LIVE_TEXTURE3D = ( D3D11_MESSAGE_ID_LIVE_TEXTURE2D + 1 ) , + D3D11_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW = ( D3D11_MESSAGE_ID_LIVE_TEXTURE3D + 1 ) , + D3D11_MESSAGE_ID_LIVE_RENDERTARGETVIEW = ( D3D11_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW + 1 ) , + D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW = ( D3D11_MESSAGE_ID_LIVE_RENDERTARGETVIEW + 1 ) , + D3D11_MESSAGE_ID_LIVE_VERTEXSHADER = ( D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW + 1 ) , + D3D11_MESSAGE_ID_LIVE_GEOMETRYSHADER = ( D3D11_MESSAGE_ID_LIVE_VERTEXSHADER + 1 ) , + D3D11_MESSAGE_ID_LIVE_PIXELSHADER = ( D3D11_MESSAGE_ID_LIVE_GEOMETRYSHADER + 1 ) , + D3D11_MESSAGE_ID_LIVE_INPUTLAYOUT = ( D3D11_MESSAGE_ID_LIVE_PIXELSHADER + 1 ) , + D3D11_MESSAGE_ID_LIVE_SAMPLER = ( D3D11_MESSAGE_ID_LIVE_INPUTLAYOUT + 1 ) , + D3D11_MESSAGE_ID_LIVE_BLENDSTATE = ( D3D11_MESSAGE_ID_LIVE_SAMPLER + 1 ) , + D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE = ( D3D11_MESSAGE_ID_LIVE_BLENDSTATE + 1 ) , + D3D11_MESSAGE_ID_LIVE_RASTERIZERSTATE = ( D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE + 1 ) , + D3D11_MESSAGE_ID_LIVE_QUERY = ( D3D11_MESSAGE_ID_LIVE_RASTERIZERSTATE + 1 ) , + D3D11_MESSAGE_ID_LIVE_PREDICATE = ( D3D11_MESSAGE_ID_LIVE_QUERY + 1 ) , + D3D11_MESSAGE_ID_LIVE_COUNTER = ( D3D11_MESSAGE_ID_LIVE_PREDICATE + 1 ) , + D3D11_MESSAGE_ID_LIVE_DEVICE = ( D3D11_MESSAGE_ID_LIVE_COUNTER + 1 ) , + D3D11_MESSAGE_ID_LIVE_SWAPCHAIN = ( D3D11_MESSAGE_ID_LIVE_DEVICE + 1 ) , + D3D11_MESSAGE_ID_D3D10_MESSAGES_END = ( D3D11_MESSAGE_ID_LIVE_SWAPCHAIN + 1 ) , + D3D11_MESSAGE_ID_D3D10L9_MESSAGES_START = 0x100000, + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_STENCIL_NO_TWO_SIDED = ( D3D11_MESSAGE_ID_D3D10L9_MESSAGES_START + 1 ) , + D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthBiasClamp_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_STENCIL_NO_TWO_SIDED + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_COMPARISON_SUPPORT = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthBiasClamp_NOT_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_EXCESSIVE_ANISOTROPY = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_COMPARISON_SUPPORT + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_OUT_OF_RANGE = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_EXCESSIVE_ANISOTROPY + 1 ) , + D3D11_MESSAGE_ID_VSSETSAMPLERS_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_OUT_OF_RANGE + 1 ) , + D3D11_MESSAGE_ID_VSSETSAMPLERS_TOO_MANY_SAMPLERS = ( D3D11_MESSAGE_ID_VSSETSAMPLERS_NOT_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_PSSETSAMPLERS_TOO_MANY_SAMPLERS = ( D3D11_MESSAGE_ID_VSSETSAMPLERS_TOO_MANY_SAMPLERS + 1 ) , + D3D11_MESSAGE_ID_CREATERESOURCE_NO_ARRAYS = ( D3D11_MESSAGE_ID_PSSETSAMPLERS_TOO_MANY_SAMPLERS + 1 ) , + D3D11_MESSAGE_ID_CREATERESOURCE_NO_VB_AND_IB_BIND = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_ARRAYS + 1 ) , + D3D11_MESSAGE_ID_CREATERESOURCE_NO_TEXTURE_1D = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_VB_AND_IB_BIND + 1 ) , + D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_OUT_OF_RANGE = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_TEXTURE_1D + 1 ) , + D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_SHADER_RESOURCE = ( D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_OUT_OF_RANGE + 1 ) , + D3D11_MESSAGE_ID_OMSETRENDERTARGETS_TOO_MANY_RENDER_TARGETS = ( D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_SHADER_RESOURCE + 1 ) , + D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_DIFFERING_BIT_DEPTHS = ( D3D11_MESSAGE_ID_OMSETRENDERTARGETS_TOO_MANY_RENDER_TARGETS + 1 ) , + D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_BAD_BUFFER_INDEX = ( D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_DIFFERING_BIT_DEPTHS + 1 ) , + D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_TOO_MANY_VIEWPORTS = ( D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_BAD_BUFFER_INDEX + 1 ) , + D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_ADJACENCY_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_TOO_MANY_VIEWPORTS + 1 ) , + D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_TOO_MANY_SCISSORS = ( D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_ADJACENCY_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_COPYRESOURCE_ONLY_TEXTURE_2D_WITHIN_GPU_MEMORY = ( D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_TOO_MANY_SCISSORS + 1 ) , + D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_3D_READBACK = ( D3D11_MESSAGE_ID_COPYRESOURCE_ONLY_TEXTURE_2D_WITHIN_GPU_MEMORY + 1 ) , + D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_ONLY_READBACK = ( D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_3D_READBACK + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNSUPPORTED_FORMAT = ( D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_ONLY_READBACK + 1 ) , + D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_ALPHA_TO_COVERAGE = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNSUPPORTED_FORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthClipEnable_MUST_BE_TRUE = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_ALPHA_TO_COVERAGE + 1 ) , + D3D11_MESSAGE_ID_DRAWINDEXED_STARTINDEXLOCATION_MUST_BE_POSITIVE = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthClipEnable_MUST_BE_TRUE + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_MUST_USE_LOWEST_LOD = ( D3D11_MESSAGE_ID_DRAWINDEXED_STARTINDEXLOCATION_MUST_BE_POSITIVE + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MINLOD_MUST_NOT_BE_FRACTIONAL = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_MUST_USE_LOWEST_LOD + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MAXLOD_MUST_BE_FLT_MAX = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MINLOD_MUST_NOT_BE_FRACTIONAL + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_FIRSTARRAYSLICE_MUST_BE_ZERO = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MAXLOD_MUST_BE_FLT_MAX + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_CUBES_MUST_HAVE_6_SIDES = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_FIRSTARRAYSLICE_MUST_BE_ZERO + 1 ) , + D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_RENDER_TARGET = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_CUBES_MUST_HAVE_6_SIDES + 1 ) , + D3D11_MESSAGE_ID_CREATERESOURCE_NO_DWORD_INDEX_BUFFER = ( D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_RENDER_TARGET + 1 ) , + D3D11_MESSAGE_ID_CREATERESOURCE_MSAA_PRECLUDES_SHADER_RESOURCE = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_DWORD_INDEX_BUFFER + 1 ) , + D3D11_MESSAGE_ID_CREATERESOURCE_PRESENTATION_PRECLUDES_SHADER_RESOURCE = ( D3D11_MESSAGE_ID_CREATERESOURCE_MSAA_PRECLUDES_SHADER_RESOURCE + 1 ) , + D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_BLEND_ENABLE = ( D3D11_MESSAGE_ID_CREATERESOURCE_PRESENTATION_PRECLUDES_SHADER_RESOURCE + 1 ) , + D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_WRITE_MASKS = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_BLEND_ENABLE + 1 ) , + D3D11_MESSAGE_ID_CREATERESOURCE_NO_STREAM_OUT = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_WRITE_MASKS + 1 ) , + D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_VB_IB_FOR_BUFFERS = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_STREAM_OUT + 1 ) , + D3D11_MESSAGE_ID_CREATERESOURCE_NO_AUTOGEN_FOR_VOLUMES = ( D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_VB_IB_FOR_BUFFERS + 1 ) , + D3D11_MESSAGE_ID_CREATERESOURCE_DXGI_FORMAT_R8G8B8A8_CANNOT_BE_SHARED = ( D3D11_MESSAGE_ID_CREATERESOURCE_NO_AUTOGEN_FOR_VOLUMES + 1 ) , + D3D11_MESSAGE_ID_VSSHADERRESOURCES_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_CREATERESOURCE_DXGI_FORMAT_R8G8B8A8_CANNOT_BE_SHARED + 1 ) , + D3D11_MESSAGE_ID_GEOMETRY_SHADER_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_VSSHADERRESOURCES_NOT_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_STREAM_OUT_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_GEOMETRY_SHADER_NOT_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_TEXT_FILTER_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_STREAM_OUT_NOT_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_SEPARATE_ALPHA_BLEND = ( D3D11_MESSAGE_ID_TEXT_FILTER_NOT_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_MRT_BLEND = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_SEPARATE_ALPHA_BLEND + 1 ) , + D3D11_MESSAGE_ID_CREATEBLENDSTATE_OPERATION_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_MRT_BLEND + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_MIRRORONCE = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_OPERATION_NOT_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DRAWINSTANCED_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_MIRRORONCE + 1 ) , + D3D11_MESSAGE_ID_DRAWINDEXEDINSTANCED_NOT_SUPPORTED_BELOW_9_3 = ( D3D11_MESSAGE_ID_DRAWINSTANCED_NOT_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DRAWINDEXED_POINTLIST_UNSUPPORTED = ( D3D11_MESSAGE_ID_DRAWINDEXEDINSTANCED_NOT_SUPPORTED_BELOW_9_3 + 1 ) , + D3D11_MESSAGE_ID_SETBLENDSTATE_SAMPLE_MASK_CANNOT_BE_ZERO = ( D3D11_MESSAGE_ID_DRAWINDEXED_POINTLIST_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_EXCEEDS_FEATURE_LEVEL_DEFINITION = ( D3D11_MESSAGE_ID_SETBLENDSTATE_SAMPLE_MASK_CANNOT_BE_ZERO + 1 ) , + D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_SINGLE_MIP_LEVEL_DEPTH_STENCIL_SUPPORTED = ( D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_EXCEEDS_FEATURE_LEVEL_DEFINITION + 1 ) , + D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_NEGATIVESCISSOR = ( D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_SINGLE_MIP_LEVEL_DEPTH_STENCIL_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_SLOT_ZERO_MUST_BE_D3D10_INPUT_PER_VERTEX_DATA = ( D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_NEGATIVESCISSOR + 1 ) , + D3D11_MESSAGE_ID_CREATERESOURCE_NON_POW_2_MIPMAP = ( D3D11_MESSAGE_ID_SLOT_ZERO_MUST_BE_D3D10_INPUT_PER_VERTEX_DATA + 1 ) , + D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_CREATERESOURCE_NON_POW_2_MIPMAP + 1 ) , + D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_SRGB_MRT = ( D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_NOT_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_COPYRESOURCE_NO_3D_MISMATCHED_UPDATES = ( D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_SRGB_MRT + 1 ) , + D3D11_MESSAGE_ID_D3D10L9_MESSAGES_END = ( D3D11_MESSAGE_ID_COPYRESOURCE_NO_3D_MISMATCHED_UPDATES + 1 ) , + D3D11_MESSAGE_ID_D3D11_MESSAGES_START = 0x200000, + D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS = ( D3D11_MESSAGE_ID_D3D11_MESSAGES_START + 1 ) , + D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE = ( D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE = ( D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTREAMS = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTREAMS + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTREAMS = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCLASSLINKAGE = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTREAMS + 1 ) , + D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCLASSLINKAGE + 1 ) , + D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_COMMANDLISTFLAGS = ( D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE + 1 ) , + D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_SINGLETHREADED = ( D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_COMMANDLISTFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALIDARG_RETURN = ( D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_SINGLETHREADED + 1 ) , + D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_CALL_RETURN = ( D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALIDARG_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_CALL_RETURN + 1 ) , + D3D11_MESSAGE_ID_FINISHDISPLAYLIST_ONIMMEDIATECONTEXT = ( D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_FINISHDISPLAYLIST_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_FINISHDISPLAYLIST_ONIMMEDIATECONTEXT + 1 ) , + D3D11_MESSAGE_ID_FINISHDISPLAYLIST_INVALID_CALL_RETURN = ( D3D11_MESSAGE_ID_FINISHDISPLAYLIST_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM = ( D3D11_MESSAGE_ID_FINISHDISPLAYLIST_INVALID_CALL_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES + 1 ) , + D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES + 1 ) , + D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_HAZARD = ( D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES + 1 ) , + D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_HAZARD = ( D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_HAZARD + 1 ) , + D3D11_MESSAGE_ID_HSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_HAZARD + 1 ) , + D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_HSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCALL = ( D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY = ( D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCALL + 1 ) , + D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE = ( D3D11_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY + 1 ) , + D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE = ( D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE + 1 ) , + D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE = ( D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_VIEWS_EMPTY = ( D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE + 1 ) , + D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_INVALIDBUFFER = ( D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) , + D3D11_MESSAGE_ID_DEVICE_HSSETSAMPLERS_SAMPLERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_HSGETSHADERRESOURCES_VIEWS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_HSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_HSGETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_HSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_HSGETSAMPLERS_SAMPLERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_HSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_HAZARD = ( D3D11_MESSAGE_ID_DEVICE_HSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_HAZARD = ( D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_HAZARD + 1 ) , + D3D11_MESSAGE_ID_DSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_HAZARD + 1 ) , + D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_DSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCALL = ( D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY = ( D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCALL + 1 ) , + D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE = ( D3D11_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY + 1 ) , + D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE = ( D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE + 1 ) , + D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE = ( D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_VIEWS_EMPTY = ( D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE + 1 ) , + D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_INVALIDBUFFER = ( D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DSSETSAMPLERS_SAMPLERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DSGETSHADERRESOURCES_VIEWS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_DSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DSGETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_DSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DSGETSAMPLERS_SAMPLERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_DSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_HS_XOR_DS_MISMATCH = ( D3D11_MESSAGE_ID_DEVICE_DSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEFERRED_CONTEXT_REMOVAL_PROCESS_AT_FAULT = ( D3D11_MESSAGE_ID_DEVICE_DRAW_HS_XOR_DS_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_INVALID_ARG_BUFFER = ( D3D11_MESSAGE_ID_DEFERRED_CONTEXT_REMOVAL_PROCESS_AT_FAULT + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_UNALIGNED = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_INVALID_ARG_BUFFER + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_OVERFLOW = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_UNALIGNED + 1 ) , + D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDMAPTYPE = ( D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_OVERFLOW + 1 ) , + D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDSUBRESOURCE = ( D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDMAPTYPE + 1 ) , + D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDFLAGS = ( D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDSUBRESOURCE + 1 ) , + D3D11_MESSAGE_ID_RESOURCE_MAP_ALREADYMAPPED = ( D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDFLAGS + 1 ) , + D3D11_MESSAGE_ID_RESOURCE_MAP_DEVICEREMOVED_RETURN = ( D3D11_MESSAGE_ID_RESOURCE_MAP_ALREADYMAPPED + 1 ) , + D3D11_MESSAGE_ID_RESOURCE_MAP_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_RESOURCE_MAP_DEVICEREMOVED_RETURN + 1 ) , + D3D11_MESSAGE_ID_RESOURCE_MAP_WITHOUT_INITIAL_DISCARD = ( D3D11_MESSAGE_ID_RESOURCE_MAP_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_RESOURCE_UNMAP_INVALIDSUBRESOURCE = ( D3D11_MESSAGE_ID_RESOURCE_MAP_WITHOUT_INITIAL_DISCARD + 1 ) , + D3D11_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED = ( D3D11_MESSAGE_ID_RESOURCE_UNMAP_INVALIDSUBRESOURCE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_RASTERIZING_CONTROL_POINTS = ( D3D11_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RASTERIZING_CONTROL_POINTS + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_SIGNATURE_MISMATCH = ( D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH = ( D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_SIGNATURE_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_CONTROL_POINT_COUNT_MISMATCH = ( D3D11_MESSAGE_ID_DEVICE_DRAW_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_TESSELLATOR_DOMAIN_MISMATCH = ( D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_CONTROL_POINT_COUNT_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_CREATE_CONTEXT = ( D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_TESSELLATOR_DOMAIN_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_LIVE_CONTEXT = ( D3D11_MESSAGE_ID_CREATE_CONTEXT + 1 ) , + D3D11_MESSAGE_ID_DESTROY_CONTEXT = ( D3D11_MESSAGE_ID_LIVE_CONTEXT + 1 ) , + D3D11_MESSAGE_ID_CREATE_BUFFER = ( D3D11_MESSAGE_ID_DESTROY_CONTEXT + 1 ) , + D3D11_MESSAGE_ID_LIVE_BUFFER_WIN7 = ( D3D11_MESSAGE_ID_CREATE_BUFFER + 1 ) , + D3D11_MESSAGE_ID_DESTROY_BUFFER = ( D3D11_MESSAGE_ID_LIVE_BUFFER_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_TEXTURE1D = ( D3D11_MESSAGE_ID_DESTROY_BUFFER + 1 ) , + D3D11_MESSAGE_ID_LIVE_TEXTURE1D_WIN7 = ( D3D11_MESSAGE_ID_CREATE_TEXTURE1D + 1 ) , + D3D11_MESSAGE_ID_DESTROY_TEXTURE1D = ( D3D11_MESSAGE_ID_LIVE_TEXTURE1D_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_TEXTURE2D = ( D3D11_MESSAGE_ID_DESTROY_TEXTURE1D + 1 ) , + D3D11_MESSAGE_ID_LIVE_TEXTURE2D_WIN7 = ( D3D11_MESSAGE_ID_CREATE_TEXTURE2D + 1 ) , + D3D11_MESSAGE_ID_DESTROY_TEXTURE2D = ( D3D11_MESSAGE_ID_LIVE_TEXTURE2D_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_TEXTURE3D = ( D3D11_MESSAGE_ID_DESTROY_TEXTURE2D + 1 ) , + D3D11_MESSAGE_ID_LIVE_TEXTURE3D_WIN7 = ( D3D11_MESSAGE_ID_CREATE_TEXTURE3D + 1 ) , + D3D11_MESSAGE_ID_DESTROY_TEXTURE3D = ( D3D11_MESSAGE_ID_LIVE_TEXTURE3D_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_SHADERRESOURCEVIEW = ( D3D11_MESSAGE_ID_DESTROY_TEXTURE3D + 1 ) , + D3D11_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW_WIN7 = ( D3D11_MESSAGE_ID_CREATE_SHADERRESOURCEVIEW + 1 ) , + D3D11_MESSAGE_ID_DESTROY_SHADERRESOURCEVIEW = ( D3D11_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_RENDERTARGETVIEW = ( D3D11_MESSAGE_ID_DESTROY_SHADERRESOURCEVIEW + 1 ) , + D3D11_MESSAGE_ID_LIVE_RENDERTARGETVIEW_WIN7 = ( D3D11_MESSAGE_ID_CREATE_RENDERTARGETVIEW + 1 ) , + D3D11_MESSAGE_ID_DESTROY_RENDERTARGETVIEW = ( D3D11_MESSAGE_ID_LIVE_RENDERTARGETVIEW_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILVIEW = ( D3D11_MESSAGE_ID_DESTROY_RENDERTARGETVIEW + 1 ) , + D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW_WIN7 = ( D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILVIEW + 1 ) , + D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILVIEW = ( D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_VERTEXSHADER = ( D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILVIEW + 1 ) , + D3D11_MESSAGE_ID_LIVE_VERTEXSHADER_WIN7 = ( D3D11_MESSAGE_ID_CREATE_VERTEXSHADER + 1 ) , + D3D11_MESSAGE_ID_DESTROY_VERTEXSHADER = ( D3D11_MESSAGE_ID_LIVE_VERTEXSHADER_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_HULLSHADER = ( D3D11_MESSAGE_ID_DESTROY_VERTEXSHADER + 1 ) , + D3D11_MESSAGE_ID_LIVE_HULLSHADER = ( D3D11_MESSAGE_ID_CREATE_HULLSHADER + 1 ) , + D3D11_MESSAGE_ID_DESTROY_HULLSHADER = ( D3D11_MESSAGE_ID_LIVE_HULLSHADER + 1 ) , + D3D11_MESSAGE_ID_CREATE_DOMAINSHADER = ( D3D11_MESSAGE_ID_DESTROY_HULLSHADER + 1 ) , + D3D11_MESSAGE_ID_LIVE_DOMAINSHADER = ( D3D11_MESSAGE_ID_CREATE_DOMAINSHADER + 1 ) , + D3D11_MESSAGE_ID_DESTROY_DOMAINSHADER = ( D3D11_MESSAGE_ID_LIVE_DOMAINSHADER + 1 ) , + D3D11_MESSAGE_ID_CREATE_GEOMETRYSHADER = ( D3D11_MESSAGE_ID_DESTROY_DOMAINSHADER + 1 ) , + D3D11_MESSAGE_ID_LIVE_GEOMETRYSHADER_WIN7 = ( D3D11_MESSAGE_ID_CREATE_GEOMETRYSHADER + 1 ) , + D3D11_MESSAGE_ID_DESTROY_GEOMETRYSHADER = ( D3D11_MESSAGE_ID_LIVE_GEOMETRYSHADER_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_PIXELSHADER = ( D3D11_MESSAGE_ID_DESTROY_GEOMETRYSHADER + 1 ) , + D3D11_MESSAGE_ID_LIVE_PIXELSHADER_WIN7 = ( D3D11_MESSAGE_ID_CREATE_PIXELSHADER + 1 ) , + D3D11_MESSAGE_ID_DESTROY_PIXELSHADER = ( D3D11_MESSAGE_ID_LIVE_PIXELSHADER_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_INPUTLAYOUT = ( D3D11_MESSAGE_ID_DESTROY_PIXELSHADER + 1 ) , + D3D11_MESSAGE_ID_LIVE_INPUTLAYOUT_WIN7 = ( D3D11_MESSAGE_ID_CREATE_INPUTLAYOUT + 1 ) , + D3D11_MESSAGE_ID_DESTROY_INPUTLAYOUT = ( D3D11_MESSAGE_ID_LIVE_INPUTLAYOUT_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_SAMPLER = ( D3D11_MESSAGE_ID_DESTROY_INPUTLAYOUT + 1 ) , + D3D11_MESSAGE_ID_LIVE_SAMPLER_WIN7 = ( D3D11_MESSAGE_ID_CREATE_SAMPLER + 1 ) , + D3D11_MESSAGE_ID_DESTROY_SAMPLER = ( D3D11_MESSAGE_ID_LIVE_SAMPLER_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_BLENDSTATE = ( D3D11_MESSAGE_ID_DESTROY_SAMPLER + 1 ) , + D3D11_MESSAGE_ID_LIVE_BLENDSTATE_WIN7 = ( D3D11_MESSAGE_ID_CREATE_BLENDSTATE + 1 ) , + D3D11_MESSAGE_ID_DESTROY_BLENDSTATE = ( D3D11_MESSAGE_ID_LIVE_BLENDSTATE_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILSTATE = ( D3D11_MESSAGE_ID_DESTROY_BLENDSTATE + 1 ) , + D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE_WIN7 = ( D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILSTATE + 1 ) , + D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILSTATE = ( D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_RASTERIZERSTATE = ( D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILSTATE + 1 ) , + D3D11_MESSAGE_ID_LIVE_RASTERIZERSTATE_WIN7 = ( D3D11_MESSAGE_ID_CREATE_RASTERIZERSTATE + 1 ) , + D3D11_MESSAGE_ID_DESTROY_RASTERIZERSTATE = ( D3D11_MESSAGE_ID_LIVE_RASTERIZERSTATE_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_QUERY = ( D3D11_MESSAGE_ID_DESTROY_RASTERIZERSTATE + 1 ) , + D3D11_MESSAGE_ID_LIVE_QUERY_WIN7 = ( D3D11_MESSAGE_ID_CREATE_QUERY + 1 ) , + D3D11_MESSAGE_ID_DESTROY_QUERY = ( D3D11_MESSAGE_ID_LIVE_QUERY_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_PREDICATE = ( D3D11_MESSAGE_ID_DESTROY_QUERY + 1 ) , + D3D11_MESSAGE_ID_LIVE_PREDICATE_WIN7 = ( D3D11_MESSAGE_ID_CREATE_PREDICATE + 1 ) , + D3D11_MESSAGE_ID_DESTROY_PREDICATE = ( D3D11_MESSAGE_ID_LIVE_PREDICATE_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_COUNTER = ( D3D11_MESSAGE_ID_DESTROY_PREDICATE + 1 ) , + D3D11_MESSAGE_ID_DESTROY_COUNTER = ( D3D11_MESSAGE_ID_CREATE_COUNTER + 1 ) , + D3D11_MESSAGE_ID_CREATE_COMMANDLIST = ( D3D11_MESSAGE_ID_DESTROY_COUNTER + 1 ) , + D3D11_MESSAGE_ID_LIVE_COMMANDLIST = ( D3D11_MESSAGE_ID_CREATE_COMMANDLIST + 1 ) , + D3D11_MESSAGE_ID_DESTROY_COMMANDLIST = ( D3D11_MESSAGE_ID_LIVE_COMMANDLIST + 1 ) , + D3D11_MESSAGE_ID_CREATE_CLASSINSTANCE = ( D3D11_MESSAGE_ID_DESTROY_COMMANDLIST + 1 ) , + D3D11_MESSAGE_ID_LIVE_CLASSINSTANCE = ( D3D11_MESSAGE_ID_CREATE_CLASSINSTANCE + 1 ) , + D3D11_MESSAGE_ID_DESTROY_CLASSINSTANCE = ( D3D11_MESSAGE_ID_LIVE_CLASSINSTANCE + 1 ) , + D3D11_MESSAGE_ID_CREATE_CLASSLINKAGE = ( D3D11_MESSAGE_ID_DESTROY_CLASSINSTANCE + 1 ) , + D3D11_MESSAGE_ID_LIVE_CLASSLINKAGE = ( D3D11_MESSAGE_ID_CREATE_CLASSLINKAGE + 1 ) , + D3D11_MESSAGE_ID_DESTROY_CLASSLINKAGE = ( D3D11_MESSAGE_ID_LIVE_CLASSLINKAGE + 1 ) , + D3D11_MESSAGE_ID_LIVE_DEVICE_WIN7 = ( D3D11_MESSAGE_ID_DESTROY_CLASSLINKAGE + 1 ) , + D3D11_MESSAGE_ID_LIVE_OBJECT_SUMMARY_WIN7 = ( D3D11_MESSAGE_ID_LIVE_DEVICE_WIN7 + 1 ) , + D3D11_MESSAGE_ID_CREATE_COMPUTESHADER = ( D3D11_MESSAGE_ID_LIVE_OBJECT_SUMMARY_WIN7 + 1 ) , + D3D11_MESSAGE_ID_LIVE_COMPUTESHADER = ( D3D11_MESSAGE_ID_CREATE_COMPUTESHADER + 1 ) , + D3D11_MESSAGE_ID_DESTROY_COMPUTESHADER = ( D3D11_MESSAGE_ID_LIVE_COMPUTESHADER + 1 ) , + D3D11_MESSAGE_ID_CREATE_UNORDEREDACCESSVIEW = ( D3D11_MESSAGE_ID_DESTROY_COMPUTESHADER + 1 ) , + D3D11_MESSAGE_ID_LIVE_UNORDEREDACCESSVIEW = ( D3D11_MESSAGE_ID_CREATE_UNORDEREDACCESSVIEW + 1 ) , + D3D11_MESSAGE_ID_DESTROY_UNORDEREDACCESSVIEW = ( D3D11_MESSAGE_ID_LIVE_UNORDEREDACCESSVIEW + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACES_FEATURELEVEL = ( D3D11_MESSAGE_ID_DESTROY_UNORDEREDACCESSVIEW + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACE_COUNT_MISMATCH = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACES_FEATURELEVEL + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACE_COUNT_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_INDEX = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_TYPE = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_INDEX + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_DATA = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_TYPE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SETSHADER_UNBOUND_INSTANCE_DATA = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_DATA + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SETSHADER_INSTANCE_DATA_BINDINGS = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_UNBOUND_INSTANCE_DATA + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATESHADER_CLASSLINKAGE_FULL = ( D3D11_MESSAGE_ID_DEVICE_SETSHADER_INSTANCE_DATA_BINDINGS + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_UNRECOGNIZED_FEATURE = ( D3D11_MESSAGE_ID_DEVICE_CREATESHADER_CLASSLINKAGE_FULL + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE = ( D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_UNRECOGNIZED_FEATURE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_INVALIDARG_RETURN = ( D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_HAZARD = ( D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_INVALIDARG_RETURN + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_HAZARD = ( D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_HAZARD + 1 ) , + D3D11_MESSAGE_ID_CSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_HAZARD + 1 ) , + D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_CSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCALL = ( D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY = ( D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCALL + 1 ) , + D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE = ( D3D11_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY + 1 ) , + D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERTYPE = ( D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE + 1 ) , + D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE = ( D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERTYPE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_VIEWS_EMPTY = ( D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE + 1 ) , + D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFER = ( D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CSSETSAMPLERS_SAMPLERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CSGETSHADERRESOURCES_VIEWS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_CSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CSGETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_CSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CSGETSAMPLERS_SAMPLERS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_CSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSTRUCTURESTRIDE = ( D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFLAGS = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSTRUCTURESTRIDE + 1 ) , + D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE + 1 ) , + D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC + 1 ) , + D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS + 1 ) , + D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_HAZARD = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT + 1 ) , + D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_OVERLAPPING_OLD_SLOTS = ( D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_HAZARD + 1 ) , + D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NO_OP = ( D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_OVERLAPPING_OLD_SLOTS + 1 ) , + D3D11_MESSAGE_ID_CSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NO_OP + 1 ) , + D3D11_MESSAGE_ID_PSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_CSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARG_RETURN = ( D3D11_MESSAGE_ID_PSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARG_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_TOOMANYOBJECTS = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_HAZARD = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_TOOMANYOBJECTS + 1 ) , + D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_DENORMFLUSH = ( D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_HAZARD + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSS_VIEWS_EMPTY = ( D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_DENORMFLUSH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CSGETUNORDEREDACCESSS_VIEWS_EMPTY = ( D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSS_VIEWS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS = ( D3D11_MESSAGE_ID_DEVICE_CSGETUNORDEREDACCESSS_VIEWS_EMPTY + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESESOURCEVIEW_TOOMANYOBJECTS = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_INVALID_ARG_BUFFER = ( D3D11_MESSAGE_ID_CREATESHADERRESESOURCEVIEW_TOOMANYOBJECTS + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_UNALIGNED = ( D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_INVALID_ARG_BUFFER + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_OVERFLOW = ( D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_UNALIGNED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDCONTEXT = ( D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_OVERFLOW + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDRESOURCE = ( D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDCONTEXT + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDMINLOD = ( D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDRESOURCE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDCONTEXT = ( D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDMINLOD + 1 ) , + D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDRESOURCE = ( D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDCONTEXT + 1 ) , + D3D11_MESSAGE_ID_OMSETDEPTHSTENCIL_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDRESOURCE + 1 ) , + D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DEPTH_READONLY = ( D3D11_MESSAGE_ID_OMSETDEPTHSTENCIL_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_STENCIL_READONLY = ( D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DEPTH_READONLY + 1 ) , + D3D11_MESSAGE_ID_CHECKFEATURESUPPORT_FORMAT_DEPRECATED = ( D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_STENCIL_READONLY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RETURN_TYPE_MISMATCH = ( D3D11_MESSAGE_ID_CHECKFEATURESUPPORT_FORMAT_DEPRECATED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RETURN_TYPE_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_UNORDEREDACCESSVIEW_RENDERTARGETVIEW_OVERLAP = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_DIMENSION_MISMATCH = ( D3D11_MESSAGE_ID_DEVICE_DRAW_UNORDEREDACCESSVIEW_RENDERTARGETVIEW_OVERLAP + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_APPEND_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_DIMENSION_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMICS_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_APPEND_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_STRUCTURE_STRIDE_MISMATCH = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMICS_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_BUFFER_TYPE_MISMATCH = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_STRUCTURE_STRIDE_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RAW_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_BUFFER_TYPE_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_LD_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RAW_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_STORE_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_LD_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_ADD_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_STORE_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_BITWISE_OPS_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_ADD_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_CMPSTORE_CMPEXCHANGE_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_BITWISE_OPS_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_EXCHANGE_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_CMPSTORE_CMPEXCHANGE_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_SIGNED_MINMAX_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_EXCHANGE_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_UNSIGNED_MINMAX_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_SIGNED_MINMAX_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DISPATCH_BOUND_RESOURCE_MAPPED = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_UNSIGNED_MINMAX_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_OVERFLOW = ( D3D11_MESSAGE_ID_DEVICE_DISPATCH_BOUND_RESOURCE_MAPPED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_ZERO = ( D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_OVERFLOW + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_STRUCTURE_STRIDE_MISMATCH = ( D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_ZERO + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_BUFFER_TYPE_MISMATCH = ( D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_STRUCTURE_STRIDE_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_RAW_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_BUFFER_TYPE_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DISPATCH_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_RAW_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_DISPATCH_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDOFFSET = ( D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_LARGEOFFSET = ( D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDOFFSET + 1 ) , + D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDDESTINATIONSTATE = ( D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_LARGEOFFSET + 1 ) , + D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDSOURCESTATE = ( D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDDESTINATIONSTATE + 1 ) , + D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDSOURCESTATE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDVIEW = ( D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_NOT_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDOFFSET = ( D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDVIEW + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_TOOMANYVIEWS = ( D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDOFFSET + 1 ) , + D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_INVALIDFORMAT = ( D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_TOOMANYVIEWS + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_COUNTER_UNSUPPORTED = ( D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_INVALIDFORMAT + 1 ) , + D3D11_MESSAGE_ID_REF_WARNING = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_COUNTER_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_PIXEL_SHADER_WITHOUT_RTV_OR_DSV = ( D3D11_MESSAGE_ID_REF_WARNING + 1 ) , + D3D11_MESSAGE_ID_SHADER_ABORT = ( D3D11_MESSAGE_ID_DEVICE_DRAW_PIXEL_SHADER_WITHOUT_RTV_OR_DSV + 1 ) , + D3D11_MESSAGE_ID_SHADER_MESSAGE = ( D3D11_MESSAGE_ID_SHADER_ABORT + 1 ) , + D3D11_MESSAGE_ID_SHADER_ERROR = ( D3D11_MESSAGE_ID_SHADER_MESSAGE + 1 ) , + D3D11_MESSAGE_ID_OFFERRESOURCES_INVALIDRESOURCE = ( D3D11_MESSAGE_ID_SHADER_ERROR + 1 ) , + D3D11_MESSAGE_ID_HSSETSAMPLERS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_OFFERRESOURCES_INVALIDRESOURCE + 1 ) , + D3D11_MESSAGE_ID_DSSETSAMPLERS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_HSSETSAMPLERS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_CSSETSAMPLERS_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_DSSETSAMPLERS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_HSSETSHADER_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_CSSETSAMPLERS_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_DSSETSHADER_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_HSSETSHADER_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_CSSETSHADER_UNBINDDELETINGOBJECT = ( D3D11_MESSAGE_ID_DSSETSHADER_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_ENQUEUESETEVENT_INVALIDARG_RETURN = ( D3D11_MESSAGE_ID_CSSETSHADER_UNBINDDELETINGOBJECT + 1 ) , + D3D11_MESSAGE_ID_ENQUEUESETEVENT_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_ENQUEUESETEVENT_INVALIDARG_RETURN + 1 ) , + D3D11_MESSAGE_ID_ENQUEUESETEVENT_ACCESSDENIED_RETURN = ( D3D11_MESSAGE_ID_ENQUEUESETEVENT_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NUMUAVS_INVALIDRANGE = ( D3D11_MESSAGE_ID_ENQUEUESETEVENT_ACCESSDENIED_RETURN + 1 ) , + D3D11_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT = ( D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NUMUAVS_INVALIDRANGE + 1 ) , + D3D11_MESSAGE_ID_D3D11_MESSAGES_END = ( D3D11_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT + 1 ) , + D3D11_MESSAGE_ID_D3D11_1_MESSAGES_START = 0x300000, + D3D11_MESSAGE_ID_CREATE_VIDEODECODER = ( D3D11_MESSAGE_ID_D3D11_1_MESSAGES_START + 1 ) , + D3D11_MESSAGE_ID_CREATE_VIDEOPROCESSORENUM = ( D3D11_MESSAGE_ID_CREATE_VIDEODECODER + 1 ) , + D3D11_MESSAGE_ID_CREATE_VIDEOPROCESSOR = ( D3D11_MESSAGE_ID_CREATE_VIDEOPROCESSORENUM + 1 ) , + D3D11_MESSAGE_ID_CREATE_DECODEROUTPUTVIEW = ( D3D11_MESSAGE_ID_CREATE_VIDEOPROCESSOR + 1 ) , + D3D11_MESSAGE_ID_CREATE_PROCESSORINPUTVIEW = ( D3D11_MESSAGE_ID_CREATE_DECODEROUTPUTVIEW + 1 ) , + D3D11_MESSAGE_ID_CREATE_PROCESSOROUTPUTVIEW = ( D3D11_MESSAGE_ID_CREATE_PROCESSORINPUTVIEW + 1 ) , + D3D11_MESSAGE_ID_CREATE_DEVICECONTEXTSTATE = ( D3D11_MESSAGE_ID_CREATE_PROCESSOROUTPUTVIEW + 1 ) , + D3D11_MESSAGE_ID_LIVE_VIDEODECODER = ( D3D11_MESSAGE_ID_CREATE_DEVICECONTEXTSTATE + 1 ) , + D3D11_MESSAGE_ID_LIVE_VIDEOPROCESSORENUM = ( D3D11_MESSAGE_ID_LIVE_VIDEODECODER + 1 ) , + D3D11_MESSAGE_ID_LIVE_VIDEOPROCESSOR = ( D3D11_MESSAGE_ID_LIVE_VIDEOPROCESSORENUM + 1 ) , + D3D11_MESSAGE_ID_LIVE_DECODEROUTPUTVIEW = ( D3D11_MESSAGE_ID_LIVE_VIDEOPROCESSOR + 1 ) , + D3D11_MESSAGE_ID_LIVE_PROCESSORINPUTVIEW = ( D3D11_MESSAGE_ID_LIVE_DECODEROUTPUTVIEW + 1 ) , + D3D11_MESSAGE_ID_LIVE_PROCESSOROUTPUTVIEW = ( D3D11_MESSAGE_ID_LIVE_PROCESSORINPUTVIEW + 1 ) , + D3D11_MESSAGE_ID_LIVE_DEVICECONTEXTSTATE = ( D3D11_MESSAGE_ID_LIVE_PROCESSOROUTPUTVIEW + 1 ) , + D3D11_MESSAGE_ID_DESTROY_VIDEODECODER = ( D3D11_MESSAGE_ID_LIVE_DEVICECONTEXTSTATE + 1 ) , + D3D11_MESSAGE_ID_DESTROY_VIDEOPROCESSORENUM = ( D3D11_MESSAGE_ID_DESTROY_VIDEODECODER + 1 ) , + D3D11_MESSAGE_ID_DESTROY_VIDEOPROCESSOR = ( D3D11_MESSAGE_ID_DESTROY_VIDEOPROCESSORENUM + 1 ) , + D3D11_MESSAGE_ID_DESTROY_DECODEROUTPUTVIEW = ( D3D11_MESSAGE_ID_DESTROY_VIDEOPROCESSOR + 1 ) , + D3D11_MESSAGE_ID_DESTROY_PROCESSORINPUTVIEW = ( D3D11_MESSAGE_ID_DESTROY_DECODEROUTPUTVIEW + 1 ) , + D3D11_MESSAGE_ID_DESTROY_PROCESSOROUTPUTVIEW = ( D3D11_MESSAGE_ID_DESTROY_PROCESSORINPUTVIEW + 1 ) , + D3D11_MESSAGE_ID_DESTROY_DEVICECONTEXTSTATE = ( D3D11_MESSAGE_ID_DESTROY_PROCESSOROUTPUTVIEW + 1 ) , + D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_INVALIDFLAGS = ( D3D11_MESSAGE_ID_DESTROY_DEVICECONTEXTSTATE + 1 ) , + D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_INVALIDFEATURELEVEL = ( D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_INVALIDFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_FEATURELEVELS_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_INVALIDFEATURELEVEL + 1 ) , + D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_INVALIDREFIID = ( D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_FEATURELEVELS_NOT_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DISCARDVIEW_INVALIDVIEW = ( D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_INVALIDREFIID + 1 ) , + D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION1_INVALIDCOPYFLAGS = ( D3D11_MESSAGE_ID_DEVICE_DISCARDVIEW_INVALIDVIEW + 1 ) , + D3D11_MESSAGE_ID_UPDATESUBRESOURCE1_INVALIDCOPYFLAGS = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION1_INVALIDCOPYFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT = ( D3D11_MESSAGE_ID_UPDATESUBRESOURCE1_INVALIDCOPYFLAGS + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEODECODER_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEODECODER_NULLPARAM = ( D3D11_MESSAGE_ID_CREATEVIDEODECODER_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEODECODER_INVALIDFORMAT = ( D3D11_MESSAGE_ID_CREATEVIDEODECODER_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEODECODER_ZEROWIDTHHEIGHT = ( D3D11_MESSAGE_ID_CREATEVIDEODECODER_INVALIDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEODECODER_DRIVER_INVALIDBUFFERSIZE = ( D3D11_MESSAGE_ID_CREATEVIDEODECODER_ZEROWIDTHHEIGHT + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEODECODER_DRIVER_INVALIDBUFFERUSAGE = ( D3D11_MESSAGE_ID_CREATEVIDEODECODER_DRIVER_INVALIDBUFFERSIZE + 1 ) , + D3D11_MESSAGE_ID_GETVIDEODECODERPROFILECOUNT_OUTOFMEMORY = ( D3D11_MESSAGE_ID_CREATEVIDEODECODER_DRIVER_INVALIDBUFFERUSAGE + 1 ) , + D3D11_MESSAGE_ID_GETVIDEODECODERPROFILE_NULLPARAM = ( D3D11_MESSAGE_ID_GETVIDEODECODERPROFILECOUNT_OUTOFMEMORY + 1 ) , + D3D11_MESSAGE_ID_GETVIDEODECODERPROFILE_INVALIDINDEX = ( D3D11_MESSAGE_ID_GETVIDEODECODERPROFILE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETVIDEODECODERPROFILE_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_GETVIDEODECODERPROFILE_INVALIDINDEX + 1 ) , + D3D11_MESSAGE_ID_CHECKVIDEODECODERFORMAT_NULLPARAM = ( D3D11_MESSAGE_ID_GETVIDEODECODERPROFILE_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CHECKVIDEODECODERFORMAT_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CHECKVIDEODECODERFORMAT_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETVIDEODECODERCONFIGCOUNT_NULLPARAM = ( D3D11_MESSAGE_ID_CHECKVIDEODECODERFORMAT_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_GETVIDEODECODERCONFIGCOUNT_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_GETVIDEODECODERCONFIGCOUNT_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETVIDEODECODERCONFIG_NULLPARAM = ( D3D11_MESSAGE_ID_GETVIDEODECODERCONFIGCOUNT_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_GETVIDEODECODERCONFIG_INVALIDINDEX = ( D3D11_MESSAGE_ID_GETVIDEODECODERCONFIG_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETVIDEODECODERCONFIG_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_GETVIDEODECODERCONFIG_INVALIDINDEX + 1 ) , + D3D11_MESSAGE_ID_GETDECODERCREATIONPARAMS_NULLPARAM = ( D3D11_MESSAGE_ID_GETVIDEODECODERCONFIG_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_GETDECODERDRIVERHANDLE_NULLPARAM = ( D3D11_MESSAGE_ID_GETDECODERCREATIONPARAMS_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETDECODERBUFFER_NULLPARAM = ( D3D11_MESSAGE_ID_GETDECODERDRIVERHANDLE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETDECODERBUFFER_INVALIDBUFFER = ( D3D11_MESSAGE_ID_GETDECODERBUFFER_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETDECODERBUFFER_INVALIDTYPE = ( D3D11_MESSAGE_ID_GETDECODERBUFFER_INVALIDBUFFER + 1 ) , + D3D11_MESSAGE_ID_GETDECODERBUFFER_LOCKED = ( D3D11_MESSAGE_ID_GETDECODERBUFFER_INVALIDTYPE + 1 ) , + D3D11_MESSAGE_ID_RELEASEDECODERBUFFER_NULLPARAM = ( D3D11_MESSAGE_ID_GETDECODERBUFFER_LOCKED + 1 ) , + D3D11_MESSAGE_ID_RELEASEDECODERBUFFER_INVALIDTYPE = ( D3D11_MESSAGE_ID_RELEASEDECODERBUFFER_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_RELEASEDECODERBUFFER_NOTLOCKED = ( D3D11_MESSAGE_ID_RELEASEDECODERBUFFER_INVALIDTYPE + 1 ) , + D3D11_MESSAGE_ID_DECODERBEGINFRAME_NULLPARAM = ( D3D11_MESSAGE_ID_RELEASEDECODERBUFFER_NOTLOCKED + 1 ) , + D3D11_MESSAGE_ID_DECODERBEGINFRAME_HAZARD = ( D3D11_MESSAGE_ID_DECODERBEGINFRAME_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_DECODERENDFRAME_NULLPARAM = ( D3D11_MESSAGE_ID_DECODERBEGINFRAME_HAZARD + 1 ) , + D3D11_MESSAGE_ID_SUBMITDECODERBUFFERS_NULLPARAM = ( D3D11_MESSAGE_ID_DECODERENDFRAME_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_SUBMITDECODERBUFFERS_INVALIDTYPE = ( D3D11_MESSAGE_ID_SUBMITDECODERBUFFERS_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_DECODEREXTENSION_NULLPARAM = ( D3D11_MESSAGE_ID_SUBMITDECODERBUFFERS_INVALIDTYPE + 1 ) , + D3D11_MESSAGE_ID_DECODEREXTENSION_INVALIDRESOURCE = ( D3D11_MESSAGE_ID_DECODEREXTENSION_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_DECODEREXTENSION_INVALIDRESOURCE + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_NULLPARAM = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDFRAMEFORMAT = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDUSAGE = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDFRAMEFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDINPUTFRAMERATE = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDUSAGE + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDOUTPUTFRAMERATE = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDINPUTFRAMERATE + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDWIDTHHEIGHT = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDOUTPUTFRAMERATE + 1 ) , + D3D11_MESSAGE_ID_GETVIDEOPROCESSORCONTENTDESC_NULLPARAM = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDWIDTHHEIGHT + 1 ) , + D3D11_MESSAGE_ID_CHECKVIDEOPROCESSORFORMAT_NULLPARAM = ( D3D11_MESSAGE_ID_GETVIDEOPROCESSORCONTENTDESC_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETVIDEOPROCESSORCAPS_NULLPARAM = ( D3D11_MESSAGE_ID_CHECKVIDEOPROCESSORFORMAT_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETVIDEOPROCESSORRATECONVERSIONCAPS_NULLPARAM = ( D3D11_MESSAGE_ID_GETVIDEOPROCESSORCAPS_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETVIDEOPROCESSORRATECONVERSIONCAPS_INVALIDINDEX = ( D3D11_MESSAGE_ID_GETVIDEOPROCESSORRATECONVERSIONCAPS_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETVIDEOPROCESSORCUSTOMRATE_NULLPARAM = ( D3D11_MESSAGE_ID_GETVIDEOPROCESSORRATECONVERSIONCAPS_INVALIDINDEX + 1 ) , + D3D11_MESSAGE_ID_GETVIDEOPROCESSORCUSTOMRATE_INVALIDINDEX = ( D3D11_MESSAGE_ID_GETVIDEOPROCESSORCUSTOMRATE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETVIDEOPROCESSORFILTERRANGE_NULLPARAM = ( D3D11_MESSAGE_ID_GETVIDEOPROCESSORCUSTOMRATE_INVALIDINDEX + 1 ) , + D3D11_MESSAGE_ID_GETVIDEOPROCESSORFILTERRANGE_UNSUPPORTED = ( D3D11_MESSAGE_ID_GETVIDEOPROCESSORFILTERRANGE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOR_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_GETVIDEOPROCESSORFILTERRANGE_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOR_NULLPARAM = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOR_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTTARGETRECT_NULLPARAM = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOR_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTBACKGROUNDCOLOR_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTTARGETRECT_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTBACKGROUNDCOLOR_INVALIDALPHA = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTBACKGROUNDCOLOR_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCOLORSPACE_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTBACKGROUNDCOLOR_INVALIDALPHA + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCOLORSPACE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_UNSUPPORTED = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_INVALIDFILLMODE = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCONSTRICTION_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_INVALIDFILLMODE + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSTEREOMODE_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCONSTRICTION_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSTEREOMODE_UNSUPPORTED = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSTEREOMODE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTEXTENSION_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSTEREOMODE_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTTARGETRECT_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTEXTENSION_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTBACKGROUNDCOLOR_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTTARGETRECT_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCOLORSPACE_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTBACKGROUNDCOLOR_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTALPHAFILLMODE_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCOLORSPACE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCONSTRICTION_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTALPHAFILLMODE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCONSTRICTION_UNSUPPORTED = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCONSTRICTION_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCONSTRICTION_INVALIDSIZE = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCONSTRICTION_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTSTEREOMODE_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCONSTRICTION_INVALIDSIZE + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTEXTENSION_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTSTEREOMODE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFRAMEFORMAT_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTEXTENSION_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFRAMEFORMAT_INVALIDFORMAT = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFRAMEFORMAT_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFRAMEFORMAT_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFRAMEFORMAT_INVALIDFORMAT + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFRAMEFORMAT_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_INVALIDRATE = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_INVALIDFLAG = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_INVALIDRATE + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_INVALIDFLAG + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSOURCERECT_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSOURCERECT_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSOURCERECT_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSOURCERECT_INVALIDRECT = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSOURCERECT_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMDESTRECT_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSOURCERECT_INVALIDRECT + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMDESTRECT_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMDESTRECT_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMDESTRECT_INVALIDRECT = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMDESTRECT_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMDESTRECT_INVALIDRECT + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_INVALIDALPHA = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_INVALIDALPHA + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_INVALIDCOUNT = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_INVALIDALPHA = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_INVALIDCOUNT + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_INVALIDALPHA + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_INVALIDRATIO = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_INVALIDRATIO + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_INVALIDRANGE = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_UNSUPPORTED = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_INVALIDRANGE + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_UNSUPPORTED = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_FLIPUNSUPPORTED = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_MONOOFFSETUNSUPPORTED = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_FLIPUNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_FORMATUNSUPPORTED = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_MONOOFFSETUNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_INVALIDFORMAT = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_FORMATUNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMAUTOPROCESSINGMODE_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_INVALIDFORMAT + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMAUTOPROCESSINGMODE_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMAUTOPROCESSINGMODE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMAUTOPROCESSINGMODE_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_INVALIDFILTER = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_UNSUPPORTED = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_INVALIDFILTER + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_INVALIDLEVEL = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMEXTENSION_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_INVALIDLEVEL + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMEXTENSION_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMEXTENSION_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMFRAMEFORMAT_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMEXTENSION_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMCOLORSPACE_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMFRAMEFORMAT_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMOUTPUTRATE_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMCOLORSPACE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMSOURCERECT_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMOUTPUTRATE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMDESTRECT_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMSOURCERECT_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMALPHA_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMDESTRECT_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMPALETTE_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMALPHA_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMPIXELASPECTRATIO_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMPALETTE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMLUMAKEY_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMPIXELASPECTRATIO_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMSTEREOFORMAT_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMLUMAKEY_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMAUTOPROCESSINGMODE_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMSTEREOFORMAT_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMFILTER_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMAUTOPROCESSINGMODE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMEXTENSION_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMFILTER_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMEXTENSION_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMEXTENSION_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMEXTENSION_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDSTREAMCOUNT = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_TARGETRECT = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDSTREAMCOUNT + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDOUTPUT = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_TARGETRECT + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDPASTFRAMES = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDOUTPUT + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDFUTUREFRAMES = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDPASTFRAMES + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDSOURCERECT = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDFUTUREFRAMES + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDDESTRECT = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDSOURCERECT + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDINPUTRESOURCE = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDDESTRECT + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDARRAYSIZE = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDINPUTRESOURCE + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDARRAY = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDARRAYSIZE + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_RIGHTEXPECTED = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDARRAY + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_RIGHTNOTEXPECTED = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_RIGHTEXPECTED + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_STEREONOTENABLED = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_RIGHTNOTEXPECTED + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDRIGHTRESOURCE = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_STEREONOTENABLED + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_NOSTEREOSTREAMS = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDRIGHTRESOURCE + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INPUTHAZARD = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_NOSTEREOSTREAMS + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_OUTPUTHAZARD = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INPUTHAZARD + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_OUTPUTHAZARD + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_NULLPARAM = ( D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDTYPE = ( D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDBIND = ( D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDTYPE + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_UNSUPPORTEDFORMAT = ( D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDBIND + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDMIP = ( D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_UNSUPPORTEDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_UNSUPPORTEMIP = ( D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDMIP + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDARRAYSIZE = ( D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_UNSUPPORTEMIP + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDARRAY = ( D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDARRAYSIZE + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDDIMENSION = ( D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDARRAY + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDDIMENSION + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_NULLPARAM = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDTYPE = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDBIND = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDTYPE + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMISC = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDBIND + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDUSAGE = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMISC + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDFORMAT = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDUSAGE + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDFOURCC = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMIP = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDFOURCC + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_UNSUPPORTEDMIP = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMIP + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDARRAYSIZE = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_UNSUPPORTEDMIP + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDARRAY = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDARRAYSIZE + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDDIMENSION = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDARRAY + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDDIMENSION + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_NULLPARAM = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDTYPE = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDBIND = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDTYPE + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDFORMAT = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDBIND + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDMIP = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDFORMAT + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_UNSUPPORTEDMIP = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDMIP + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_UNSUPPORTEDARRAY = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_UNSUPPORTEDMIP + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDARRAY = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_UNSUPPORTEDARRAY + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDDIMENSION = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDARRAY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_FORCED_SAMPLE_COUNT = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDDIMENSION + 1 ) , + D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_FORCED_SAMPLE_COUNT + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDARRAYWITHDECODER = ( D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS + 1 ) , + D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDARRAYWITHDECODER = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDARRAYWITHDECODER + 1 ) , + D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDARRAYWITHDECODER = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDARRAYWITHDECODER + 1 ) , + D3D11_MESSAGE_ID_DEVICE_LOCKEDOUT_INTERFACE = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDARRAYWITHDECODER + 1 ) , + D3D11_MESSAGE_ID_REF_WARNING_ATOMIC_INCONSISTENT = ( D3D11_MESSAGE_ID_DEVICE_LOCKEDOUT_INTERFACE + 1 ) , + D3D11_MESSAGE_ID_REF_WARNING_READING_UNINITIALIZED_RESOURCE = ( D3D11_MESSAGE_ID_REF_WARNING_ATOMIC_INCONSISTENT + 1 ) , + D3D11_MESSAGE_ID_REF_WARNING_RAW_HAZARD = ( D3D11_MESSAGE_ID_REF_WARNING_READING_UNINITIALIZED_RESOURCE + 1 ) , + D3D11_MESSAGE_ID_REF_WARNING_WAR_HAZARD = ( D3D11_MESSAGE_ID_REF_WARNING_RAW_HAZARD + 1 ) , + D3D11_MESSAGE_ID_REF_WARNING_WAW_HAZARD = ( D3D11_MESSAGE_ID_REF_WARNING_WAR_HAZARD + 1 ) , + D3D11_MESSAGE_ID_CREATECRYPTOSESSION_NULLPARAM = ( D3D11_MESSAGE_ID_REF_WARNING_WAW_HAZARD + 1 ) , + D3D11_MESSAGE_ID_CREATECRYPTOSESSION_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CREATECRYPTOSESSION_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETCRYPTOTYPE_NULLPARAM = ( D3D11_MESSAGE_ID_CREATECRYPTOSESSION_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_GETDECODERPROFILE_NULLPARAM = ( D3D11_MESSAGE_ID_GETCRYPTOTYPE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETCRYPTOSESSIONCERTIFICATESIZE_NULLPARAM = ( D3D11_MESSAGE_ID_GETDECODERPROFILE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETCRYPTOSESSIONCERTIFICATE_NULLPARAM = ( D3D11_MESSAGE_ID_GETCRYPTOSESSIONCERTIFICATESIZE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETCRYPTOSESSIONCERTIFICATE_WRONGSIZE = ( D3D11_MESSAGE_ID_GETCRYPTOSESSIONCERTIFICATE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETCRYPTOSESSIONHANDLE_WRONGSIZE = ( D3D11_MESSAGE_ID_GETCRYPTOSESSIONCERTIFICATE_WRONGSIZE + 1 ) , + D3D11_MESSAGE_ID_NEGOTIATECRPYTOSESSIONKEYEXCHANGE_NULLPARAM = ( D3D11_MESSAGE_ID_GETCRYPTOSESSIONHANDLE_WRONGSIZE + 1 ) , + D3D11_MESSAGE_ID_ENCRYPTIONBLT_UNSUPPORTED = ( D3D11_MESSAGE_ID_NEGOTIATECRPYTOSESSIONKEYEXCHANGE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_ENCRYPTIONBLT_NULLPARAM = ( D3D11_MESSAGE_ID_ENCRYPTIONBLT_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_WRONGDEVICE = ( D3D11_MESSAGE_ID_ENCRYPTIONBLT_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_WRONGDEVICE = ( D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_WRONGDEVICE + 1 ) , + D3D11_MESSAGE_ID_ENCRYPTIONBLT_FORMAT_MISMATCH = ( D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_WRONGDEVICE + 1 ) , + D3D11_MESSAGE_ID_ENCRYPTIONBLT_SIZE_MISMATCH = ( D3D11_MESSAGE_ID_ENCRYPTIONBLT_FORMAT_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_MULTISAMPLED = ( D3D11_MESSAGE_ID_ENCRYPTIONBLT_SIZE_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_NOT_STAGING = ( D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_MULTISAMPLED + 1 ) , + D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_MAPPED = ( D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_NOT_STAGING + 1 ) , + D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_MAPPED = ( D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_MAPPED + 1 ) , + D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_OFFERED = ( D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_MAPPED + 1 ) , + D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_OFFERED = ( D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_OFFERED + 1 ) , + D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_CONTENT_UNDEFINED = ( D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_OFFERED + 1 ) , + D3D11_MESSAGE_ID_DECRYPTIONBLT_UNSUPPORTED = ( D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_CONTENT_UNDEFINED + 1 ) , + D3D11_MESSAGE_ID_DECRYPTIONBLT_NULLPARAM = ( D3D11_MESSAGE_ID_DECRYPTIONBLT_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_WRONGDEVICE = ( D3D11_MESSAGE_ID_DECRYPTIONBLT_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_WRONGDEVICE = ( D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_WRONGDEVICE + 1 ) , + D3D11_MESSAGE_ID_DECRYPTIONBLT_FORMAT_MISMATCH = ( D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_WRONGDEVICE + 1 ) , + D3D11_MESSAGE_ID_DECRYPTIONBLT_SIZE_MISMATCH = ( D3D11_MESSAGE_ID_DECRYPTIONBLT_FORMAT_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_MULTISAMPLED = ( D3D11_MESSAGE_ID_DECRYPTIONBLT_SIZE_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_NOT_STAGING = ( D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_MULTISAMPLED + 1 ) , + D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_NOT_RENDER_TARGET = ( D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_NOT_STAGING + 1 ) , + D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_MAPPED = ( D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_NOT_RENDER_TARGET + 1 ) , + D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_MAPPED = ( D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_MAPPED + 1 ) , + D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_OFFERED = ( D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_MAPPED + 1 ) , + D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_OFFERED = ( D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_OFFERED + 1 ) , + D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_CONTENT_UNDEFINED = ( D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_OFFERED + 1 ) , + D3D11_MESSAGE_ID_STARTSESSIONKEYREFRESH_NULLPARAM = ( D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_CONTENT_UNDEFINED + 1 ) , + D3D11_MESSAGE_ID_STARTSESSIONKEYREFRESH_INVALIDSIZE = ( D3D11_MESSAGE_ID_STARTSESSIONKEYREFRESH_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_FINISHSESSIONKEYREFRESH_NULLPARAM = ( D3D11_MESSAGE_ID_STARTSESSIONKEYREFRESH_INVALIDSIZE + 1 ) , + D3D11_MESSAGE_ID_GETENCRYPTIONBLTKEY_NULLPARAM = ( D3D11_MESSAGE_ID_FINISHSESSIONKEYREFRESH_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETENCRYPTIONBLTKEY_INVALIDSIZE = ( D3D11_MESSAGE_ID_GETENCRYPTIONBLTKEY_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETCONTENTPROTECTIONCAPS_NULLPARAM = ( D3D11_MESSAGE_ID_GETENCRYPTIONBLTKEY_INVALIDSIZE + 1 ) , + D3D11_MESSAGE_ID_CHECKCRYPTOKEYEXCHANGE_NULLPARAM = ( D3D11_MESSAGE_ID_GETCONTENTPROTECTIONCAPS_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_CHECKCRYPTOKEYEXCHANGE_INVALIDINDEX = ( D3D11_MESSAGE_ID_CHECKCRYPTOKEYEXCHANGE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_NULLPARAM = ( D3D11_MESSAGE_ID_CHECKCRYPTOKEYEXCHANGE_INVALIDINDEX + 1 ) , + D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_UNSUPPORTED = ( D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_INVALIDTYPE = ( D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_OUTOFMEMORY_RETURN = ( D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_INVALIDTYPE + 1 ) , + D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATESIZE_INVALIDCHANNEL = ( D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_OUTOFMEMORY_RETURN + 1 ) , + D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATESIZE_NULLPARAM = ( D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATESIZE_INVALIDCHANNEL + 1 ) , + D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATE_INVALIDCHANNEL = ( D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATESIZE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATE_NULLPARAM = ( D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATE_INVALIDCHANNEL + 1 ) , + D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATE_WRONGSIZE = ( D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE_INVALIDCHANNEL = ( D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATE_WRONGSIZE + 1 ) , + D3D11_MESSAGE_ID_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE_NULLPARAM = ( D3D11_MESSAGE_ID_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE_INVALIDCHANNEL + 1 ) , + D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_NULLPARAM = ( D3D11_MESSAGE_ID_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_WRONGCHANNEL = ( D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_UNSUPPORTEDQUERY = ( D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_WRONGCHANNEL + 1 ) , + D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_WRONGSIZE = ( D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_UNSUPPORTEDQUERY + 1 ) , + D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_INVALIDPROCESSINDEX = ( D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_WRONGSIZE + 1 ) , + D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_NULLPARAM = ( D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_INVALIDPROCESSINDEX + 1 ) , + D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_WRONGCHANNEL = ( D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_UNSUPPORTEDCONFIGURE = ( D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_WRONGCHANNEL + 1 ) , + D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_WRONGSIZE = ( D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_UNSUPPORTEDCONFIGURE + 1 ) , + D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_INVALIDPROCESSIDTYPE = ( D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_WRONGSIZE + 1 ) , + D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = ( D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_INVALIDPROCESSIDTYPE + 1 ) , + D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = ( D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT + 1 ) , + D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = ( D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT + 1 ) , + D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = ( D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT + 1 ) , + D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = ( D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT + 1 ) , + D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = ( D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT + 1 ) , + D3D11_MESSAGE_ID_NEGOTIATECRPYTOSESSIONKEYEXCHANGE_INVALIDSIZE = ( D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT + 1 ) , + D3D11_MESSAGE_ID_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE_INVALIDSIZE = ( D3D11_MESSAGE_ID_NEGOTIATECRPYTOSESSIONKEYEXCHANGE_INVALIDSIZE + 1 ) , + D3D11_MESSAGE_ID_OFFERRESOURCES_INVALIDPRIORITY = ( D3D11_MESSAGE_ID_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE_INVALIDSIZE + 1 ) , + D3D11_MESSAGE_ID_GETCRYPTOSESSIONHANDLE_OUTOFMEMORY = ( D3D11_MESSAGE_ID_OFFERRESOURCES_INVALIDPRIORITY + 1 ) , + D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_NULLPARAM = ( D3D11_MESSAGE_ID_GETCRYPTOSESSIONHANDLE_OUTOFMEMORY + 1 ) , + D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_INVALIDTYPE = ( D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_INVALIDBIND = ( D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_INVALIDTYPE + 1 ) , + D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_INVALIDARRAY = ( D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_INVALIDBIND + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_NULLPARAM = ( D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_INVALIDARRAY + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_INVALID = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_UNSUPPORTED = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_INVALID + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMROTATION_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDVIEW = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMROTATION_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDVIEW + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_SHADEREXTENSIONSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_MINPRECISION = ( D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_UNSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_MINPRECISION + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_UNSUPPORTED = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_INVALIDOFFSET = ( D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_TOOMANYVIEWS = ( D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_INVALIDOFFSET + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_NOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_TOOMANYVIEWS + 1 ) , + D3D11_MESSAGE_ID_SWAPDEVICECONTEXTSTATE_NOTSUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_NOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_UPDATESUBRESOURCE_PREFERUPDATESUBRESOURCE1 = ( D3D11_MESSAGE_ID_SWAPDEVICECONTEXTSTATE_NOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_GETDC_INACCESSIBLE = ( D3D11_MESSAGE_ID_UPDATESUBRESOURCE_PREFERUPDATESUBRESOURCE1 + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDRECT = ( D3D11_MESSAGE_ID_GETDC_INACCESSIBLE + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLE_MASK_IGNORED_ON_FL9 = ( D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDRECT + 1 ) , + D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE1_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLE_MASK_IGNORED_ON_FL9 + 1 ) , + D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BY_NAME_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE1_NOT_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_ENQUEUESETEVENT_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BY_NAME_NOT_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_OFFERRELEASE_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_ENQUEUESETEVENT_NOT_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_OFFERRESOURCES_INACCESSIBLE = ( D3D11_MESSAGE_ID_OFFERRELEASE_NOT_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMSAA = ( D3D11_MESSAGE_ID_OFFERRESOURCES_INACCESSIBLE + 1 ) , + D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDMSAA = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMSAA + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT = ( D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDMSAA + 1 ) , + D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT = ( D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT + 1 ) , + D3D11_MESSAGE_ID_UPDATESUBRESOURCE_EMPTYDESTBOX = ( D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT + 1 ) , + D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_EMPTYSOURCEBOX = ( D3D11_MESSAGE_ID_UPDATESUBRESOURCE_EMPTYDESTBOX + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS = ( D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_EMPTYSOURCEBOX + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_DEPTHSTENCILVIEW_NOT_SET = ( D3D11_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET = ( D3D11_MESSAGE_ID_DEVICE_DRAW_DEPTHSTENCILVIEW_NOT_SET + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET_DUE_TO_FLIP_PRESENT = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET + 1 ) , + D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET_DUE_TO_FLIP_PRESENT = ( D3D11_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET_DUE_TO_FLIP_PRESENT + 1 ) , + D3D11_MESSAGE_ID_GETDATAFORNEWHARDWAREKEY_NULLPARAM = ( D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET_DUE_TO_FLIP_PRESENT + 1 ) , + D3D11_MESSAGE_ID_CHECKCRYPTOSESSIONSTATUS_NULLPARAM = ( D3D11_MESSAGE_ID_GETDATAFORNEWHARDWAREKEY_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETCRYPTOSESSIONPRIVATEDATASIZE_NULLPARAM = ( D3D11_MESSAGE_ID_CHECKCRYPTOSESSIONSTATUS_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETVIDEODECODERCAPS_NULLPARAM = ( D3D11_MESSAGE_ID_GETCRYPTOSESSIONPRIVATEDATASIZE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_GETVIDEODECODERCAPS_ZEROWIDTHHEIGHT = ( D3D11_MESSAGE_ID_GETVIDEODECODERCAPS_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_NULLPARAM = ( D3D11_MESSAGE_ID_GETVIDEODECODERCAPS_ZEROWIDTHHEIGHT + 1 ) , + D3D11_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_INVALIDCOLORSPACE = ( D3D11_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_ZEROWIDTHHEIGHT = ( D3D11_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_INVALIDCOLORSPACE + 1 ) , + D3D11_MESSAGE_ID_VIDEODECODERENABLEDOWNSAMPLING_NULLPARAM = ( D3D11_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_ZEROWIDTHHEIGHT + 1 ) , + D3D11_MESSAGE_ID_VIDEODECODERENABLEDOWNSAMPLING_UNSUPPORTED = ( D3D11_MESSAGE_ID_VIDEODECODERENABLEDOWNSAMPLING_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEODECODERUPDATEDOWNSAMPLING_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEODECODERENABLEDOWNSAMPLING_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_VIDEODECODERUPDATEDOWNSAMPLING_UNSUPPORTED = ( D3D11_MESSAGE_ID_VIDEODECODERUPDATEDOWNSAMPLING_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_CHECKVIDEOPROCESSORFORMATCONVERSION_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEODECODERUPDATEDOWNSAMPLING_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCOLORSPACE1_NULLPARAM = ( D3D11_MESSAGE_ID_CHECKVIDEOPROCESSORFORMATCONVERSION_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCOLORSPACE1_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCOLORSPACE1_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE1_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCOLORSPACE1_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE1_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE1_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE1_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_UNSUPPORTED = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMCOLORSPACE1_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_UNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMMIRROR_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMCOLORSPACE1_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMMIRROR_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_INVALIDCOLORSPACE = ( D3D11_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_ZEROWIDTHHEIGHT = ( D3D11_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_INVALIDCOLORSPACE + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSHADERUSAGE_NULLPARAM = ( D3D11_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_ZEROWIDTHHEIGHT + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTSHADERUSAGE_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSHADERUSAGE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTSHADERUSAGE_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDSTREAMCOUNT = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_TARGETRECT = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDSTREAMCOUNT + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDSOURCERECT = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_TARGETRECT + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDDESTRECT = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDSOURCERECT + 1 ) , + D3D11_MESSAGE_ID_D3D11_1_MESSAGES_END = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDDESTRECT + 1 ) , + D3D11_MESSAGE_ID_D3D11_2_MESSAGES_START = ( D3D11_MESSAGE_ID_D3D11_1_MESSAGES_END + 1 ) , + D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDUSAGE = ( D3D11_MESSAGE_ID_D3D11_2_MESSAGES_START + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDUSAGE = ( D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDUSAGE + 1 ) , + D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDUSAGE = ( D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDUSAGE + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_LEVEL9_STEPRATE_NOT_1 = ( D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDUSAGE + 1 ) , + D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_LEVEL9_INSTANCING_NOT_SUPPORTED = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_LEVEL9_STEPRATE_NOT_1 + 1 ) , + D3D11_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER = ( D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_LEVEL9_INSTANCING_NOT_SUPPORTED + 1 ) , + D3D11_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER = ( D3D11_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER + 1 ) , + D3D11_MESSAGE_ID_COPYTILES_INVALID_PARAMETER = ( D3D11_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER + 1 ) , + D3D11_MESSAGE_ID_UPDATETILES_INVALID_PARAMETER = ( D3D11_MESSAGE_ID_COPYTILES_INVALID_PARAMETER + 1 ) , + D3D11_MESSAGE_ID_RESIZETILEPOOL_INVALID_PARAMETER = ( D3D11_MESSAGE_ID_UPDATETILES_INVALID_PARAMETER + 1 ) , + D3D11_MESSAGE_ID_TILEDRESOURCEBARRIER_INVALID_PARAMETER = ( D3D11_MESSAGE_ID_RESIZETILEPOOL_INVALID_PARAMETER + 1 ) , + D3D11_MESSAGE_ID_NULL_TILE_MAPPING_ACCESS_WARNING = ( D3D11_MESSAGE_ID_TILEDRESOURCEBARRIER_INVALID_PARAMETER + 1 ) , + D3D11_MESSAGE_ID_NULL_TILE_MAPPING_ACCESS_ERROR = ( D3D11_MESSAGE_ID_NULL_TILE_MAPPING_ACCESS_WARNING + 1 ) , + D3D11_MESSAGE_ID_DIRTY_TILE_MAPPING_ACCESS = ( D3D11_MESSAGE_ID_NULL_TILE_MAPPING_ACCESS_ERROR + 1 ) , + D3D11_MESSAGE_ID_DUPLICATE_TILE_MAPPINGS_IN_COVERED_AREA = ( D3D11_MESSAGE_ID_DIRTY_TILE_MAPPING_ACCESS + 1 ) , + D3D11_MESSAGE_ID_TILE_MAPPINGS_IN_COVERED_AREA_DUPLICATED_OUTSIDE = ( D3D11_MESSAGE_ID_DUPLICATE_TILE_MAPPINGS_IN_COVERED_AREA + 1 ) , + D3D11_MESSAGE_ID_TILE_MAPPINGS_SHARED_BETWEEN_INCOMPATIBLE_RESOURCES = ( D3D11_MESSAGE_ID_TILE_MAPPINGS_IN_COVERED_AREA_DUPLICATED_OUTSIDE + 1 ) , + D3D11_MESSAGE_ID_TILE_MAPPINGS_SHARED_BETWEEN_INPUT_AND_OUTPUT = ( D3D11_MESSAGE_ID_TILE_MAPPINGS_SHARED_BETWEEN_INCOMPATIBLE_RESOURCES + 1 ) , + D3D11_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_INVALIDFLAGS = ( D3D11_MESSAGE_ID_TILE_MAPPINGS_SHARED_BETWEEN_INPUT_AND_OUTPUT + 1 ) , + D3D11_MESSAGE_ID_GETRESOURCETILING_NONTILED_RESOURCE = ( D3D11_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_INVALIDFLAGS + 1 ) , + D3D11_MESSAGE_ID_RESIZETILEPOOL_SHRINK_WITH_MAPPINGS_STILL_DEFINED_PAST_END = ( D3D11_MESSAGE_ID_GETRESOURCETILING_NONTILED_RESOURCE + 1 ) , + D3D11_MESSAGE_ID_NEED_TO_CALL_TILEDRESOURCEBARRIER = ( D3D11_MESSAGE_ID_RESIZETILEPOOL_SHRINK_WITH_MAPPINGS_STILL_DEFINED_PAST_END + 1 ) , + D3D11_MESSAGE_ID_CREATEDEVICE_INVALIDARGS = ( D3D11_MESSAGE_ID_NEED_TO_CALL_TILEDRESOURCEBARRIER + 1 ) , + D3D11_MESSAGE_ID_CREATEDEVICE_WARNING = ( D3D11_MESSAGE_ID_CREATEDEVICE_INVALIDARGS + 1 ) , + D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWUINT_HAZARD = ( D3D11_MESSAGE_ID_CREATEDEVICE_WARNING + 1 ) , + D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_HAZARD = ( D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWUINT_HAZARD + 1 ) , + D3D11_MESSAGE_ID_TILED_RESOURCE_TIER_1_BUFFER_TEXTURE_MISMATCH = ( D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_HAZARD + 1 ) , + D3D11_MESSAGE_ID_CREATE_CRYPTOSESSION = ( D3D11_MESSAGE_ID_TILED_RESOURCE_TIER_1_BUFFER_TEXTURE_MISMATCH + 1 ) , + D3D11_MESSAGE_ID_CREATE_AUTHENTICATEDCHANNEL = ( D3D11_MESSAGE_ID_CREATE_CRYPTOSESSION + 1 ) , + D3D11_MESSAGE_ID_LIVE_CRYPTOSESSION = ( D3D11_MESSAGE_ID_CREATE_AUTHENTICATEDCHANNEL + 1 ) , + D3D11_MESSAGE_ID_LIVE_AUTHENTICATEDCHANNEL = ( D3D11_MESSAGE_ID_LIVE_CRYPTOSESSION + 1 ) , + D3D11_MESSAGE_ID_DESTROY_CRYPTOSESSION = ( D3D11_MESSAGE_ID_LIVE_AUTHENTICATEDCHANNEL + 1 ) , + D3D11_MESSAGE_ID_DESTROY_AUTHENTICATEDCHANNEL = ( D3D11_MESSAGE_ID_DESTROY_CRYPTOSESSION + 1 ) , + D3D11_MESSAGE_ID_D3D11_2_MESSAGES_END = ( D3D11_MESSAGE_ID_DESTROY_AUTHENTICATEDCHANNEL + 1 ) , + D3D11_MESSAGE_ID_D3D11_3_MESSAGES_START = ( D3D11_MESSAGE_ID_D3D11_2_MESSAGES_END + 1 ) , + D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE = ( D3D11_MESSAGE_ID_D3D11_3_MESSAGES_START + 1 ) , + D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_SYSTEMVALUE = ( D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE + 1 ) , + D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDCONTEXTTYPE = ( D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_SYSTEMVALUE + 1 ) , + D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_DECODENOTSUPPORTED = ( D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDCONTEXTTYPE + 1 ) , + D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_ENCODENOTSUPPORTED = ( D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_DECODENOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANEINDEX = ( D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_ENCODENOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANEINDEX = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANEINDEX + 1 ) , + D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_AMBIGUOUSVIDEOPLANEINDEX = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANEINDEX + 1 ) , + D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANEINDEX = ( D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_AMBIGUOUSVIDEOPLANEINDEX + 1 ) , + D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANEINDEX = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANEINDEX + 1 ) , + D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_AMBIGUOUSVIDEOPLANEINDEX = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANEINDEX + 1 ) , + D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANEINDEX = ( D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_AMBIGUOUSVIDEOPLANEINDEX + 1 ) , + D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANEINDEX = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANEINDEX + 1 ) , + D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_AMBIGUOUSVIDEOPLANEINDEX = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANEINDEX + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_INVALIDSCANDATAOFFSET = ( D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_AMBIGUOUSVIDEOPLANEINDEX + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_NOTSUPPORTED = ( D3D11_MESSAGE_ID_JPEGDECODE_INVALIDSCANDATAOFFSET + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_DIMENSIONSTOOLARGE = ( D3D11_MESSAGE_ID_JPEGDECODE_NOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_INVALIDCOMPONENTS = ( D3D11_MESSAGE_ID_JPEGDECODE_DIMENSIONSTOOLARGE + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_DESTINATIONNOT2D = ( D3D11_MESSAGE_ID_JPEGDECODE_INVALIDCOMPONENTS + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_TILEDRESOURCESUNSUPPORTED = ( D3D11_MESSAGE_ID_JPEGDECODE_DESTINATIONNOT2D + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_GUARDRECTSUNSUPPORTED = ( D3D11_MESSAGE_ID_JPEGDECODE_TILEDRESOURCESUNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_FORMATUNSUPPORTED = ( D3D11_MESSAGE_ID_JPEGDECODE_GUARDRECTSUNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_INVALIDSUBRESOURCE = ( D3D11_MESSAGE_ID_JPEGDECODE_FORMATUNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_INVALIDMIPLEVEL = ( D3D11_MESSAGE_ID_JPEGDECODE_INVALIDSUBRESOURCE + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_EMPTYDESTBOX = ( D3D11_MESSAGE_ID_JPEGDECODE_INVALIDMIPLEVEL + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_DESTBOXNOT2D = ( D3D11_MESSAGE_ID_JPEGDECODE_EMPTYDESTBOX + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_DESTBOXNOTSUB = ( D3D11_MESSAGE_ID_JPEGDECODE_DESTBOXNOT2D + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_DESTBOXESINTERSECT = ( D3D11_MESSAGE_ID_JPEGDECODE_DESTBOXNOTSUB + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_XSUBSAMPLEMISMATCH = ( D3D11_MESSAGE_ID_JPEGDECODE_DESTBOXESINTERSECT + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_YSUBSAMPLEMISMATCH = ( D3D11_MESSAGE_ID_JPEGDECODE_XSUBSAMPLEMISMATCH + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_XSUBSAMPLEODD = ( D3D11_MESSAGE_ID_JPEGDECODE_YSUBSAMPLEMISMATCH + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_YSUBSAMPLEODD = ( D3D11_MESSAGE_ID_JPEGDECODE_XSUBSAMPLEODD + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_OUTPUTDIMENSIONSTOOLARGE = ( D3D11_MESSAGE_ID_JPEGDECODE_YSUBSAMPLEODD + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_NONPOW2SCALEUNSUPPORTED = ( D3D11_MESSAGE_ID_JPEGDECODE_OUTPUTDIMENSIONSTOOLARGE + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_FRACTIONALDOWNSCALETOLARGE = ( D3D11_MESSAGE_ID_JPEGDECODE_NONPOW2SCALEUNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_CHROMASIZEMISMATCH = ( D3D11_MESSAGE_ID_JPEGDECODE_FRACTIONALDOWNSCALETOLARGE + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_LUMACHROMASIZEMISMATCH = ( D3D11_MESSAGE_ID_JPEGDECODE_CHROMASIZEMISMATCH + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_INVALIDNUMDESTINATIONS = ( D3D11_MESSAGE_ID_JPEGDECODE_LUMACHROMASIZEMISMATCH + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_SUBBOXUNSUPPORTED = ( D3D11_MESSAGE_ID_JPEGDECODE_INVALIDNUMDESTINATIONS + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_1DESTUNSUPPORTEDFORMAT = ( D3D11_MESSAGE_ID_JPEGDECODE_SUBBOXUNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_3DESTUNSUPPORTEDFORMAT = ( D3D11_MESSAGE_ID_JPEGDECODE_1DESTUNSUPPORTEDFORMAT + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_SCALEUNSUPPORTED = ( D3D11_MESSAGE_ID_JPEGDECODE_3DESTUNSUPPORTEDFORMAT + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_INVALIDSOURCESIZE = ( D3D11_MESSAGE_ID_JPEGDECODE_SCALEUNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_INVALIDCOPYFLAGS = ( D3D11_MESSAGE_ID_JPEGDECODE_INVALIDSOURCESIZE + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_HAZARD = ( D3D11_MESSAGE_ID_JPEGDECODE_INVALIDCOPYFLAGS + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDSRCBUFFERUSAGE = ( D3D11_MESSAGE_ID_JPEGDECODE_HAZARD + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDSRCBUFFERMISCFLAGS = ( D3D11_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDSRCBUFFERUSAGE + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDDSTTEXTUREUSAGE = ( D3D11_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDSRCBUFFERMISCFLAGS + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_BACKBUFFERNOTSUPPORTED = ( D3D11_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDDSTTEXTUREUSAGE + 1 ) , + D3D11_MESSAGE_ID_JPEGDECODE_UNSUPPRTEDCOPYFLAGS = ( D3D11_MESSAGE_ID_JPEGDECODE_BACKBUFFERNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_NOTSUPPORTED = ( D3D11_MESSAGE_ID_JPEGDECODE_UNSUPPRTEDCOPYFLAGS + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_INVALIDSCANDATAOFFSET = ( D3D11_MESSAGE_ID_JPEGENCODE_NOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_INVALIDCOMPONENTS = ( D3D11_MESSAGE_ID_JPEGENCODE_INVALIDSCANDATAOFFSET + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_SOURCENOT2D = ( D3D11_MESSAGE_ID_JPEGENCODE_INVALIDCOMPONENTS + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_TILEDRESOURCESUNSUPPORTED = ( D3D11_MESSAGE_ID_JPEGENCODE_SOURCENOT2D + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_GUARDRECTSUNSUPPORTED = ( D3D11_MESSAGE_ID_JPEGENCODE_TILEDRESOURCESUNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_XSUBSAMPLEMISMATCH = ( D3D11_MESSAGE_ID_JPEGENCODE_GUARDRECTSUNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_YSUBSAMPLEMISMATCH = ( D3D11_MESSAGE_ID_JPEGENCODE_XSUBSAMPLEMISMATCH + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_FORMATUNSUPPORTED = ( D3D11_MESSAGE_ID_JPEGENCODE_YSUBSAMPLEMISMATCH + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_INVALIDSUBRESOURCE = ( D3D11_MESSAGE_ID_JPEGENCODE_FORMATUNSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_INVALIDMIPLEVEL = ( D3D11_MESSAGE_ID_JPEGENCODE_INVALIDSUBRESOURCE + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_DIMENSIONSTOOLARGE = ( D3D11_MESSAGE_ID_JPEGENCODE_INVALIDMIPLEVEL + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_HAZARD = ( D3D11_MESSAGE_ID_JPEGENCODE_DIMENSIONSTOOLARGE + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDDSTBUFFERUSAGE = ( D3D11_MESSAGE_ID_JPEGENCODE_HAZARD + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDDSTBUFFERMISCFLAGS = ( D3D11_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDDSTBUFFERUSAGE + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDSRCTEXTUREUSAGE = ( D3D11_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDDSTBUFFERMISCFLAGS + 1 ) , + D3D11_MESSAGE_ID_JPEGENCODE_BACKBUFFERNOTSUPPORTED = ( D3D11_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDSRCTEXTUREUSAGE + 1 ) , + D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_UNSUPPORTEDCONTEXTTTYPEFORQUERY = ( D3D11_MESSAGE_ID_JPEGENCODE_BACKBUFFERNOTSUPPORTED + 1 ) , + D3D11_MESSAGE_ID_FLUSH1_INVALIDCONTEXTTYPE = ( D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_UNSUPPORTEDCONTEXTTTYPEFORQUERY + 1 ) , + D3D11_MESSAGE_ID_DEVICE_SETHARDWAREPROTECTION_INVALIDCONTEXT = ( D3D11_MESSAGE_ID_FLUSH1_INVALIDCONTEXTTYPE + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTHDRMETADATA_NULLPARAM = ( D3D11_MESSAGE_ID_DEVICE_SETHARDWAREPROTECTION_INVALIDCONTEXT + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTHDRMETADATA_INVALIDSIZE = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTHDRMETADATA_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTHDRMETADATA_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTHDRMETADATA_INVALIDSIZE + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTHDRMETADATA_INVALIDSIZE = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTHDRMETADATA_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMHDRMETADATA_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTHDRMETADATA_INVALIDSIZE + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMHDRMETADATA_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMHDRMETADATA_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMHDRMETADATA_INVALIDSIZE = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMHDRMETADATA_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMHDRMETADATA_NULLPARAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMHDRMETADATA_INVALIDSIZE + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMHDRMETADATA_INVALIDSTREAM = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMHDRMETADATA_NULLPARAM + 1 ) , + D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMHDRMETADATA_INVALIDSIZE = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMHDRMETADATA_INVALIDSTREAM + 1 ) , + D3D11_MESSAGE_ID_D3D11_3_MESSAGES_END = ( D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMHDRMETADATA_INVALIDSIZE + 1 ) + } D3D11_MESSAGE_ID; + +typedef struct D3D11_MESSAGE + { + D3D11_MESSAGE_CATEGORY Category; + D3D11_MESSAGE_SEVERITY Severity; + D3D11_MESSAGE_ID ID; + + const char *pDescription; + SIZE_T DescriptionByteLength; + } D3D11_MESSAGE; + +typedef struct D3D11_INFO_QUEUE_FILTER_DESC + { + UINT NumCategories; + + D3D11_MESSAGE_CATEGORY *pCategoryList; + UINT NumSeverities; + + D3D11_MESSAGE_SEVERITY *pSeverityList; + UINT NumIDs; + + D3D11_MESSAGE_ID *pIDList; + } D3D11_INFO_QUEUE_FILTER_DESC; + +typedef struct D3D11_INFO_QUEUE_FILTER + { + D3D11_INFO_QUEUE_FILTER_DESC AllowList; + D3D11_INFO_QUEUE_FILTER_DESC DenyList; + } D3D11_INFO_QUEUE_FILTER; + + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0005_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0005_v0_0_s_ifspec; +# 2097 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11sdklayers.h" +extern "C" const IID IID_ID3D11InfoQueue; + + + + struct __declspec(uuid("6543dbb6-1b48-42f5-ab82-e97ec74326f6")) __declspec(novtable) + ID3D11InfoQueue : public IUnknown + { + public: + virtual HRESULT __stdcall SetMessageCountLimit( + + UINT64 MessageCountLimit) = 0; + + virtual void __stdcall ClearStoredMessages( void) = 0; + + virtual HRESULT __stdcall GetMessageW( + + UINT64 MessageIndex, + + D3D11_MESSAGE *pMessage, + + SIZE_T *pMessageByteLength) = 0; + + virtual UINT64 __stdcall GetNumMessagesAllowedByStorageFilter( void) = 0; + + virtual UINT64 __stdcall GetNumMessagesDeniedByStorageFilter( void) = 0; + + virtual UINT64 __stdcall GetNumStoredMessages( void) = 0; + + virtual UINT64 __stdcall GetNumStoredMessagesAllowedByRetrievalFilter( void) = 0; + + virtual UINT64 __stdcall GetNumMessagesDiscardedByMessageCountLimit( void) = 0; + + virtual UINT64 __stdcall GetMessageCountLimit( void) = 0; + + virtual HRESULT __stdcall AddStorageFilterEntries( + + D3D11_INFO_QUEUE_FILTER *pFilter) = 0; + + virtual HRESULT __stdcall GetStorageFilter( + + D3D11_INFO_QUEUE_FILTER *pFilter, + + SIZE_T *pFilterByteLength) = 0; + + virtual void __stdcall ClearStorageFilter( void) = 0; + + virtual HRESULT __stdcall PushEmptyStorageFilter( void) = 0; + + virtual HRESULT __stdcall PushCopyOfStorageFilter( void) = 0; + + virtual HRESULT __stdcall PushStorageFilter( + + D3D11_INFO_QUEUE_FILTER *pFilter) = 0; + + virtual void __stdcall PopStorageFilter( void) = 0; + + virtual UINT __stdcall GetStorageFilterStackSize( void) = 0; + + virtual HRESULT __stdcall AddRetrievalFilterEntries( + + D3D11_INFO_QUEUE_FILTER *pFilter) = 0; + + virtual HRESULT __stdcall GetRetrievalFilter( + + D3D11_INFO_QUEUE_FILTER *pFilter, + + SIZE_T *pFilterByteLength) = 0; + + virtual void __stdcall ClearRetrievalFilter( void) = 0; + + virtual HRESULT __stdcall PushEmptyRetrievalFilter( void) = 0; + + virtual HRESULT __stdcall PushCopyOfRetrievalFilter( void) = 0; + + virtual HRESULT __stdcall PushRetrievalFilter( + + D3D11_INFO_QUEUE_FILTER *pFilter) = 0; + + virtual void __stdcall PopRetrievalFilter( void) = 0; + + virtual UINT __stdcall GetRetrievalFilterStackSize( void) = 0; + + virtual HRESULT __stdcall AddMessage( + + D3D11_MESSAGE_CATEGORY Category, + + D3D11_MESSAGE_SEVERITY Severity, + + D3D11_MESSAGE_ID ID, + + LPCSTR pDescription) = 0; + + virtual HRESULT __stdcall AddApplicationMessage( + + D3D11_MESSAGE_SEVERITY Severity, + + LPCSTR pDescription) = 0; + + virtual HRESULT __stdcall SetBreakOnCategory( + + D3D11_MESSAGE_CATEGORY Category, + + BOOL bEnable) = 0; + + virtual HRESULT __stdcall SetBreakOnSeverity( + + D3D11_MESSAGE_SEVERITY Severity, + + BOOL bEnable) = 0; + + virtual HRESULT __stdcall SetBreakOnID( + + D3D11_MESSAGE_ID ID, + + BOOL bEnable) = 0; + + virtual BOOL __stdcall GetBreakOnCategory( + + D3D11_MESSAGE_CATEGORY Category) = 0; + + virtual BOOL __stdcall GetBreakOnSeverity( + + D3D11_MESSAGE_SEVERITY Severity) = 0; + + virtual BOOL __stdcall GetBreakOnID( + + D3D11_MESSAGE_ID ID) = 0; + + virtual void __stdcall SetMuteDebugOutput( + + BOOL bMute) = 0; + + virtual BOOL __stdcall GetMuteDebugOutput( void) = 0; + + }; +# 2558 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11sdklayers.h" +extern "C" const GUID IID_ID3D11Debug; +extern "C" const GUID IID_ID3D11SwitchToRef; +extern "C" const GUID IID_ID3D11TracingDevice; +extern "C" const GUID IID_ID3D11RefTrackingOptions; +extern "C" const GUID IID_ID3D11RefDefaultTrackingOptions; +extern "C" const GUID IID_ID3D11InfoQueue; + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0006_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11sdklayers_0000_0006_v0_0_s_ifspec; + + + + + + +} +# 14388 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11.h" 2 + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1.h" 1 +# 49 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1.h" +typedef struct ID3D10BlendState1 ID3D10BlendState1; + + + + + + +typedef struct ID3D10ShaderResourceView1 ID3D10ShaderResourceView1; + + + + + + +typedef struct ID3D10Device1 ID3D10Device1; +# 73 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1.h" +extern "C"{ +# 128 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" 1 +# 49 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef struct ID3D10DeviceChild ID3D10DeviceChild; + + + + + + +typedef struct ID3D10DepthStencilState ID3D10DepthStencilState; + + + + + + +typedef struct ID3D10BlendState ID3D10BlendState; + + + + + + +typedef struct ID3D10RasterizerState ID3D10RasterizerState; + + + + + + +typedef struct ID3D10Resource ID3D10Resource; + + + + + + +typedef struct ID3D10Buffer ID3D10Buffer; + + + + + + +typedef struct ID3D10Texture1D ID3D10Texture1D; + + + + + + +typedef struct ID3D10Texture2D ID3D10Texture2D; + + + + + + +typedef struct ID3D10Texture3D ID3D10Texture3D; + + + + + + +typedef struct ID3D10View ID3D10View; + + + + + + +typedef struct ID3D10ShaderResourceView ID3D10ShaderResourceView; + + + + + + +typedef struct ID3D10RenderTargetView ID3D10RenderTargetView; + + + + + + +typedef struct ID3D10DepthStencilView ID3D10DepthStencilView; + + + + + + +typedef struct ID3D10VertexShader ID3D10VertexShader; + + + + + + +typedef struct ID3D10GeometryShader ID3D10GeometryShader; + + + + + + +typedef struct ID3D10PixelShader ID3D10PixelShader; + + + + + + +typedef struct ID3D10InputLayout ID3D10InputLayout; + + + + + + +typedef struct ID3D10SamplerState ID3D10SamplerState; + + + + + + +typedef struct ID3D10Asynchronous ID3D10Asynchronous; + + + + + + +typedef struct ID3D10Query ID3D10Query; + + + + + + +typedef struct ID3D10Predicate ID3D10Predicate; + + + + + + +typedef struct ID3D10Counter ID3D10Counter; + + + + + + +typedef struct ID3D10Device ID3D10Device; + + + + + + +typedef struct ID3D10Multithread ID3D10Multithread; +# 222 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C"{ +# 635 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef +enum D3D10_INPUT_CLASSIFICATION + { + D3D10_INPUT_PER_VERTEX_DATA = 0, + D3D10_INPUT_PER_INSTANCE_DATA = 1 + } D3D10_INPUT_CLASSIFICATION; + + + +typedef struct D3D10_INPUT_ELEMENT_DESC + { + LPCSTR SemanticName; + UINT SemanticIndex; + DXGI_FORMAT Format; + UINT InputSlot; + UINT AlignedByteOffset; + D3D10_INPUT_CLASSIFICATION InputSlotClass; + UINT InstanceDataStepRate; + } D3D10_INPUT_ELEMENT_DESC; + +typedef +enum D3D10_FILL_MODE + { + D3D10_FILL_WIREFRAME = 2, + D3D10_FILL_SOLID = 3 + } D3D10_FILL_MODE; + +typedef D3D_PRIMITIVE_TOPOLOGY D3D10_PRIMITIVE_TOPOLOGY; + +typedef D3D_PRIMITIVE D3D10_PRIMITIVE; + +typedef +enum D3D10_CULL_MODE + { + D3D10_CULL_NONE = 1, + D3D10_CULL_FRONT = 2, + D3D10_CULL_BACK = 3 + } D3D10_CULL_MODE; + +typedef struct D3D10_SO_DECLARATION_ENTRY + { + LPCSTR SemanticName; + UINT SemanticIndex; + BYTE StartComponent; + BYTE ComponentCount; + BYTE OutputSlot; + } D3D10_SO_DECLARATION_ENTRY; + +typedef struct D3D10_VIEWPORT + { + INT TopLeftX; + INT TopLeftY; + UINT Width; + UINT Height; + FLOAT MinDepth; + FLOAT MaxDepth; + } D3D10_VIEWPORT; + +typedef +enum D3D10_RESOURCE_DIMENSION + { + D3D10_RESOURCE_DIMENSION_UNKNOWN = 0, + D3D10_RESOURCE_DIMENSION_BUFFER = 1, + D3D10_RESOURCE_DIMENSION_TEXTURE1D = 2, + D3D10_RESOURCE_DIMENSION_TEXTURE2D = 3, + D3D10_RESOURCE_DIMENSION_TEXTURE3D = 4 + } D3D10_RESOURCE_DIMENSION; + +typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION; + +typedef +enum D3D10_DSV_DIMENSION + { + D3D10_DSV_DIMENSION_UNKNOWN = 0, + D3D10_DSV_DIMENSION_TEXTURE1D = 1, + D3D10_DSV_DIMENSION_TEXTURE1DARRAY = 2, + D3D10_DSV_DIMENSION_TEXTURE2D = 3, + D3D10_DSV_DIMENSION_TEXTURE2DARRAY = 4, + D3D10_DSV_DIMENSION_TEXTURE2DMS = 5, + D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY = 6 + } D3D10_DSV_DIMENSION; + +typedef +enum D3D10_RTV_DIMENSION + { + D3D10_RTV_DIMENSION_UNKNOWN = 0, + D3D10_RTV_DIMENSION_BUFFER = 1, + D3D10_RTV_DIMENSION_TEXTURE1D = 2, + D3D10_RTV_DIMENSION_TEXTURE1DARRAY = 3, + D3D10_RTV_DIMENSION_TEXTURE2D = 4, + D3D10_RTV_DIMENSION_TEXTURE2DARRAY = 5, + D3D10_RTV_DIMENSION_TEXTURE2DMS = 6, + D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY = 7, + D3D10_RTV_DIMENSION_TEXTURE3D = 8 + } D3D10_RTV_DIMENSION; + +typedef +enum D3D10_USAGE + { + D3D10_USAGE_DEFAULT = 0, + D3D10_USAGE_IMMUTABLE = 1, + D3D10_USAGE_DYNAMIC = 2, + D3D10_USAGE_STAGING = 3 + } D3D10_USAGE; + +typedef +enum D3D10_BIND_FLAG + { + D3D10_BIND_VERTEX_BUFFER = 0x1L, + D3D10_BIND_INDEX_BUFFER = 0x2L, + D3D10_BIND_CONSTANT_BUFFER = 0x4L, + D3D10_BIND_SHADER_RESOURCE = 0x8L, + D3D10_BIND_STREAM_OUTPUT = 0x10L, + D3D10_BIND_RENDER_TARGET = 0x20L, + D3D10_BIND_DEPTH_STENCIL = 0x40L + } D3D10_BIND_FLAG; + +typedef +enum D3D10_CPU_ACCESS_FLAG + { + D3D10_CPU_ACCESS_WRITE = 0x10000L, + D3D10_CPU_ACCESS_READ = 0x20000L + } D3D10_CPU_ACCESS_FLAG; + +typedef +enum D3D10_RESOURCE_MISC_FLAG + { + D3D10_RESOURCE_MISC_GENERATE_MIPS = 0x1L, + D3D10_RESOURCE_MISC_SHARED = 0x2L, + D3D10_RESOURCE_MISC_TEXTURECUBE = 0x4L, + D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x10L, + D3D10_RESOURCE_MISC_GDI_COMPATIBLE = 0x20L + } D3D10_RESOURCE_MISC_FLAG; + +typedef +enum D3D10_MAP + { + D3D10_MAP_READ = 1, + D3D10_MAP_WRITE = 2, + D3D10_MAP_READ_WRITE = 3, + D3D10_MAP_WRITE_DISCARD = 4, + D3D10_MAP_WRITE_NO_OVERWRITE = 5 + } D3D10_MAP; + +typedef +enum D3D10_MAP_FLAG + { + D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000L + } D3D10_MAP_FLAG; + +typedef +enum D3D10_RAISE_FLAG + { + D3D10_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x1L + } D3D10_RAISE_FLAG; + +typedef +enum D3D10_CLEAR_FLAG + { + D3D10_CLEAR_DEPTH = 0x1L, + D3D10_CLEAR_STENCIL = 0x2L + } D3D10_CLEAR_FLAG; + +typedef RECT D3D10_RECT; + +typedef struct D3D10_BOX + { + UINT left; + UINT top; + UINT front; + UINT right; + UINT bottom; + UINT back; + } D3D10_BOX; + + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0000_v0_0_s_ifspec; +# 823 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10DeviceChild; + + + + struct __declspec(uuid("9B7E4C00-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10DeviceChild : public IUnknown + { + public: + virtual void __stdcall GetDevice( + + ID3D10Device **ppDevice) = 0; + + virtual HRESULT __stdcall GetPrivateData( + + const GUID & guid, + + UINT *pDataSize, + + void *pData) = 0; + + virtual HRESULT __stdcall SetPrivateData( + + const GUID & guid, + + UINT DataSize, + + const void *pData) = 0; + + virtual HRESULT __stdcall SetPrivateDataInterface( + + const GUID & guid, + + const IUnknown *pData) = 0; + + }; +# 957 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef +enum D3D10_COMPARISON_FUNC + { + D3D10_COMPARISON_NEVER = 1, + D3D10_COMPARISON_LESS = 2, + D3D10_COMPARISON_EQUAL = 3, + D3D10_COMPARISON_LESS_EQUAL = 4, + D3D10_COMPARISON_GREATER = 5, + D3D10_COMPARISON_NOT_EQUAL = 6, + D3D10_COMPARISON_GREATER_EQUAL = 7, + D3D10_COMPARISON_ALWAYS = 8 + } D3D10_COMPARISON_FUNC; + +typedef +enum D3D10_DEPTH_WRITE_MASK + { + D3D10_DEPTH_WRITE_MASK_ZERO = 0, + D3D10_DEPTH_WRITE_MASK_ALL = 1 + } D3D10_DEPTH_WRITE_MASK; + +typedef +enum D3D10_STENCIL_OP + { + D3D10_STENCIL_OP_KEEP = 1, + D3D10_STENCIL_OP_ZERO = 2, + D3D10_STENCIL_OP_REPLACE = 3, + D3D10_STENCIL_OP_INCR_SAT = 4, + D3D10_STENCIL_OP_DECR_SAT = 5, + D3D10_STENCIL_OP_INVERT = 6, + D3D10_STENCIL_OP_INCR = 7, + D3D10_STENCIL_OP_DECR = 8 + } D3D10_STENCIL_OP; + +typedef struct D3D10_DEPTH_STENCILOP_DESC + { + D3D10_STENCIL_OP StencilFailOp; + D3D10_STENCIL_OP StencilDepthFailOp; + D3D10_STENCIL_OP StencilPassOp; + D3D10_COMPARISON_FUNC StencilFunc; + } D3D10_DEPTH_STENCILOP_DESC; + +typedef struct D3D10_DEPTH_STENCIL_DESC + { + BOOL DepthEnable; + D3D10_DEPTH_WRITE_MASK DepthWriteMask; + D3D10_COMPARISON_FUNC DepthFunc; + BOOL StencilEnable; + UINT8 StencilReadMask; + UINT8 StencilWriteMask; + D3D10_DEPTH_STENCILOP_DESC FrontFace; + D3D10_DEPTH_STENCILOP_DESC BackFace; + } D3D10_DEPTH_STENCIL_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0001_v0_0_s_ifspec; +# 1022 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10DepthStencilState; + + + + struct __declspec(uuid("2B4B1CC8-A4AD-41f8-8322-CA86FC3EC675")) __declspec(novtable) + ID3D10DepthStencilState : public ID3D10DeviceChild + { + public: + virtual void __stdcall GetDesc( + + D3D10_DEPTH_STENCIL_DESC *pDesc) = 0; + + }; +# 1143 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef +enum D3D10_BLEND + { + D3D10_BLEND_ZERO = 1, + D3D10_BLEND_ONE = 2, + D3D10_BLEND_SRC_COLOR = 3, + D3D10_BLEND_INV_SRC_COLOR = 4, + D3D10_BLEND_SRC_ALPHA = 5, + D3D10_BLEND_INV_SRC_ALPHA = 6, + D3D10_BLEND_DEST_ALPHA = 7, + D3D10_BLEND_INV_DEST_ALPHA = 8, + D3D10_BLEND_DEST_COLOR = 9, + D3D10_BLEND_INV_DEST_COLOR = 10, + D3D10_BLEND_SRC_ALPHA_SAT = 11, + D3D10_BLEND_BLEND_FACTOR = 14, + D3D10_BLEND_INV_BLEND_FACTOR = 15, + D3D10_BLEND_SRC1_COLOR = 16, + D3D10_BLEND_INV_SRC1_COLOR = 17, + D3D10_BLEND_SRC1_ALPHA = 18, + D3D10_BLEND_INV_SRC1_ALPHA = 19 + } D3D10_BLEND; + +typedef +enum D3D10_BLEND_OP + { + D3D10_BLEND_OP_ADD = 1, + D3D10_BLEND_OP_SUBTRACT = 2, + D3D10_BLEND_OP_REV_SUBTRACT = 3, + D3D10_BLEND_OP_MIN = 4, + D3D10_BLEND_OP_MAX = 5 + } D3D10_BLEND_OP; + +typedef +enum D3D10_COLOR_WRITE_ENABLE + { + D3D10_COLOR_WRITE_ENABLE_RED = 1, + D3D10_COLOR_WRITE_ENABLE_GREEN = 2, + D3D10_COLOR_WRITE_ENABLE_BLUE = 4, + D3D10_COLOR_WRITE_ENABLE_ALPHA = 8, + D3D10_COLOR_WRITE_ENABLE_ALL = ( ( ( D3D10_COLOR_WRITE_ENABLE_RED | D3D10_COLOR_WRITE_ENABLE_GREEN ) | D3D10_COLOR_WRITE_ENABLE_BLUE ) | D3D10_COLOR_WRITE_ENABLE_ALPHA ) + } D3D10_COLOR_WRITE_ENABLE; + +typedef struct D3D10_BLEND_DESC + { + BOOL AlphaToCoverageEnable; + BOOL BlendEnable[ 8 ]; + D3D10_BLEND SrcBlend; + D3D10_BLEND DestBlend; + D3D10_BLEND_OP BlendOp; + D3D10_BLEND SrcBlendAlpha; + D3D10_BLEND DestBlendAlpha; + D3D10_BLEND_OP BlendOpAlpha; + UINT8 RenderTargetWriteMask[ 8 ]; + } D3D10_BLEND_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0002_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0002_v0_0_s_ifspec; +# 1210 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10BlendState; + + + + struct __declspec(uuid("EDAD8D19-8A35-4d6d-8566-2EA276CDE161")) __declspec(novtable) + ID3D10BlendState : public ID3D10DeviceChild + { + public: + virtual void __stdcall GetDesc( + + D3D10_BLEND_DESC *pDesc) = 0; + + }; +# 1331 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef struct D3D10_RASTERIZER_DESC + { + D3D10_FILL_MODE FillMode; + D3D10_CULL_MODE CullMode; + BOOL FrontCounterClockwise; + INT DepthBias; + FLOAT DepthBiasClamp; + FLOAT SlopeScaledDepthBias; + BOOL DepthClipEnable; + BOOL ScissorEnable; + BOOL MultisampleEnable; + BOOL AntialiasedLineEnable; + } D3D10_RASTERIZER_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0003_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0003_v0_0_s_ifspec; +# 1357 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10RasterizerState; + + + + struct __declspec(uuid("A2A07292-89AF-4345-BE2E-C53D9FBB6E9F")) __declspec(novtable) + ID3D10RasterizerState : public ID3D10DeviceChild + { + public: + virtual void __stdcall GetDesc( + + D3D10_RASTERIZER_DESC *pDesc) = 0; + + }; +# 1479 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +inline UINT D3D10CalcSubresource( UINT MipSlice, UINT ArraySlice, UINT MipLevels ) +{ return MipSlice + ArraySlice * MipLevels; } + +typedef struct D3D10_SUBRESOURCE_DATA + { + const void *pSysMem; + UINT SysMemPitch; + UINT SysMemSlicePitch; + } D3D10_SUBRESOURCE_DATA; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0004_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0004_v0_0_s_ifspec; +# 1501 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10Resource; + + + + struct __declspec(uuid("9B7E4C01-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10Resource : public ID3D10DeviceChild + { + public: + virtual void __stdcall GetType( + + D3D10_RESOURCE_DIMENSION *rType) = 0; + + virtual void __stdcall SetEvictionPriority( + + UINT EvictionPriority) = 0; + + virtual UINT __stdcall GetEvictionPriority( void) = 0; + + }; +# 1642 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef struct D3D10_BUFFER_DESC + { + UINT ByteWidth; + D3D10_USAGE Usage; + UINT BindFlags; + UINT CPUAccessFlags; + UINT MiscFlags; + } D3D10_BUFFER_DESC; + + +struct CD3D10_BUFFER_DESC : public D3D10_BUFFER_DESC +{ + CD3D10_BUFFER_DESC() + {} + explicit CD3D10_BUFFER_DESC( const D3D10_BUFFER_DESC& o ) : + D3D10_BUFFER_DESC( o ) + {} + explicit CD3D10_BUFFER_DESC( + UINT byteWidth, + UINT bindFlags, + D3D10_USAGE usage = D3D10_USAGE_DEFAULT, + UINT cpuaccessFlags = 0, + UINT miscFlags = 0 ) + { + ByteWidth = byteWidth; + Usage = usage; + BindFlags = bindFlags; + CPUAccessFlags = cpuaccessFlags ; + MiscFlags = miscFlags; + } + ~CD3D10_BUFFER_DESC() {} + operator const D3D10_BUFFER_DESC&() const { return *this; } +}; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0005_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0005_v0_0_s_ifspec; +# 1688 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10Buffer; + + + + struct __declspec(uuid("9B7E4C02-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10Buffer : public ID3D10Resource + { + public: + virtual HRESULT __stdcall Map( + + D3D10_MAP MapType, + + UINT MapFlags, + + void **ppData) = 0; + + virtual void __stdcall Unmap( void) = 0; + + virtual void __stdcall GetDesc( + + D3D10_BUFFER_DESC *pDesc) = 0; + + }; +# 1860 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef struct D3D10_TEXTURE1D_DESC + { + UINT Width; + UINT MipLevels; + UINT ArraySize; + DXGI_FORMAT Format; + D3D10_USAGE Usage; + UINT BindFlags; + UINT CPUAccessFlags; + UINT MiscFlags; + } D3D10_TEXTURE1D_DESC; + + +struct CD3D10_TEXTURE1D_DESC : public D3D10_TEXTURE1D_DESC +{ + CD3D10_TEXTURE1D_DESC() + {} + explicit CD3D10_TEXTURE1D_DESC( const D3D10_TEXTURE1D_DESC& o ) : + D3D10_TEXTURE1D_DESC( o ) + {} + explicit CD3D10_TEXTURE1D_DESC( + DXGI_FORMAT format, + UINT width, + UINT arraySize = 1, + UINT mipLevels = 0, + UINT bindFlags = D3D10_BIND_SHADER_RESOURCE, + D3D10_USAGE usage = D3D10_USAGE_DEFAULT, + UINT cpuaccessFlags= 0, + UINT miscFlags = 0 ) + { + Width = width; + MipLevels = mipLevels; + ArraySize = arraySize; + Format = format; + Usage = usage; + BindFlags = bindFlags; + CPUAccessFlags = cpuaccessFlags; + MiscFlags = miscFlags; + } + ~CD3D10_TEXTURE1D_DESC() {} + operator const D3D10_TEXTURE1D_DESC&() const { return *this; } +}; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0006_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0006_v0_0_s_ifspec; +# 1915 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10Texture1D; + + + + struct __declspec(uuid("9B7E4C03-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10Texture1D : public ID3D10Resource + { + public: + virtual HRESULT __stdcall Map( + + UINT Subresource, + + D3D10_MAP MapType, + + UINT MapFlags, + + void **ppData) = 0; + + virtual void __stdcall Unmap( + + UINT Subresource) = 0; + + virtual void __stdcall GetDesc( + + D3D10_TEXTURE1D_DESC *pDesc) = 0; + + }; +# 2095 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef struct D3D10_TEXTURE2D_DESC + { + UINT Width; + UINT Height; + UINT MipLevels; + UINT ArraySize; + DXGI_FORMAT Format; + DXGI_SAMPLE_DESC SampleDesc; + D3D10_USAGE Usage; + UINT BindFlags; + UINT CPUAccessFlags; + UINT MiscFlags; + } D3D10_TEXTURE2D_DESC; + + +struct CD3D10_TEXTURE2D_DESC : public D3D10_TEXTURE2D_DESC +{ + CD3D10_TEXTURE2D_DESC() + {} + explicit CD3D10_TEXTURE2D_DESC( const D3D10_TEXTURE2D_DESC& o ) : + D3D10_TEXTURE2D_DESC( o ) + {} + explicit CD3D10_TEXTURE2D_DESC( + DXGI_FORMAT format, + UINT width, + UINT height, + UINT arraySize = 1, + UINT mipLevels = 0, + UINT bindFlags = D3D10_BIND_SHADER_RESOURCE, + D3D10_USAGE usage = D3D10_USAGE_DEFAULT, + UINT cpuaccessFlags = 0, + UINT sampleCount = 1, + UINT sampleQuality = 0, + UINT miscFlags = 0 ) + { + Width = width; + Height = height; + MipLevels = mipLevels; + ArraySize = arraySize; + Format = format; + SampleDesc.Count = sampleCount; + SampleDesc.Quality = sampleQuality; + Usage = usage; + BindFlags = bindFlags; + CPUAccessFlags = cpuaccessFlags; + MiscFlags = miscFlags; + } + ~CD3D10_TEXTURE2D_DESC() {} + operator const D3D10_TEXTURE2D_DESC&() const { return *this; } +}; + +typedef struct D3D10_MAPPED_TEXTURE2D + { + void *pData; + UINT RowPitch; + } D3D10_MAPPED_TEXTURE2D; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0007_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0007_v0_0_s_ifspec; +# 2164 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10Texture2D; + + + + struct __declspec(uuid("9B7E4C04-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10Texture2D : public ID3D10Resource + { + public: + virtual HRESULT __stdcall Map( + + UINT Subresource, + + D3D10_MAP MapType, + + UINT MapFlags, + + D3D10_MAPPED_TEXTURE2D *pMappedTex2D) = 0; + + virtual void __stdcall Unmap( + + UINT Subresource) = 0; + + virtual void __stdcall GetDesc( + + D3D10_TEXTURE2D_DESC *pDesc) = 0; + + }; +# 2344 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef struct D3D10_TEXTURE3D_DESC + { + UINT Width; + UINT Height; + UINT Depth; + UINT MipLevels; + DXGI_FORMAT Format; + D3D10_USAGE Usage; + UINT BindFlags; + UINT CPUAccessFlags; + UINT MiscFlags; + } D3D10_TEXTURE3D_DESC; + + +struct CD3D10_TEXTURE3D_DESC : public D3D10_TEXTURE3D_DESC +{ + CD3D10_TEXTURE3D_DESC() + {} + explicit CD3D10_TEXTURE3D_DESC( const D3D10_TEXTURE3D_DESC& o ) : + D3D10_TEXTURE3D_DESC( o ) + {} + explicit CD3D10_TEXTURE3D_DESC( + DXGI_FORMAT format, + UINT width, + UINT height, + UINT depth, + UINT mipLevels = 0, + UINT bindFlags = D3D10_BIND_SHADER_RESOURCE, + D3D10_USAGE usage = D3D10_USAGE_DEFAULT, + UINT cpuaccessFlags = 0, + UINT miscFlags = 0 ) + { + Width = width; + Height = height; + Depth = depth; + MipLevels = mipLevels; + Format = format; + Usage = usage; + BindFlags = bindFlags; + CPUAccessFlags = cpuaccessFlags; + MiscFlags = miscFlags; + } + ~CD3D10_TEXTURE3D_DESC() {} + operator const D3D10_TEXTURE3D_DESC&() const { return *this; } +}; + +typedef struct D3D10_MAPPED_TEXTURE3D + { + void *pData; + UINT RowPitch; + UINT DepthPitch; + } D3D10_MAPPED_TEXTURE3D; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0008_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0008_v0_0_s_ifspec; +# 2409 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10Texture3D; + + + + struct __declspec(uuid("9B7E4C05-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10Texture3D : public ID3D10Resource + { + public: + virtual HRESULT __stdcall Map( + + UINT Subresource, + + D3D10_MAP MapType, + + UINT MapFlags, + + D3D10_MAPPED_TEXTURE3D *pMappedTex3D) = 0; + + virtual void __stdcall Unmap( + + UINT Subresource) = 0; + + virtual void __stdcall GetDesc( + + D3D10_TEXTURE3D_DESC *pDesc) = 0; + + }; +# 2589 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef +enum D3D10_TEXTURECUBE_FACE + { + D3D10_TEXTURECUBE_FACE_POSITIVE_X = 0, + D3D10_TEXTURECUBE_FACE_NEGATIVE_X = 1, + D3D10_TEXTURECUBE_FACE_POSITIVE_Y = 2, + D3D10_TEXTURECUBE_FACE_NEGATIVE_Y = 3, + D3D10_TEXTURECUBE_FACE_POSITIVE_Z = 4, + D3D10_TEXTURECUBE_FACE_NEGATIVE_Z = 5 + } D3D10_TEXTURECUBE_FACE; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0009_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0009_v0_0_s_ifspec; +# 2612 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10View; + + + + struct __declspec(uuid("C902B03F-60A7-49BA-9936-2A3AB37A7E33")) __declspec(novtable) + ID3D10View : public ID3D10DeviceChild + { + public: + virtual void __stdcall GetResource( + + ID3D10Resource **ppResource) = 0; + + }; +# 2733 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef struct D3D10_BUFFER_SRV + { + union + { + UINT FirstElement; + UINT ElementOffset; + } ; + union + { + UINT NumElements; + UINT ElementWidth; + } ; + } D3D10_BUFFER_SRV; + +typedef struct D3D10_TEX1D_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + } D3D10_TEX1D_SRV; + +typedef struct D3D10_TEX1D_ARRAY_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + UINT FirstArraySlice; + UINT ArraySize; + } D3D10_TEX1D_ARRAY_SRV; + +typedef struct D3D10_TEX2D_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + } D3D10_TEX2D_SRV; + +typedef struct D3D10_TEX2D_ARRAY_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + UINT FirstArraySlice; + UINT ArraySize; + } D3D10_TEX2D_ARRAY_SRV; + +typedef struct D3D10_TEX3D_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + } D3D10_TEX3D_SRV; + +typedef struct D3D10_TEXCUBE_SRV + { + UINT MostDetailedMip; + UINT MipLevels; + } D3D10_TEXCUBE_SRV; + +typedef struct D3D10_TEX2DMS_SRV + { + UINT UnusedField_NothingToDefine; + } D3D10_TEX2DMS_SRV; + +typedef struct D3D10_TEX2DMS_ARRAY_SRV + { + UINT FirstArraySlice; + UINT ArraySize; + } D3D10_TEX2DMS_ARRAY_SRV; + +typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC + { + DXGI_FORMAT Format; + D3D10_SRV_DIMENSION ViewDimension; + union + { + D3D10_BUFFER_SRV Buffer; + D3D10_TEX1D_SRV Texture1D; + D3D10_TEX1D_ARRAY_SRV Texture1DArray; + D3D10_TEX2D_SRV Texture2D; + D3D10_TEX2D_ARRAY_SRV Texture2DArray; + D3D10_TEX2DMS_SRV Texture2DMS; + D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray; + D3D10_TEX3D_SRV Texture3D; + D3D10_TEXCUBE_SRV TextureCube; + } ; + } D3D10_SHADER_RESOURCE_VIEW_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0010_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0010_v0_0_s_ifspec; +# 2828 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10ShaderResourceView; + + + + struct __declspec(uuid("9B7E4C07-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10ShaderResourceView : public ID3D10View + { + public: + virtual void __stdcall GetDesc( + + D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc) = 0; + + }; +# 2958 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef struct D3D10_BUFFER_RTV + { + union + { + UINT FirstElement; + UINT ElementOffset; + } ; + union + { + UINT NumElements; + UINT ElementWidth; + } ; + } D3D10_BUFFER_RTV; + +typedef struct D3D10_TEX1D_RTV + { + UINT MipSlice; + } D3D10_TEX1D_RTV; + +typedef struct D3D10_TEX1D_ARRAY_RTV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + } D3D10_TEX1D_ARRAY_RTV; + +typedef struct D3D10_TEX2D_RTV + { + UINT MipSlice; + } D3D10_TEX2D_RTV; + +typedef struct D3D10_TEX2DMS_RTV + { + UINT UnusedField_NothingToDefine; + } D3D10_TEX2DMS_RTV; + +typedef struct D3D10_TEX2D_ARRAY_RTV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + } D3D10_TEX2D_ARRAY_RTV; + +typedef struct D3D10_TEX2DMS_ARRAY_RTV + { + UINT FirstArraySlice; + UINT ArraySize; + } D3D10_TEX2DMS_ARRAY_RTV; + +typedef struct D3D10_TEX3D_RTV + { + UINT MipSlice; + UINT FirstWSlice; + UINT WSize; + } D3D10_TEX3D_RTV; + +typedef struct D3D10_RENDER_TARGET_VIEW_DESC + { + DXGI_FORMAT Format; + D3D10_RTV_DIMENSION ViewDimension; + union + { + D3D10_BUFFER_RTV Buffer; + D3D10_TEX1D_RTV Texture1D; + D3D10_TEX1D_ARRAY_RTV Texture1DArray; + D3D10_TEX2D_RTV Texture2D; + D3D10_TEX2D_ARRAY_RTV Texture2DArray; + D3D10_TEX2DMS_RTV Texture2DMS; + D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray; + D3D10_TEX3D_RTV Texture3D; + } ; + } D3D10_RENDER_TARGET_VIEW_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0011_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0011_v0_0_s_ifspec; +# 3043 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10RenderTargetView; + + + + struct __declspec(uuid("9B7E4C08-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10RenderTargetView : public ID3D10View + { + public: + virtual void __stdcall GetDesc( + + D3D10_RENDER_TARGET_VIEW_DESC *pDesc) = 0; + + }; +# 3173 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef struct D3D10_TEX1D_DSV + { + UINT MipSlice; + } D3D10_TEX1D_DSV; + +typedef struct D3D10_TEX1D_ARRAY_DSV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + } D3D10_TEX1D_ARRAY_DSV; + +typedef struct D3D10_TEX2D_DSV + { + UINT MipSlice; + } D3D10_TEX2D_DSV; + +typedef struct D3D10_TEX2D_ARRAY_DSV + { + UINT MipSlice; + UINT FirstArraySlice; + UINT ArraySize; + } D3D10_TEX2D_ARRAY_DSV; + +typedef struct D3D10_TEX2DMS_DSV + { + UINT UnusedField_NothingToDefine; + } D3D10_TEX2DMS_DSV; + +typedef struct D3D10_TEX2DMS_ARRAY_DSV + { + UINT FirstArraySlice; + UINT ArraySize; + } D3D10_TEX2DMS_ARRAY_DSV; + +typedef struct D3D10_DEPTH_STENCIL_VIEW_DESC + { + DXGI_FORMAT Format; + D3D10_DSV_DIMENSION ViewDimension; + union + { + D3D10_TEX1D_DSV Texture1D; + D3D10_TEX1D_ARRAY_DSV Texture1DArray; + D3D10_TEX2D_DSV Texture2D; + D3D10_TEX2D_ARRAY_DSV Texture2DArray; + D3D10_TEX2DMS_DSV Texture2DMS; + D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray; + } ; + } D3D10_DEPTH_STENCIL_VIEW_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0012_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0012_v0_0_s_ifspec; +# 3235 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10DepthStencilView; + + + + struct __declspec(uuid("9B7E4C09-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10DepthStencilView : public ID3D10View + { + public: + virtual void __stdcall GetDesc( + + D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc) = 0; + + }; +# 3369 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10VertexShader; + + + + struct __declspec(uuid("9B7E4C0A-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10VertexShader : public ID3D10DeviceChild + { + public: + }; +# 3482 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10GeometryShader; + + + + struct __declspec(uuid("6316BE88-54CD-4040-AB44-20461BC81F68")) __declspec(novtable) + ID3D10GeometryShader : public ID3D10DeviceChild + { + public: + }; +# 3595 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10PixelShader; + + + + struct __declspec(uuid("4968B601-9D00-4cde-8346-8E7F675819B6")) __declspec(novtable) + ID3D10PixelShader : public ID3D10DeviceChild + { + public: + }; +# 3708 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10InputLayout; + + + + struct __declspec(uuid("9B7E4C0B-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10InputLayout : public ID3D10DeviceChild + { + public: + }; +# 3817 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef +enum D3D10_FILTER + { + D3D10_FILTER_MIN_MAG_MIP_POINT = 0, + D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1, + D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4, + D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5, + D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, + D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, + D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, + D3D10_FILTER_MIN_MAG_MIP_LINEAR = 0x15, + D3D10_FILTER_ANISOTROPIC = 0x55, + D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, + D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, + D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, + D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, + D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, + D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, + D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, + D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, + D3D10_FILTER_COMPARISON_ANISOTROPIC = 0xd5, + D3D10_FILTER_TEXT_1BIT = 0x80000000 + } D3D10_FILTER; + +typedef +enum D3D10_FILTER_TYPE + { + D3D10_FILTER_TYPE_POINT = 0, + D3D10_FILTER_TYPE_LINEAR = 1 + } D3D10_FILTER_TYPE; +# 3893 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef +enum D3D10_TEXTURE_ADDRESS_MODE + { + D3D10_TEXTURE_ADDRESS_WRAP = 1, + D3D10_TEXTURE_ADDRESS_MIRROR = 2, + D3D10_TEXTURE_ADDRESS_CLAMP = 3, + D3D10_TEXTURE_ADDRESS_BORDER = 4, + D3D10_TEXTURE_ADDRESS_MIRROR_ONCE = 5 + } D3D10_TEXTURE_ADDRESS_MODE; + +typedef struct D3D10_SAMPLER_DESC + { + D3D10_FILTER Filter; + D3D10_TEXTURE_ADDRESS_MODE AddressU; + D3D10_TEXTURE_ADDRESS_MODE AddressV; + D3D10_TEXTURE_ADDRESS_MODE AddressW; + FLOAT MipLODBias; + UINT MaxAnisotropy; + D3D10_COMPARISON_FUNC ComparisonFunc; + FLOAT BorderColor[ 4 ]; + FLOAT MinLOD; + FLOAT MaxLOD; + } D3D10_SAMPLER_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0017_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0017_v0_0_s_ifspec; +# 3929 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10SamplerState; + + + + struct __declspec(uuid("9B7E4C0C-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10SamplerState : public ID3D10DeviceChild + { + public: + virtual void __stdcall GetDesc( + + D3D10_SAMPLER_DESC *pDesc) = 0; + + }; +# 4050 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef +enum D3D10_FORMAT_SUPPORT + { + D3D10_FORMAT_SUPPORT_BUFFER = 0x1, + D3D10_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x2, + D3D10_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x4, + D3D10_FORMAT_SUPPORT_SO_BUFFER = 0x8, + D3D10_FORMAT_SUPPORT_TEXTURE1D = 0x10, + D3D10_FORMAT_SUPPORT_TEXTURE2D = 0x20, + D3D10_FORMAT_SUPPORT_TEXTURE3D = 0x40, + D3D10_FORMAT_SUPPORT_TEXTURECUBE = 0x80, + D3D10_FORMAT_SUPPORT_SHADER_LOAD = 0x100, + D3D10_FORMAT_SUPPORT_SHADER_SAMPLE = 0x200, + D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x400, + D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x800, + D3D10_FORMAT_SUPPORT_MIP = 0x1000, + D3D10_FORMAT_SUPPORT_MIP_AUTOGEN = 0x2000, + D3D10_FORMAT_SUPPORT_RENDER_TARGET = 0x4000, + D3D10_FORMAT_SUPPORT_BLENDABLE = 0x8000, + D3D10_FORMAT_SUPPORT_DEPTH_STENCIL = 0x10000, + D3D10_FORMAT_SUPPORT_CPU_LOCKABLE = 0x20000, + D3D10_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x40000, + D3D10_FORMAT_SUPPORT_DISPLAY = 0x80000, + D3D10_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000, + D3D10_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000, + D3D10_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000, + D3D10_FORMAT_SUPPORT_SHADER_GATHER = 0x800000, + D3D10_FORMAT_SUPPORT_BACK_BUFFER_CAST = 0x1000000 + } D3D10_FORMAT_SUPPORT; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0018_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0018_v0_0_s_ifspec; +# 4092 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10Asynchronous; + + + + struct __declspec(uuid("9B7E4C0D-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10Asynchronous : public ID3D10DeviceChild + { + public: + virtual void __stdcall Begin( void) = 0; + + virtual void __stdcall End( void) = 0; + + virtual HRESULT __stdcall GetData( + + void *pData, + + UINT DataSize, + + UINT GetDataFlags) = 0; + + virtual UINT __stdcall GetDataSize( void) = 0; + + }; +# 4245 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef +enum D3D10_ASYNC_GETDATA_FLAG + { + D3D10_ASYNC_GETDATA_DONOTFLUSH = 0x1 + } D3D10_ASYNC_GETDATA_FLAG; + +typedef +enum D3D10_QUERY + { + D3D10_QUERY_EVENT = 0, + D3D10_QUERY_OCCLUSION = ( D3D10_QUERY_EVENT + 1 ) , + D3D10_QUERY_TIMESTAMP = ( D3D10_QUERY_OCCLUSION + 1 ) , + D3D10_QUERY_TIMESTAMP_DISJOINT = ( D3D10_QUERY_TIMESTAMP + 1 ) , + D3D10_QUERY_PIPELINE_STATISTICS = ( D3D10_QUERY_TIMESTAMP_DISJOINT + 1 ) , + D3D10_QUERY_OCCLUSION_PREDICATE = ( D3D10_QUERY_PIPELINE_STATISTICS + 1 ) , + D3D10_QUERY_SO_STATISTICS = ( D3D10_QUERY_OCCLUSION_PREDICATE + 1 ) , + D3D10_QUERY_SO_OVERFLOW_PREDICATE = ( D3D10_QUERY_SO_STATISTICS + 1 ) + } D3D10_QUERY; + +typedef +enum D3D10_QUERY_MISC_FLAG + { + D3D10_QUERY_MISC_PREDICATEHINT = 0x1 + } D3D10_QUERY_MISC_FLAG; + +typedef struct D3D10_QUERY_DESC + { + D3D10_QUERY Query; + UINT MiscFlags; + } D3D10_QUERY_DESC; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0019_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0019_v0_0_s_ifspec; +# 4288 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10Query; + + + + struct __declspec(uuid("9B7E4C0E-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10Query : public ID3D10Asynchronous + { + public: + virtual void __stdcall GetDesc( + + D3D10_QUERY_DESC *pDesc) = 0; + + }; +# 4444 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10Predicate; + + + + struct __declspec(uuid("9B7E4C10-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10Predicate : public ID3D10Query + { + public: + }; +# 4593 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT + { + UINT64 Frequency; + BOOL Disjoint; + } D3D10_QUERY_DATA_TIMESTAMP_DISJOINT; + +typedef struct D3D10_QUERY_DATA_PIPELINE_STATISTICS + { + UINT64 IAVertices; + UINT64 IAPrimitives; + UINT64 VSInvocations; + UINT64 GSInvocations; + UINT64 GSPrimitives; + UINT64 CInvocations; + UINT64 CPrimitives; + UINT64 PSInvocations; + } D3D10_QUERY_DATA_PIPELINE_STATISTICS; + +typedef struct D3D10_QUERY_DATA_SO_STATISTICS + { + UINT64 NumPrimitivesWritten; + UINT64 PrimitivesStorageNeeded; + } D3D10_QUERY_DATA_SO_STATISTICS; + +typedef +enum D3D10_COUNTER + { + D3D10_COUNTER_GPU_IDLE = 0, + D3D10_COUNTER_VERTEX_PROCESSING = ( D3D10_COUNTER_GPU_IDLE + 1 ) , + D3D10_COUNTER_GEOMETRY_PROCESSING = ( D3D10_COUNTER_VERTEX_PROCESSING + 1 ) , + D3D10_COUNTER_PIXEL_PROCESSING = ( D3D10_COUNTER_GEOMETRY_PROCESSING + 1 ) , + D3D10_COUNTER_OTHER_GPU_PROCESSING = ( D3D10_COUNTER_PIXEL_PROCESSING + 1 ) , + D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION = ( D3D10_COUNTER_OTHER_GPU_PROCESSING + 1 ) , + D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION = ( D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION + 1 ) , + D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION = ( D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION + 1 ) , + D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION = ( D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION + 1 ) , + D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION = ( D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION + 1 ) , + D3D10_COUNTER_VS_MEMORY_LIMITED = ( D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION + 1 ) , + D3D10_COUNTER_VS_COMPUTATION_LIMITED = ( D3D10_COUNTER_VS_MEMORY_LIMITED + 1 ) , + D3D10_COUNTER_GS_MEMORY_LIMITED = ( D3D10_COUNTER_VS_COMPUTATION_LIMITED + 1 ) , + D3D10_COUNTER_GS_COMPUTATION_LIMITED = ( D3D10_COUNTER_GS_MEMORY_LIMITED + 1 ) , + D3D10_COUNTER_PS_MEMORY_LIMITED = ( D3D10_COUNTER_GS_COMPUTATION_LIMITED + 1 ) , + D3D10_COUNTER_PS_COMPUTATION_LIMITED = ( D3D10_COUNTER_PS_MEMORY_LIMITED + 1 ) , + D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE = ( D3D10_COUNTER_PS_COMPUTATION_LIMITED + 1 ) , + D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE = ( D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE + 1 ) , + D3D10_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000 + } D3D10_COUNTER; + +typedef +enum D3D10_COUNTER_TYPE + { + D3D10_COUNTER_TYPE_FLOAT32 = 0, + D3D10_COUNTER_TYPE_UINT16 = ( D3D10_COUNTER_TYPE_FLOAT32 + 1 ) , + D3D10_COUNTER_TYPE_UINT32 = ( D3D10_COUNTER_TYPE_UINT16 + 1 ) , + D3D10_COUNTER_TYPE_UINT64 = ( D3D10_COUNTER_TYPE_UINT32 + 1 ) + } D3D10_COUNTER_TYPE; + +typedef struct D3D10_COUNTER_DESC + { + D3D10_COUNTER Counter; + UINT MiscFlags; + } D3D10_COUNTER_DESC; + +typedef struct D3D10_COUNTER_INFO + { + D3D10_COUNTER LastDeviceDependentCounter; + UINT NumSimultaneousCounters; + UINT8 NumDetectableParallelUnits; + } D3D10_COUNTER_INFO; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0021_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0021_v0_0_s_ifspec; +# 4675 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10Counter; + + + + struct __declspec(uuid("9B7E4C11-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10Counter : public ID3D10Asynchronous + { + public: + virtual void __stdcall GetDesc( + + D3D10_COUNTER_DESC *pDesc) = 0; + + }; +# 4831 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10Device; + + + + struct __declspec(uuid("9B7E4C0F-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10Device : public IUnknown + { + public: + virtual void __stdcall VSSetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D10Buffer *const *ppConstantBuffers) = 0; + + virtual void __stdcall PSSetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0; + + virtual void __stdcall PSSetShader( + + ID3D10PixelShader *pPixelShader) = 0; + + virtual void __stdcall PSSetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D10SamplerState *const *ppSamplers) = 0; + + virtual void __stdcall VSSetShader( + + ID3D10VertexShader *pVertexShader) = 0; + + virtual void __stdcall DrawIndexed( + + UINT IndexCount, + + UINT StartIndexLocation, + + INT BaseVertexLocation) = 0; + + virtual void __stdcall Draw( + + UINT VertexCount, + + UINT StartVertexLocation) = 0; + + virtual void __stdcall PSSetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D10Buffer *const *ppConstantBuffers) = 0; + + virtual void __stdcall IASetInputLayout( + + ID3D10InputLayout *pInputLayout) = 0; + + virtual void __stdcall IASetVertexBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D10Buffer *const *ppVertexBuffers, + + const UINT *pStrides, + + const UINT *pOffsets) = 0; + + virtual void __stdcall IASetIndexBuffer( + + ID3D10Buffer *pIndexBuffer, + + DXGI_FORMAT Format, + + UINT Offset) = 0; + + virtual void __stdcall DrawIndexedInstanced( + + UINT IndexCountPerInstance, + + UINT InstanceCount, + + UINT StartIndexLocation, + + INT BaseVertexLocation, + + UINT StartInstanceLocation) = 0; + + virtual void __stdcall DrawInstanced( + + UINT VertexCountPerInstance, + + UINT InstanceCount, + + UINT StartVertexLocation, + + UINT StartInstanceLocation) = 0; + + virtual void __stdcall GSSetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D10Buffer *const *ppConstantBuffers) = 0; + + virtual void __stdcall GSSetShader( + + ID3D10GeometryShader *pShader) = 0; + + virtual void __stdcall IASetPrimitiveTopology( + + D3D10_PRIMITIVE_TOPOLOGY Topology) = 0; + + virtual void __stdcall VSSetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0; + + virtual void __stdcall VSSetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D10SamplerState *const *ppSamplers) = 0; + + virtual void __stdcall SetPredication( + + ID3D10Predicate *pPredicate, + + BOOL PredicateValue) = 0; + + virtual void __stdcall GSSetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0; + + virtual void __stdcall GSSetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D10SamplerState *const *ppSamplers) = 0; + + virtual void __stdcall OMSetRenderTargets( + + UINT NumViews, + + ID3D10RenderTargetView *const *ppRenderTargetViews, + + ID3D10DepthStencilView *pDepthStencilView) = 0; + + virtual void __stdcall OMSetBlendState( + + ID3D10BlendState *pBlendState, + + const FLOAT BlendFactor[ 4 ], + + UINT SampleMask) = 0; + + virtual void __stdcall OMSetDepthStencilState( + + ID3D10DepthStencilState *pDepthStencilState, + + UINT StencilRef) = 0; + + virtual void __stdcall SOSetTargets( + + UINT NumBuffers, + + ID3D10Buffer *const *ppSOTargets, + + const UINT *pOffsets) = 0; + + virtual void __stdcall DrawAuto( void) = 0; + + virtual void __stdcall RSSetState( + + ID3D10RasterizerState *pRasterizerState) = 0; + + virtual void __stdcall RSSetViewports( + + UINT NumViewports, + + const D3D10_VIEWPORT *pViewports) = 0; + + virtual void __stdcall RSSetScissorRects( + + UINT NumRects, + + const D3D10_RECT *pRects) = 0; + + virtual void __stdcall CopySubresourceRegion( + + ID3D10Resource *pDstResource, + + UINT DstSubresource, + + UINT DstX, + + UINT DstY, + + UINT DstZ, + + ID3D10Resource *pSrcResource, + + UINT SrcSubresource, + + const D3D10_BOX *pSrcBox) = 0; + + virtual void __stdcall CopyResource( + + ID3D10Resource *pDstResource, + + ID3D10Resource *pSrcResource) = 0; + + virtual void __stdcall UpdateSubresource( + + ID3D10Resource *pDstResource, + + UINT DstSubresource, + + const D3D10_BOX *pDstBox, + + const void *pSrcData, + + UINT SrcRowPitch, + + UINT SrcDepthPitch) = 0; + + virtual void __stdcall ClearRenderTargetView( + + ID3D10RenderTargetView *pRenderTargetView, + + const FLOAT ColorRGBA[ 4 ]) = 0; + + virtual void __stdcall ClearDepthStencilView( + + ID3D10DepthStencilView *pDepthStencilView, + + UINT ClearFlags, + + FLOAT Depth, + + UINT8 Stencil) = 0; + + virtual void __stdcall GenerateMips( + + ID3D10ShaderResourceView *pShaderResourceView) = 0; + + virtual void __stdcall ResolveSubresource( + + ID3D10Resource *pDstResource, + + UINT DstSubresource, + + ID3D10Resource *pSrcResource, + + UINT SrcSubresource, + + DXGI_FORMAT Format) = 0; + + virtual void __stdcall VSGetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D10Buffer **ppConstantBuffers) = 0; + + virtual void __stdcall PSGetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D10ShaderResourceView **ppShaderResourceViews) = 0; + + virtual void __stdcall PSGetShader( + + ID3D10PixelShader **ppPixelShader) = 0; + + virtual void __stdcall PSGetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D10SamplerState **ppSamplers) = 0; + + virtual void __stdcall VSGetShader( + + ID3D10VertexShader **ppVertexShader) = 0; + + virtual void __stdcall PSGetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D10Buffer **ppConstantBuffers) = 0; + + virtual void __stdcall IAGetInputLayout( + + ID3D10InputLayout **ppInputLayout) = 0; + + virtual void __stdcall IAGetVertexBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D10Buffer **ppVertexBuffers, + + UINT *pStrides, + + UINT *pOffsets) = 0; + + virtual void __stdcall IAGetIndexBuffer( + + ID3D10Buffer **pIndexBuffer, + + DXGI_FORMAT *Format, + + UINT *Offset) = 0; + + virtual void __stdcall GSGetConstantBuffers( + + UINT StartSlot, + + UINT NumBuffers, + + ID3D10Buffer **ppConstantBuffers) = 0; + + virtual void __stdcall GSGetShader( + + ID3D10GeometryShader **ppGeometryShader) = 0; + + virtual void __stdcall IAGetPrimitiveTopology( + + D3D10_PRIMITIVE_TOPOLOGY *pTopology) = 0; + + virtual void __stdcall VSGetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D10ShaderResourceView **ppShaderResourceViews) = 0; + + virtual void __stdcall VSGetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D10SamplerState **ppSamplers) = 0; + + virtual void __stdcall GetPredication( + + ID3D10Predicate **ppPredicate, + + BOOL *pPredicateValue) = 0; + + virtual void __stdcall GSGetShaderResources( + + UINT StartSlot, + + UINT NumViews, + + ID3D10ShaderResourceView **ppShaderResourceViews) = 0; + + virtual void __stdcall GSGetSamplers( + + UINT StartSlot, + + UINT NumSamplers, + + ID3D10SamplerState **ppSamplers) = 0; + + virtual void __stdcall OMGetRenderTargets( + + UINT NumViews, + + ID3D10RenderTargetView **ppRenderTargetViews, + + ID3D10DepthStencilView **ppDepthStencilView) = 0; + + virtual void __stdcall OMGetBlendState( + + ID3D10BlendState **ppBlendState, + + FLOAT BlendFactor[ 4 ], + + UINT *pSampleMask) = 0; + + virtual void __stdcall OMGetDepthStencilState( + + ID3D10DepthStencilState **ppDepthStencilState, + + UINT *pStencilRef) = 0; + + virtual void __stdcall SOGetTargets( + + UINT NumBuffers, + + ID3D10Buffer **ppSOTargets, + + UINT *pOffsets) = 0; + + virtual void __stdcall RSGetState( + + ID3D10RasterizerState **ppRasterizerState) = 0; + + virtual void __stdcall RSGetViewports( + + UINT *NumViewports, + + D3D10_VIEWPORT *pViewports) = 0; + + virtual void __stdcall RSGetScissorRects( + + UINT *NumRects, + + D3D10_RECT *pRects) = 0; + + virtual HRESULT __stdcall GetDeviceRemovedReason( void) = 0; + + virtual HRESULT __stdcall SetExceptionMode( + UINT RaiseFlags) = 0; + + virtual UINT __stdcall GetExceptionMode( void) = 0; + + virtual HRESULT __stdcall GetPrivateData( + + const GUID & guid, + + UINT *pDataSize, + + void *pData) = 0; + + virtual HRESULT __stdcall SetPrivateData( + + const GUID & guid, + + UINT DataSize, + + const void *pData) = 0; + + virtual HRESULT __stdcall SetPrivateDataInterface( + + const GUID & guid, + + const IUnknown *pData) = 0; + + virtual void __stdcall ClearState( void) = 0; + + virtual void __stdcall Flush( void) = 0; + + virtual HRESULT __stdcall CreateBuffer( + + const D3D10_BUFFER_DESC *pDesc, + + const D3D10_SUBRESOURCE_DATA *pInitialData, + + ID3D10Buffer **ppBuffer) = 0; + + virtual HRESULT __stdcall CreateTexture1D( + + const D3D10_TEXTURE1D_DESC *pDesc, + + const D3D10_SUBRESOURCE_DATA *pInitialData, + + ID3D10Texture1D **ppTexture1D) = 0; + + virtual HRESULT __stdcall CreateTexture2D( + + const D3D10_TEXTURE2D_DESC *pDesc, + + const D3D10_SUBRESOURCE_DATA *pInitialData, + + ID3D10Texture2D **ppTexture2D) = 0; + + virtual HRESULT __stdcall CreateTexture3D( + + const D3D10_TEXTURE3D_DESC *pDesc, + + const D3D10_SUBRESOURCE_DATA *pInitialData, + + ID3D10Texture3D **ppTexture3D) = 0; + + virtual HRESULT __stdcall CreateShaderResourceView( + + ID3D10Resource *pResource, + + const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc, + + ID3D10ShaderResourceView **ppSRView) = 0; + + virtual HRESULT __stdcall CreateRenderTargetView( + + ID3D10Resource *pResource, + + const D3D10_RENDER_TARGET_VIEW_DESC *pDesc, + + ID3D10RenderTargetView **ppRTView) = 0; + + virtual HRESULT __stdcall CreateDepthStencilView( + + ID3D10Resource *pResource, + + const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc, + + ID3D10DepthStencilView **ppDepthStencilView) = 0; + + virtual HRESULT __stdcall CreateInputLayout( + + const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs, + + UINT NumElements, + + const void *pShaderBytecodeWithInputSignature, + + SIZE_T BytecodeLength, + + ID3D10InputLayout **ppInputLayout) = 0; + + virtual HRESULT __stdcall CreateVertexShader( + + const void *pShaderBytecode, + + SIZE_T BytecodeLength, + + ID3D10VertexShader **ppVertexShader) = 0; + + virtual HRESULT __stdcall CreateGeometryShader( + + const void *pShaderBytecode, + + SIZE_T BytecodeLength, + + ID3D10GeometryShader **ppGeometryShader) = 0; + + virtual HRESULT __stdcall CreateGeometryShaderWithStreamOutput( + + const void *pShaderBytecode, + + SIZE_T BytecodeLength, + + const D3D10_SO_DECLARATION_ENTRY *pSODeclaration, + + UINT NumEntries, + + UINT OutputStreamStride, + + ID3D10GeometryShader **ppGeometryShader) = 0; + + virtual HRESULT __stdcall CreatePixelShader( + + const void *pShaderBytecode, + + SIZE_T BytecodeLength, + + ID3D10PixelShader **ppPixelShader) = 0; + + virtual HRESULT __stdcall CreateBlendState( + + const D3D10_BLEND_DESC *pBlendStateDesc, + + ID3D10BlendState **ppBlendState) = 0; + + virtual HRESULT __stdcall CreateDepthStencilState( + + const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc, + + ID3D10DepthStencilState **ppDepthStencilState) = 0; + + virtual HRESULT __stdcall CreateRasterizerState( + + const D3D10_RASTERIZER_DESC *pRasterizerDesc, + + ID3D10RasterizerState **ppRasterizerState) = 0; + + virtual HRESULT __stdcall CreateSamplerState( + + const D3D10_SAMPLER_DESC *pSamplerDesc, + + ID3D10SamplerState **ppSamplerState) = 0; + + virtual HRESULT __stdcall CreateQuery( + + const D3D10_QUERY_DESC *pQueryDesc, + + ID3D10Query **ppQuery) = 0; + + virtual HRESULT __stdcall CreatePredicate( + + const D3D10_QUERY_DESC *pPredicateDesc, + + ID3D10Predicate **ppPredicate) = 0; + + virtual HRESULT __stdcall CreateCounter( + + const D3D10_COUNTER_DESC *pCounterDesc, + + ID3D10Counter **ppCounter) = 0; + + virtual HRESULT __stdcall CheckFormatSupport( + + DXGI_FORMAT Format, + + UINT *pFormatSupport) = 0; + + virtual HRESULT __stdcall CheckMultisampleQualityLevels( + + DXGI_FORMAT Format, + + UINT SampleCount, + + UINT *pNumQualityLevels) = 0; + + virtual void __stdcall CheckCounterInfo( + + D3D10_COUNTER_INFO *pCounterInfo) = 0; + + virtual HRESULT __stdcall CheckCounter( + + const D3D10_COUNTER_DESC *pDesc, + + D3D10_COUNTER_TYPE *pType, + + UINT *pActiveCounters, + + LPSTR szName, + + UINT *pNameLength, + + LPSTR szUnits, + + UINT *pUnitsLength, + + LPSTR szDescription, + + UINT *pDescriptionLength) = 0; + + virtual UINT __stdcall GetCreationFlags( void) = 0; + + virtual HRESULT __stdcall OpenSharedResource( + + HANDLE hResource, + + const IID & ReturnedInterface, + + void **ppResource) = 0; + + virtual void __stdcall SetTextFilterSize( + + UINT Width, + + UINT Height) = 0; + + virtual void __stdcall GetTextFilterSize( + + UINT *pWidth, + + UINT *pHeight) = 0; + + }; +# 6638 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0023_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0023_v0_0_s_ifspec; +# 6648 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +extern "C" const IID IID_ID3D10Multithread; + + + + struct __declspec(uuid("9B7E4E00-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10Multithread : public IUnknown + { + public: + virtual void __stdcall Enter( void) = 0; + + virtual void __stdcall Leave( void) = 0; + + virtual BOOL __stdcall SetMultithreadProtected( + + BOOL bMTProtect) = 0; + + virtual BOOL __stdcall GetMultithreadProtected( void) = 0; + + }; +# 6755 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" +typedef +enum D3D10_CREATE_DEVICE_FLAG + { + D3D10_CREATE_DEVICE_SINGLETHREADED = 0x1, + D3D10_CREATE_DEVICE_DEBUG = 0x2, + D3D10_CREATE_DEVICE_SWITCH_TO_REF = 0x4, + D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8, + D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP = 0x10, + D3D10_CREATE_DEVICE_BGRA_SUPPORT = 0x20, + D3D10_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x80, + D3D10_CREATE_DEVICE_STRICT_VALIDATION = 0x200, + D3D10_CREATE_DEVICE_DEBUGGABLE = 0x400 + } D3D10_CREATE_DEVICE_FLAG; + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10sdklayers.h" 1 +# 49 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10sdklayers.h" +typedef struct ID3D10Debug ID3D10Debug; + + + + + + +typedef struct ID3D10SwitchToRef ID3D10SwitchToRef; + + + + + + +typedef struct ID3D10InfoQueue ID3D10InfoQueue; +# 74 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10sdklayers.h" +extern "C"{ +# 94 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10sdklayers.h" +extern RPC_IF_HANDLE __MIDL_itf_d3d10sdklayers_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10sdklayers_0000_0000_v0_0_s_ifspec; +# 104 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10sdklayers.h" +extern "C" const IID IID_ID3D10Debug; + + + + struct __declspec(uuid("9B7E4E01-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10Debug : public IUnknown + { + public: + virtual HRESULT __stdcall SetFeatureMask( + UINT Mask) = 0; + + virtual UINT __stdcall GetFeatureMask( void) = 0; + + virtual HRESULT __stdcall SetPresentPerRenderOpDelay( + UINT Milliseconds) = 0; + + virtual UINT __stdcall GetPresentPerRenderOpDelay( void) = 0; + + virtual HRESULT __stdcall SetSwapChain( + + IDXGISwapChain *pSwapChain) = 0; + + virtual HRESULT __stdcall GetSwapChain( + + IDXGISwapChain **ppSwapChain) = 0; + + virtual HRESULT __stdcall Validate( void) = 0; + + }; +# 242 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10sdklayers.h" +extern "C" const IID IID_ID3D10SwitchToRef; + + + + struct __declspec(uuid("9B7E4E02-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10SwitchToRef : public IUnknown + { + public: + virtual BOOL __stdcall SetUseRef( + BOOL UseRef) = 0; + + virtual BOOL __stdcall GetUseRef( void) = 0; + + }; +# 326 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10sdklayers.h" +extern "C" const GUID DXGI_DEBUG_D3D10; +# 342 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10sdklayers.h" +typedef +enum D3D10_MESSAGE_CATEGORY + { + D3D10_MESSAGE_CATEGORY_APPLICATION_DEFINED = 0, + D3D10_MESSAGE_CATEGORY_MISCELLANEOUS = ( D3D10_MESSAGE_CATEGORY_APPLICATION_DEFINED + 1 ) , + D3D10_MESSAGE_CATEGORY_INITIALIZATION = ( D3D10_MESSAGE_CATEGORY_MISCELLANEOUS + 1 ) , + D3D10_MESSAGE_CATEGORY_CLEANUP = ( D3D10_MESSAGE_CATEGORY_INITIALIZATION + 1 ) , + D3D10_MESSAGE_CATEGORY_COMPILATION = ( D3D10_MESSAGE_CATEGORY_CLEANUP + 1 ) , + D3D10_MESSAGE_CATEGORY_STATE_CREATION = ( D3D10_MESSAGE_CATEGORY_COMPILATION + 1 ) , + D3D10_MESSAGE_CATEGORY_STATE_SETTING = ( D3D10_MESSAGE_CATEGORY_STATE_CREATION + 1 ) , + D3D10_MESSAGE_CATEGORY_STATE_GETTING = ( D3D10_MESSAGE_CATEGORY_STATE_SETTING + 1 ) , + D3D10_MESSAGE_CATEGORY_RESOURCE_MANIPULATION = ( D3D10_MESSAGE_CATEGORY_STATE_GETTING + 1 ) , + D3D10_MESSAGE_CATEGORY_EXECUTION = ( D3D10_MESSAGE_CATEGORY_RESOURCE_MANIPULATION + 1 ) , + D3D10_MESSAGE_CATEGORY_SHADER = ( D3D10_MESSAGE_CATEGORY_EXECUTION + 1 ) + } D3D10_MESSAGE_CATEGORY; + +typedef +enum D3D10_MESSAGE_SEVERITY + { + D3D10_MESSAGE_SEVERITY_CORRUPTION = 0, + D3D10_MESSAGE_SEVERITY_ERROR = ( D3D10_MESSAGE_SEVERITY_CORRUPTION + 1 ) , + D3D10_MESSAGE_SEVERITY_WARNING = ( D3D10_MESSAGE_SEVERITY_ERROR + 1 ) , + D3D10_MESSAGE_SEVERITY_INFO = ( D3D10_MESSAGE_SEVERITY_WARNING + 1 ) , + D3D10_MESSAGE_SEVERITY_MESSAGE = ( D3D10_MESSAGE_SEVERITY_INFO + 1 ) + } D3D10_MESSAGE_SEVERITY; + +typedef +enum D3D10_MESSAGE_ID + { + D3D10_MESSAGE_ID_UNKNOWN = 0, + D3D10_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_HAZARD = ( D3D10_MESSAGE_ID_UNKNOWN + 1 ) , + D3D10_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_HAZARD = ( D3D10_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_HAZARD + 1 ) , + D3D10_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_HAZARD = ( D3D10_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_HAZARD + 1 ) , + D3D10_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_HAZARD = ( D3D10_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_HAZARD + 1 ) , + D3D10_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_HAZARD = ( D3D10_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_HAZARD + 1 ) , + D3D10_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_HAZARD = ( D3D10_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_HAZARD + 1 ) , + D3D10_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_HAZARD = ( D3D10_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_HAZARD + 1 ) , + D3D10_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_HAZARD = ( D3D10_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_HAZARD + 1 ) , + D3D10_MESSAGE_ID_DEVICE_OMSETRENDERTARGETS_HAZARD = ( D3D10_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_HAZARD + 1 ) , + D3D10_MESSAGE_ID_DEVICE_SOSETTARGETS_HAZARD = ( D3D10_MESSAGE_ID_DEVICE_OMSETRENDERTARGETS_HAZARD + 1 ) , + D3D10_MESSAGE_ID_STRING_FROM_APPLICATION = ( D3D10_MESSAGE_ID_DEVICE_SOSETTARGETS_HAZARD + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_THIS = ( D3D10_MESSAGE_ID_STRING_FROM_APPLICATION + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_PARAMETER1 = ( D3D10_MESSAGE_ID_CORRUPTED_THIS + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_PARAMETER2 = ( D3D10_MESSAGE_ID_CORRUPTED_PARAMETER1 + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_PARAMETER3 = ( D3D10_MESSAGE_ID_CORRUPTED_PARAMETER2 + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_PARAMETER4 = ( D3D10_MESSAGE_ID_CORRUPTED_PARAMETER3 + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_PARAMETER5 = ( D3D10_MESSAGE_ID_CORRUPTED_PARAMETER4 + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_PARAMETER6 = ( D3D10_MESSAGE_ID_CORRUPTED_PARAMETER5 + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_PARAMETER7 = ( D3D10_MESSAGE_ID_CORRUPTED_PARAMETER6 + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_PARAMETER8 = ( D3D10_MESSAGE_ID_CORRUPTED_PARAMETER7 + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_PARAMETER9 = ( D3D10_MESSAGE_ID_CORRUPTED_PARAMETER8 + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_PARAMETER10 = ( D3D10_MESSAGE_ID_CORRUPTED_PARAMETER9 + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_PARAMETER11 = ( D3D10_MESSAGE_ID_CORRUPTED_PARAMETER10 + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_PARAMETER12 = ( D3D10_MESSAGE_ID_CORRUPTED_PARAMETER11 + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_PARAMETER13 = ( D3D10_MESSAGE_ID_CORRUPTED_PARAMETER12 + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_PARAMETER14 = ( D3D10_MESSAGE_ID_CORRUPTED_PARAMETER13 + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_PARAMETER15 = ( D3D10_MESSAGE_ID_CORRUPTED_PARAMETER14 + 1 ) , + D3D10_MESSAGE_ID_CORRUPTED_MULTITHREADING = ( D3D10_MESSAGE_ID_CORRUPTED_PARAMETER15 + 1 ) , + D3D10_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY = ( D3D10_MESSAGE_ID_CORRUPTED_MULTITHREADING + 1 ) , + D3D10_MESSAGE_ID_IASETINPUTLAYOUT_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY + 1 ) , + D3D10_MESSAGE_ID_IASETVERTEXBUFFERS_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_IASETINPUTLAYOUT_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_IASETINDEXBUFFER_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_IASETVERTEXBUFFERS_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_VSSETSHADER_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_IASETINDEXBUFFER_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_VSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_VSSETSHADER_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_VSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_VSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_VSSETSAMPLERS_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_VSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_GSSETSHADER_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_VSSETSAMPLERS_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_GSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_GSSETSHADER_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_GSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_GSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_GSSETSAMPLERS_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_GSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_SOSETTARGETS_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_GSSETSAMPLERS_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_PSSETSHADER_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_SOSETTARGETS_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_PSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_PSSETSHADER_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_PSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_PSSETSHADERRESOURCES_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_PSSETSAMPLERS_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_PSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_RSSETSTATE_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_PSSETSAMPLERS_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_OMSETBLENDSTATE_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_RSSETSTATE_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_OMSETDEPTHSTENCILSTATE_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_OMSETBLENDSTATE_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_OMSETRENDERTARGETS_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_OMSETDEPTHSTENCILSTATE_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_SETPREDICATION_UNBINDDELETINGOBJECT = ( D3D10_MESSAGE_ID_OMSETRENDERTARGETS_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_GETPRIVATEDATA_MOREDATA = ( D3D10_MESSAGE_ID_SETPREDICATION_UNBINDDELETINGOBJECT + 1 ) , + D3D10_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA = ( D3D10_MESSAGE_ID_GETPRIVATEDATA_MOREDATA + 1 ) , + D3D10_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN = ( D3D10_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA + 1 ) , + D3D10_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS = ( D3D10_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN + 1 ) , + D3D10_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS = ( D3D10_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS + 1 ) , + D3D10_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY = ( D3D10_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDFORMAT = ( D3D10_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDSAMPLES = ( D3D10_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDFORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDUSAGE = ( D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDSAMPLES + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDBINDFLAGS = ( D3D10_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDUSAGE + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDCPUACCESSFLAGS = ( D3D10_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDBINDFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDMISCFLAGS = ( D3D10_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDCPUACCESSFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDCPUACCESSFLAGS = ( D3D10_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDMISCFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDBINDFLAGS = ( D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDCPUACCESSFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDINITIALDATA = ( D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDBINDFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDDIMENSIONS = ( D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDINITIALDATA + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDMIPLEVELS = ( D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDDIMENSIONS + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDMISCFLAGS = ( D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDMIPLEVELS + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDARG_RETURN = ( D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDMISCFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_OUTOFMEMORY_RETURN = ( D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDARG_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_NULLDESC = ( D3D10_MESSAGE_ID_CREATEBUFFER_OUTOFMEMORY_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDCONSTANTBUFFERBINDINGS = ( D3D10_MESSAGE_ID_CREATEBUFFER_NULLDESC + 1 ) , + D3D10_MESSAGE_ID_CREATEBUFFER_LARGEALLOCATION = ( D3D10_MESSAGE_ID_CREATEBUFFER_INVALIDCONSTANTBUFFERBINDINGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDFORMAT = ( D3D10_MESSAGE_ID_CREATEBUFFER_LARGEALLOCATION + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_UNSUPPORTEDFORMAT = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDFORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDSAMPLES = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_UNSUPPORTEDFORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDUSAGE = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDSAMPLES + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDBINDFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDUSAGE + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDCPUACCESSFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDBINDFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDMISCFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDCPUACCESSFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDCPUACCESSFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDMISCFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDBINDFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDCPUACCESSFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDINITIALDATA = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDBINDFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDDIMENSIONS = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDINITIALDATA + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDMIPLEVELS = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDDIMENSIONS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDMISCFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDMIPLEVELS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDARG_RETURN = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDMISCFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_OUTOFMEMORY_RETURN = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_INVALIDARG_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_NULLDESC = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_OUTOFMEMORY_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE1D_LARGEALLOCATION = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_NULLDESC + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDFORMAT = ( D3D10_MESSAGE_ID_CREATETEXTURE1D_LARGEALLOCATION + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_UNSUPPORTEDFORMAT = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDFORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDSAMPLES = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_UNSUPPORTEDFORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDUSAGE = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDSAMPLES + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDBINDFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDUSAGE + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDCPUACCESSFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDBINDFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDMISCFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDCPUACCESSFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDCPUACCESSFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDMISCFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDBINDFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDCPUACCESSFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDINITIALDATA = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDBINDFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDDIMENSIONS = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDINITIALDATA + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDMIPLEVELS = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDDIMENSIONS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDMISCFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDMIPLEVELS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDARG_RETURN = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDMISCFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_OUTOFMEMORY_RETURN = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_INVALIDARG_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_NULLDESC = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_OUTOFMEMORY_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE2D_LARGEALLOCATION = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_NULLDESC + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDFORMAT = ( D3D10_MESSAGE_ID_CREATETEXTURE2D_LARGEALLOCATION + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_UNSUPPORTEDFORMAT = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDFORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDSAMPLES = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_UNSUPPORTEDFORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDUSAGE = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDSAMPLES + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDBINDFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDUSAGE + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDCPUACCESSFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDBINDFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDMISCFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDCPUACCESSFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDCPUACCESSFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDMISCFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDBINDFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDCPUACCESSFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDINITIALDATA = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDBINDFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDDIMENSIONS = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDINITIALDATA + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDMIPLEVELS = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDDIMENSIONS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDMISCFLAGS = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDMIPLEVELS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDARG_RETURN = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDMISCFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_OUTOFMEMORY_RETURN = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_INVALIDARG_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_NULLDESC = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_OUTOFMEMORY_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATETEXTURE3D_LARGEALLOCATION = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_NULLDESC + 1 ) , + D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT = ( D3D10_MESSAGE_ID_CREATETEXTURE3D_LARGEALLOCATION + 1 ) , + D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC = ( D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT = ( D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC + 1 ) , + D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS = ( D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE = ( D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS + 1 ) , + D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_TOOMANYOBJECTS = ( D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE + 1 ) , + D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN = ( D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_TOOMANYOBJECTS + 1 ) , + D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN = ( D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT = ( D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT = ( D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC = ( D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT = ( D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC + 1 ) , + D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS = ( D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE = ( D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS + 1 ) , + D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_TOOMANYOBJECTS = ( D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE + 1 ) , + D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN = ( D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_TOOMANYOBJECTS + 1 ) , + D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN = ( D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT = ( D3D10_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_TOOMANYOBJECTS = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_TOOMANYOBJECTS + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_NULLDESC = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT + 1 ) , + D3D10_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_NULLDESC + 1 ) , + D3D10_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE = ( D3D10_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY + 1 ) , + D3D10_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE = ( D3D10_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY = ( D3D10_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX + 1 ) , + D3D10_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE + 1 ) , + D3D10_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE = ( D3D10_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY + 1 ) , + D3D10_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE = ( D3D10_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE + 1 ) , + D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE = ( D3D10_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE + 1 ) , + D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE = ( D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE + 1 ) , + D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP = ( D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE + 1 ) , + D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS = ( D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP + 1 ) , + D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_TOOMANYOBJECTS = ( D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS + 1 ) , + D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC = ( D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_TOOMANYOBJECTS + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK = ( D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_TOOMANYOBJECTS = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC + 1 ) , + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_TOOMANYOBJECTS + 1 ) , + D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC + 1 ) , + D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND = ( D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND + 1 ) , + D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP = ( D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND + 1 ) , + D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA = ( D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP + 1 ) , + D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA = ( D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA + 1 ) , + D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA = ( D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA + 1 ) , + D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK = ( D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA + 1 ) , + D3D10_MESSAGE_ID_CREATEBLENDSTATE_TOOMANYOBJECTS = ( D3D10_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK + 1 ) , + D3D10_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC = ( D3D10_MESSAGE_ID_CREATEBLENDSTATE_TOOMANYOBJECTS + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER = ( D3D10_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_TOOMANYOBJECTS = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_TOOMANYOBJECTS + 1 ) , + D3D10_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDQUERY = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC + 1 ) , + D3D10_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDMISCFLAGS = ( D3D10_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDQUERY + 1 ) , + D3D10_MESSAGE_ID_CREATEQUERYORPREDICATE_UNEXPECTEDMISCFLAG = ( D3D10_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDMISCFLAGS + 1 ) , + D3D10_MESSAGE_ID_CREATEQUERYORPREDICATE_NULLDESC = ( D3D10_MESSAGE_ID_CREATEQUERYORPREDICATE_UNEXPECTEDMISCFLAG + 1 ) , + D3D10_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED = ( D3D10_MESSAGE_ID_CREATEQUERYORPREDICATE_NULLDESC + 1 ) , + D3D10_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED = ( D3D10_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED + 1 ) , + D3D10_MESSAGE_ID_IASETVERTEXBUFFERS_INVALIDBUFFER = ( D3D10_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED + 1 ) , + D3D10_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_OFFSET_TOO_LARGE = ( D3D10_MESSAGE_ID_IASETVERTEXBUFFERS_INVALIDBUFFER + 1 ) , + D3D10_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_BUFFERS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_OFFSET_TOO_LARGE + 1 ) , + D3D10_MESSAGE_ID_IASETINDEXBUFFER_INVALIDBUFFER = ( D3D10_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_FORMAT_INVALID = ( D3D10_MESSAGE_ID_IASETINDEXBUFFER_INVALIDBUFFER + 1 ) , + D3D10_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_TOO_LARGE = ( D3D10_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_FORMAT_INVALID + 1 ) , + D3D10_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_UNALIGNED = ( D3D10_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_TOO_LARGE + 1 ) , + D3D10_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_VIEWS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_UNALIGNED + 1 ) , + D3D10_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFER = ( D3D10_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D10_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) , + D3D10_MESSAGE_ID_DEVICE_VSSETSAMPLERS_SAMPLERS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_VIEWS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_VSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFER = ( D3D10_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D10_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) , + D3D10_MESSAGE_ID_DEVICE_GSSETSAMPLERS_SAMPLERS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_SOSETTARGETS_INVALIDBUFFER = ( D3D10_MESSAGE_ID_DEVICE_GSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_SOSETTARGETS_OFFSET_UNALIGNED = ( D3D10_MESSAGE_ID_SOSETTARGETS_INVALIDBUFFER + 1 ) , + D3D10_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_VIEWS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_SOSETTARGETS_OFFSET_UNALIGNED + 1 ) , + D3D10_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFER = ( D3D10_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D10_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) , + D3D10_MESSAGE_ID_DEVICE_PSSETSAMPLERS_SAMPLERS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT = ( D3D10_MESSAGE_ID_DEVICE_PSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR = ( D3D10_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT + 1 ) , + D3D10_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH = ( D3D10_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR + 1 ) , + D3D10_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH = ( D3D10_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH + 1 ) , + D3D10_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID = ( D3D10_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH + 1 ) , + D3D10_MESSAGE_ID_DEVICE_IAGETVERTEXBUFFERS_BUFFERS_EMPTY = ( D3D10_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID + 1 ) , + D3D10_MESSAGE_ID_DEVICE_VSGETSHADERRESOURCES_VIEWS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_IAGETVERTEXBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_VSGETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_VSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_VSGETSAMPLERS_SAMPLERS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_VSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_GSGETSHADERRESOURCES_VIEWS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_VSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_GSGETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_GSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_GSGETSAMPLERS_SAMPLERS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_GSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_SOGETTARGETS_BUFFERS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_GSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_PSGETSHADERRESOURCES_VIEWS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_SOGETTARGETS_BUFFERS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_PSGETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_PSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_PSGETSAMPLERS_SAMPLERS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_PSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_RSGETVIEWPORTS_VIEWPORTS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_PSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_RSGETSCISSORRECTS_RECTS_EMPTY = ( D3D10_MESSAGE_ID_DEVICE_RSGETVIEWPORTS_VIEWPORTS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_GENERATEMIPS_RESOURCE_INVALID = ( D3D10_MESSAGE_ID_DEVICE_RSGETSCISSORRECTS_RECTS_EMPTY + 1 ) , + D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSUBRESOURCE = ( D3D10_MESSAGE_ID_DEVICE_GENERATEMIPS_RESOURCE_INVALID + 1 ) , + D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESUBRESOURCE = ( D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSUBRESOURCE + 1 ) , + D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCEBOX = ( D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESUBRESOURCE + 1 ) , + D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCE = ( D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCEBOX + 1 ) , + D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSTATE = ( D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCE + 1 ) , + D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESTATE = ( D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSTATE + 1 ) , + D3D10_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE = ( D3D10_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESTATE + 1 ) , + D3D10_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE = ( D3D10_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE + 1 ) , + D3D10_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE = ( D3D10_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE + 1 ) , + D3D10_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE = ( D3D10_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE + 1 ) , + D3D10_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX = ( D3D10_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE + 1 ) , + D3D10_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE = ( D3D10_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX + 1 ) , + D3D10_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID = ( D3D10_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE + 1 ) , + D3D10_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID = ( D3D10_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID + 1 ) , + D3D10_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID = ( D3D10_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID + 1 ) , + D3D10_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID = ( D3D10_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID + 1 ) , + D3D10_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID = ( D3D10_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID + 1 ) , + D3D10_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE = ( D3D10_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID + 1 ) , + D3D10_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS = ( D3D10_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE + 1 ) , + D3D10_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED = ( D3D10_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS + 1 ) , + D3D10_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN = ( D3D10_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED + 1 ) , + D3D10_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED = ( D3D10_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN + 1 ) , + D3D10_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE = ( D3D10_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED + 1 ) , + D3D10_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE = ( D3D10_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE + 1 ) , + D3D10_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS = ( D3D10_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE + 1 ) , + D3D10_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED = ( D3D10_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS + 1 ) , + D3D10_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN = ( D3D10_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED + 1 ) , + D3D10_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE = ( D3D10_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN + 1 ) , + D3D10_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED = ( D3D10_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE + 1 ) , + D3D10_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE = ( D3D10_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED + 1 ) , + D3D10_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE = ( D3D10_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE + 1 ) , + D3D10_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS = ( D3D10_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE + 1 ) , + D3D10_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED = ( D3D10_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS + 1 ) , + D3D10_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN = ( D3D10_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED + 1 ) , + D3D10_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE = ( D3D10_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN + 1 ) , + D3D10_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED = ( D3D10_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE + 1 ) , + D3D10_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE = ( D3D10_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED + 1 ) , + D3D10_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE = ( D3D10_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE + 1 ) , + D3D10_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS = ( D3D10_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE + 1 ) , + D3D10_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED = ( D3D10_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS + 1 ) , + D3D10_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN = ( D3D10_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED + 1 ) , + D3D10_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE = ( D3D10_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN + 1 ) , + D3D10_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED = ( D3D10_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE + 1 ) , + D3D10_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED = ( D3D10_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED + 1 ) , + D3D10_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED = ( D3D10_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED + 1 ) , + D3D10_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS = ( D3D10_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED + 1 ) , + D3D10_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN = ( D3D10_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS + 1 ) , + D3D10_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN = ( D3D10_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN + 1 ) , + D3D10_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE = ( D3D10_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN + 1 ) , + D3D10_MESSAGE_ID_REF_THREADING_MODE = ( D3D10_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE + 1 ) , + D3D10_MESSAGE_ID_REF_UMDRIVER_EXCEPTION = ( D3D10_MESSAGE_ID_REF_THREADING_MODE + 1 ) , + D3D10_MESSAGE_ID_REF_KMDRIVER_EXCEPTION = ( D3D10_MESSAGE_ID_REF_UMDRIVER_EXCEPTION + 1 ) , + D3D10_MESSAGE_ID_REF_HARDWARE_EXCEPTION = ( D3D10_MESSAGE_ID_REF_KMDRIVER_EXCEPTION + 1 ) , + D3D10_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE = ( D3D10_MESSAGE_ID_REF_HARDWARE_EXCEPTION + 1 ) , + D3D10_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER = ( D3D10_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE + 1 ) , + D3D10_MESSAGE_ID_REF_OUT_OF_MEMORY = ( D3D10_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER + 1 ) , + D3D10_MESSAGE_ID_REF_INFO = ( D3D10_MESSAGE_ID_REF_OUT_OF_MEMORY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW = ( D3D10_MESSAGE_ID_REF_INFO + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW = ( D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW = ( D3D10_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW = ( D3D10_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW = ( D3D10_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW = ( D3D10_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET = ( D3D10_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW + 1 ) , + D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = ( D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET + 1 ) , + D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX = ( D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND + 1 ) , + D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE = ( D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX + 1 ) , + D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK = ( D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE + 1 ) , + D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE = ( D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK + 1 ) , + D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = ( D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_NOT_SET = ( D3D10_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_INPUTLAYOUT_NOT_SET = ( D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_NOT_SET + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_NOT_SET = ( D3D10_MESSAGE_ID_DEVICE_DRAW_INPUTLAYOUT_NOT_SET + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_TOO_SMALL = ( D3D10_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_NOT_SET + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_SAMPLER_NOT_SET = ( D3D10_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_TOO_SMALL + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_SHADERRESOURCEVIEW_NOT_SET = ( D3D10_MESSAGE_ID_DEVICE_DRAW_SAMPLER_NOT_SET + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_VIEW_DIMENSION_MISMATCH = ( D3D10_MESSAGE_ID_DEVICE_DRAW_SHADERRESOURCEVIEW_NOT_SET + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL = ( D3D10_MESSAGE_ID_DEVICE_DRAW_VIEW_DIMENSION_MISMATCH + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_TOO_SMALL = ( D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_NOT_SET = ( D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_TOO_SMALL + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_FORMAT_INVALID = ( D3D10_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_NOT_SET + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_TOO_SMALL = ( D3D10_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_FORMAT_INVALID + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_GS_INPUT_PRIMITIVE_MISMATCH = ( D3D10_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_TOO_SMALL + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_RETURN_TYPE_MISMATCH = ( D3D10_MESSAGE_ID_DEVICE_DRAW_GS_INPUT_PRIMITIVE_MISMATCH + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_POSITION_NOT_PRESENT = ( D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_RETURN_TYPE_MISMATCH + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_NOT_SET = ( D3D10_MESSAGE_ID_DEVICE_DRAW_POSITION_NOT_PRESENT + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_BOUND_RESOURCE_MAPPED = ( D3D10_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_NOT_SET + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_INVALID_PRIMITIVETOPOLOGY = ( D3D10_MESSAGE_ID_DEVICE_DRAW_BOUND_RESOURCE_MAPPED + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_OFFSET_UNALIGNED = ( D3D10_MESSAGE_ID_DEVICE_DRAW_INVALID_PRIMITIVETOPOLOGY + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_STRIDE_UNALIGNED = ( D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_OFFSET_UNALIGNED + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_INDEX_OFFSET_UNALIGNED = ( D3D10_MESSAGE_ID_DEVICE_DRAW_VERTEX_STRIDE_UNALIGNED + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED = ( D3D10_MESSAGE_ID_DEVICE_DRAW_INDEX_OFFSET_UNALIGNED + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED = ( D3D10_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED = ( D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED = ( D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED = ( D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE = ( D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_SO_STRIDE_LARGER_THAN_BUFFER = ( D3D10_MESSAGE_ID_DEVICE_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = ( D3D10_MESSAGE_ID_DEVICE_DRAW_SO_STRIDE_LARGER_THAN_BUFFER + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = ( D3D10_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING + 1 ) , + D3D10_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT = ( D3D10_MESSAGE_ID_DEVICE_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 + 1 ) , + D3D10_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT = ( D3D10_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT + 1 ) , + D3D10_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT = ( D3D10_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT + 1 ) , + D3D10_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN = ( D3D10_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT + 1 ) , + D3D10_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN = ( D3D10_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN + 1 ) , + D3D10_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN = ( D3D10_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET = ( D3D10_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC = ( D3D10_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET + 1 ) , + D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC + 1 ) , + D3D10_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH = ( D3D10_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC + 1 ) , + D3D10_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW = ( D3D10_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH + 1 ) , + D3D10_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS = ( D3D10_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH = ( D3D10_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH = ( D3D10_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH + 1 ) , + D3D10_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH + 1 ) , + D3D10_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY = ( D3D10_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY + 1 ) , + D3D10_MESSAGE_ID_CREATEQUERY_OUTOFMEMORY_RETURN = ( D3D10_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY + 1 ) , + D3D10_MESSAGE_ID_CREATEPREDICATE_OUTOFMEMORY_RETURN = ( D3D10_MESSAGE_ID_CREATEQUERY_OUTOFMEMORY_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATECOUNTER_OUTOFRANGE_COUNTER = ( D3D10_MESSAGE_ID_CREATEPREDICATE_OUTOFMEMORY_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATECOUNTER_SIMULTANEOUS_ACTIVE_COUNTERS_EXHAUSTED = ( D3D10_MESSAGE_ID_CREATECOUNTER_OUTOFRANGE_COUNTER + 1 ) , + D3D10_MESSAGE_ID_CREATECOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER = ( D3D10_MESSAGE_ID_CREATECOUNTER_SIMULTANEOUS_ACTIVE_COUNTERS_EXHAUSTED + 1 ) , + D3D10_MESSAGE_ID_CREATECOUNTER_OUTOFMEMORY_RETURN = ( D3D10_MESSAGE_ID_CREATECOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER + 1 ) , + D3D10_MESSAGE_ID_CREATECOUNTER_NONEXCLUSIVE_RETURN = ( D3D10_MESSAGE_ID_CREATECOUNTER_OUTOFMEMORY_RETURN + 1 ) , + D3D10_MESSAGE_ID_CREATECOUNTER_NULLDESC = ( D3D10_MESSAGE_ID_CREATECOUNTER_NONEXCLUSIVE_RETURN + 1 ) , + D3D10_MESSAGE_ID_CHECKCOUNTER_OUTOFRANGE_COUNTER = ( D3D10_MESSAGE_ID_CREATECOUNTER_NULLDESC + 1 ) , + D3D10_MESSAGE_ID_CHECKCOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER = ( D3D10_MESSAGE_ID_CHECKCOUNTER_OUTOFRANGE_COUNTER + 1 ) , + D3D10_MESSAGE_ID_SETPREDICATION_INVALID_PREDICATE_STATE = ( D3D10_MESSAGE_ID_CHECKCOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER + 1 ) , + D3D10_MESSAGE_ID_QUERY_BEGIN_UNSUPPORTED = ( D3D10_MESSAGE_ID_SETPREDICATION_INVALID_PREDICATE_STATE + 1 ) , + D3D10_MESSAGE_ID_PREDICATE_BEGIN_DURING_PREDICATION = ( D3D10_MESSAGE_ID_QUERY_BEGIN_UNSUPPORTED + 1 ) , + D3D10_MESSAGE_ID_QUERY_BEGIN_DUPLICATE = ( D3D10_MESSAGE_ID_PREDICATE_BEGIN_DURING_PREDICATION + 1 ) , + D3D10_MESSAGE_ID_QUERY_BEGIN_ABANDONING_PREVIOUS_RESULTS = ( D3D10_MESSAGE_ID_QUERY_BEGIN_DUPLICATE + 1 ) , + D3D10_MESSAGE_ID_PREDICATE_END_DURING_PREDICATION = ( D3D10_MESSAGE_ID_QUERY_BEGIN_ABANDONING_PREVIOUS_RESULTS + 1 ) , + D3D10_MESSAGE_ID_QUERY_END_ABANDONING_PREVIOUS_RESULTS = ( D3D10_MESSAGE_ID_PREDICATE_END_DURING_PREDICATION + 1 ) , + D3D10_MESSAGE_ID_QUERY_END_WITHOUT_BEGIN = ( D3D10_MESSAGE_ID_QUERY_END_ABANDONING_PREVIOUS_RESULTS + 1 ) , + D3D10_MESSAGE_ID_QUERY_GETDATA_INVALID_DATASIZE = ( D3D10_MESSAGE_ID_QUERY_END_WITHOUT_BEGIN + 1 ) , + D3D10_MESSAGE_ID_QUERY_GETDATA_INVALID_FLAGS = ( D3D10_MESSAGE_ID_QUERY_GETDATA_INVALID_DATASIZE + 1 ) , + D3D10_MESSAGE_ID_QUERY_GETDATA_INVALID_CALL = ( D3D10_MESSAGE_ID_QUERY_GETDATA_INVALID_FLAGS + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH = ( D3D10_MESSAGE_ID_QUERY_GETDATA_INVALID_CALL + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED = ( D3D10_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = ( D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED + 1 ) , + D3D10_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE = ( D3D10_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN + 1 ) , + D3D10_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE = ( D3D10_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT = ( D3D10_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE + 1 ) , + D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT + 1 ) , + D3D10_MESSAGE_ID_LIVE_OBJECT_SUMMARY = ( D3D10_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH + 1 ) , + D3D10_MESSAGE_ID_LIVE_BUFFER = ( D3D10_MESSAGE_ID_LIVE_OBJECT_SUMMARY + 1 ) , + D3D10_MESSAGE_ID_LIVE_TEXTURE1D = ( D3D10_MESSAGE_ID_LIVE_BUFFER + 1 ) , + D3D10_MESSAGE_ID_LIVE_TEXTURE2D = ( D3D10_MESSAGE_ID_LIVE_TEXTURE1D + 1 ) , + D3D10_MESSAGE_ID_LIVE_TEXTURE3D = ( D3D10_MESSAGE_ID_LIVE_TEXTURE2D + 1 ) , + D3D10_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW = ( D3D10_MESSAGE_ID_LIVE_TEXTURE3D + 1 ) , + D3D10_MESSAGE_ID_LIVE_RENDERTARGETVIEW = ( D3D10_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW + 1 ) , + D3D10_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW = ( D3D10_MESSAGE_ID_LIVE_RENDERTARGETVIEW + 1 ) , + D3D10_MESSAGE_ID_LIVE_VERTEXSHADER = ( D3D10_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW + 1 ) , + D3D10_MESSAGE_ID_LIVE_GEOMETRYSHADER = ( D3D10_MESSAGE_ID_LIVE_VERTEXSHADER + 1 ) , + D3D10_MESSAGE_ID_LIVE_PIXELSHADER = ( D3D10_MESSAGE_ID_LIVE_GEOMETRYSHADER + 1 ) , + D3D10_MESSAGE_ID_LIVE_INPUTLAYOUT = ( D3D10_MESSAGE_ID_LIVE_PIXELSHADER + 1 ) , + D3D10_MESSAGE_ID_LIVE_SAMPLER = ( D3D10_MESSAGE_ID_LIVE_INPUTLAYOUT + 1 ) , + D3D10_MESSAGE_ID_LIVE_BLENDSTATE = ( D3D10_MESSAGE_ID_LIVE_SAMPLER + 1 ) , + D3D10_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE = ( D3D10_MESSAGE_ID_LIVE_BLENDSTATE + 1 ) , + D3D10_MESSAGE_ID_LIVE_RASTERIZERSTATE = ( D3D10_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE + 1 ) , + D3D10_MESSAGE_ID_LIVE_QUERY = ( D3D10_MESSAGE_ID_LIVE_RASTERIZERSTATE + 1 ) , + D3D10_MESSAGE_ID_LIVE_PREDICATE = ( D3D10_MESSAGE_ID_LIVE_QUERY + 1 ) , + D3D10_MESSAGE_ID_LIVE_COUNTER = ( D3D10_MESSAGE_ID_LIVE_PREDICATE + 1 ) , + D3D10_MESSAGE_ID_LIVE_DEVICE = ( D3D10_MESSAGE_ID_LIVE_COUNTER + 1 ) , + D3D10_MESSAGE_ID_LIVE_SWAPCHAIN = ( D3D10_MESSAGE_ID_LIVE_DEVICE + 1 ) , + D3D10_MESSAGE_ID_D3D10_MESSAGES_END = ( D3D10_MESSAGE_ID_LIVE_SWAPCHAIN + 1 ) , + D3D10_MESSAGE_ID_D3D10L9_MESSAGES_START = 0x100000, + D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_STENCIL_NO_TWO_SIDED = ( D3D10_MESSAGE_ID_D3D10L9_MESSAGES_START + 1 ) , + D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_DepthBiasClamp_NOT_SUPPORTED = ( D3D10_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_STENCIL_NO_TWO_SIDED + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_NO_COMPARISON_SUPPORT = ( D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_DepthBiasClamp_NOT_SUPPORTED + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_EXCESSIVE_ANISOTROPY = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_NO_COMPARISON_SUPPORT + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_OUT_OF_RANGE = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_EXCESSIVE_ANISOTROPY + 1 ) , + D3D10_MESSAGE_ID_VSSETSAMPLERS_NOT_SUPPORTED = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_OUT_OF_RANGE + 1 ) , + D3D10_MESSAGE_ID_VSSETSAMPLERS_TOO_MANY_SAMPLERS = ( D3D10_MESSAGE_ID_VSSETSAMPLERS_NOT_SUPPORTED + 1 ) , + D3D10_MESSAGE_ID_PSSETSAMPLERS_TOO_MANY_SAMPLERS = ( D3D10_MESSAGE_ID_VSSETSAMPLERS_TOO_MANY_SAMPLERS + 1 ) , + D3D10_MESSAGE_ID_CREATERESOURCE_NO_ARRAYS = ( D3D10_MESSAGE_ID_PSSETSAMPLERS_TOO_MANY_SAMPLERS + 1 ) , + D3D10_MESSAGE_ID_CREATERESOURCE_NO_VB_AND_IB_BIND = ( D3D10_MESSAGE_ID_CREATERESOURCE_NO_ARRAYS + 1 ) , + D3D10_MESSAGE_ID_CREATERESOURCE_NO_TEXTURE_1D = ( D3D10_MESSAGE_ID_CREATERESOURCE_NO_VB_AND_IB_BIND + 1 ) , + D3D10_MESSAGE_ID_CREATERESOURCE_DIMENSION_OUT_OF_RANGE = ( D3D10_MESSAGE_ID_CREATERESOURCE_NO_TEXTURE_1D + 1 ) , + D3D10_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_SHADER_RESOURCE = ( D3D10_MESSAGE_ID_CREATERESOURCE_DIMENSION_OUT_OF_RANGE + 1 ) , + D3D10_MESSAGE_ID_OMSETRENDERTARGETS_TOO_MANY_RENDER_TARGETS = ( D3D10_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_SHADER_RESOURCE + 1 ) , + D3D10_MESSAGE_ID_OMSETRENDERTARGETS_NO_DIFFERING_BIT_DEPTHS = ( D3D10_MESSAGE_ID_OMSETRENDERTARGETS_TOO_MANY_RENDER_TARGETS + 1 ) , + D3D10_MESSAGE_ID_IASETVERTEXBUFFERS_BAD_BUFFER_INDEX = ( D3D10_MESSAGE_ID_OMSETRENDERTARGETS_NO_DIFFERING_BIT_DEPTHS + 1 ) , + D3D10_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_TOO_MANY_VIEWPORTS = ( D3D10_MESSAGE_ID_IASETVERTEXBUFFERS_BAD_BUFFER_INDEX + 1 ) , + D3D10_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_ADJACENCY_UNSUPPORTED = ( D3D10_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_TOO_MANY_VIEWPORTS + 1 ) , + D3D10_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_TOO_MANY_SCISSORS = ( D3D10_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_ADJACENCY_UNSUPPORTED + 1 ) , + D3D10_MESSAGE_ID_COPYRESOURCE_ONLY_TEXTURE_2D_WITHIN_GPU_MEMORY = ( D3D10_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_TOO_MANY_SCISSORS + 1 ) , + D3D10_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_3D_READBACK = ( D3D10_MESSAGE_ID_COPYRESOURCE_ONLY_TEXTURE_2D_WITHIN_GPU_MEMORY + 1 ) , + D3D10_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_ONLY_READBACK = ( D3D10_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_3D_READBACK + 1 ) , + D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_UNSUPPORTED_FORMAT = ( D3D10_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_ONLY_READBACK + 1 ) , + D3D10_MESSAGE_ID_CREATEBLENDSTATE_NO_ALPHA_TO_COVERAGE = ( D3D10_MESSAGE_ID_CREATEINPUTLAYOUT_UNSUPPORTED_FORMAT + 1 ) , + D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_DepthClipEnable_MUST_BE_TRUE = ( D3D10_MESSAGE_ID_CREATEBLENDSTATE_NO_ALPHA_TO_COVERAGE + 1 ) , + D3D10_MESSAGE_ID_DRAWINDEXED_STARTINDEXLOCATION_MUST_BE_POSITIVE = ( D3D10_MESSAGE_ID_CREATERASTERIZERSTATE_DepthClipEnable_MUST_BE_TRUE + 1 ) , + D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_MUST_USE_LOWEST_LOD = ( D3D10_MESSAGE_ID_DRAWINDEXED_STARTINDEXLOCATION_MUST_BE_POSITIVE + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_MINLOD_MUST_NOT_BE_FRACTIONAL = ( D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_MUST_USE_LOWEST_LOD + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_MAXLOD_MUST_BE_FLT_MAX = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_MINLOD_MUST_NOT_BE_FRACTIONAL + 1 ) , + D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_FIRSTARRAYSLICE_MUST_BE_ZERO = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_MAXLOD_MUST_BE_FLT_MAX + 1 ) , + D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_CUBES_MUST_HAVE_6_SIDES = ( D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_FIRSTARRAYSLICE_MUST_BE_ZERO + 1 ) , + D3D10_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_RENDER_TARGET = ( D3D10_MESSAGE_ID_CREATESHADERRESOURCEVIEW_CUBES_MUST_HAVE_6_SIDES + 1 ) , + D3D10_MESSAGE_ID_CREATERESOURCE_NO_DWORD_INDEX_BUFFER = ( D3D10_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_RENDER_TARGET + 1 ) , + D3D10_MESSAGE_ID_CREATERESOURCE_MSAA_PRECLUDES_SHADER_RESOURCE = ( D3D10_MESSAGE_ID_CREATERESOURCE_NO_DWORD_INDEX_BUFFER + 1 ) , + D3D10_MESSAGE_ID_CREATERESOURCE_PRESENTATION_PRECLUDES_SHADER_RESOURCE = ( D3D10_MESSAGE_ID_CREATERESOURCE_MSAA_PRECLUDES_SHADER_RESOURCE + 1 ) , + D3D10_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_BLEND_ENABLE = ( D3D10_MESSAGE_ID_CREATERESOURCE_PRESENTATION_PRECLUDES_SHADER_RESOURCE + 1 ) , + D3D10_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_WRITE_MASKS = ( D3D10_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_BLEND_ENABLE + 1 ) , + D3D10_MESSAGE_ID_CREATERESOURCE_NO_STREAM_OUT = ( D3D10_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_WRITE_MASKS + 1 ) , + D3D10_MESSAGE_ID_CREATERESOURCE_ONLY_VB_IB_FOR_BUFFERS = ( D3D10_MESSAGE_ID_CREATERESOURCE_NO_STREAM_OUT + 1 ) , + D3D10_MESSAGE_ID_CREATERESOURCE_NO_AUTOGEN_FOR_VOLUMES = ( D3D10_MESSAGE_ID_CREATERESOURCE_ONLY_VB_IB_FOR_BUFFERS + 1 ) , + D3D10_MESSAGE_ID_CREATERESOURCE_DXGI_FORMAT_R8G8B8A8_CANNOT_BE_SHARED = ( D3D10_MESSAGE_ID_CREATERESOURCE_NO_AUTOGEN_FOR_VOLUMES + 1 ) , + D3D10_MESSAGE_ID_VSSHADERRESOURCES_NOT_SUPPORTED = ( D3D10_MESSAGE_ID_CREATERESOURCE_DXGI_FORMAT_R8G8B8A8_CANNOT_BE_SHARED + 1 ) , + D3D10_MESSAGE_ID_GEOMETRY_SHADER_NOT_SUPPORTED = ( D3D10_MESSAGE_ID_VSSHADERRESOURCES_NOT_SUPPORTED + 1 ) , + D3D10_MESSAGE_ID_STREAM_OUT_NOT_SUPPORTED = ( D3D10_MESSAGE_ID_GEOMETRY_SHADER_NOT_SUPPORTED + 1 ) , + D3D10_MESSAGE_ID_TEXT_FILTER_NOT_SUPPORTED = ( D3D10_MESSAGE_ID_STREAM_OUT_NOT_SUPPORTED + 1 ) , + D3D10_MESSAGE_ID_CREATEBLENDSTATE_NO_SEPARATE_ALPHA_BLEND = ( D3D10_MESSAGE_ID_TEXT_FILTER_NOT_SUPPORTED + 1 ) , + D3D10_MESSAGE_ID_CREATEBLENDSTATE_NO_MRT_BLEND = ( D3D10_MESSAGE_ID_CREATEBLENDSTATE_NO_SEPARATE_ALPHA_BLEND + 1 ) , + D3D10_MESSAGE_ID_CREATEBLENDSTATE_OPERATION_NOT_SUPPORTED = ( D3D10_MESSAGE_ID_CREATEBLENDSTATE_NO_MRT_BLEND + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_NO_MIRRORONCE = ( D3D10_MESSAGE_ID_CREATEBLENDSTATE_OPERATION_NOT_SUPPORTED + 1 ) , + D3D10_MESSAGE_ID_DRAWINSTANCED_NOT_SUPPORTED = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_NO_MIRRORONCE + 1 ) , + D3D10_MESSAGE_ID_DRAWINDEXEDINSTANCED_NOT_SUPPORTED_BELOW_9_3 = ( D3D10_MESSAGE_ID_DRAWINSTANCED_NOT_SUPPORTED + 1 ) , + D3D10_MESSAGE_ID_DRAWINDEXED_POINTLIST_UNSUPPORTED = ( D3D10_MESSAGE_ID_DRAWINDEXEDINSTANCED_NOT_SUPPORTED_BELOW_9_3 + 1 ) , + D3D10_MESSAGE_ID_SETBLENDSTATE_SAMPLE_MASK_CANNOT_BE_ZERO = ( D3D10_MESSAGE_ID_DRAWINDEXED_POINTLIST_UNSUPPORTED + 1 ) , + D3D10_MESSAGE_ID_CREATERESOURCE_DIMENSION_EXCEEDS_FEATURE_LEVEL_DEFINITION = ( D3D10_MESSAGE_ID_SETBLENDSTATE_SAMPLE_MASK_CANNOT_BE_ZERO + 1 ) , + D3D10_MESSAGE_ID_CREATERESOURCE_ONLY_SINGLE_MIP_LEVEL_DEPTH_STENCIL_SUPPORTED = ( D3D10_MESSAGE_ID_CREATERESOURCE_DIMENSION_EXCEEDS_FEATURE_LEVEL_DEFINITION + 1 ) , + D3D10_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_NEGATIVESCISSOR = ( D3D10_MESSAGE_ID_CREATERESOURCE_ONLY_SINGLE_MIP_LEVEL_DEPTH_STENCIL_SUPPORTED + 1 ) , + D3D10_MESSAGE_ID_SLOT_ZERO_MUST_BE_D3D10_INPUT_PER_VERTEX_DATA = ( D3D10_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_NEGATIVESCISSOR + 1 ) , + D3D10_MESSAGE_ID_CREATERESOURCE_NON_POW_2_MIPMAP = ( D3D10_MESSAGE_ID_SLOT_ZERO_MUST_BE_D3D10_INPUT_PER_VERTEX_DATA + 1 ) , + D3D10_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_NOT_SUPPORTED = ( D3D10_MESSAGE_ID_CREATERESOURCE_NON_POW_2_MIPMAP + 1 ) , + D3D10_MESSAGE_ID_OMSETRENDERTARGETS_NO_SRGB_MRT = ( D3D10_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_NOT_SUPPORTED + 1 ) , + D3D10_MESSAGE_ID_COPYRESOURCE_NO_3D_MISMATCHED_UPDATES = ( D3D10_MESSAGE_ID_OMSETRENDERTARGETS_NO_SRGB_MRT + 1 ) , + D3D10_MESSAGE_ID_D3D10L9_MESSAGES_END = ( D3D10_MESSAGE_ID_COPYRESOURCE_NO_3D_MISMATCHED_UPDATES + 1 ) + } D3D10_MESSAGE_ID; + +typedef struct D3D10_MESSAGE + { + D3D10_MESSAGE_CATEGORY Category; + D3D10_MESSAGE_SEVERITY Severity; + D3D10_MESSAGE_ID ID; + + const char *pDescription; + SIZE_T DescriptionByteLength; + } D3D10_MESSAGE; + +typedef struct D3D10_INFO_QUEUE_FILTER_DESC + { + UINT NumCategories; + + D3D10_MESSAGE_CATEGORY *pCategoryList; + UINT NumSeverities; + + D3D10_MESSAGE_SEVERITY *pSeverityList; + UINT NumIDs; + + D3D10_MESSAGE_ID *pIDList; + } D3D10_INFO_QUEUE_FILTER_DESC; + +typedef struct D3D10_INFO_QUEUE_FILTER + { + D3D10_INFO_QUEUE_FILTER_DESC AllowList; + D3D10_INFO_QUEUE_FILTER_DESC DenyList; + } D3D10_INFO_QUEUE_FILTER; + + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10sdklayers_0000_0002_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10sdklayers_0000_0002_v0_0_s_ifspec; +# 922 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10sdklayers.h" +extern "C" const IID IID_ID3D10InfoQueue; + + + + struct __declspec(uuid("1b940b17-2642-4d1f-ab1f-b99bad0c395f")) __declspec(novtable) + ID3D10InfoQueue : public IUnknown + { + public: + virtual HRESULT __stdcall SetMessageCountLimit( + + UINT64 MessageCountLimit) = 0; + + virtual void __stdcall ClearStoredMessages( void) = 0; + + virtual HRESULT __stdcall GetMessageW( + + UINT64 MessageIndex, + + D3D10_MESSAGE *pMessage, + + SIZE_T *pMessageByteLength) = 0; + + virtual UINT64 __stdcall GetNumMessagesAllowedByStorageFilter( void) = 0; + + virtual UINT64 __stdcall GetNumMessagesDeniedByStorageFilter( void) = 0; + + virtual UINT64 __stdcall GetNumStoredMessages( void) = 0; + + virtual UINT64 __stdcall GetNumStoredMessagesAllowedByRetrievalFilter( void) = 0; + + virtual UINT64 __stdcall GetNumMessagesDiscardedByMessageCountLimit( void) = 0; + + virtual UINT64 __stdcall GetMessageCountLimit( void) = 0; + + virtual HRESULT __stdcall AddStorageFilterEntries( + + D3D10_INFO_QUEUE_FILTER *pFilter) = 0; + + virtual HRESULT __stdcall GetStorageFilter( + + D3D10_INFO_QUEUE_FILTER *pFilter, + + SIZE_T *pFilterByteLength) = 0; + + virtual void __stdcall ClearStorageFilter( void) = 0; + + virtual HRESULT __stdcall PushEmptyStorageFilter( void) = 0; + + virtual HRESULT __stdcall PushCopyOfStorageFilter( void) = 0; + + virtual HRESULT __stdcall PushStorageFilter( + + D3D10_INFO_QUEUE_FILTER *pFilter) = 0; + + virtual void __stdcall PopStorageFilter( void) = 0; + + virtual UINT __stdcall GetStorageFilterStackSize( void) = 0; + + virtual HRESULT __stdcall AddRetrievalFilterEntries( + + D3D10_INFO_QUEUE_FILTER *pFilter) = 0; + + virtual HRESULT __stdcall GetRetrievalFilter( + + D3D10_INFO_QUEUE_FILTER *pFilter, + + SIZE_T *pFilterByteLength) = 0; + + virtual void __stdcall ClearRetrievalFilter( void) = 0; + + virtual HRESULT __stdcall PushEmptyRetrievalFilter( void) = 0; + + virtual HRESULT __stdcall PushCopyOfRetrievalFilter( void) = 0; + + virtual HRESULT __stdcall PushRetrievalFilter( + + D3D10_INFO_QUEUE_FILTER *pFilter) = 0; + + virtual void __stdcall PopRetrievalFilter( void) = 0; + + virtual UINT __stdcall GetRetrievalFilterStackSize( void) = 0; + + virtual HRESULT __stdcall AddMessage( + + D3D10_MESSAGE_CATEGORY Category, + + D3D10_MESSAGE_SEVERITY Severity, + + D3D10_MESSAGE_ID ID, + + LPCSTR pDescription) = 0; + + virtual HRESULT __stdcall AddApplicationMessage( + + D3D10_MESSAGE_SEVERITY Severity, + + LPCSTR pDescription) = 0; + + virtual HRESULT __stdcall SetBreakOnCategory( + + D3D10_MESSAGE_CATEGORY Category, + + BOOL bEnable) = 0; + + virtual HRESULT __stdcall SetBreakOnSeverity( + + D3D10_MESSAGE_SEVERITY Severity, + + BOOL bEnable) = 0; + + virtual HRESULT __stdcall SetBreakOnID( + + D3D10_MESSAGE_ID ID, + + BOOL bEnable) = 0; + + virtual BOOL __stdcall GetBreakOnCategory( + + D3D10_MESSAGE_CATEGORY Category) = 0; + + virtual BOOL __stdcall GetBreakOnSeverity( + + D3D10_MESSAGE_SEVERITY Severity) = 0; + + virtual BOOL __stdcall GetBreakOnID( + + D3D10_MESSAGE_ID ID) = 0; + + virtual void __stdcall SetMuteDebugOutput( + + BOOL bMute) = 0; + + virtual BOOL __stdcall GetMuteDebugOutput( void) = 0; + + }; +# 1382 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10sdklayers.h" +extern "C" const GUID IID_ID3D10Debug; +extern "C" const GUID IID_ID3D10SwitchToRef; +extern "C" const GUID IID_ID3D10InfoQueue; + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10sdklayers_0000_0003_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10sdklayers_0000_0003_v0_0_s_ifspec; + + + + + + +} +# 6773 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" 2 + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10misc.h" 1 +# 18 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10misc.h" +extern "C" { +# 36 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10misc.h" +typedef enum D3D10_DRIVER_TYPE +{ + D3D10_DRIVER_TYPE_HARDWARE = 0, + D3D10_DRIVER_TYPE_REFERENCE = 1, + D3D10_DRIVER_TYPE_NULL = 2, + D3D10_DRIVER_TYPE_SOFTWARE = 3, + D3D10_DRIVER_TYPE_WARP = 5, +} D3D10_DRIVER_TYPE; + +extern "C" const GUID GUID_DeviceType; +# 79 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10misc.h" +HRESULT __stdcall D3D10CreateDevice( + IDXGIAdapter *pAdapter, + D3D10_DRIVER_TYPE DriverType, + HMODULE Software, + UINT Flags, + UINT SDKVersion, + ID3D10Device **ppDevice); +# 123 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10misc.h" +HRESULT __stdcall D3D10CreateDeviceAndSwapChain( + IDXGIAdapter *pAdapter, + D3D10_DRIVER_TYPE DriverType, + HMODULE Software, + UINT Flags, + UINT SDKVersion, + DXGI_SWAP_CHAIN_DESC *pSwapChainDesc, + IDXGISwapChain **ppSwapChain, + ID3D10Device **ppDevice); +# 140 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10misc.h" +HRESULT __stdcall D3D10CreateBlob(SIZE_T NumBytes, LPD3D10BLOB *ppBuffer); + + + + + +} +# 6775 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10shader.h" 1 +# 128 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10shader.h" +typedef D3D_SHADER_MACRO D3D10_SHADER_MACRO; +typedef D3D10_SHADER_MACRO* LPD3D10_SHADER_MACRO; + + +typedef D3D_SHADER_VARIABLE_CLASS D3D10_SHADER_VARIABLE_CLASS; +typedef D3D10_SHADER_VARIABLE_CLASS* LPD3D10_SHADER_VARIABLE_CLASS; + +typedef D3D_SHADER_VARIABLE_FLAGS D3D10_SHADER_VARIABLE_FLAGS; +typedef D3D10_SHADER_VARIABLE_FLAGS* LPD3D10_SHADER_VARIABLE_FLAGS; + +typedef D3D_SHADER_VARIABLE_TYPE D3D10_SHADER_VARIABLE_TYPE; +typedef D3D10_SHADER_VARIABLE_TYPE* LPD3D10_SHADER_VARIABLE_TYPE; + +typedef D3D_SHADER_INPUT_FLAGS D3D10_SHADER_INPUT_FLAGS; +typedef D3D10_SHADER_INPUT_FLAGS* LPD3D10_SHADER_INPUT_FLAGS; + +typedef D3D_SHADER_INPUT_TYPE D3D10_SHADER_INPUT_TYPE; +typedef D3D10_SHADER_INPUT_TYPE* LPD3D10_SHADER_INPUT_TYPE; + +typedef D3D_SHADER_CBUFFER_FLAGS D3D10_SHADER_CBUFFER_FLAGS; +typedef D3D10_SHADER_CBUFFER_FLAGS* LPD3D10_SHADER_CBUFFER_FLAGS; + +typedef D3D_CBUFFER_TYPE D3D10_CBUFFER_TYPE; +typedef D3D10_CBUFFER_TYPE* LPD3D10_CBUFFER_TYPE; + +typedef D3D_NAME D3D10_NAME; + +typedef D3D_RESOURCE_RETURN_TYPE D3D10_RESOURCE_RETURN_TYPE; + +typedef D3D_REGISTER_COMPONENT_TYPE D3D10_REGISTER_COMPONENT_TYPE; + +typedef D3D_INCLUDE_TYPE D3D10_INCLUDE_TYPE; + + +typedef struct ID3DInclude ID3D10Include; +typedef struct ID3DInclude* LPD3D10INCLUDE; +# 175 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10shader.h" +typedef struct _D3D10_SHADER_DESC +{ + UINT Version; + LPCSTR Creator; + UINT Flags; + + UINT ConstantBuffers; + UINT BoundResources; + UINT InputParameters; + UINT OutputParameters; + + UINT InstructionCount; + UINT TempRegisterCount; + UINT TempArrayCount; + UINT DefCount; + UINT DclCount; + UINT TextureNormalInstructions; + UINT TextureLoadInstructions; + UINT TextureCompInstructions; + UINT TextureBiasInstructions; + UINT TextureGradientInstructions; + UINT FloatInstructionCount; + UINT IntInstructionCount; + UINT UintInstructionCount; + UINT StaticFlowControlCount; + UINT DynamicFlowControlCount; + UINT MacroInstructionCount; + UINT ArrayInstructionCount; + UINT CutInstructionCount; + UINT EmitInstructionCount; + D3D10_PRIMITIVE_TOPOLOGY GSOutputTopology; + UINT GSMaxOutputVertexCount; +} D3D10_SHADER_DESC; + +typedef struct _D3D10_SHADER_BUFFER_DESC +{ + LPCSTR Name; + D3D10_CBUFFER_TYPE Type; + UINT Variables; + UINT Size; + UINT uFlags; +} D3D10_SHADER_BUFFER_DESC; + +typedef struct _D3D10_SHADER_VARIABLE_DESC +{ + LPCSTR Name; + UINT StartOffset; + UINT Size; + UINT uFlags; + LPVOID DefaultValue; +} D3D10_SHADER_VARIABLE_DESC; + +typedef struct _D3D10_SHADER_TYPE_DESC +{ + D3D10_SHADER_VARIABLE_CLASS Class; + D3D10_SHADER_VARIABLE_TYPE Type; + UINT Rows; + UINT Columns; + UINT Elements; + UINT Members; + UINT Offset; +} D3D10_SHADER_TYPE_DESC; + +typedef struct _D3D10_SHADER_INPUT_BIND_DESC +{ + LPCSTR Name; + D3D10_SHADER_INPUT_TYPE Type; + UINT BindPoint; + UINT BindCount; + + UINT uFlags; + D3D10_RESOURCE_RETURN_TYPE ReturnType; + D3D10_SRV_DIMENSION Dimension; + UINT NumSamples; +} D3D10_SHADER_INPUT_BIND_DESC; + +typedef struct _D3D10_SIGNATURE_PARAMETER_DESC +{ + LPCSTR SemanticName; + UINT SemanticIndex; + UINT Register; + D3D10_NAME SystemValueType; + D3D10_REGISTER_COMPONENT_TYPE ComponentType; + BYTE Mask; + + BYTE ReadWriteMask; + + + + +} D3D10_SIGNATURE_PARAMETER_DESC; +# 275 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10shader.h" +typedef struct ID3D10ShaderReflectionType ID3D10ShaderReflectionType; +typedef struct ID3D10ShaderReflectionType *LPD3D10SHADERREFLECTIONTYPE; + + +struct __declspec(uuid("C530AD7D-9B16-4395-A979-BA2ECFF83ADD")) ID3D10ShaderReflectionType; +extern "C" const GUID IID_ID3D10ShaderReflectionType; + + + + + +struct __declspec(novtable) ID3D10ShaderReflectionType +{ + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_SHADER_TYPE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10ShaderReflectionType* __stdcall GetMemberTypeByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10ShaderReflectionType* __stdcall GetMemberTypeByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) LPCSTR __stdcall GetMemberTypeName( UINT Index) = 0; +}; + +typedef struct ID3D10ShaderReflectionVariable ID3D10ShaderReflectionVariable; +typedef struct ID3D10ShaderReflectionVariable *LPD3D10SHADERREFLECTIONVARIABLE; + + +struct __declspec(uuid("1BF63C95-2650-405d-99C1-3636BD1DA0A1")) ID3D10ShaderReflectionVariable; +extern "C" const GUID IID_ID3D10ShaderReflectionVariable; + + + + + +struct __declspec(novtable) ID3D10ShaderReflectionVariable +{ + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_SHADER_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10ShaderReflectionType* __stdcall GetType(void) = 0; +}; + +typedef struct ID3D10ShaderReflectionConstantBuffer ID3D10ShaderReflectionConstantBuffer; +typedef struct ID3D10ShaderReflectionConstantBuffer *LPD3D10SHADERREFLECTIONCONSTANTBUFFER; + + +struct __declspec(uuid("66C66A94-DDDD-4b62-A66A-F0DA33C2B4D0")) ID3D10ShaderReflectionConstantBuffer; +extern "C" const GUID IID_ID3D10ShaderReflectionConstantBuffer; + + + + + +struct __declspec(novtable) ID3D10ShaderReflectionConstantBuffer +{ + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_SHADER_BUFFER_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10ShaderReflectionVariable* __stdcall GetVariableByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10ShaderReflectionVariable* __stdcall GetVariableByName( LPCSTR Name) = 0; +}; + +typedef struct ID3D10ShaderReflection ID3D10ShaderReflection; +typedef struct ID3D10ShaderReflection *LPD3D10SHADERREFLECTION; + + +struct __declspec(uuid("D40E20B6-F8F7-42ad-AB20-4BAF8F15DFAA")) ID3D10ShaderReflection; +extern "C" const GUID IID_ID3D10ShaderReflection; + + + + + +struct __declspec(novtable) ID3D10ShaderReflection : public IUnknown +{ + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & iid, LPVOID *ppv) = 0; + virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; + virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_SHADER_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10ShaderReflectionConstantBuffer* __stdcall GetConstantBufferByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10ShaderReflectionConstantBuffer* __stdcall GetConstantBufferByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetResourceBindingDesc( UINT ResourceIndex, D3D10_SHADER_INPUT_BIND_DESC *pDesc) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetInputParameterDesc( UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetOutputParameterDesc( UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) = 0; + +}; + + + + + + +extern "C" { +# 408 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10shader.h" +HRESULT __stdcall D3D10CompileShader( LPCSTR pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, const D3D10_SHADER_MACRO* pDefines, LPD3D10INCLUDE pInclude, + LPCSTR pFunctionName, LPCSTR pProfile, UINT Flags, ID3D10Blob** ppShader, ID3D10Blob** ppErrorMsgs); +# 429 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10shader.h" +HRESULT __stdcall D3D10DisassembleShader( const void *pShader, SIZE_T BytecodeLength, BOOL EnableColorCode, LPCSTR pComments, ID3D10Blob** ppDisassembly); +# 442 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10shader.h" +LPCSTR __stdcall D3D10GetPixelShaderProfile( ID3D10Device *pDevice); + +LPCSTR __stdcall D3D10GetVertexShaderProfile( ID3D10Device *pDevice); + +LPCSTR __stdcall D3D10GetGeometryShaderProfile( ID3D10Device *pDevice); +# 466 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10shader.h" +HRESULT __stdcall D3D10ReflectShader( const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10ShaderReflection **ppReflector); +# 496 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10shader.h" +HRESULT __stdcall D3D10PreprocessShader( LPCSTR pSrcData, SIZE_T SrcDataSize, LPCSTR pFileName, const D3D10_SHADER_MACRO* pDefines, + LPD3D10INCLUDE pInclude, ID3D10Blob** ppShaderText, ID3D10Blob** ppErrorMsgs); +# 528 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10shader.h" +HRESULT __stdcall D3D10GetInputSignatureBlob( const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob **ppSignatureBlob); +HRESULT __stdcall D3D10GetOutputSignatureBlob( const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob **ppSignatureBlob); +HRESULT __stdcall D3D10GetInputAndOutputSignatureBlob( const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob **ppSignatureBlob); +# 548 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10shader.h" +HRESULT __stdcall D3D10GetShaderDebugInfo( const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D10Blob** ppDebugInfo); + + +} +# 6776 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10effect.h" 1 +# 35 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10effect.h" +typedef enum _D3D10_DEVICE_STATE_TYPES +{ + + D3D10_DST_SO_BUFFERS=1, + D3D10_DST_OM_RENDER_TARGETS, + D3D10_DST_OM_DEPTH_STENCIL_STATE, + D3D10_DST_OM_BLEND_STATE, + + D3D10_DST_VS, + D3D10_DST_VS_SAMPLERS, + D3D10_DST_VS_SHADER_RESOURCES, + D3D10_DST_VS_CONSTANT_BUFFERS, + + D3D10_DST_GS, + D3D10_DST_GS_SAMPLERS, + D3D10_DST_GS_SHADER_RESOURCES, + D3D10_DST_GS_CONSTANT_BUFFERS, + + D3D10_DST_PS, + D3D10_DST_PS_SAMPLERS, + D3D10_DST_PS_SHADER_RESOURCES, + D3D10_DST_PS_CONSTANT_BUFFERS, + + D3D10_DST_IA_VERTEX_BUFFERS, + D3D10_DST_IA_INDEX_BUFFER, + D3D10_DST_IA_INPUT_LAYOUT, + D3D10_DST_IA_PRIMITIVE_TOPOLOGY, + + D3D10_DST_RS_VIEWPORTS, + D3D10_DST_RS_SCISSOR_RECTS, + D3D10_DST_RS_RASTERIZER_STATE, + + D3D10_DST_PREDICATION, +} D3D10_DEVICE_STATE_TYPES; +# 81 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10effect.h" +typedef struct _D3D10_STATE_BLOCK_MASK +{ + BYTE VS; + BYTE VSSamplers[(((( 16 )) + 7) / 8)]; + BYTE VSShaderResources[(((( 128 )) + 7) / 8)]; + BYTE VSConstantBuffers[(((( 14 )) + 7) / 8)]; + + BYTE GS; + BYTE GSSamplers[(((( 16 )) + 7) / 8)]; + BYTE GSShaderResources[(((( 128 )) + 7) / 8)]; + BYTE GSConstantBuffers[(((( 14 )) + 7) / 8)]; + + BYTE PS; + BYTE PSSamplers[(((( 16 )) + 7) / 8)]; + BYTE PSShaderResources[(((( 128 )) + 7) / 8)]; + BYTE PSConstantBuffers[(((( 14 )) + 7) / 8)]; + + BYTE IAVertexBuffers[(((( 16 )) + 7) / 8)]; + BYTE IAIndexBuffer; + BYTE IAInputLayout; + BYTE IAPrimitiveTopology; + + BYTE OMRenderTargets; + BYTE OMDepthStencilState; + BYTE OMBlendState; + + BYTE RSViewports; + BYTE RSScissorRects; + BYTE RSRasterizerState; + + BYTE SOBuffers; + + BYTE Predication; +} D3D10_STATE_BLOCK_MASK; + + + + + +typedef struct ID3D10StateBlock ID3D10StateBlock; +typedef struct ID3D10StateBlock *LPD3D10STATEBLOCK; + + +extern "C" const GUID IID_ID3D10StateBlock; + + + + + +struct __declspec(novtable) ID3D10StateBlock : public IUnknown +{ + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & iid, LPVOID *ppv) = 0; + virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; + virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall Capture(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall Apply(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall ReleaseAllDeviceObjects(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDevice( ID3D10Device **ppDevice) = 0; +}; + + +extern "C" { +# 171 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10effect.h" +HRESULT __stdcall D3D10StateBlockMaskUnion( D3D10_STATE_BLOCK_MASK *pA, D3D10_STATE_BLOCK_MASK *pB, D3D10_STATE_BLOCK_MASK *pResult); +HRESULT __stdcall D3D10StateBlockMaskIntersect( D3D10_STATE_BLOCK_MASK *pA, D3D10_STATE_BLOCK_MASK *pB, D3D10_STATE_BLOCK_MASK *pResult); +HRESULT __stdcall D3D10StateBlockMaskDifference( D3D10_STATE_BLOCK_MASK *pA, D3D10_STATE_BLOCK_MASK *pB, D3D10_STATE_BLOCK_MASK *pResult); +HRESULT __stdcall D3D10StateBlockMaskEnableCapture( D3D10_STATE_BLOCK_MASK *pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT RangeStart, UINT RangeLength); +HRESULT __stdcall D3D10StateBlockMaskDisableCapture( D3D10_STATE_BLOCK_MASK *pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT RangeStart, UINT RangeLength); +HRESULT __stdcall D3D10StateBlockMaskEnableAll( D3D10_STATE_BLOCK_MASK *pMask); +HRESULT __stdcall D3D10StateBlockMaskDisableAll( D3D10_STATE_BLOCK_MASK *pMask); +BOOL __stdcall D3D10StateBlockMaskGetSetting( D3D10_STATE_BLOCK_MASK *pMask, D3D10_DEVICE_STATE_TYPES StateType, UINT Entry); +# 200 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10effect.h" +HRESULT __stdcall D3D10CreateStateBlock( ID3D10Device *pDevice, D3D10_STATE_BLOCK_MASK *pStateBlockMask, ID3D10StateBlock **ppStateBlock); + + +} +# 271 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10effect.h" +typedef struct _D3D10_EFFECT_TYPE_DESC +{ + LPCSTR TypeName; + + + D3D10_SHADER_VARIABLE_CLASS Class; + D3D10_SHADER_VARIABLE_TYPE Type; + + UINT Elements; + + UINT Members; + + UINT Rows; + + UINT Columns; + + + UINT PackedSize; + + UINT UnpackedSize; + + UINT Stride; + +} D3D10_EFFECT_TYPE_DESC; + +typedef struct ID3D10EffectType ID3D10EffectType; +typedef struct ID3D10EffectType *LPD3D10EFFECTTYPE; + + +extern "C" const GUID IID_ID3D10EffectType; + + + + + +struct __declspec(novtable) ID3D10EffectType +{ + virtual __declspec(nothrow) BOOL __stdcall IsValid(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_EFFECT_TYPE_DESC *pDesc) = 0; + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetMemberTypeByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetMemberTypeByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetMemberTypeBySemantic( LPCSTR Semantic) = 0; + virtual __declspec(nothrow) LPCSTR __stdcall GetMemberName( UINT Index) = 0; + virtual __declspec(nothrow) LPCSTR __stdcall GetMemberSemantic( UINT Index) = 0; +}; +# 327 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10effect.h" +typedef struct _D3D10_EFFECT_VARIABLE_DESC +{ + LPCSTR Name; + + LPCSTR Semantic; + + + + UINT Flags; + UINT Annotations; + + + UINT BufferOffset; + + + + UINT ExplicitBindPoint; + + +} D3D10_EFFECT_VARIABLE_DESC; + +typedef struct ID3D10EffectVariable ID3D10EffectVariable; +typedef struct ID3D10EffectVariable *LPD3D10EFFECTVARIABLE; + + +extern "C" const GUID IID_ID3D10EffectVariable; + + + + + + +typedef struct ID3D10EffectScalarVariable ID3D10EffectScalarVariable; +typedef struct ID3D10EffectVectorVariable ID3D10EffectVectorVariable; +typedef struct ID3D10EffectMatrixVariable ID3D10EffectMatrixVariable; +typedef struct ID3D10EffectStringVariable ID3D10EffectStringVariable; +typedef struct ID3D10EffectShaderResourceVariable ID3D10EffectShaderResourceVariable; +typedef struct ID3D10EffectRenderTargetViewVariable ID3D10EffectRenderTargetViewVariable; +typedef struct ID3D10EffectDepthStencilViewVariable ID3D10EffectDepthStencilViewVariable; +typedef struct ID3D10EffectConstantBuffer ID3D10EffectConstantBuffer; +typedef struct ID3D10EffectShaderVariable ID3D10EffectShaderVariable; +typedef struct ID3D10EffectBlendVariable ID3D10EffectBlendVariable; +typedef struct ID3D10EffectDepthStencilVariable ID3D10EffectDepthStencilVariable; +typedef struct ID3D10EffectRasterizerVariable ID3D10EffectRasterizerVariable; +typedef struct ID3D10EffectSamplerVariable ID3D10EffectSamplerVariable; + +struct __declspec(novtable) ID3D10EffectVariable +{ + virtual __declspec(nothrow) BOOL __stdcall IsValid(void) = 0; + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetType(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_EFFECT_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberBySemantic( LPCSTR Semantic) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetElement( UINT Index) = 0; + + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall GetParentConstantBuffer(void) = 0; + + virtual __declspec(nothrow) ID3D10EffectScalarVariable* __stdcall AsScalar(void) = 0; + virtual __declspec(nothrow) ID3D10EffectVectorVariable* __stdcall AsVector(void) = 0; + virtual __declspec(nothrow) ID3D10EffectMatrixVariable* __stdcall AsMatrix(void) = 0; + virtual __declspec(nothrow) ID3D10EffectStringVariable* __stdcall AsString(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderResourceVariable* __stdcall AsShaderResource(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRenderTargetViewVariable* __stdcall AsRenderTargetView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilViewVariable* __stdcall AsDepthStencilView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall AsConstantBuffer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderVariable* __stdcall AsShader(void) = 0; + virtual __declspec(nothrow) ID3D10EffectBlendVariable* __stdcall AsBlend(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilVariable* __stdcall AsDepthStencil(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRasterizerVariable* __stdcall AsRasterizer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectSamplerVariable* __stdcall AsSampler(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; +}; + + + + + +typedef struct ID3D10EffectScalarVariable ID3D10EffectScalarVariable; +typedef struct ID3D10EffectScalarVariable *LPD3D10EFFECTSCALARVARIABLE; + + +extern "C" const GUID IID_ID3D10EffectScalarVariable; + + + + + +struct __declspec(novtable) ID3D10EffectScalarVariable : public ID3D10EffectVariable +{ + virtual __declspec(nothrow) BOOL __stdcall IsValid(void) = 0; + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetType(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_EFFECT_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberBySemantic( LPCSTR Semantic) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetElement( UINT Index) = 0; + + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall GetParentConstantBuffer(void) = 0; + + virtual __declspec(nothrow) ID3D10EffectScalarVariable* __stdcall AsScalar(void) = 0; + virtual __declspec(nothrow) ID3D10EffectVectorVariable* __stdcall AsVector(void) = 0; + virtual __declspec(nothrow) ID3D10EffectMatrixVariable* __stdcall AsMatrix(void) = 0; + virtual __declspec(nothrow) ID3D10EffectStringVariable* __stdcall AsString(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderResourceVariable* __stdcall AsShaderResource(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRenderTargetViewVariable* __stdcall AsRenderTargetView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilViewVariable* __stdcall AsDepthStencilView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall AsConstantBuffer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderVariable* __stdcall AsShader(void) = 0; + virtual __declspec(nothrow) ID3D10EffectBlendVariable* __stdcall AsBlend(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilVariable* __stdcall AsDepthStencil(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRasterizerVariable* __stdcall AsRasterizer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectSamplerVariable* __stdcall AsSampler(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetRawValue( void *pData, UINT ByteOffset, UINT ByteCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetRawValue( void *pData, UINT ByteOffset, UINT ByteCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetFloat( float Value) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetFloat( float *pValue) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetFloatArray( float *pData, UINT Offset, UINT Count) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetFloatArray( float *pData, UINT Offset, UINT Count) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetInt( int Value) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetInt( int *pValue) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetIntArray( int *pData, UINT Offset, UINT Count) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetIntArray( int *pData, UINT Offset, UINT Count) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetBool( BOOL Value) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetBool( BOOL *pValue) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetBoolArray( BOOL *pData, UINT Offset, UINT Count) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetBoolArray( BOOL *pData, UINT Offset, UINT Count) = 0; +}; + + + + + +typedef struct ID3D10EffectVectorVariable ID3D10EffectVectorVariable; +typedef struct ID3D10EffectVectorVariable *LPD3D10EFFECTVECTORVARIABLE; + + +extern "C" const GUID IID_ID3D10EffectVectorVariable; + + + + + +struct __declspec(novtable) ID3D10EffectVectorVariable : public ID3D10EffectVariable +{ + virtual __declspec(nothrow) BOOL __stdcall IsValid(void) = 0; + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetType(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_EFFECT_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberBySemantic( LPCSTR Semantic) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetElement( UINT Index) = 0; + + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall GetParentConstantBuffer(void) = 0; + + virtual __declspec(nothrow) ID3D10EffectScalarVariable* __stdcall AsScalar(void) = 0; + virtual __declspec(nothrow) ID3D10EffectVectorVariable* __stdcall AsVector(void) = 0; + virtual __declspec(nothrow) ID3D10EffectMatrixVariable* __stdcall AsMatrix(void) = 0; + virtual __declspec(nothrow) ID3D10EffectStringVariable* __stdcall AsString(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderResourceVariable* __stdcall AsShaderResource(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRenderTargetViewVariable* __stdcall AsRenderTargetView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilViewVariable* __stdcall AsDepthStencilView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall AsConstantBuffer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderVariable* __stdcall AsShader(void) = 0; + virtual __declspec(nothrow) ID3D10EffectBlendVariable* __stdcall AsBlend(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilVariable* __stdcall AsDepthStencil(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRasterizerVariable* __stdcall AsRasterizer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectSamplerVariable* __stdcall AsSampler(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetRawValue( void *pData, UINT ByteOffset, UINT ByteCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetRawValue( void *pData, UINT ByteOffset, UINT ByteCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetBoolVector ( BOOL *pData) = 0; + virtual __declspec(nothrow) HRESULT __stdcall SetIntVector ( int *pData) = 0; + virtual __declspec(nothrow) HRESULT __stdcall SetFloatVector( float *pData) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetBoolVector ( BOOL *pData) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetIntVector ( int *pData) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetFloatVector( float *pData) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetBoolVectorArray ( BOOL *pData, UINT Offset, UINT Count) = 0; + virtual __declspec(nothrow) HRESULT __stdcall SetIntVectorArray ( int *pData, UINT Offset, UINT Count) = 0; + virtual __declspec(nothrow) HRESULT __stdcall SetFloatVectorArray( float *pData, UINT Offset, UINT Count) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetBoolVectorArray ( BOOL *pData, UINT Offset, UINT Count) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetIntVectorArray ( int *pData, UINT Offset, UINT Count) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetFloatVectorArray( float *pData, UINT Offset, UINT Count) = 0; +}; + + + + + +typedef struct ID3D10EffectMatrixVariable ID3D10EffectMatrixVariable; +typedef struct ID3D10EffectMatrixVariable *LPD3D10EFFECTMATRIXVARIABLE; + + +extern "C" const GUID IID_ID3D10EffectMatrixVariable; + + + + + +struct __declspec(novtable) ID3D10EffectMatrixVariable : public ID3D10EffectVariable +{ + virtual __declspec(nothrow) BOOL __stdcall IsValid(void) = 0; + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetType(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_EFFECT_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberBySemantic( LPCSTR Semantic) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetElement( UINT Index) = 0; + + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall GetParentConstantBuffer(void) = 0; + + virtual __declspec(nothrow) ID3D10EffectScalarVariable* __stdcall AsScalar(void) = 0; + virtual __declspec(nothrow) ID3D10EffectVectorVariable* __stdcall AsVector(void) = 0; + virtual __declspec(nothrow) ID3D10EffectMatrixVariable* __stdcall AsMatrix(void) = 0; + virtual __declspec(nothrow) ID3D10EffectStringVariable* __stdcall AsString(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderResourceVariable* __stdcall AsShaderResource(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRenderTargetViewVariable* __stdcall AsRenderTargetView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilViewVariable* __stdcall AsDepthStencilView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall AsConstantBuffer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderVariable* __stdcall AsShader(void) = 0; + virtual __declspec(nothrow) ID3D10EffectBlendVariable* __stdcall AsBlend(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilVariable* __stdcall AsDepthStencil(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRasterizerVariable* __stdcall AsRasterizer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectSamplerVariable* __stdcall AsSampler(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetRawValue( void *pData, UINT ByteOffset, UINT ByteCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetRawValue( void *pData, UINT ByteOffset, UINT ByteCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetMatrix( float *pData) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetMatrix( float *pData) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetMatrixArray( float *pData, UINT Offset, UINT Count) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetMatrixArray( float *pData, UINT Offset, UINT Count) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetMatrixTranspose( float *pData) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetMatrixTranspose( float *pData) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetMatrixTransposeArray( float *pData, UINT Offset, UINT Count) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetMatrixTransposeArray( float *pData, UINT Offset, UINT Count) = 0; +}; + + + + + +typedef struct ID3D10EffectStringVariable ID3D10EffectStringVariable; +typedef struct ID3D10EffectStringVariable *LPD3D10EFFECTSTRINGVARIABLE; + + +extern "C" const GUID IID_ID3D10EffectStringVariable; + + + + + +struct __declspec(novtable) ID3D10EffectStringVariable : public ID3D10EffectVariable +{ + virtual __declspec(nothrow) BOOL __stdcall IsValid(void) = 0; + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetType(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_EFFECT_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberBySemantic( LPCSTR Semantic) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetElement( UINT Index) = 0; + + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall GetParentConstantBuffer(void) = 0; + + virtual __declspec(nothrow) ID3D10EffectScalarVariable* __stdcall AsScalar(void) = 0; + virtual __declspec(nothrow) ID3D10EffectVectorVariable* __stdcall AsVector(void) = 0; + virtual __declspec(nothrow) ID3D10EffectMatrixVariable* __stdcall AsMatrix(void) = 0; + virtual __declspec(nothrow) ID3D10EffectStringVariable* __stdcall AsString(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderResourceVariable* __stdcall AsShaderResource(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRenderTargetViewVariable* __stdcall AsRenderTargetView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilViewVariable* __stdcall AsDepthStencilView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall AsConstantBuffer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderVariable* __stdcall AsShader(void) = 0; + virtual __declspec(nothrow) ID3D10EffectBlendVariable* __stdcall AsBlend(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilVariable* __stdcall AsDepthStencil(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRasterizerVariable* __stdcall AsRasterizer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectSamplerVariable* __stdcall AsSampler(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetString( LPCSTR *ppString) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetStringArray( LPCSTR *ppStrings, UINT Offset, UINT Count) = 0; +}; + + + + + +typedef struct ID3D10EffectShaderResourceVariable ID3D10EffectShaderResourceVariable; +typedef struct ID3D10EffectShaderResourceVariable *LPD3D10EFFECTSHADERRESOURCEVARIABLE; + + +extern "C" const GUID IID_ID3D10EffectShaderResourceVariable; + + + + + + +struct __declspec(novtable) ID3D10EffectShaderResourceVariable : public ID3D10EffectVariable +{ + virtual __declspec(nothrow) BOOL __stdcall IsValid(void) = 0; + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetType(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_EFFECT_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberBySemantic( LPCSTR Semantic) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetElement( UINT Index) = 0; + + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall GetParentConstantBuffer(void) = 0; + + virtual __declspec(nothrow) ID3D10EffectScalarVariable* __stdcall AsScalar(void) = 0; + virtual __declspec(nothrow) ID3D10EffectVectorVariable* __stdcall AsVector(void) = 0; + virtual __declspec(nothrow) ID3D10EffectMatrixVariable* __stdcall AsMatrix(void) = 0; + virtual __declspec(nothrow) ID3D10EffectStringVariable* __stdcall AsString(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderResourceVariable* __stdcall AsShaderResource(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRenderTargetViewVariable* __stdcall AsRenderTargetView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilViewVariable* __stdcall AsDepthStencilView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall AsConstantBuffer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderVariable* __stdcall AsShader(void) = 0; + virtual __declspec(nothrow) ID3D10EffectBlendVariable* __stdcall AsBlend(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilVariable* __stdcall AsDepthStencil(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRasterizerVariable* __stdcall AsRasterizer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectSamplerVariable* __stdcall AsSampler(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetResource( ID3D10ShaderResourceView *pResource) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetResource( ID3D10ShaderResourceView **ppResource) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetResourceArray( ID3D10ShaderResourceView **ppResources, UINT Offset, UINT Count) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetResourceArray( ID3D10ShaderResourceView **ppResources, UINT Offset, UINT Count) = 0; +}; + + + + + +typedef struct ID3D10EffectRenderTargetViewVariable ID3D10EffectRenderTargetViewVariable; +typedef struct ID3D10EffectRenderTargetViewVariable *LPD3D10EFFECTRENDERTARGETVIEWVARIABLE; + + +extern "C" const GUID IID_ID3D10EffectRenderTargetViewVariable; + + + + + +struct __declspec(novtable) ID3D10EffectRenderTargetViewVariable : public ID3D10EffectVariable +{ + virtual __declspec(nothrow) BOOL __stdcall IsValid(void) = 0; + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetType(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_EFFECT_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberBySemantic( LPCSTR Semantic) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetElement( UINT Index) = 0; + + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall GetParentConstantBuffer(void) = 0; + + virtual __declspec(nothrow) ID3D10EffectScalarVariable* __stdcall AsScalar(void) = 0; + virtual __declspec(nothrow) ID3D10EffectVectorVariable* __stdcall AsVector(void) = 0; + virtual __declspec(nothrow) ID3D10EffectMatrixVariable* __stdcall AsMatrix(void) = 0; + virtual __declspec(nothrow) ID3D10EffectStringVariable* __stdcall AsString(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderResourceVariable* __stdcall AsShaderResource(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRenderTargetViewVariable* __stdcall AsRenderTargetView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilViewVariable* __stdcall AsDepthStencilView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall AsConstantBuffer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderVariable* __stdcall AsShader(void) = 0; + virtual __declspec(nothrow) ID3D10EffectBlendVariable* __stdcall AsBlend(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilVariable* __stdcall AsDepthStencil(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRasterizerVariable* __stdcall AsRasterizer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectSamplerVariable* __stdcall AsSampler(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetRenderTarget( ID3D10RenderTargetView *pResource) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetRenderTarget( ID3D10RenderTargetView **ppResource) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetRenderTargetArray( ID3D10RenderTargetView **ppResources, UINT Offset, UINT Count) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetRenderTargetArray( ID3D10RenderTargetView **ppResources, UINT Offset, UINT Count) = 0; +}; + + + + + +typedef struct ID3D10EffectDepthStencilViewVariable ID3D10EffectDepthStencilViewVariable; +typedef struct ID3D10EffectDepthStencilViewVariable *LPD3D10EFFECTDEPTHSTENCILVIEWVARIABLE; + + +extern "C" const GUID IID_ID3D10EffectDepthStencilViewVariable; + + + + + +struct __declspec(novtable) ID3D10EffectDepthStencilViewVariable : public ID3D10EffectVariable +{ + virtual __declspec(nothrow) BOOL __stdcall IsValid(void) = 0; + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetType(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_EFFECT_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberBySemantic( LPCSTR Semantic) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetElement( UINT Index) = 0; + + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall GetParentConstantBuffer(void) = 0; + + virtual __declspec(nothrow) ID3D10EffectScalarVariable* __stdcall AsScalar(void) = 0; + virtual __declspec(nothrow) ID3D10EffectVectorVariable* __stdcall AsVector(void) = 0; + virtual __declspec(nothrow) ID3D10EffectMatrixVariable* __stdcall AsMatrix(void) = 0; + virtual __declspec(nothrow) ID3D10EffectStringVariable* __stdcall AsString(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderResourceVariable* __stdcall AsShaderResource(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRenderTargetViewVariable* __stdcall AsRenderTargetView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilViewVariable* __stdcall AsDepthStencilView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall AsConstantBuffer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderVariable* __stdcall AsShader(void) = 0; + virtual __declspec(nothrow) ID3D10EffectBlendVariable* __stdcall AsBlend(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilVariable* __stdcall AsDepthStencil(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRasterizerVariable* __stdcall AsRasterizer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectSamplerVariable* __stdcall AsSampler(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetDepthStencil( ID3D10DepthStencilView *pResource) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDepthStencil( ID3D10DepthStencilView **ppResource) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetDepthStencilArray( ID3D10DepthStencilView **ppResources, UINT Offset, UINT Count) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDepthStencilArray( ID3D10DepthStencilView **ppResources, UINT Offset, UINT Count) = 0; +}; + + + + + +typedef struct ID3D10EffectConstantBuffer ID3D10EffectConstantBuffer; +typedef struct ID3D10EffectConstantBuffer *LPD3D10EFFECTCONSTANTBUFFER; + + +extern "C" const GUID IID_ID3D10EffectConstantBuffer; + + + + + +struct __declspec(novtable) ID3D10EffectConstantBuffer : public ID3D10EffectVariable +{ + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetType(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_EFFECT_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberBySemantic( LPCSTR Semantic) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetElement( UINT Index) = 0; + + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall GetParentConstantBuffer(void) = 0; + + virtual __declspec(nothrow) ID3D10EffectScalarVariable* __stdcall AsScalar(void) = 0; + virtual __declspec(nothrow) ID3D10EffectVectorVariable* __stdcall AsVector(void) = 0; + virtual __declspec(nothrow) ID3D10EffectMatrixVariable* __stdcall AsMatrix(void) = 0; + virtual __declspec(nothrow) ID3D10EffectStringVariable* __stdcall AsString(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderResourceVariable* __stdcall AsShaderResource(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRenderTargetViewVariable* __stdcall AsRenderTargetView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilViewVariable* __stdcall AsDepthStencilView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall AsConstantBuffer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderVariable* __stdcall AsShader(void) = 0; + virtual __declspec(nothrow) ID3D10EffectBlendVariable* __stdcall AsBlend(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilVariable* __stdcall AsDepthStencil(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRasterizerVariable* __stdcall AsRasterizer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectSamplerVariable* __stdcall AsSampler(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetConstantBuffer( ID3D10Buffer *pConstantBuffer) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetConstantBuffer( ID3D10Buffer **ppConstantBuffer) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetTextureBuffer( ID3D10ShaderResourceView *pTextureBuffer) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetTextureBuffer( ID3D10ShaderResourceView **ppTextureBuffer) = 0; +}; +# 883 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10effect.h" +typedef struct _D3D10_EFFECT_SHADER_DESC +{ + const BYTE *pInputSignature; + + + BOOL IsInline; + + + + + const BYTE *pBytecode; + UINT BytecodeLength; + + LPCSTR SODecl; + + UINT NumInputSignatureEntries; + UINT NumOutputSignatureEntries; +} D3D10_EFFECT_SHADER_DESC; + + +typedef struct ID3D10EffectShaderVariable ID3D10EffectShaderVariable; +typedef struct ID3D10EffectShaderVariable *LPD3D10EFFECTSHADERVARIABLE; + + +extern "C" const GUID IID_ID3D10EffectShaderVariable; + + + + + +struct __declspec(novtable) ID3D10EffectShaderVariable : public ID3D10EffectVariable +{ + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetType(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_EFFECT_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberBySemantic( LPCSTR Semantic) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetElement( UINT Index) = 0; + + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall GetParentConstantBuffer(void) = 0; + + virtual __declspec(nothrow) ID3D10EffectScalarVariable* __stdcall AsScalar(void) = 0; + virtual __declspec(nothrow) ID3D10EffectVectorVariable* __stdcall AsVector(void) = 0; + virtual __declspec(nothrow) ID3D10EffectMatrixVariable* __stdcall AsMatrix(void) = 0; + virtual __declspec(nothrow) ID3D10EffectStringVariable* __stdcall AsString(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderResourceVariable* __stdcall AsShaderResource(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRenderTargetViewVariable* __stdcall AsRenderTargetView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilViewVariable* __stdcall AsDepthStencilView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall AsConstantBuffer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderVariable* __stdcall AsShader(void) = 0; + virtual __declspec(nothrow) ID3D10EffectBlendVariable* __stdcall AsBlend(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilVariable* __stdcall AsDepthStencil(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRasterizerVariable* __stdcall AsRasterizer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectSamplerVariable* __stdcall AsSampler(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetShaderDesc( UINT ShaderIndex, D3D10_EFFECT_SHADER_DESC *pDesc) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetVertexShader( UINT ShaderIndex, ID3D10VertexShader **ppVS) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetGeometryShader( UINT ShaderIndex, ID3D10GeometryShader **ppGS) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetPixelShader( UINT ShaderIndex, ID3D10PixelShader **ppPS) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetInputSignatureElementDesc( UINT ShaderIndex, UINT Element, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetOutputSignatureElementDesc( UINT ShaderIndex, UINT Element, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) = 0; +}; + + + + + +typedef struct ID3D10EffectBlendVariable ID3D10EffectBlendVariable; +typedef struct ID3D10EffectBlendVariable *LPD3D10EFFECTBLENDVARIABLE; + + +extern "C" const GUID IID_ID3D10EffectBlendVariable; + + + + + +struct __declspec(novtable) ID3D10EffectBlendVariable : public ID3D10EffectVariable +{ + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetType(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_EFFECT_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberBySemantic( LPCSTR Semantic) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetElement( UINT Index) = 0; + + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall GetParentConstantBuffer(void) = 0; + + virtual __declspec(nothrow) ID3D10EffectScalarVariable* __stdcall AsScalar(void) = 0; + virtual __declspec(nothrow) ID3D10EffectVectorVariable* __stdcall AsVector(void) = 0; + virtual __declspec(nothrow) ID3D10EffectMatrixVariable* __stdcall AsMatrix(void) = 0; + virtual __declspec(nothrow) ID3D10EffectStringVariable* __stdcall AsString(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderResourceVariable* __stdcall AsShaderResource(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRenderTargetViewVariable* __stdcall AsRenderTargetView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilViewVariable* __stdcall AsDepthStencilView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall AsConstantBuffer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderVariable* __stdcall AsShader(void) = 0; + virtual __declspec(nothrow) ID3D10EffectBlendVariable* __stdcall AsBlend(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilVariable* __stdcall AsDepthStencil(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRasterizerVariable* __stdcall AsRasterizer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectSamplerVariable* __stdcall AsSampler(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetBlendState( UINT Index, ID3D10BlendState **ppBlendState) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetBackingStore( UINT Index, D3D10_BLEND_DESC *pBlendDesc) = 0; +}; + + + + + +typedef struct ID3D10EffectDepthStencilVariable ID3D10EffectDepthStencilVariable; +typedef struct ID3D10EffectDepthStencilVariable *LPD3D10EFFECTDEPTHSTENCILVARIABLE; + + +extern "C" const GUID IID_ID3D10EffectDepthStencilVariable; + + + + + +struct __declspec(novtable) ID3D10EffectDepthStencilVariable : public ID3D10EffectVariable +{ + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetType(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_EFFECT_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberBySemantic( LPCSTR Semantic) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetElement( UINT Index) = 0; + + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall GetParentConstantBuffer(void) = 0; + + virtual __declspec(nothrow) ID3D10EffectScalarVariable* __stdcall AsScalar(void) = 0; + virtual __declspec(nothrow) ID3D10EffectVectorVariable* __stdcall AsVector(void) = 0; + virtual __declspec(nothrow) ID3D10EffectMatrixVariable* __stdcall AsMatrix(void) = 0; + virtual __declspec(nothrow) ID3D10EffectStringVariable* __stdcall AsString(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderResourceVariable* __stdcall AsShaderResource(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRenderTargetViewVariable* __stdcall AsRenderTargetView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilViewVariable* __stdcall AsDepthStencilView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall AsConstantBuffer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderVariable* __stdcall AsShader(void) = 0; + virtual __declspec(nothrow) ID3D10EffectBlendVariable* __stdcall AsBlend(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilVariable* __stdcall AsDepthStencil(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRasterizerVariable* __stdcall AsRasterizer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectSamplerVariable* __stdcall AsSampler(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetDepthStencilState( UINT Index, ID3D10DepthStencilState **ppDepthStencilState) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetBackingStore( UINT Index, D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc) = 0; +}; + + + + + +typedef struct ID3D10EffectRasterizerVariable ID3D10EffectRasterizerVariable; +typedef struct ID3D10EffectRasterizerVariable *LPD3D10EFFECTRASTERIZERVARIABLE; + + +extern "C" const GUID IID_ID3D10EffectRasterizerVariable; + + + + + +struct __declspec(novtable) ID3D10EffectRasterizerVariable : public ID3D10EffectVariable +{ + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetType(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_EFFECT_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberBySemantic( LPCSTR Semantic) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetElement( UINT Index) = 0; + + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall GetParentConstantBuffer(void) = 0; + + virtual __declspec(nothrow) ID3D10EffectScalarVariable* __stdcall AsScalar(void) = 0; + virtual __declspec(nothrow) ID3D10EffectVectorVariable* __stdcall AsVector(void) = 0; + virtual __declspec(nothrow) ID3D10EffectMatrixVariable* __stdcall AsMatrix(void) = 0; + virtual __declspec(nothrow) ID3D10EffectStringVariable* __stdcall AsString(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderResourceVariable* __stdcall AsShaderResource(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRenderTargetViewVariable* __stdcall AsRenderTargetView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilViewVariable* __stdcall AsDepthStencilView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall AsConstantBuffer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderVariable* __stdcall AsShader(void) = 0; + virtual __declspec(nothrow) ID3D10EffectBlendVariable* __stdcall AsBlend(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilVariable* __stdcall AsDepthStencil(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRasterizerVariable* __stdcall AsRasterizer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectSamplerVariable* __stdcall AsSampler(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetRasterizerState( UINT Index, ID3D10RasterizerState **ppRasterizerState) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetBackingStore( UINT Index, D3D10_RASTERIZER_DESC *pRasterizerDesc) = 0; +}; + + + + + +typedef struct ID3D10EffectSamplerVariable ID3D10EffectSamplerVariable; +typedef struct ID3D10EffectSamplerVariable *LPD3D10EFFECTSAMPLERVARIABLE; + + +extern "C" const GUID IID_ID3D10EffectSamplerVariable; + + + + + +struct __declspec(novtable) ID3D10EffectSamplerVariable : public ID3D10EffectVariable +{ + virtual __declspec(nothrow) ID3D10EffectType* __stdcall GetType(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_EFFECT_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetMemberBySemantic( LPCSTR Semantic) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetElement( UINT Index) = 0; + + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall GetParentConstantBuffer(void) = 0; + + virtual __declspec(nothrow) ID3D10EffectScalarVariable* __stdcall AsScalar(void) = 0; + virtual __declspec(nothrow) ID3D10EffectVectorVariable* __stdcall AsVector(void) = 0; + virtual __declspec(nothrow) ID3D10EffectMatrixVariable* __stdcall AsMatrix(void) = 0; + virtual __declspec(nothrow) ID3D10EffectStringVariable* __stdcall AsString(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderResourceVariable* __stdcall AsShaderResource(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRenderTargetViewVariable* __stdcall AsRenderTargetView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilViewVariable* __stdcall AsDepthStencilView(void) = 0; + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall AsConstantBuffer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectShaderVariable* __stdcall AsShader(void) = 0; + virtual __declspec(nothrow) ID3D10EffectBlendVariable* __stdcall AsBlend(void) = 0; + virtual __declspec(nothrow) ID3D10EffectDepthStencilVariable* __stdcall AsDepthStencil(void) = 0; + virtual __declspec(nothrow) ID3D10EffectRasterizerVariable* __stdcall AsRasterizer(void) = 0; + virtual __declspec(nothrow) ID3D10EffectSamplerVariable* __stdcall AsSampler(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetRawValue( void *pData, UINT Offset, UINT ByteCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetSampler( UINT Index, ID3D10SamplerState **ppSampler) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetBackingStore( UINT Index, D3D10_SAMPLER_DESC *pSamplerDesc) = 0; +}; +# 1170 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10effect.h" +typedef struct _D3D10_PASS_DESC +{ + LPCSTR Name; + UINT Annotations; + + BYTE *pIAInputSignature; + + SIZE_T IAInputSignatureSize; + + UINT StencilRef; + UINT SampleMask; + FLOAT BlendFactor[4]; +} D3D10_PASS_DESC; + + + + + + + +typedef struct _D3D10_PASS_SHADER_DESC +{ + ID3D10EffectShaderVariable *pShaderVariable; +# 1203 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10effect.h" + UINT ShaderIndex; + +} D3D10_PASS_SHADER_DESC; + +typedef struct ID3D10EffectPass ID3D10EffectPass; +typedef struct ID3D10EffectPass *LPD3D10EFFECTPASS; + + +extern "C" const GUID IID_ID3D10EffectPass; + + + + + +struct __declspec(novtable) ID3D10EffectPass +{ + virtual __declspec(nothrow) BOOL __stdcall IsValid(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_PASS_DESC *pDesc) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetVertexShaderDesc( D3D10_PASS_SHADER_DESC *pDesc) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetGeometryShaderDesc( D3D10_PASS_SHADER_DESC *pDesc) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetPixelShaderDesc( D3D10_PASS_SHADER_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall Apply( UINT Flags) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall ComputeStateBlockMask( D3D10_STATE_BLOCK_MASK *pStateBlockMask) = 0; +}; +# 1244 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10effect.h" +typedef struct _D3D10_TECHNIQUE_DESC +{ + LPCSTR Name; + UINT Passes; + UINT Annotations; +} D3D10_TECHNIQUE_DESC; + +typedef struct ID3D10EffectTechnique ID3D10EffectTechnique; +typedef struct ID3D10EffectTechnique *LPD3D10EFFECTTECHNIQUE; + + +extern "C" const GUID IID_ID3D10EffectTechnique; + + + + + +struct __declspec(novtable) ID3D10EffectTechnique +{ + virtual __declspec(nothrow) BOOL __stdcall IsValid(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_TECHNIQUE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetAnnotationByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) ID3D10EffectPass* __stdcall GetPassByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectPass* __stdcall GetPassByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall ComputeStateBlockMask( D3D10_STATE_BLOCK_MASK *pStateBlockMask) = 0; +}; +# 1285 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10effect.h" +typedef struct _D3D10_EFFECT_DESC +{ + + BOOL IsChildEffect; + + + UINT ConstantBuffers; + + UINT SharedConstantBuffers; + + + UINT GlobalVariables; + + UINT SharedGlobalVariables; + + + UINT Techniques; + +} D3D10_EFFECT_DESC; + +typedef struct ID3D10Effect ID3D10Effect; +typedef struct ID3D10Effect *LPD3D10EFFECT; + + +extern "C" const GUID IID_ID3D10Effect; + + + + + +struct __declspec(novtable) ID3D10Effect : public IUnknown +{ + + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & iid, LPVOID *ppv) = 0; + virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; + virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; + + virtual __declspec(nothrow) BOOL __stdcall IsValid(void) = 0; + virtual __declspec(nothrow) BOOL __stdcall IsPool(void) = 0; + + + virtual __declspec(nothrow) HRESULT __stdcall GetDevice( ID3D10Device** ppDevice) = 0; + + + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_EFFECT_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall GetConstantBufferByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectConstantBuffer* __stdcall GetConstantBufferByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetVariableByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetVariableByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) ID3D10EffectVariable* __stdcall GetVariableBySemantic( LPCSTR Semantic) = 0; + + virtual __declspec(nothrow) ID3D10EffectTechnique* __stdcall GetTechniqueByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10EffectTechnique* __stdcall GetTechniqueByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall Optimize(void) = 0; + virtual __declspec(nothrow) BOOL __stdcall IsOptimized(void) = 0; + +}; + + + + + +typedef struct ID3D10EffectPool ID3D10EffectPool; +typedef struct ID3D10EffectPool *LPD3D10EFFECTPOOL; + + +extern "C" const GUID IID_ID3D10EffectPool; + + + + + +struct __declspec(novtable) ID3D10EffectPool : public IUnknown +{ + + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & iid, LPVOID *ppv) = 0; + virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; + virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; + + virtual __declspec(nothrow) ID3D10Effect* __stdcall AsEffect(void) = 0; + + +}; + + + + + + +extern "C" { +# 1427 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10effect.h" +HRESULT __stdcall D3D10CompileEffectFromMemory( void *pData, SIZE_T DataLength, LPCSTR pSrcFileName, const D3D10_SHADER_MACRO *pDefines, + ID3D10Include *pInclude, UINT HLSLFlags, UINT FXFlags, + ID3D10Blob **ppCompiledEffect, ID3D10Blob **ppErrors); + +HRESULT __stdcall D3D10CreateEffectFromMemory( void *pData, SIZE_T DataLength, UINT FXFlags, ID3D10Device *pDevice, + ID3D10EffectPool *pEffectPool, ID3D10Effect **ppEffect); + +HRESULT __stdcall D3D10CreateEffectPoolFromMemory( void *pData, SIZE_T DataLength, UINT FXFlags, ID3D10Device *pDevice, + ID3D10EffectPool **ppEffectPool); +# 1452 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10effect.h" +HRESULT __stdcall D3D10DisassembleEffect( ID3D10Effect *pEffect, BOOL EnableColorCode, ID3D10Blob **ppDisassembly); + + +} +# 6777 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10.h" 2 + + + +extern "C" const GUID IID_ID3D10DeviceChild; +extern "C" const GUID IID_ID3D10DepthStencilState; +extern "C" const GUID IID_ID3D10BlendState; +extern "C" const GUID IID_ID3D10RasterizerState; +extern "C" const GUID IID_ID3D10Resource; +extern "C" const GUID IID_ID3D10Buffer; +extern "C" const GUID IID_ID3D10Texture1D; +extern "C" const GUID IID_ID3D10Texture2D; +extern "C" const GUID IID_ID3D10Texture3D; +extern "C" const GUID IID_ID3D10View; +extern "C" const GUID IID_ID3D10ShaderResourceView; +extern "C" const GUID IID_ID3D10RenderTargetView; +extern "C" const GUID IID_ID3D10DepthStencilView; +extern "C" const GUID IID_ID3D10VertexShader; +extern "C" const GUID IID_ID3D10GeometryShader; +extern "C" const GUID IID_ID3D10PixelShader; +extern "C" const GUID IID_ID3D10InputLayout; +extern "C" const GUID IID_ID3D10SamplerState; +extern "C" const GUID IID_ID3D10Asynchronous; +extern "C" const GUID IID_ID3D10Query; +extern "C" const GUID IID_ID3D10Predicate; +extern "C" const GUID IID_ID3D10Counter; +extern "C" const GUID IID_ID3D10Device; +extern "C" const GUID IID_ID3D10Multithread; + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0024_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0024_v0_0_s_ifspec; + + + + + + +} +# 128 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1.h" 2 + + + + +typedef +enum D3D10_FEATURE_LEVEL1 + { + D3D10_FEATURE_LEVEL_10_0 = 0xa000, + D3D10_FEATURE_LEVEL_10_1 = 0xa100, + D3D10_FEATURE_LEVEL_9_1 = 0x9100, + D3D10_FEATURE_LEVEL_9_2 = 0x9200, + D3D10_FEATURE_LEVEL_9_3 = 0x9300 + } D3D10_FEATURE_LEVEL1; + +typedef struct D3D10_RENDER_TARGET_BLEND_DESC1 + { + BOOL BlendEnable; + D3D10_BLEND SrcBlend; + D3D10_BLEND DestBlend; + D3D10_BLEND_OP BlendOp; + D3D10_BLEND SrcBlendAlpha; + D3D10_BLEND DestBlendAlpha; + D3D10_BLEND_OP BlendOpAlpha; + UINT8 RenderTargetWriteMask; + } D3D10_RENDER_TARGET_BLEND_DESC1; + +typedef struct D3D10_BLEND_DESC1 + { + BOOL AlphaToCoverageEnable; + BOOL IndependentBlendEnable; + D3D10_RENDER_TARGET_BLEND_DESC1 RenderTarget[ 8 ]; + } D3D10_BLEND_DESC1; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0000_v0_0_s_ifspec; +# 173 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1.h" +extern "C" const IID IID_ID3D10BlendState1; + + + + struct __declspec(uuid("EDAD8D99-8A35-4d6d-8566-2EA276CDE161")) __declspec(novtable) + ID3D10BlendState1 : public ID3D10BlendState + { + public: + virtual void __stdcall GetDesc1( + + D3D10_BLEND_DESC1 *pDesc) = 0; + + }; +# 303 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1.h" +typedef struct D3D10_TEXCUBE_ARRAY_SRV1 + { + UINT MostDetailedMip; + UINT MipLevels; + UINT First2DArrayFace; + UINT NumCubes; + } D3D10_TEXCUBE_ARRAY_SRV1; + +typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION1; + +typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC1 + { + DXGI_FORMAT Format; + D3D10_SRV_DIMENSION1 ViewDimension; + union + { + D3D10_BUFFER_SRV Buffer; + D3D10_TEX1D_SRV Texture1D; + D3D10_TEX1D_ARRAY_SRV Texture1DArray; + D3D10_TEX2D_SRV Texture2D; + D3D10_TEX2D_ARRAY_SRV Texture2DArray; + D3D10_TEX2DMS_SRV Texture2DMS; + D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray; + D3D10_TEX3D_SRV Texture3D; + D3D10_TEXCUBE_SRV TextureCube; + D3D10_TEXCUBE_ARRAY_SRV1 TextureCubeArray; + } ; + } D3D10_SHADER_RESOURCE_VIEW_DESC1; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0001_v0_0_s_ifspec; +# 344 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1.h" +extern "C" const IID IID_ID3D10ShaderResourceView1; + + + + struct __declspec(uuid("9B7E4C87-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10ShaderResourceView1 : public ID3D10ShaderResourceView + { + public: + virtual void __stdcall GetDesc1( + + D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc) = 0; + + }; +# 483 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1.h" +typedef +enum D3D10_STANDARD_MULTISAMPLE_QUALITY_LEVELS + { + D3D10_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff, + D3D10_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe + } D3D10_STANDARD_MULTISAMPLE_QUALITY_LEVELS; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0002_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0002_v0_0_s_ifspec; +# 502 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1.h" +extern "C" const IID IID_ID3D10Device1; + + + + struct __declspec(uuid("9B7E4C8F-342C-4106-A19F-4F2704F689F0")) __declspec(novtable) + ID3D10Device1 : public ID3D10Device + { + public: + virtual HRESULT __stdcall CreateShaderResourceView1( + + ID3D10Resource *pResource, + + const D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc, + + ID3D10ShaderResourceView1 **ppSRView) = 0; + + virtual HRESULT __stdcall CreateBlendState1( + + const D3D10_BLEND_DESC1 *pBlendStateDesc, + + ID3D10BlendState1 **ppBlendState) = 0; + + virtual D3D10_FEATURE_LEVEL1 __stdcall GetFeatureLevel( void) = 0; + + }; +# 1672 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1shader.h" 1 +# 23 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1shader.h" +typedef enum _D3D10_SHADER_DEBUG_REGTYPE +{ + D3D10_SHADER_DEBUG_REG_INPUT, + D3D10_SHADER_DEBUG_REG_OUTPUT, + D3D10_SHADER_DEBUG_REG_CBUFFER, + D3D10_SHADER_DEBUG_REG_TBUFFER, + D3D10_SHADER_DEBUG_REG_TEMP, + D3D10_SHADER_DEBUG_REG_TEMPARRAY, + D3D10_SHADER_DEBUG_REG_TEXTURE, + D3D10_SHADER_DEBUG_REG_SAMPLER, + D3D10_SHADER_DEBUG_REG_IMMEDIATECBUFFER, + D3D10_SHADER_DEBUG_REG_LITERAL, + D3D10_SHADER_DEBUG_REG_UNUSED, + D3D11_SHADER_DEBUG_REG_INTERFACE_POINTERS, + D3D11_SHADER_DEBUG_REG_UAV, + D3D10_SHADER_DEBUG_REG_FORCE_DWORD = 0x7fffffff, +} D3D10_SHADER_DEBUG_REGTYPE; + +typedef enum _D3D10_SHADER_DEBUG_SCOPETYPE +{ + D3D10_SHADER_DEBUG_SCOPE_GLOBAL, + D3D10_SHADER_DEBUG_SCOPE_BLOCK, + D3D10_SHADER_DEBUG_SCOPE_FORLOOP, + D3D10_SHADER_DEBUG_SCOPE_STRUCT, + D3D10_SHADER_DEBUG_SCOPE_FUNC_PARAMS, + D3D10_SHADER_DEBUG_SCOPE_STATEBLOCK, + D3D10_SHADER_DEBUG_SCOPE_NAMESPACE, + D3D10_SHADER_DEBUG_SCOPE_ANNOTATION, + D3D10_SHADER_DEBUG_SCOPE_FORCE_DWORD = 0x7fffffff, +} D3D10_SHADER_DEBUG_SCOPETYPE; + +typedef enum _D3D10_SHADER_DEBUG_VARTYPE +{ + D3D10_SHADER_DEBUG_VAR_VARIABLE, + D3D10_SHADER_DEBUG_VAR_FUNCTION, + D3D10_SHADER_DEBUG_VAR_FORCE_DWORD = 0x7fffffff, +} D3D10_SHADER_DEBUG_VARTYPE; + + + + + +typedef struct _D3D10_SHADER_DEBUG_TOKEN_INFO +{ + UINT File; + UINT Line; + UINT Column; + + UINT TokenLength; + UINT TokenId; +} D3D10_SHADER_DEBUG_TOKEN_INFO; + + +typedef struct _D3D10_SHADER_DEBUG_VAR_INFO +{ + + UINT TokenId; + D3D10_SHADER_VARIABLE_TYPE Type; + + UINT Register; + UINT Component; + + UINT ScopeVar; + + UINT ScopeVarOffset; +} D3D10_SHADER_DEBUG_VAR_INFO; + +typedef struct _D3D10_SHADER_DEBUG_INPUT_INFO +{ + + UINT Var; + + D3D10_SHADER_DEBUG_REGTYPE InitialRegisterSet; + + + UINT InitialBank; + + UINT InitialRegister; + + UINT InitialComponent; + + UINT InitialValue; +} D3D10_SHADER_DEBUG_INPUT_INFO; + +typedef struct _D3D10_SHADER_DEBUG_SCOPEVAR_INFO +{ + + UINT TokenId; + + D3D10_SHADER_DEBUG_VARTYPE VarType; + D3D10_SHADER_VARIABLE_CLASS Class; + UINT Rows; + UINT Columns; + + + + + + + + UINT StructMemberScope; + + + UINT uArrayIndices; + + + UINT ArrayElements; + + + UINT ArrayStrides; + + UINT uVariables; + + UINT uFirstVariable; +} D3D10_SHADER_DEBUG_SCOPEVAR_INFO; + + +typedef struct _D3D10_SHADER_DEBUG_SCOPE_INFO +{ + D3D10_SHADER_DEBUG_SCOPETYPE ScopeType; + UINT Name; + UINT uNameLen; + UINT uVariables; + UINT VariableData; +} D3D10_SHADER_DEBUG_SCOPE_INFO; + + +typedef struct _D3D10_SHADER_DEBUG_OUTPUTVAR +{ + + UINT Var; + + UINT uValueMin, uValueMax; + INT iValueMin, iValueMax; + FLOAT fValueMin, fValueMax; + + BOOL bNaNPossible, bInfPossible; +} D3D10_SHADER_DEBUG_OUTPUTVAR; + +typedef struct _D3D10_SHADER_DEBUG_OUTPUTREG_INFO +{ + + D3D10_SHADER_DEBUG_REGTYPE OutputRegisterSet; + + UINT OutputReg; + + UINT TempArrayReg; + + UINT OutputComponents[4]; + D3D10_SHADER_DEBUG_OUTPUTVAR OutputVars[4]; + + + + + + UINT IndexReg; + UINT IndexComp; +} D3D10_SHADER_DEBUG_OUTPUTREG_INFO; + + +typedef struct _D3D10_SHADER_DEBUG_INST_INFO +{ + UINT Id; + UINT Opcode; + + + UINT uOutputs; + + + D3D10_SHADER_DEBUG_OUTPUTREG_INFO pOutputs[2]; + + + UINT TokenId; + + + UINT NestingLevel; + + + + UINT Scopes; + UINT ScopeInfo; + + + + UINT AccessedVars; + UINT AccessedVarsInfo; +} D3D10_SHADER_DEBUG_INST_INFO; + +typedef struct _D3D10_SHADER_DEBUG_FILE_INFO +{ + UINT FileName; + UINT FileNameLen; + UINT FileData; + UINT FileLen; +} D3D10_SHADER_DEBUG_FILE_INFO; + +typedef struct _D3D10_SHADER_DEBUG_INFO +{ + UINT Size; + UINT Creator; + UINT EntrypointName; + UINT ShaderTarget; + UINT CompileFlags; + UINT Files; + UINT FileInfo; + UINT Instructions; + UINT InstructionInfo; + UINT Variables; + UINT VariableInfo; + UINT InputVariables; + UINT InputVariableInfo; + UINT Tokens; + UINT TokenInfo; + UINT Scopes; + UINT ScopeInfo; + UINT ScopeVariables; + UINT ScopeVariableInfo; + UINT UintOffset; + UINT StringOffset; +} D3D10_SHADER_DEBUG_INFO; +# 253 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1shader.h" +typedef struct ID3D10ShaderReflection1 ID3D10ShaderReflection1; +typedef struct ID3D10ShaderReflection1 *LPD3D10SHADERREFLECTION1; + + +extern "C" const GUID IID_ID3D10ShaderReflection1; + + + + + +struct __declspec(novtable) ID3D10ShaderReflection1 : public IUnknown +{ + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & iid, LPVOID *ppv) = 0; + virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; + virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D10_SHADER_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10ShaderReflectionConstantBuffer* __stdcall GetConstantBufferByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D10ShaderReflectionConstantBuffer* __stdcall GetConstantBufferByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetResourceBindingDesc( UINT ResourceIndex, D3D10_SHADER_INPUT_BIND_DESC *pDesc) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetInputParameterDesc( UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetOutputParameterDesc( UINT ParameterIndex, D3D10_SIGNATURE_PARAMETER_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D10ShaderReflectionVariable* __stdcall GetVariableByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetResourceBindingDescByName( LPCSTR Name, D3D10_SHADER_INPUT_BIND_DESC *pDesc) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetMovInstructionCount( UINT* pCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetMovcInstructionCount( UINT* pCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetConversionInstructionCount( UINT* pCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetBitwiseInstructionCount( UINT* pCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetGSInputPrimitive( D3D10_PRIMITIVE* pPrim) = 0; + virtual __declspec(nothrow) HRESULT __stdcall IsLevel9Shader( BOOL* pbLevel9Shader) = 0; + virtual __declspec(nothrow) HRESULT __stdcall IsSampleFrequencyShader( BOOL* pbSampleFrequency) = 0; +}; + + + + + + +extern "C" { + + + +} +# 1672 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1.h" 2 +# 1707 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1.h" +typedef HRESULT (__stdcall* PFN_D3D10_CREATE_DEVICE1)(IDXGIAdapter *, + D3D10_DRIVER_TYPE, HMODULE, UINT, D3D10_FEATURE_LEVEL1, UINT, ID3D10Device1**); + +HRESULT __stdcall D3D10CreateDevice1( + IDXGIAdapter *pAdapter, + D3D10_DRIVER_TYPE DriverType, + HMODULE Software, + UINT Flags, + D3D10_FEATURE_LEVEL1 HardwareLevel, + UINT SDKVersion, + ID3D10Device1 **ppDevice); +# 1759 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d10_1.h" +typedef HRESULT (__stdcall* PFN_D3D10_CREATE_DEVICE_AND_SWAP_CHAIN1)(IDXGIAdapter *, + D3D10_DRIVER_TYPE, HMODULE, UINT, D3D10_FEATURE_LEVEL1, UINT, DXGI_SWAP_CHAIN_DESC *, IDXGISwapChain **, ID3D10Device1 **); + +HRESULT __stdcall D3D10CreateDeviceAndSwapChain1( + IDXGIAdapter *pAdapter, + D3D10_DRIVER_TYPE DriverType, + HMODULE Software, + UINT Flags, + D3D10_FEATURE_LEVEL1 HardwareLevel, + UINT SDKVersion, + DXGI_SWAP_CHAIN_DESC *pSwapChainDesc, + IDXGISwapChain **ppSwapChain, + ID3D10Device1 **ppDevice); + + + +extern "C" const GUID IID_ID3D10BlendState1; +extern "C" const GUID IID_ID3D10ShaderResourceView1; +extern "C" const GUID IID_ID3D10Device1; + + +extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0003_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0003_v0_0_s_ifspec; + + + + + + +} +# 14390 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11.h" 2 +# 14439 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11.h" +typedef HRESULT (__stdcall* PFN_D3D11_CREATE_DEVICE)( IDXGIAdapter*, + D3D_DRIVER_TYPE, HMODULE, UINT, + const D3D_FEATURE_LEVEL*, + UINT FeatureLevels, UINT, ID3D11Device**, + D3D_FEATURE_LEVEL*, ID3D11DeviceContext** ); + +HRESULT __stdcall D3D11CreateDevice( + IDXGIAdapter* pAdapter, + D3D_DRIVER_TYPE DriverType, + HMODULE Software, + UINT Flags, + const D3D_FEATURE_LEVEL* pFeatureLevels, + UINT FeatureLevels, + UINT SDKVersion, + ID3D11Device** ppDevice, + D3D_FEATURE_LEVEL* pFeatureLevel, + ID3D11DeviceContext** ppImmediateContext ); +# 14512 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11.h" +typedef HRESULT (__stdcall* PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)( IDXGIAdapter*, + D3D_DRIVER_TYPE, HMODULE, UINT, + const D3D_FEATURE_LEVEL*, + UINT FeatureLevels, UINT, const DXGI_SWAP_CHAIN_DESC*, + IDXGISwapChain**, ID3D11Device**, + D3D_FEATURE_LEVEL*, ID3D11DeviceContext** ); + +HRESULT __stdcall D3D11CreateDeviceAndSwapChain( + IDXGIAdapter* pAdapter, + D3D_DRIVER_TYPE DriverType, + HMODULE Software, + UINT Flags, + const D3D_FEATURE_LEVEL* pFeatureLevels, + UINT FeatureLevels, + UINT SDKVersion, + const DXGI_SWAP_CHAIN_DESC* pSwapChainDesc, + IDXGISwapChain** ppSwapChain, + ID3D11Device** ppDevice, + D3D_FEATURE_LEVEL* pFeatureLevel, + ID3D11DeviceContext** ppImmediateContext ); + + + +extern "C" const GUID IID_ID3D11DeviceChild; +extern "C" const GUID IID_ID3D11DepthStencilState; +extern "C" const GUID IID_ID3D11BlendState; +extern "C" const GUID IID_ID3D11RasterizerState; +extern "C" const GUID IID_ID3D11Resource; +extern "C" const GUID IID_ID3D11Buffer; +extern "C" const GUID IID_ID3D11Texture1D; +extern "C" const GUID IID_ID3D11Texture2D; +extern "C" const GUID IID_ID3D11Texture3D; +extern "C" const GUID IID_ID3D11View; +extern "C" const GUID IID_ID3D11ShaderResourceView; +extern "C" const GUID IID_ID3D11RenderTargetView; +extern "C" const GUID IID_ID3D11DepthStencilView; +extern "C" const GUID IID_ID3D11UnorderedAccessView; +extern "C" const GUID IID_ID3D11VertexShader; +extern "C" const GUID IID_ID3D11HullShader; +extern "C" const GUID IID_ID3D11DomainShader; +extern "C" const GUID IID_ID3D11GeometryShader; +extern "C" const GUID IID_ID3D11PixelShader; +extern "C" const GUID IID_ID3D11ComputeShader; +extern "C" const GUID IID_ID3D11InputLayout; +extern "C" const GUID IID_ID3D11SamplerState; +extern "C" const GUID IID_ID3D11Asynchronous; +extern "C" const GUID IID_ID3D11Query; +extern "C" const GUID IID_ID3D11Predicate; +extern "C" const GUID IID_ID3D11Counter; +extern "C" const GUID IID_ID3D11ClassInstance; +extern "C" const GUID IID_ID3D11ClassLinkage; +extern "C" const GUID IID_ID3D11CommandList; +extern "C" const GUID IID_ID3D11DeviceContext; +extern "C" const GUID IID_ID3D11VideoDecoder; +extern "C" const GUID IID_ID3D11VideoProcessorEnumerator; +extern "C" const GUID IID_ID3D11VideoProcessor; +extern "C" const GUID IID_ID3D11AuthenticatedChannel; +extern "C" const GUID IID_ID3D11CryptoSession; +extern "C" const GUID IID_ID3D11VideoDecoderOutputView; +extern "C" const GUID IID_ID3D11VideoProcessorInputView; +extern "C" const GUID IID_ID3D11VideoProcessorOutputView; +extern "C" const GUID IID_ID3D11VideoContext; +extern "C" const GUID IID_ID3D11VideoDevice; +extern "C" const GUID IID_ID3D11Device; + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0041_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0041_v0_0_s_ifspec; + + + + + + +} +# 10 "../LEngine/Shader.h" 2 + + +class ShaderData { +public: + CComPtr blob; + + D3D12_SHADER_BYTECODE get_bytecode() { + D3D12_SHADER_BYTECODE bytecode = {}; + bytecode.BytecodeLength = blob->GetBufferSize(); + bytecode.pShaderBytecode = blob->GetBufferPointer(); + return bytecode; + } +}; + +typedef std::shared_ptr ShaderDataPtr; + +enum class ShaderType { + Vs, + Ps, + Gs, + Hull, + Domain, + Count +}; + +class Shader { +public: + std::wstring class_name() const { + return L"Shader"; + } + static ShaderPtr Create(); + static ShaderPtr Create(const std::wstring& filePath); + void FromFile(const std::wstring& shaderFilePath); + ShaderDataPtr GetShader(ShaderType type); + CComPtr GetDevice(); +private: + Shader(CComPtr dev); + ShaderDataPtr shaders[(uint32_t)ShaderType::Count]; + CComPtr device; + CComPtr CompileSHader(const std::wstring& filename, const std::string& entry, const std::string& profile); +}; +# 4 "../LEngine/Material.h" 2 + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3dcompiler.h" 1 +# 32 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3dcompiler.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11shader.h" 1 +# 16 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11shader.h" +typedef enum D3D11_SHADER_VERSION_TYPE +{ + D3D11_SHVER_PIXEL_SHADER = 0, + D3D11_SHVER_VERTEX_SHADER = 1, + D3D11_SHVER_GEOMETRY_SHADER = 2, + + + D3D11_SHVER_HULL_SHADER = 3, + D3D11_SHVER_DOMAIN_SHADER = 4, + D3D11_SHVER_COMPUTE_SHADER = 5, + + D3D11_SHVER_RESERVED0 = 0xFFF0, +} D3D11_SHADER_VERSION_TYPE; +# 40 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11shader.h" +typedef D3D_RESOURCE_RETURN_TYPE D3D11_RESOURCE_RETURN_TYPE; + +typedef D3D_CBUFFER_TYPE D3D11_CBUFFER_TYPE; + + +typedef struct _D3D11_SIGNATURE_PARAMETER_DESC +{ + LPCSTR SemanticName; + UINT SemanticIndex; + UINT Register; + D3D_NAME SystemValueType; + D3D_REGISTER_COMPONENT_TYPE ComponentType; + BYTE Mask; + + BYTE ReadWriteMask; + + + + UINT Stream; + D3D_MIN_PRECISION MinPrecision; +} D3D11_SIGNATURE_PARAMETER_DESC; + +typedef struct _D3D11_SHADER_BUFFER_DESC +{ + LPCSTR Name; + D3D_CBUFFER_TYPE Type; + UINT Variables; + UINT Size; + UINT uFlags; +} D3D11_SHADER_BUFFER_DESC; + +typedef struct _D3D11_SHADER_VARIABLE_DESC +{ + LPCSTR Name; + UINT StartOffset; + UINT Size; + UINT uFlags; + LPVOID DefaultValue; + UINT StartTexture; + UINT TextureSize; + UINT StartSampler; + UINT SamplerSize; +} D3D11_SHADER_VARIABLE_DESC; + +typedef struct _D3D11_SHADER_TYPE_DESC +{ + D3D_SHADER_VARIABLE_CLASS Class; + D3D_SHADER_VARIABLE_TYPE Type; + UINT Rows; + UINT Columns; + UINT Elements; + UINT Members; + UINT Offset; + LPCSTR Name; +} D3D11_SHADER_TYPE_DESC; + +typedef D3D_TESSELLATOR_DOMAIN D3D11_TESSELLATOR_DOMAIN; + +typedef D3D_TESSELLATOR_PARTITIONING D3D11_TESSELLATOR_PARTITIONING; + +typedef D3D_TESSELLATOR_OUTPUT_PRIMITIVE D3D11_TESSELLATOR_OUTPUT_PRIMITIVE; + +typedef struct _D3D11_SHADER_DESC +{ + UINT Version; + LPCSTR Creator; + UINT Flags; + + UINT ConstantBuffers; + UINT BoundResources; + UINT InputParameters; + UINT OutputParameters; + + UINT InstructionCount; + UINT TempRegisterCount; + UINT TempArrayCount; + UINT DefCount; + UINT DclCount; + UINT TextureNormalInstructions; + UINT TextureLoadInstructions; + UINT TextureCompInstructions; + UINT TextureBiasInstructions; + UINT TextureGradientInstructions; + UINT FloatInstructionCount; + UINT IntInstructionCount; + UINT UintInstructionCount; + UINT StaticFlowControlCount; + UINT DynamicFlowControlCount; + UINT MacroInstructionCount; + UINT ArrayInstructionCount; + UINT CutInstructionCount; + UINT EmitInstructionCount; + D3D_PRIMITIVE_TOPOLOGY GSOutputTopology; + UINT GSMaxOutputVertexCount; + D3D_PRIMITIVE InputPrimitive; + UINT PatchConstantParameters; + UINT cGSInstanceCount; + UINT cControlPoints; + D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive; + D3D_TESSELLATOR_PARTITIONING HSPartitioning; + D3D_TESSELLATOR_DOMAIN TessellatorDomain; + + UINT cBarrierInstructions; + UINT cInterlockedInstructions; + UINT cTextureStoreInstructions; +} D3D11_SHADER_DESC; + +typedef struct _D3D11_SHADER_INPUT_BIND_DESC +{ + LPCSTR Name; + D3D_SHADER_INPUT_TYPE Type; + UINT BindPoint; + UINT BindCount; + + UINT uFlags; + D3D_RESOURCE_RETURN_TYPE ReturnType; + D3D_SRV_DIMENSION Dimension; + UINT NumSamples; +} D3D11_SHADER_INPUT_BIND_DESC; +# 171 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d11shader.h" +typedef struct _D3D11_LIBRARY_DESC +{ + LPCSTR Creator; + UINT Flags; + UINT FunctionCount; +} D3D11_LIBRARY_DESC; + +typedef struct _D3D11_FUNCTION_DESC +{ + UINT Version; + LPCSTR Creator; + UINT Flags; + + UINT ConstantBuffers; + UINT BoundResources; + + UINT InstructionCount; + UINT TempRegisterCount; + UINT TempArrayCount; + UINT DefCount; + UINT DclCount; + UINT TextureNormalInstructions; + UINT TextureLoadInstructions; + UINT TextureCompInstructions; + UINT TextureBiasInstructions; + UINT TextureGradientInstructions; + UINT FloatInstructionCount; + UINT IntInstructionCount; + UINT UintInstructionCount; + UINT StaticFlowControlCount; + UINT DynamicFlowControlCount; + UINT MacroInstructionCount; + UINT ArrayInstructionCount; + UINT MovInstructionCount; + UINT MovcInstructionCount; + UINT ConversionInstructionCount; + UINT BitwiseInstructionCount; + D3D_FEATURE_LEVEL MinFeatureLevel; + UINT64 RequiredFeatureFlags; + + LPCSTR Name; + INT FunctionParameterCount; + BOOL HasReturn; + BOOL Has10Level9VertexShader; + BOOL Has10Level9PixelShader; +} D3D11_FUNCTION_DESC; + +typedef struct _D3D11_PARAMETER_DESC +{ + LPCSTR Name; + LPCSTR SemanticName; + D3D_SHADER_VARIABLE_TYPE Type; + D3D_SHADER_VARIABLE_CLASS Class; + UINT Rows; + UINT Columns; + D3D_INTERPOLATION_MODE InterpolationMode; + D3D_PARAMETER_FLAGS Flags; + + UINT FirstInRegister; + UINT FirstInComponent; + UINT FirstOutRegister; + UINT FirstOutComponent; +} D3D11_PARAMETER_DESC; + + + + + + +typedef struct ID3D11ShaderReflectionType ID3D11ShaderReflectionType; +typedef struct ID3D11ShaderReflectionType *LPD3D11SHADERREFLECTIONTYPE; + +typedef struct ID3D11ShaderReflectionVariable ID3D11ShaderReflectionVariable; +typedef struct ID3D11ShaderReflectionVariable *LPD3D11SHADERREFLECTIONVARIABLE; + +typedef struct ID3D11ShaderReflectionConstantBuffer ID3D11ShaderReflectionConstantBuffer; +typedef struct ID3D11ShaderReflectionConstantBuffer *LPD3D11SHADERREFLECTIONCONSTANTBUFFER; + +typedef struct ID3D11ShaderReflection ID3D11ShaderReflection; +typedef struct ID3D11ShaderReflection *LPD3D11SHADERREFLECTION; + +typedef struct ID3D11LibraryReflection ID3D11LibraryReflection; +typedef struct ID3D11LibraryReflection *LPD3D11LIBRARYREFLECTION; + +typedef struct ID3D11FunctionReflection ID3D11FunctionReflection; +typedef struct ID3D11FunctionReflection *LPD3D11FUNCTIONREFLECTION; + +typedef struct ID3D11FunctionParameterReflection ID3D11FunctionParameterReflection; +typedef struct ID3D11FunctionParameterReflection *LPD3D11FUNCTIONPARAMETERREFLECTION; + + +struct __declspec(uuid("6E6FFA6A-9BAE-4613-A51E-91652D508C21")) ID3D11ShaderReflectionType; +extern "C" const GUID IID_ID3D11ShaderReflectionType; + + + + + +struct __declspec(novtable) ID3D11ShaderReflectionType +{ + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D11_SHADER_TYPE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D11ShaderReflectionType* __stdcall GetMemberTypeByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D11ShaderReflectionType* __stdcall GetMemberTypeByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) LPCSTR __stdcall GetMemberTypeName( UINT Index) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall IsEqual( ID3D11ShaderReflectionType* pType) = 0; + virtual __declspec(nothrow) ID3D11ShaderReflectionType* __stdcall GetSubType(void) = 0; + virtual __declspec(nothrow) ID3D11ShaderReflectionType* __stdcall GetBaseClass(void) = 0; + virtual __declspec(nothrow) UINT __stdcall GetNumInterfaces(void) = 0; + virtual __declspec(nothrow) ID3D11ShaderReflectionType* __stdcall GetInterfaceByIndex( UINT uIndex) = 0; + virtual __declspec(nothrow) HRESULT __stdcall IsOfType( ID3D11ShaderReflectionType* pType) = 0; + virtual __declspec(nothrow) HRESULT __stdcall ImplementsInterface( ID3D11ShaderReflectionType* pBase) = 0; +}; + + +struct __declspec(uuid("51F23923-F3E5-4BD1-91CB-606177D8DB4C")) ID3D11ShaderReflectionVariable; +extern "C" const GUID IID_ID3D11ShaderReflectionVariable; + + + + + +struct __declspec(novtable) ID3D11ShaderReflectionVariable +{ + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D11_SHADER_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D11ShaderReflectionType* __stdcall GetType(void) = 0; + virtual __declspec(nothrow) ID3D11ShaderReflectionConstantBuffer* __stdcall GetBuffer(void) = 0; + + virtual __declspec(nothrow) UINT __stdcall GetInterfaceSlot( UINT uArrayIndex) = 0; +}; + + +struct __declspec(uuid("EB62D63D-93DD-4318-8AE8-C6F83AD371B8")) ID3D11ShaderReflectionConstantBuffer; +extern "C" const GUID IID_ID3D11ShaderReflectionConstantBuffer; + + + + + +struct __declspec(novtable) ID3D11ShaderReflectionConstantBuffer +{ + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D11_SHADER_BUFFER_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D11ShaderReflectionVariable* __stdcall GetVariableByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D11ShaderReflectionVariable* __stdcall GetVariableByName( LPCSTR Name) = 0; +}; + + + + + + + +struct __declspec(uuid("8d536ca1-0cca-4956-a837-786963755584")) ID3D11ShaderReflection; +extern "C" const GUID IID_ID3D11ShaderReflection; + + + + + +struct __declspec(novtable) ID3D11ShaderReflection : public IUnknown +{ + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & iid, + LPVOID *ppv) = 0; + virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; + virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D11_SHADER_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D11ShaderReflectionConstantBuffer* __stdcall GetConstantBufferByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D11ShaderReflectionConstantBuffer* __stdcall GetConstantBufferByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetResourceBindingDesc( UINT ResourceIndex, + D3D11_SHADER_INPUT_BIND_DESC *pDesc) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetInputParameterDesc( UINT ParameterIndex, + D3D11_SIGNATURE_PARAMETER_DESC *pDesc) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetOutputParameterDesc( UINT ParameterIndex, + D3D11_SIGNATURE_PARAMETER_DESC *pDesc) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetPatchConstantParameterDesc( UINT ParameterIndex, + D3D11_SIGNATURE_PARAMETER_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D11ShaderReflectionVariable* __stdcall GetVariableByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetResourceBindingDescByName( LPCSTR Name, + D3D11_SHADER_INPUT_BIND_DESC *pDesc) = 0; + + virtual __declspec(nothrow) UINT __stdcall GetMovInstructionCount(void) = 0; + virtual __declspec(nothrow) UINT __stdcall GetMovcInstructionCount(void) = 0; + virtual __declspec(nothrow) UINT __stdcall GetConversionInstructionCount(void) = 0; + virtual __declspec(nothrow) UINT __stdcall GetBitwiseInstructionCount(void) = 0; + + virtual __declspec(nothrow) D3D_PRIMITIVE __stdcall GetGSInputPrimitive(void) = 0; + virtual __declspec(nothrow) BOOL __stdcall IsSampleFrequencyShader(void) = 0; + + virtual __declspec(nothrow) UINT __stdcall GetNumInterfaceSlots(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetMinFeatureLevel( enum D3D_FEATURE_LEVEL* pLevel) = 0; + + virtual __declspec(nothrow) UINT __stdcall GetThreadGroupSize( + UINT* pSizeX, + UINT* pSizeY, + UINT* pSizeZ) = 0; + + virtual __declspec(nothrow) UINT64 __stdcall GetRequiresFlags(void) = 0; +}; + + +struct __declspec(uuid("54384F1B-5B3E-4BB7-AE01-60BA3097CBB6")) ID3D11LibraryReflection; +extern "C" const GUID IID_ID3D11LibraryReflection; + + + + + +struct __declspec(novtable) ID3D11LibraryReflection : public IUnknown +{ + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & iid, LPVOID * ppv) = 0; + virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; + virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D11_LIBRARY_DESC * pDesc) = 0; + + virtual __declspec(nothrow) ID3D11FunctionReflection * __stdcall GetFunctionByIndex( INT FunctionIndex) = 0; +}; + + +struct __declspec(uuid("207BCECB-D683-4A06-A8A3-9B149B9F73A4")) ID3D11FunctionReflection; +extern "C" const GUID IID_ID3D11FunctionReflection; + + + + + +struct __declspec(novtable) ID3D11FunctionReflection +{ + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D11_FUNCTION_DESC * pDesc) = 0; + + virtual __declspec(nothrow) ID3D11ShaderReflectionConstantBuffer * __stdcall GetConstantBufferByIndex( UINT BufferIndex) = 0; + virtual __declspec(nothrow) ID3D11ShaderReflectionConstantBuffer * __stdcall GetConstantBufferByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetResourceBindingDesc( UINT ResourceIndex, + D3D11_SHADER_INPUT_BIND_DESC * pDesc) = 0; + + virtual __declspec(nothrow) ID3D11ShaderReflectionVariable * __stdcall GetVariableByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetResourceBindingDescByName( LPCSTR Name, + D3D11_SHADER_INPUT_BIND_DESC * pDesc) = 0; + + + virtual __declspec(nothrow) ID3D11FunctionParameterReflection * __stdcall GetFunctionParameter( INT ParameterIndex) = 0; +}; + + +struct __declspec(uuid("42757488-334F-47FE-982E-1A65D08CC462")) ID3D11FunctionParameterReflection; +extern "C" const GUID IID_ID3D11FunctionParameterReflection; + + + + + +struct __declspec(novtable) ID3D11FunctionParameterReflection +{ + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D11_PARAMETER_DESC * pDesc) = 0; +}; + + +struct __declspec(uuid("CAC701EE-80FC-4122-8242-10B39C8CEC34")) ID3D11Module; +extern "C" const GUID IID_ID3D11Module; + + + + + +struct __declspec(novtable) ID3D11Module : public IUnknown +{ + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & iid, LPVOID * ppv) = 0; + virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; + virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; + + + virtual __declspec(nothrow) HRESULT __stdcall CreateInstance( LPCSTR pNamespace, + struct ID3D11ModuleInstance ** ppModuleInstance) = 0; +}; + + + +struct __declspec(uuid("469E07F7-045A-48D5-AA12-68A478CDF75D")) ID3D11ModuleInstance; +extern "C" const GUID IID_ID3D11ModuleInstance; + + + + + +struct __declspec(novtable) ID3D11ModuleInstance : public IUnknown +{ + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & iid, LPVOID * ppv) = 0; + virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; + virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall BindConstantBuffer( UINT uSrcSlot, UINT uDstSlot, UINT cbDstOffset) = 0; + virtual __declspec(nothrow) HRESULT __stdcall BindConstantBufferByName( LPCSTR pName, UINT uDstSlot, UINT cbDstOffset) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall BindResource( UINT uSrcSlot, UINT uDstSlot, UINT uCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall BindResourceByName( LPCSTR pName, UINT uDstSlot, UINT uCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall BindSampler( UINT uSrcSlot, UINT uDstSlot, UINT uCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall BindSamplerByName( LPCSTR pName, UINT uDstSlot, UINT uCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall BindUnorderedAccessView( UINT uSrcSlot, UINT uDstSlot, UINT uCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall BindUnorderedAccessViewByName( LPCSTR pName, UINT uDstSlot, UINT uCount) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall BindResourceAsUnorderedAccessView( UINT uSrcSrvSlot, UINT uDstUavSlot, UINT uCount) = 0; + virtual __declspec(nothrow) HRESULT __stdcall BindResourceAsUnorderedAccessViewByName( LPCSTR pSrvName, UINT uDstUavSlot, UINT uCount) = 0; +}; + + + +struct __declspec(uuid("59A6CD0E-E10D-4C1F-88C0-63ABA1DAF30E")) ID3D11Linker; +extern "C" const GUID IID_ID3D11Linker; + + + + + +struct __declspec(novtable) ID3D11Linker : public IUnknown +{ + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & iid, LPVOID * ppv) = 0; + virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; + virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; + + + virtual __declspec(nothrow) HRESULT __stdcall Link( struct ID3D11ModuleInstance * pEntry, + LPCSTR pEntryName, + LPCSTR pTargetName, + UINT uFlags, + ID3DBlob ** ppShaderBlob, + ID3DBlob ** ppErrorBuffer) = 0; + + + virtual __declspec(nothrow) HRESULT __stdcall UseLibrary( struct ID3D11ModuleInstance * pLibraryMI) = 0; + + + virtual __declspec(nothrow) HRESULT __stdcall AddClipPlaneFromCBuffer( UINT uCBufferSlot, UINT uCBufferEntry) = 0; +}; + + + +struct __declspec(uuid("D80DD70C-8D2F-4751-94A1-03C79B3556DB")) ID3D11LinkingNode; +extern "C" const GUID IID_ID3D11LinkingNode; + + + + + +struct __declspec(novtable) ID3D11LinkingNode : public IUnknown +{ + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & iid, LPVOID * ppv) = 0; + virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; + virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; +}; + + + +struct __declspec(uuid("54133220-1CE8-43D3-8236-9855C5CEECFF")) ID3D11FunctionLinkingGraph; +extern "C" const GUID IID_ID3D11FunctionLinkingGraph; + + + + + +struct __declspec(novtable) ID3D11FunctionLinkingGraph : public IUnknown +{ + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & iid, LPVOID * ppv) = 0; + virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; + virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; + + + virtual __declspec(nothrow) HRESULT __stdcall CreateModuleInstance( struct ID3D11ModuleInstance ** ppModuleInstance, + ID3DBlob ** ppErrorBuffer) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetInputSignature( const D3D11_PARAMETER_DESC * pInputParameters, + UINT cInputParameters, + struct ID3D11LinkingNode ** ppInputNode) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetOutputSignature( const D3D11_PARAMETER_DESC * pOutputParameters, + UINT cOutputParameters, + struct ID3D11LinkingNode ** ppOutputNode) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall CallFunction( LPCSTR pModuleInstanceNamespace, + struct ID3D11Module * pModuleWithFunctionPrototype, + LPCSTR pFunctionName, + struct ID3D11LinkingNode ** ppCallNode) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall PassValue( struct ID3D11LinkingNode * pSrcNode, + INT SrcParameterIndex, + struct ID3D11LinkingNode * pDstNode, + INT DstParameterIndex) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall PassValueWithSwizzle( struct ID3D11LinkingNode * pSrcNode, + INT SrcParameterIndex, + LPCSTR pSrcSwizzle, + struct ID3D11LinkingNode * pDstNode, + INT DstParameterIndex, + LPCSTR pDstSwizzle) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetLastError( ID3DBlob ** ppErrorBuffer) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GenerateHlsl( UINT uFlags, + ID3DBlob ** ppBuffer) = 0; +}; + + + + + + + +extern "C" { + + + +} +# 32 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3dcompiler.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12shader.h" 1 +# 15 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12shader.h" +typedef enum D3D12_SHADER_VERSION_TYPE +{ + D3D12_SHVER_PIXEL_SHADER = 0, + D3D12_SHVER_VERTEX_SHADER = 1, + D3D12_SHVER_GEOMETRY_SHADER = 2, + + + D3D12_SHVER_HULL_SHADER = 3, + D3D12_SHVER_DOMAIN_SHADER = 4, + D3D12_SHVER_COMPUTE_SHADER = 5, + + D3D12_SHVER_RESERVED0 = 0xFFF0, +} D3D12_SHADER_VERSION_TYPE; +# 39 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12shader.h" +typedef D3D_RESOURCE_RETURN_TYPE D3D12_RESOURCE_RETURN_TYPE; + +typedef D3D_CBUFFER_TYPE D3D12_CBUFFER_TYPE; + + +typedef struct _D3D12_SIGNATURE_PARAMETER_DESC +{ + LPCSTR SemanticName; + UINT SemanticIndex; + UINT Register; + D3D_NAME SystemValueType; + D3D_REGISTER_COMPONENT_TYPE ComponentType; + BYTE Mask; + + BYTE ReadWriteMask; + + + + UINT Stream; + D3D_MIN_PRECISION MinPrecision; +} D3D12_SIGNATURE_PARAMETER_DESC; + +typedef struct _D3D12_SHADER_BUFFER_DESC +{ + LPCSTR Name; + D3D_CBUFFER_TYPE Type; + UINT Variables; + UINT Size; + UINT uFlags; +} D3D12_SHADER_BUFFER_DESC; + +typedef struct _D3D12_SHADER_VARIABLE_DESC +{ + LPCSTR Name; + UINT StartOffset; + UINT Size; + UINT uFlags; + LPVOID DefaultValue; + UINT StartTexture; + UINT TextureSize; + UINT StartSampler; + UINT SamplerSize; +} D3D12_SHADER_VARIABLE_DESC; + +typedef struct _D3D12_SHADER_TYPE_DESC +{ + D3D_SHADER_VARIABLE_CLASS Class; + D3D_SHADER_VARIABLE_TYPE Type; + UINT Rows; + UINT Columns; + UINT Elements; + UINT Members; + UINT Offset; + LPCSTR Name; +} D3D12_SHADER_TYPE_DESC; + +typedef D3D_TESSELLATOR_DOMAIN D3D12_TESSELLATOR_DOMAIN; + +typedef D3D_TESSELLATOR_PARTITIONING D3D12_TESSELLATOR_PARTITIONING; + +typedef D3D_TESSELLATOR_OUTPUT_PRIMITIVE D3D12_TESSELLATOR_OUTPUT_PRIMITIVE; + +typedef struct _D3D12_SHADER_DESC +{ + UINT Version; + LPCSTR Creator; + UINT Flags; + + UINT ConstantBuffers; + UINT BoundResources; + UINT InputParameters; + UINT OutputParameters; + + UINT InstructionCount; + UINT TempRegisterCount; + UINT TempArrayCount; + UINT DefCount; + UINT DclCount; + UINT TextureNormalInstructions; + UINT TextureLoadInstructions; + UINT TextureCompInstructions; + UINT TextureBiasInstructions; + UINT TextureGradientInstructions; + UINT FloatInstructionCount; + UINT IntInstructionCount; + UINT UintInstructionCount; + UINT StaticFlowControlCount; + UINT DynamicFlowControlCount; + UINT MacroInstructionCount; + UINT ArrayInstructionCount; + UINT CutInstructionCount; + UINT EmitInstructionCount; + D3D_PRIMITIVE_TOPOLOGY GSOutputTopology; + UINT GSMaxOutputVertexCount; + D3D_PRIMITIVE InputPrimitive; + UINT PatchConstantParameters; + UINT cGSInstanceCount; + UINT cControlPoints; + D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive; + D3D_TESSELLATOR_PARTITIONING HSPartitioning; + D3D_TESSELLATOR_DOMAIN TessellatorDomain; + + UINT cBarrierInstructions; + UINT cInterlockedInstructions; + UINT cTextureStoreInstructions; +} D3D12_SHADER_DESC; + +typedef struct _D3D12_SHADER_INPUT_BIND_DESC +{ + LPCSTR Name; + D3D_SHADER_INPUT_TYPE Type; + UINT BindPoint; + UINT BindCount; + + UINT uFlags; + D3D_RESOURCE_RETURN_TYPE ReturnType; + D3D_SRV_DIMENSION Dimension; + UINT NumSamples; + UINT Space; + UINT uID; +} D3D12_SHADER_INPUT_BIND_DESC; +# 177 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um/d3d12shader.h" +typedef struct _D3D12_LIBRARY_DESC +{ + LPCSTR Creator; + UINT Flags; + UINT FunctionCount; +} D3D12_LIBRARY_DESC; + +typedef struct _D3D12_FUNCTION_DESC +{ + UINT Version; + LPCSTR Creator; + UINT Flags; + + UINT ConstantBuffers; + UINT BoundResources; + + UINT InstructionCount; + UINT TempRegisterCount; + UINT TempArrayCount; + UINT DefCount; + UINT DclCount; + UINT TextureNormalInstructions; + UINT TextureLoadInstructions; + UINT TextureCompInstructions; + UINT TextureBiasInstructions; + UINT TextureGradientInstructions; + UINT FloatInstructionCount; + UINT IntInstructionCount; + UINT UintInstructionCount; + UINT StaticFlowControlCount; + UINT DynamicFlowControlCount; + UINT MacroInstructionCount; + UINT ArrayInstructionCount; + UINT MovInstructionCount; + UINT MovcInstructionCount; + UINT ConversionInstructionCount; + UINT BitwiseInstructionCount; + D3D_FEATURE_LEVEL MinFeatureLevel; + UINT64 RequiredFeatureFlags; + + LPCSTR Name; + INT FunctionParameterCount; + BOOL HasReturn; + BOOL Has10Level9VertexShader; + BOOL Has10Level9PixelShader; +} D3D12_FUNCTION_DESC; + +typedef struct _D3D12_PARAMETER_DESC +{ + LPCSTR Name; + LPCSTR SemanticName; + D3D_SHADER_VARIABLE_TYPE Type; + D3D_SHADER_VARIABLE_CLASS Class; + UINT Rows; + UINT Columns; + D3D_INTERPOLATION_MODE InterpolationMode; + D3D_PARAMETER_FLAGS Flags; + + UINT FirstInRegister; + UINT FirstInComponent; + UINT FirstOutRegister; + UINT FirstOutComponent; +} D3D12_PARAMETER_DESC; + + + + + + +typedef struct ID3D12ShaderReflectionType ID3D12ShaderReflectionType; +typedef struct ID3D12ShaderReflectionType *LPD3D12SHADERREFLECTIONTYPE; + +typedef struct ID3D12ShaderReflectionVariable ID3D12ShaderReflectionVariable; +typedef struct ID3D12ShaderReflectionVariable *LPD3D12SHADERREFLECTIONVARIABLE; + +typedef struct ID3D12ShaderReflectionConstantBuffer ID3D12ShaderReflectionConstantBuffer; +typedef struct ID3D12ShaderReflectionConstantBuffer *LPD3D12SHADERREFLECTIONCONSTANTBUFFER; + +typedef struct ID3D12ShaderReflection ID3D12ShaderReflection; +typedef struct ID3D12ShaderReflection *LPD3D12SHADERREFLECTION; + +typedef struct ID3D12LibraryReflection ID3D12LibraryReflection; +typedef struct ID3D12LibraryReflection *LPD3D12LIBRARYREFLECTION; + +typedef struct ID3D12FunctionReflection ID3D12FunctionReflection; +typedef struct ID3D12FunctionReflection *LPD3D12FUNCTIONREFLECTION; + +typedef struct ID3D12FunctionParameterReflection ID3D12FunctionParameterReflection; +typedef struct ID3D12FunctionParameterReflection *LPD3D12FUNCTIONPARAMETERREFLECTION; + + + +struct __declspec(uuid("E913C351-783D-48CA-A1D1-4F306284AD56")) ID3D12ShaderReflectionType; +extern "C" const GUID IID_ID3D12ShaderReflectionType; + + + + + +struct __declspec(novtable) ID3D12ShaderReflectionType +{ + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D12_SHADER_TYPE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D12ShaderReflectionType* __stdcall GetMemberTypeByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D12ShaderReflectionType* __stdcall GetMemberTypeByName( LPCSTR Name) = 0; + virtual __declspec(nothrow) LPCSTR __stdcall GetMemberTypeName( UINT Index) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall IsEqual( ID3D12ShaderReflectionType* pType) = 0; + virtual __declspec(nothrow) ID3D12ShaderReflectionType* __stdcall GetSubType(void) = 0; + virtual __declspec(nothrow) ID3D12ShaderReflectionType* __stdcall GetBaseClass(void) = 0; + virtual __declspec(nothrow) UINT __stdcall GetNumInterfaces(void) = 0; + virtual __declspec(nothrow) ID3D12ShaderReflectionType* __stdcall GetInterfaceByIndex( UINT uIndex) = 0; + virtual __declspec(nothrow) HRESULT __stdcall IsOfType( ID3D12ShaderReflectionType* pType) = 0; + virtual __declspec(nothrow) HRESULT __stdcall ImplementsInterface( ID3D12ShaderReflectionType* pBase) = 0; +}; + + +struct __declspec(uuid("8337A8A6-A216-444A-B2F4-314733A73AEA")) ID3D12ShaderReflectionVariable; +extern "C" const GUID IID_ID3D12ShaderReflectionVariable; + + + + + +struct __declspec(novtable) ID3D12ShaderReflectionVariable +{ + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D12_SHADER_VARIABLE_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D12ShaderReflectionType* __stdcall GetType(void) = 0; + virtual __declspec(nothrow) ID3D12ShaderReflectionConstantBuffer* __stdcall GetBuffer(void) = 0; + + virtual __declspec(nothrow) UINT __stdcall GetInterfaceSlot( UINT uArrayIndex) = 0; +}; + + +struct __declspec(uuid("C59598B4-48B3-4869-B9B1-B1618B14A8B7")) ID3D12ShaderReflectionConstantBuffer; +extern "C" const GUID IID_ID3D12ShaderReflectionConstantBuffer; + + + + + +struct __declspec(novtable) ID3D12ShaderReflectionConstantBuffer +{ + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D12_SHADER_BUFFER_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D12ShaderReflectionVariable* __stdcall GetVariableByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D12ShaderReflectionVariable* __stdcall GetVariableByName( LPCSTR Name) = 0; +}; + + + + + + + +struct __declspec(uuid("5A58797D-A72C-478D-8BA2-EFC6B0EFE88E")) ID3D12ShaderReflection; +extern "C" const GUID IID_ID3D12ShaderReflection; + + + + + +struct __declspec(novtable) ID3D12ShaderReflection : public IUnknown +{ + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & iid, + LPVOID *ppv) = 0; + virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; + virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D12_SHADER_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D12ShaderReflectionConstantBuffer* __stdcall GetConstantBufferByIndex( UINT Index) = 0; + virtual __declspec(nothrow) ID3D12ShaderReflectionConstantBuffer* __stdcall GetConstantBufferByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetResourceBindingDesc( UINT ResourceIndex, + D3D12_SHADER_INPUT_BIND_DESC *pDesc) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetInputParameterDesc( UINT ParameterIndex, + D3D12_SIGNATURE_PARAMETER_DESC *pDesc) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetOutputParameterDesc( UINT ParameterIndex, + D3D12_SIGNATURE_PARAMETER_DESC *pDesc) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetPatchConstantParameterDesc( UINT ParameterIndex, + D3D12_SIGNATURE_PARAMETER_DESC *pDesc) = 0; + + virtual __declspec(nothrow) ID3D12ShaderReflectionVariable* __stdcall GetVariableByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetResourceBindingDescByName( LPCSTR Name, + D3D12_SHADER_INPUT_BIND_DESC *pDesc) = 0; + + virtual __declspec(nothrow) UINT __stdcall GetMovInstructionCount(void) = 0; + virtual __declspec(nothrow) UINT __stdcall GetMovcInstructionCount(void) = 0; + virtual __declspec(nothrow) UINT __stdcall GetConversionInstructionCount(void) = 0; + virtual __declspec(nothrow) UINT __stdcall GetBitwiseInstructionCount(void) = 0; + + virtual __declspec(nothrow) D3D_PRIMITIVE __stdcall GetGSInputPrimitive(void) = 0; + virtual __declspec(nothrow) BOOL __stdcall IsSampleFrequencyShader(void) = 0; + + virtual __declspec(nothrow) UINT __stdcall GetNumInterfaceSlots(void) = 0; + virtual __declspec(nothrow) HRESULT __stdcall GetMinFeatureLevel( enum D3D_FEATURE_LEVEL* pLevel) = 0; + + virtual __declspec(nothrow) UINT __stdcall GetThreadGroupSize( + UINT* pSizeX, + UINT* pSizeY, + UINT* pSizeZ) = 0; + + virtual __declspec(nothrow) UINT64 __stdcall GetRequiresFlags(void) = 0; +}; + + +struct __declspec(uuid("8E349D19-54DB-4A56-9DC9-119D87BDB804")) ID3D12LibraryReflection; +extern "C" const GUID IID_ID3D12LibraryReflection; + + + + + +struct __declspec(novtable) ID3D12LibraryReflection : public IUnknown +{ + virtual __declspec(nothrow) HRESULT __stdcall QueryInterface( const IID & iid, LPVOID * ppv) = 0; + virtual __declspec(nothrow) ULONG __stdcall AddRef(void) = 0; + virtual __declspec(nothrow) ULONG __stdcall Release(void) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D12_LIBRARY_DESC * pDesc) = 0; + + virtual __declspec(nothrow) ID3D12FunctionReflection * __stdcall GetFunctionByIndex( INT FunctionIndex) = 0; +}; + + +struct __declspec(uuid("1108795C-2772-4BA9-B2A8-D464DC7E2799")) ID3D12FunctionReflection; +extern "C" const GUID IID_ID3D12FunctionReflection; + + + + + +struct __declspec(novtable) ID3D12FunctionReflection +{ + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D12_FUNCTION_DESC * pDesc) = 0; + + virtual __declspec(nothrow) ID3D12ShaderReflectionConstantBuffer * __stdcall GetConstantBufferByIndex( UINT BufferIndex) = 0; + virtual __declspec(nothrow) ID3D12ShaderReflectionConstantBuffer * __stdcall GetConstantBufferByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetResourceBindingDesc( UINT ResourceIndex, + D3D12_SHADER_INPUT_BIND_DESC * pDesc) = 0; + + virtual __declspec(nothrow) ID3D12ShaderReflectionVariable * __stdcall GetVariableByName( LPCSTR Name) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetResourceBindingDescByName( LPCSTR Name, + D3D12_SHADER_INPUT_BIND_DESC * pDesc) = 0; + + + virtual __declspec(nothrow) ID3D12FunctionParameterReflection * __stdcall GetFunctionParameter( INT ParameterIndex) = 0; +}; + + +struct __declspec(uuid("EC25F42D-7006-4F2B-B33E-02CC3375733F")) ID3D12FunctionParameterReflection; +extern "C" const GUID IID_ID3D12FunctionParameterReflection; + + + + + +struct __declspec(novtable) ID3D12FunctionParameterReflection +{ + virtual __declspec(nothrow) HRESULT __stdcall GetDesc( D3D12_PARAMETER_DESC * pDesc) = 0; +}; + + + + + + + +extern "C" { + + + +} +# 33 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3dcompiler.h" 2 + + + + + + + +extern "C" { +# 54 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3dcompiler.h" +HRESULT __stdcall +D3DReadFileToBlob( LPCWSTR pFileName, + ID3DBlob** ppContents); + + + + + + + +HRESULT __stdcall +D3DWriteBlobToFile( ID3DBlob* pBlob, + LPCWSTR pFileName, + BOOL bOverwrite); +# 201 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3dcompiler.h" +HRESULT __stdcall +D3DCompile( LPCVOID pSrcData, + SIZE_T SrcDataSize, + LPCSTR pSourceName, + const D3D_SHADER_MACRO* pDefines, + ID3DInclude* pInclude, + LPCSTR pEntrypoint, + LPCSTR pTarget, + UINT Flags1, + UINT Flags2, + ID3DBlob** ppCode, + ID3DBlob** ppErrorMsgs); + +typedef HRESULT (__stdcall *pD3DCompile) + (LPCVOID pSrcData, + SIZE_T SrcDataSize, + LPCSTR pFileName, + const D3D_SHADER_MACRO* pDefines, + ID3DInclude* pInclude, + LPCSTR pEntrypoint, + LPCSTR pTarget, + UINT Flags1, + UINT Flags2, + ID3DBlob** ppCode, + ID3DBlob** ppErrorMsgs); + + + + + +HRESULT __stdcall +D3DCompile2( LPCVOID pSrcData, + SIZE_T SrcDataSize, + LPCSTR pSourceName, + const D3D_SHADER_MACRO* pDefines, + ID3DInclude* pInclude, + LPCSTR pEntrypoint, + LPCSTR pTarget, + UINT Flags1, + UINT Flags2, + UINT SecondaryDataFlags, + LPCVOID pSecondaryData, + SIZE_T SecondaryDataSize, + ID3DBlob** ppCode, + ID3DBlob** ppErrorMsgs); + +HRESULT __stdcall +D3DCompileFromFile( LPCWSTR pFileName, + const D3D_SHADER_MACRO* pDefines, + ID3DInclude* pInclude, + LPCSTR pEntrypoint, + LPCSTR pTarget, + UINT Flags1, + UINT Flags2, + ID3DBlob** ppCode, + ID3DBlob** ppErrorMsgs); +# 265 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3dcompiler.h" +HRESULT __stdcall +D3DPreprocess( LPCVOID pSrcData, + SIZE_T SrcDataSize, + LPCSTR pSourceName, + const D3D_SHADER_MACRO* pDefines, + ID3DInclude* pInclude, + ID3DBlob** ppCodeText, + ID3DBlob** ppErrorMsgs); + +typedef HRESULT (__stdcall *pD3DPreprocess) + (LPCVOID pSrcData, + SIZE_T SrcDataSize, + LPCSTR pFileName, + const D3D_SHADER_MACRO* pDefines, + ID3DInclude* pInclude, + ID3DBlob** ppCodeText, + ID3DBlob** ppErrorMsgs); +# 290 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3dcompiler.h" +HRESULT __stdcall +D3DGetDebugInfo( LPCVOID pSrcData, + SIZE_T SrcDataSize, + ID3DBlob** ppDebugInfo); +# 302 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3dcompiler.h" +HRESULT __stdcall +D3DReflect( LPCVOID pSrcData, + SIZE_T SrcDataSize, + const IID & pInterface, + void** ppReflector); +# 315 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3dcompiler.h" +HRESULT __stdcall +D3DReflectLibrary( LPCVOID pSrcData, + SIZE_T SrcDataSize, + const IID & riid, + LPVOID * ppReflector); +# 336 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3dcompiler.h" +HRESULT __stdcall +D3DDisassemble( LPCVOID pSrcData, + SIZE_T SrcDataSize, + UINT Flags, + LPCSTR szComments, + ID3DBlob** ppDisassembly); + +typedef HRESULT (__stdcall *pD3DDisassemble) + ( LPCVOID pSrcData, + SIZE_T SrcDataSize, + UINT Flags, + LPCSTR szComments, + ID3DBlob** ppDisassembly); + +HRESULT __stdcall +D3DDisassembleRegion( LPCVOID pSrcData, + SIZE_T SrcDataSize, + UINT Flags, + LPCSTR szComments, + SIZE_T StartByteOffset, + SIZE_T NumInsts, + SIZE_T* pFinishByteOffset, + ID3DBlob** ppDisassembly); + + + + +HRESULT __stdcall +D3DCreateLinker( struct ID3D11Linker ** ppLinker); + +HRESULT __stdcall +D3DLoadModule( LPCVOID pSrcData, + SIZE_T cbSrcDataSize, + struct ID3D11Module ** ppModule); + +HRESULT __stdcall +D3DCreateFunctionLinkingGraph( UINT uFlags, + struct ID3D11FunctionLinkingGraph ** ppFunctionLinkingGraph); +# 385 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3dcompiler.h" +HRESULT __stdcall +D3DGetTraceInstructionOffsets( LPCVOID pSrcData, + SIZE_T SrcDataSize, + UINT Flags, + SIZE_T StartInstIndex, + SIZE_T NumInsts, + SIZE_T* pOffsets, + SIZE_T* pTotalInsts); + + + + + + + +HRESULT __stdcall +D3DGetInputSignatureBlob( LPCVOID pSrcData, + SIZE_T SrcDataSize, + ID3DBlob** ppSignatureBlob); + + + + + + + +HRESULT __stdcall +D3DGetOutputSignatureBlob( LPCVOID pSrcData, + SIZE_T SrcDataSize, + ID3DBlob** ppSignatureBlob); + + + + + + + +HRESULT __stdcall +D3DGetInputAndOutputSignatureBlob( LPCVOID pSrcData, + SIZE_T SrcDataSize, + ID3DBlob** ppSignatureBlob); + + + + + + + +typedef enum D3DCOMPILER_STRIP_FLAGS +{ + D3DCOMPILER_STRIP_REFLECTION_DATA = 0x00000001, + D3DCOMPILER_STRIP_DEBUG_INFO = 0x00000002, + D3DCOMPILER_STRIP_TEST_BLOBS = 0x00000004, + D3DCOMPILER_STRIP_PRIVATE_DATA = 0x00000008, + D3DCOMPILER_STRIP_ROOT_SIGNATURE = 0x00000010, + D3DCOMPILER_STRIP_FORCE_DWORD = 0x7fffffff, +} D3DCOMPILER_STRIP_FLAGS; + +HRESULT __stdcall +D3DStripShader( LPCVOID pShaderBytecode, + SIZE_T BytecodeLength, + UINT uStripFlags, + ID3DBlob** ppStrippedBlob); + + + + + + + +typedef enum D3D_BLOB_PART +{ + D3D_BLOB_INPUT_SIGNATURE_BLOB, + D3D_BLOB_OUTPUT_SIGNATURE_BLOB, + D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB, + D3D_BLOB_PATCH_CONSTANT_SIGNATURE_BLOB, + D3D_BLOB_ALL_SIGNATURE_BLOB, + D3D_BLOB_DEBUG_INFO, + D3D_BLOB_LEGACY_SHADER, + D3D_BLOB_XNA_PREPASS_SHADER, + D3D_BLOB_XNA_SHADER, + D3D_BLOB_PDB, + D3D_BLOB_PRIVATE_DATA, + D3D_BLOB_ROOT_SIGNATURE, + + + + D3D_BLOB_TEST_ALTERNATE_SHADER = 0x8000, + D3D_BLOB_TEST_COMPILE_DETAILS, + D3D_BLOB_TEST_COMPILE_PERF, + D3D_BLOB_TEST_COMPILE_REPORT, +} D3D_BLOB_PART; + +HRESULT __stdcall +D3DGetBlobPart( LPCVOID pSrcData, + SIZE_T SrcDataSize, + D3D_BLOB_PART Part, + UINT Flags, + ID3DBlob** ppPart); + + + + + + + +HRESULT __stdcall +D3DSetBlobPart( LPCVOID pSrcData, + SIZE_T SrcDataSize, + D3D_BLOB_PART Part, + UINT Flags, + LPCVOID pPart, + SIZE_T PartSize, + ID3DBlob** ppNewShader); + + + + + + + +HRESULT __stdcall +D3DCreateBlob( SIZE_T Size, + ID3DBlob** ppBlob); + + + + + + + +typedef struct _D3D_SHADER_DATA +{ + LPCVOID pBytecode; + SIZE_T BytecodeLength; +} D3D_SHADER_DATA; + + + +HRESULT __stdcall +D3DCompressShaders( UINT uNumShaders, + D3D_SHADER_DATA* pShaderData, + UINT uFlags, + ID3DBlob** ppCompressedData); + + + + + + + +HRESULT __stdcall +D3DDecompressShaders( LPCVOID pSrcData, + SIZE_T SrcDataSize, + UINT uNumShaders, + UINT uStartIndex, + UINT* pIndices, + UINT uFlags, + ID3DBlob** ppShaders, + UINT* pTotalShaders); +# 560 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d3dcompiler.h" +HRESULT __stdcall +D3DDisassemble10Effect( struct ID3D10Effect *pEffect, + UINT Flags, + ID3DBlob** ppDisassembly); + + + + + + +} +# 8 "../LEngine/Material.h" 2 + + +# 1 "../LEngine/ShaderParametersBlock.h" 1 +# 10 "../LEngine/ShaderParametersBlock.h" +# 1 "../LEngine/d3d11_types.h" 1 + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +typedef struct IDXGIDisplayControl IDXGIDisplayControl; + + + + + + +typedef struct IDXGIOutputDuplication IDXGIOutputDuplication; + + + + + + +typedef struct IDXGISurface2 IDXGISurface2; + + + + + + +typedef struct IDXGIResource1 IDXGIResource1; + + + + + + +typedef struct IDXGIDevice2 IDXGIDevice2; + + + + + + +typedef struct IDXGISwapChain1 IDXGISwapChain1; + + + + + + +typedef struct IDXGIFactory2 IDXGIFactory2; + + + + + + +typedef struct IDXGIAdapter2 IDXGIAdapter2; + + + + + + +typedef struct IDXGIOutput1 IDXGIOutput1; +# 109 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +extern "C"{ +# 121 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0000_v0_0_s_ifspec; +# 131 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +extern "C" const IID IID_IDXGIDisplayControl; + + + + struct __declspec(uuid("ea9dbf1a-c88e-4486-854a-98aa0138f30c")) __declspec(novtable) + IDXGIDisplayControl : public IUnknown + { + public: + virtual BOOL __stdcall IsStereoEnabled( void) = 0; + + virtual void __stdcall SetStereoEnabled( + BOOL enabled) = 0; + + }; +# 215 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +typedef struct DXGI_OUTDUPL_MOVE_RECT + { + POINT SourcePoint; + RECT DestinationRect; + } DXGI_OUTDUPL_MOVE_RECT; + +typedef struct DXGI_OUTDUPL_DESC + { + DXGI_MODE_DESC ModeDesc; + DXGI_MODE_ROTATION Rotation; + BOOL DesktopImageInSystemMemory; + } DXGI_OUTDUPL_DESC; + +typedef struct DXGI_OUTDUPL_POINTER_POSITION + { + POINT Position; + BOOL Visible; + } DXGI_OUTDUPL_POINTER_POSITION; + +typedef +enum DXGI_OUTDUPL_POINTER_SHAPE_TYPE + { + DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 0x1, + DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 0x2, + DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 0x4 + } DXGI_OUTDUPL_POINTER_SHAPE_TYPE; + +typedef struct DXGI_OUTDUPL_POINTER_SHAPE_INFO + { + UINT Type; + UINT Width; + UINT Height; + UINT Pitch; + POINT HotSpot; + } DXGI_OUTDUPL_POINTER_SHAPE_INFO; + +typedef struct DXGI_OUTDUPL_FRAME_INFO + { + LARGE_INTEGER LastPresentTime; + LARGE_INTEGER LastMouseUpdateTime; + UINT AccumulatedFrames; + BOOL RectsCoalesced; + BOOL ProtectedContentMaskedOut; + DXGI_OUTDUPL_POINTER_POSITION PointerPosition; + UINT TotalMetadataBufferSize; + UINT PointerShapeBufferSize; + } DXGI_OUTDUPL_FRAME_INFO; + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0001_v0_0_s_ifspec; +# 275 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +extern "C" const IID IID_IDXGIOutputDuplication; + + + + struct __declspec(uuid("191cfac3-a341-470d-b26e-a864f428319c")) __declspec(novtable) + IDXGIOutputDuplication : public IDXGIObject + { + public: + virtual void __stdcall GetDesc( + + DXGI_OUTDUPL_DESC *pDesc) = 0; + + virtual HRESULT __stdcall AcquireNextFrame( + + UINT TimeoutInMilliseconds, + + DXGI_OUTDUPL_FRAME_INFO *pFrameInfo, + + IDXGIResource **ppDesktopResource) = 0; + + virtual HRESULT __stdcall GetFrameDirtyRects( + + UINT DirtyRectsBufferSize, + + RECT *pDirtyRectsBuffer, + + UINT *pDirtyRectsBufferSizeRequired) = 0; + + virtual HRESULT __stdcall GetFrameMoveRects( + + UINT MoveRectsBufferSize, + + DXGI_OUTDUPL_MOVE_RECT *pMoveRectBuffer, + + UINT *pMoveRectsBufferSizeRequired) = 0; + + virtual HRESULT __stdcall GetFramePointerShape( + + UINT PointerShapeBufferSize, + + void *pPointerShapeBuffer, + + UINT *pPointerShapeBufferSizeRequired, + + DXGI_OUTDUPL_POINTER_SHAPE_INFO *pPointerShapeInfo) = 0; + + virtual HRESULT __stdcall MapDesktopSurface( + + DXGI_MAPPED_RECT *pLockedRect) = 0; + + virtual HRESULT __stdcall UnMapDesktopSurface( void) = 0; + + virtual HRESULT __stdcall ReleaseFrame( void) = 0; + + }; +# 513 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +typedef +enum DXGI_ALPHA_MODE + { + DXGI_ALPHA_MODE_UNSPECIFIED = 0, + DXGI_ALPHA_MODE_PREMULTIPLIED = 1, + DXGI_ALPHA_MODE_STRAIGHT = 2, + DXGI_ALPHA_MODE_IGNORE = 3, + DXGI_ALPHA_MODE_FORCE_DWORD = 0xffffffff + } DXGI_ALPHA_MODE; + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0002_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0002_v0_0_s_ifspec; +# 535 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +extern "C" const IID IID_IDXGISurface2; + + + + struct __declspec(uuid("aba496dd-b617-4cb8-a866-bc44d7eb1fa2")) __declspec(novtable) + IDXGISurface2 : public IDXGISurface1 + { + public: + virtual HRESULT __stdcall GetResource( + + const IID & riid, + + void **ppParentResource, + + UINT *pSubresourceIndex) = 0; + + }; +# 722 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +extern "C" const IID IID_IDXGIResource1; + + + + struct __declspec(uuid("30961379-4609-4a41-998e-54fe567ee0c1")) __declspec(novtable) + IDXGIResource1 : public IDXGIResource + { + public: + virtual HRESULT __stdcall CreateSubresourceSurface( + UINT index, + + IDXGISurface2 **ppSurface) = 0; + + virtual HRESULT __stdcall CreateSharedHandle( + + const SECURITY_ATTRIBUTES *pAttributes, + + DWORD dwAccess, + + LPCWSTR lpName, + + HANDLE *pHandle) = 0; + + }; +# 912 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +typedef +enum _DXGI_OFFER_RESOURCE_PRIORITY + { + DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1, + DXGI_OFFER_RESOURCE_PRIORITY_NORMAL = ( DXGI_OFFER_RESOURCE_PRIORITY_LOW + 1 ) , + DXGI_OFFER_RESOURCE_PRIORITY_HIGH = ( DXGI_OFFER_RESOURCE_PRIORITY_NORMAL + 1 ) + } DXGI_OFFER_RESOURCE_PRIORITY; + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0004_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0004_v0_0_s_ifspec; +# 932 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +extern "C" const IID IID_IDXGIDevice2; + + + + struct __declspec(uuid("05008617-fbfd-4051-a790-144884b4f6a9")) __declspec(novtable) + IDXGIDevice2 : public IDXGIDevice1 + { + public: + virtual HRESULT __stdcall OfferResources( + + UINT NumResources, + + IDXGIResource *const *ppResources, + + DXGI_OFFER_RESOURCE_PRIORITY Priority) = 0; + + virtual HRESULT __stdcall ReclaimResources( + + UINT NumResources, + + IDXGIResource *const *ppResources, + + BOOL *pDiscarded) = 0; + + virtual HRESULT __stdcall EnqueueSetEvent( + + HANDLE hEvent) = 0; + + }; +# 1167 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +typedef struct DXGI_MODE_DESC1 + { + UINT Width; + UINT Height; + DXGI_RATIONAL RefreshRate; + DXGI_FORMAT Format; + DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; + DXGI_MODE_SCALING Scaling; + BOOL Stereo; + } DXGI_MODE_DESC1; + +typedef +enum DXGI_SCALING + { + DXGI_SCALING_STRETCH = 0, + DXGI_SCALING_NONE = 1, + DXGI_SCALING_ASPECT_RATIO_STRETCH = 2 + } DXGI_SCALING; + +typedef struct DXGI_SWAP_CHAIN_DESC1 + { + UINT Width; + UINT Height; + DXGI_FORMAT Format; + BOOL Stereo; + DXGI_SAMPLE_DESC SampleDesc; + DXGI_USAGE BufferUsage; + UINT BufferCount; + DXGI_SCALING Scaling; + DXGI_SWAP_EFFECT SwapEffect; + DXGI_ALPHA_MODE AlphaMode; + UINT Flags; + } DXGI_SWAP_CHAIN_DESC1; + +typedef struct DXGI_SWAP_CHAIN_FULLSCREEN_DESC + { + DXGI_RATIONAL RefreshRate; + DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; + DXGI_MODE_SCALING Scaling; + BOOL Windowed; + } DXGI_SWAP_CHAIN_FULLSCREEN_DESC; + +typedef struct DXGI_PRESENT_PARAMETERS + { + UINT DirtyRectsCount; + RECT *pDirtyRects; + RECT *pScrollRect; + POINT *pScrollOffset; + } DXGI_PRESENT_PARAMETERS; + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0005_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0005_v0_0_s_ifspec; +# 1229 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +extern "C" const IID IID_IDXGISwapChain1; + + + + struct __declspec(uuid("790a45f7-0d42-4876-983a-0a55cfe6f4aa")) __declspec(novtable) + IDXGISwapChain1 : public IDXGISwapChain + { + public: + virtual HRESULT __stdcall GetDesc1( + + DXGI_SWAP_CHAIN_DESC1 *pDesc) = 0; + + virtual HRESULT __stdcall GetFullscreenDesc( + + DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc) = 0; + + virtual HRESULT __stdcall GetHwnd( + + HWND *pHwnd) = 0; + + virtual HRESULT __stdcall GetCoreWindow( + + const IID & refiid, + + void **ppUnk) = 0; + + virtual HRESULT __stdcall Present1( + UINT SyncInterval, + UINT PresentFlags, + + const DXGI_PRESENT_PARAMETERS *pPresentParameters) = 0; + + virtual BOOL __stdcall IsTemporaryMonoSupported( void) = 0; + + virtual HRESULT __stdcall GetRestrictToOutput( + + IDXGIOutput **ppRestrictToOutput) = 0; + + virtual HRESULT __stdcall SetBackgroundColor( + + const DXGI_RGBA *pColor) = 0; + + virtual HRESULT __stdcall GetBackgroundColor( + + DXGI_RGBA *pColor) = 0; + + virtual HRESULT __stdcall SetRotation( + + DXGI_MODE_ROTATION Rotation) = 0; + + virtual HRESULT __stdcall GetRotation( + + DXGI_MODE_ROTATION *pRotation) = 0; + + }; +# 1580 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +extern "C" const IID IID_IDXGIFactory2; + + + + struct __declspec(uuid("50c83a1c-e072-4c48-87b0-3630fa36a6d0")) __declspec(novtable) + IDXGIFactory2 : public IDXGIFactory1 + { + public: + virtual BOOL __stdcall IsWindowedStereoEnabled( void) = 0; + + virtual HRESULT __stdcall CreateSwapChainForHwnd( + + IUnknown *pDevice, + + HWND hWnd, + + const DXGI_SWAP_CHAIN_DESC1 *pDesc, + + const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc, + + IDXGIOutput *pRestrictToOutput, + + IDXGISwapChain1 **ppSwapChain) = 0; + + virtual HRESULT __stdcall CreateSwapChainForCoreWindow( + + IUnknown *pDevice, + + IUnknown *pWindow, + + const DXGI_SWAP_CHAIN_DESC1 *pDesc, + + IDXGIOutput *pRestrictToOutput, + + IDXGISwapChain1 **ppSwapChain) = 0; + + virtual HRESULT __stdcall GetSharedResourceAdapterLuid( + + HANDLE hResource, + + LUID *pLuid) = 0; + + virtual HRESULT __stdcall RegisterStereoStatusWindow( + + HWND WindowHandle, + + UINT wMsg, + + DWORD *pdwCookie) = 0; + + virtual HRESULT __stdcall RegisterStereoStatusEvent( + + HANDLE hEvent, + + DWORD *pdwCookie) = 0; + + virtual void __stdcall UnregisterStereoStatus( + + DWORD dwCookie) = 0; + + virtual HRESULT __stdcall RegisterOcclusionStatusWindow( + + HWND WindowHandle, + + UINT wMsg, + + DWORD *pdwCookie) = 0; + + virtual HRESULT __stdcall RegisterOcclusionStatusEvent( + + HANDLE hEvent, + + DWORD *pdwCookie) = 0; + + virtual void __stdcall UnregisterOcclusionStatus( + + DWORD dwCookie) = 0; + + virtual HRESULT __stdcall CreateSwapChainForComposition( + + IUnknown *pDevice, + + const DXGI_SWAP_CHAIN_DESC1 *pDesc, + + IDXGIOutput *pRestrictToOutput, + + IDXGISwapChain1 **ppSwapChain) = 0; + + }; +# 1957 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +typedef +enum DXGI_GRAPHICS_PREEMPTION_GRANULARITY + { + DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, + DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 1, + DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 2, + DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 3, + DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY = 4 + } DXGI_GRAPHICS_PREEMPTION_GRANULARITY; + +typedef +enum DXGI_COMPUTE_PREEMPTION_GRANULARITY + { + DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, + DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 1, + DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 2, + DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 3, + DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY = 4 + } DXGI_COMPUTE_PREEMPTION_GRANULARITY; + +typedef struct DXGI_ADAPTER_DESC2 + { + WCHAR Description[ 128 ]; + UINT VendorId; + UINT DeviceId; + UINT SubSysId; + UINT Revision; + SIZE_T DedicatedVideoMemory; + SIZE_T DedicatedSystemMemory; + SIZE_T SharedSystemMemory; + LUID AdapterLuid; + UINT Flags; + DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity; + DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity; + } DXGI_ADAPTER_DESC2; + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0007_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0007_v0_0_s_ifspec; +# 2005 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +extern "C" const IID IID_IDXGIAdapter2; + + + + struct __declspec(uuid("0AA1AE0A-FA0E-4B84-8644-E05FF8E5ACB5")) __declspec(novtable) + IDXGIAdapter2 : public IDXGIAdapter1 + { + public: + virtual HRESULT __stdcall GetDesc2( + + DXGI_ADAPTER_DESC2 *pDesc) = 0; + + }; +# 2168 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +extern "C" const IID IID_IDXGIOutput1; + + + + struct __declspec(uuid("00cddea8-939b-4b83-a340-a685226666cc")) __declspec(novtable) + IDXGIOutput1 : public IDXGIOutput + { + public: + virtual HRESULT __stdcall GetDisplayModeList1( + DXGI_FORMAT EnumFormat, + UINT Flags, + + UINT *pNumModes, + + DXGI_MODE_DESC1 *pDesc) = 0; + + virtual HRESULT __stdcall FindClosestMatchingMode1( + + const DXGI_MODE_DESC1 *pModeToMatch, + + DXGI_MODE_DESC1 *pClosestMatch, + + IUnknown *pConcernedDevice) = 0; + + virtual HRESULT __stdcall GetDisplaySurfaceData1( + + IDXGIResource *pDestination) = 0; + + virtual HRESULT __stdcall DuplicateOutput( + + IUnknown *pDevice, + + IDXGIOutputDuplication **ppOutputDuplication) = 0; + + }; +# 2450 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_2.h" +extern "C" const GUID IID_IDXGIDisplayControl; +extern "C" const GUID IID_IDXGIOutputDuplication; +extern "C" const GUID IID_IDXGISurface2; +extern "C" const GUID IID_IDXGIResource1; +extern "C" const GUID IID_IDXGIDevice2; +extern "C" const GUID IID_IDXGISwapChain1; +extern "C" const GUID IID_IDXGIFactory2; +extern "C" const GUID IID_IDXGIAdapter2; +extern "C" const GUID IID_IDXGIOutput1; + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0009_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0009_v0_0_s_ifspec; + + + + + + +} +# 6 "../LEngine/d3d11_types.h" 2 + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_4.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_4.h" +typedef struct IDXGISwapChain3 IDXGISwapChain3; + + + + + + +typedef struct IDXGIOutput4 IDXGIOutput4; + + + + + + +typedef struct IDXGIFactory4 IDXGIFactory4; + + + + + + +typedef struct IDXGIAdapter3 IDXGIAdapter3; + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" +typedef struct IDXGIDevice3 IDXGIDevice3; + + + + + + +typedef struct IDXGISwapChain2 IDXGISwapChain2; + + + + + + +typedef struct IDXGIOutput2 IDXGIOutput2; + + + + + + +typedef struct IDXGIFactory3 IDXGIFactory3; + + + + + + +typedef struct IDXGIDecodeSwapChain IDXGIDecodeSwapChain; + + + + + + +typedef struct IDXGIFactoryMedia IDXGIFactoryMedia; + + + + + + +typedef struct IDXGISwapChainMedia IDXGISwapChainMedia; + + + + + + +typedef struct IDXGIOutput3 IDXGIOutput3; +# 102 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" +extern "C"{ +# 113 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" +HRESULT __stdcall CreateDXGIFactory2(UINT Flags, const IID & riid, void **ppFactory); +HRESULT __stdcall DXGIGetDebugInterface1(UINT Flags, const IID & riid, void **pDebug); + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0000_v0_0_s_ifspec; +# 127 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" +extern "C" const IID IID_IDXGIDevice3; + + + + struct __declspec(uuid("6007896c-3244-4afd-bf18-a6d3beda5023")) __declspec(novtable) + IDXGIDevice3 : public IDXGIDevice2 + { + public: + virtual void __stdcall Trim( void) = 0; + + }; +# 343 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" +typedef struct DXGI_MATRIX_3X2_F + { + FLOAT _11; + FLOAT _12; + FLOAT _21; + FLOAT _22; + FLOAT _31; + FLOAT _32; + } DXGI_MATRIX_3X2_F; + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0001_v0_0_s_ifspec; +# 365 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" +extern "C" const IID IID_IDXGISwapChain2; + + + + struct __declspec(uuid("a8be2ac4-199f-4946-b331-79599fb98de7")) __declspec(novtable) + IDXGISwapChain2 : public IDXGISwapChain1 + { + public: + virtual HRESULT __stdcall SetSourceSize( + UINT Width, + UINT Height) = 0; + + virtual HRESULT __stdcall GetSourceSize( + + UINT *pWidth, + + UINT *pHeight) = 0; + + virtual HRESULT __stdcall SetMaximumFrameLatency( + UINT MaxLatency) = 0; + + virtual HRESULT __stdcall GetMaximumFrameLatency( + + UINT *pMaxLatency) = 0; + + virtual HANDLE __stdcall GetFrameLatencyWaitableObject( void) = 0; + + virtual HRESULT __stdcall SetMatrixTransform( + const DXGI_MATRIX_3X2_F *pMatrix) = 0; + + virtual HRESULT __stdcall GetMatrixTransform( + + DXGI_MATRIX_3X2_F *pMatrix) = 0; + + }; +# 751 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" +extern "C" const IID IID_IDXGIOutput2; + + + + struct __declspec(uuid("595e39d1-2724-4663-99b1-da969de28364")) __declspec(novtable) + IDXGIOutput2 : public IDXGIOutput1 + { + public: + virtual BOOL __stdcall SupportsOverlays( void) = 0; + + }; +# 1018 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" +extern "C" const IID IID_IDXGIFactory3; + + + + struct __declspec(uuid("25483823-cd46-4c7d-86ca-47aa95b837bd")) __declspec(novtable) + IDXGIFactory3 : public IDXGIFactory2 + { + public: + virtual UINT __stdcall GetCreationFlags( void) = 0; + + }; +# 1328 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" +typedef struct DXGI_DECODE_SWAP_CHAIN_DESC + { + UINT Flags; + } DXGI_DECODE_SWAP_CHAIN_DESC; + +typedef +enum DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS + { + DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE = 0x1, + DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709 = 0x2, + DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC = 0x4 + } DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS; + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0004_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0004_v0_0_s_ifspec; +# 1353 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" +extern "C" const IID IID_IDXGIDecodeSwapChain; + + + + struct __declspec(uuid("2633066b-4514-4c7a-8fd8-12ea98059d18")) __declspec(novtable) + IDXGIDecodeSwapChain : public IUnknown + { + public: + virtual HRESULT __stdcall PresentBuffer( + UINT BufferToPresent, + UINT SyncInterval, + UINT Flags) = 0; + + virtual HRESULT __stdcall SetSourceRect( + const RECT *pRect) = 0; + + virtual HRESULT __stdcall SetTargetRect( + const RECT *pRect) = 0; + + virtual HRESULT __stdcall SetDestSize( + UINT Width, + UINT Height) = 0; + + virtual HRESULT __stdcall GetSourceRect( + + RECT *pRect) = 0; + + virtual HRESULT __stdcall GetTargetRect( + + RECT *pRect) = 0; + + virtual HRESULT __stdcall GetDestSize( + + UINT *pWidth, + + UINT *pHeight) = 0; + + virtual HRESULT __stdcall SetColorSpace( + DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS ColorSpace) = 0; + + virtual DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS __stdcall GetColorSpace( void) = 0; + + }; +# 1527 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" +extern "C" const IID IID_IDXGIFactoryMedia; + + + + struct __declspec(uuid("41e7d1f2-a591-4f7b-a2e5-fa9c843e1c12")) __declspec(novtable) + IDXGIFactoryMedia : public IUnknown + { + public: + virtual HRESULT __stdcall CreateSwapChainForCompositionSurfaceHandle( + + IUnknown *pDevice, + + HANDLE hSurface, + + const DXGI_SWAP_CHAIN_DESC1 *pDesc, + + IDXGIOutput *pRestrictToOutput, + + IDXGISwapChain1 **ppSwapChain) = 0; + + virtual HRESULT __stdcall CreateDecodeSwapChainForCompositionSurfaceHandle( + + IUnknown *pDevice, + + HANDLE hSurface, + + DXGI_DECODE_SWAP_CHAIN_DESC *pDesc, + + IDXGIResource *pYuvDecodeBuffers, + + IDXGIOutput *pRestrictToOutput, + + IDXGIDecodeSwapChain **ppSwapChain) = 0; + + }; +# 1653 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" +typedef +enum DXGI_FRAME_PRESENTATION_MODE + { + DXGI_FRAME_PRESENTATION_MODE_COMPOSED = 0, + DXGI_FRAME_PRESENTATION_MODE_OVERLAY = 1, + DXGI_FRAME_PRESENTATION_MODE_NONE = 2, + DXGI_FRAME_PRESENTATION_MODE_COMPOSITION_FAILURE = 3 + } DXGI_FRAME_PRESENTATION_MODE; + +typedef struct DXGI_FRAME_STATISTICS_MEDIA + { + UINT PresentCount; + UINT PresentRefreshCount; + UINT SyncRefreshCount; + LARGE_INTEGER SyncQPCTime; + LARGE_INTEGER SyncGPUTime; + DXGI_FRAME_PRESENTATION_MODE CompositionMode; + UINT ApprovedPresentDuration; + } DXGI_FRAME_STATISTICS_MEDIA; + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0006_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0006_v0_0_s_ifspec; +# 1685 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" +extern "C" const IID IID_IDXGISwapChainMedia; + + + + struct __declspec(uuid("dd95b90b-f05f-4f6a-bd65-25bfb264bd84")) __declspec(novtable) + IDXGISwapChainMedia : public IUnknown + { + public: + virtual HRESULT __stdcall GetFrameStatisticsMedia( + + DXGI_FRAME_STATISTICS_MEDIA *pStats) = 0; + + virtual HRESULT __stdcall SetPresentDuration( + UINT Duration) = 0; + + virtual HRESULT __stdcall CheckPresentDurationSupport( + UINT DesiredPresentDuration, + + UINT *pClosestSmallerPresentDuration, + + UINT *pClosestLargerPresentDuration) = 0; + + }; +# 1791 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" +typedef +enum DXGI_OVERLAY_SUPPORT_FLAG + { + DXGI_OVERLAY_SUPPORT_FLAG_DIRECT = 0x1, + DXGI_OVERLAY_SUPPORT_FLAG_SCALING = 0x2 + } DXGI_OVERLAY_SUPPORT_FLAG; + + + + + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0007_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0007_v0_0_s_ifspec; +# 1814 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" +extern "C" const IID IID_IDXGIOutput3; + + + + struct __declspec(uuid("8a6bb301-7e7e-41F4-a8e0-5b32f7f99b18")) __declspec(novtable) + IDXGIOutput3 : public IDXGIOutput2 + { + public: + virtual HRESULT __stdcall CheckOverlaySupport( + + DXGI_FORMAT EnumFormat, + + IUnknown *pConcernedDevice, + + UINT *pFlags) = 0; + + }; +# 2098 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared/dxgi1_3.h" +extern "C" const GUID IID_IDXGIDevice3; +extern "C" const GUID IID_IDXGISwapChain2; +extern "C" const GUID IID_IDXGIOutput2; +extern "C" const GUID IID_IDXGIFactory3; +extern "C" const GUID IID_IDXGIDecodeSwapChain; +extern "C" const GUID IID_IDXGIFactoryMedia; +extern "C" const GUID IID_IDXGISwapChainMedia; +extern "C" const GUID IID_IDXGIOutput3; + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0008_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0008_v0_0_s_ifspec; + + + + + + +} +# 71 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_4.h" 2 + + + +extern "C"{ +# 84 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_4.h" +typedef +enum DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG + { + DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1, + DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT = 0x2 + } DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG; + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0000_v0_0_s_ifspec; +# 103 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_4.h" +extern "C" const IID IID_IDXGISwapChain3; + + + + struct __declspec(uuid("94d99bdb-f1f8-4ab0-b236-7da0170edab1")) __declspec(novtable) + IDXGISwapChain3 : public IDXGISwapChain2 + { + public: + virtual UINT __stdcall GetCurrentBackBufferIndex( void) = 0; + + virtual HRESULT __stdcall CheckColorSpaceSupport( + + DXGI_COLOR_SPACE_TYPE ColorSpace, + + UINT *pColorSpaceSupport) = 0; + + virtual HRESULT __stdcall SetColorSpace1( + + DXGI_COLOR_SPACE_TYPE ColorSpace) = 0; + + virtual HRESULT __stdcall ResizeBuffers1( + + UINT BufferCount, + + UINT Width, + + UINT Height, + + DXGI_FORMAT Format, + + UINT SwapChainFlags, + + const UINT *pCreationNodeMask, + + IUnknown *const *ppPresentQueue) = 0; + + }; +# 532 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_4.h" +typedef +enum DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG + { + DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1 + } DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG; + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0001_v0_0_s_ifspec; +# 550 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_4.h" +extern "C" const IID IID_IDXGIOutput4; + + + + struct __declspec(uuid("dc7dca35-2196-414d-9F53-617884032a60")) __declspec(novtable) + IDXGIOutput4 : public IDXGIOutput3 + { + public: + virtual HRESULT __stdcall CheckOverlayColorSpaceSupport( + + DXGI_FORMAT Format, + + DXGI_COLOR_SPACE_TYPE ColorSpace, + + IUnknown *pConcernedDevice, + + UINT *pFlags) = 0; + + }; +# 853 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_4.h" +extern "C" const IID IID_IDXGIFactory4; + + + + struct __declspec(uuid("1bc6ea02-ef36-464f-bf0c-21ca39e5168a")) __declspec(novtable) + IDXGIFactory4 : public IDXGIFactory3 + { + public: + virtual HRESULT __stdcall EnumAdapterByLuid( + + LUID AdapterLuid, + + const IID & riid, + + void **ppvAdapter) = 0; + + virtual HRESULT __stdcall EnumWarpAdapter( + + const IID & riid, + + void **ppvAdapter) = 0; + + }; +# 1194 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_4.h" +typedef +enum DXGI_MEMORY_SEGMENT_GROUP + { + DXGI_MEMORY_SEGMENT_GROUP_LOCAL = 0, + DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL = 1 + } DXGI_MEMORY_SEGMENT_GROUP; + +typedef struct DXGI_QUERY_VIDEO_MEMORY_INFO + { + UINT64 Budget; + UINT64 CurrentUsage; + UINT64 AvailableForReservation; + UINT64 CurrentReservation; + } DXGI_QUERY_VIDEO_MEMORY_INFO; + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0003_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0003_v0_0_s_ifspec; +# 1221 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_4.h" +extern "C" const IID IID_IDXGIAdapter3; + + + + struct __declspec(uuid("645967A4-1392-4310-A798-8053CE3E93FD")) __declspec(novtable) + IDXGIAdapter3 : public IDXGIAdapter2 + { + public: + virtual HRESULT __stdcall RegisterHardwareContentProtectionTeardownStatusEvent( + + HANDLE hEvent, + + DWORD *pdwCookie) = 0; + + virtual void __stdcall UnregisterHardwareContentProtectionTeardownStatus( + + DWORD dwCookie) = 0; + + virtual HRESULT __stdcall QueryVideoMemoryInfo( + + UINT NodeIndex, + + DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, + + DXGI_QUERY_VIDEO_MEMORY_INFO *pVideoMemoryInfo) = 0; + + virtual HRESULT __stdcall SetVideoMemoryReservation( + + UINT NodeIndex, + + DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, + + UINT64 Reservation) = 0; + + virtual HRESULT __stdcall RegisterVideoMemoryBudgetChangeNotificationEvent( + + HANDLE hEvent, + + DWORD *pdwCookie) = 0; + + virtual void __stdcall UnregisterVideoMemoryBudgetChangeNotification( + + DWORD dwCookie) = 0; + + }; +# 1475 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_4.h" +extern "C" const GUID IID_IDXGISwapChain3; +extern "C" const GUID IID_IDXGIOutput4; +extern "C" const GUID IID_IDXGIFactory4; +extern "C" const GUID IID_IDXGIAdapter3; + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0004_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0004_v0_0_s_ifspec; + + + + + + +} +# 8 "../LEngine/d3d11_types.h" 2 + + +typedef CComPtr ID3D11BufferPtr; +typedef CComPtr ID3D11DevicePtr; +typedef CComPtr ID3D11InputLayoutPtr; +typedef CComPtr ID3D11DepthStencilStatePtr; + +typedef CComPtr ID3D11DeviceContextPtr; + +typedef CComPtr ID3D11ShaderResourceViewPtr; + +typedef CComPtr IDXGIOutputPtr; +typedef CComPtr ID3D11Texture2DPtr; +typedef CComPtr ID3D11ResourcePtr; +typedef CComPtr ID3D12ResourcePtr; + +typedef CComPtr ID3D11RenderTargetViewPtr; +typedef CComPtr IDXGISwapChain1Ptr; +typedef CComPtr IDXGISwapChainPtr; +typedef CComPtr ID3D11DepthStencilViewPtr; + +typedef CComPtr IDXGIOutput1Ptr; + + +typedef CComPtr IDXGIDevice1Ptr; +typedef CComPtr IDXGIAdapterPtr; +typedef CComPtr IDXGIAdapter1Ptr; +typedef CComPtr IDXGIFactory2Ptr; +typedef CComPtr IDXGIFactory4Ptr; + + +typedef CComPtr ID3D12DevicePtr; +# 10 "../LEngine/ShaderParametersBlock.h" 2 + + +class ShaderBufferVariable { +public: + std::string name; + uint32_t offset; + uint32_t size; + + ShaderBufferVariable() { + + } + + ShaderBufferVariable(const std::string& _name, uint32_t _offset, uint32_t _size) + :name(_name), size(_size), offset(_offset) + { + + } +}; + +class ShaderResourceVariable { +public: + std::string name; + uint32_t bindPoint; + D3D_SHADER_INPUT_TYPE type; +}; + +class ShaderBufferContext { +public: + ID3D12ResourcePtr buffer; + size_t size; + std::vector variables; + std::string name; + uint32_t bindPoint; + D3D_SHADER_INPUT_TYPE type; +}; + +class ShaderParametersContext { +public: + void Clear() { + buffers.clear(); + resources.clear(); + } + std::vector buffers; + std::vector resources; +}; + +class ShaderParameter { +public: + virtual ~ShaderParameter() + { + } + + ShaderParameter(const std::string& _name) :name(_name) { + + } + virtual void* GetPointer() = 0; + std::string name; +}; + +typedef std::shared_ptr ShaderParameterPtr; + +template +class ShaderValueParameter : public ShaderParameter { +public: + ShaderValueParameter(const std::string& _name) :ShaderParameter(_name) + { + + } + void* GetPointer() override { + return &value; + } + T value; +}; + +class ShaderResourceParameter : public ShaderParameter { +public: + ShaderResourceParameter(const std::string& _name) :ShaderParameter(_name) { + + } + ShaderResourceParameter(const std::string& _name, ID3D11ShaderResourceViewPtr view) : value(view), ShaderParameter(_name) { + name = _name; + } + ID3D11ShaderResourceViewPtr value; + void* GetPointer() override { + return value; + } +}; + +class ShaderTextureParameter : public ShaderParameter { +public: + ShaderTextureParameter(const std::string& _name) :ShaderParameter(_name) { + + } + ShaderTextureParameter(const std::string& _name, TexturePtr view) : ShaderParameter(_name), value(view){ + name = _name; + } + TexturePtr value; + void* GetPointer() override { + return nullptr; + } +}; + +typedef std::shared_ptr ShaderResourceParameterPtr; +typedef std::shared_ptr ShaderTextureParameterPtr; + +class ShaderParametersBlock { +public: + void SetTexture(const std::string& name, TexturePtr texture) { + + + + + + + + ShaderTextureParameterPtr parameter(new ShaderTextureParameter(name, texture)); + for (auto it = parameters.begin(); it != parameters.end(); ++it) { + if ((*it)->name == name) { + *it = parameter; + return; + } + } + parameters.push_back(parameter); + + } + + template + void SetValue(const std::string& name, const T& value) { + std::shared_ptr> param(new ShaderValueParameter(name)); + param->value = value; + for (auto it = parameters.begin(); it != parameters.end(); ++it) { + if ((*it)->name == name) { + *it = param; + return; + } + } + parameters.push_back(param); + } + + ShaderParameterPtr GetParameterByName(const std::string& name) { + for (auto p : parameters) { + if (p->name == name) { + return p; + } + } + return nullptr; + } +private: + std::vector parameters; +}; +# 10 "../LEngine/Material.h" 2 + +# 1 "../LEngine/Object.h" 1 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\fstream" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +namespace std { +#pragma warning(disable: 4127) + +extern FILE *__cdecl _Fiopen( + const char *, + ios_base::openmode, int); +extern FILE *__cdecl _Fiopen( + const wchar_t *, + ios_base::openmode, int); + + +extern FILE *__cdecl _Fiopen( + const unsigned short *, + ios_base::openmode, int); + + + +template inline + bool _Fgetc(_Elem& _Ch, FILE *_File) + { + return (fread(&_Ch, sizeof (_Elem), 1, _File) == 1); + } + +template<> inline bool _Fgetc(char& _Byte, FILE *_File) + { + int _Meta; + if ((_Meta = fgetc(_File)) == (-1)) + return (false); + else + { + _Byte = (char)_Meta; + return (true); + } + } + +template<> inline bool _Fgetc(wchar_t& _Wchar, FILE *_File) + { + wint_t _Meta; + if ((_Meta = :: fgetwc(_File)) == ((wint_t)(0xFFFF))) + return (false); + else + { + _Wchar = (wchar_t)_Meta; + return (true); + } + } + + +template<> inline bool _Fgetc(unsigned short& _Wchar, FILE *_File) + { + wint_t _Meta; + if ((_Meta = :: fgetwc(_File)) == ((wint_t)(0xFFFF))) + return (false); + else + { + _Wchar = (unsigned short)_Meta; + return (true); + } + } + + + +template inline + bool _Fputc(_Elem _Ch, FILE *_File) + { + return (fwrite(&_Ch, 1, sizeof (_Elem), _File) == sizeof (_Elem)); + } + +template<> inline bool _Fputc(char _Byte, FILE *_File) + { + return (fputc(_Byte, _File) != (-1)); + } + +template<> inline bool _Fputc(wchar_t _Wchar, FILE *_File) + { + return (:: fputwc(_Wchar, _File) != ((wint_t)(0xFFFF))); + } + + +template<> inline bool _Fputc(unsigned short _Wchar, FILE *_File) + { + return (:: fputwc(_Wchar, _File) != ((wint_t)(0xFFFF))); + } + + + +template inline + bool _Ungetc(const _Elem& _Ch, FILE *_File) + { + return (false); + } + +template<> inline bool _Ungetc(const char& _Byte, FILE *_File) + { + return (ungetc((unsigned char)_Byte, _File) != (-1)); + } + +template<> inline bool _Ungetc(const signed char& _Byte, FILE *_File) + { + return (ungetc((unsigned char)_Byte, _File) != (-1)); + } + +template<> inline bool _Ungetc(const unsigned char& _Byte, FILE *_File) + { + return (ungetc(_Byte, _File) != (-1)); + } + +template<> inline bool _Ungetc(const wchar_t& _Wchar, FILE *_File) + { + return (:: ungetwc(_Wchar, _File) != ((wint_t)(0xFFFF))); + } + + +template<> inline bool _Ungetc(const unsigned short& _Wchar, FILE *_File) + { + return (:: ungetwc(_Wchar, _File) != ((wint_t)(0xFFFF))); + } + + + +template + class basic_filebuf + : public basic_streambuf<_Elem, _Traits> + { +public: + typedef basic_filebuf<_Elem, _Traits> _Myt; + typedef basic_streambuf<_Elem, _Traits> _Mysb; + typedef typename _Traits::state_type _Myst; + typedef codecvt<_Elem, char, typename _Traits::state_type> _Cvt; + + basic_filebuf(FILE *_File = 0) + : _Mysb() + { + _Init(_File, _Newfl); + } + + virtual ~basic_filebuf() noexcept + { + if (_Myfile != 0) + _Reset_back(); + if (_Closef) + close(); + } + + typedef typename _Traits::int_type int_type; + typedef typename _Traits::pos_type pos_type; + typedef typename _Traits::off_type off_type; + + basic_filebuf(_Uninitialized) + : _Mysb(_Noinit) + { + } + + basic_filebuf(_Myt&& _Right) + { + _Init(_Right._Myfile, _Newfl); + _Init((FILE *)0, _Closefl); + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + + _Myt& operator=(_Myt&& _Right) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + return (*this); + } + + void _Assign_rv(_Myt&& _Right) + { + if (this != &_Right) + { + close(); + this->swap(_Right); + } + } + + void swap(_Myt& _Right) + { + if (this != &_Right) + { + + FILE *_Myfile_sav = _Myfile; + const _Cvt *_Pcvt_sav = _Pcvt; + typename _Traits::state_type _State_sav = _State; + bool _Wrotesome_sav = _Wrotesome; + bool _Closef_sav = _Closef; + bool _Set_eback_sav = _Mysb::eback() == &_Mychar; + bool _Set_eback_live = _Mysb::gptr() == &_Mychar; + + _Elem *_Pfirst0 = _Mysb::pbase(); + _Elem *_Pnext0 = _Mysb::pptr(); + _Elem *_Pend = _Mysb::epptr(); + _Elem *_Gfirst0 = _Mysb::eback(); + _Elem *_Gnext0 = _Mysb::gptr(); + _Elem *_Gend = _Mysb::egptr(); + + + _Init(_Right._Myfile, _Right._Myfile != 0 ? _Openfl : _Newfl); + _Mysb::setp(_Right.pbase(), _Right.pptr(), _Right.epptr()); + if (_Right.eback() != &_Right._Mychar) + _Mysb::setg(_Right.eback(), _Right.gptr(), _Right.egptr()); + else if (_Right.gptr() != &_Right._Mychar) + _Mysb::setg(&_Mychar, &_Mychar + 1, &_Mychar + 1); + else + _Mysb::setg(&_Mychar, &_Mychar, &_Mychar + 1); + + _Pcvt = _Right._Pcvt; + _State = _Right._State; + _Wrotesome = _Right._Wrotesome; + _Closef = _Right._Closef; + + + _Right._Init(_Myfile_sav, _Myfile_sav != 0 ? _Openfl : _Newfl); + _Right.setp(_Pfirst0, _Pnext0, _Pend); + if (!_Set_eback_sav) + _Right.setg(_Gfirst0, _Gnext0, _Gend); + else if (!_Set_eback_live) + _Right.setg(&_Right._Mychar, &_Right._Mychar + 1, + &_Right._Mychar + 1); + else + _Right.setg(&_Right._Mychar, &_Right._Mychar, + &_Right._Mychar + 1); + + _Right._Pcvt = _Pcvt_sav; + _Right._State = _State_sav; + _Right._Wrotesome = _Wrotesome_sav; + _Right._Closef = _Closef_sav; + + + ::std:: swap(_Set_eback, _Right._Set_eback); + ::std:: swap(_Set_egptr, _Right._Set_egptr); + + ::std:: swap(_Mychar, _Right._Mychar); + ::std:: swap(_Mysb::_Plocale, _Right._Plocale); + } + } + + basic_filebuf(const _Myt&) = delete; + _Myt& operator=(const _Myt&) = delete; + + enum _Initfl + { + _Newfl, _Openfl, _Closefl}; + + bool is_open() const + { + return (_Myfile != 0); + } + + _Myt *open(const char *_Filename, + ios_base::openmode _Mode, + int _Prot = (int)ios_base::_Openprot) + { + FILE *_File; + if (_Myfile != 0 || (_File = _Fiopen(_Filename, _Mode, _Prot)) == 0) + return (0); + + _Init(_File, _Openfl); + _Initcvt(&use_facet< _Cvt >(_Mysb::getloc())); + return (this); + } + + _Myt *open(const string& _Str, + ios_base::openmode _Mode, + int _Prot = (int)ios_base::_Openprot) + { + return (open(_Str.c_str(), _Mode, _Prot)); + } + + + _Myt *open(const char *_Filename, ios_base::open_mode _Mode) + { + return (open(_Filename, (ios_base::openmode)_Mode)); + } + + + _Myt *open(const wchar_t *_Filename, + ios_base::openmode _Mode, + int _Prot = (int)ios_base::_Openprot) + { + FILE *_File; + if (_Myfile != 0 || (_File = _Fiopen(_Filename, _Mode, _Prot)) == 0) + return (0); + + _Init(_File, _Openfl); + _Initcvt(&use_facet< _Cvt >(_Mysb::getloc())); + return (this); + } + + _Myt *open(const wstring& _Str, + ios_base::openmode _Mode, + int _Prot = (int)ios_base::_Openprot) + { + return (open(_Str.c_str(), _Mode, _Prot)); + } + + + _Myt *open(const wchar_t *_Filename, + ios_base::open_mode _Mode) + { + return (open(_Filename, (ios_base::openmode)_Mode)); + } + + + + _Myt *open(const unsigned short *_Filename, + ios_base::openmode _Mode, + int _Prot = (int)ios_base::_Openprot) + { + FILE *_File; + if (_Myfile != 0 || (_File = _Fiopen(_Filename, _Mode, _Prot)) == 0) + return (0); + + _Init(_File, _Openfl); + _Initcvt(&use_facet< _Cvt >(_Mysb::getloc())); + return (this); + } + + + _Myt *open(const unsigned short *_Filename, + ios_base::open_mode _Mode) + { + return (open(_Filename, (ios_base::openmode)_Mode)); + } + + + + _Myt *close() + { + _Myt *_Ans = this; + if (_Myfile == 0) + _Ans = 0; + else + { + if (!_Endwrite()) + _Ans = 0; + if (fclose(_Myfile) != 0) + _Ans = 0; + } + _Init(0, _Closefl); + return (_Ans); + } + + virtual void _Lock() + { + if (_Myfile) + :: _lock_file(_Myfile); + } + + virtual void _Unlock() + { + if (_Myfile) + :: _unlock_file(_Myfile); + } + +protected: + virtual int_type overflow(int_type _Meta = + _Traits::eof()) + { + if (_Traits::eq_int_type(_Traits::eof(), _Meta)) + return (_Traits::not_eof(_Meta)); + else if (_Mysb::pptr() != 0 + && _Mysb::pptr() < _Mysb::epptr()) + { + *_Mysb::_Pninc() = _Traits::to_char_type(_Meta); + return (_Meta); + } + else if (_Myfile == 0) + return (_Traits::eof()); + _Reset_back(); + if (_Pcvt == 0) + return (_Fputc(_Traits::to_char_type(_Meta), _Myfile) + ? _Meta : _Traits::eof()); + else + { + const int _STRING_INC = 8; + const _Elem _Ch = _Traits::to_char_type(_Meta); + const _Elem *_Src; + char *_Dest; + + string _Str(_STRING_INC, '\0'); + for (; ; ) + switch (_Pcvt->out(_State, + &_Ch, &_Ch + 1, _Src, + &*_Str.begin(), &*_Str.begin() + _Str.size(), _Dest)) + { + case codecvt_base::partial: + case codecvt_base::ok: + { + size_t _Count = _Dest - &*_Str.begin(); + if (0 < _Count && _Count != + fwrite(&*_Str.begin(), 1, _Count, _Myfile)) + return (_Traits::eof()); + + _Wrotesome = true; + if (_Src != &_Ch) + return (_Meta); + + if (0 < _Count) + ; + else if (_Str.size() < 4 * _STRING_INC) + _Str.append(_STRING_INC, '\0'); + else + return (_Traits::eof()); + break; + } + + case codecvt_base::noconv: + return (_Fputc(_Ch, _Myfile) ? _Meta + : _Traits::eof()); + + default: + return (_Traits::eof()); + } + } + } + + virtual int_type pbackfail(int_type _Meta = + _Traits::eof()) + { + if (_Mysb::gptr() != 0 + && _Mysb::eback() < _Mysb::gptr() + && (_Traits::eq_int_type(_Traits::eof(), _Meta) + || _Traits::eq_int_type(_Traits::to_int_type(_Mysb::gptr()[-1]), + _Meta))) + { + _Mysb::_Gndec(); + return (_Traits::not_eof(_Meta)); + } + else if (_Myfile == 0 || _Traits::eq_int_type(_Traits::eof(), _Meta)) + return (_Traits::eof()); + else if (_Pcvt == 0 && _Ungetc(_Traits::to_char_type(_Meta), _Myfile)) + return (_Meta); + else if (_Mysb::gptr() != &_Mychar) + { + _Mychar = _Traits::to_char_type(_Meta); + _Set_back(); + return (_Meta); + } + else + return (_Traits::eof()); + } + + virtual int_type underflow() + { + int_type _Meta; + if (_Mysb::gptr() != 0 + && _Mysb::gptr() < _Mysb::egptr()) + return (_Traits::to_int_type(*_Mysb::gptr())); + else if (_Traits::eq_int_type(_Traits::eof(), _Meta = uflow())) + return (_Meta); + else + { + pbackfail(_Meta); + return (_Meta); + } + } + + virtual int_type uflow() + { + if (_Mysb::gptr() != 0 + && _Mysb::gptr() < _Mysb::egptr()) + return (_Traits::to_int_type( + *_Mysb::_Gninc())); + else if (_Myfile == 0) + return (_Traits::eof()); + _Reset_back(); + if (_Pcvt == 0) + { + _Elem _Ch = 0; + return (_Fgetc(_Ch, _Myfile) ? _Traits::to_int_type(_Ch) + : _Traits::eof()); + } + else + { + string _Str; + + for (; ; ) + { + _Elem _Ch, *_Dest; + const char *_Src; + int _Nleft; + int _Meta = fgetc(_Myfile); + + if (_Meta == (-1)) + return (_Traits::eof()); + + _Str.append(1, (char)_Meta); + switch (_Pcvt->in(_State, + &*_Str.begin(), &*_Str.begin() + _Str.size(), _Src, + &_Ch, &_Ch + 1, _Dest)) + { + case codecvt_base::partial: + case codecvt_base::ok: + if (_Dest != &_Ch) + { + _Nleft = (int)(&*_Str.begin() + _Str.size() - _Src); + for (; 0 < _Nleft; ) + ungetc(_Src[--_Nleft], _Myfile); + return (_Traits::to_int_type(_Ch)); + } + else + _Str.erase((size_t)0, + (size_t)(_Src - &*_Str.begin())); + break; + + case codecvt_base::noconv: + if (_Str.size() < sizeof (_Elem)) + break; + + ::memcpy_s((&_Ch), (sizeof (_Elem)), (&*_Str.begin()), (sizeof (_Elem))); + + + return (_Traits::to_int_type(_Ch)); + + default: + return (_Traits::eof()); + } + } + } + } + + virtual pos_type seekoff(off_type _Off, + ios_base::seekdir _Way, + ios_base::openmode = + (ios_base::openmode)(ios_base::in | ios_base::out)) + { + fpos_t _Fileposition; + + if (_Mysb::gptr() == &_Mychar + && _Way == ios_base::cur + && _Pcvt == 0) + _Off -= (off_type)sizeof (_Elem); + + if (_Myfile == 0 || !_Endwrite() + || ((_Off != 0 || _Way != ios_base::cur) + && _fseeki64(_Myfile, _Off, _Way) != 0) + || fgetpos(_Myfile, &_Fileposition) != 0) + return (pos_type(_BADOFF)); + + _Reset_back(); + return (pos_type(_State, _Fileposition)); + + } + + virtual pos_type seekpos(pos_type _Pos, + ios_base::openmode = + (ios_base::openmode)(ios_base::in | ios_base::out)) + { + fpos_t _Fileposition = _Pos.seekpos(); + off_type _Off = (off_type)_Pos - (off_type)((long long)(_Fileposition)); + + if (_Myfile == 0 || !_Endwrite() + || fsetpos(_Myfile, &_Fileposition) != 0 + || (_Off != 0 && _fseeki64(_Myfile, _Off, 1) != 0) + || fgetpos(_Myfile, &_Fileposition) != 0) + return (pos_type(_BADOFF)); + + _State = _Pos.state(); + + _Reset_back(); + return (pos_type(_State, _Fileposition)); + + } + + virtual _Mysb * setbuf(_Elem *_Buffer, streamsize _Count) + { + if (_Myfile == 0 || setvbuf(_Myfile, (char *)_Buffer, + _Buffer == 0 && _Count == 0 ? 0x0004 : 0x0000, + (size_t)_Count * sizeof (_Elem)) != 0) + return (0); + else + { + _Init(_Myfile, _Openfl); + return (this); + } + } + + virtual int sync() + { + return (_Myfile == 0 + || _Traits::eq_int_type(_Traits::eof(), overflow()) + || 0 <= fflush(_Myfile) ? 0 : -1); + } + + virtual void imbue(const locale& _Loc) + { + _Initcvt(&use_facet< _Cvt >(_Loc)); + } + + void _Init(FILE *_File, _Initfl _Which) + { + static _Myst _Stinit; + + _Closef = _Which == _Openfl; + _Wrotesome = false; + + _Mysb::_Init(); + + + + + + +#pragma warning(push) +#pragma warning(disable: 6240) + if (_File != 0 && sizeof (_Elem) == 1) +#pragma warning(pop) + + { + _Elem **_Pb = 0; + _Elem **_Pn = 0; + int *_Nr = 0; + + ::_get_stream_buffer_pointers( + _File, + reinterpret_cast(&_Pb), + reinterpret_cast(&_Pn), + &_Nr); + int *_Nw = _Nr; + + _Mysb::_Init(_Pb, _Pn, _Nr, _Pb, _Pn, _Nw); + } + + _Myfile = _File; + _State = _Stinit; + _Pcvt = 0; + } + + bool _Endwrite() + { + if (_Pcvt == 0 || !_Wrotesome) + return (true); + else + { + const int _STRING_INC = 8; + char *_Dest; + if (_Traits::eq_int_type(_Traits::eof(), overflow())) + return (false); + + string _Str(_STRING_INC, '\0'); + for (; ; ) + switch (_Pcvt->unshift(_State, + &*_Str.begin(), &*_Str.begin() + _Str.size(), _Dest)) + { + case codecvt_base::ok: + _Wrotesome = false; + + case codecvt_base::partial: + { + size_t _Count = _Dest - &*_Str.begin(); + if (0 < _Count && _Count != + fwrite(&*_Str.begin(), 1, _Count, _Myfile)) + return (false); + if (!_Wrotesome) + return (true); + if (_Count == 0) + _Str.append(_STRING_INC, '\0'); + break; + } + + case codecvt_base::noconv: + return (true); + + default: + return (false); + } + } + } + + void _Initcvt(const _Cvt *_Newpcvt) + { + if (_Newpcvt->always_noconv()) + _Pcvt = 0; + else + { + _Pcvt = _Newpcvt; + _Mysb::_Init(); + } + } + +private: + const _Cvt *_Pcvt; + _Elem _Mychar; + bool _Wrotesome; + typename _Traits::state_type _State; + bool _Closef; + FILE *_Myfile; + + void _Reset_back() + { + if (_Mysb::eback() == &_Mychar) + _Mysb::setg(_Set_eback, _Set_eback, _Set_egptr); + } + + void _Set_back() + { + if (_Mysb::eback() != &_Mychar) + { + _Set_eback = _Mysb::eback(); + _Set_egptr = _Mysb::egptr(); + } + _Mysb::setg(&_Mychar, &_Mychar, &_Mychar + 1); + } + + _Elem *_Set_eback; + _Elem *_Set_egptr; + }; + + +template inline + void swap(basic_filebuf<_Elem, _Traits>& _Left, + basic_filebuf<_Elem, _Traits>& _Right) + { + _Left.swap(_Right); + } + + +template + class basic_ifstream + : public basic_istream<_Elem, _Traits> + { +public: + typedef basic_ifstream<_Elem, _Traits> _Myt; + typedef basic_istream<_Elem, _Traits> _Mybase; + typedef basic_filebuf<_Elem, _Traits> _Myfb; + typedef basic_ios<_Elem, _Traits> _Myios; + + basic_ifstream() + : _Mybase(&_Filebuffer) + { + } + + explicit basic_ifstream(const char *_Filename, + ios_base::openmode _Mode = ios_base::in, + int _Prot = (int)ios_base::_Openprot) + : _Mybase(&_Filebuffer) + { + if (_Filebuffer.open(_Filename, _Mode | ios_base::in, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + } + + explicit basic_ifstream(const string& _Str, + ios_base::openmode _Mode = ios_base::in, + int _Prot = (int)ios_base::_Openprot) + : _Mybase(&_Filebuffer) + { + if (_Filebuffer.open(_Str.c_str(), _Mode | ios_base::in, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + } + + explicit basic_ifstream(const wchar_t *_Filename, + ios_base::openmode _Mode = ios_base::in, + int _Prot = (int)ios_base::_Openprot) + : _Mybase(&_Filebuffer) + { + if (_Filebuffer.open(_Filename, _Mode | ios_base::in, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + } + + explicit basic_ifstream(const wstring& _Str, + ios_base::openmode _Mode = ios_base::in, + int _Prot = (int)ios_base::_Openprot) + : _Mybase(&_Filebuffer) + { + if (_Filebuffer.open(_Str.c_str(), _Mode | ios_base::in, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + } + + + explicit basic_ifstream(const unsigned short *_Filename, + ios_base::openmode _Mode = ios_base::in, + int _Prot = (int)ios_base::_Openprot) + : _Mybase(&_Filebuffer) + { + if (_Filebuffer.open(_Filename, _Mode | ios_base::in, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + } + + + explicit basic_ifstream(FILE *_File) + : _Mybase(&_Filebuffer), + _Filebuffer(_File) + { + } + + basic_ifstream(_Myt&& _Right) + : _Mybase(&_Filebuffer) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + + _Myt& operator=(_Myt&& _Right) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + return (*this); + } + + void _Assign_rv(_Myt&& _Right) + { + if (this != &_Right) + { + _Filebuffer.close(); + this->swap(_Right); + } + } + + void swap(_Myt& _Right) + { + if (this != &_Right) + { + _Mybase::swap(_Right); + _Filebuffer.swap(_Right._Filebuffer); + } + } + + basic_ifstream(const _Myt&) = delete; + _Myt& operator=(const _Myt&) = delete; + + void open(const wchar_t *_Filename, + ios_base::openmode _Mode = ios_base::in, + int _Prot = (int)ios_base::_Openprot) + { + if (_Filebuffer.open(_Filename, _Mode | ios_base::in, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + else + _Myios::clear(); + } + + void open(const wstring& _Str, + ios_base::openmode _Mode = ios_base::in, + int _Prot = (int)ios_base::_Openprot) + { + open(_Str.c_str(), _Mode, _Prot); + } + + + void open(const wchar_t *_Filename, ios_base::open_mode _Mode) + { + open(_Filename, (ios_base::openmode)_Mode); + } + + + + void open(const unsigned short *_Filename, + ios_base::openmode _Mode = ios_base::in, + int _Prot = (int)ios_base::_Openprot) + { + if (_Filebuffer.open(_Filename, _Mode | ios_base::in, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + else + _Myios::clear(); + } + + + void open(const unsigned short *_Filename, + ios_base::open_mode _Mode) + { + open(_Filename, (ios_base::openmode)_Mode); + } + + + + virtual ~basic_ifstream() noexcept + { + } + + _Myfb *rdbuf() const + { + return ((_Myfb *)&_Filebuffer); + } + + bool is_open() const + { + return (_Filebuffer.is_open()); + } + + void open(const char *_Filename, + ios_base::openmode _Mode = ios_base::in, + int _Prot = (int)ios_base::_Openprot) + { + if (_Filebuffer.open(_Filename, _Mode | ios_base::in, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + else + _Myios::clear(); + } + + void open(const string& _Str, + ios_base::openmode _Mode = ios_base::in, + int _Prot = (int)ios_base::_Openprot) + { + open(_Str.c_str(), _Mode, _Prot); + } + + + void open(const char *_Filename, ios_base::open_mode _Mode) + { + open(_Filename, (ios_base::openmode)_Mode); + } + + + void close() + { + if (_Filebuffer.close() == 0) + _Myios::setstate(ios_base::failbit); + } + +private: + _Myfb _Filebuffer; + }; + + +template inline + void swap(basic_ifstream<_Elem, _Traits>& _Left, + basic_ifstream<_Elem, _Traits>& _Right) + { + _Left.swap(_Right); + } + + +template + class basic_ofstream + : public basic_ostream<_Elem, _Traits> + { +public: + typedef basic_ofstream<_Elem, _Traits> _Myt; + typedef basic_ostream<_Elem, _Traits> _Mybase; + typedef basic_filebuf<_Elem, _Traits> _Myfb; + typedef basic_ios<_Elem, _Traits> _Myios; + + basic_ofstream() + : _Mybase(&_Filebuffer) + { + } + + explicit basic_ofstream(const char *_Filename, + ios_base::openmode _Mode = ios_base::out, + int _Prot = (int)ios_base::_Openprot) + : _Mybase(&_Filebuffer) + { + if (_Filebuffer.open(_Filename, _Mode | ios_base::out, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + } + + explicit basic_ofstream(const string& _Str, + ios_base::openmode _Mode = ios_base::out, + int _Prot = (int)ios_base::_Openprot) + : _Mybase(&_Filebuffer) + { + if (_Filebuffer.open(_Str.c_str(), _Mode | ios_base::out, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + } + + explicit basic_ofstream(const wchar_t *_Filename, + ios_base::openmode _Mode = ios_base::out, + int _Prot = (int)ios_base::_Openprot) + : _Mybase(&_Filebuffer) + { + if (_Filebuffer.open(_Filename, _Mode | ios_base::out, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + } + + explicit basic_ofstream(const wstring& _Str, + ios_base::openmode _Mode = ios_base::out, + int _Prot = (int)ios_base::_Openprot) + : _Mybase(&_Filebuffer) + { + if (_Filebuffer.open(_Str.c_str(), _Mode | ios_base::out, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + } + + + explicit basic_ofstream(const unsigned short *_Filename, + ios_base::openmode _Mode = ios_base::out, + int _Prot = (int)ios_base::_Openprot) + : _Mybase(&_Filebuffer) + { + if (_Filebuffer.open(_Filename, _Mode | ios_base::out, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + } + + + explicit basic_ofstream(FILE *_File) + : _Mybase(&_Filebuffer), + _Filebuffer(_File) + { + } + + basic_ofstream(_Myt&& _Right) + : _Mybase(&_Filebuffer) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + + _Myt& operator=(_Myt&& _Right) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + return (*this); + } + + void _Assign_rv(_Myt&& _Right) + { + if (this != &_Right) + { + _Filebuffer.close(); + this->swap(_Right); + } + } + + void swap(_Myt& _Right) + { + if (this != &_Right) + { + _Mybase::swap(_Right); + _Filebuffer.swap(_Right._Filebuffer); + } + } + + basic_ofstream(const _Myt&) = delete; + _Myt& operator=(const _Myt&) = delete; + + void open(const wchar_t *_Filename, + ios_base::openmode _Mode = ios_base::out, + int _Prot = (int)ios_base::_Openprot) + { + if (_Filebuffer.open(_Filename, _Mode | ios_base::out, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + else + _Myios::clear(); + } + + void open(const wstring& _Str, + ios_base::openmode _Mode = ios_base::out, + int _Prot = (int)ios_base::_Openprot) + { + open(_Str.c_str(), _Mode, _Prot); + } + + + void open(const wchar_t *_Filename, ios_base::open_mode _Mode) + { + open(_Filename, (ios_base::openmode)_Mode); + } + + + + void open(const unsigned short *_Filename, + ios_base::openmode _Mode = ios_base::out, + int _Prot = (int)ios_base::_Openprot) + { + if (_Filebuffer.open(_Filename, _Mode | ios_base::out, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + else + _Myios::clear(); + } + + + void open(const unsigned short *_Filename, + ios_base::open_mode _Mode) + { + open(_Filename, (ios_base::openmode)_Mode); + } + + + + virtual ~basic_ofstream() noexcept + { + } + + _Myfb *rdbuf() const + { + return ((_Myfb *)&_Filebuffer); + } + + bool is_open() const + { + return (_Filebuffer.is_open()); + } + + void open(const char *_Filename, + ios_base::openmode _Mode = ios_base::out, + int _Prot = (int)ios_base::_Openprot) + { + if (_Filebuffer.open(_Filename, _Mode | ios_base::out, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + else + _Myios::clear(); + } + + void open(const string& _Str, + ios_base::openmode _Mode = ios_base::out, + int _Prot = (int)ios_base::_Openprot) + { + open(_Str.c_str(), _Mode, _Prot); + } + + + void open(const char *_Filename, ios_base::open_mode _Mode) + { + open(_Filename, (ios_base::openmode)_Mode); + } + + + void close() + { + if (_Filebuffer.close() == 0) + _Myios::setstate(ios_base::failbit); + } + +private: + _Myfb _Filebuffer; + }; + + +template inline + void swap(basic_ofstream<_Elem, _Traits>& _Left, + basic_ofstream<_Elem, _Traits>& _Right) + { + _Left.swap(_Right); + } + + +template + class basic_fstream + : public basic_iostream<_Elem, _Traits> + { +public: + typedef basic_fstream<_Elem, _Traits> _Myt; + typedef basic_iostream<_Elem, _Traits> _Mybase; + typedef basic_filebuf<_Elem, _Traits> _Myfb; + typedef basic_ios<_Elem, _Traits> _Myios; + typedef _Elem char_type; + typedef _Traits traits_type; + typedef typename _Traits::int_type int_type; + typedef typename _Traits::pos_type pos_type; + typedef typename _Traits::off_type off_type; + + basic_fstream() + : _Mybase(&_Filebuffer) + { + } + + explicit basic_fstream(const char *_Filename, + ios_base::openmode _Mode = ios_base::in | ios_base::out, + int _Prot = (int)ios_base::_Openprot) + : _Mybase(&_Filebuffer) + { + if (_Filebuffer.open(_Filename, _Mode, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + } + + explicit basic_fstream(const string& _Str, + ios_base::openmode _Mode = ios_base::in | ios_base::out, + int _Prot = (int)ios_base::_Openprot) + : _Mybase(&_Filebuffer) + { + if (_Filebuffer.open(_Str.c_str(), _Mode, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + } + + explicit basic_fstream(const wchar_t *_Filename, + ios_base::openmode _Mode = ios_base::in | ios_base::out, + int _Prot = (int)ios_base::_Openprot) + : _Mybase(&_Filebuffer) + { + if (_Filebuffer.open(_Filename, _Mode, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + } + + explicit basic_fstream(const wstring& _Str, + ios_base::openmode _Mode = ios_base::in | ios_base::out, + int _Prot = (int)ios_base::_Openprot) + : _Mybase(&_Filebuffer) + { + if (_Filebuffer.open(_Str.c_str(), _Mode, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + } + + + explicit basic_fstream(const unsigned short *_Filename, + ios_base::openmode _Mode = ios_base::in | ios_base::out, + int _Prot = (int)ios_base::_Openprot) + : _Mybase(&_Filebuffer) + { + if (_Filebuffer.open(_Filename, _Mode, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + } + + + explicit basic_fstream(FILE *_File) + : _Mybase(&_Filebuffer), + _Filebuffer(_File) + { + } + + basic_fstream(_Myt&& _Right) + : _Mybase(&_Filebuffer) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + + _Myt& operator=(_Myt&& _Right) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + return (*this); + } + + void _Assign_rv(_Myt&& _Right) + { + if (this != &_Right) + { + _Filebuffer.close(); + this->swap(_Right); + } + } + + void swap(_Myt& _Right) + { + if (this != &_Right) + { + _Mybase::swap(_Right); + _Filebuffer.swap(_Right._Filebuffer); + } + } + + basic_fstream(const _Myt&) = delete; + _Myt& operator=(const _Myt&) = delete; + + void open(const wchar_t *_Filename, + ios_base::openmode _Mode = ios_base::in | ios_base::out, + int _Prot = (int)ios_base::_Openprot) + { + if (_Filebuffer.open(_Filename, _Mode, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + else + _Myios::clear(); + } + + void open(const wstring& _Str, + ios_base::openmode _Mode = ios_base::in | ios_base::out, + int _Prot = (int)ios_base::_Openprot) + { + open(_Str.c_str(), _Mode, _Prot); + } + + + void open(const wchar_t *_Filename, ios_base::open_mode _Mode) + { + open(_Filename, (ios_base::openmode)_Mode); + } + + + + void open(const unsigned short *_Filename, + ios_base::openmode _Mode = ios_base::in | ios_base::out, + int _Prot = (int)ios_base::_Openprot) + { + if (_Filebuffer.open(_Filename, _Mode, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + else + _Myios::clear(); + } + + + void open(const unsigned short *_Filename, + ios_base::open_mode _Mode) + { + open(_Filename, (ios_base::openmode)_Mode); + } + + + + virtual ~basic_fstream() noexcept + { + } + + _Myfb *rdbuf() const + { + return ((_Myfb *)&_Filebuffer); + } + + bool is_open() const + { + return (_Filebuffer.is_open()); + } + + void open(const char *_Filename, + ios_base::openmode _Mode = ios_base::in | ios_base::out, + int _Prot = (int)ios_base::_Openprot) + { + if (_Filebuffer.open(_Filename, _Mode, _Prot) == 0) + _Myios::setstate(ios_base::failbit); + else + _Myios::clear(); + } + + void open(const string& _Str, + ios_base::openmode _Mode = ios_base::in | ios_base::out, + int _Prot = (int)ios_base::_Openprot) + { + open(_Str.c_str(), _Mode, _Prot); + } + + + void open(const char *_Filename, ios_base::open_mode _Mode) + { + open(_Filename, (ios_base::openmode)_Mode); + } + + + void close() + { + if (_Filebuffer.close() == 0) + _Myios::setstate(ios_base::failbit); + } + +private: + _Myfb _Filebuffer; + }; + + +template inline + void swap(basic_fstream<_Elem, _Traits>& _Left, + basic_fstream<_Elem, _Traits>& _Right) + { + _Left.swap(_Right); + } +} + + +#pragma warning(pop) +#pragma pack(pop) +# 6 "../LEngine/Object.h" 2 + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\functional" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xfunctional" 1 3 +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xfunctional" 3 +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4100 4180 4244) + + + + + +namespace std { +# 32 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xfunctional" 3 +template + struct divides + { + typedef _Ty first_argument_type; + typedef _Ty second_argument_type; + typedef _Ty result_type; + + constexpr _Ty operator()(const _Ty& _Left, const _Ty& _Right) const + { + return (_Left / _Right); + } + }; + + +template + struct modulus + { + typedef _Ty first_argument_type; + typedef _Ty second_argument_type; + typedef _Ty result_type; + + constexpr _Ty operator()(const _Ty& _Left, const _Ty& _Right) const + { + return (_Left % _Right); + } + }; + + +template + struct negate + { + typedef _Ty argument_type; + typedef _Ty result_type; + + constexpr _Ty operator()(const _Ty& _Left) const + { + return (-_Left); + } + }; + + + + + +template + struct not_equal_to + { + typedef _Ty first_argument_type; + typedef _Ty second_argument_type; + typedef bool result_type; + + constexpr bool operator()(const _Ty& _Left, const _Ty& _Right) const + { + return (_Left != _Right); + } + }; + + +template + struct greater + { + typedef _Ty first_argument_type; + typedef _Ty second_argument_type; + typedef bool result_type; + + constexpr bool operator()(const _Ty& _Left, const _Ty& _Right) const + { + return (_Left > _Right); + } + }; + + + + + +template + struct greater_equal + { + typedef _Ty first_argument_type; + typedef _Ty second_argument_type; + typedef bool result_type; + + constexpr bool operator()(const _Ty& _Left, const _Ty& _Right) const + { + return (_Left >= _Right); + } + }; + + +template + struct less_equal + { + typedef _Ty first_argument_type; + typedef _Ty second_argument_type; + typedef bool result_type; + + constexpr bool operator()(const _Ty& _Left, const _Ty& _Right) const + { + return (_Left <= _Right); + } + }; + + +template + struct logical_and + { + typedef _Ty first_argument_type; + typedef _Ty second_argument_type; + typedef bool result_type; + + constexpr bool operator()(const _Ty& _Left, const _Ty& _Right) const + { + return (_Left && _Right); + } + }; + + +template + struct logical_or + { + typedef _Ty first_argument_type; + typedef _Ty second_argument_type; + typedef bool result_type; + + constexpr bool operator()(const _Ty& _Left, const _Ty& _Right) const + { + return (_Left || _Right); + } + }; + + +template + struct logical_not + { + typedef _Ty argument_type; + typedef bool result_type; + + constexpr bool operator()(const _Ty& _Left) const + { + return (!_Left); + } + }; + + +template + struct bit_and + { + typedef _Ty first_argument_type; + typedef _Ty second_argument_type; + typedef _Ty result_type; + + constexpr _Ty operator()(const _Ty& _Left, const _Ty& _Right) const + { + return (_Left & _Right); + } + }; + + +template + struct bit_or + { + typedef _Ty first_argument_type; + typedef _Ty second_argument_type; + typedef _Ty result_type; + + constexpr _Ty operator()(const _Ty& _Left, const _Ty& _Right) const + { + return (_Left | _Right); + } + }; + + +template + struct bit_xor + { + typedef _Ty first_argument_type; + typedef _Ty second_argument_type; + typedef _Ty result_type; + + constexpr _Ty operator()(const _Ty& _Left, const _Ty& _Right) const + { + return (_Left ^ _Right); + } + }; + + +template + struct bit_not + { + typedef _Ty argument_type; + typedef _Ty result_type; + + constexpr _Ty operator()(const _Ty& _Left) const + { + return (~_Left); + } + }; +# 240 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xfunctional" 3 +template<> + struct divides + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty1&& _Left, _Ty2&& _Right) const + -> decltype(::std:: forward<_Ty1>(_Left) / ::std:: forward<_Ty2>(_Right)) + { + return (::std:: forward<_Ty1>(_Left) / ::std:: forward<_Ty2>(_Right)); + } + }; + + +template<> + struct modulus + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty1&& _Left, _Ty2&& _Right) const + -> decltype(::std:: forward<_Ty1>(_Left) % ::std:: forward<_Ty2>(_Right)) + { + return (::std:: forward<_Ty1>(_Left) % ::std:: forward<_Ty2>(_Right)); + } + }; + + +template<> + struct negate + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty&& _Left) const + -> decltype(-::std:: forward<_Ty>(_Left)) + { + return (-::std:: forward<_Ty>(_Left)); + } + }; + + + + + +template<> + struct not_equal_to + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty1&& _Left, _Ty2&& _Right) const + -> decltype(::std:: forward<_Ty1>(_Left) != ::std:: forward<_Ty2>(_Right)) + { + return (::std:: forward<_Ty1>(_Left) != ::std:: forward<_Ty2>(_Right)); + } + }; + + +template<> + struct greater + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty1&& _Left, _Ty2&& _Right) const + -> decltype(::std:: forward<_Ty1>(_Left) > ::std:: forward<_Ty2>(_Right)) + { + return (::std:: forward<_Ty1>(_Left) > ::std:: forward<_Ty2>(_Right)); + } + }; + +template inline + _Lex_compare_check_element_types, _Obj1, _Obj2, _FTy> + _Lex_compare_memcmp_classify(_Obj1 * const&, _Obj2 * const&, const greater<_FTy>&) + { + return {}; + } + + + + + +template<> + struct greater_equal + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty1&& _Left, _Ty2&& _Right) const + -> decltype(::std:: forward<_Ty1>(_Left) >= ::std:: forward<_Ty2>(_Right)) + { + return (::std:: forward<_Ty1>(_Left) >= ::std:: forward<_Ty2>(_Right)); + } + }; + + +template<> + struct less_equal + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty1&& _Left, _Ty2&& _Right) const + -> decltype(::std:: forward<_Ty1>(_Left) <= ::std:: forward<_Ty2>(_Right)) + { + return (::std:: forward<_Ty1>(_Left) <= ::std:: forward<_Ty2>(_Right)); + } + }; + + +template<> + struct logical_and + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty1&& _Left, _Ty2&& _Right) const + -> decltype(::std:: forward<_Ty1>(_Left) && ::std:: forward<_Ty2>(_Right)) + { + return (::std:: forward<_Ty1>(_Left) && ::std:: forward<_Ty2>(_Right)); + } + }; + + +template<> + struct logical_or + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty1&& _Left, _Ty2&& _Right) const + -> decltype(::std:: forward<_Ty1>(_Left) || ::std:: forward<_Ty2>(_Right)) + { + return (::std:: forward<_Ty1>(_Left) || ::std:: forward<_Ty2>(_Right)); + } + }; + + +template<> + struct logical_not + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty&& _Left) const + -> decltype(!::std:: forward<_Ty>(_Left)) + { + return (!::std:: forward<_Ty>(_Left)); + } + }; + + +template<> + struct bit_and + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty1&& _Left, _Ty2&& _Right) const + -> decltype(::std:: forward<_Ty1>(_Left) & ::std:: forward<_Ty2>(_Right)) + { + return (::std:: forward<_Ty1>(_Left) & ::std:: forward<_Ty2>(_Right)); + } + }; + + +template<> + struct bit_or + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty1&& _Left, _Ty2&& _Right) const + -> decltype(::std:: forward<_Ty1>(_Left) | ::std:: forward<_Ty2>(_Right)) + { + return (::std:: forward<_Ty1>(_Left) | ::std:: forward<_Ty2>(_Right)); + } + }; + + +template<> + struct bit_xor + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty1&& _Left, _Ty2&& _Right) const + -> decltype(::std:: forward<_Ty1>(_Left) ^ ::std:: forward<_Ty2>(_Right)) + { + return (::std:: forward<_Ty1>(_Left) ^ ::std:: forward<_Ty2>(_Right)); + } + }; + + +template<> + struct bit_not + { + typedef int is_transparent; + + template + constexpr auto operator()(_Ty&& _Left) const + -> decltype(~::std:: forward<_Ty>(_Left)) + { + return (~::std:: forward<_Ty>(_Left)); + } + }; + + +template + class unary_negate + { +public: + typedef typename _Fn1::argument_type argument_type; + typedef bool result_type; + + constexpr explicit unary_negate(const _Fn1& _Func) + : _Functor(_Func) + { + } + + constexpr bool operator()(const argument_type& _Left) const + { + return (!_Functor(_Left)); + } + +private: + _Fn1 _Functor; + }; + + +template inline + constexpr unary_negate<_Fn1> not1(const _Fn1& _Func) + { + return (unary_negate<_Fn1>(_Func)); + } + + +template + class binary_negate + { +public: + typedef typename _Fn2::first_argument_type first_argument_type; + typedef typename _Fn2::second_argument_type second_argument_type; + typedef bool result_type; + + constexpr explicit binary_negate(const _Fn2& _Func) + : _Functor(_Func) + { + } + + constexpr bool operator()(const first_argument_type& _Left, + const second_argument_type& _Right) const + { + return (!_Functor(_Left, _Right)); + } + +private: + _Fn2 _Functor; + }; + + +template inline + constexpr binary_negate<_Fn2> not2(const _Fn2& _Func) + { + return (binary_negate<_Fn2>(_Func)); + } + + + +template + class binder1st + : public unary_function + { +public: + typedef unary_function _Base; + typedef typename _Base::argument_type argument_type; + typedef typename _Base::result_type result_type; + + binder1st(const _Fn2& _Func, + const typename _Fn2::first_argument_type& _Left) + : op(_Func), value(_Left) + { + } + + result_type operator()(const argument_type& _Right) const + { + return (op(value, _Right)); + } + + result_type operator()(argument_type& _Right) const + { + return (op(value, _Right)); + } + +protected: + _Fn2 op; + typename _Fn2::first_argument_type value; + }; + + +template inline + binder1st<_Fn2> bind1st(const _Fn2& _Func, const _Ty& _Left) + { + typename _Fn2::first_argument_type _Val(_Left); + return (binder1st<_Fn2>(_Func, _Val)); + } + + +template + class binder2nd + : public unary_function + { +public: + typedef unary_function _Base; + typedef typename _Base::argument_type argument_type; + typedef typename _Base::result_type result_type; + + binder2nd(const _Fn2& _Func, + const typename _Fn2::second_argument_type& _Right) + : op(_Func), value(_Right) + { + } + + result_type operator()(const argument_type& _Left) const + { + return (op(_Left, value)); + } + + result_type operator()(argument_type& _Left) const + { + return (op(_Left, value)); + } + +protected: + _Fn2 op; + typename _Fn2::second_argument_type value; + }; + + +template inline + binder2nd<_Fn2> bind2nd(const _Fn2& _Func, const _Ty& _Right) + { + typename _Fn2::second_argument_type _Val(_Right); + return (binder2nd<_Fn2>(_Func, _Val)); + } + + +template + class pointer_to_unary_function + : public unary_function<_Arg, _Result> + { +public: + explicit pointer_to_unary_function(_Fn _Left) + : _Pfun(_Left) + { + } + + _Result operator()(_Arg _Left) const + { + return (_Pfun(_Left)); + } + +protected: + _Fn _Pfun; + }; + + +template + class pointer_to_binary_function + : public binary_function<_Arg1, _Arg2, _Result> + { +public: + explicit pointer_to_binary_function(_Fn _Left) + : _Pfun(_Left) + { + } + + _Result operator()(_Arg1 _Left, _Arg2 _Right) const + { + return (_Pfun(_Left, _Right)); + } + +protected: + _Fn _Pfun; + }; + + +template inline + pointer_to_unary_function<_Arg, _Result, + _Result (__cdecl *)(_Arg)> + ptr_fun(_Result (__cdecl *_Left)(_Arg)) + { + return (pointer_to_unary_function<_Arg, _Result, + _Result (__cdecl *)(_Arg)>(_Left)); + } + + +template inline + pointer_to_unary_function<_Arg, _Result, + _Result (__stdcall *)(_Arg)> + ptr_fun(_Result (__stdcall *_Left)(_Arg)) + { + return (pointer_to_unary_function<_Arg, _Result, + _Result (__stdcall *)(_Arg)>(_Left)); + } + + +template inline + pointer_to_unary_function<_Arg, _Result, + _Result (__fastcall *)(_Arg)> + ptr_fun(_Result (__fastcall *_Left)(_Arg)) + { + return (pointer_to_unary_function<_Arg, _Result, + _Result (__fastcall *)(_Arg)>(_Left)); + } +# 698 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xfunctional" 3 +template inline + pointer_to_binary_function<_Arg1, _Arg2, _Result, + _Result (__cdecl *)(_Arg1, _Arg2)> + ptr_fun(_Result (__cdecl *_Left)(_Arg1, _Arg2)) + { + return (pointer_to_binary_function<_Arg1, _Arg2, _Result, + _Result (__cdecl *)(_Arg1, _Arg2)>(_Left)); + } + + +template inline + pointer_to_binary_function<_Arg1, _Arg2, _Result, + _Result(__stdcall *)(_Arg1, _Arg2)> + ptr_fun(_Result (__stdcall *_Left)(_Arg1, _Arg2)) + { + return (pointer_to_binary_function<_Arg1, _Arg2, _Result, + _Result (__stdcall *)(_Arg1, _Arg2)>(_Left)); + } + + +template inline + pointer_to_binary_function<_Arg1, _Arg2, _Result, + _Result(__fastcall *)(_Arg1, _Arg2)> + ptr_fun(_Result (__fastcall *_Left)(_Arg1, _Arg2)) + { + return (pointer_to_binary_function<_Arg1, _Arg2, _Result, + _Result (__fastcall *)(_Arg1, _Arg2)>(_Left)); + } +# 749 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xfunctional" 3 +template + class mem_fun_t + : public unary_function<_Ty *, _Result> + { +public: + explicit mem_fun_t(_Result (_Ty::*_Pm)()) + : _Pmemfun(_Pm) + { + } + + _Result operator()(_Ty *_Pleft) const + { + return ((_Pleft->*_Pmemfun)()); + } + +private: + _Result (_Ty::*_Pmemfun)(); + }; + + +template + class mem_fun1_t + : public binary_function<_Ty *, _Arg, _Result> + { +public: + explicit mem_fun1_t(_Result (_Ty::*_Pm)(_Arg)) + : _Pmemfun(_Pm) + { + } + + _Result operator()(_Ty *_Pleft, _Arg _Right) const + { + return ((_Pleft->*_Pmemfun)(_Right)); + } + +private: + _Result (_Ty::*_Pmemfun)(_Arg); + }; + + +template + class const_mem_fun_t + : public unary_function + { +public: + explicit const_mem_fun_t(_Result (_Ty::*_Pm)() const) + : _Pmemfun(_Pm) + { + } + + _Result operator()(const _Ty *_Pleft) const + { + return ((_Pleft->*_Pmemfun)()); + } + +private: + _Result (_Ty::*_Pmemfun)() const; + }; + + +template + class const_mem_fun1_t + : public binary_function + { +public: + explicit const_mem_fun1_t(_Result (_Ty::*_Pm)(_Arg) const) + : _Pmemfun(_Pm) + { + } + + _Result operator()(const _Ty *_Pleft, _Arg _Right) const + { + return ((_Pleft->*_Pmemfun)(_Right)); + } + +private: + _Result (_Ty::*_Pmemfun)(_Arg) const; + }; + + +template inline + mem_fun_t<_Result, _Ty> mem_fun(_Result (_Ty::*_Pm)()) + { + return (mem_fun_t<_Result, _Ty>(_Pm)); + } + +template inline + mem_fun1_t<_Result, _Ty, _Arg> mem_fun(_Result (_Ty::*_Pm)(_Arg)) + { + return (mem_fun1_t<_Result, _Ty, _Arg>(_Pm)); + } + +template inline + const_mem_fun_t<_Result, _Ty> + mem_fun(_Result (_Ty::*_Pm)() const) + { + return (const_mem_fun_t<_Result, _Ty>(_Pm)); + } + +template inline + const_mem_fun1_t<_Result, _Ty, _Arg> + mem_fun(_Result (_Ty::*_Pm)(_Arg) const) + { + return (const_mem_fun1_t<_Result, _Ty, _Arg>(_Pm)); + } + + +template + class mem_fun_ref_t + : public unary_function<_Ty, _Result> + { +public: + explicit mem_fun_ref_t(_Result (_Ty::*_Pm)()) + : _Pmemfun(_Pm) + { + } + + _Result operator()(_Ty& _Left) const + { + return ((_Left.*_Pmemfun)()); + } + +private: + _Result (_Ty::*_Pmemfun)(); + }; + + +template + class mem_fun1_ref_t + : public binary_function<_Ty, _Arg, _Result> + { +public: + explicit mem_fun1_ref_t(_Result (_Ty::*_Pm)(_Arg)) + : _Pmemfun(_Pm) + { + } + + _Result operator()(_Ty& _Left, _Arg _Right) const + { + return ((_Left.*_Pmemfun)(_Right)); + } + +private: + _Result (_Ty::*_Pmemfun)(_Arg); + }; + + +template + class const_mem_fun_ref_t + : public unary_function<_Ty, _Result> + { +public: + explicit const_mem_fun_ref_t(_Result (_Ty::*_Pm)() const) + : _Pmemfun(_Pm) + { + } + + _Result operator()(const _Ty& _Left) const + { + return ((_Left.*_Pmemfun)()); + } + +private: + _Result (_Ty::*_Pmemfun)() const; + }; + + +template + class const_mem_fun1_ref_t + : public binary_function<_Ty, _Arg, _Result> + { +public: + explicit const_mem_fun1_ref_t(_Result (_Ty::*_Pm)(_Arg) const) + : _Pmemfun(_Pm) + { + } + + _Result operator()(const _Ty& _Left, _Arg _Right) const + { + return ((_Left.*_Pmemfun)(_Right)); + } + +private: + _Result (_Ty::*_Pmemfun)(_Arg) const; + }; + + +template inline + mem_fun_ref_t<_Result, _Ty> mem_fun_ref(_Result (_Ty::*_Pm)()) + { + return (mem_fun_ref_t<_Result, _Ty>(_Pm)); + } + +template inline + mem_fun1_ref_t<_Result, _Ty, _Arg> + mem_fun_ref(_Result (_Ty::*_Pm)(_Arg)) + { + return (mem_fun1_ref_t<_Result, _Ty, _Arg>(_Pm)); + } + +template inline + const_mem_fun_ref_t<_Result, _Ty> + mem_fun_ref(_Result (_Ty::*_Pm)() const) + { + return (const_mem_fun_ref_t<_Result, _Ty>(_Pm)); + } + +template inline + const_mem_fun1_ref_t<_Result, _Ty, _Arg> + mem_fun_ref(_Result (_Ty::*_Pm)(_Arg) const) + { + return (const_mem_fun1_ref_t<_Result, _Ty, _Arg>(_Pm)); + } + +} + + +#pragma warning(pop) +#pragma pack(pop) +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\functional" 2 3 + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +namespace std { + +template + class _Mem_fn + : public _Weak_types<_Memptr>::type + { +private: + _Memptr _Pm; + +public: + explicit _Mem_fn(_Memptr _Val) noexcept + : _Pm(_Val) + { + } + + template + auto operator()(_Types&&... _Args) const + -> decltype(::std:: invoke(_Pm, ::std:: forward<_Types>(_Args)...)) + { + return (::std:: invoke(_Pm, ::std:: forward<_Types>(_Args)...)); + } + }; + +template inline + _Mem_fn<_Rx _Ty::*> mem_fn(_Rx _Ty::* _Pm) noexcept + { + return (_Mem_fn<_Rx _Ty::*>(_Pm)); + } + + + + +class bad_function_call + : public ::std:: exception + { +public: + bad_function_call() noexcept + { + } + + virtual const char * what() const noexcept + { + return ("bad function call"); + } + }; + +[[noreturn]] void __cdecl _Xbad_function_call(); + + +template + class function; + +template inline + bool _Test_callable(const _Ty& _Arg, true_type) noexcept + { + return (!!_Arg); + } + +template inline + bool _Test_callable(const _Ty&, false_type) noexcept + { + return (true); + } + +template inline + bool _Test_callable(const _Ty& _Arg) noexcept + { + _Cat_base::value || (is_pointer<_Ty>::value + && is_function::type>::value)> _Testable; + return (_Test_callable(_Arg, _Testable)); + } + +template inline + bool _Test_callable(const function<_Fty>& _Arg) noexcept + { + return (!!_Arg); + } + + +#pragma warning(push) +#pragma warning(disable: 4265) +template + class _Func_base + { +public: + typedef _Func_base<_Rx, _Types...> _Myt; + + virtual _Myt *_Copy(void *) const = 0; + virtual _Myt *_Move(void *) = 0; + virtual _Rx _Do_call(_Types&&...) = 0; + virtual const type_info& _Target_type() const noexcept = 0; + virtual void _Delete_this(bool) noexcept = 0; + + const void *_Target(const type_info& _Info) const noexcept + { + return (_Target_type() == _Info ? _Get() : 0); + } + + _Func_base(const _Myt&) = delete; + _Myt& operator=(const _Myt&) = delete; + + _Func_base() = default; + + ~_Func_base() noexcept + { + } + +private: + virtual const void *_Get() const noexcept = 0; + }; +#pragma warning(pop) + + +const int _Num_ptrs = 6 + 16 / sizeof (void *); + +const size_t _Space_size = (_Num_ptrs - 1) * sizeof (void *); + +template + struct _Is_large + : bool_constant<_Space_size < sizeof (_Impl) + || !_Impl::_Nothrow_move::value> + { + }; + + +#pragma warning(push) +#pragma warning(disable: 4265) +template + class _Func_impl final + : public _Func_base<_Rx, _Types...> + { +public: + typedef _Func_impl<_Callable, _Alloc, _Rx, _Types...> _Myt; + typedef _Func_base<_Rx, _Types...> _Mybase; + typedef _Wrap_alloc<_Alloc> _Myalty0; + typedef typename _Myalty0::template rebind<_Myt>::other _Myalty; + typedef is_nothrow_move_constructible<_Callable> _Nothrow_move; + + template + _Func_impl(_Other1&& _Val, _Other2&& _Ax) + : _Mypair(_One_then_variadic_args_t(), + ::std:: forward<_Other2>(_Ax), ::std:: forward<_Other1>(_Val)) + { + } + + ~_Func_impl() noexcept + { + } + +private: + virtual _Mybase *_Copy(void *_Where) const + { + return (_Clone(_Where, _Is_large<_Myt>())); + } + + template + _Mybase *_Clone(_Void *, true_type) const + { + _Myalty _Al(_Myax()); + _Myt * _Ptr = _Al.allocate(1); + + try { + _Al.construct(_Ptr, _Callee(), _Myax()); + } catch (...) { + _Al.deallocate(_Ptr, 1); + throw; + } + + return (_Ptr); + } + + template + _Mybase *_Clone(_Void *_Where, false_type) const + { + _Myalty _Al(_Myax()); + _Myt * _Ptr = static_cast<_Myt *>(_Where); + _Al.construct(_Ptr, _Callee(), _Myax()); + return (_Ptr); + } + + virtual _Mybase *_Move(void *_Where) + { + _Myalty _Al(_Myax()); + _Myt *_Ptr = static_cast<_Myt *>(_Where); + _Al.construct(_Ptr, ::std:: move(_Callee()), ::std:: move(_Myax())); + return (_Ptr); + } + + virtual _Rx _Do_call(_Types&&... _Args) + { + return (_Invoke_ret(_Forced<_Rx>(), _Callee(), + ::std:: forward<_Types>(_Args)...)); + } + + virtual const type_info& _Target_type() const noexcept + { + return (typeid(_Callable)); + } + + virtual const void *_Get() const noexcept + { + return (::std:: addressof(_Callee())); + } + + virtual void _Delete_this(bool _Deallocate) noexcept + { + _Myalty _Al(_Myax()); + _Al.destroy(this); + if (_Deallocate) + _Al.deallocate(this, 1); + } + + _Compressed_pair<_Alloc, _Callable> _Mypair; + + _Alloc& _Myax() noexcept + { + return (_Mypair._Get_first()); + } + + const _Alloc& _Myax() const noexcept + { + return (_Mypair._Get_first()); + } + + _Callable& _Callee() noexcept + { + return (_Mypair._Get_second()); + } + + const _Callable& _Callee() const noexcept + { + return (_Mypair._Get_second()); + } + }; +#pragma warning(pop) + + +template + class _Func_class + : public _Arg_types<_Types...> + { +public: + typedef _Ret result_type; + + typedef _Func_class<_Ret, _Types...> _Myt; + typedef _Func_base<_Ret, _Types...> _Ptrt; + + _Func_class() noexcept + { + _Set(0); + } + + _Ret operator()(_Types... _Args) const + { + if (_Empty()) + _Xbad_function_call(); + return (_Getimpl()->_Do_call(::std:: forward<_Types>(_Args)...)); + } + + ~_Func_class() noexcept + { + _Tidy(); + } + +protected: + template + using _Result_of_invoking_t = result_of_t<_Fx(_Types...)>; + + template + using _Enable_if_returnable_t = enable_if_t< + is_convertible<_Inv_res, _Ret>::value || is_void<_Ret>::value>; + + bool _Empty() const noexcept + { + return (_Getimpl() == 0); + } + + void _Reset_copy(const _Myt& _Right) + { + if (_Right._Empty()) + ; + else + _Set(_Right._Getimpl()->_Copy(_Getspace())); + } + + void _Reset_move(_Myt&& _Right) + { + if (_Right._Empty()) + ; + else if (_Right._Local()) + { + _Set(_Right._Getimpl()->_Move(_Getspace())); + _Right._Tidy(); + } + else + { + _Set(_Right._Getimpl()); + _Right._Set(0); + } + } + + template + void _Reset(_Fx&& _Val) + { + _Reset_alloc(::std:: forward<_Fx>(_Val), allocator()); + } + + template + void _Reset_alloc(_Fx&& _Val, const _Alloc& _Ax) + { + if (!_Test_callable(_Val)) + { + return; + } + + typedef typename decay<_Fx>::type _Decayed; + typedef _Func_impl<_Decayed, _Alloc, _Ret, _Types...> _Myimpl; + _Myimpl *_Ptr = 0; + + typedef _Wrap_alloc<_Alloc> _Alimpl0; + typedef typename _Alimpl0::template rebind<_Myimpl>::other _Alimpl; + _Alimpl _Al(_Ax); + + _Reset_impl(::std:: forward<_Fx>(_Val), _Ax, + _Ptr, _Al, _Is_large<_Myimpl>()); + } + + template + void _Reset_impl(_Fx&& _Val, const _Alloc& _Ax, + _Myimpl *, _Alimpl& _Al, true_type) + { + _Myimpl *_Ptr = _Al.allocate(1); + + try { + _Al.construct(_Ptr, ::std:: forward<_Fx>(_Val), _Ax); + } catch (...) { + _Al.deallocate(_Ptr, 1); + throw; + } + + _Set(_Ptr); + } + + template + void _Reset_impl(_Fx&& _Val, const _Alloc& _Ax, + _Myimpl *, _Alimpl& _Al, false_type) + { + _Myimpl *_Ptr = static_cast<_Myimpl *>(_Getspace()); + _Al.construct(_Ptr, ::std:: forward<_Fx>(_Val), _Ax); + _Set(_Ptr); + } + + void _Tidy() noexcept + { + if (!_Empty()) + { + _Getimpl()->_Delete_this(!_Local()); + _Set(0); + } + } + + void _Swap(_Myt& _Right) noexcept + { + if (!_Local() && !_Right._Local()) + { + _Ptrt *_Temp = _Getimpl(); + _Set(_Right._Getimpl()); + _Right._Set(_Temp); + } + else + { + _Myt _Temp; + _Temp._Reset_move(::std:: move(*this)); + _Reset_move(::std:: move(_Right)); + _Right._Reset_move(::std:: move(_Temp)); + } + } + + const type_info& _Target_type() const noexcept + { + return (_Getimpl() ? _Getimpl()->_Target_type() : typeid(void)); + } + + const void *_Target(const type_info& _Info) const noexcept + { + return (_Getimpl() ? _Getimpl()->_Target(_Info) : 0); + } + +private: + bool _Local() const noexcept + { + return (_Getimpl() == _Getspace()); + } + + union _Storage + { + max_align_t _Dummy1; + char _Dummy2[_Space_size]; + _Ptrt *_Ptrs[_Num_ptrs]; + }; + + _Storage _Mystorage; + enum {_EEN_IMPL = _Num_ptrs - 1}; + _Ptrt *_Getimpl() const noexcept + { + return (_Mystorage._Ptrs[_Num_ptrs - 1]); + } + + void _Set(_Ptrt *_Ptr) noexcept + { + _Mystorage._Ptrs[_Num_ptrs - 1] = _Ptr; + } + + void *_Getspace() noexcept + { + return (&_Mystorage); + } + + const void *_Getspace() const noexcept + { + return (&_Mystorage); + } + }; + + +template + struct _Get_function_impl; +# 466 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\functional" 3 +template struct _Get_function_impl<_Ret __cdecl (_Types...)> { typedef _Func_class<_Ret, _Types...> type; }; template struct _Get_function_impl<_Ret __fastcall (_Types...)> { typedef _Func_class<_Ret, _Types...> type; }; template struct _Get_function_impl<_Ret __stdcall (_Types...)> { typedef _Func_class<_Ret, _Types...> type; }; template struct _Get_function_impl<_Ret __vectorcall (_Types...)> { typedef _Func_class<_Ret, _Types...> type; }; + + + +template + class function + : public _Get_function_impl<_Fty>::type + { +private: + typedef typename _Get_function_impl<_Fty>::type _Mybase; + +public: + typedef function<_Fty> _Myt; + + function() noexcept + { + } + + function(nullptr_t) noexcept + { + } + + function(const _Myt& _Right) + { + this->_Reset_copy(_Right); + } + + template, + class = typename _Mybase::template _Enable_if_returnable_t<_Inv_res> > + function(_Fx _Func) + { + this->_Reset(::std:: move(_Func)); + } + + template + function(allocator_arg_t, const _Alloc&) noexcept + { + } + + template + function(allocator_arg_t, const _Alloc&, nullptr_t) noexcept + { + } + + template + function(allocator_arg_t, const _Alloc& _Ax, const _Myt& _Right) + { + this->_Reset_alloc(_Right, _Ax); + } + + template, + class = typename _Mybase::template _Enable_if_returnable_t<_Inv_res> > + function(allocator_arg_t, const _Alloc& _Ax, _Fx _Func) + { + this->_Reset_alloc(::std:: move(_Func), _Ax); + } + + ~function() noexcept + { + } + + _Myt& operator=(const _Myt& _Right) + { + _Myt(_Right).swap(*this); + return (*this); + } + + function(_Myt&& _Right) + { + this->_Reset_move(::std:: move(_Right)); + } + + template + function(allocator_arg_t, const _Alloc& _Al, _Myt&& _Right) + { + this->_Reset_alloc(::std:: move(_Right), _Al); + } + + _Myt& operator=(_Myt&& _Right) + { + if (this != &_Right) + { + this->_Tidy(); + this->_Reset_move(::std:: move(_Right)); + } + return (*this); + } + + template&>, + class = typename _Mybase::template _Enable_if_returnable_t<_Inv_res> > + _Myt& operator=(_Fx&& _Func) + { + _Myt(::std:: forward<_Fx>(_Func)).swap(*this); + return (*this); + } + + + template + void assign(_Fx&& _Func, const _Alloc& _Ax) + { + _Myt(allocator_arg, _Ax, ::std:: forward<_Fx>(_Func)).swap(*this); + } + + + _Myt& operator=(nullptr_t) noexcept + { + this->_Tidy(); + return (*this); + } + + template + _Myt& operator=(reference_wrapper<_Fx> _Func) noexcept + { + this->_Tidy(); + this->_Reset(_Func); + return (*this); + } + + void swap(_Myt& _Right) noexcept + { + this->_Swap(_Right); + } + + explicit operator bool() const noexcept + { + return (!this->_Empty()); + } + + const type_info& target_type() const noexcept + { + return (this->_Target_type()); + } + + template + _Fx *target() noexcept + { + return (static_cast<_Fx *>(const_cast( + this->_Target(typeid(_Fx))))); + } + + template + const _Fx *target() const noexcept + { + return (static_cast(this->_Target(typeid(_Fx)))); + } + }; + + +template inline + void swap(function<_Fty>& _Left, function<_Fty>& _Right) noexcept + { + _Left.swap(_Right); + } + + +template inline + bool operator==(const function<_Fty>& _Other, + nullptr_t) noexcept + { + return (!_Other); + } + +template inline + bool operator==(nullptr_t, + const function<_Fty>& _Other) noexcept + { + return (!_Other); + } + +template inline + bool operator!=(const function<_Fty>& _Other, + nullptr_t) noexcept + { + return (static_cast(_Other)); + } + +template inline + bool operator!=(nullptr_t, + const function<_Fty>& _Other) noexcept + { + return (static_cast(_Other)); + } + + + +template + struct _Ph + { + }; + +template + struct is_placeholder + : integral_constant + { + }; + +template + struct is_placeholder<_Ph<_Nx> > + : integral_constant + { + }; + +template + struct is_placeholder + : is_placeholder<_Tx> + { + }; + +template + struct is_placeholder + : is_placeholder<_Tx> + { + }; + +template + struct is_placeholder + : is_placeholder<_Tx> + { + }; + + +template + constexpr int is_placeholder_v = is_placeholder<_Ty>::value; + + + +template + class _Binder; + + +template + struct is_bind_expression + : false_type + { + }; + +template + struct is_bind_expression<_Binder<_Ret, _Fx, _Types...> > + : true_type + { + }; + +template + struct is_bind_expression + : is_bind_expression<_Tx> + { + }; + +template + struct is_bind_expression + : is_bind_expression<_Tx> + { + }; + +template + struct is_bind_expression + : is_bind_expression<_Tx> + { + }; + + +template + constexpr bool is_bind_expression_v = is_bind_expression<_Ty>::value; + + + +template::_Is_refwrap, + bool = is_bind_expression<_Cv_TiD>::value, + int = is_placeholder<_Cv_TiD>::value> + struct _Select_fixer; + +template + struct _Select_fixer<_Cv_TiD, true, false, 0> + { + template + static auto _Fix(_Cv_TiD& _Tid, _Untuple&&) + -> typename _Cv_TiD::type& + { + return (_Tid.get()); + } + }; + +template + struct _Select_fixer<_Cv_TiD, false, true, 0> + { + template + static auto _Apply(_Cv_TiD& _Tid, _Untuple&& _Ut, + integer_sequence) + -> decltype(_Tid(::std:: get<_Jx>(::std:: move(_Ut))...)) + { + return (_Tid(::std:: get<_Jx>(::std:: move(_Ut))...)); + } + + template + static auto _Fix(_Cv_TiD& _Tid, _Untuple&& _Ut) + -> decltype(_Apply(_Tid, ::std:: move(_Ut), + make_integer_sequence::value>())) + { + return (_Apply(_Tid, ::std:: move(_Ut), + make_integer_sequence::value>())); + } + }; + +template + struct _Select_fixer<_Cv_TiD, false, false, 0> + { + template + static _Cv_TiD& _Fix(_Cv_TiD& _Tid, _Untuple&&) + { + return (_Tid); + } + }; + +template + struct _Select_fixer<_Cv_TiD, false, false, _Jx> + { + static_assert(_Jx > 0, "invalid is_placeholder value"); + + template + static auto _Fix(_Cv_TiD&, _Untuple&& _Ut) + -> decltype(::std:: get<_Jx - 1>(::std:: move(_Ut))) + { + return (::std:: get<_Jx - 1>(::std:: move(_Ut))); + } + }; + +template inline + auto _Fix_arg(_Cv_TiD& _Tid, _Untuple&& _Ut) + -> decltype(_Select_fixer<_Cv_TiD>::_Fix(_Tid, ::std:: move(_Ut))) + { + return (_Select_fixer<_Cv_TiD>::_Fix(_Tid, ::std:: move(_Ut))); + } + + +template inline + auto _Call_binder(_Forced<_Ret> _Fr, integer_sequence, + _Cv_FD& _Obj, _Cv_tuple_TiD& _Tpl, _Untuple&& _Ut) + -> decltype(_Invoke_ret(_Fr, _Obj, _Fix_arg( + ::std:: get<_Ix>(_Tpl), ::std:: move(_Ut))...)) + { + (void) _Tpl; + (void) _Ut; + return (_Invoke_ret(_Fr, _Obj, _Fix_arg( + ::std:: get<_Ix>(_Tpl), ::std:: move(_Ut))...)); + } + + +template + struct _Forced_result_type + { + typedef _Ret result_type; + }; + +template + struct _Binder_result_type + { + typedef typename decay<_Fx>::type _Decayed; + + typedef typename _Weak_types<_Decayed>::type _All_weak_types; + + typedef typename _If::value, + _Weak_result_type<_All_weak_types>, + _Forced_result_type<_Ret> >::type type; + }; + +template + class _Binder + : public _Binder_result_type<_Ret, _Fx>::type + { +private: + typedef make_integer_sequence _Seq; + typedef typename decay<_Fx>::type _First; + typedef tuple::type...> _Second; + + _Compressed_pair<_First, _Second> _Mypair; + +public: + explicit _Binder(_Fx&& _Func, _Types&&... _Args) + : _Mypair(_One_then_variadic_args_t(), + ::std:: forward<_Fx>(_Func), ::std:: forward<_Types>(_Args)...) + { + } +# 881 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\functional" 3 +template auto operator()(_Unbound&&... _Unbargs) -> decltype(_Call_binder(_Forced<_Ret>(), _Seq(), _Mypair._Get_first(), _Mypair._Get_second(), ::std:: forward_as_tuple(::std:: forward<_Unbound>(_Unbargs)...))) { return (_Call_binder(_Forced<_Ret>(), _Seq(), _Mypair._Get_first(), _Mypair._Get_second(), ::std:: forward_as_tuple(::std:: forward<_Unbound>(_Unbargs)...))); } template auto operator()(_Unbound&&... _Unbargs) const -> decltype(_Call_binder(_Forced<_Ret>(), _Seq(), _Mypair._Get_first(), _Mypair._Get_second(), ::std:: forward_as_tuple(::std:: forward<_Unbound>(_Unbargs)...))) { return (_Call_binder(_Forced<_Ret>(), _Seq(), _Mypair._Get_first(), _Mypair._Get_second(), ::std:: forward_as_tuple(::std:: forward<_Unbound>(_Unbargs)...))); } + + }; + + +template inline + _Binder<_Unforced, _Fx, _Types...> bind(_Fx&& _Func, _Types&&... _Args) + { + return (_Binder<_Unforced, _Fx, _Types...>( + ::std:: forward<_Fx>(_Func), ::std:: forward<_Types>(_Args)...)); + } + + +template inline + _Binder<_Ret, _Fx, _Types...> bind(_Fx&& _Func, _Types&&... _Args) + { + return (_Binder<_Ret, _Fx, _Types...>( + ::std:: forward<_Fx>(_Func), ::std:: forward<_Types>(_Args)...)); + } + + + namespace placeholders { +constexpr _Ph<1> _1{}; +constexpr _Ph<2> _2{}; +constexpr _Ph<3> _3{}; +constexpr _Ph<4> _4{}; +constexpr _Ph<5> _5{}; +constexpr _Ph<6> _6{}; +constexpr _Ph<7> _7{}; +constexpr _Ph<8> _8{}; +constexpr _Ph<9> _9{}; +constexpr _Ph<10> _10{}; +constexpr _Ph<11> _11{}; +constexpr _Ph<12> _12{}; +constexpr _Ph<13> _13{}; +constexpr _Ph<14> _14{}; +constexpr _Ph<15> _15{}; +constexpr _Ph<16> _16{}; +constexpr _Ph<17> _17{}; +constexpr _Ph<18> _18{}; +constexpr _Ph<19> _19{}; +constexpr _Ph<20> _20{}; + } + + +namespace tr1 { +using ::std:: bad_function_call; +using ::std:: bind; +using ::std:: function; +using ::std:: is_bind_expression; +using ::std:: is_placeholder; +using ::std:: mem_fn; +using ::std:: swap; + +namespace placeholders { + using namespace ::std:: placeholders; + } +} + +} + +namespace std { + +template + struct uses_allocator, _Alloc> + : true_type + { + }; +} + +#pragma warning(pop) +#pragma pack(pop) +# 9 "../LEngine/Object.h" 2 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\map" 1 3 + + + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree" 1 3 + + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4127) +namespace std { + +template + class _Tree_unchecked_const_iterator + : public _Iterator012 + { +public: + typedef _Tree_unchecked_const_iterator<_Mytree, _Base> _Myiter; + typedef bidirectional_iterator_tag iterator_category; + + typedef typename _Mytree::_Nodeptr _Nodeptr; + typedef typename _Mytree::value_type value_type; + typedef typename _Mytree::difference_type difference_type; + typedef typename _Mytree::const_pointer pointer; + typedef typename _Mytree::const_reference reference; + + _Tree_unchecked_const_iterator() + : _Ptr() + { + } + + _Tree_unchecked_const_iterator(_Nodeptr _Pnode, const _Mytree *_Plist) + : _Ptr(_Pnode) + { + this->_Adopt(_Plist); + } + + reference operator*() const + { + return (_Mytree::_Myval(_Ptr)); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + if (_Mytree::_Isnil(_Ptr)) + ; + else if (!_Mytree::_Isnil(_Mytree::_Right(_Ptr))) + _Ptr = _Mytree::_Min( + _Mytree::_Right(_Ptr)); + else + { + _Nodeptr _Pnode; + while (!_Mytree::_Isnil(_Pnode = _Mytree::_Parent(_Ptr)) + && _Ptr == _Mytree::_Right(_Pnode)) + _Ptr = _Pnode; + _Ptr = _Pnode; + } + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + if (_Mytree::_Isnil(_Ptr)) + _Ptr = _Mytree::_Right(_Ptr); + else if (!_Mytree::_Isnil(_Mytree::_Left(_Ptr))) + _Ptr = _Mytree::_Max( + _Mytree::_Left(_Ptr)); + else + { + _Nodeptr _Pnode; + while (!_Mytree::_Isnil(_Pnode = _Mytree::_Parent(_Ptr)) + && _Ptr == _Mytree::_Left(_Pnode)) + _Ptr = _Pnode; + if (_Mytree::_Isnil(_Ptr)) + ; + else + _Ptr = _Pnode; + } + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + + bool operator==(const _Myiter& _Right) const + { + return (_Ptr == _Right._Ptr); + } + + bool operator!=(const _Myiter& _Right) const + { + return (!(*this == _Right)); + } + + _Nodeptr _Mynode() const + { + return (_Ptr); + } + + _Nodeptr _Ptr; + }; + + +template + class _Tree_unchecked_iterator + : public _Tree_unchecked_const_iterator<_Mytree> + { +public: + typedef _Tree_unchecked_iterator<_Mytree> _Myiter; + typedef _Tree_unchecked_const_iterator<_Mytree> _Mybase; + typedef bidirectional_iterator_tag iterator_category; + + typedef typename _Mytree::_Nodeptr _Nodeptr; + typedef typename _Mytree::value_type value_type; + typedef typename _Mytree::difference_type difference_type; + typedef typename _Mytree::pointer pointer; + typedef typename _Mytree::reference reference; + + _Tree_unchecked_iterator() + { + } + + _Tree_unchecked_iterator(_Nodeptr _Pnode, const _Mytree *_Plist) + : _Mybase(_Pnode, _Plist) + { + } + + reference operator*() const + { + return ((reference)**(_Mybase *)this); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + ++static_cast<_Mybase&>(*this); + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + --static_cast<_Mybase&>(*this); + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + }; + + +template + class _Tree_const_iterator + : public _Tree_unchecked_const_iterator<_Mytree, _Iterator_base> + { +public: + typedef _Tree_const_iterator<_Mytree> _Myiter; + typedef _Tree_unchecked_const_iterator<_Mytree, _Iterator_base> _Mybase; + typedef bidirectional_iterator_tag iterator_category; + + typedef typename _Mytree::_Nodeptr _Nodeptr; + typedef typename _Mytree::value_type value_type; + typedef typename _Mytree::difference_type difference_type; + typedef typename _Mytree::const_pointer pointer; + typedef typename _Mytree::const_reference reference; + + _Tree_const_iterator() + : _Mybase() + { + } + + _Tree_const_iterator(_Nodeptr _Pnode, const _Mytree *_Plist) + : _Mybase(_Pnode, _Plist) + { + } + + typedef _Tree_unchecked_const_iterator<_Mytree> _Unchecked_type; + + _Myiter& _Rechecked(_Unchecked_type _Right) + { + this->_Ptr = _Right._Ptr; + return (*this); + } + + _Unchecked_type _Unchecked() const + { + return (_Unchecked_type(this->_Ptr, (_Mytree *)this->_Getcont())); + } + + reference operator*() const + { + + const auto _Mycont = static_cast(this->_Getcont()); + if (_Mycont == 0 + || this->_Ptr == nullptr_t{} + || this->_Ptr == _Mycont->_Myhead) + { + _Debug_message(L"map/set iterator not dereferencable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 238); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 239, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 239, 0); }; + } +# 249 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree" 3 + return (_Mytree::_Myval(this->_Ptr)); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + + if (this->_Getcont() == 0 + || this->_Ptr == nullptr_t{} + || _Mytree::_Isnil(this->_Ptr)) + { + _Debug_message(L"map/set iterator not incrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 264); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 265, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 265, 0); }; + } + + + + + + + ++static_cast<_Mybase&>(*this); + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + + if (this->_Getcont() == 0 + || this->_Ptr == nullptr_t{}) + { + _Debug_message(L"map/set iterator not decrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 290); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 291, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 291, 0); }; + } + + _Nodeptr _Ptrsav = this->_Ptr; + --static_cast<_Mybase&>(*this); + if (_Ptrsav == this->_Ptr) + { + _Debug_message(L"map/set iterator not decrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 298); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 299, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 299, 0); }; + } +# 313 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree" 3 + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + + bool operator==(const _Myiter& _Right) const + { + + if (this->_Getcont() != _Right._Getcont()) + { + _Debug_message(L"map/set iterators incompatible", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 328); + { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 329, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 329, 0); }; + } + + + + + + return (this->_Ptr == _Right._Ptr); + } + + bool operator!=(const _Myiter& _Right) const + { + return (!(*this == _Right)); + } + }; + +template inline + typename _Tree_const_iterator<_Mytree>::_Unchecked_type + _Unchecked(_Tree_const_iterator<_Mytree> _Iter) + { + return (_Iter._Unchecked()); + } + +template inline + _Tree_const_iterator<_Mytree>& + _Rechecked(_Tree_const_iterator<_Mytree>& _Iter, + typename _Tree_const_iterator<_Mytree> + ::_Unchecked_type _Right) + { + return (_Iter._Rechecked(_Right)); + } + + +template + class _Tree_iterator + : public _Tree_const_iterator<_Mytree> + { +public: + typedef _Tree_iterator<_Mytree> _Myiter; + typedef _Tree_const_iterator<_Mytree> _Mybase; + typedef bidirectional_iterator_tag iterator_category; + + typedef typename _Mytree::_Nodeptr _Nodeptr; + typedef typename _Mytree::value_type value_type; + typedef typename _Mytree::difference_type difference_type; + + typedef typename _Mytree::pointer pointer; + typedef typename _Mytree::reference reference; + + _Tree_iterator() + { + } + + _Tree_iterator(_Nodeptr _Pnode, const _Mytree *_Plist) + : _Mybase(_Pnode, _Plist) + { + } + + typedef _Tree_unchecked_iterator<_Mytree> _Unchecked_type; + + _Myiter& _Rechecked(_Unchecked_type _Right) + { + this->_Ptr = _Right._Ptr; + return (*this); + } + + _Unchecked_type _Unchecked() const + { + return (_Unchecked_type(this->_Ptr, static_cast(this->_Getcont()))); + } + + reference operator*() const + { + return ((reference)**(_Mybase *)this); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + ++static_cast<_Mybase&>(*this); + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + --static_cast<_Mybase&>(*this); + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + }; + +template inline + typename _Tree_iterator<_Mytree>::_Unchecked_type + _Unchecked(_Tree_iterator<_Mytree> _Iter) + { + return (_Iter._Unchecked()); + } + +template inline + _Tree_iterator<_Mytree>& + _Rechecked(_Tree_iterator<_Mytree>& _Iter, + typename _Tree_iterator<_Mytree> + ::_Unchecked_type _Right) + { + return (_Iter._Rechecked(_Right)); + } + + +template + struct _Tree_iter_types + { + typedef _Value_type value_type; + typedef _Size_type size_type; + typedef _Difference_type difference_type; + typedef _Pointer pointer; + typedef _Const_pointer const_pointer; + typedef _Reference reference; + typedef _Const_reference const_reference; + typedef _Nodeptr_type _Nodeptr; + }; + +template + struct _Tree_node + { + _Voidptr _Left; + _Voidptr _Parent; + _Voidptr _Right; + char _Color; + char _Isnil; + _Value_type _Myval; + + private: + _Tree_node& operator=(const _Tree_node&); + }; + +template + struct _Tree_node<_Value_type, void *> + { + typedef _Tree_node<_Value_type, void *> *_Nodeptr; + _Nodeptr _Left; + _Nodeptr _Parent; + _Nodeptr _Right; + char _Color; + char _Isnil; + _Value_type _Myval; + + private: + _Tree_node& operator=(const _Tree_node&); + }; + +template + struct _Tree_simple_types + : public _Simple_types<_Ty> + { + typedef _Tree_node<_Ty, void *> _Node; + typedef _Node *_Nodeptr; + }; + +template + struct _Tree_base_types + { + typedef _Alloc0 _Alloc; + typedef _Tree_base_types<_Ty, _Alloc> _Myt; + + typedef _Wrap_alloc<_Alloc> _Alty0; + typedef typename _Alty0::template rebind<_Ty>::other _Alty; + + typedef typename _Get_voidptr<_Alty, typename _Alty::pointer>::type + _Voidptr; + typedef _Tree_node _Node; + + typedef typename _Alty::template rebind<_Node>::other _Alnod_type; + typedef typename _Alnod_type::pointer _Nodeptr; + typedef _Nodeptr& _Nodepref; + + typedef typename _If<_Is_simple_alloc<_Alty>::value, + _Tree_simple_types, + _Tree_iter_types >::type + _Val_types; + }; + + +template + class _Tree_val + : public _Container_base + { +public: + typedef _Tree_val<_Val_types> _Myt; + + typedef typename _Val_types::_Nodeptr _Nodeptr; + typedef _Nodeptr& _Nodepref; + + typedef typename _Val_types::value_type value_type; + typedef typename _Val_types::size_type size_type; + typedef typename _Val_types::difference_type difference_type; + typedef typename _Val_types::pointer pointer; + typedef typename _Val_types::const_pointer const_pointer; + typedef typename _Val_types::reference reference; + typedef typename _Val_types::const_reference const_reference; + + typedef _Tree_const_iterator<_Myt> const_iterator; + typedef _Tree_iterator<_Myt> iterator; + + _Tree_val() + : _Myhead(), + _Mysize(0) + { + } + + enum _Redbl + { + _Red, _Black}; + + static char& _Color(_Nodeptr _Pnode) + { + return ((char&)_Pnode->_Color); + } + + static char& _Isnil(_Nodeptr _Pnode) + { + return ((char&)_Pnode->_Isnil); + } + + static _Nodepref _Left(_Nodeptr _Pnode) + { + return ((_Nodepref)_Pnode->_Left); + } + + static _Nodepref _Parent(_Nodeptr _Pnode) + { + return ((_Nodepref)_Pnode->_Parent); + } + + static _Nodepref _Right(_Nodeptr _Pnode) + { + return ((_Nodepref)_Pnode->_Right); + } + + static reference _Myval(_Nodeptr _Pnode) + { + return ((reference)_Pnode->_Myval); + } + + static _Nodeptr _Max(_Nodeptr _Pnode) + { + while (!_Isnil(_Right(_Pnode))) + _Pnode = _Right(_Pnode); + return (_Pnode); + } + + static _Nodeptr _Min(_Nodeptr _Pnode) + { + while (!_Isnil(_Left(_Pnode))) + _Pnode = _Left(_Pnode); + return (_Pnode); + } + + _Nodeptr _Myhead; + size_type _Mysize; + }; + + +template + class _Tree_comp_alloc + { +public: + typedef _Tree_comp_alloc<_Traits> _Myt; + + typedef typename _Traits::allocator_type allocator_type; + typedef typename _Traits::key_compare key_compare; + + typedef _Tree_base_types _Alloc_types; + + typedef typename _Alloc_types::_Alloc _Alloc; + typedef typename _Alloc_types::_Alnod_type _Alty; + typedef typename _Alloc_types::_Node _Node; + typedef typename _Alloc_types::_Nodeptr _Nodeptr; + typedef typename _Alloc_types::_Val_types _Val_types; + + typedef _Nodeptr& _Nodepref; + + typedef typename _Val_types::value_type value_type; + typedef typename _Val_types::size_type size_type; + typedef typename _Val_types::difference_type difference_type; + typedef typename _Val_types::pointer pointer; + typedef typename _Val_types::const_pointer const_pointer; + typedef typename _Val_types::reference reference; + typedef typename _Val_types::const_reference const_reference; + + typedef _Tree_const_iterator<_Tree_val<_Val_types> > const_iterator; + typedef _Tree_iterator<_Tree_val<_Val_types> > iterator; + + enum _Redbl + { + _Red, _Black + }; + + static char& _Color(_Nodeptr _Pnode) + { + return (_Tree_val<_Val_types>::_Color(_Pnode)); + } + + static char& _Isnil(_Nodeptr _Pnode) + { + return (_Tree_val<_Val_types>::_Isnil(_Pnode)); + } + + static _Nodepref _Left(_Nodeptr _Pnode) + { + return (_Tree_val<_Val_types>::_Left(_Pnode)); + } + + static _Nodepref _Parent(_Nodeptr _Pnode) + { + return (_Tree_val<_Val_types>::_Parent(_Pnode)); + } + + static _Nodepref _Right(_Nodeptr _Pnode) + { + return (_Tree_val<_Val_types>::_Right(_Pnode)); + } + + static reference _Myval(_Nodeptr _Pnode) + { + return (_Tree_val<_Val_types>::_Myval(_Pnode)); + } + + static _Nodeptr _Max(_Nodeptr _Pnode) + { + return (_Tree_val<_Val_types>::_Max(_Pnode)); + } + + static _Nodeptr _Min(_Nodeptr _Pnode) + { + return (_Tree_val<_Val_types>::_Min(_Pnode)); + } + + _Tree_comp_alloc(const key_compare& _Parg) + : _Mypair(_One_then_variadic_args_t(), _Parg, + _Zero_then_variadic_args_t()) + { + _Construct(); + } + + template, _Myt>::value> > + _Tree_comp_alloc(const key_compare& _Parg, _Any_alloc&& _Al) + : _Mypair(_One_then_variadic_args_t(), _Parg, + _One_then_variadic_args_t(), + ::std:: forward<_Any_alloc>(_Al)) + { + _Construct(); + } +# 740 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree" 3 + void _Construct() + { + _Myhead() = _Buyheadnode(); + try { + _Alloc_proxy(); + } catch (...) { + _Freeheadnode(_Myhead()); + throw; + } + } + + ~_Tree_comp_alloc() noexcept + { + _Freeheadnode(_Myhead()); + _Free_proxy(); + } + + void _Copy_alloc(const _Alty& _Al) + { + _Free_proxy(); + _Pocca(_Getal(), _Al); + _Alloc_proxy(); + } + + void _Move_alloc(_Alty& _Al) + { + _Free_proxy(); + _Pocma(_Getal(), _Al); + _Alloc_proxy(); + } + + void _Alloc_proxy() + { + typename _Alty::template rebind<_Container_proxy>::other + _Alproxy(_Getal()); + _Myproxy() = _Unfancy(_Alproxy.allocate(1)); + _Alproxy.construct(_Myproxy(), _Container_proxy()); + _Myproxy()->_Mycont = &_Get_data(); + } + + void _Free_proxy() + { + typename _Alty::template rebind<_Container_proxy>::other + _Alproxy(_Getal()); + _Orphan_all(); + _Alproxy.destroy(_Myproxy()); + _Alproxy.deallocate(_Alproxy.address(*_Myproxy()), 1); + _Myproxy() = 0; + } + + _Iterator_base12 **_Getpfirst() const + { + return (_Get_data()._Getpfirst()); + } + + _Container_proxy * & _Myproxy() noexcept + { + return (_Get_data()._Myproxy); + } + + _Container_proxy * const & _Myproxy() const noexcept + { + return (_Get_data()._Myproxy); + } + + + void _Orphan_all() + { + _Get_data()._Orphan_all(); + } + + void _Swap_all(_Myt& _Right) + { + _Get_data()._Swap_all(_Right._Get_data()); + } + + _Nodeptr _Buyheadnode() + { + _Nodeptr _Pnode = _Getal().allocate(1); + + try { + _Getal().construct( + ::std:: addressof(_Left(_Pnode)), _Pnode); + _Getal().construct( + ::std:: addressof(_Parent(_Pnode)), _Pnode); + _Getal().construct( + ::std:: addressof(_Right(_Pnode)), _Pnode); + } catch (...) { + _Getal().deallocate(_Pnode, 1); + throw; + } + + _Color(_Pnode) = _Black; + _Isnil(_Pnode) = true; + return (_Pnode); + } + + void _Freeheadnode(_Nodeptr _Pnode) + { + _Getal().destroy( + ::std:: addressof(_Left(_Pnode))); + _Getal().destroy( + ::std:: addressof(_Parent(_Pnode))); + _Getal().destroy( + ::std:: addressof(_Right(_Pnode))); + _Getal().deallocate(_Pnode, 1); + } + + _Nodeptr _Buynode0() + { + _Nodeptr _Pnode = _Getal().allocate(1); + + try { + _Getal().construct( + ::std:: addressof(_Left(_Pnode)), _Myhead()); + _Getal().construct( + ::std:: addressof(_Parent(_Pnode)), _Myhead()); + _Getal().construct( + ::std:: addressof(_Right(_Pnode)), _Myhead()); + } catch (...) { + _Getal().deallocate(_Pnode, 1); + throw; + } + + return (_Pnode); + } + + void _Freenode0(_Nodeptr _Pnode) + { + _Getal().destroy( + ::std:: addressof(_Left(_Pnode))); + _Getal().destroy( + ::std:: addressof(_Parent(_Pnode))); + _Getal().destroy( + ::std:: addressof(_Right(_Pnode))); + _Getal().deallocate(_Pnode, 1); + } + + template + _Nodeptr _Buynode(_Valty&&... _Val) + { + _Nodeptr _Pnode = _Buynode0(); + + this->_Color(_Pnode) = _Red; + this->_Isnil(_Pnode) = false; + + try { + this->_Getal().construct( + ::std:: addressof(_Myval(_Pnode)), + ::std:: forward<_Valty>(_Val)...); + } catch (...) { + _Freenode0(_Pnode); + throw; + } + + return (_Pnode); + } + + key_compare& _Getcomp() noexcept + { + return (_Mypair._Get_first()); + } + + const key_compare& _Getcomp() const noexcept + { + return (_Mypair._Get_first()); + } + + _Alty& _Getal() noexcept + { + return (_Mypair._Get_second()._Get_first()); + } + + const _Alty& _Getal() const noexcept + { + return (_Mypair._Get_second()._Get_first()); + } + + _Tree_val<_Val_types>& _Get_data() noexcept + { + return (_Mypair._Get_second()._Get_second()); + } + + const _Tree_val<_Val_types>& _Get_data() const noexcept + { + return (_Mypair._Get_second()._Get_second()); + } + + _Nodeptr& _Myhead() noexcept + { + return (_Get_data()._Myhead); + } + + const _Nodeptr& _Myhead() const noexcept + { + return (_Get_data()._Myhead); + } + + size_type& _Mysize() noexcept + { + return (_Get_data()._Mysize); + } + + const size_type& _Mysize() const noexcept + { + return (_Get_data()._Mysize); + } + +private: + _Compressed_pair > > _Mypair; + }; + + +template + class _Tree + : public _Tree_comp_alloc<_Traits> + { +public: + typedef _Tree<_Traits> _Myt; + typedef _Tree_comp_alloc<_Traits> _Mybase; + + typedef typename _Traits::key_type key_type; + typedef typename _Traits::value_compare value_compare; + enum + { + _Multi = _Traits::_Multi}; + + typedef typename _Mybase::_Node _Node; + typedef typename _Mybase::_Nodeptr _Nodeptr; + typedef typename _Mybase::_Alty _Alty; + + typedef typename _Mybase::key_compare key_compare; + typedef typename _Mybase::allocator_type allocator_type; + + typedef typename _Mybase::value_type value_type; + typedef typename _Mybase::size_type size_type; + typedef typename _Mybase::difference_type difference_type; + typedef typename _Mybase::pointer pointer; + typedef typename _Mybase::const_pointer const_pointer; + typedef typename _Mybase::reference reference; + typedef typename _Mybase::const_reference const_reference; + + typedef typename _Mybase::const_iterator const_iterator; + typedef typename _If::value, + typename _Mybase::const_iterator, + typename _Mybase::iterator>::type iterator; + + typedef ::std:: reverse_iterator reverse_iterator; + typedef ::std:: reverse_iterator const_reverse_iterator; + + typedef pair _Pairib; + typedef pair _Pairii; + typedef pair _Paircc; + + struct _Copy_tag + { + }; + struct _Move_tag + { + }; + + _Tree(const key_compare& _Parg) + : _Mybase(_Parg) + { + } + + _Tree(const key_compare& _Parg, + const allocator_type& _Al) + : _Mybase(_Parg, _Al) + { + } + + template + _Tree(const _Myt& _Right, _Any_alloc&& _Al) + : _Mybase(_Right.key_comp(), ::std:: forward<_Any_alloc>(_Al)) + { + try { + _Copy(_Right, _Copy_tag()); + } catch (...) { + _Tidy(); + throw; + } + } + + _Tree(_Myt&& _Right) + : _Mybase(_Right.key_comp(), ::std:: move(_Right._Getal())) + { + _Assign_rv(::std:: forward<_Myt>(_Right), true_type()); + } + + _Tree(_Myt&& _Right, const allocator_type& _Al) + : _Mybase(_Right.key_comp(), _Al) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + + _Myt& operator=(_Myt&& _Right) + { + if (this != &_Right) + { + clear(); + if (_Alty::propagate_on_container_move_assignment::value + && this->_Getal() != _Right._Getal()) + this->_Move_alloc(_Right._Getal()); + + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + return (*this); + } + + void _Assign_rv(_Myt&& _Right, true_type) + { + this->_Swap_all(_Right); + _Swap_adl(this->_Getcomp(), _Right._Getcomp()); + _Swap_adl(this->_Myhead(), _Right._Myhead()); + ::std:: swap(this->_Mysize(), _Right._Mysize()); + } + + void _Assign_rv(_Myt&& _Right, false_type) + { + if (get_allocator() == _Right.get_allocator()) + _Assign_rv(::std:: forward<_Myt>(_Right), true_type()); + else + _Copy(_Right, _Move_tag()); + } + + void _Assign_rv(_Myt&& _Right) + { + _Assign_rv(::std:: forward<_Myt>(_Right), + typename _Alty::propagate_on_container_move_assignment()); + } + + template + _Pairib emplace(_Valty&&... _Val) + { + _Nodeptr _Newnode = this->_Buynode(::std:: forward<_Valty>(_Val)...); + return (_Insert_nohint(false, + this->_Myval(_Newnode), _Newnode)); + } + + template + iterator emplace_hint(const_iterator _Where, _Valty&&... _Val) + { + _Nodeptr _Newnode = this->_Buynode(::std:: forward<_Valty>(_Val)...); + return (_Insert_hint(_Where, + this->_Myval(_Newnode), _Newnode)); + } + + ~_Tree() noexcept + { + _Tidy(); + } + + _Myt& operator=(const _Myt& _Right) + { + if (this != &_Right) + { + clear(); + if (this->_Getal() != _Right._Getal() + && _Alty::propagate_on_container_copy_assignment::value) + this->_Copy_alloc(_Right._Getal()); + + this->_Getcomp() = _Right._Getcomp(); + _Copy(_Right, _Copy_tag()); + } + return (*this); + } + + iterator begin() noexcept + { + return (iterator(_Lmost(), &this->_Get_data())); + } + + const_iterator begin() const noexcept + { + return (const_iterator(_Lmost(), &this->_Get_data())); + } + + iterator end() noexcept + { + return (iterator(this->_Myhead(), &this->_Get_data())); + } + + const_iterator end() const noexcept + { + return (const_iterator(this->_Myhead(), &this->_Get_data())); + } + + reverse_iterator rbegin() noexcept + { + return (reverse_iterator(end())); + } + + const_reverse_iterator rbegin() const noexcept + { + return (const_reverse_iterator(end())); + } + + reverse_iterator rend() noexcept + { + return (reverse_iterator(begin())); + } + + const_reverse_iterator rend() const noexcept + { + return (const_reverse_iterator(begin())); + } + + const_iterator cbegin() const noexcept + { + return (begin()); + } + + const_iterator cend() const noexcept + { + return (end()); + } + + const_reverse_iterator crbegin() const noexcept + { + return (rbegin()); + } + + const_reverse_iterator crend() const noexcept + { + return (rend()); + } + + size_type size() const noexcept + { + return (this->_Mysize()); + } + + size_type max_size() const noexcept + { + return (this->_Getal().max_size()); + } + + bool empty() const noexcept + { + return (size() == 0); + } + + allocator_type get_allocator() const noexcept + { + allocator_type _Ret(this->_Getal()); + return (_Ret); + } + + key_compare key_comp() const + { + return (this->_Getcomp()); + } + + value_compare value_comp() const + { + return (value_compare(key_comp())); + } + + template = 0> + _Pairib insert(const value_type& _Val) + { + return (_Insert_nohint(false, + _Val, _Nil())); + } + + template = 0> + iterator insert(const value_type& _Val) + { + return (_Insert_nohint(false, + _Val, _Nil()).first); + } + + template = 0> + _Pairib insert(value_type&& _Val) + { + return (_Insert_nohint(false, + ::std:: forward(_Val), _Nil())); + } + + template = 0> + iterator insert(value_type&& _Val) + { + return (_Insert_nohint(false, + ::std:: forward(_Val), _Nil()).first); + } + + iterator insert(const_iterator _Where, + const value_type& _Val) + { + return (_Insert_hint(_Where, + _Val, _Nil())); + } + + iterator insert(const_iterator _Where, value_type&& _Val) + { + return (_Insert_hint(_Where, + ::std:: forward(_Val), _Nil())); + } + + template + void insert(_Iter _First, _Iter _Last) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1248); + for (; _First != _Last; ++_First) + emplace_hint(end(), *_First); + } + + void insert(::std:: initializer_list _Ilist) + { + insert(_Ilist.begin(), _Ilist.end()); + } + + iterator erase(const_iterator _Where) + { + + if (_Where._Getcont() != &this->_Get_data() + || this->_Isnil(_Where._Mynode())) + _Debug_message(L"map/set erase iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1263); + _Nodeptr _Erasednode = _Where._Mynode(); + ++_Where; + _Orphan_ptr(_Erasednode); + + + + + + + _Nodeptr _Fixnode; + _Nodeptr _Fixnodeparent; + _Nodeptr _Pnode = _Erasednode; + + if (this->_Isnil(this->_Left(_Pnode))) + _Fixnode = this->_Right(_Pnode); + else if (this->_Isnil(this->_Right(_Pnode))) + _Fixnode = this->_Left(_Pnode); + else + { + _Pnode = _Where._Mynode(); + _Fixnode = this->_Right(_Pnode); + } + + if (_Pnode == _Erasednode) + { + _Fixnodeparent = this->_Parent(_Erasednode); + if (!this->_Isnil(_Fixnode)) + this->_Parent(_Fixnode) = _Fixnodeparent; + + if (_Root() == _Erasednode) + _Root() = _Fixnode; + else if (this->_Left(_Fixnodeparent) == _Erasednode) + this->_Left(_Fixnodeparent) = _Fixnode; + else + this->_Right(_Fixnodeparent) = + _Fixnode; + + if (_Lmost() == _Erasednode) + _Lmost() = this->_Isnil(_Fixnode) + ? _Fixnodeparent + : this->_Min(_Fixnode); + + if (_Rmost() == _Erasednode) + _Rmost() = this->_Isnil(_Fixnode) + ? _Fixnodeparent + : this->_Max(_Fixnode); + } + else + { + this->_Parent(this->_Left(_Erasednode)) = + _Pnode; + this->_Left(_Pnode) = + this->_Left(_Erasednode); + + if (_Pnode == this->_Right(_Erasednode)) + _Fixnodeparent = _Pnode; + else + { + _Fixnodeparent = + this->_Parent(_Pnode); + if (!this->_Isnil(_Fixnode)) + this->_Parent(_Fixnode) = _Fixnodeparent; + this->_Left(_Fixnodeparent) = _Fixnode; + this->_Right(_Pnode) = + this->_Right(_Erasednode); + this->_Parent(this->_Right(_Erasednode)) = + _Pnode; + } + + if (_Root() == _Erasednode) + _Root() = _Pnode; + else if (this->_Left(this->_Parent(_Erasednode)) == _Erasednode) + this->_Left(this->_Parent(_Erasednode)) = + _Pnode; + else + this->_Right(this->_Parent(_Erasednode)) = + _Pnode; + + this->_Parent(_Pnode) = + this->_Parent(_Erasednode); + ::std:: swap(this->_Color(_Pnode), + this->_Color(_Erasednode)); + } + + if (this->_Color(_Erasednode) == this->_Black) + { + for (; _Fixnode != _Root() + && this->_Color(_Fixnode) == this->_Black; + _Fixnodeparent = this->_Parent(_Fixnode)) + if (_Fixnode == this->_Left(_Fixnodeparent)) + { + _Pnode = this->_Right(_Fixnodeparent); + if (this->_Color(_Pnode) == this->_Red) + { + this->_Color(_Pnode) = this->_Black; + this->_Color(_Fixnodeparent) = this->_Red; + _Lrotate(_Fixnodeparent); + _Pnode = this->_Right(_Fixnodeparent); + } + + if (this->_Isnil(_Pnode)) + _Fixnode = _Fixnodeparent; + else if (this->_Color(this->_Left(_Pnode)) == this->_Black + && this->_Color(this->_Right(_Pnode)) == this->_Black) + { + this->_Color(_Pnode) = this->_Red; + _Fixnode = _Fixnodeparent; + } + else + { + if (this->_Color(this->_Right(_Pnode)) + == this->_Black) + { + this->_Color(this->_Left(_Pnode)) = this->_Black; + this->_Color(_Pnode) = this->_Red; + _Rrotate(_Pnode); + _Pnode = this->_Right(_Fixnodeparent); + } + + this->_Color(_Pnode) = this->_Color(_Fixnodeparent); + this->_Color(_Fixnodeparent) = this->_Black; + this->_Color(this->_Right(_Pnode)) = this->_Black; + _Lrotate(_Fixnodeparent); + break; + } + } + else + { + _Pnode = this->_Left(_Fixnodeparent); + if (this->_Color(_Pnode) == this->_Red) + { + this->_Color(_Pnode) = this->_Black; + this->_Color(_Fixnodeparent) = this->_Red; + _Rrotate(_Fixnodeparent); + _Pnode = this->_Left(_Fixnodeparent); + } + + if (this->_Isnil(_Pnode)) + _Fixnode = _Fixnodeparent; + else if (this->_Color(this->_Right(_Pnode)) == + this->_Black + && this->_Color(this->_Left(_Pnode)) == this->_Black) + { + this->_Color(_Pnode) = this->_Red; + _Fixnode = _Fixnodeparent; + } + else + { + if (this->_Color(this->_Left(_Pnode)) == this->_Black) + { + this->_Color(this->_Right(_Pnode)) = this->_Black; + this->_Color(_Pnode) = this->_Red; + _Lrotate(_Pnode); + _Pnode = this->_Left(_Fixnodeparent); + } + + this->_Color(_Pnode) = this->_Color(_Fixnodeparent); + this->_Color(_Fixnodeparent) = this->_Black; + this->_Color(this->_Left(_Pnode)) = this->_Black; + _Rrotate(_Fixnodeparent); + break; + } + } + + this->_Color(_Fixnode) = this->_Black; + } + + this->_Getal().destroy( + ::std:: addressof(this->_Myval(_Erasednode))); + + this->_Getal().deallocate(_Erasednode, 1); + + if (0 < this->_Mysize()) + --this->_Mysize(); + + return (iterator(_Where._Ptr, + &this->_Get_data())); + } + + iterator erase(const_iterator _First, const_iterator _Last) + { + if (_First == begin() && _Last == end()) + { + clear(); + return (begin()); + } + else + { + while (_First != _Last) + erase(_First++); + return (iterator(_First._Ptr, &this->_Get_data())); + } + } + + size_type erase(const key_type& _Keyval) + { + _Pairii _Where = equal_range(_Keyval); + size_type _Num = ::std:: distance(_Where.first, _Where.second); + erase(_Where.first, _Where.second); + return (_Num); + } + + void clear() noexcept + { + + this->_Orphan_ptr(nullptr_t{}); + + + _Erase(_Root()); + _Root() = this->_Myhead(); + _Lmost() = this->_Myhead(); + _Rmost() = this->_Myhead(); + this->_Mysize() = 0; + } + + iterator find(const key_type& _Keyval) + { + iterator _Where = lower_bound(_Keyval); + return (_Where == end() + || _Debug_lt_pred(this->_Getcomp(), _Keyval, this->_Key(_Where._Mynode()), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1484) + + ? end() : _Where); + } + + const_iterator find(const key_type& _Keyval) const + { + const_iterator _Where = lower_bound(_Keyval); + return (_Where == end() + || _Debug_lt_pred(this->_Getcomp(), _Keyval, this->_Key(_Where._Mynode()), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1493) + + ? end() : _Where); + } + + template + iterator find(const _Other& _Keyval) + { + iterator _Where = lower_bound(_Keyval); + return (_Where == end() + || _Debug_lt_pred(this->_Getcomp(), _Keyval, this->_Key(_Where._Mynode()), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1505) + + ? end() : _Where); + } + + template + const_iterator find(const _Other& _Keyval) const + { + const_iterator _Where = lower_bound(_Keyval); + return (_Where == end() + || _Debug_lt_pred(this->_Getcomp(), _Keyval, this->_Key(_Where._Mynode()), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1517) + + ? end() : _Where); + } + + size_type count(const key_type& _Keyval) const + { + _Paircc _Ans = equal_range(_Keyval); + return (::std:: distance(_Ans.first, _Ans.second)); + } + + template + size_type count(const _Other& _Keyval) const + { + _Paircc _Ans = equal_range(_Keyval); + return (::std:: distance(_Ans.first, _Ans.second)); + } + + iterator lower_bound(const key_type& _Keyval) + { + return (iterator(_Lbound(_Keyval), &this->_Get_data())); + } + + const_iterator lower_bound(const key_type& _Keyval) const + { + return (const_iterator(_Lbound(_Keyval), &this->_Get_data())); + } + + template + iterator lower_bound(const _Other& _Keyval) + { + return (iterator(_Lbound(_Keyval), &this->_Get_data())); + } + + template + const_iterator lower_bound(const _Other& _Keyval) const + { + return (const_iterator(_Lbound(_Keyval), &this->_Get_data())); + } + + iterator upper_bound(const key_type& _Keyval) + { + return (iterator(_Ubound(_Keyval), &this->_Get_data())); + } + + const_iterator upper_bound(const key_type& _Keyval) const + { + return (const_iterator(_Ubound(_Keyval), &this->_Get_data())); + } + + template + iterator upper_bound(const _Other& _Keyval) + { + return (iterator(_Ubound(_Keyval), &this->_Get_data())); + } + + template + const_iterator upper_bound(const _Other& _Keyval) const + { + return (const_iterator(_Ubound(_Keyval), &this->_Get_data())); + } + + _Pairii equal_range(const key_type& _Keyval) + { + return (_Eqrange(_Keyval)); + } + + _Paircc equal_range(const key_type& _Keyval) const + { + return (_Eqrange(_Keyval)); + } + + template + _Pairii equal_range(const _Other& _Keyval) + { + return (_Eqrange(_Keyval)); + } + + template + _Paircc equal_range(const _Other& _Keyval) const + { + return (_Eqrange(_Keyval)); + } + + void swap(_Myt& _Right) + { + if (this != &_Right) + { + _Pocs(this->_Getal(), _Right._Getal()); + this->_Swap_all(_Right); + _Swap_adl(this->_Getcomp(), _Right._Getcomp()); + _Swap_adl(this->_Myhead(), _Right._Myhead()); + ::std:: swap(this->_Mysize(), _Right._Mysize()); + } + } + +protected: + template + _Nodeptr _Buynode_if_nil(_Nodeptr _Node, _Valty&&) + { + return (_Node); + } + + template + _Nodeptr _Buynode_if_nil(_Nil, _Valty&& _Val) + { + return (this->_Buynode(::std:: forward<_Valty>(_Val))); + } + + void _Destroy_if_not_nil(_Nodeptr _Newnode) + { + this->_Getal().destroy( + ::std:: addressof(this->_Myval(_Newnode))); + + this->_Getal().deallocate(_Newnode, 1); + } + + void _Destroy_if_not_nil(_Nil) + { + } + + template + iterator _Insert_hint(const_iterator _Where, + _Valty&& _Val, _Nodety _Newnode) + { + const_iterator _Next; + bool _Leftish = false; + + try { + + + if (_Where._Getcont() != &this->_Get_data()) + _Debug_message(L"map/set insert iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1663); + + + if (size() == 0) + return (_Insert_at(true, this->_Myhead(), + ::std:: forward<_Valty>(_Val), _Newnode)); + else if (this->_Multi) + { + if (_Where == begin()) + { + if (!_Debug_lt_pred(this->_Getcomp(), this->_Key(_Where._Mynode()), this->_Kfn(_Val), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1674)) + + return (_Insert_at(true, _Where._Mynode(), + ::std:: forward<_Valty>(_Val), _Newnode)); + _Leftish = true; + } + else if (_Where == end()) + { + if (!_Debug_lt_pred(this->_Getcomp(), this->_Kfn(_Val), this->_Key(_Rmost()), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1682)) + + return (_Insert_at(false, _Rmost(), + ::std:: forward<_Valty>(_Val), _Newnode)); + } + else if (!_Debug_lt_pred(this->_Getcomp(), this->_Key(_Where._Mynode()), this->_Kfn(_Val), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1687) + + && !_Debug_lt_pred(this->_Getcomp(), this->_Kfn(_Val), this->_Key((--(_Next = _Where))._Mynode()), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1690)) + + + { + if (this->_Isnil(this->_Right(_Next._Mynode()))) + return (_Insert_at(false, _Next._Mynode(), + ::std:: forward<_Valty>(_Val), _Newnode)); + else + return (_Insert_at(true, _Where._Mynode(), + ::std:: forward<_Valty>(_Val), _Newnode)); + } + else if (!_Debug_lt_pred(this->_Getcomp(), this->_Kfn(_Val), this->_Key(_Where._Mynode()), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1700) + + && (++(_Next = _Where) == end() + || !_Debug_lt_pred(this->_Getcomp(), this->_Key(_Next._Mynode()), this->_Kfn(_Val), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1703))) + + { + if (this->_Isnil(this->_Right(_Where._Mynode()))) + return (_Insert_at(false, _Where._Mynode(), + ::std:: forward<_Valty>(_Val), _Newnode)); + else + return (_Insert_at(true, _Next._Mynode(), + ::std:: forward<_Valty>(_Val), _Newnode)); + } + else + _Leftish = true; + } + else + { + if (_Where == begin()) + { + if (_Debug_lt_pred(this->_Getcomp(), this->_Kfn(_Val), this->_Key(_Where._Mynode()), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1720)) + + return (_Insert_at(true, _Where._Mynode(), + ::std:: forward<_Valty>(_Val), _Newnode)); + } + else if (_Where == end()) + { + if (_Debug_lt_pred(this->_Getcomp(), this->_Key(_Rmost()), this->_Kfn(_Val), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1727)) + + return (_Insert_at(false, _Rmost(), + ::std:: forward<_Valty>(_Val), _Newnode)); + } + else if (_Debug_lt_pred(this->_Getcomp(), this->_Kfn(_Val), this->_Key(_Where._Mynode()), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1732) + + && _Debug_lt_pred(this->_Getcomp(), this->_Key((--(_Next = _Where))._Mynode()), this->_Kfn(_Val), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1735)) + + + { + if (this->_Isnil(this->_Right(_Next._Mynode()))) + return (_Insert_at(false, _Next._Mynode(), + ::std:: forward<_Valty>(_Val), _Newnode)); + else + return (_Insert_at(true, _Where._Mynode(), + ::std:: forward<_Valty>(_Val), _Newnode)); + } + else if (_Debug_lt_pred(this->_Getcomp(), this->_Key(_Where._Mynode()), this->_Kfn(_Val), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1745) + + && (++(_Next = _Where) == end() + || _Debug_lt_pred(this->_Getcomp(), this->_Kfn(_Val), this->_Key(_Next._Mynode()), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1748))) + + { + if (this->_Isnil(this->_Right(_Where._Mynode()))) + return (_Insert_at(false, _Where._Mynode(), + ::std:: forward<_Valty>(_Val), _Newnode)); + else + return (_Insert_at(true, _Next._Mynode(), + ::std:: forward<_Valty>(_Val), _Newnode)); + } + } + } catch (...) { + _Destroy_if_not_nil(_Newnode); + throw; + } + + return (_Insert_nohint(_Leftish, + ::std:: forward<_Valty>(_Val), _Newnode).first); + } + + template + _Pairib _Insert_nohint(bool _Leftish, + _Valty&& _Val, _Nodety _Newnode) + { + try { + _Nodeptr _Trynode = _Root(); + _Nodeptr _Wherenode = this->_Myhead(); + bool _Addleft = true; + + while (!this->_Isnil(_Trynode)) + { + _Wherenode = _Trynode; + if (_Leftish) + _Addleft = !_Debug_lt_pred(this->_Getcomp(), this->_Key(_Trynode), this->_Kfn(_Val), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1783); + + + else + _Addleft = _Debug_lt_pred(this->_Getcomp(), this->_Kfn(_Val), this->_Key(_Trynode), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1787); + + + _Trynode = _Addleft ? this->_Left(_Trynode) + : this->_Right(_Trynode); + } + + if (this->_Multi) + return (_Pairib(_Insert_at(_Addleft, _Wherenode, + ::std:: forward<_Valty>(_Val), _Newnode), true)); + else + { + iterator _Where = iterator(_Wherenode, &this->_Get_data()); + if (!_Addleft) + ; + else if (_Where == begin()) + return (_Pairib(_Insert_at(true, _Wherenode, + ::std:: forward<_Valty>(_Val), _Newnode), true)); + else + --_Where; + + if (_Debug_lt_pred(this->_Getcomp(), this->_Key(_Where._Mynode()), this->_Kfn(_Val), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1808)) + + + return (_Pairib(_Insert_at(_Addleft, _Wherenode, + ::std:: forward<_Valty>(_Val), _Newnode), true)); + else + { + _Destroy_if_not_nil(_Newnode); + return (_Pairib(_Where, false)); + } + } + } catch (...) { + _Destroy_if_not_nil(_Newnode); + throw; + } + } + + template + iterator _Insert_at(bool _Addleft, _Nodeptr _Wherenode, + _Valty&& _Val, _Nodety _Node) + { + if (max_size() - 1 <= this->_Mysize()) + { + _Destroy_if_not_nil(_Node); + _Xlength_error("map/set too long"); + } + _Nodeptr _Newnode = _Buynode_if_nil(_Node, + ::std:: forward<_Valty>(_Val)); + + ++this->_Mysize(); + _Newnode->_Parent = _Wherenode; + + if (_Wherenode == this->_Myhead()) + { + _Root() = _Newnode; + _Lmost() = _Newnode; + _Rmost() = _Newnode; + } + else if (_Addleft) + { + this->_Left(_Wherenode) = _Newnode; + if (_Wherenode == _Lmost()) + _Lmost() = _Newnode; + } + else + { + this->_Right(_Wherenode) = _Newnode; + if (_Wherenode == _Rmost()) + _Rmost() = _Newnode; + } + + for (_Nodeptr _Pnode = _Newnode; + this->_Color(this->_Parent(_Pnode)) == this->_Red; ) + if (this->_Parent(_Pnode) + == this->_Left(this->_Parent(this->_Parent(_Pnode)))) + { + _Wherenode = + this->_Right(this->_Parent(this->_Parent(_Pnode))); + if (this->_Color(_Wherenode) == this->_Red) + { + this->_Color(this->_Parent(_Pnode)) = this->_Black; + this->_Color(_Wherenode) = this->_Black; + this->_Color(this->_Parent(this->_Parent(_Pnode))) + = this->_Red; + _Pnode = this->_Parent(this->_Parent(_Pnode)); + } + else + { + if (_Pnode == this->_Right(this->_Parent(_Pnode))) + { + _Pnode = this->_Parent(_Pnode); + _Lrotate(_Pnode); + } + this->_Color(this->_Parent(_Pnode)) = + this->_Black; + this->_Color(this->_Parent(this->_Parent(_Pnode))) = + this->_Red; + _Rrotate(this->_Parent(this->_Parent(_Pnode))); + } + } + else + { + _Wherenode = + this->_Left(this->_Parent(this->_Parent(_Pnode))); + if (this->_Color(_Wherenode) == this->_Red) + { + this->_Color(this->_Parent(_Pnode)) = this->_Black; + this->_Color(_Wherenode) = this->_Black; + this->_Color(this->_Parent(this->_Parent(_Pnode))) = + this->_Red; + _Pnode = this->_Parent(this->_Parent(_Pnode)); + } + else + { + if (_Pnode == this->_Left(this->_Parent(_Pnode))) + { + _Pnode = this->_Parent(_Pnode); + _Rrotate(_Pnode); + } + this->_Color(this->_Parent(_Pnode)) = + this->_Black; + this->_Color(this->_Parent(this->_Parent(_Pnode))) = + this->_Red; + _Lrotate(this->_Parent(this->_Parent(_Pnode))); + } + } + + this->_Color(_Root()) = this->_Black; + return (iterator(_Newnode, &this->_Get_data())); + } + + template + void _Copy(const _Myt& _Right, _Moveit _Movefl) + { + _Root() = _Copy_nodes(_Right._Root(), this->_Myhead(), _Movefl); + this->_Mysize() = _Right.size(); + if (!this->_Isnil(_Root())) + { + _Lmost() = this->_Min(_Root()); + _Rmost() = this->_Max(_Root()); + } + else + { + _Lmost() = this->_Myhead(); + _Rmost() = this->_Myhead(); + } + } + + template + _Nodeptr _Copy_or_move(_Ty& _Val, _Copy_tag, _Is_set) + { + return (this->_Buynode(_Val)); + } + + template + _Nodeptr _Copy_or_move(_Ty& _Val, _Move_tag, true_type) + { + return (this->_Buynode(::std:: move(_Val))); + } + + template + _Nodeptr _Copy_or_move(_Ty& _Val, _Move_tag, false_type) + { + return (this->_Buynode( + ::std:: move(const_cast(_Val.first)), + ::std:: move(_Val.second))); + } + + template + _Nodeptr _Copy_nodes(_Nodeptr _Rootnode, _Nodeptr _Wherenode, + _Moveit _Movefl) + { + _Nodeptr _Newroot = this->_Myhead(); + + if (!this->_Isnil(_Rootnode)) + { + typename is_same::type _Is_set; + _Nodeptr _Pnode = _Copy_or_move( + this->_Myval(_Rootnode), _Movefl, _Is_set); + _Pnode->_Parent = _Wherenode; + _Pnode->_Color = this->_Color(_Rootnode); + if (this->_Isnil(_Newroot)) + _Newroot = _Pnode; + + try { + this->_Left(_Pnode) = + _Copy_nodes(this->_Left(_Rootnode), _Pnode, _Movefl); + this->_Right(_Pnode) = + _Copy_nodes(this->_Right(_Rootnode), _Pnode, _Movefl); + } catch (...) { + _Erase(_Newroot); + throw; + } + } + + return (_Newroot); + } + + template + _Paircc _Eqrange(const _Other& _Keyval) const + { + _Nodeptr _Pnode = _Root(); + _Nodeptr _Lonode = this->_Myhead(); + _Nodeptr _Hinode = this->_Myhead(); + + while (!this->_Isnil(_Pnode)) + if (_Debug_lt_pred(this->_Getcomp(), this->_Key(_Pnode), _Keyval, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 1994)) + _Pnode = this->_Right(_Pnode); + else + { + if (this->_Isnil(_Hinode) + && _Debug_lt_pred(this->_Getcomp(), _Keyval, this->_Key(_Pnode), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 2000)) + + _Hinode = _Pnode; + _Lonode = _Pnode; + _Pnode = this->_Left(_Pnode); + } + + _Pnode = this->_Isnil(_Hinode) ? _Root() + : this->_Left(_Hinode); + while (!this->_Isnil(_Pnode)) + if (_Debug_lt_pred(this->_Getcomp(), _Keyval, this->_Key(_Pnode), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 2009)) + { + _Hinode = _Pnode; + _Pnode = this->_Left(_Pnode); + } + else + _Pnode = this->_Right(_Pnode); + + const_iterator _First = const_iterator(_Lonode, &this->_Get_data()); + const_iterator _Last = const_iterator(_Hinode, &this->_Get_data()); + return (_Paircc(_First, _Last)); + } + + template + _Pairii _Eqrange(const _Other& _Keyval) + { + _Paircc _Ans(static_cast(this)->_Eqrange(_Keyval)); + iterator _First = iterator(_Ans.first._Ptr, &this->_Get_data()); + iterator _Last = iterator(_Ans.second._Ptr, &this->_Get_data()); + return (_Pairii(_First, _Last)); + } + + void _Erase(_Nodeptr _Rootnode) + { + for (_Nodeptr _Pnode = _Rootnode; + !this->_Isnil(_Pnode); _Rootnode = _Pnode) + { + _Erase(this->_Right(_Pnode)); + _Pnode = this->_Left(_Pnode); + this->_Getal().destroy( + ::std:: addressof(this->_Myval(_Rootnode))); + + this->_Getal().deallocate(_Rootnode, 1); + } + } + + bool _Compare(const key_type& _Left, const key_type& _Right) const + { + return (_Debug_lt_pred(this->_Getcomp(), _Left, _Right, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xtree", 2047)); + } + + template + bool _Compare(const _Ty1& _Left, const _Ty2& _Right) const + { + return (this->_Getcomp()(_Left, _Right)); + } + + template + _Nodeptr _Lbound(const _Other& _Keyval) const + { + _Nodeptr _Pnode = _Root(); + _Nodeptr _Wherenode = this->_Myhead(); + + while (!this->_Isnil(_Pnode)) + if (_Compare(this->_Key(_Pnode), _Keyval)) + _Pnode = this->_Right(_Pnode); + else + { + _Wherenode = _Pnode; + _Pnode = this->_Left(_Pnode); + } + + return (_Wherenode); + } + + _Nodeptr& _Lmost() const + { + return (this->_Left(this->_Myhead())); + } + + void _Lrotate(_Nodeptr _Wherenode) + { + _Nodeptr _Pnode = this->_Right(_Wherenode); + this->_Right(_Wherenode) = this->_Left(_Pnode); + + if (!this->_Isnil(this->_Left(_Pnode))) + this->_Parent(this->_Left(_Pnode)) = _Wherenode; + this->_Parent(_Pnode) = this->_Parent(_Wherenode); + + if (_Wherenode == _Root()) + _Root() = _Pnode; + else if (_Wherenode == this->_Left(this->_Parent(_Wherenode))) + this->_Left(this->_Parent(_Wherenode)) = _Pnode; + else + this->_Right(this->_Parent(_Wherenode)) = _Pnode; + + this->_Left(_Pnode) = _Wherenode; + this->_Parent(_Wherenode) = _Pnode; + } + + _Nodeptr& _Rmost() const + { + return (this->_Right(this->_Myhead())); + } + + _Nodeptr& _Root() const + { + return (this->_Parent(this->_Myhead())); + } + + void _Rrotate(_Nodeptr _Wherenode) + { + _Nodeptr _Pnode = this->_Left(_Wherenode); + this->_Left(_Wherenode) = this->_Right(_Pnode); + + if (!this->_Isnil(this->_Right(_Pnode))) + this->_Parent(this->_Right(_Pnode)) = _Wherenode; + this->_Parent(_Pnode) = this->_Parent(_Wherenode); + + if (_Wherenode == _Root()) + _Root() = _Pnode; + else if (_Wherenode == this->_Right(this->_Parent(_Wherenode))) + this->_Right(this->_Parent(_Wherenode)) = _Pnode; + else + this->_Left(this->_Parent(_Wherenode)) = _Pnode; + + this->_Right(_Pnode) = _Wherenode; + this->_Parent(_Wherenode) = _Pnode; + } + + template + _Nodeptr _Ubound(const _Other& _Keyval) const + { + _Nodeptr _Pnode = _Root(); + _Nodeptr _Wherenode = this->_Myhead(); + + while (!this->_Isnil(_Pnode)) + if (_Compare(_Keyval, this->_Key(_Pnode))) + { + _Wherenode = _Pnode; + _Pnode = this->_Left(_Pnode); + } + else + _Pnode = this->_Right(_Pnode); + + return (_Wherenode); + } + + + void _Orphan_ptr(_Nodeptr _Ptr) + { + _Lockit _Lock(3); + const_iterator **_Pnext = (const_iterator **)this->_Getpfirst(); + if (_Pnext != 0) + while (*_Pnext != 0) + if ((*_Pnext)->_Ptr == this->_Myhead() + || _Ptr != nullptr_t{} && (*_Pnext)->_Ptr != _Ptr) + _Pnext = (const_iterator **)(*_Pnext)->_Getpnext(); + else + { + (*_Pnext)->_Clrcont(); + *_Pnext = *(const_iterator **)(*_Pnext)->_Getpnext(); + } + } + + + void _Tidy() + { + erase(begin(), end()); + } + + const key_type& _Kfn(const value_type& _Val) const + { + return (_Traits::_Kfn(_Val)); + } + + const key_type& _Key(_Nodeptr _Pnode) const + { + return ((const key_type&)this->_Kfn(this->_Myval(_Pnode))); + } + }; + + +template inline + bool operator==(const _Tree<_Traits>& _Left, const _Tree<_Traits>& _Right) + { + return (_Left.size() == _Right.size() + && ::std:: equal(_Left.begin(), _Left.end(), _Right.begin())); + } + +template inline + bool operator!=(const _Tree<_Traits>& _Left, const _Tree<_Traits>& _Right) + { + return (!(_Left == _Right)); + } + +template inline + bool operator<(const _Tree<_Traits>& _Left, const _Tree<_Traits>& _Right) + { + return (::std:: lexicographical_compare(_Left.begin(), _Left.end(), + _Right.begin(), _Right.end())); + } + +template inline + bool operator>(const _Tree<_Traits>& _Left, const _Tree<_Traits>& _Right) + { + return (_Right < _Left); + } + +template inline + bool operator<=(const _Tree<_Traits>& _Left, const _Tree<_Traits>& _Right) + { + return (!(_Right < _Left)); + } + +template inline + bool operator>=(const _Tree<_Traits>& _Left, const _Tree<_Traits>& _Right) + { + return (!(_Left < _Right)); + } +} + + +#pragma warning(pop) +#pragma pack(pop) +# 9 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\map" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + +namespace std { + +template + class _Tmap_traits + { +public: + typedef _Kty key_type; + typedef pair value_type; + typedef _Pr key_compare; + typedef _Alloc allocator_type; + + enum + { + _Multi = _Mfl}; + + class value_compare + { + friend class _Tmap_traits<_Kty, _Ty, _Pr, _Alloc, _Mfl>; + + public: + typedef value_type first_argument_type; + typedef value_type second_argument_type; + typedef bool result_type; + + bool operator()(const value_type& _Left, + const value_type& _Right) const + { + return (comp(_Left.first, _Right.first)); + } + + value_compare(key_compare _Pred) + : comp(_Pred) + { + } + + protected: + key_compare comp; + }; + + template + static const _Kty& _Kfn(const pair<_Ty1, _Ty2>& _Val) + { + return (_Val.first); + } + }; + + +template, + class _Alloc = allocator > > + class map + : public _Tree<_Tmap_traits<_Kty, _Ty, _Pr, _Alloc, false> > + { +public: + typedef map<_Kty, _Ty, _Pr, _Alloc> _Myt; + typedef _Tree<_Tmap_traits<_Kty, _Ty, _Pr, _Alloc, false> > _Mybase; + typedef _Kty key_type; + typedef _Ty mapped_type; + typedef _Pr key_compare; + typedef typename _Mybase::value_compare value_compare; + typedef typename _Mybase::allocator_type allocator_type; + typedef typename _Mybase::size_type size_type; + typedef typename _Mybase::difference_type difference_type; + typedef typename _Mybase::pointer pointer; + typedef typename _Mybase::const_pointer const_pointer; + typedef typename _Mybase::reference reference; + typedef typename _Mybase::const_reference const_reference; + typedef typename _Mybase::iterator iterator; + typedef typename _Mybase::const_iterator const_iterator; + typedef typename _Mybase::reverse_iterator reverse_iterator; + typedef typename _Mybase::const_reverse_iterator + const_reverse_iterator; + typedef typename _Mybase::value_type value_type; + + typedef typename _Mybase::_Alty _Alty; + typedef typename _Mybase::_Pairib _Pairib; + + map() + : _Mybase(key_compare()) + { + } + + explicit map(const allocator_type& _Al) + : _Mybase(key_compare(), _Al) + { + } + + map(const _Myt& _Right) + : _Mybase(_Right, + _Right._Getal().select_on_container_copy_construction()) + { + } + + map(const _Myt& _Right, const allocator_type& _Al) + : _Mybase(_Right, _Al) + { + } + + explicit map(const key_compare& _Pred) + : _Mybase(_Pred) + { + } + + map(const key_compare& _Pred, const allocator_type& _Al) + : _Mybase(_Pred, _Al) + { + } + + template + map(_Iter _First, _Iter _Last) + : _Mybase(key_compare()) + { + insert(_First, _Last); + } + + template + map(_Iter _First, _Iter _Last, + const key_compare& _Pred) + : _Mybase(_Pred) + { + insert(_First, _Last); + } + + template + map(_Iter _First, _Iter _Last, + const key_compare& _Pred, const allocator_type& _Al) + : _Mybase(_Pred, _Al) + { + insert(_First, _Last); + } + + _Myt& operator=(const _Myt& _Right) + { + _Mybase::operator=(_Right); + return (*this); + } + + map(_Myt&& _Right) + : _Mybase(::std:: move(_Right)) + { + } + + map(_Myt&& _Right, const allocator_type& _Al) + : _Mybase(::std:: move(_Right), _Al) + { + } + + _Myt& operator=(_Myt&& _Right) + noexcept(_Alty::is_always_equal::value && is_nothrow_move_assignable<_Pr>::value) + + { + _Mybase::operator=(::std:: move(_Right)); + return (*this); + } + + mapped_type& operator[](key_type&& _Keyval) + { + return (try_emplace(::std:: move(_Keyval)).first->second); + } + + void swap(_Myt& _Right) + noexcept(_Alty::is_always_equal::value && _Is_nothrow_swappable<_Pr>::value) + + { + _Mybase::swap(_Right); + } + + using _Mybase::insert; + + template::value> > + _Pairib insert(_Valty&& _Val) + { + return (this->emplace(::std:: forward<_Valty>(_Val))); + } + + template::value> > + iterator insert(const_iterator _Where, _Valty&& _Val) + { + return (this->emplace_hint(_Where, ::std:: forward<_Valty>(_Val))); + } + + template + _Pairib _Try_emplace(_Keyty&& _Keyval, + _Mappedty&&... _Mapval) + { + iterator _Where = _Mybase::lower_bound(_Keyval); + if (_Where == _Mybase::end() + || _Debug_lt_pred(_Mybase::_Getcomp(), _Keyval, _Mybase::_Key(_Where._Mynode()), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\map", 212)) + + return (_Pairib( + _Mybase::emplace_hint(_Where, + piecewise_construct, + ::std:: forward_as_tuple( + ::std:: forward<_Keyty>(_Keyval)), + ::std:: forward_as_tuple( + ::std:: forward<_Mappedty>(_Mapval)...)), + true)); + else + return (_Pairib(_Where, false)); + } + + template + _Pairib try_emplace(const key_type& _Keyval, + _Mappedty&&... _Mapval) + { + return (_Try_emplace(_Keyval, ::std:: forward<_Mappedty>(_Mapval)...)); + } + + template + iterator try_emplace(const_iterator, const key_type& _Keyval, + _Mappedty&&... _Mapval) + { + return (_Try_emplace(_Keyval, + ::std:: forward<_Mappedty>(_Mapval)...).first); + } + + template + _Pairib try_emplace(key_type&& _Keyval, + _Mappedty&&... _Mapval) + { + return (_Try_emplace(::std:: move(_Keyval), + ::std:: forward<_Mappedty>(_Mapval)...)); + } + + template + iterator try_emplace(const_iterator, key_type&& _Keyval, + _Mappedty&&... _Mapval) + { + return (_Try_emplace(::std:: move(_Keyval), + ::std:: forward<_Mappedty>(_Mapval)...).first); + } + + template + _Pairib _Insert_or_assign(_Keyty&& _Keyval, + _Mappedty&& _Mapval) + { + iterator _Where = _Mybase::lower_bound(_Keyval); + if (_Where == _Mybase::end() + || _Debug_lt_pred(_Mybase::_Getcomp(), _Keyval, _Mybase::_Key(_Where._Mynode()), L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\map", 264)) + + return (_Pairib( + _Mybase::emplace_hint(_Where, + ::std:: forward<_Keyty>(_Keyval), + ::std:: forward<_Mappedty>(_Mapval)), + true)); + else + { + _Where->second = ::std:: forward<_Mappedty>(_Mapval); + return (_Pairib(_Where, false)); + } + } + + template + _Pairib insert_or_assign(const key_type& _Keyval, + _Mappedty&& _Mapval) + { + return (_Insert_or_assign(_Keyval, + ::std:: forward<_Mappedty>(_Mapval))); + } + + template + iterator insert_or_assign(const_iterator, const key_type& _Keyval, + _Mappedty&& _Mapval) + { + return (_Insert_or_assign(_Keyval, + ::std:: forward<_Mappedty>(_Mapval)).first); + } + + template + _Pairib insert_or_assign(key_type&& _Keyval, + _Mappedty&& _Mapval) + { + return (_Insert_or_assign(::std:: move(_Keyval), + ::std:: forward<_Mappedty>(_Mapval))); + } + + template + iterator insert_or_assign(const_iterator, key_type&& _Keyval, + _Mappedty&& _Mapval) + { + return (_Insert_or_assign(::std:: move(_Keyval), + ::std:: forward<_Mappedty>(_Mapval)).first); + } + + map(::std:: initializer_list _Ilist) + : _Mybase(key_compare()) + { + insert(_Ilist); + } + + map(::std:: initializer_list _Ilist, + const key_compare& _Pred) + : _Mybase(_Pred) + { + insert(_Ilist); + } + + map(::std:: initializer_list _Ilist, + const key_compare& _Pred, const allocator_type& _Al) + : _Mybase(_Pred, _Al) + { + insert(_Ilist); + } + + _Myt& operator=(::std:: initializer_list _Ilist) + { + _Mybase::clear(); + insert(_Ilist); + return (*this); + } + + mapped_type& operator[](const key_type& _Keyval) + { + return (try_emplace(_Keyval).first->second); + } + + mapped_type& at(const key_type& _Keyval) + { + iterator _Where = _Mybase::lower_bound(_Keyval); + if (_Where == _Mybase::end() + || _Mybase::_Getcomp()(_Keyval, _Mybase::_Key(_Where._Mynode()))) + _Xout_of_range("invalid map key"); + return (_Where->second); + } + + const mapped_type& at(const key_type& _Keyval) const + { + const_iterator _Where = _Mybase::lower_bound(_Keyval); + if (_Where == _Mybase::end() + || _Mybase::_Getcomp()(_Keyval, _Mybase::_Key(_Where._Mynode()))) + _Xout_of_range("invalid map key"); + return (_Where->second); + } + }; + +template inline + void swap(map<_Kty, _Ty, _Pr, _Alloc>& _Left, + map<_Kty, _Ty, _Pr, _Alloc>& _Right) + noexcept(noexcept(_Left.swap(_Right))) + { + _Left.swap(_Right); + } + + +template, + class _Alloc = allocator > > + class multimap + : public _Tree<_Tmap_traits<_Kty, _Ty, _Pr, _Alloc, true> > + { +public: + typedef multimap<_Kty, _Ty, _Pr, _Alloc> _Myt; + typedef _Tree<_Tmap_traits<_Kty, _Ty, _Pr, _Alloc, true> > _Mybase; + typedef _Kty key_type; + typedef _Ty mapped_type; + typedef _Pr key_compare; + typedef typename _Mybase::value_compare value_compare; + typedef typename _Mybase::allocator_type allocator_type; + typedef typename _Mybase::size_type size_type; + typedef typename _Mybase::difference_type difference_type; + typedef typename _Mybase::pointer pointer; + typedef typename _Mybase::const_pointer const_pointer; + typedef typename _Mybase::reference reference; + typedef typename _Mybase::const_reference const_reference; + typedef typename _Mybase::iterator iterator; + typedef typename _Mybase::const_iterator const_iterator; + typedef typename _Mybase::reverse_iterator reverse_iterator; + typedef typename _Mybase::const_reverse_iterator + const_reverse_iterator; + typedef typename _Mybase::value_type value_type; + + typedef typename _Mybase::_Alty _Alty; + + multimap() + : _Mybase(key_compare()) + { + } + + explicit multimap(const allocator_type& _Al) + : _Mybase(key_compare(), _Al) + { + } + + multimap(const _Myt& _Right) + : _Mybase(_Right, + _Right._Getal().select_on_container_copy_construction()) + { + } + + multimap(const _Myt& _Right, const allocator_type& _Al) + : _Mybase(_Right, _Al) + { + } + + explicit multimap(const key_compare& _Pred) + : _Mybase(_Pred) + { + } + + multimap(const key_compare& _Pred, const allocator_type& _Al) + : _Mybase(_Pred, _Al) + { + } + + template + multimap(_Iter _First, _Iter _Last) + : _Mybase(key_compare()) + { + insert(_First, _Last); + } + + template + multimap(_Iter _First, _Iter _Last, + const key_compare& _Pred) + : _Mybase(_Pred) + { + insert(_First, _Last); + } + + template + multimap(_Iter _First, _Iter _Last, + const key_compare& _Pred, const allocator_type& _Al) + : _Mybase(_Pred, _Al) + { + insert(_First, _Last); + } + + _Myt& operator=(const _Myt& _Right) + { + _Mybase::operator=(_Right); + return (*this); + } + + multimap(_Myt&& _Right) + : _Mybase(::std:: move(_Right)) + { + } + + multimap(_Myt&& _Right, const allocator_type& _Al) + : _Mybase(::std:: move(_Right), _Al) + { + } + + _Myt& operator=(_Myt&& _Right) + noexcept(_Alty::is_always_equal::value && is_nothrow_move_assignable<_Pr>::value) + + { + _Mybase::operator=(::std:: move(_Right)); + return (*this); + } + + template + iterator emplace(_Valty&&... _Val) + { + return (_Mybase::emplace(::std:: forward<_Valty>(_Val)...).first); + } + + void swap(_Myt& _Right) + noexcept(_Alty::is_always_equal::value && _Is_nothrow_swappable<_Pr>::value) + + { + _Mybase::swap(_Right); + } + + using _Mybase::insert; + + template::value> > + iterator insert(_Valty&& _Val) + { + return (this->emplace(::std:: forward<_Valty>(_Val))); + } + + template::value> > + iterator insert(const_iterator _Where, _Valty&& _Val) + { + return (this->emplace_hint(_Where, ::std:: forward<_Valty>(_Val))); + } + + multimap(::std:: initializer_list _Ilist) + : _Mybase(key_compare()) + { + insert(_Ilist); + } + + multimap(::std:: initializer_list _Ilist, + const key_compare& _Pred) + : _Mybase(_Pred) + { + insert(_Ilist); + } + + multimap(::std:: initializer_list _Ilist, + const key_compare& _Pred, const allocator_type& _Al) + : _Mybase(_Pred, _Al) + { + insert(_Ilist); + } + + _Myt& operator=(::std:: initializer_list _Ilist) + { + _Mybase::clear(); + insert(_Ilist); + return (*this); + } + }; + +template inline + void swap(multimap<_Kty, _Ty, _Pr, _Alloc>& _Left, + multimap<_Kty, _Ty, _Pr, _Alloc>& _Right) + noexcept(noexcept(_Left.swap(_Right))) + { + _Left.swap(_Right); + } +} + +#pragma warning(pop) +#pragma pack(pop) +# 10 "../LEngine/Object.h" 2 + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 1 3 +# 19 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h" 1 3 +# 14 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h" 3 +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4100 4390 4793 6326) +# 89 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h" 3 +inline long long _InterlockedExchange64_INLINE(volatile long long *_Tgt, long long _Value) +{ + long long _Oldval; + _ReadWriteBarrier(); + do + { + _Oldval = *_Tgt; + } while (_Oldval != _InterlockedCompareExchange64(_Tgt, _Value, _Oldval)); + _ReadWriteBarrier(); + + return (_Oldval); +} + +inline long long _InterlockedExchangeAdd64_INLINE(volatile long long *_Tgt, long long _Value) +{ + long long _Oldval, _Newval; + _ReadWriteBarrier(); + do + { + _Oldval = *_Tgt; + _Newval = _Oldval + _Value; + } while (_Oldval != _InterlockedCompareExchange64(_Tgt, _Newval, _Oldval)); + _ReadWriteBarrier(); + + return (_Oldval); +} + +inline long long _InterlockedAnd64_INLINE(volatile long long *_Tgt, long long _Value) +{ + long long _Oldval, _Newval; + _ReadWriteBarrier(); + do + { + _Oldval = *_Tgt; + _Newval = _Oldval & _Value; + } while (_Oldval != _InterlockedCompareExchange64(_Tgt, _Newval, _Oldval)); + _ReadWriteBarrier(); + + return (_Oldval); +} + +inline long long _InterlockedOr64_INLINE(volatile long long *_Tgt, long long _Value) +{ + long long _Oldval, _Newval; + _ReadWriteBarrier(); + do + { + _Oldval = *_Tgt; + _Newval = _Oldval | _Value; + } while (_Oldval != _InterlockedCompareExchange64(_Tgt, _Newval, _Oldval)); + _ReadWriteBarrier(); + + return (_Oldval); +} + +inline long long _InterlockedXor64_INLINE(volatile long long *_Tgt, long long _Value) +{ + long long _Oldval, _Newval; + _ReadWriteBarrier(); + do + { + _Oldval = *_Tgt; + _Newval = _Oldval ^ _Value; + } while (_Oldval != _InterlockedCompareExchange64(_Tgt, _Newval, _Oldval)); + _ReadWriteBarrier(); + + return (_Oldval); +} + + +namespace std { + +typedef unsigned char _Uint1_t; +typedef unsigned short _Uint2_t; + +typedef unsigned long long _Uint8_t; +# 188 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h" 3 +inline memory_order _Memory_order_upper_bound(memory_order _Order1, + memory_order _Order2) + { +# 205 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h" 3 + static const memory_order _Upper[6][6] = { + { memory_order_relaxed, memory_order_consume, memory_order_acquire, + memory_order_release, memory_order_acq_rel, memory_order_seq_cst }, + { memory_order_consume, memory_order_consume, memory_order_acquire, + memory_order_acq_rel, memory_order_acq_rel, memory_order_seq_cst }, + { memory_order_acquire, memory_order_acquire, memory_order_acquire, + memory_order_acq_rel, memory_order_acq_rel, memory_order_seq_cst }, + { memory_order_release, memory_order_acq_rel, memory_order_acq_rel, + memory_order_release, memory_order_acq_rel, memory_order_seq_cst }, + { memory_order_acq_rel, memory_order_acq_rel, memory_order_acq_rel, + memory_order_acq_rel, memory_order_acq_rel, memory_order_seq_cst }, + { memory_order_seq_cst, memory_order_seq_cst, memory_order_seq_cst, + memory_order_seq_cst, memory_order_seq_cst, memory_order_seq_cst + } + }; + + if ((_Order1 < 0) || (6 <= _Order1) + || (_Order2 < 0) || (6 <= _Order2)) + { + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 224); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 224, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 224, 0); }}; + return (memory_order_seq_cst); + } + return (_Upper[_Order1][_Order2]); + } + +inline void _Validate_compare_exchange_memory_order( + memory_order _Success, memory_order _Failure) + { + + + switch (_Failure) + { + case memory_order_relaxed: + break; + + case memory_order_seq_cst: + if (_Success != memory_order_seq_cst) + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 242); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 242, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 242, 0); }}; + break; + + case memory_order_acquire: + if ((_Success == memory_order_consume) || + (_Success == memory_order_relaxed)) + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 248); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 248, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 248, 0); }}; + break; + + case memory_order_consume: + if (_Success == memory_order_relaxed) + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 253); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 253, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 253, 0); }}; + break; + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 257); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 257, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 257, 0); }}; + break; + } + } + + + +inline void _Store_relaxed_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + + + + *_Tgt = _Value; + + } + +inline void _Store_release_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + + + + + _ReadWriteBarrier(); + *_Tgt = _Value; + + } + +inline void _Store_seq_cst_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { +# 298 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h" 3 + _InterlockedExchange8((volatile char *)_Tgt, _Value); + + } + +inline void _Atomic_store_1( + volatile _Uint1_t *_Tgt, _Uint1_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + _Store_relaxed_1(_Tgt, _Value); + break; + + case memory_order_release: + _Store_release_1(_Tgt, _Value); + break; + + case memory_order_seq_cst: + _Store_seq_cst_1(_Tgt, _Value); + break; + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 320); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 320, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 320, 0); }}; + break; + } + } + + +inline _Uint1_t _Load_seq_cst_1(volatile _Uint1_t *_Tgt) + { + + _Uint1_t _Value; + + + + + + + _Value = *_Tgt; + _ReadWriteBarrier(); + + + return (_Value); + } + +inline _Uint1_t _Load_relaxed_1(volatile _Uint1_t *_Tgt) + { + + _Uint1_t _Value; + + + + + + _Value = *_Tgt; + + + return (_Value); + } + +inline _Uint1_t _Load_acquire_1(volatile _Uint1_t *_Tgt) + { + + + return (_Load_seq_cst_1(_Tgt)); + } + +inline _Uint1_t _Atomic_load_1( + volatile _Uint1_t *_Tgt, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Load_relaxed_1(_Tgt)); + + case memory_order_consume: + case memory_order_acquire: + return (_Load_acquire_1(_Tgt)); + + case memory_order_seq_cst: + return (_Load_seq_cst_1(_Tgt)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 381); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 381, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 381, 0); }}; + return (0); + } + } + + +inline _Uint1_t _Exchange_seq_cst_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedExchange8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Exchange_relaxed_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedExchange8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Exchange_acquire_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedExchange8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Exchange_release_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedExchange8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Atomic_exchange_1( + volatile _Uint1_t *_Tgt, _Uint1_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Exchange_relaxed_1(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Exchange_acquire_1(_Tgt, _Value)); + + case memory_order_release: + return (_Exchange_release_1(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Exchange_seq_cst_1(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 435); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 435, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 435, 0); }}; + return (0); + } + } + + +inline int _Compare_exchange_seq_cst_1(volatile _Uint1_t *_Tgt, + _Uint1_t *_Exp, _Uint1_t _Value) + { + + _Uint1_t _Old_exp = *_Exp; + + _Uint1_t _Prev = _InterlockedCompareExchange8((volatile char *)_Tgt, + _Value, _Old_exp); + + if (_Prev == _Old_exp) + return (1); + else + { + *_Exp = _Prev; + return (0); + } + } + +inline int _Compare_exchange_relaxed_1(volatile _Uint1_t *_Tgt, + _Uint1_t *_Exp, _Uint1_t _Value) + { + + _Uint1_t _Old_exp = *_Exp; + + _Uint1_t _Prev = _InterlockedCompareExchange8((volatile char *)_Tgt, + _Value, _Old_exp); + + if (_Prev == _Old_exp) + return (1); + else + { + *_Exp = _Prev; + return (0); + } + } + +inline int _Compare_exchange_acquire_1(volatile _Uint1_t *_Tgt, + _Uint1_t *_Exp, _Uint1_t _Value) + { + + _Uint1_t _Old_exp = *_Exp; + + _Uint1_t _Prev = _InterlockedCompareExchange8((volatile char *)_Tgt, + _Value, _Old_exp); + + if (_Prev == _Old_exp) + return (1); + else + { + *_Exp = _Prev; + return (0); + } + } + +inline int _Compare_exchange_release_1(volatile _Uint1_t *_Tgt, + _Uint1_t *_Exp, _Uint1_t _Value) + { + + _Uint1_t _Old_exp = *_Exp; + + _Uint1_t _Prev = _InterlockedCompareExchange8((volatile char *)_Tgt, + _Value, _Old_exp); + + if (_Prev == _Old_exp) + return (1); + else + { + *_Exp = _Prev; + return (0); + } + } + +inline int _Atomic_compare_exchange_strong_1( + volatile _Uint1_t *_Tgt, _Uint1_t *_Exp, _Uint1_t _Value, + memory_order _Order1, memory_order _Order2) + { + _Validate_compare_exchange_memory_order(_Order1, _Order2); + + switch (_Memory_order_upper_bound(_Order1, _Order2)) + { + case memory_order_relaxed: + return (_Compare_exchange_relaxed_1(_Tgt, _Exp, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Compare_exchange_acquire_1(_Tgt, _Exp, _Value)); + + case memory_order_release: + return (_Compare_exchange_release_1(_Tgt, _Exp, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Compare_exchange_seq_cst_1(_Tgt, _Exp, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 536); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 536, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 536, 0); }}; + return (0); + } + } + +inline int _Atomic_compare_exchange_weak_1( + volatile _Uint1_t *_Tgt, _Uint1_t *_Exp, _Uint1_t _Value, + memory_order _Order1, memory_order _Order2) + { + + + return (_Atomic_compare_exchange_strong_1(_Tgt, _Exp, _Value, + _Order1, _Order2)); + } + + +inline _Uint1_t _Fetch_add_seq_cst_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedExchangeAdd8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Fetch_add_relaxed_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedExchangeAdd8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Fetch_add_acquire_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedExchangeAdd8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Fetch_add_release_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedExchangeAdd8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Atomic_fetch_add_1( + volatile _Uint1_t *_Tgt, _Uint1_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Fetch_add_relaxed_1(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Fetch_add_acquire_1(_Tgt, _Value)); + + case memory_order_release: + return (_Fetch_add_release_1(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Fetch_add_seq_cst_1(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 600); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 600, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 600, 0); }}; + return (0); + } + } + +inline _Uint1_t _Atomic_fetch_sub_1( + volatile _Uint1_t *_Tgt, _Uint1_t _Value, memory_order _Order) + { + return (_Atomic_fetch_add_1(_Tgt, 0 - _Value, _Order)); + } + + +inline _Uint1_t _Fetch_and_seq_cst_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedAnd8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Fetch_and_relaxed_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedAnd8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Fetch_and_acquire_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedAnd8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Fetch_and_release_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedAnd8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Atomic_fetch_and_1( + volatile _Uint1_t *_Tgt, _Uint1_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Fetch_and_relaxed_1(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Fetch_and_acquire_1(_Tgt, _Value)); + + case memory_order_release: + return (_Fetch_and_release_1(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Fetch_and_seq_cst_1(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 660); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 660, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 660, 0); }}; + return (0); + } + } + + +inline _Uint1_t _Fetch_or_seq_cst_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedOr8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Fetch_or_relaxed_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedOr8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Fetch_or_acquire_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedOr8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Fetch_or_release_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedOr8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Atomic_fetch_or_1( + volatile _Uint1_t *_Tgt, _Uint1_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Fetch_or_relaxed_1(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Fetch_or_acquire_1(_Tgt, _Value)); + + case memory_order_release: + return (_Fetch_or_release_1(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Fetch_or_seq_cst_1(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 714); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 714, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 714, 0); }}; + return (0); + } + } + + +inline _Uint1_t _Fetch_xor_seq_cst_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedXor8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Fetch_xor_relaxed_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedXor8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Fetch_xor_acquire_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedXor8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Fetch_xor_release_1(volatile _Uint1_t *_Tgt, _Uint1_t _Value) + { + + + return (_InterlockedXor8((volatile char *)_Tgt, _Value)); + } + +inline _Uint1_t _Atomic_fetch_xor_1( + volatile _Uint1_t *_Tgt, _Uint1_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Fetch_xor_relaxed_1(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Fetch_xor_acquire_1(_Tgt, _Value)); + + case memory_order_release: + return (_Fetch_xor_release_1(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Fetch_xor_seq_cst_1(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 768); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 768, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 768, 0); }}; + return (0); + } + } + + +inline void _Store_relaxed_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + + + + *_Tgt = _Value; + + } + +inline void _Store_release_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + + + + + _ReadWriteBarrier(); + *_Tgt = _Value; + + } + +inline void _Store_seq_cst_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { +# 808 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h" 3 + _InterlockedExchange16((volatile short *)_Tgt, _Value); + + } + +inline void _Atomic_store_2( + volatile _Uint2_t *_Tgt, _Uint2_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + _Store_relaxed_2(_Tgt, _Value); + break; + + case memory_order_release: + _Store_release_2(_Tgt, _Value); + break; + + case memory_order_seq_cst: + _Store_seq_cst_2(_Tgt, _Value); + break; + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 830); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 830, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 830, 0); }}; + break; + } + } + + +inline _Uint2_t _Load_seq_cst_2(volatile _Uint2_t *_Tgt) + { + + _Uint2_t _Value; + + + + + + + _Value = *_Tgt; + _ReadWriteBarrier(); + + + return (_Value); + } + +inline _Uint2_t _Load_relaxed_2(volatile _Uint2_t *_Tgt) + { + + _Uint2_t _Value; + + + + + + _Value = *_Tgt; + + + return (_Value); + } + +inline _Uint2_t _Load_acquire_2(volatile _Uint2_t *_Tgt) + { + + + return (_Load_seq_cst_2(_Tgt)); + } + +inline _Uint2_t _Atomic_load_2( + volatile _Uint2_t *_Tgt, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Load_relaxed_2(_Tgt)); + + case memory_order_consume: + case memory_order_acquire: + return (_Load_acquire_2(_Tgt)); + + case memory_order_seq_cst: + return (_Load_seq_cst_2(_Tgt)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 891); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 891, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 891, 0); }}; + return (0); + } + } + + +inline _Uint2_t _Exchange_seq_cst_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedExchange16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Exchange_relaxed_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedExchange16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Exchange_acquire_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedExchange16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Exchange_release_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedExchange16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Atomic_exchange_2( + volatile _Uint2_t *_Tgt, _Uint2_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Exchange_relaxed_2(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Exchange_acquire_2(_Tgt, _Value)); + + case memory_order_release: + return (_Exchange_release_2(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Exchange_seq_cst_2(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 945); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 945, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 945, 0); }}; + return (0); + } + } + + +inline int _Compare_exchange_seq_cst_2(volatile _Uint2_t *_Tgt, + _Uint2_t *_Exp, _Uint2_t _Value) + { + + _Uint2_t _Old_exp = *_Exp; + + _Uint2_t _Prev = _InterlockedCompareExchange16((volatile short *)_Tgt, + _Value, _Old_exp); + + if (_Prev == _Old_exp) + return (1); + else + { + *_Exp = _Prev; + return (0); + } + } + +inline int _Compare_exchange_relaxed_2(volatile _Uint2_t *_Tgt, + _Uint2_t *_Exp, _Uint2_t _Value) + { + + _Uint2_t _Old_exp = *_Exp; + + _Uint2_t _Prev = _InterlockedCompareExchange16((volatile short *)_Tgt, + _Value, _Old_exp); + + if (_Prev == _Old_exp) + return (1); + else + { + *_Exp = _Prev; + return (0); + } + } + +inline int _Compare_exchange_acquire_2(volatile _Uint2_t *_Tgt, + _Uint2_t *_Exp, _Uint2_t _Value) + { + + _Uint2_t _Old_exp = *_Exp; + + _Uint2_t _Prev = _InterlockedCompareExchange16((volatile short *)_Tgt, + _Value, _Old_exp); + + if (_Prev == _Old_exp) + return (1); + else + { + *_Exp = _Prev; + return (0); + } + } + +inline int _Compare_exchange_release_2(volatile _Uint2_t *_Tgt, + _Uint2_t *_Exp, _Uint2_t _Value) + { + + _Uint2_t _Old_exp = *_Exp; + + _Uint2_t _Prev = _InterlockedCompareExchange16((volatile short *)_Tgt, + _Value, _Old_exp); + + if (_Prev == _Old_exp) + return (1); + else + { + *_Exp = _Prev; + return (0); + } + } + +inline int _Atomic_compare_exchange_strong_2( + volatile _Uint2_t *_Tgt, _Uint2_t *_Exp, _Uint2_t _Value, + memory_order _Order1, memory_order _Order2) + { + _Validate_compare_exchange_memory_order(_Order1, _Order2); + + switch (_Memory_order_upper_bound(_Order1, _Order2)) + { + case memory_order_relaxed: + return (_Compare_exchange_relaxed_2(_Tgt, _Exp, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Compare_exchange_acquire_2(_Tgt, _Exp, _Value)); + + case memory_order_release: + return (_Compare_exchange_release_2(_Tgt, _Exp, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Compare_exchange_seq_cst_2(_Tgt, _Exp, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1046); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1046, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1046, 0); }}; + return (0); + } + } + +inline int _Atomic_compare_exchange_weak_2( + volatile _Uint2_t *_Tgt, _Uint2_t *_Exp, _Uint2_t _Value, + memory_order _Order1, memory_order _Order2) + { + + + return (_Atomic_compare_exchange_strong_2(_Tgt, _Exp, _Value, + _Order1, _Order2)); + } + + +inline _Uint2_t _Fetch_add_seq_cst_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedExchangeAdd16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Fetch_add_relaxed_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedExchangeAdd16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Fetch_add_acquire_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedExchangeAdd16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Fetch_add_release_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedExchangeAdd16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Atomic_fetch_add_2( + volatile _Uint2_t *_Tgt, _Uint2_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Fetch_add_relaxed_2(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Fetch_add_acquire_2(_Tgt, _Value)); + + case memory_order_release: + return (_Fetch_add_release_2(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Fetch_add_seq_cst_2(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1110); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1110, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1110, 0); }}; + return (0); + } + } + +inline _Uint2_t _Atomic_fetch_sub_2( + volatile _Uint2_t *_Tgt, _Uint2_t _Value, memory_order _Order) + { + return (_Atomic_fetch_add_2(_Tgt, 0 - _Value, _Order)); + } + + +inline _Uint2_t _Fetch_and_seq_cst_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedAnd16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Fetch_and_relaxed_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedAnd16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Fetch_and_acquire_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedAnd16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Fetch_and_release_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedAnd16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Atomic_fetch_and_2( + volatile _Uint2_t *_Tgt, _Uint2_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Fetch_and_relaxed_2(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Fetch_and_acquire_2(_Tgt, _Value)); + + case memory_order_release: + return (_Fetch_and_release_2(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Fetch_and_seq_cst_2(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1170); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1170, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1170, 0); }}; + return (0); + } + } + + +inline _Uint2_t _Fetch_or_seq_cst_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedOr16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Fetch_or_relaxed_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedOr16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Fetch_or_acquire_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedOr16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Fetch_or_release_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedOr16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Atomic_fetch_or_2( + volatile _Uint2_t *_Tgt, _Uint2_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Fetch_or_relaxed_2(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Fetch_or_acquire_2(_Tgt, _Value)); + + case memory_order_release: + return (_Fetch_or_release_2(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Fetch_or_seq_cst_2(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1224); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1224, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1224, 0); }}; + return (0); + } + } + + +inline _Uint2_t _Fetch_xor_seq_cst_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedXor16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Fetch_xor_relaxed_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedXor16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Fetch_xor_acquire_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedXor16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Fetch_xor_release_2(volatile _Uint2_t *_Tgt, _Uint2_t _Value) + { + + + return (_InterlockedXor16((volatile short *)_Tgt, _Value)); + } + +inline _Uint2_t _Atomic_fetch_xor_2( + volatile _Uint2_t *_Tgt, _Uint2_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Fetch_xor_relaxed_2(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Fetch_xor_acquire_2(_Tgt, _Value)); + + case memory_order_release: + return (_Fetch_xor_release_2(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Fetch_xor_seq_cst_2(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1278); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1278, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1278, 0); }}; + return (0); + } + } + + +inline void _Store_relaxed_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + + + + *_Tgt = _Value; + + } + +inline void _Store_release_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + + + + + _ReadWriteBarrier(); + *_Tgt = _Value; + + } + +inline void _Store_seq_cst_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { +# 1318 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h" 3 + _InterlockedExchange((volatile long *)_Tgt, _Value); + + } + +inline void _Atomic_store_4( + volatile _Uint4_t *_Tgt, _Uint4_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + _Store_relaxed_4(_Tgt, _Value); + break; + + case memory_order_release: + _Store_release_4(_Tgt, _Value); + break; + + case memory_order_seq_cst: + _Store_seq_cst_4(_Tgt, _Value); + break; + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1340); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1340, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1340, 0); }}; + break; + } + } + + +inline _Uint4_t _Load_seq_cst_4(volatile _Uint4_t *_Tgt) + { + + _Uint4_t _Value; + + + + + + + _Value = *_Tgt; + _ReadWriteBarrier(); + + + return (_Value); + } + +inline _Uint4_t _Load_relaxed_4(volatile _Uint4_t *_Tgt) + { + + _Uint4_t _Value; + + + + + + _Value = *_Tgt; + + + return (_Value); + } + +inline _Uint4_t _Load_acquire_4(volatile _Uint4_t *_Tgt) + { + + + return (_Load_seq_cst_4(_Tgt)); + } + +inline _Uint4_t _Atomic_load_4( + volatile _Uint4_t *_Tgt, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Load_relaxed_4(_Tgt)); + + case memory_order_consume: + case memory_order_acquire: + return (_Load_acquire_4(_Tgt)); + + case memory_order_seq_cst: + return (_Load_seq_cst_4(_Tgt)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1401); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1401, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1401, 0); }}; + return (0); + } + } + + +inline _Uint4_t _Exchange_seq_cst_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedExchange((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Exchange_relaxed_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedExchange((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Exchange_acquire_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedExchange((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Exchange_release_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedExchange((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Atomic_exchange_4( + volatile _Uint4_t *_Tgt, _Uint4_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Exchange_relaxed_4(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Exchange_acquire_4(_Tgt, _Value)); + + case memory_order_release: + return (_Exchange_release_4(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Exchange_seq_cst_4(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1455); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1455, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1455, 0); }}; + return (0); + } + } + + +inline int _Compare_exchange_seq_cst_4(volatile _Uint4_t *_Tgt, + _Uint4_t *_Exp, _Uint4_t _Value) + { + + _Uint4_t _Old_exp = *_Exp; + + _Uint4_t _Prev = _InterlockedCompareExchange((volatile long *)_Tgt, + _Value, _Old_exp); + + if (_Prev == _Old_exp) + return (1); + else + { + *_Exp = _Prev; + return (0); + } + } + +inline int _Compare_exchange_relaxed_4(volatile _Uint4_t *_Tgt, + _Uint4_t *_Exp, _Uint4_t _Value) + { + + _Uint4_t _Old_exp = *_Exp; + + _Uint4_t _Prev = _InterlockedCompareExchange((volatile long *)_Tgt, + _Value, _Old_exp); + + if (_Prev == _Old_exp) + return (1); + else + { + *_Exp = _Prev; + return (0); + } + } + +inline int _Compare_exchange_acquire_4(volatile _Uint4_t *_Tgt, + _Uint4_t *_Exp, _Uint4_t _Value) + { + + _Uint4_t _Old_exp = *_Exp; + + _Uint4_t _Prev = _InterlockedCompareExchange((volatile long *)_Tgt, + _Value, _Old_exp); + + if (_Prev == _Old_exp) + return (1); + else + { + *_Exp = _Prev; + return (0); + } + } + +inline int _Compare_exchange_release_4(volatile _Uint4_t *_Tgt, + _Uint4_t *_Exp, _Uint4_t _Value) + { + + _Uint4_t _Old_exp = *_Exp; + + _Uint4_t _Prev = _InterlockedCompareExchange((volatile long *)_Tgt, + _Value, _Old_exp); + + if (_Prev == _Old_exp) + return (1); + else + { + *_Exp = _Prev; + return (0); + } + } + +inline int _Atomic_compare_exchange_strong_4( + volatile _Uint4_t *_Tgt, _Uint4_t *_Exp, _Uint4_t _Value, + memory_order _Order1, memory_order _Order2) + { + _Validate_compare_exchange_memory_order(_Order1, _Order2); + + switch (_Memory_order_upper_bound(_Order1, _Order2)) + { + case memory_order_relaxed: + return (_Compare_exchange_relaxed_4(_Tgt, _Exp, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Compare_exchange_acquire_4(_Tgt, _Exp, _Value)); + + case memory_order_release: + return (_Compare_exchange_release_4(_Tgt, _Exp, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Compare_exchange_seq_cst_4(_Tgt, _Exp, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1556); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1556, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1556, 0); }}; + return (0); + } + } + +inline int _Atomic_compare_exchange_weak_4( + volatile _Uint4_t *_Tgt, _Uint4_t *_Exp, _Uint4_t _Value, + memory_order _Order1, memory_order _Order2) + { + + + return (_Atomic_compare_exchange_strong_4(_Tgt, _Exp, _Value, + _Order1, _Order2)); + } + + +inline _Uint4_t _Fetch_add_seq_cst_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedExchangeAdd((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Fetch_add_relaxed_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedExchangeAdd((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Fetch_add_acquire_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedExchangeAdd((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Fetch_add_release_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedExchangeAdd((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Atomic_fetch_add_4( + volatile _Uint4_t *_Tgt, _Uint4_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Fetch_add_relaxed_4(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Fetch_add_acquire_4(_Tgt, _Value)); + + case memory_order_release: + return (_Fetch_add_release_4(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Fetch_add_seq_cst_4(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1620); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1620, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1620, 0); }}; + return (0); + } + } + +inline _Uint4_t _Atomic_fetch_sub_4( + volatile _Uint4_t *_Tgt, _Uint4_t _Value, memory_order _Order) + { + return (_Atomic_fetch_add_4(_Tgt, 0 - _Value, _Order)); + } + + +inline _Uint4_t _Fetch_and_seq_cst_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedAnd((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Fetch_and_relaxed_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedAnd((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Fetch_and_acquire_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedAnd((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Fetch_and_release_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedAnd((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Atomic_fetch_and_4( + volatile _Uint4_t *_Tgt, _Uint4_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Fetch_and_relaxed_4(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Fetch_and_acquire_4(_Tgt, _Value)); + + case memory_order_release: + return (_Fetch_and_release_4(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Fetch_and_seq_cst_4(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1680); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1680, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1680, 0); }}; + return (0); + } + } + + +inline _Uint4_t _Fetch_or_seq_cst_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedOr((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Fetch_or_relaxed_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedOr((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Fetch_or_acquire_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedOr((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Fetch_or_release_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedOr((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Atomic_fetch_or_4( + volatile _Uint4_t *_Tgt, _Uint4_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Fetch_or_relaxed_4(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Fetch_or_acquire_4(_Tgt, _Value)); + + case memory_order_release: + return (_Fetch_or_release_4(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Fetch_or_seq_cst_4(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1734); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1734, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1734, 0); }}; + return (0); + } + } + + +inline _Uint4_t _Fetch_xor_seq_cst_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedXor((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Fetch_xor_relaxed_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedXor((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Fetch_xor_acquire_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedXor((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Fetch_xor_release_4(volatile _Uint4_t *_Tgt, _Uint4_t _Value) + { + + + return (_InterlockedXor((volatile long *)_Tgt, _Value)); + } + +inline _Uint4_t _Atomic_fetch_xor_4( + volatile _Uint4_t *_Tgt, _Uint4_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Fetch_xor_relaxed_4(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Fetch_xor_acquire_4(_Tgt, _Value)); + + case memory_order_release: + return (_Fetch_xor_release_4(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Fetch_xor_seq_cst_4(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1788); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1788, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1788, 0); }}; + return (0); + } + } + + +inline void _Store_relaxed_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { +# 1804 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h" 3 + _InterlockedExchange64_INLINE((volatile long long *)_Tgt, _Value); + + } + +inline void _Store_release_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { +# 1820 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h" 3 + _InterlockedExchange64_INLINE((volatile long long *)_Tgt, _Value); + + } + +inline void _Store_seq_cst_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { +# 1834 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h" 3 + _InterlockedExchange64_INLINE((volatile long long *)_Tgt, _Value); + + } + +inline void _Atomic_store_8( + volatile _Uint8_t *_Tgt, _Uint8_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + _Store_relaxed_8(_Tgt, _Value); + break; + + case memory_order_release: + _Store_release_8(_Tgt, _Value); + break; + + case memory_order_seq_cst: + _Store_seq_cst_8(_Tgt, _Value); + break; + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1856); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1856, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1856, 0); }}; + break; + } + } + + +inline _Uint8_t _Load_seq_cst_8(volatile _Uint8_t *_Tgt) + { + + _Uint8_t _Value; +# 1880 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h" 3 + _Value = _InterlockedOr64_INLINE((volatile long long *)_Tgt, 0); + + + return (_Value); + } + +inline _Uint8_t _Load_relaxed_8(volatile _Uint8_t *_Tgt) + { + + _Uint8_t _Value; +# 1901 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h" 3 + _Value = _InterlockedOr64_INLINE((volatile long long *)_Tgt, 0); + + + return (_Value); + } + +inline _Uint8_t _Load_acquire_8(volatile _Uint8_t *_Tgt) + { + + + return (_Load_seq_cst_8(_Tgt)); + } + +inline _Uint8_t _Atomic_load_8( + volatile _Uint8_t *_Tgt, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Load_relaxed_8(_Tgt)); + + case memory_order_consume: + case memory_order_acquire: + return (_Load_acquire_8(_Tgt)); + + case memory_order_seq_cst: + return (_Load_seq_cst_8(_Tgt)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1930); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1930, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1930, 0); }}; + return (0); + } + } + + +inline _Uint8_t _Exchange_seq_cst_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedExchange64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Exchange_relaxed_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedExchange64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Exchange_acquire_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedExchange64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Exchange_release_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedExchange64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Atomic_exchange_8( + volatile _Uint8_t *_Tgt, _Uint8_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Exchange_relaxed_8(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Exchange_acquire_8(_Tgt, _Value)); + + case memory_order_release: + return (_Exchange_release_8(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Exchange_seq_cst_8(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1984); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1984, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 1984, 0); }}; + return (0); + } + } + + +inline int _Compare_exchange_seq_cst_8(volatile _Uint8_t *_Tgt, + _Uint8_t *_Exp, _Uint8_t _Value) + { + + _Uint8_t _Old_exp = *_Exp; + + _Uint8_t _Prev = _InterlockedCompareExchange64((volatile long long *)_Tgt, + _Value, _Old_exp); + + if (_Prev == _Old_exp) + return (1); + else + { + *_Exp = _Prev; + return (0); + } + } + +inline int _Compare_exchange_relaxed_8(volatile _Uint8_t *_Tgt, + _Uint8_t *_Exp, _Uint8_t _Value) + { + + _Uint8_t _Old_exp = *_Exp; + + _Uint8_t _Prev = _InterlockedCompareExchange64((volatile long long *)_Tgt, + _Value, _Old_exp); + + if (_Prev == _Old_exp) + return (1); + else + { + *_Exp = _Prev; + return (0); + } + } + +inline int _Compare_exchange_acquire_8(volatile _Uint8_t *_Tgt, + _Uint8_t *_Exp, _Uint8_t _Value) + { + + _Uint8_t _Old_exp = *_Exp; + + _Uint8_t _Prev = _InterlockedCompareExchange64((volatile long long *)_Tgt, + _Value, _Old_exp); + + if (_Prev == _Old_exp) + return (1); + else + { + *_Exp = _Prev; + return (0); + } + } + +inline int _Compare_exchange_release_8(volatile _Uint8_t *_Tgt, + _Uint8_t *_Exp, _Uint8_t _Value) + { + + _Uint8_t _Old_exp = *_Exp; + + _Uint8_t _Prev = _InterlockedCompareExchange64((volatile long long *)_Tgt, + _Value, _Old_exp); + + if (_Prev == _Old_exp) + return (1); + else + { + *_Exp = _Prev; + return (0); + } + } + +inline int _Atomic_compare_exchange_strong_8( + volatile _Uint8_t *_Tgt, _Uint8_t *_Exp, _Uint8_t _Value, + memory_order _Order1, memory_order _Order2) + { + _Validate_compare_exchange_memory_order(_Order1, _Order2); + + switch (_Memory_order_upper_bound(_Order1, _Order2)) + { + case memory_order_relaxed: + return (_Compare_exchange_relaxed_8(_Tgt, _Exp, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Compare_exchange_acquire_8(_Tgt, _Exp, _Value)); + + case memory_order_release: + return (_Compare_exchange_release_8(_Tgt, _Exp, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Compare_exchange_seq_cst_8(_Tgt, _Exp, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2085); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2085, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2085, 0); }}; + return (0); + } + } + +inline int _Atomic_compare_exchange_weak_8( + volatile _Uint8_t *_Tgt, _Uint8_t *_Exp, _Uint8_t _Value, + memory_order _Order1, memory_order _Order2) + { + + + return (_Atomic_compare_exchange_strong_8(_Tgt, _Exp, _Value, + _Order1, _Order2)); + } + + +inline _Uint8_t _Fetch_add_seq_cst_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedExchangeAdd64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Fetch_add_relaxed_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedExchangeAdd64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Fetch_add_acquire_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedExchangeAdd64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Fetch_add_release_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedExchangeAdd64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Atomic_fetch_add_8( + volatile _Uint8_t *_Tgt, _Uint8_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Fetch_add_relaxed_8(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Fetch_add_acquire_8(_Tgt, _Value)); + + case memory_order_release: + return (_Fetch_add_release_8(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Fetch_add_seq_cst_8(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2149); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2149, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2149, 0); }}; + return (0); + } + } + +inline _Uint8_t _Atomic_fetch_sub_8( + volatile _Uint8_t *_Tgt, _Uint8_t _Value, memory_order _Order) + { + return (_Atomic_fetch_add_8(_Tgt, 0 - _Value, _Order)); + } + + +inline _Uint8_t _Fetch_and_seq_cst_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedAnd64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Fetch_and_relaxed_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedAnd64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Fetch_and_acquire_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedAnd64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Fetch_and_release_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedAnd64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Atomic_fetch_and_8( + volatile _Uint8_t *_Tgt, _Uint8_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Fetch_and_relaxed_8(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Fetch_and_acquire_8(_Tgt, _Value)); + + case memory_order_release: + return (_Fetch_and_release_8(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Fetch_and_seq_cst_8(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2209); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2209, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2209, 0); }}; + return (0); + } + } + + +inline _Uint8_t _Fetch_or_seq_cst_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedOr64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Fetch_or_relaxed_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedOr64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Fetch_or_acquire_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedOr64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Fetch_or_release_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedOr64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Atomic_fetch_or_8( + volatile _Uint8_t *_Tgt, _Uint8_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Fetch_or_relaxed_8(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Fetch_or_acquire_8(_Tgt, _Value)); + + case memory_order_release: + return (_Fetch_or_release_8(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Fetch_or_seq_cst_8(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2263); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2263, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2263, 0); }}; + return (0); + } + } + + +inline _Uint8_t _Fetch_xor_seq_cst_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedXor64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Fetch_xor_relaxed_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedXor64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Fetch_xor_acquire_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedXor64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Fetch_xor_release_8(volatile _Uint8_t *_Tgt, _Uint8_t _Value) + { + + + return (_InterlockedXor64_INLINE((volatile long long *)_Tgt, _Value)); + } + +inline _Uint8_t _Atomic_fetch_xor_8( + volatile _Uint8_t *_Tgt, _Uint8_t _Value, memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_Fetch_xor_relaxed_8(_Tgt, _Value)); + + case memory_order_consume: + case memory_order_acquire: + return (_Fetch_xor_acquire_8(_Tgt, _Value)); + + case memory_order_release: + return (_Fetch_xor_release_8(_Tgt, _Value)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_Fetch_xor_seq_cst_8(_Tgt, _Value)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2317); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2317, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2317, 0); }}; + return (0); + } + } + +inline int _Atomic_flag_test_and_set(volatile _Atomic_flag_t *_Flag, + memory_order _Order) + { + switch (_Order) + { + case memory_order_relaxed: + return (_interlockedbittestandset(_Flag, 0)); + + case memory_order_consume: + case memory_order_acquire: + return (_interlockedbittestandset(_Flag, 0)); + + case memory_order_release: + return (_interlockedbittestandset(_Flag, 0)); + + case memory_order_acq_rel: + case memory_order_seq_cst: + return (_interlockedbittestandset(_Flag, 0)); + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2342); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2342, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2342, 0); }}; + return (0); + } + } + +inline void _Atomic_flag_clear(volatile _Atomic_flag_t *_Flag, + memory_order _Order) + { + static_assert(sizeof(_Atomic_flag_t) == sizeof(_Uint4_t), + "Unexpected _Atomic_flag_t size"); + + switch (_Order) + { + case memory_order_relaxed: + case memory_order_release: + case memory_order_seq_cst: + _Atomic_store_4((volatile _Uint4_t *)_Flag, 0, _Order); + break; + + default: + {_Debug_message(L"Invalid memory_order", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2362); { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2362, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h", 2362, 0); }}; + break; + } + } + +inline void _Atomic_thread_fence(memory_order _Order) + { + + + + + + + + _ReadWriteBarrier(); + if (_Order == memory_order_seq_cst) + { + static _Uint4_t _Guard; + _Atomic_exchange_4(&_Guard, 0, memory_order_seq_cst); + _ReadWriteBarrier(); + } + + } + +inline void _Atomic_signal_fence(memory_order _Order) + { + _ReadWriteBarrier(); + } +# 2403 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h" 3 +inline void _Lock_spin_lock( + volatile _Atomic_flag_t *_Flag) + { + while (_Atomic_flag_test_and_set(_Flag, memory_order_acquire)) + ; + } + +inline void _Unlock_spin_lock( + volatile _Atomic_flag_t *_Flag) + { + _Atomic_flag_clear(_Flag, memory_order_release); + } + + + +inline void _Atomic_copy( + volatile _Atomic_flag_t *_Flag, size_t _Size, + volatile void *_Tgt, volatile const void *_Src, + memory_order _Order) + { + _Lock_spin_lock(_Flag); + :: memcpy((void *)_Tgt, (void *)_Src, _Size); + _Unlock_spin_lock(_Flag); + } + +inline void _Atomic_exchange( + volatile _Atomic_flag_t *_Flag, size_t _Size, + volatile void *_Tgt, volatile void *_Src, + memory_order _Order) + { + unsigned char *_Left = (unsigned char *)_Tgt; + unsigned char *_Right = (unsigned char *)_Src; + + _Lock_spin_lock(_Flag); + for (; 0 < _Size; --_Size) + { + unsigned char _Tmp = *_Left; + *_Left++ = *_Right; + *_Right++ = _Tmp; + } + _Unlock_spin_lock(_Flag); + } + +inline int _Atomic_compare_exchange_weak( + volatile _Atomic_flag_t *_Flag, size_t _Size, + volatile void *_Tgt, volatile void *_Exp, const volatile void *_Src, + memory_order _Order1, memory_order _Order2) + { + int _Result; + + _Lock_spin_lock(_Flag); + _Result = :: memcmp((const void *)_Tgt, (const void *)_Exp, _Size) == 0; + if (_Result != 0) + :: memcpy((void *)_Tgt, (void *)_Src, _Size); + else + :: memcpy((void *)_Exp, (void *)_Tgt, _Size); + _Unlock_spin_lock(_Flag); + return (_Result); + } + +inline int _Atomic_compare_exchange_strong( + volatile _Atomic_flag_t *_Flag, size_t _Size, + volatile void *_Tgt, volatile void *_Exp, const volatile void *_Src, + memory_order _Order1, memory_order _Order2) + { + return (_Atomic_compare_exchange_weak(_Flag, _Size, _Tgt, _Exp, _Src, + _Order1, _Order2)); + } + + +inline int _Atomic_is_lock_free_1(void) + { + return (1 <= 8); + } + +inline int _Atomic_is_lock_free_2(void) + { + return (2 <= 8); + } + +inline int _Atomic_is_lock_free_4(void) + { + return (4 <= 8); + } + +inline int _Atomic_is_lock_free_8(void) + { + return (8 <= 8); + } +# 2545 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h" 3 +} +# 2556 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xatomic.h" 3 +#pragma warning(pop) +#pragma pack(pop) +# 19 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4522 4800) +# 38 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 3 +namespace std { +inline memory_order _Get_memory_order(memory_order _Order) + { + + return (_Order == memory_order_acq_rel ? memory_order_acquire + : _Order == memory_order_release ? memory_order_relaxed + : _Order); + } + + +template + _Ty kill_dependency(_Ty _Arg) noexcept + { + return (_Arg); + } + + +template + struct atomic; +template + bool atomic_is_lock_free(const volatile atomic<_Ty> *) noexcept; +template + bool atomic_is_lock_free(const atomic<_Ty> *) noexcept; +template + void atomic_init(volatile atomic<_Ty> *, _Ty) noexcept; +template + void atomic_init(atomic<_Ty> *, _Ty) noexcept; +template + void atomic_store(volatile atomic<_Ty> *, _Ty) noexcept; +template + void atomic_store(atomic<_Ty> *, _Ty) noexcept; +template + void atomic_store_explicit(volatile atomic<_Ty> *, _Ty, + memory_order) noexcept; +template + void atomic_store_explicit(atomic<_Ty> *, _Ty, + memory_order) noexcept; +template + _Ty atomic_load(const volatile atomic<_Ty> *) noexcept; +template + _Ty atomic_load(const atomic<_Ty> *) noexcept; +template + _Ty atomic_load_explicit(const volatile atomic<_Ty> *, + memory_order) noexcept; +template + _Ty atomic_load_explicit(const atomic<_Ty> *, + memory_order) noexcept; +template + _Ty atomic_exchange(volatile atomic<_Ty> *, _Ty) noexcept; +template + _Ty atomic_exchange(atomic<_Ty> *, _Ty) noexcept; +template + _Ty atomic_exchange_explicit(volatile atomic<_Ty> *, _Ty, + memory_order) noexcept; +template + _Ty atomic_exchange_explicit(atomic<_Ty> *, _Ty, + memory_order) noexcept; +template + bool atomic_compare_exchange_weak(volatile atomic<_Ty> *, + _Ty *, _Ty) noexcept; +template + bool atomic_compare_exchange_weak(atomic<_Ty> *, + _Ty *, _Ty) noexcept; +template + bool atomic_compare_exchange_weak_explicit( + volatile atomic<_Ty> *, _Ty *, _Ty, + memory_order, memory_order) noexcept; +template + bool atomic_compare_exchange_weak_explicit( + atomic<_Ty> *, _Ty *, _Ty, + memory_order, memory_order) noexcept; +template + bool atomic_compare_exchange_strong(volatile atomic<_Ty> *, + _Ty *, _Ty) noexcept; +template + bool atomic_compare_exchange_strong(atomic<_Ty> *, + _Ty *, _Ty) noexcept; +template + bool atomic_compare_exchange_strong_explicit( + volatile atomic<_Ty> *, _Ty *, _Ty, + memory_order, memory_order) noexcept; +template + bool atomic_compare_exchange_strong_explicit( + atomic<_Ty> *, _Ty *, _Ty, + memory_order, memory_order) noexcept; + + +template + _Ty atomic_fetch_add(volatile atomic<_Ty>*, _Ty) noexcept; +template + _Ty atomic_fetch_add(atomic<_Ty>*, _Ty) noexcept; +template + _Ty atomic_fetch_add_explicit(volatile atomic<_Ty>*, _Ty, + memory_order) noexcept; +template + _Ty atomic_fetch_add_explicit(atomic<_Ty>*, _Ty, + memory_order) noexcept; +template + _Ty atomic_fetch_sub(volatile atomic<_Ty>*, _Ty) noexcept; +template + _Ty atomic_fetch_sub(atomic<_Ty>*, _Ty) noexcept; +template + _Ty atomic_fetch_sub_explicit(volatile atomic<_Ty>*, _Ty, + memory_order) noexcept; +template + _Ty atomic_fetch_sub_explicit(atomic<_Ty>*, _Ty, + memory_order) noexcept; +template + _Ty atomic_fetch_and(volatile atomic<_Ty>*, _Ty) noexcept; +template + _Ty atomic_fetch_and(atomic<_Ty>*, _Ty) noexcept; +template + _Ty atomic_fetch_and_explicit(volatile atomic<_Ty>*, _Ty, + memory_order) noexcept; +template + _Ty atomic_fetch_and_explicit(atomic<_Ty>*, _Ty, + memory_order) noexcept; +template + _Ty atomic_fetch_or(volatile atomic<_Ty>*, _Ty) noexcept; +template + _Ty atomic_fetch_or(atomic<_Ty>*, _Ty) noexcept; +template + _Ty atomic_fetch_or_explicit(volatile atomic<_Ty>*, _Ty, + memory_order) noexcept; +template + _Ty atomic_fetch_or_explicit(atomic<_Ty>*, _Ty, + memory_order) noexcept; +template + _Ty atomic_fetch_xor(volatile atomic<_Ty>*, _Ty) noexcept; +template + _Ty atomic_fetch_xor(atomic<_Ty>*, _Ty) noexcept; +template + _Ty atomic_fetch_xor_explicit(volatile atomic<_Ty>*, _Ty, + memory_order) noexcept; +template + _Ty atomic_fetch_xor_explicit(atomic<_Ty>*, _Ty, + memory_order) noexcept; + + + +typedef struct atomic_flag + { + bool test_and_set(memory_order _Order = memory_order_seq_cst) + volatile noexcept; + bool test_and_set(memory_order _Order = memory_order_seq_cst) noexcept; + void clear(memory_order _Order = memory_order_seq_cst) + volatile noexcept; + void clear(memory_order _Order = memory_order_seq_cst) noexcept; + + _Atomic_flag_t _My_flag; + + atomic_flag() noexcept = default; + atomic_flag(const atomic_flag&) = delete; + atomic_flag& operator=(const atomic_flag&) = delete; + atomic_flag& operator=(const atomic_flag&) volatile = delete; + } atomic_flag; + +inline bool atomic_flag::test_and_set(memory_order _Order) + volatile noexcept + { + return (_Atomic_flag_test_and_set(&_My_flag, _Order)); + } + +inline bool atomic_flag::test_and_set(memory_order _Order) noexcept + { + return (_Atomic_flag_test_and_set(&_My_flag, _Order)); + } + +inline void atomic_flag::clear(memory_order _Order) + volatile noexcept + { + _Atomic_flag_clear(&_My_flag, _Order); + } + +inline void atomic_flag::clear(memory_order _Order) noexcept + { + _Atomic_flag_clear(&_My_flag, _Order); + } + +inline bool atomic_flag_test_and_set(volatile atomic_flag *_Flag) noexcept + { + return (_Atomic_flag_test_and_set(&_Flag->_My_flag, memory_order_seq_cst)); + } + +inline bool atomic_flag_test_and_set(atomic_flag *_Flag) noexcept + { + return (_Atomic_flag_test_and_set(&_Flag->_My_flag, memory_order_seq_cst)); + } + +inline bool atomic_flag_test_and_set_explicit( + volatile atomic_flag *_Flag, memory_order _Order) noexcept + { + return (_Atomic_flag_test_and_set(&_Flag->_My_flag, _Order)); + } + +inline bool atomic_flag_test_and_set_explicit( + atomic_flag *_Flag, memory_order _Order) noexcept + { + return (_Atomic_flag_test_and_set(&_Flag->_My_flag, _Order)); + } + +inline void atomic_flag_clear(volatile atomic_flag *_Flag) noexcept + { + _Atomic_flag_clear(&_Flag->_My_flag, memory_order_seq_cst); + } + +inline void atomic_flag_clear(atomic_flag *_Flag) noexcept + { + _Atomic_flag_clear(&_Flag->_My_flag, memory_order_seq_cst); + } + +inline void atomic_flag_clear_explicit( + volatile atomic_flag *_Flag, memory_order _Order) noexcept + { + _Atomic_flag_clear(&_Flag->_My_flag, _Order); + } + +inline void atomic_flag_clear_explicit( + atomic_flag *_Flag, memory_order _Order) noexcept + { + _Atomic_flag_clear(&_Flag->_My_flag, _Order); + } + + +template + struct _Atomic_impl + { + typedef _Uint1_t _My_int; + + constexpr _Atomic_impl() noexcept + : _My_flag(0) + { + } + + bool _Is_lock_free() const volatile + { + return (false); + } + + void _Store(void *_Tgt, const void *_Src, memory_order _Order) volatile + { + _Atomic_copy(&_My_flag, _Bytes, _Tgt, _Src, _Order); + } + + void _Load(void *_Tgt, const void *_Src, + memory_order _Order) const volatile + { + _Atomic_copy(&_My_flag, _Bytes, _Tgt, _Src, _Order); + } + + void _Exchange(void *_Left, void *_Right, memory_order _Order) volatile + { + _Atomic_exchange(&_My_flag, _Bytes, _Left, _Right, _Order); + } + + bool _Compare_exchange_weak( + void *_Tgt, void *_Exp, const void *_Value, + memory_order _Order1, memory_order _Order2) volatile + { + return (_Atomic_compare_exchange_weak( + &_My_flag, _Bytes, _Tgt, _Exp, _Value, _Order1, _Order2)); + } + + bool _Compare_exchange_strong( + void *_Tgt, void *_Exp, const void *_Value, + memory_order _Order1, memory_order _Order2) volatile + { + return (_Atomic_compare_exchange_strong( + &_My_flag, _Bytes, _Tgt, _Exp, _Value, _Order1, _Order2)); + } + +private: + mutable _Atomic_flag_t _My_flag; + }; + + + +template<> + struct _Atomic_impl<1U> + { + typedef _Uint1_t _My_int; + + bool _Is_lock_free() const volatile + { + return (_Atomic_is_lock_free_1()); + } + + void _Store(void *_Tgt, const void *_Src, memory_order _Order) volatile + { + _Atomic_store_1((_My_int*)_Tgt, *(_My_int*)_Src, _Order); + } + + void _Load(void *_Tgt, const void *_Src, + memory_order _Order) const volatile + { + *(_My_int*)_Tgt = _Atomic_load_1((_My_int*)_Src, _Order); + } + + void _Exchange(void *_Left, void *_Right, memory_order _Order) volatile + { + *(_My_int*)_Right = + _Atomic_exchange_1((_My_int*)_Left, *(_My_int*)_Right, _Order); + } + + bool _Compare_exchange_weak( + void *_Tgt, void *_Exp, const void *_Value, + memory_order _Order1, memory_order _Order2) volatile + { + return (_Atomic_compare_exchange_weak_1( + (_My_int*)_Tgt, (_My_int*)_Exp, *(_My_int*)_Value, + _Order1, _Order2)); + } + + bool _Compare_exchange_strong( + void *_Tgt, void *_Exp, const void *_Value, + memory_order _Order1, memory_order _Order2) volatile + { + return (_Atomic_compare_exchange_strong_1( + (_My_int*)_Tgt, (_My_int*)_Exp, *(_My_int*)_Value, + _Order1, _Order2)); + } + }; + +template<> + struct _Atomic_impl<2U> + { + typedef _Uint2_t _My_int; + + bool _Is_lock_free() const volatile + { + return (_Atomic_is_lock_free_2()); + } + + void _Store(void *_Tgt, const void *_Src, memory_order _Order) volatile + { + _Atomic_store_2((_My_int*)_Tgt, *(_My_int*)_Src, _Order); + } + + void _Load(void *_Tgt, const void *_Src, + memory_order _Order) const volatile + { + *(_My_int*)_Tgt = _Atomic_load_2((_My_int*)_Src, _Order); + } + + void _Exchange(void *_Left, void *_Right, memory_order _Order) volatile + { + *(_My_int*)_Right = + _Atomic_exchange_2((_My_int*)_Left, *(_My_int*)_Right, _Order); + } + + bool _Compare_exchange_weak( + void *_Tgt, void *_Exp, const void *_Value, + memory_order _Order1, memory_order _Order2) volatile + { + return (_Atomic_compare_exchange_weak_2( + (_My_int*)_Tgt, (_My_int*)_Exp, *(_My_int*)_Value, + _Order1, _Order2)); + } + + bool _Compare_exchange_strong( + void *_Tgt, void *_Exp, const void *_Value, + memory_order _Order1, memory_order _Order2) volatile + { + return (_Atomic_compare_exchange_strong_2( + (_My_int*)_Tgt, (_My_int*)_Exp, *(_My_int*)_Value, + _Order1, _Order2)); + } + }; + +template<> + struct _Atomic_impl<4U> + { + typedef _Uint4_t _My_int; + + bool _Is_lock_free() const volatile + { + return (_Atomic_is_lock_free_4()); + } + + void _Store(void *_Tgt, const void *_Src, memory_order _Order) volatile + { + _Atomic_store_4((_My_int*)_Tgt, *(_My_int*)_Src, _Order); + } + + void _Load(void *_Tgt, const void *_Src, + memory_order _Order) const volatile + { + *(_My_int*)_Tgt = _Atomic_load_4((_My_int*)_Src, _Order); + } + + void _Exchange(void *_Left, void *_Right, memory_order _Order) volatile + { + *(_My_int*)_Right = + _Atomic_exchange_4((_My_int*)_Left, *(_My_int*)_Right, _Order); + } + + bool _Compare_exchange_weak( + void *_Tgt, void *_Exp, const void *_Value, + memory_order _Order1, memory_order _Order2) volatile + { + return (_Atomic_compare_exchange_weak_4( + (_My_int*)_Tgt, (_My_int*)_Exp, *(_My_int*)_Value, + _Order1, _Order2)); + } + + bool _Compare_exchange_strong( + void *_Tgt, void *_Exp, const void *_Value, + memory_order _Order1, memory_order _Order2) volatile + { + return (_Atomic_compare_exchange_strong_4( + (_My_int*)_Tgt, (_My_int*)_Exp, *(_My_int*)_Value, + _Order1, _Order2)); + } + }; + +template<> + struct _Atomic_impl<8U> + { + typedef _Uint8_t _My_int; + + bool _Is_lock_free() const volatile + { + return (_Atomic_is_lock_free_8()); + } + + void _Store(void *_Tgt, const void *_Src, memory_order _Order) volatile + { + _Atomic_store_8((_My_int*)_Tgt, *(_My_int*)_Src, _Order); + } + + void _Load(void *_Tgt, const void *_Src, + memory_order _Order) const volatile + { + *(_My_int*)_Tgt = _Atomic_load_8((_My_int*)_Src, _Order); + } + + void _Exchange(void *_Left, void *_Right, memory_order _Order) volatile + { + *(_My_int*)_Right = + _Atomic_exchange_8((_My_int*)_Left, *(_My_int*)_Right, _Order); + } + + bool _Compare_exchange_weak( + void *_Tgt, void *_Exp, const void *_Value, + memory_order _Order1, memory_order _Order2) volatile + { + return (_Atomic_compare_exchange_weak_8( + (_My_int*)_Tgt, (_My_int*)_Exp, *(_My_int*)_Value, + _Order1, _Order2)); + } + + bool _Compare_exchange_strong( + void *_Tgt, void *_Exp, const void *_Value, + memory_order _Order1, memory_order _Order2) volatile + { + return (_Atomic_compare_exchange_strong_8( + (_My_int*)_Tgt, (_My_int*)_Exp, *(_My_int*)_Value, + _Order1, _Order2)); + } + }; + + +template + struct _Atomic_base + : _Atomic_impl<_Bytes> + { + typedef _Atomic_impl<_Bytes> _Mybase; + typedef typename _Mybase::_My_int _My_int; + + constexpr _Atomic_base(_Ty _Val) noexcept + : _My_val(_Val) + { + } + + _Atomic_base() noexcept = default; + _Atomic_base(const _Atomic_base&) = delete; + _Atomic_base& operator=(const _Atomic_base&) = delete; + _Atomic_base& operator=(const _Atomic_base&) volatile = delete; + + _Ty operator=(_Ty _Right) volatile noexcept + { + this->_Store((void *)&_My_val, &_Right, memory_order_seq_cst); + return (_Right); + } + + _Ty operator=(_Ty _Right) noexcept + { + this->_Store((void *)&_My_val, &_Right, memory_order_seq_cst); + return (_Right); + } + + bool is_lock_free() const volatile noexcept + { + return (this->_Is_lock_free()); + } + + bool is_lock_free() const noexcept + { + return (this->_Is_lock_free()); + } + + void store(_Ty _Value, + memory_order _Order = memory_order_seq_cst) volatile noexcept + { + this->_Store((void *)&_My_val, &_Value, _Order); + } + + void store(_Ty _Value, + memory_order _Order = memory_order_seq_cst) noexcept + { + this->_Store((void *)&_My_val, &_Value, _Order); + } + + _Ty load(memory_order _Order = memory_order_seq_cst) + const volatile noexcept + { + _Ty _Result; + this->_Load((void *)&_Result, (const void *)&_My_val, _Order); + return (_Result); + } + + _Ty load(memory_order _Order = memory_order_seq_cst) + const noexcept + { + _Ty _Result; + this->_Load((void *)&_Result, (const void *)&_My_val, _Order); + return (_Result); + } + + operator _Ty() const volatile noexcept + { + return (load()); + } + + operator _Ty() const noexcept + { + return (load()); + } + + _Ty exchange(_Ty _Value, + memory_order _Order = memory_order_seq_cst) volatile noexcept + { + this->_Exchange((void *)&_My_val, (void *)&_Value, _Order); + return (_Value); + } + + _Ty exchange(_Ty _Value, + memory_order _Order = memory_order_seq_cst) noexcept + { + this->_Exchange((void *)&_My_val, (void *)&_Value, _Order); + return (_Value); + } + + bool compare_exchange_weak(_Ty& _Exp, _Ty _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (this->_Compare_exchange_weak( + (void *)&_My_val, (void *)&_Exp, (const void *)&_Value, + _Order1, _Order2)); + } + + bool compare_exchange_weak(_Ty& _Exp, _Ty _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (this->_Compare_exchange_weak( + (void *)&_My_val, (void *)&_Exp, (const void *)&_Value, + _Order1, _Order2)); + } + + bool compare_exchange_weak(_Ty& _Exp, _Ty _Value, + memory_order _Order = memory_order_seq_cst) volatile noexcept + { + return (compare_exchange_weak( + _Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + bool compare_exchange_weak(_Ty& _Exp, _Ty _Value, + memory_order _Order = memory_order_seq_cst) noexcept + { + return (compare_exchange_weak( + _Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + bool compare_exchange_strong(_Ty& _Exp, _Ty _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (this->_Compare_exchange_strong( + (void *)&_My_val, (void *)&_Exp, (const void *)&_Value, + _Order1, _Order2)); + } + + bool compare_exchange_strong(_Ty& _Exp, _Ty _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (this->_Compare_exchange_strong( + (void *)&_My_val, (void *)&_Exp, (void *)&_Value, + _Order1, _Order2)); + } + + bool compare_exchange_strong(_Ty& _Exp, _Ty _Value, + memory_order _Order = memory_order_seq_cst) volatile noexcept + { + return (compare_exchange_strong( + _Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + bool compare_exchange_strong(_Ty& _Exp, _Ty _Value, + memory_order _Order = memory_order_seq_cst) noexcept + { + return (compare_exchange_strong( + _Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + + static_assert(alignof(_Ty) >= sizeof(_My_int), + "You've instantiated std::atomic with sizeof(T) equal to 2/4/8 and alignof(T) < sizeof(T). " + "Before VS 2015 Update 2, this would have misbehaved at runtime. " + "VS 2015 Update 2 was fixed to handle this correctly, " + "but the fix inherently changes layout and breaks binary compatibility. " + "Please define _ENABLE_ATOMIC_ALIGNMENT_FIX to acknowledge that you understand this, " + "and that everything you're linking has been compiled with VS 2015 Update 2 (or later)."); + + + alignas(sizeof(_My_int)) alignas(_Ty) _Ty _My_val; + }; + + +template + struct atomic + : _Atomic_base<_Ty, sizeof (_Ty)> + { + static_assert(is_trivially_copyable<_Ty>::value, + "atomic requires T to be trivially copyable."); + + typedef _Atomic_base<_Ty, sizeof (_Ty)> _My_base; + + atomic() noexcept = default; + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + + constexpr atomic(_Ty _Val) noexcept + : _My_base(_Val) + { + } + + _Ty operator=(_Ty _Right) volatile noexcept + { + return (_My_base::operator=(_Right)); + } + + _Ty operator=(_Ty _Right) noexcept + { + return (_My_base::operator=(_Right)); + } + }; + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +static_assert(1 == sizeof (bool), + "_ISIZE and _ITYPE should match."); +# 70 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +typedef struct _Atomic_bool + { + bool operator=(bool) volatile noexcept; + bool operator=(bool) noexcept; + + bool is_lock_free() const volatile noexcept; + bool is_lock_free() const noexcept; + void store(bool, memory_order = memory_order_seq_cst) + volatile noexcept; + void store(bool, memory_order = memory_order_seq_cst) + noexcept; + bool load(memory_order = memory_order_seq_cst) + const volatile noexcept; + bool load(memory_order = memory_order_seq_cst) + const noexcept; + operator bool() const volatile noexcept; + operator bool() const noexcept; + bool exchange(bool, + memory_order = memory_order_seq_cst) volatile noexcept; + bool exchange(bool, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_weak(bool&, bool, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_weak(bool&, bool, + memory_order, memory_order) noexcept; + bool compare_exchange_strong(bool&, bool, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_strong(bool&, bool, + memory_order, memory_order) noexcept; + bool compare_exchange_weak(bool&, bool, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_weak(bool&, bool, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_strong(bool&, bool, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_strong(bool&, bool, + memory_order = memory_order_seq_cst) noexcept; +# 169 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + alignas(sizeof(_Uint1_t)) _Uint1_t _My_val; + + + + + } _Atomic_bool; + + + +template<> + struct atomic + : _Atomic_bool + { + + atomic() noexcept = default; + + constexpr atomic(bool _Val) noexcept + : _Atomic_bool{(_Uint1_t)_Val} + { + } + + bool operator=(bool _Val) volatile noexcept + { + return (_Atomic_bool::operator=(_Val)); + } + + bool operator=(bool _Val) noexcept + { + return (_Atomic_bool::operator=(_Val)); + } + + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + }; +# 443 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline bool atomic_is_lock_free(const volatile _Atomic_bool *) noexcept + { + return (_Atomic_is_lock_free_1()); + } + +inline bool atomic_is_lock_free(const _Atomic_bool *) noexcept + { + return (_Atomic_is_lock_free_1()); + } + + +inline bool atomic_is_lock_free(const volatile atomic *) noexcept + { + return (_Atomic_is_lock_free_1()); + } + +inline bool atomic_is_lock_free(const atomic *) noexcept + { + return (_Atomic_is_lock_free_1()); + } + + + +inline void atomic_init(volatile _Atomic_bool *_Atom, + bool _Value) noexcept + { + _Atom->_My_val = (_Uint1_t)_Value; + + } + +inline void atomic_init(_Atomic_bool *_Atom, + bool _Value) noexcept + { + _Atom->_My_val = (_Uint1_t)_Value; + + } + + +inline void atomic_init(volatile atomic *_Atom, + bool _Value) noexcept + { + _Atom->_My_val = (_Uint1_t)_Value; + + } + +inline void atomic_init(atomic *_Atom, + bool _Value) noexcept + { + _Atom->_My_val = (_Uint1_t)_Value; + + } + + +inline void atomic_store_explicit( + volatile _Atomic_bool *_Atom, bool _Value, + memory_order _Order) noexcept + { + _Atomic_store_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order); + } + +inline void atomic_store_explicit( + _Atomic_bool *_Atom, bool _Value, + memory_order _Order) noexcept + { + _Atomic_store_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order); + } + +inline void atomic_store(volatile _Atomic_bool *_Atom, + bool _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void atomic_store(_Atomic_bool *_Atom, + bool _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline bool atomic_load_explicit( + const volatile _Atomic_bool *_Atom, memory_order _Order) noexcept + { + return ((bool)_Atomic_load_1 ((_Uint1_t*)&_Atom->_My_val, _Order)); + } + +inline bool atomic_load_explicit( + const _Atomic_bool *_Atom, memory_order _Order) noexcept + { + return ((bool)_Atomic_load_1 ((_Uint1_t*)&_Atom->_My_val, _Order)); + } + +inline bool atomic_load( + const volatile _Atomic_bool *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline bool atomic_load( + const _Atomic_bool *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline bool atomic_exchange_explicit( + volatile _Atomic_bool *_Atom, bool _Value, + memory_order _Order) noexcept + { + return ((bool)_Atomic_exchange_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline bool atomic_exchange_explicit( + _Atomic_bool *_Atom, bool _Value, + memory_order _Order) noexcept + { + return ((bool)_Atomic_exchange_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline bool atomic_exchange(volatile _Atomic_bool *_Atom, + bool _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_exchange(_Atomic_bool *_Atom, + bool _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak_explicit( + volatile _Atomic_bool *_Atom, bool *_Exp, bool _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t*)_Exp, (_Uint1_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak_explicit( + _Atomic_bool *_Atom, bool *_Exp, bool _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t*)_Exp, (_Uint1_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak( + volatile _Atomic_bool *_Atom, bool *_Exp, + bool _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak( + _Atomic_bool *_Atom, bool *_Exp, + bool _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong_explicit( + volatile _Atomic_bool *_Atom, bool *_Exp, bool _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t*)_Exp, (_Uint1_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong_explicit( + _Atomic_bool *_Atom, bool *_Exp, bool _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t*)_Exp, (_Uint1_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong( + volatile _Atomic_bool *_Atom, bool *_Exp, bool _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong( + _Atomic_bool *_Atom, bool *_Exp, bool _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + + +inline bool _Atomic_bool::operator=(bool _Value) volatile noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_bool::operator=(bool _Value) noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_bool::is_lock_free() const volatile noexcept + { + return (atomic_is_lock_free(this)); + } + +inline bool _Atomic_bool::is_lock_free() const noexcept + { + return (atomic_is_lock_free(this)); + } + +inline void _Atomic_bool::store(bool _Value, + memory_order _Order) volatile noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void _Atomic_bool::store(bool _Value, + memory_order _Order) noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline bool _Atomic_bool::load( + memory_order _Order) const volatile noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline bool _Atomic_bool::load( + memory_order _Order) const noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline _Atomic_bool::operator bool() const volatile noexcept + { + return (atomic_load(this)); + } + +inline _Atomic_bool::operator bool() const noexcept + { + return (atomic_load(this)); + } + +inline bool _Atomic_bool::exchange( + bool _Value, memory_order _Order) volatile noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_bool::exchange( + bool _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_bool::compare_exchange_weak( + bool& _Exp, bool _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_bool::compare_exchange_weak( + bool& _Exp, bool _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_bool::compare_exchange_weak( + bool& _Exp, bool _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_bool::compare_exchange_weak( + bool& _Exp, bool _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_bool::compare_exchange_strong( + bool& _Exp, bool _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_bool::compare_exchange_strong( + bool& _Exp, bool _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_bool::compare_exchange_strong( + bool& _Exp, bool _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_bool::compare_exchange_strong( + bool& _Exp, bool _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + + +template<> + inline bool atomic_is_lock_free( + const volatile atomic *_Atom) noexcept + { + return (atomic_is_lock_free( + static_cast(_Atom))); + } + +template<> + inline bool atomic_is_lock_free( + const atomic *_Atom) noexcept + { + return (atomic_is_lock_free(static_cast(_Atom))); + } + +template<> + inline void atomic_init(volatile atomic *_Atom, + bool _Value) noexcept + { + atomic_init(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_init(atomic *_Atom, + bool _Value) noexcept + { + atomic_init(static_cast<_Atomic_bool *>(_Atom), _Value); + } + +template<> + inline void atomic_store(volatile atomic *_Atom, + bool _Value) noexcept + { + atomic_store(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_store(atomic *_Atom, + bool _Value) noexcept + { + atomic_store(static_cast<_Atomic_bool *>(_Atom), _Value); + } + +template<> + inline void atomic_store_explicit(volatile atomic *_Atom, + bool _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast(_Atom), + _Value, _Order); + } + +template<> + inline void atomic_store_explicit(atomic *_Atom, + bool _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast<_Atomic_bool *>(_Atom), + _Value, _Order); + } + +template<> + inline bool atomic_load(const volatile atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline bool atomic_load(const atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline bool atomic_load_explicit( + const volatile atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline bool atomic_load_explicit( + const atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline bool atomic_exchange( + volatile atomic *_Atom, bool _Value) noexcept + { + return (atomic_exchange( + static_cast(_Atom), _Value)); + } + +template<> + inline bool atomic_exchange(atomic *_Atom, + bool _Value) noexcept + { + return (atomic_exchange(static_cast<_Atomic_bool *>(_Atom), _Value)); + } + +template<> + inline bool atomic_exchange_explicit( + volatile atomic *_Atom, + bool _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline bool atomic_exchange_explicit(atomic *_Atom, + bool _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(static_cast<_Atomic_bool *>(_Atom), + _Value, _Order)); + } + +template<> + inline bool atomic_compare_exchange_weak( + volatile atomic *_Atom, bool *_Exp, + bool _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak( + atomic *_Atom, bool *_Exp, + bool _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast<_Atomic_bool *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + volatile atomic *_Atom, bool *_Exp, bool _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + atomic *_Atom, bool *_Exp, bool _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast<_Atomic_bool *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong( + volatile atomic *_Atom, bool *_Exp, + bool _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong( + atomic *_Atom, bool *_Exp, + bool _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast<_Atomic_bool *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + volatile atomic *_Atom, bool *_Exp, bool _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + atomic *_Atom, bool *_Exp, bool _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast<_Atomic_bool *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } +# 699 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +static_assert(1 == sizeof (char), + "_ISIZE and _ITYPE should match."); +# 70 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +typedef struct _Atomic_char + { + char operator=(char) volatile noexcept; + char operator=(char) noexcept; + + bool is_lock_free() const volatile noexcept; + bool is_lock_free() const noexcept; + void store(char, memory_order = memory_order_seq_cst) + volatile noexcept; + void store(char, memory_order = memory_order_seq_cst) + noexcept; + char load(memory_order = memory_order_seq_cst) + const volatile noexcept; + char load(memory_order = memory_order_seq_cst) + const noexcept; + operator char() const volatile noexcept; + operator char() const noexcept; + char exchange(char, + memory_order = memory_order_seq_cst) volatile noexcept; + char exchange(char, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_weak(char&, char, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_weak(char&, char, + memory_order, memory_order) noexcept; + bool compare_exchange_strong(char&, char, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_strong(char&, char, + memory_order, memory_order) noexcept; + bool compare_exchange_weak(char&, char, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_weak(char&, char, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_strong(char&, char, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_strong(char&, char, + memory_order = memory_order_seq_cst) noexcept; + + + char operator++(int) volatile noexcept; + char operator++(int) noexcept; + char operator--(int) volatile noexcept; + char operator--(int) noexcept; + char operator++() volatile noexcept; + char operator++() noexcept; + char operator--() volatile noexcept; + char operator--() noexcept; + char operator+=(char) volatile noexcept; + char operator+=(char) noexcept; + char operator-=(char) volatile noexcept; + char operator-=(char) noexcept; + char operator&=(char) volatile noexcept; + char operator&=(char) noexcept; + char operator|=(char) volatile noexcept; + char operator|=(char) noexcept; + char operator^=(char) volatile noexcept; + char operator^=(char) noexcept; + + char fetch_add(char, memory_order = memory_order_seq_cst) + volatile noexcept; + char fetch_add(char, memory_order = memory_order_seq_cst) noexcept; + char fetch_sub(char, memory_order = memory_order_seq_cst) + volatile noexcept; + char fetch_sub(char, memory_order = memory_order_seq_cst) noexcept; + char fetch_and(char, memory_order = memory_order_seq_cst) + volatile noexcept; + char fetch_and(char, memory_order = memory_order_seq_cst) noexcept; + char fetch_or(char, memory_order = memory_order_seq_cst) + volatile noexcept; + char fetch_or(char, memory_order = memory_order_seq_cst) noexcept; + char fetch_xor(char, memory_order = memory_order_seq_cst) + volatile noexcept; + char fetch_xor(char, memory_order = memory_order_seq_cst) noexcept; +# 169 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + alignas(sizeof(_Uint1_t)) _Uint1_t _My_val; + + + + + } _Atomic_char; + + + +template<> + struct atomic + : _Atomic_char + { + + atomic() noexcept = default; + + constexpr atomic(char _Val) noexcept + : _Atomic_char{(_Uint1_t)_Val} + { + } + + char operator=(char _Val) volatile noexcept + { + return (_Atomic_char::operator=(_Val)); + } + + char operator=(char _Val) noexcept + { + return (_Atomic_char::operator=(_Val)); + } + + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + }; +# 443 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline bool atomic_is_lock_free(const volatile _Atomic_char *) noexcept + { + return (_Atomic_is_lock_free_1()); + } + +inline bool atomic_is_lock_free(const _Atomic_char *) noexcept + { + return (_Atomic_is_lock_free_1()); + } + + +inline bool atomic_is_lock_free(const volatile atomic *) noexcept + { + return (_Atomic_is_lock_free_1()); + } + +inline bool atomic_is_lock_free(const atomic *) noexcept + { + return (_Atomic_is_lock_free_1()); + } + + + +inline void atomic_init(volatile _Atomic_char *_Atom, + char _Value) noexcept + { + _Atom->_My_val = (_Uint1_t)_Value; + + } + +inline void atomic_init(_Atomic_char *_Atom, + char _Value) noexcept + { + _Atom->_My_val = (_Uint1_t)_Value; + + } + + +inline void atomic_init(volatile atomic *_Atom, + char _Value) noexcept + { + _Atom->_My_val = (_Uint1_t)_Value; + + } + +inline void atomic_init(atomic *_Atom, + char _Value) noexcept + { + _Atom->_My_val = (_Uint1_t)_Value; + + } + + +inline void atomic_store_explicit( + volatile _Atomic_char *_Atom, char _Value, + memory_order _Order) noexcept + { + _Atomic_store_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order); + } + +inline void atomic_store_explicit( + _Atomic_char *_Atom, char _Value, + memory_order _Order) noexcept + { + _Atomic_store_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order); + } + +inline void atomic_store(volatile _Atomic_char *_Atom, + char _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void atomic_store(_Atomic_char *_Atom, + char _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline char atomic_load_explicit( + const volatile _Atomic_char *_Atom, memory_order _Order) noexcept + { + return ((char)_Atomic_load_1 ((_Uint1_t*)&_Atom->_My_val, _Order)); + } + +inline char atomic_load_explicit( + const _Atomic_char *_Atom, memory_order _Order) noexcept + { + return ((char)_Atomic_load_1 ((_Uint1_t*)&_Atom->_My_val, _Order)); + } + +inline char atomic_load( + const volatile _Atomic_char *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline char atomic_load( + const _Atomic_char *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline char atomic_exchange_explicit( + volatile _Atomic_char *_Atom, char _Value, + memory_order _Order) noexcept + { + return ((char)_Atomic_exchange_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline char atomic_exchange_explicit( + _Atomic_char *_Atom, char _Value, + memory_order _Order) noexcept + { + return ((char)_Atomic_exchange_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline char atomic_exchange(volatile _Atomic_char *_Atom, + char _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char atomic_exchange(_Atomic_char *_Atom, + char _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak_explicit( + volatile _Atomic_char *_Atom, char *_Exp, char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t*)_Exp, (_Uint1_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak_explicit( + _Atomic_char *_Atom, char *_Exp, char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t*)_Exp, (_Uint1_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak( + volatile _Atomic_char *_Atom, char *_Exp, + char _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak( + _Atomic_char *_Atom, char *_Exp, + char _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong_explicit( + volatile _Atomic_char *_Atom, char *_Exp, char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t*)_Exp, (_Uint1_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong_explicit( + _Atomic_char *_Atom, char *_Exp, char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t*)_Exp, (_Uint1_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong( + volatile _Atomic_char *_Atom, char *_Exp, char _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong( + _Atomic_char *_Atom, char *_Exp, char _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + + +inline char _Atomic_char::operator=(char _Value) volatile noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline char _Atomic_char::operator=(char _Value) noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_char::is_lock_free() const volatile noexcept + { + return (atomic_is_lock_free(this)); + } + +inline bool _Atomic_char::is_lock_free() const noexcept + { + return (atomic_is_lock_free(this)); + } + +inline void _Atomic_char::store(char _Value, + memory_order _Order) volatile noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void _Atomic_char::store(char _Value, + memory_order _Order) noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline char _Atomic_char::load( + memory_order _Order) const volatile noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline char _Atomic_char::load( + memory_order _Order) const noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline _Atomic_char::operator char() const volatile noexcept + { + return (atomic_load(this)); + } + +inline _Atomic_char::operator char() const noexcept + { + return (atomic_load(this)); + } + +inline char _Atomic_char::exchange( + char _Value, memory_order _Order) volatile noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline char _Atomic_char::exchange( + char _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_char::compare_exchange_weak( + char& _Exp, char _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_char::compare_exchange_weak( + char& _Exp, char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_char::compare_exchange_weak( + char& _Exp, char _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_char::compare_exchange_weak( + char& _Exp, char _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_char::compare_exchange_strong( + char& _Exp, char _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_char::compare_exchange_strong( + char& _Exp, char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_char::compare_exchange_strong( + char& _Exp, char _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_char::compare_exchange_strong( + char& _Exp, char _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + + +template<> + inline bool atomic_is_lock_free( + const volatile atomic *_Atom) noexcept + { + return (atomic_is_lock_free( + static_cast(_Atom))); + } + +template<> + inline bool atomic_is_lock_free( + const atomic *_Atom) noexcept + { + return (atomic_is_lock_free(static_cast(_Atom))); + } + +template<> + inline void atomic_init(volatile atomic *_Atom, + char _Value) noexcept + { + atomic_init(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_init(atomic *_Atom, + char _Value) noexcept + { + atomic_init(static_cast<_Atomic_char *>(_Atom), _Value); + } + +template<> + inline void atomic_store(volatile atomic *_Atom, + char _Value) noexcept + { + atomic_store(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_store(atomic *_Atom, + char _Value) noexcept + { + atomic_store(static_cast<_Atomic_char *>(_Atom), _Value); + } + +template<> + inline void atomic_store_explicit(volatile atomic *_Atom, + char _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast(_Atom), + _Value, _Order); + } + +template<> + inline void atomic_store_explicit(atomic *_Atom, + char _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast<_Atomic_char *>(_Atom), + _Value, _Order); + } + +template<> + inline char atomic_load(const volatile atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline char atomic_load(const atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline char atomic_load_explicit( + const volatile atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline char atomic_load_explicit( + const atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline char atomic_exchange( + volatile atomic *_Atom, char _Value) noexcept + { + return (atomic_exchange( + static_cast(_Atom), _Value)); + } + +template<> + inline char atomic_exchange(atomic *_Atom, + char _Value) noexcept + { + return (atomic_exchange(static_cast<_Atomic_char *>(_Atom), _Value)); + } + +template<> + inline char atomic_exchange_explicit( + volatile atomic *_Atom, + char _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char atomic_exchange_explicit(atomic *_Atom, + char _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(static_cast<_Atomic_char *>(_Atom), + _Value, _Order)); + } + +template<> + inline bool atomic_compare_exchange_weak( + volatile atomic *_Atom, char *_Exp, + char _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak( + atomic *_Atom, char *_Exp, + char _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast<_Atomic_char *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + volatile atomic *_Atom, char *_Exp, char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + atomic *_Atom, char *_Exp, char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast<_Atomic_char *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong( + volatile atomic *_Atom, char *_Exp, + char _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong( + atomic *_Atom, char *_Exp, + char _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast<_Atomic_char *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + volatile atomic *_Atom, char *_Exp, char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + atomic *_Atom, char *_Exp, char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast<_Atomic_char *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + + + + +inline char atomic_fetch_add_explicit( + volatile _Atomic_char *_Atom, char _Value, + memory_order _Order) noexcept + { + return ((char)_Atomic_fetch_add_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline char atomic_fetch_add_explicit( + _Atomic_char *_Atom, char _Value, + memory_order _Order) noexcept + { + return ((char)_Atomic_fetch_add_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline char atomic_fetch_add(volatile _Atomic_char *_Atom, + char _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char atomic_fetch_add(_Atomic_char *_Atom, + char _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char atomic_fetch_sub_explicit( + volatile _Atomic_char *_Atom, char _Value, + memory_order _Order) noexcept + { + return ((char)_Atomic_fetch_sub_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline char atomic_fetch_sub_explicit( + _Atomic_char *_Atom, char _Value, + memory_order _Order) noexcept + { + return ((char)_Atomic_fetch_sub_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline char atomic_fetch_sub(volatile _Atomic_char *_Atom, + char _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char atomic_fetch_sub(_Atomic_char *_Atom, + char _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char atomic_fetch_and_explicit( + volatile _Atomic_char *_Atom, char _Value, + memory_order _Order) noexcept + { + return ((char)_Atomic_fetch_and_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline char atomic_fetch_and_explicit( + _Atomic_char *_Atom, char _Value, + memory_order _Order) noexcept + { + return ((char)_Atomic_fetch_and_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline char atomic_fetch_and(volatile _Atomic_char *_Atom, + char _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char atomic_fetch_and(_Atomic_char *_Atom, + char _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char atomic_fetch_or_explicit( + volatile _Atomic_char *_Atom, char _Value, + memory_order _Order) noexcept + { + return ((char)_Atomic_fetch_or_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline char atomic_fetch_or_explicit( + _Atomic_char *_Atom, char _Value, + memory_order _Order) noexcept + { + return ((char)_Atomic_fetch_or_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline char atomic_fetch_or( + volatile _Atomic_char *_Atom, char _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char atomic_fetch_or( + _Atomic_char *_Atom, char _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char atomic_fetch_xor_explicit( + volatile _Atomic_char *_Atom, char _Value, + memory_order _Order) noexcept + { + return ((char)_Atomic_fetch_xor_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline char atomic_fetch_xor_explicit( + _Atomic_char *_Atom, char _Value, + memory_order _Order) noexcept + { + return ((char)_Atomic_fetch_xor_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline char atomic_fetch_xor( + volatile _Atomic_char *_Atom, char _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char atomic_fetch_xor( + _Atomic_char *_Atom, char _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + + +inline char _Atomic_char::operator++(int) volatile noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline char _Atomic_char::operator++(int) noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline char _Atomic_char::operator--(int) volatile noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline char _Atomic_char::operator--(int) noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline char _Atomic_char::operator++() volatile noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline char _Atomic_char::operator++() noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline char _Atomic_char::operator--() volatile noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline char _Atomic_char::operator--() noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline char _Atomic_char::operator+=(char _Right) volatile noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline char _Atomic_char::operator+=(char _Right) noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline char _Atomic_char::operator-=(char _Right) volatile noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline char _Atomic_char::operator-=(char _Right) noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline char _Atomic_char::operator&=(char _Right) volatile noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline char _Atomic_char::operator&=(char _Right) noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline char _Atomic_char::operator|=(char _Right) volatile noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline char _Atomic_char::operator|=(char _Right) noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline char _Atomic_char::operator^=(char _Right) volatile noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline char _Atomic_char::operator^=(char _Right) noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline char _Atomic_char::fetch_add( + char _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline char _Atomic_char::fetch_add( + char _Value, memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline char _Atomic_char::fetch_sub( + char _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline char _Atomic_char::fetch_sub( + char _Value, memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline char _Atomic_char::fetch_and( + char _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline char _Atomic_char::fetch_and( + char _Value, memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline char _Atomic_char::fetch_or( + char _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline char _Atomic_char::fetch_or( + char _Value, memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline char _Atomic_char::fetch_xor( + char _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + +inline char _Atomic_char::fetch_xor( + char _Value, memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + + + +template<> + inline char atomic_fetch_add( + volatile atomic *_Atom, + char _Value) noexcept + { + return (atomic_fetch_add( + static_cast(_Atom), _Value)); + } + +template<> + inline char atomic_fetch_add(atomic *_Atom, + char _Value) noexcept + { + return (atomic_fetch_add(static_cast<_Atomic_char *>(_Atom), _Value)); + } + +template<> + inline char atomic_fetch_add_explicit( + volatile atomic *_Atom, char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char atomic_fetch_add_explicit( + atomic *_Atom, char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast<_Atomic_char *>(_Atom), _Value, _Order)); + } + +template<> + inline char atomic_fetch_sub( + volatile atomic *_Atom, + char _Value) noexcept + { + return (atomic_fetch_sub( + static_cast(_Atom), _Value)); + } + +template<> + inline char atomic_fetch_sub(atomic *_Atom, + char _Value) noexcept + { + return (atomic_fetch_sub(static_cast<_Atomic_char *>(_Atom), _Value)); + } + +template<> + inline char atomic_fetch_sub_explicit( + volatile atomic *_Atom, char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char atomic_fetch_sub_explicit( + atomic *_Atom, char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast<_Atomic_char *>(_Atom), _Value, _Order)); + } + +template<> + inline char atomic_fetch_and( + volatile atomic *_Atom, char _Value) noexcept + { + return (atomic_fetch_and( + static_cast(_Atom), _Value)); + } + +template<> + inline char atomic_fetch_and( + atomic *_Atom, char _Value) noexcept + { + return (atomic_fetch_and(static_cast<_Atomic_char *>(_Atom), _Value)); + } + +template<> + inline char atomic_fetch_and_explicit( + volatile atomic *_Atom, char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char atomic_fetch_and_explicit( + atomic *_Atom, char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast<_Atomic_char *>(_Atom), _Value, _Order)); + } + +template<> + inline char atomic_fetch_or(volatile atomic *_Atom, + char _Value) noexcept + { + return (atomic_fetch_or( + static_cast(_Atom), _Value)); + } + +template<> + inline char atomic_fetch_or(atomic *_Atom, + char _Value) noexcept + { + return (atomic_fetch_or(static_cast<_Atomic_char *>(_Atom), _Value)); + } + +template<> + inline char atomic_fetch_or_explicit( + volatile atomic *_Atom, char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char atomic_fetch_or_explicit( + atomic *_Atom, char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast<_Atomic_char *>(_Atom), _Value, _Order)); + } + +template<> + inline char atomic_fetch_xor(volatile atomic *_Atom, + char _Value) noexcept + { + return (atomic_fetch_xor( + static_cast(_Atom), _Value)); + } + +template<> + inline char atomic_fetch_xor(atomic *_Atom, + char _Value) noexcept + { + return (atomic_fetch_xor(static_cast<_Atomic_char *>(_Atom), _Value)); + } + +template<> + inline char atomic_fetch_xor_explicit( + volatile atomic *_Atom, char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char atomic_fetch_xor_explicit( + atomic *_Atom, char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast<_Atomic_char *>(_Atom), _Value, _Order)); + } +# 705 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +static_assert(1 == sizeof (signed char), + "_ISIZE and _ITYPE should match."); +# 70 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +typedef struct _Atomic_schar + { + signed char operator=(signed char) volatile noexcept; + signed char operator=(signed char) noexcept; + + bool is_lock_free() const volatile noexcept; + bool is_lock_free() const noexcept; + void store(signed char, memory_order = memory_order_seq_cst) + volatile noexcept; + void store(signed char, memory_order = memory_order_seq_cst) + noexcept; + signed char load(memory_order = memory_order_seq_cst) + const volatile noexcept; + signed char load(memory_order = memory_order_seq_cst) + const noexcept; + operator signed char() const volatile noexcept; + operator signed char() const noexcept; + signed char exchange(signed char, + memory_order = memory_order_seq_cst) volatile noexcept; + signed char exchange(signed char, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_weak(signed char&, signed char, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_weak(signed char&, signed char, + memory_order, memory_order) noexcept; + bool compare_exchange_strong(signed char&, signed char, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_strong(signed char&, signed char, + memory_order, memory_order) noexcept; + bool compare_exchange_weak(signed char&, signed char, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_weak(signed char&, signed char, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_strong(signed char&, signed char, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_strong(signed char&, signed char, + memory_order = memory_order_seq_cst) noexcept; + + + signed char operator++(int) volatile noexcept; + signed char operator++(int) noexcept; + signed char operator--(int) volatile noexcept; + signed char operator--(int) noexcept; + signed char operator++() volatile noexcept; + signed char operator++() noexcept; + signed char operator--() volatile noexcept; + signed char operator--() noexcept; + signed char operator+=(signed char) volatile noexcept; + signed char operator+=(signed char) noexcept; + signed char operator-=(signed char) volatile noexcept; + signed char operator-=(signed char) noexcept; + signed char operator&=(signed char) volatile noexcept; + signed char operator&=(signed char) noexcept; + signed char operator|=(signed char) volatile noexcept; + signed char operator|=(signed char) noexcept; + signed char operator^=(signed char) volatile noexcept; + signed char operator^=(signed char) noexcept; + + signed char fetch_add(signed char, memory_order = memory_order_seq_cst) + volatile noexcept; + signed char fetch_add(signed char, memory_order = memory_order_seq_cst) noexcept; + signed char fetch_sub(signed char, memory_order = memory_order_seq_cst) + volatile noexcept; + signed char fetch_sub(signed char, memory_order = memory_order_seq_cst) noexcept; + signed char fetch_and(signed char, memory_order = memory_order_seq_cst) + volatile noexcept; + signed char fetch_and(signed char, memory_order = memory_order_seq_cst) noexcept; + signed char fetch_or(signed char, memory_order = memory_order_seq_cst) + volatile noexcept; + signed char fetch_or(signed char, memory_order = memory_order_seq_cst) noexcept; + signed char fetch_xor(signed char, memory_order = memory_order_seq_cst) + volatile noexcept; + signed char fetch_xor(signed char, memory_order = memory_order_seq_cst) noexcept; +# 169 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + alignas(sizeof(_Uint1_t)) _Uint1_t _My_val; + + + + + } _Atomic_schar; + + + +template<> + struct atomic + : _Atomic_schar + { + + atomic() noexcept = default; + + constexpr atomic(signed char _Val) noexcept + : _Atomic_schar{(_Uint1_t)_Val} + { + } + + signed char operator=(signed char _Val) volatile noexcept + { + return (_Atomic_schar::operator=(_Val)); + } + + signed char operator=(signed char _Val) noexcept + { + return (_Atomic_schar::operator=(_Val)); + } + + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + }; +# 443 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline bool atomic_is_lock_free(const volatile _Atomic_schar *) noexcept + { + return (_Atomic_is_lock_free_1()); + } + +inline bool atomic_is_lock_free(const _Atomic_schar *) noexcept + { + return (_Atomic_is_lock_free_1()); + } + + +inline bool atomic_is_lock_free(const volatile atomic *) noexcept + { + return (_Atomic_is_lock_free_1()); + } + +inline bool atomic_is_lock_free(const atomic *) noexcept + { + return (_Atomic_is_lock_free_1()); + } + + + +inline void atomic_init(volatile _Atomic_schar *_Atom, + signed char _Value) noexcept + { + _Atom->_My_val = (_Uint1_t)_Value; + + } + +inline void atomic_init(_Atomic_schar *_Atom, + signed char _Value) noexcept + { + _Atom->_My_val = (_Uint1_t)_Value; + + } + + +inline void atomic_init(volatile atomic *_Atom, + signed char _Value) noexcept + { + _Atom->_My_val = (_Uint1_t)_Value; + + } + +inline void atomic_init(atomic *_Atom, + signed char _Value) noexcept + { + _Atom->_My_val = (_Uint1_t)_Value; + + } + + +inline void atomic_store_explicit( + volatile _Atomic_schar *_Atom, signed char _Value, + memory_order _Order) noexcept + { + _Atomic_store_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order); + } + +inline void atomic_store_explicit( + _Atomic_schar *_Atom, signed char _Value, + memory_order _Order) noexcept + { + _Atomic_store_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order); + } + +inline void atomic_store(volatile _Atomic_schar *_Atom, + signed char _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void atomic_store(_Atomic_schar *_Atom, + signed char _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline signed char atomic_load_explicit( + const volatile _Atomic_schar *_Atom, memory_order _Order) noexcept + { + return ((signed char)_Atomic_load_1 ((_Uint1_t*)&_Atom->_My_val, _Order)); + } + +inline signed char atomic_load_explicit( + const _Atomic_schar *_Atom, memory_order _Order) noexcept + { + return ((signed char)_Atomic_load_1 ((_Uint1_t*)&_Atom->_My_val, _Order)); + } + +inline signed char atomic_load( + const volatile _Atomic_schar *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline signed char atomic_load( + const _Atomic_schar *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline signed char atomic_exchange_explicit( + volatile _Atomic_schar *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return ((signed char)_Atomic_exchange_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline signed char atomic_exchange_explicit( + _Atomic_schar *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return ((signed char)_Atomic_exchange_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline signed char atomic_exchange(volatile _Atomic_schar *_Atom, + signed char _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline signed char atomic_exchange(_Atomic_schar *_Atom, + signed char _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak_explicit( + volatile _Atomic_schar *_Atom, signed char *_Exp, signed char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t*)_Exp, (_Uint1_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak_explicit( + _Atomic_schar *_Atom, signed char *_Exp, signed char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t*)_Exp, (_Uint1_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak( + volatile _Atomic_schar *_Atom, signed char *_Exp, + signed char _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak( + _Atomic_schar *_Atom, signed char *_Exp, + signed char _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong_explicit( + volatile _Atomic_schar *_Atom, signed char *_Exp, signed char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t*)_Exp, (_Uint1_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong_explicit( + _Atomic_schar *_Atom, signed char *_Exp, signed char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t*)_Exp, (_Uint1_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong( + volatile _Atomic_schar *_Atom, signed char *_Exp, signed char _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong( + _Atomic_schar *_Atom, signed char *_Exp, signed char _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + + +inline signed char _Atomic_schar::operator=(signed char _Value) volatile noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline signed char _Atomic_schar::operator=(signed char _Value) noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_schar::is_lock_free() const volatile noexcept + { + return (atomic_is_lock_free(this)); + } + +inline bool _Atomic_schar::is_lock_free() const noexcept + { + return (atomic_is_lock_free(this)); + } + +inline void _Atomic_schar::store(signed char _Value, + memory_order _Order) volatile noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void _Atomic_schar::store(signed char _Value, + memory_order _Order) noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline signed char _Atomic_schar::load( + memory_order _Order) const volatile noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline signed char _Atomic_schar::load( + memory_order _Order) const noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline _Atomic_schar::operator signed char() const volatile noexcept + { + return (atomic_load(this)); + } + +inline _Atomic_schar::operator signed char() const noexcept + { + return (atomic_load(this)); + } + +inline signed char _Atomic_schar::exchange( + signed char _Value, memory_order _Order) volatile noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline signed char _Atomic_schar::exchange( + signed char _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_schar::compare_exchange_weak( + signed char& _Exp, signed char _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_schar::compare_exchange_weak( + signed char& _Exp, signed char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_schar::compare_exchange_weak( + signed char& _Exp, signed char _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_schar::compare_exchange_weak( + signed char& _Exp, signed char _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_schar::compare_exchange_strong( + signed char& _Exp, signed char _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_schar::compare_exchange_strong( + signed char& _Exp, signed char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_schar::compare_exchange_strong( + signed char& _Exp, signed char _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_schar::compare_exchange_strong( + signed char& _Exp, signed char _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + + +template<> + inline bool atomic_is_lock_free( + const volatile atomic *_Atom) noexcept + { + return (atomic_is_lock_free( + static_cast(_Atom))); + } + +template<> + inline bool atomic_is_lock_free( + const atomic *_Atom) noexcept + { + return (atomic_is_lock_free(static_cast(_Atom))); + } + +template<> + inline void atomic_init(volatile atomic *_Atom, + signed char _Value) noexcept + { + atomic_init(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_init(atomic *_Atom, + signed char _Value) noexcept + { + atomic_init(static_cast<_Atomic_schar *>(_Atom), _Value); + } + +template<> + inline void atomic_store(volatile atomic *_Atom, + signed char _Value) noexcept + { + atomic_store(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_store(atomic *_Atom, + signed char _Value) noexcept + { + atomic_store(static_cast<_Atomic_schar *>(_Atom), _Value); + } + +template<> + inline void atomic_store_explicit(volatile atomic *_Atom, + signed char _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast(_Atom), + _Value, _Order); + } + +template<> + inline void atomic_store_explicit(atomic *_Atom, + signed char _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast<_Atomic_schar *>(_Atom), + _Value, _Order); + } + +template<> + inline signed char atomic_load(const volatile atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline signed char atomic_load(const atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline signed char atomic_load_explicit( + const volatile atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline signed char atomic_load_explicit( + const atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline signed char atomic_exchange( + volatile atomic *_Atom, signed char _Value) noexcept + { + return (atomic_exchange( + static_cast(_Atom), _Value)); + } + +template<> + inline signed char atomic_exchange(atomic *_Atom, + signed char _Value) noexcept + { + return (atomic_exchange(static_cast<_Atomic_schar *>(_Atom), _Value)); + } + +template<> + inline signed char atomic_exchange_explicit( + volatile atomic *_Atom, + signed char _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline signed char atomic_exchange_explicit(atomic *_Atom, + signed char _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(static_cast<_Atomic_schar *>(_Atom), + _Value, _Order)); + } + +template<> + inline bool atomic_compare_exchange_weak( + volatile atomic *_Atom, signed char *_Exp, + signed char _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak( + atomic *_Atom, signed char *_Exp, + signed char _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast<_Atomic_schar *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + volatile atomic *_Atom, signed char *_Exp, signed char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + atomic *_Atom, signed char *_Exp, signed char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast<_Atomic_schar *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong( + volatile atomic *_Atom, signed char *_Exp, + signed char _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong( + atomic *_Atom, signed char *_Exp, + signed char _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast<_Atomic_schar *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + volatile atomic *_Atom, signed char *_Exp, signed char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + atomic *_Atom, signed char *_Exp, signed char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast<_Atomic_schar *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + + + + +inline signed char atomic_fetch_add_explicit( + volatile _Atomic_schar *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return ((signed char)_Atomic_fetch_add_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline signed char atomic_fetch_add_explicit( + _Atomic_schar *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return ((signed char)_Atomic_fetch_add_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline signed char atomic_fetch_add(volatile _Atomic_schar *_Atom, + signed char _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline signed char atomic_fetch_add(_Atomic_schar *_Atom, + signed char _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline signed char atomic_fetch_sub_explicit( + volatile _Atomic_schar *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return ((signed char)_Atomic_fetch_sub_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline signed char atomic_fetch_sub_explicit( + _Atomic_schar *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return ((signed char)_Atomic_fetch_sub_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline signed char atomic_fetch_sub(volatile _Atomic_schar *_Atom, + signed char _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline signed char atomic_fetch_sub(_Atomic_schar *_Atom, + signed char _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline signed char atomic_fetch_and_explicit( + volatile _Atomic_schar *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return ((signed char)_Atomic_fetch_and_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline signed char atomic_fetch_and_explicit( + _Atomic_schar *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return ((signed char)_Atomic_fetch_and_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline signed char atomic_fetch_and(volatile _Atomic_schar *_Atom, + signed char _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline signed char atomic_fetch_and(_Atomic_schar *_Atom, + signed char _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline signed char atomic_fetch_or_explicit( + volatile _Atomic_schar *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return ((signed char)_Atomic_fetch_or_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline signed char atomic_fetch_or_explicit( + _Atomic_schar *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return ((signed char)_Atomic_fetch_or_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline signed char atomic_fetch_or( + volatile _Atomic_schar *_Atom, signed char _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline signed char atomic_fetch_or( + _Atomic_schar *_Atom, signed char _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline signed char atomic_fetch_xor_explicit( + volatile _Atomic_schar *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return ((signed char)_Atomic_fetch_xor_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline signed char atomic_fetch_xor_explicit( + _Atomic_schar *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return ((signed char)_Atomic_fetch_xor_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline signed char atomic_fetch_xor( + volatile _Atomic_schar *_Atom, signed char _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline signed char atomic_fetch_xor( + _Atomic_schar *_Atom, signed char _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + + +inline signed char _Atomic_schar::operator++(int) volatile noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline signed char _Atomic_schar::operator++(int) noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline signed char _Atomic_schar::operator--(int) volatile noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline signed char _Atomic_schar::operator--(int) noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline signed char _Atomic_schar::operator++() volatile noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline signed char _Atomic_schar::operator++() noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline signed char _Atomic_schar::operator--() volatile noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline signed char _Atomic_schar::operator--() noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline signed char _Atomic_schar::operator+=(signed char _Right) volatile noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline signed char _Atomic_schar::operator+=(signed char _Right) noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline signed char _Atomic_schar::operator-=(signed char _Right) volatile noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline signed char _Atomic_schar::operator-=(signed char _Right) noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline signed char _Atomic_schar::operator&=(signed char _Right) volatile noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline signed char _Atomic_schar::operator&=(signed char _Right) noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline signed char _Atomic_schar::operator|=(signed char _Right) volatile noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline signed char _Atomic_schar::operator|=(signed char _Right) noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline signed char _Atomic_schar::operator^=(signed char _Right) volatile noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline signed char _Atomic_schar::operator^=(signed char _Right) noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline signed char _Atomic_schar::fetch_add( + signed char _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline signed char _Atomic_schar::fetch_add( + signed char _Value, memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline signed char _Atomic_schar::fetch_sub( + signed char _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline signed char _Atomic_schar::fetch_sub( + signed char _Value, memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline signed char _Atomic_schar::fetch_and( + signed char _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline signed char _Atomic_schar::fetch_and( + signed char _Value, memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline signed char _Atomic_schar::fetch_or( + signed char _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline signed char _Atomic_schar::fetch_or( + signed char _Value, memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline signed char _Atomic_schar::fetch_xor( + signed char _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + +inline signed char _Atomic_schar::fetch_xor( + signed char _Value, memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + + + +template<> + inline signed char atomic_fetch_add( + volatile atomic *_Atom, + signed char _Value) noexcept + { + return (atomic_fetch_add( + static_cast(_Atom), _Value)); + } + +template<> + inline signed char atomic_fetch_add(atomic *_Atom, + signed char _Value) noexcept + { + return (atomic_fetch_add(static_cast<_Atomic_schar *>(_Atom), _Value)); + } + +template<> + inline signed char atomic_fetch_add_explicit( + volatile atomic *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline signed char atomic_fetch_add_explicit( + atomic *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast<_Atomic_schar *>(_Atom), _Value, _Order)); + } + +template<> + inline signed char atomic_fetch_sub( + volatile atomic *_Atom, + signed char _Value) noexcept + { + return (atomic_fetch_sub( + static_cast(_Atom), _Value)); + } + +template<> + inline signed char atomic_fetch_sub(atomic *_Atom, + signed char _Value) noexcept + { + return (atomic_fetch_sub(static_cast<_Atomic_schar *>(_Atom), _Value)); + } + +template<> + inline signed char atomic_fetch_sub_explicit( + volatile atomic *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline signed char atomic_fetch_sub_explicit( + atomic *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast<_Atomic_schar *>(_Atom), _Value, _Order)); + } + +template<> + inline signed char atomic_fetch_and( + volatile atomic *_Atom, signed char _Value) noexcept + { + return (atomic_fetch_and( + static_cast(_Atom), _Value)); + } + +template<> + inline signed char atomic_fetch_and( + atomic *_Atom, signed char _Value) noexcept + { + return (atomic_fetch_and(static_cast<_Atomic_schar *>(_Atom), _Value)); + } + +template<> + inline signed char atomic_fetch_and_explicit( + volatile atomic *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline signed char atomic_fetch_and_explicit( + atomic *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast<_Atomic_schar *>(_Atom), _Value, _Order)); + } + +template<> + inline signed char atomic_fetch_or(volatile atomic *_Atom, + signed char _Value) noexcept + { + return (atomic_fetch_or( + static_cast(_Atom), _Value)); + } + +template<> + inline signed char atomic_fetch_or(atomic *_Atom, + signed char _Value) noexcept + { + return (atomic_fetch_or(static_cast<_Atomic_schar *>(_Atom), _Value)); + } + +template<> + inline signed char atomic_fetch_or_explicit( + volatile atomic *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline signed char atomic_fetch_or_explicit( + atomic *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast<_Atomic_schar *>(_Atom), _Value, _Order)); + } + +template<> + inline signed char atomic_fetch_xor(volatile atomic *_Atom, + signed char _Value) noexcept + { + return (atomic_fetch_xor( + static_cast(_Atom), _Value)); + } + +template<> + inline signed char atomic_fetch_xor(atomic *_Atom, + signed char _Value) noexcept + { + return (atomic_fetch_xor(static_cast<_Atomic_schar *>(_Atom), _Value)); + } + +template<> + inline signed char atomic_fetch_xor_explicit( + volatile atomic *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline signed char atomic_fetch_xor_explicit( + atomic *_Atom, signed char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast<_Atomic_schar *>(_Atom), _Value, _Order)); + } +# 711 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +static_assert(1 == sizeof (unsigned char), + "_ISIZE and _ITYPE should match."); +# 70 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +typedef struct _Atomic_uchar + { + unsigned char operator=(unsigned char) volatile noexcept; + unsigned char operator=(unsigned char) noexcept; + + bool is_lock_free() const volatile noexcept; + bool is_lock_free() const noexcept; + void store(unsigned char, memory_order = memory_order_seq_cst) + volatile noexcept; + void store(unsigned char, memory_order = memory_order_seq_cst) + noexcept; + unsigned char load(memory_order = memory_order_seq_cst) + const volatile noexcept; + unsigned char load(memory_order = memory_order_seq_cst) + const noexcept; + operator unsigned char() const volatile noexcept; + operator unsigned char() const noexcept; + unsigned char exchange(unsigned char, + memory_order = memory_order_seq_cst) volatile noexcept; + unsigned char exchange(unsigned char, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_weak(unsigned char&, unsigned char, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_weak(unsigned char&, unsigned char, + memory_order, memory_order) noexcept; + bool compare_exchange_strong(unsigned char&, unsigned char, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_strong(unsigned char&, unsigned char, + memory_order, memory_order) noexcept; + bool compare_exchange_weak(unsigned char&, unsigned char, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_weak(unsigned char&, unsigned char, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_strong(unsigned char&, unsigned char, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_strong(unsigned char&, unsigned char, + memory_order = memory_order_seq_cst) noexcept; + + + unsigned char operator++(int) volatile noexcept; + unsigned char operator++(int) noexcept; + unsigned char operator--(int) volatile noexcept; + unsigned char operator--(int) noexcept; + unsigned char operator++() volatile noexcept; + unsigned char operator++() noexcept; + unsigned char operator--() volatile noexcept; + unsigned char operator--() noexcept; + unsigned char operator+=(unsigned char) volatile noexcept; + unsigned char operator+=(unsigned char) noexcept; + unsigned char operator-=(unsigned char) volatile noexcept; + unsigned char operator-=(unsigned char) noexcept; + unsigned char operator&=(unsigned char) volatile noexcept; + unsigned char operator&=(unsigned char) noexcept; + unsigned char operator|=(unsigned char) volatile noexcept; + unsigned char operator|=(unsigned char) noexcept; + unsigned char operator^=(unsigned char) volatile noexcept; + unsigned char operator^=(unsigned char) noexcept; + + unsigned char fetch_add(unsigned char, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned char fetch_add(unsigned char, memory_order = memory_order_seq_cst) noexcept; + unsigned char fetch_sub(unsigned char, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned char fetch_sub(unsigned char, memory_order = memory_order_seq_cst) noexcept; + unsigned char fetch_and(unsigned char, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned char fetch_and(unsigned char, memory_order = memory_order_seq_cst) noexcept; + unsigned char fetch_or(unsigned char, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned char fetch_or(unsigned char, memory_order = memory_order_seq_cst) noexcept; + unsigned char fetch_xor(unsigned char, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned char fetch_xor(unsigned char, memory_order = memory_order_seq_cst) noexcept; +# 169 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + alignas(sizeof(_Uint1_t)) _Uint1_t _My_val; + + + + + } _Atomic_uchar; + + + +template<> + struct atomic + : _Atomic_uchar + { + + atomic() noexcept = default; + + constexpr atomic(unsigned char _Val) noexcept + : _Atomic_uchar{(_Uint1_t)_Val} + { + } + + unsigned char operator=(unsigned char _Val) volatile noexcept + { + return (_Atomic_uchar::operator=(_Val)); + } + + unsigned char operator=(unsigned char _Val) noexcept + { + return (_Atomic_uchar::operator=(_Val)); + } + + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + }; +# 443 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline bool atomic_is_lock_free(const volatile _Atomic_uchar *) noexcept + { + return (_Atomic_is_lock_free_1()); + } + +inline bool atomic_is_lock_free(const _Atomic_uchar *) noexcept + { + return (_Atomic_is_lock_free_1()); + } + + +inline bool atomic_is_lock_free(const volatile atomic *) noexcept + { + return (_Atomic_is_lock_free_1()); + } + +inline bool atomic_is_lock_free(const atomic *) noexcept + { + return (_Atomic_is_lock_free_1()); + } + + + +inline void atomic_init(volatile _Atomic_uchar *_Atom, + unsigned char _Value) noexcept + { + _Atom->_My_val = (_Uint1_t)_Value; + + } + +inline void atomic_init(_Atomic_uchar *_Atom, + unsigned char _Value) noexcept + { + _Atom->_My_val = (_Uint1_t)_Value; + + } + + +inline void atomic_init(volatile atomic *_Atom, + unsigned char _Value) noexcept + { + _Atom->_My_val = (_Uint1_t)_Value; + + } + +inline void atomic_init(atomic *_Atom, + unsigned char _Value) noexcept + { + _Atom->_My_val = (_Uint1_t)_Value; + + } + + +inline void atomic_store_explicit( + volatile _Atomic_uchar *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + _Atomic_store_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order); + } + +inline void atomic_store_explicit( + _Atomic_uchar *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + _Atomic_store_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order); + } + +inline void atomic_store(volatile _Atomic_uchar *_Atom, + unsigned char _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void atomic_store(_Atomic_uchar *_Atom, + unsigned char _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline unsigned char atomic_load_explicit( + const volatile _Atomic_uchar *_Atom, memory_order _Order) noexcept + { + return ((unsigned char)_Atomic_load_1 ((_Uint1_t*)&_Atom->_My_val, _Order)); + } + +inline unsigned char atomic_load_explicit( + const _Atomic_uchar *_Atom, memory_order _Order) noexcept + { + return ((unsigned char)_Atomic_load_1 ((_Uint1_t*)&_Atom->_My_val, _Order)); + } + +inline unsigned char atomic_load( + const volatile _Atomic_uchar *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline unsigned char atomic_load( + const _Atomic_uchar *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline unsigned char atomic_exchange_explicit( + volatile _Atomic_uchar *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return ((unsigned char)_Atomic_exchange_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline unsigned char atomic_exchange_explicit( + _Atomic_uchar *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return ((unsigned char)_Atomic_exchange_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline unsigned char atomic_exchange(volatile _Atomic_uchar *_Atom, + unsigned char _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned char atomic_exchange(_Atomic_uchar *_Atom, + unsigned char _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak_explicit( + volatile _Atomic_uchar *_Atom, unsigned char *_Exp, unsigned char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t*)_Exp, (_Uint1_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak_explicit( + _Atomic_uchar *_Atom, unsigned char *_Exp, unsigned char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t*)_Exp, (_Uint1_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak( + volatile _Atomic_uchar *_Atom, unsigned char *_Exp, + unsigned char _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak( + _Atomic_uchar *_Atom, unsigned char *_Exp, + unsigned char _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong_explicit( + volatile _Atomic_uchar *_Atom, unsigned char *_Exp, unsigned char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t*)_Exp, (_Uint1_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong_explicit( + _Atomic_uchar *_Atom, unsigned char *_Exp, unsigned char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t*)_Exp, (_Uint1_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong( + volatile _Atomic_uchar *_Atom, unsigned char *_Exp, unsigned char _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong( + _Atomic_uchar *_Atom, unsigned char *_Exp, unsigned char _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + + +inline unsigned char _Atomic_uchar::operator=(unsigned char _Value) volatile noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline unsigned char _Atomic_uchar::operator=(unsigned char _Value) noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_uchar::is_lock_free() const volatile noexcept + { + return (atomic_is_lock_free(this)); + } + +inline bool _Atomic_uchar::is_lock_free() const noexcept + { + return (atomic_is_lock_free(this)); + } + +inline void _Atomic_uchar::store(unsigned char _Value, + memory_order _Order) volatile noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void _Atomic_uchar::store(unsigned char _Value, + memory_order _Order) noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline unsigned char _Atomic_uchar::load( + memory_order _Order) const volatile noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline unsigned char _Atomic_uchar::load( + memory_order _Order) const noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline _Atomic_uchar::operator unsigned char() const volatile noexcept + { + return (atomic_load(this)); + } + +inline _Atomic_uchar::operator unsigned char() const noexcept + { + return (atomic_load(this)); + } + +inline unsigned char _Atomic_uchar::exchange( + unsigned char _Value, memory_order _Order) volatile noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline unsigned char _Atomic_uchar::exchange( + unsigned char _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_uchar::compare_exchange_weak( + unsigned char& _Exp, unsigned char _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_uchar::compare_exchange_weak( + unsigned char& _Exp, unsigned char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_uchar::compare_exchange_weak( + unsigned char& _Exp, unsigned char _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_uchar::compare_exchange_weak( + unsigned char& _Exp, unsigned char _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_uchar::compare_exchange_strong( + unsigned char& _Exp, unsigned char _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_uchar::compare_exchange_strong( + unsigned char& _Exp, unsigned char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_uchar::compare_exchange_strong( + unsigned char& _Exp, unsigned char _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_uchar::compare_exchange_strong( + unsigned char& _Exp, unsigned char _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + + +template<> + inline bool atomic_is_lock_free( + const volatile atomic *_Atom) noexcept + { + return (atomic_is_lock_free( + static_cast(_Atom))); + } + +template<> + inline bool atomic_is_lock_free( + const atomic *_Atom) noexcept + { + return (atomic_is_lock_free(static_cast(_Atom))); + } + +template<> + inline void atomic_init(volatile atomic *_Atom, + unsigned char _Value) noexcept + { + atomic_init(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_init(atomic *_Atom, + unsigned char _Value) noexcept + { + atomic_init(static_cast<_Atomic_uchar *>(_Atom), _Value); + } + +template<> + inline void atomic_store(volatile atomic *_Atom, + unsigned char _Value) noexcept + { + atomic_store(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_store(atomic *_Atom, + unsigned char _Value) noexcept + { + atomic_store(static_cast<_Atomic_uchar *>(_Atom), _Value); + } + +template<> + inline void atomic_store_explicit(volatile atomic *_Atom, + unsigned char _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast(_Atom), + _Value, _Order); + } + +template<> + inline void atomic_store_explicit(atomic *_Atom, + unsigned char _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast<_Atomic_uchar *>(_Atom), + _Value, _Order); + } + +template<> + inline unsigned char atomic_load(const volatile atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline unsigned char atomic_load(const atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline unsigned char atomic_load_explicit( + const volatile atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline unsigned char atomic_load_explicit( + const atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline unsigned char atomic_exchange( + volatile atomic *_Atom, unsigned char _Value) noexcept + { + return (atomic_exchange( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned char atomic_exchange(atomic *_Atom, + unsigned char _Value) noexcept + { + return (atomic_exchange(static_cast<_Atomic_uchar *>(_Atom), _Value)); + } + +template<> + inline unsigned char atomic_exchange_explicit( + volatile atomic *_Atom, + unsigned char _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned char atomic_exchange_explicit(atomic *_Atom, + unsigned char _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(static_cast<_Atomic_uchar *>(_Atom), + _Value, _Order)); + } + +template<> + inline bool atomic_compare_exchange_weak( + volatile atomic *_Atom, unsigned char *_Exp, + unsigned char _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak( + atomic *_Atom, unsigned char *_Exp, + unsigned char _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast<_Atomic_uchar *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + volatile atomic *_Atom, unsigned char *_Exp, unsigned char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + atomic *_Atom, unsigned char *_Exp, unsigned char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast<_Atomic_uchar *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong( + volatile atomic *_Atom, unsigned char *_Exp, + unsigned char _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong( + atomic *_Atom, unsigned char *_Exp, + unsigned char _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast<_Atomic_uchar *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + volatile atomic *_Atom, unsigned char *_Exp, unsigned char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + atomic *_Atom, unsigned char *_Exp, unsigned char _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast<_Atomic_uchar *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + + + + +inline unsigned char atomic_fetch_add_explicit( + volatile _Atomic_uchar *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return ((unsigned char)_Atomic_fetch_add_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline unsigned char atomic_fetch_add_explicit( + _Atomic_uchar *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return ((unsigned char)_Atomic_fetch_add_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline unsigned char atomic_fetch_add(volatile _Atomic_uchar *_Atom, + unsigned char _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned char atomic_fetch_add(_Atomic_uchar *_Atom, + unsigned char _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned char atomic_fetch_sub_explicit( + volatile _Atomic_uchar *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return ((unsigned char)_Atomic_fetch_sub_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline unsigned char atomic_fetch_sub_explicit( + _Atomic_uchar *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return ((unsigned char)_Atomic_fetch_sub_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline unsigned char atomic_fetch_sub(volatile _Atomic_uchar *_Atom, + unsigned char _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned char atomic_fetch_sub(_Atomic_uchar *_Atom, + unsigned char _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned char atomic_fetch_and_explicit( + volatile _Atomic_uchar *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return ((unsigned char)_Atomic_fetch_and_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline unsigned char atomic_fetch_and_explicit( + _Atomic_uchar *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return ((unsigned char)_Atomic_fetch_and_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline unsigned char atomic_fetch_and(volatile _Atomic_uchar *_Atom, + unsigned char _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned char atomic_fetch_and(_Atomic_uchar *_Atom, + unsigned char _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned char atomic_fetch_or_explicit( + volatile _Atomic_uchar *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return ((unsigned char)_Atomic_fetch_or_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline unsigned char atomic_fetch_or_explicit( + _Atomic_uchar *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return ((unsigned char)_Atomic_fetch_or_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline unsigned char atomic_fetch_or( + volatile _Atomic_uchar *_Atom, unsigned char _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned char atomic_fetch_or( + _Atomic_uchar *_Atom, unsigned char _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned char atomic_fetch_xor_explicit( + volatile _Atomic_uchar *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return ((unsigned char)_Atomic_fetch_xor_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline unsigned char atomic_fetch_xor_explicit( + _Atomic_uchar *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return ((unsigned char)_Atomic_fetch_xor_1 ((_Uint1_t*)&_Atom->_My_val, (_Uint1_t)_Value, _Order)); + } + +inline unsigned char atomic_fetch_xor( + volatile _Atomic_uchar *_Atom, unsigned char _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned char atomic_fetch_xor( + _Atomic_uchar *_Atom, unsigned char _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + + +inline unsigned char _Atomic_uchar::operator++(int) volatile noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline unsigned char _Atomic_uchar::operator++(int) noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline unsigned char _Atomic_uchar::operator--(int) volatile noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline unsigned char _Atomic_uchar::operator--(int) noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline unsigned char _Atomic_uchar::operator++() volatile noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline unsigned char _Atomic_uchar::operator++() noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline unsigned char _Atomic_uchar::operator--() volatile noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline unsigned char _Atomic_uchar::operator--() noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline unsigned char _Atomic_uchar::operator+=(unsigned char _Right) volatile noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline unsigned char _Atomic_uchar::operator+=(unsigned char _Right) noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline unsigned char _Atomic_uchar::operator-=(unsigned char _Right) volatile noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline unsigned char _Atomic_uchar::operator-=(unsigned char _Right) noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline unsigned char _Atomic_uchar::operator&=(unsigned char _Right) volatile noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline unsigned char _Atomic_uchar::operator&=(unsigned char _Right) noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline unsigned char _Atomic_uchar::operator|=(unsigned char _Right) volatile noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline unsigned char _Atomic_uchar::operator|=(unsigned char _Right) noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline unsigned char _Atomic_uchar::operator^=(unsigned char _Right) volatile noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline unsigned char _Atomic_uchar::operator^=(unsigned char _Right) noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline unsigned char _Atomic_uchar::fetch_add( + unsigned char _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline unsigned char _Atomic_uchar::fetch_add( + unsigned char _Value, memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline unsigned char _Atomic_uchar::fetch_sub( + unsigned char _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline unsigned char _Atomic_uchar::fetch_sub( + unsigned char _Value, memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline unsigned char _Atomic_uchar::fetch_and( + unsigned char _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline unsigned char _Atomic_uchar::fetch_and( + unsigned char _Value, memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline unsigned char _Atomic_uchar::fetch_or( + unsigned char _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline unsigned char _Atomic_uchar::fetch_or( + unsigned char _Value, memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline unsigned char _Atomic_uchar::fetch_xor( + unsigned char _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + +inline unsigned char _Atomic_uchar::fetch_xor( + unsigned char _Value, memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + + + +template<> + inline unsigned char atomic_fetch_add( + volatile atomic *_Atom, + unsigned char _Value) noexcept + { + return (atomic_fetch_add( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned char atomic_fetch_add(atomic *_Atom, + unsigned char _Value) noexcept + { + return (atomic_fetch_add(static_cast<_Atomic_uchar *>(_Atom), _Value)); + } + +template<> + inline unsigned char atomic_fetch_add_explicit( + volatile atomic *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned char atomic_fetch_add_explicit( + atomic *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast<_Atomic_uchar *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned char atomic_fetch_sub( + volatile atomic *_Atom, + unsigned char _Value) noexcept + { + return (atomic_fetch_sub( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned char atomic_fetch_sub(atomic *_Atom, + unsigned char _Value) noexcept + { + return (atomic_fetch_sub(static_cast<_Atomic_uchar *>(_Atom), _Value)); + } + +template<> + inline unsigned char atomic_fetch_sub_explicit( + volatile atomic *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned char atomic_fetch_sub_explicit( + atomic *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast<_Atomic_uchar *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned char atomic_fetch_and( + volatile atomic *_Atom, unsigned char _Value) noexcept + { + return (atomic_fetch_and( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned char atomic_fetch_and( + atomic *_Atom, unsigned char _Value) noexcept + { + return (atomic_fetch_and(static_cast<_Atomic_uchar *>(_Atom), _Value)); + } + +template<> + inline unsigned char atomic_fetch_and_explicit( + volatile atomic *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned char atomic_fetch_and_explicit( + atomic *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast<_Atomic_uchar *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned char atomic_fetch_or(volatile atomic *_Atom, + unsigned char _Value) noexcept + { + return (atomic_fetch_or( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned char atomic_fetch_or(atomic *_Atom, + unsigned char _Value) noexcept + { + return (atomic_fetch_or(static_cast<_Atomic_uchar *>(_Atom), _Value)); + } + +template<> + inline unsigned char atomic_fetch_or_explicit( + volatile atomic *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned char atomic_fetch_or_explicit( + atomic *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast<_Atomic_uchar *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned char atomic_fetch_xor(volatile atomic *_Atom, + unsigned char _Value) noexcept + { + return (atomic_fetch_xor( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned char atomic_fetch_xor(atomic *_Atom, + unsigned char _Value) noexcept + { + return (atomic_fetch_xor(static_cast<_Atomic_uchar *>(_Atom), _Value)); + } + +template<> + inline unsigned char atomic_fetch_xor_explicit( + volatile atomic *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned char atomic_fetch_xor_explicit( + atomic *_Atom, unsigned char _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast<_Atomic_uchar *>(_Atom), _Value, _Order)); + } +# 717 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +static_assert(2 == sizeof (char16_t), + "_ISIZE and _ITYPE should match."); +# 70 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +typedef struct _Atomic_char16_t + { + char16_t operator=(char16_t) volatile noexcept; + char16_t operator=(char16_t) noexcept; + + bool is_lock_free() const volatile noexcept; + bool is_lock_free() const noexcept; + void store(char16_t, memory_order = memory_order_seq_cst) + volatile noexcept; + void store(char16_t, memory_order = memory_order_seq_cst) + noexcept; + char16_t load(memory_order = memory_order_seq_cst) + const volatile noexcept; + char16_t load(memory_order = memory_order_seq_cst) + const noexcept; + operator char16_t() const volatile noexcept; + operator char16_t() const noexcept; + char16_t exchange(char16_t, + memory_order = memory_order_seq_cst) volatile noexcept; + char16_t exchange(char16_t, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_weak(char16_t&, char16_t, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_weak(char16_t&, char16_t, + memory_order, memory_order) noexcept; + bool compare_exchange_strong(char16_t&, char16_t, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_strong(char16_t&, char16_t, + memory_order, memory_order) noexcept; + bool compare_exchange_weak(char16_t&, char16_t, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_weak(char16_t&, char16_t, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_strong(char16_t&, char16_t, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_strong(char16_t&, char16_t, + memory_order = memory_order_seq_cst) noexcept; + + + char16_t operator++(int) volatile noexcept; + char16_t operator++(int) noexcept; + char16_t operator--(int) volatile noexcept; + char16_t operator--(int) noexcept; + char16_t operator++() volatile noexcept; + char16_t operator++() noexcept; + char16_t operator--() volatile noexcept; + char16_t operator--() noexcept; + char16_t operator+=(char16_t) volatile noexcept; + char16_t operator+=(char16_t) noexcept; + char16_t operator-=(char16_t) volatile noexcept; + char16_t operator-=(char16_t) noexcept; + char16_t operator&=(char16_t) volatile noexcept; + char16_t operator&=(char16_t) noexcept; + char16_t operator|=(char16_t) volatile noexcept; + char16_t operator|=(char16_t) noexcept; + char16_t operator^=(char16_t) volatile noexcept; + char16_t operator^=(char16_t) noexcept; + + char16_t fetch_add(char16_t, memory_order = memory_order_seq_cst) + volatile noexcept; + char16_t fetch_add(char16_t, memory_order = memory_order_seq_cst) noexcept; + char16_t fetch_sub(char16_t, memory_order = memory_order_seq_cst) + volatile noexcept; + char16_t fetch_sub(char16_t, memory_order = memory_order_seq_cst) noexcept; + char16_t fetch_and(char16_t, memory_order = memory_order_seq_cst) + volatile noexcept; + char16_t fetch_and(char16_t, memory_order = memory_order_seq_cst) noexcept; + char16_t fetch_or(char16_t, memory_order = memory_order_seq_cst) + volatile noexcept; + char16_t fetch_or(char16_t, memory_order = memory_order_seq_cst) noexcept; + char16_t fetch_xor(char16_t, memory_order = memory_order_seq_cst) + volatile noexcept; + char16_t fetch_xor(char16_t, memory_order = memory_order_seq_cst) noexcept; +# 169 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + alignas(sizeof(_Uint2_t)) _Uint2_t _My_val; + + + + + } _Atomic_char16_t; + + + +template<> + struct atomic + : _Atomic_char16_t + { + + atomic() noexcept = default; + + constexpr atomic(char16_t _Val) noexcept + : _Atomic_char16_t{(_Uint2_t)_Val} + { + } + + char16_t operator=(char16_t _Val) volatile noexcept + { + return (_Atomic_char16_t::operator=(_Val)); + } + + char16_t operator=(char16_t _Val) noexcept + { + return (_Atomic_char16_t::operator=(_Val)); + } + + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + }; +# 443 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline bool atomic_is_lock_free(const volatile _Atomic_char16_t *) noexcept + { + return (_Atomic_is_lock_free_2()); + } + +inline bool atomic_is_lock_free(const _Atomic_char16_t *) noexcept + { + return (_Atomic_is_lock_free_2()); + } + + +inline bool atomic_is_lock_free(const volatile atomic *) noexcept + { + return (_Atomic_is_lock_free_2()); + } + +inline bool atomic_is_lock_free(const atomic *) noexcept + { + return (_Atomic_is_lock_free_2()); + } + + + +inline void atomic_init(volatile _Atomic_char16_t *_Atom, + char16_t _Value) noexcept + { + _Atom->_My_val = (_Uint2_t)_Value; + + } + +inline void atomic_init(_Atomic_char16_t *_Atom, + char16_t _Value) noexcept + { + _Atom->_My_val = (_Uint2_t)_Value; + + } + + +inline void atomic_init(volatile atomic *_Atom, + char16_t _Value) noexcept + { + _Atom->_My_val = (_Uint2_t)_Value; + + } + +inline void atomic_init(atomic *_Atom, + char16_t _Value) noexcept + { + _Atom->_My_val = (_Uint2_t)_Value; + + } + + +inline void atomic_store_explicit( + volatile _Atomic_char16_t *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + _Atomic_store_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order); + } + +inline void atomic_store_explicit( + _Atomic_char16_t *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + _Atomic_store_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order); + } + +inline void atomic_store(volatile _Atomic_char16_t *_Atom, + char16_t _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void atomic_store(_Atomic_char16_t *_Atom, + char16_t _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline char16_t atomic_load_explicit( + const volatile _Atomic_char16_t *_Atom, memory_order _Order) noexcept + { + return ((char16_t)_Atomic_load_2 ((_Uint2_t*)&_Atom->_My_val, _Order)); + } + +inline char16_t atomic_load_explicit( + const _Atomic_char16_t *_Atom, memory_order _Order) noexcept + { + return ((char16_t)_Atomic_load_2 ((_Uint2_t*)&_Atom->_My_val, _Order)); + } + +inline char16_t atomic_load( + const volatile _Atomic_char16_t *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline char16_t atomic_load( + const _Atomic_char16_t *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline char16_t atomic_exchange_explicit( + volatile _Atomic_char16_t *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return ((char16_t)_Atomic_exchange_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline char16_t atomic_exchange_explicit( + _Atomic_char16_t *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return ((char16_t)_Atomic_exchange_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline char16_t atomic_exchange(volatile _Atomic_char16_t *_Atom, + char16_t _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char16_t atomic_exchange(_Atomic_char16_t *_Atom, + char16_t _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak_explicit( + volatile _Atomic_char16_t *_Atom, char16_t *_Exp, char16_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t*)_Exp, (_Uint2_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak_explicit( + _Atomic_char16_t *_Atom, char16_t *_Exp, char16_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t*)_Exp, (_Uint2_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak( + volatile _Atomic_char16_t *_Atom, char16_t *_Exp, + char16_t _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak( + _Atomic_char16_t *_Atom, char16_t *_Exp, + char16_t _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong_explicit( + volatile _Atomic_char16_t *_Atom, char16_t *_Exp, char16_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t*)_Exp, (_Uint2_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong_explicit( + _Atomic_char16_t *_Atom, char16_t *_Exp, char16_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t*)_Exp, (_Uint2_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong( + volatile _Atomic_char16_t *_Atom, char16_t *_Exp, char16_t _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong( + _Atomic_char16_t *_Atom, char16_t *_Exp, char16_t _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + + +inline char16_t _Atomic_char16_t::operator=(char16_t _Value) volatile noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline char16_t _Atomic_char16_t::operator=(char16_t _Value) noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_char16_t::is_lock_free() const volatile noexcept + { + return (atomic_is_lock_free(this)); + } + +inline bool _Atomic_char16_t::is_lock_free() const noexcept + { + return (atomic_is_lock_free(this)); + } + +inline void _Atomic_char16_t::store(char16_t _Value, + memory_order _Order) volatile noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void _Atomic_char16_t::store(char16_t _Value, + memory_order _Order) noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline char16_t _Atomic_char16_t::load( + memory_order _Order) const volatile noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline char16_t _Atomic_char16_t::load( + memory_order _Order) const noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline _Atomic_char16_t::operator char16_t() const volatile noexcept + { + return (atomic_load(this)); + } + +inline _Atomic_char16_t::operator char16_t() const noexcept + { + return (atomic_load(this)); + } + +inline char16_t _Atomic_char16_t::exchange( + char16_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline char16_t _Atomic_char16_t::exchange( + char16_t _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_char16_t::compare_exchange_weak( + char16_t& _Exp, char16_t _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_char16_t::compare_exchange_weak( + char16_t& _Exp, char16_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_char16_t::compare_exchange_weak( + char16_t& _Exp, char16_t _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_char16_t::compare_exchange_weak( + char16_t& _Exp, char16_t _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_char16_t::compare_exchange_strong( + char16_t& _Exp, char16_t _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_char16_t::compare_exchange_strong( + char16_t& _Exp, char16_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_char16_t::compare_exchange_strong( + char16_t& _Exp, char16_t _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_char16_t::compare_exchange_strong( + char16_t& _Exp, char16_t _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + + +template<> + inline bool atomic_is_lock_free( + const volatile atomic *_Atom) noexcept + { + return (atomic_is_lock_free( + static_cast(_Atom))); + } + +template<> + inline bool atomic_is_lock_free( + const atomic *_Atom) noexcept + { + return (atomic_is_lock_free(static_cast(_Atom))); + } + +template<> + inline void atomic_init(volatile atomic *_Atom, + char16_t _Value) noexcept + { + atomic_init(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_init(atomic *_Atom, + char16_t _Value) noexcept + { + atomic_init(static_cast<_Atomic_char16_t *>(_Atom), _Value); + } + +template<> + inline void atomic_store(volatile atomic *_Atom, + char16_t _Value) noexcept + { + atomic_store(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_store(atomic *_Atom, + char16_t _Value) noexcept + { + atomic_store(static_cast<_Atomic_char16_t *>(_Atom), _Value); + } + +template<> + inline void atomic_store_explicit(volatile atomic *_Atom, + char16_t _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast(_Atom), + _Value, _Order); + } + +template<> + inline void atomic_store_explicit(atomic *_Atom, + char16_t _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast<_Atomic_char16_t *>(_Atom), + _Value, _Order); + } + +template<> + inline char16_t atomic_load(const volatile atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline char16_t atomic_load(const atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline char16_t atomic_load_explicit( + const volatile atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline char16_t atomic_load_explicit( + const atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline char16_t atomic_exchange( + volatile atomic *_Atom, char16_t _Value) noexcept + { + return (atomic_exchange( + static_cast(_Atom), _Value)); + } + +template<> + inline char16_t atomic_exchange(atomic *_Atom, + char16_t _Value) noexcept + { + return (atomic_exchange(static_cast<_Atomic_char16_t *>(_Atom), _Value)); + } + +template<> + inline char16_t atomic_exchange_explicit( + volatile atomic *_Atom, + char16_t _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char16_t atomic_exchange_explicit(atomic *_Atom, + char16_t _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(static_cast<_Atomic_char16_t *>(_Atom), + _Value, _Order)); + } + +template<> + inline bool atomic_compare_exchange_weak( + volatile atomic *_Atom, char16_t *_Exp, + char16_t _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak( + atomic *_Atom, char16_t *_Exp, + char16_t _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast<_Atomic_char16_t *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + volatile atomic *_Atom, char16_t *_Exp, char16_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + atomic *_Atom, char16_t *_Exp, char16_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast<_Atomic_char16_t *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong( + volatile atomic *_Atom, char16_t *_Exp, + char16_t _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong( + atomic *_Atom, char16_t *_Exp, + char16_t _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast<_Atomic_char16_t *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + volatile atomic *_Atom, char16_t *_Exp, char16_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + atomic *_Atom, char16_t *_Exp, char16_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast<_Atomic_char16_t *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + + + + +inline char16_t atomic_fetch_add_explicit( + volatile _Atomic_char16_t *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return ((char16_t)_Atomic_fetch_add_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline char16_t atomic_fetch_add_explicit( + _Atomic_char16_t *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return ((char16_t)_Atomic_fetch_add_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline char16_t atomic_fetch_add(volatile _Atomic_char16_t *_Atom, + char16_t _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char16_t atomic_fetch_add(_Atomic_char16_t *_Atom, + char16_t _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char16_t atomic_fetch_sub_explicit( + volatile _Atomic_char16_t *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return ((char16_t)_Atomic_fetch_sub_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline char16_t atomic_fetch_sub_explicit( + _Atomic_char16_t *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return ((char16_t)_Atomic_fetch_sub_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline char16_t atomic_fetch_sub(volatile _Atomic_char16_t *_Atom, + char16_t _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char16_t atomic_fetch_sub(_Atomic_char16_t *_Atom, + char16_t _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char16_t atomic_fetch_and_explicit( + volatile _Atomic_char16_t *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return ((char16_t)_Atomic_fetch_and_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline char16_t atomic_fetch_and_explicit( + _Atomic_char16_t *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return ((char16_t)_Atomic_fetch_and_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline char16_t atomic_fetch_and(volatile _Atomic_char16_t *_Atom, + char16_t _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char16_t atomic_fetch_and(_Atomic_char16_t *_Atom, + char16_t _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char16_t atomic_fetch_or_explicit( + volatile _Atomic_char16_t *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return ((char16_t)_Atomic_fetch_or_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline char16_t atomic_fetch_or_explicit( + _Atomic_char16_t *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return ((char16_t)_Atomic_fetch_or_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline char16_t atomic_fetch_or( + volatile _Atomic_char16_t *_Atom, char16_t _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char16_t atomic_fetch_or( + _Atomic_char16_t *_Atom, char16_t _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char16_t atomic_fetch_xor_explicit( + volatile _Atomic_char16_t *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return ((char16_t)_Atomic_fetch_xor_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline char16_t atomic_fetch_xor_explicit( + _Atomic_char16_t *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return ((char16_t)_Atomic_fetch_xor_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline char16_t atomic_fetch_xor( + volatile _Atomic_char16_t *_Atom, char16_t _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char16_t atomic_fetch_xor( + _Atomic_char16_t *_Atom, char16_t _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + + +inline char16_t _Atomic_char16_t::operator++(int) volatile noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline char16_t _Atomic_char16_t::operator++(int) noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline char16_t _Atomic_char16_t::operator--(int) volatile noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline char16_t _Atomic_char16_t::operator--(int) noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline char16_t _Atomic_char16_t::operator++() volatile noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline char16_t _Atomic_char16_t::operator++() noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline char16_t _Atomic_char16_t::operator--() volatile noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline char16_t _Atomic_char16_t::operator--() noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline char16_t _Atomic_char16_t::operator+=(char16_t _Right) volatile noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline char16_t _Atomic_char16_t::operator+=(char16_t _Right) noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline char16_t _Atomic_char16_t::operator-=(char16_t _Right) volatile noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline char16_t _Atomic_char16_t::operator-=(char16_t _Right) noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline char16_t _Atomic_char16_t::operator&=(char16_t _Right) volatile noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline char16_t _Atomic_char16_t::operator&=(char16_t _Right) noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline char16_t _Atomic_char16_t::operator|=(char16_t _Right) volatile noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline char16_t _Atomic_char16_t::operator|=(char16_t _Right) noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline char16_t _Atomic_char16_t::operator^=(char16_t _Right) volatile noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline char16_t _Atomic_char16_t::operator^=(char16_t _Right) noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline char16_t _Atomic_char16_t::fetch_add( + char16_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline char16_t _Atomic_char16_t::fetch_add( + char16_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline char16_t _Atomic_char16_t::fetch_sub( + char16_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline char16_t _Atomic_char16_t::fetch_sub( + char16_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline char16_t _Atomic_char16_t::fetch_and( + char16_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline char16_t _Atomic_char16_t::fetch_and( + char16_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline char16_t _Atomic_char16_t::fetch_or( + char16_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline char16_t _Atomic_char16_t::fetch_or( + char16_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline char16_t _Atomic_char16_t::fetch_xor( + char16_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + +inline char16_t _Atomic_char16_t::fetch_xor( + char16_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + + + +template<> + inline char16_t atomic_fetch_add( + volatile atomic *_Atom, + char16_t _Value) noexcept + { + return (atomic_fetch_add( + static_cast(_Atom), _Value)); + } + +template<> + inline char16_t atomic_fetch_add(atomic *_Atom, + char16_t _Value) noexcept + { + return (atomic_fetch_add(static_cast<_Atomic_char16_t *>(_Atom), _Value)); + } + +template<> + inline char16_t atomic_fetch_add_explicit( + volatile atomic *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char16_t atomic_fetch_add_explicit( + atomic *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast<_Atomic_char16_t *>(_Atom), _Value, _Order)); + } + +template<> + inline char16_t atomic_fetch_sub( + volatile atomic *_Atom, + char16_t _Value) noexcept + { + return (atomic_fetch_sub( + static_cast(_Atom), _Value)); + } + +template<> + inline char16_t atomic_fetch_sub(atomic *_Atom, + char16_t _Value) noexcept + { + return (atomic_fetch_sub(static_cast<_Atomic_char16_t *>(_Atom), _Value)); + } + +template<> + inline char16_t atomic_fetch_sub_explicit( + volatile atomic *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char16_t atomic_fetch_sub_explicit( + atomic *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast<_Atomic_char16_t *>(_Atom), _Value, _Order)); + } + +template<> + inline char16_t atomic_fetch_and( + volatile atomic *_Atom, char16_t _Value) noexcept + { + return (atomic_fetch_and( + static_cast(_Atom), _Value)); + } + +template<> + inline char16_t atomic_fetch_and( + atomic *_Atom, char16_t _Value) noexcept + { + return (atomic_fetch_and(static_cast<_Atomic_char16_t *>(_Atom), _Value)); + } + +template<> + inline char16_t atomic_fetch_and_explicit( + volatile atomic *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char16_t atomic_fetch_and_explicit( + atomic *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast<_Atomic_char16_t *>(_Atom), _Value, _Order)); + } + +template<> + inline char16_t atomic_fetch_or(volatile atomic *_Atom, + char16_t _Value) noexcept + { + return (atomic_fetch_or( + static_cast(_Atom), _Value)); + } + +template<> + inline char16_t atomic_fetch_or(atomic *_Atom, + char16_t _Value) noexcept + { + return (atomic_fetch_or(static_cast<_Atomic_char16_t *>(_Atom), _Value)); + } + +template<> + inline char16_t atomic_fetch_or_explicit( + volatile atomic *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char16_t atomic_fetch_or_explicit( + atomic *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast<_Atomic_char16_t *>(_Atom), _Value, _Order)); + } + +template<> + inline char16_t atomic_fetch_xor(volatile atomic *_Atom, + char16_t _Value) noexcept + { + return (atomic_fetch_xor( + static_cast(_Atom), _Value)); + } + +template<> + inline char16_t atomic_fetch_xor(atomic *_Atom, + char16_t _Value) noexcept + { + return (atomic_fetch_xor(static_cast<_Atomic_char16_t *>(_Atom), _Value)); + } + +template<> + inline char16_t atomic_fetch_xor_explicit( + volatile atomic *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char16_t atomic_fetch_xor_explicit( + atomic *_Atom, char16_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast<_Atomic_char16_t *>(_Atom), _Value, _Order)); + } +# 723 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +static_assert(4 == sizeof (char32_t), + "_ISIZE and _ITYPE should match."); +# 70 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +typedef struct _Atomic_char32_t + { + char32_t operator=(char32_t) volatile noexcept; + char32_t operator=(char32_t) noexcept; + + bool is_lock_free() const volatile noexcept; + bool is_lock_free() const noexcept; + void store(char32_t, memory_order = memory_order_seq_cst) + volatile noexcept; + void store(char32_t, memory_order = memory_order_seq_cst) + noexcept; + char32_t load(memory_order = memory_order_seq_cst) + const volatile noexcept; + char32_t load(memory_order = memory_order_seq_cst) + const noexcept; + operator char32_t() const volatile noexcept; + operator char32_t() const noexcept; + char32_t exchange(char32_t, + memory_order = memory_order_seq_cst) volatile noexcept; + char32_t exchange(char32_t, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_weak(char32_t&, char32_t, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_weak(char32_t&, char32_t, + memory_order, memory_order) noexcept; + bool compare_exchange_strong(char32_t&, char32_t, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_strong(char32_t&, char32_t, + memory_order, memory_order) noexcept; + bool compare_exchange_weak(char32_t&, char32_t, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_weak(char32_t&, char32_t, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_strong(char32_t&, char32_t, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_strong(char32_t&, char32_t, + memory_order = memory_order_seq_cst) noexcept; + + + char32_t operator++(int) volatile noexcept; + char32_t operator++(int) noexcept; + char32_t operator--(int) volatile noexcept; + char32_t operator--(int) noexcept; + char32_t operator++() volatile noexcept; + char32_t operator++() noexcept; + char32_t operator--() volatile noexcept; + char32_t operator--() noexcept; + char32_t operator+=(char32_t) volatile noexcept; + char32_t operator+=(char32_t) noexcept; + char32_t operator-=(char32_t) volatile noexcept; + char32_t operator-=(char32_t) noexcept; + char32_t operator&=(char32_t) volatile noexcept; + char32_t operator&=(char32_t) noexcept; + char32_t operator|=(char32_t) volatile noexcept; + char32_t operator|=(char32_t) noexcept; + char32_t operator^=(char32_t) volatile noexcept; + char32_t operator^=(char32_t) noexcept; + + char32_t fetch_add(char32_t, memory_order = memory_order_seq_cst) + volatile noexcept; + char32_t fetch_add(char32_t, memory_order = memory_order_seq_cst) noexcept; + char32_t fetch_sub(char32_t, memory_order = memory_order_seq_cst) + volatile noexcept; + char32_t fetch_sub(char32_t, memory_order = memory_order_seq_cst) noexcept; + char32_t fetch_and(char32_t, memory_order = memory_order_seq_cst) + volatile noexcept; + char32_t fetch_and(char32_t, memory_order = memory_order_seq_cst) noexcept; + char32_t fetch_or(char32_t, memory_order = memory_order_seq_cst) + volatile noexcept; + char32_t fetch_or(char32_t, memory_order = memory_order_seq_cst) noexcept; + char32_t fetch_xor(char32_t, memory_order = memory_order_seq_cst) + volatile noexcept; + char32_t fetch_xor(char32_t, memory_order = memory_order_seq_cst) noexcept; +# 169 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + alignas(sizeof(_Uint4_t)) _Uint4_t _My_val; + + + + + } _Atomic_char32_t; + + + +template<> + struct atomic + : _Atomic_char32_t + { + + atomic() noexcept = default; + + constexpr atomic(char32_t _Val) noexcept + : _Atomic_char32_t{(_Uint4_t)_Val} + { + } + + char32_t operator=(char32_t _Val) volatile noexcept + { + return (_Atomic_char32_t::operator=(_Val)); + } + + char32_t operator=(char32_t _Val) noexcept + { + return (_Atomic_char32_t::operator=(_Val)); + } + + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + }; +# 443 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline bool atomic_is_lock_free(const volatile _Atomic_char32_t *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + +inline bool atomic_is_lock_free(const _Atomic_char32_t *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + + +inline bool atomic_is_lock_free(const volatile atomic *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + +inline bool atomic_is_lock_free(const atomic *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + + + +inline void atomic_init(volatile _Atomic_char32_t *_Atom, + char32_t _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + +inline void atomic_init(_Atomic_char32_t *_Atom, + char32_t _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + + +inline void atomic_init(volatile atomic *_Atom, + char32_t _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + +inline void atomic_init(atomic *_Atom, + char32_t _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + + +inline void atomic_store_explicit( + volatile _Atomic_char32_t *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + _Atomic_store_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order); + } + +inline void atomic_store_explicit( + _Atomic_char32_t *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + _Atomic_store_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order); + } + +inline void atomic_store(volatile _Atomic_char32_t *_Atom, + char32_t _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void atomic_store(_Atomic_char32_t *_Atom, + char32_t _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline char32_t atomic_load_explicit( + const volatile _Atomic_char32_t *_Atom, memory_order _Order) noexcept + { + return ((char32_t)_Atomic_load_4 ((_Uint4_t*)&_Atom->_My_val, _Order)); + } + +inline char32_t atomic_load_explicit( + const _Atomic_char32_t *_Atom, memory_order _Order) noexcept + { + return ((char32_t)_Atomic_load_4 ((_Uint4_t*)&_Atom->_My_val, _Order)); + } + +inline char32_t atomic_load( + const volatile _Atomic_char32_t *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline char32_t atomic_load( + const _Atomic_char32_t *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline char32_t atomic_exchange_explicit( + volatile _Atomic_char32_t *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return ((char32_t)_Atomic_exchange_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline char32_t atomic_exchange_explicit( + _Atomic_char32_t *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return ((char32_t)_Atomic_exchange_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline char32_t atomic_exchange(volatile _Atomic_char32_t *_Atom, + char32_t _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char32_t atomic_exchange(_Atomic_char32_t *_Atom, + char32_t _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak_explicit( + volatile _Atomic_char32_t *_Atom, char32_t *_Exp, char32_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak_explicit( + _Atomic_char32_t *_Atom, char32_t *_Exp, char32_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak( + volatile _Atomic_char32_t *_Atom, char32_t *_Exp, + char32_t _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak( + _Atomic_char32_t *_Atom, char32_t *_Exp, + char32_t _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong_explicit( + volatile _Atomic_char32_t *_Atom, char32_t *_Exp, char32_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong_explicit( + _Atomic_char32_t *_Atom, char32_t *_Exp, char32_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong( + volatile _Atomic_char32_t *_Atom, char32_t *_Exp, char32_t _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong( + _Atomic_char32_t *_Atom, char32_t *_Exp, char32_t _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + + +inline char32_t _Atomic_char32_t::operator=(char32_t _Value) volatile noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline char32_t _Atomic_char32_t::operator=(char32_t _Value) noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_char32_t::is_lock_free() const volatile noexcept + { + return (atomic_is_lock_free(this)); + } + +inline bool _Atomic_char32_t::is_lock_free() const noexcept + { + return (atomic_is_lock_free(this)); + } + +inline void _Atomic_char32_t::store(char32_t _Value, + memory_order _Order) volatile noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void _Atomic_char32_t::store(char32_t _Value, + memory_order _Order) noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline char32_t _Atomic_char32_t::load( + memory_order _Order) const volatile noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline char32_t _Atomic_char32_t::load( + memory_order _Order) const noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline _Atomic_char32_t::operator char32_t() const volatile noexcept + { + return (atomic_load(this)); + } + +inline _Atomic_char32_t::operator char32_t() const noexcept + { + return (atomic_load(this)); + } + +inline char32_t _Atomic_char32_t::exchange( + char32_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline char32_t _Atomic_char32_t::exchange( + char32_t _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_char32_t::compare_exchange_weak( + char32_t& _Exp, char32_t _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_char32_t::compare_exchange_weak( + char32_t& _Exp, char32_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_char32_t::compare_exchange_weak( + char32_t& _Exp, char32_t _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_char32_t::compare_exchange_weak( + char32_t& _Exp, char32_t _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_char32_t::compare_exchange_strong( + char32_t& _Exp, char32_t _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_char32_t::compare_exchange_strong( + char32_t& _Exp, char32_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_char32_t::compare_exchange_strong( + char32_t& _Exp, char32_t _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_char32_t::compare_exchange_strong( + char32_t& _Exp, char32_t _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + + +template<> + inline bool atomic_is_lock_free( + const volatile atomic *_Atom) noexcept + { + return (atomic_is_lock_free( + static_cast(_Atom))); + } + +template<> + inline bool atomic_is_lock_free( + const atomic *_Atom) noexcept + { + return (atomic_is_lock_free(static_cast(_Atom))); + } + +template<> + inline void atomic_init(volatile atomic *_Atom, + char32_t _Value) noexcept + { + atomic_init(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_init(atomic *_Atom, + char32_t _Value) noexcept + { + atomic_init(static_cast<_Atomic_char32_t *>(_Atom), _Value); + } + +template<> + inline void atomic_store(volatile atomic *_Atom, + char32_t _Value) noexcept + { + atomic_store(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_store(atomic *_Atom, + char32_t _Value) noexcept + { + atomic_store(static_cast<_Atomic_char32_t *>(_Atom), _Value); + } + +template<> + inline void atomic_store_explicit(volatile atomic *_Atom, + char32_t _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast(_Atom), + _Value, _Order); + } + +template<> + inline void atomic_store_explicit(atomic *_Atom, + char32_t _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast<_Atomic_char32_t *>(_Atom), + _Value, _Order); + } + +template<> + inline char32_t atomic_load(const volatile atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline char32_t atomic_load(const atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline char32_t atomic_load_explicit( + const volatile atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline char32_t atomic_load_explicit( + const atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline char32_t atomic_exchange( + volatile atomic *_Atom, char32_t _Value) noexcept + { + return (atomic_exchange( + static_cast(_Atom), _Value)); + } + +template<> + inline char32_t atomic_exchange(atomic *_Atom, + char32_t _Value) noexcept + { + return (atomic_exchange(static_cast<_Atomic_char32_t *>(_Atom), _Value)); + } + +template<> + inline char32_t atomic_exchange_explicit( + volatile atomic *_Atom, + char32_t _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char32_t atomic_exchange_explicit(atomic *_Atom, + char32_t _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(static_cast<_Atomic_char32_t *>(_Atom), + _Value, _Order)); + } + +template<> + inline bool atomic_compare_exchange_weak( + volatile atomic *_Atom, char32_t *_Exp, + char32_t _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak( + atomic *_Atom, char32_t *_Exp, + char32_t _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast<_Atomic_char32_t *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + volatile atomic *_Atom, char32_t *_Exp, char32_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + atomic *_Atom, char32_t *_Exp, char32_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast<_Atomic_char32_t *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong( + volatile atomic *_Atom, char32_t *_Exp, + char32_t _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong( + atomic *_Atom, char32_t *_Exp, + char32_t _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast<_Atomic_char32_t *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + volatile atomic *_Atom, char32_t *_Exp, char32_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + atomic *_Atom, char32_t *_Exp, char32_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast<_Atomic_char32_t *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + + + + +inline char32_t atomic_fetch_add_explicit( + volatile _Atomic_char32_t *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return ((char32_t)_Atomic_fetch_add_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline char32_t atomic_fetch_add_explicit( + _Atomic_char32_t *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return ((char32_t)_Atomic_fetch_add_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline char32_t atomic_fetch_add(volatile _Atomic_char32_t *_Atom, + char32_t _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char32_t atomic_fetch_add(_Atomic_char32_t *_Atom, + char32_t _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char32_t atomic_fetch_sub_explicit( + volatile _Atomic_char32_t *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return ((char32_t)_Atomic_fetch_sub_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline char32_t atomic_fetch_sub_explicit( + _Atomic_char32_t *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return ((char32_t)_Atomic_fetch_sub_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline char32_t atomic_fetch_sub(volatile _Atomic_char32_t *_Atom, + char32_t _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char32_t atomic_fetch_sub(_Atomic_char32_t *_Atom, + char32_t _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char32_t atomic_fetch_and_explicit( + volatile _Atomic_char32_t *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return ((char32_t)_Atomic_fetch_and_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline char32_t atomic_fetch_and_explicit( + _Atomic_char32_t *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return ((char32_t)_Atomic_fetch_and_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline char32_t atomic_fetch_and(volatile _Atomic_char32_t *_Atom, + char32_t _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char32_t atomic_fetch_and(_Atomic_char32_t *_Atom, + char32_t _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char32_t atomic_fetch_or_explicit( + volatile _Atomic_char32_t *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return ((char32_t)_Atomic_fetch_or_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline char32_t atomic_fetch_or_explicit( + _Atomic_char32_t *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return ((char32_t)_Atomic_fetch_or_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline char32_t atomic_fetch_or( + volatile _Atomic_char32_t *_Atom, char32_t _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char32_t atomic_fetch_or( + _Atomic_char32_t *_Atom, char32_t _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char32_t atomic_fetch_xor_explicit( + volatile _Atomic_char32_t *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return ((char32_t)_Atomic_fetch_xor_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline char32_t atomic_fetch_xor_explicit( + _Atomic_char32_t *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return ((char32_t)_Atomic_fetch_xor_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline char32_t atomic_fetch_xor( + volatile _Atomic_char32_t *_Atom, char32_t _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline char32_t atomic_fetch_xor( + _Atomic_char32_t *_Atom, char32_t _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + + +inline char32_t _Atomic_char32_t::operator++(int) volatile noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline char32_t _Atomic_char32_t::operator++(int) noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline char32_t _Atomic_char32_t::operator--(int) volatile noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline char32_t _Atomic_char32_t::operator--(int) noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline char32_t _Atomic_char32_t::operator++() volatile noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline char32_t _Atomic_char32_t::operator++() noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline char32_t _Atomic_char32_t::operator--() volatile noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline char32_t _Atomic_char32_t::operator--() noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline char32_t _Atomic_char32_t::operator+=(char32_t _Right) volatile noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline char32_t _Atomic_char32_t::operator+=(char32_t _Right) noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline char32_t _Atomic_char32_t::operator-=(char32_t _Right) volatile noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline char32_t _Atomic_char32_t::operator-=(char32_t _Right) noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline char32_t _Atomic_char32_t::operator&=(char32_t _Right) volatile noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline char32_t _Atomic_char32_t::operator&=(char32_t _Right) noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline char32_t _Atomic_char32_t::operator|=(char32_t _Right) volatile noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline char32_t _Atomic_char32_t::operator|=(char32_t _Right) noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline char32_t _Atomic_char32_t::operator^=(char32_t _Right) volatile noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline char32_t _Atomic_char32_t::operator^=(char32_t _Right) noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline char32_t _Atomic_char32_t::fetch_add( + char32_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline char32_t _Atomic_char32_t::fetch_add( + char32_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline char32_t _Atomic_char32_t::fetch_sub( + char32_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline char32_t _Atomic_char32_t::fetch_sub( + char32_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline char32_t _Atomic_char32_t::fetch_and( + char32_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline char32_t _Atomic_char32_t::fetch_and( + char32_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline char32_t _Atomic_char32_t::fetch_or( + char32_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline char32_t _Atomic_char32_t::fetch_or( + char32_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline char32_t _Atomic_char32_t::fetch_xor( + char32_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + +inline char32_t _Atomic_char32_t::fetch_xor( + char32_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + + + +template<> + inline char32_t atomic_fetch_add( + volatile atomic *_Atom, + char32_t _Value) noexcept + { + return (atomic_fetch_add( + static_cast(_Atom), _Value)); + } + +template<> + inline char32_t atomic_fetch_add(atomic *_Atom, + char32_t _Value) noexcept + { + return (atomic_fetch_add(static_cast<_Atomic_char32_t *>(_Atom), _Value)); + } + +template<> + inline char32_t atomic_fetch_add_explicit( + volatile atomic *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char32_t atomic_fetch_add_explicit( + atomic *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast<_Atomic_char32_t *>(_Atom), _Value, _Order)); + } + +template<> + inline char32_t atomic_fetch_sub( + volatile atomic *_Atom, + char32_t _Value) noexcept + { + return (atomic_fetch_sub( + static_cast(_Atom), _Value)); + } + +template<> + inline char32_t atomic_fetch_sub(atomic *_Atom, + char32_t _Value) noexcept + { + return (atomic_fetch_sub(static_cast<_Atomic_char32_t *>(_Atom), _Value)); + } + +template<> + inline char32_t atomic_fetch_sub_explicit( + volatile atomic *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char32_t atomic_fetch_sub_explicit( + atomic *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast<_Atomic_char32_t *>(_Atom), _Value, _Order)); + } + +template<> + inline char32_t atomic_fetch_and( + volatile atomic *_Atom, char32_t _Value) noexcept + { + return (atomic_fetch_and( + static_cast(_Atom), _Value)); + } + +template<> + inline char32_t atomic_fetch_and( + atomic *_Atom, char32_t _Value) noexcept + { + return (atomic_fetch_and(static_cast<_Atomic_char32_t *>(_Atom), _Value)); + } + +template<> + inline char32_t atomic_fetch_and_explicit( + volatile atomic *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char32_t atomic_fetch_and_explicit( + atomic *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast<_Atomic_char32_t *>(_Atom), _Value, _Order)); + } + +template<> + inline char32_t atomic_fetch_or(volatile atomic *_Atom, + char32_t _Value) noexcept + { + return (atomic_fetch_or( + static_cast(_Atom), _Value)); + } + +template<> + inline char32_t atomic_fetch_or(atomic *_Atom, + char32_t _Value) noexcept + { + return (atomic_fetch_or(static_cast<_Atomic_char32_t *>(_Atom), _Value)); + } + +template<> + inline char32_t atomic_fetch_or_explicit( + volatile atomic *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char32_t atomic_fetch_or_explicit( + atomic *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast<_Atomic_char32_t *>(_Atom), _Value, _Order)); + } + +template<> + inline char32_t atomic_fetch_xor(volatile atomic *_Atom, + char32_t _Value) noexcept + { + return (atomic_fetch_xor( + static_cast(_Atom), _Value)); + } + +template<> + inline char32_t atomic_fetch_xor(atomic *_Atom, + char32_t _Value) noexcept + { + return (atomic_fetch_xor(static_cast<_Atomic_char32_t *>(_Atom), _Value)); + } + +template<> + inline char32_t atomic_fetch_xor_explicit( + volatile atomic *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline char32_t atomic_fetch_xor_explicit( + atomic *_Atom, char32_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast<_Atomic_char32_t *>(_Atom), _Value, _Order)); + } +# 729 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 +# 740 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 3 +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +static_assert(2 == sizeof (wchar_t), + "_ISIZE and _ITYPE should match."); +# 70 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +typedef struct _Atomic_wchar_t + { + wchar_t operator=(wchar_t) volatile noexcept; + wchar_t operator=(wchar_t) noexcept; + + bool is_lock_free() const volatile noexcept; + bool is_lock_free() const noexcept; + void store(wchar_t, memory_order = memory_order_seq_cst) + volatile noexcept; + void store(wchar_t, memory_order = memory_order_seq_cst) + noexcept; + wchar_t load(memory_order = memory_order_seq_cst) + const volatile noexcept; + wchar_t load(memory_order = memory_order_seq_cst) + const noexcept; + operator wchar_t() const volatile noexcept; + operator wchar_t() const noexcept; + wchar_t exchange(wchar_t, + memory_order = memory_order_seq_cst) volatile noexcept; + wchar_t exchange(wchar_t, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_weak(wchar_t&, wchar_t, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_weak(wchar_t&, wchar_t, + memory_order, memory_order) noexcept; + bool compare_exchange_strong(wchar_t&, wchar_t, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_strong(wchar_t&, wchar_t, + memory_order, memory_order) noexcept; + bool compare_exchange_weak(wchar_t&, wchar_t, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_weak(wchar_t&, wchar_t, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_strong(wchar_t&, wchar_t, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_strong(wchar_t&, wchar_t, + memory_order = memory_order_seq_cst) noexcept; + + + wchar_t operator++(int) volatile noexcept; + wchar_t operator++(int) noexcept; + wchar_t operator--(int) volatile noexcept; + wchar_t operator--(int) noexcept; + wchar_t operator++() volatile noexcept; + wchar_t operator++() noexcept; + wchar_t operator--() volatile noexcept; + wchar_t operator--() noexcept; + wchar_t operator+=(wchar_t) volatile noexcept; + wchar_t operator+=(wchar_t) noexcept; + wchar_t operator-=(wchar_t) volatile noexcept; + wchar_t operator-=(wchar_t) noexcept; + wchar_t operator&=(wchar_t) volatile noexcept; + wchar_t operator&=(wchar_t) noexcept; + wchar_t operator|=(wchar_t) volatile noexcept; + wchar_t operator|=(wchar_t) noexcept; + wchar_t operator^=(wchar_t) volatile noexcept; + wchar_t operator^=(wchar_t) noexcept; + + wchar_t fetch_add(wchar_t, memory_order = memory_order_seq_cst) + volatile noexcept; + wchar_t fetch_add(wchar_t, memory_order = memory_order_seq_cst) noexcept; + wchar_t fetch_sub(wchar_t, memory_order = memory_order_seq_cst) + volatile noexcept; + wchar_t fetch_sub(wchar_t, memory_order = memory_order_seq_cst) noexcept; + wchar_t fetch_and(wchar_t, memory_order = memory_order_seq_cst) + volatile noexcept; + wchar_t fetch_and(wchar_t, memory_order = memory_order_seq_cst) noexcept; + wchar_t fetch_or(wchar_t, memory_order = memory_order_seq_cst) + volatile noexcept; + wchar_t fetch_or(wchar_t, memory_order = memory_order_seq_cst) noexcept; + wchar_t fetch_xor(wchar_t, memory_order = memory_order_seq_cst) + volatile noexcept; + wchar_t fetch_xor(wchar_t, memory_order = memory_order_seq_cst) noexcept; +# 169 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + alignas(sizeof(_Uint2_t)) _Uint2_t _My_val; + + + + + } _Atomic_wchar_t; + + + +template<> + struct atomic + : _Atomic_wchar_t + { + + atomic() noexcept = default; + + constexpr atomic(wchar_t _Val) noexcept + : _Atomic_wchar_t{(_Uint2_t)_Val} + { + } + + wchar_t operator=(wchar_t _Val) volatile noexcept + { + return (_Atomic_wchar_t::operator=(_Val)); + } + + wchar_t operator=(wchar_t _Val) noexcept + { + return (_Atomic_wchar_t::operator=(_Val)); + } + + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + }; +# 443 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline bool atomic_is_lock_free(const volatile _Atomic_wchar_t *) noexcept + { + return (_Atomic_is_lock_free_2()); + } + +inline bool atomic_is_lock_free(const _Atomic_wchar_t *) noexcept + { + return (_Atomic_is_lock_free_2()); + } + + +inline bool atomic_is_lock_free(const volatile atomic *) noexcept + { + return (_Atomic_is_lock_free_2()); + } + +inline bool atomic_is_lock_free(const atomic *) noexcept + { + return (_Atomic_is_lock_free_2()); + } + + + +inline void atomic_init(volatile _Atomic_wchar_t *_Atom, + wchar_t _Value) noexcept + { + _Atom->_My_val = (_Uint2_t)_Value; + + } + +inline void atomic_init(_Atomic_wchar_t *_Atom, + wchar_t _Value) noexcept + { + _Atom->_My_val = (_Uint2_t)_Value; + + } + + +inline void atomic_init(volatile atomic *_Atom, + wchar_t _Value) noexcept + { + _Atom->_My_val = (_Uint2_t)_Value; + + } + +inline void atomic_init(atomic *_Atom, + wchar_t _Value) noexcept + { + _Atom->_My_val = (_Uint2_t)_Value; + + } + + +inline void atomic_store_explicit( + volatile _Atomic_wchar_t *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + _Atomic_store_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order); + } + +inline void atomic_store_explicit( + _Atomic_wchar_t *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + _Atomic_store_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order); + } + +inline void atomic_store(volatile _Atomic_wchar_t *_Atom, + wchar_t _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void atomic_store(_Atomic_wchar_t *_Atom, + wchar_t _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline wchar_t atomic_load_explicit( + const volatile _Atomic_wchar_t *_Atom, memory_order _Order) noexcept + { + return ((wchar_t)_Atomic_load_2 ((_Uint2_t*)&_Atom->_My_val, _Order)); + } + +inline wchar_t atomic_load_explicit( + const _Atomic_wchar_t *_Atom, memory_order _Order) noexcept + { + return ((wchar_t)_Atomic_load_2 ((_Uint2_t*)&_Atom->_My_val, _Order)); + } + +inline wchar_t atomic_load( + const volatile _Atomic_wchar_t *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline wchar_t atomic_load( + const _Atomic_wchar_t *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline wchar_t atomic_exchange_explicit( + volatile _Atomic_wchar_t *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return ((wchar_t)_Atomic_exchange_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline wchar_t atomic_exchange_explicit( + _Atomic_wchar_t *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return ((wchar_t)_Atomic_exchange_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline wchar_t atomic_exchange(volatile _Atomic_wchar_t *_Atom, + wchar_t _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline wchar_t atomic_exchange(_Atomic_wchar_t *_Atom, + wchar_t _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak_explicit( + volatile _Atomic_wchar_t *_Atom, wchar_t *_Exp, wchar_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t*)_Exp, (_Uint2_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak_explicit( + _Atomic_wchar_t *_Atom, wchar_t *_Exp, wchar_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t*)_Exp, (_Uint2_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak( + volatile _Atomic_wchar_t *_Atom, wchar_t *_Exp, + wchar_t _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak( + _Atomic_wchar_t *_Atom, wchar_t *_Exp, + wchar_t _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong_explicit( + volatile _Atomic_wchar_t *_Atom, wchar_t *_Exp, wchar_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t*)_Exp, (_Uint2_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong_explicit( + _Atomic_wchar_t *_Atom, wchar_t *_Exp, wchar_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t*)_Exp, (_Uint2_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong( + volatile _Atomic_wchar_t *_Atom, wchar_t *_Exp, wchar_t _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong( + _Atomic_wchar_t *_Atom, wchar_t *_Exp, wchar_t _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + + +inline wchar_t _Atomic_wchar_t::operator=(wchar_t _Value) volatile noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline wchar_t _Atomic_wchar_t::operator=(wchar_t _Value) noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_wchar_t::is_lock_free() const volatile noexcept + { + return (atomic_is_lock_free(this)); + } + +inline bool _Atomic_wchar_t::is_lock_free() const noexcept + { + return (atomic_is_lock_free(this)); + } + +inline void _Atomic_wchar_t::store(wchar_t _Value, + memory_order _Order) volatile noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void _Atomic_wchar_t::store(wchar_t _Value, + memory_order _Order) noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline wchar_t _Atomic_wchar_t::load( + memory_order _Order) const volatile noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline wchar_t _Atomic_wchar_t::load( + memory_order _Order) const noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline _Atomic_wchar_t::operator wchar_t() const volatile noexcept + { + return (atomic_load(this)); + } + +inline _Atomic_wchar_t::operator wchar_t() const noexcept + { + return (atomic_load(this)); + } + +inline wchar_t _Atomic_wchar_t::exchange( + wchar_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline wchar_t _Atomic_wchar_t::exchange( + wchar_t _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_wchar_t::compare_exchange_weak( + wchar_t& _Exp, wchar_t _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_wchar_t::compare_exchange_weak( + wchar_t& _Exp, wchar_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_wchar_t::compare_exchange_weak( + wchar_t& _Exp, wchar_t _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_wchar_t::compare_exchange_weak( + wchar_t& _Exp, wchar_t _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_wchar_t::compare_exchange_strong( + wchar_t& _Exp, wchar_t _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_wchar_t::compare_exchange_strong( + wchar_t& _Exp, wchar_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_wchar_t::compare_exchange_strong( + wchar_t& _Exp, wchar_t _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_wchar_t::compare_exchange_strong( + wchar_t& _Exp, wchar_t _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + + +template<> + inline bool atomic_is_lock_free( + const volatile atomic *_Atom) noexcept + { + return (atomic_is_lock_free( + static_cast(_Atom))); + } + +template<> + inline bool atomic_is_lock_free( + const atomic *_Atom) noexcept + { + return (atomic_is_lock_free(static_cast(_Atom))); + } + +template<> + inline void atomic_init(volatile atomic *_Atom, + wchar_t _Value) noexcept + { + atomic_init(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_init(atomic *_Atom, + wchar_t _Value) noexcept + { + atomic_init(static_cast<_Atomic_wchar_t *>(_Atom), _Value); + } + +template<> + inline void atomic_store(volatile atomic *_Atom, + wchar_t _Value) noexcept + { + atomic_store(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_store(atomic *_Atom, + wchar_t _Value) noexcept + { + atomic_store(static_cast<_Atomic_wchar_t *>(_Atom), _Value); + } + +template<> + inline void atomic_store_explicit(volatile atomic *_Atom, + wchar_t _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast(_Atom), + _Value, _Order); + } + +template<> + inline void atomic_store_explicit(atomic *_Atom, + wchar_t _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast<_Atomic_wchar_t *>(_Atom), + _Value, _Order); + } + +template<> + inline wchar_t atomic_load(const volatile atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline wchar_t atomic_load(const atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline wchar_t atomic_load_explicit( + const volatile atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline wchar_t atomic_load_explicit( + const atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline wchar_t atomic_exchange( + volatile atomic *_Atom, wchar_t _Value) noexcept + { + return (atomic_exchange( + static_cast(_Atom), _Value)); + } + +template<> + inline wchar_t atomic_exchange(atomic *_Atom, + wchar_t _Value) noexcept + { + return (atomic_exchange(static_cast<_Atomic_wchar_t *>(_Atom), _Value)); + } + +template<> + inline wchar_t atomic_exchange_explicit( + volatile atomic *_Atom, + wchar_t _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline wchar_t atomic_exchange_explicit(atomic *_Atom, + wchar_t _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(static_cast<_Atomic_wchar_t *>(_Atom), + _Value, _Order)); + } + +template<> + inline bool atomic_compare_exchange_weak( + volatile atomic *_Atom, wchar_t *_Exp, + wchar_t _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak( + atomic *_Atom, wchar_t *_Exp, + wchar_t _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast<_Atomic_wchar_t *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + volatile atomic *_Atom, wchar_t *_Exp, wchar_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + atomic *_Atom, wchar_t *_Exp, wchar_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast<_Atomic_wchar_t *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong( + volatile atomic *_Atom, wchar_t *_Exp, + wchar_t _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong( + atomic *_Atom, wchar_t *_Exp, + wchar_t _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast<_Atomic_wchar_t *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + volatile atomic *_Atom, wchar_t *_Exp, wchar_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + atomic *_Atom, wchar_t *_Exp, wchar_t _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast<_Atomic_wchar_t *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + + + + +inline wchar_t atomic_fetch_add_explicit( + volatile _Atomic_wchar_t *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return ((wchar_t)_Atomic_fetch_add_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline wchar_t atomic_fetch_add_explicit( + _Atomic_wchar_t *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return ((wchar_t)_Atomic_fetch_add_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline wchar_t atomic_fetch_add(volatile _Atomic_wchar_t *_Atom, + wchar_t _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline wchar_t atomic_fetch_add(_Atomic_wchar_t *_Atom, + wchar_t _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline wchar_t atomic_fetch_sub_explicit( + volatile _Atomic_wchar_t *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return ((wchar_t)_Atomic_fetch_sub_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline wchar_t atomic_fetch_sub_explicit( + _Atomic_wchar_t *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return ((wchar_t)_Atomic_fetch_sub_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline wchar_t atomic_fetch_sub(volatile _Atomic_wchar_t *_Atom, + wchar_t _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline wchar_t atomic_fetch_sub(_Atomic_wchar_t *_Atom, + wchar_t _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline wchar_t atomic_fetch_and_explicit( + volatile _Atomic_wchar_t *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return ((wchar_t)_Atomic_fetch_and_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline wchar_t atomic_fetch_and_explicit( + _Atomic_wchar_t *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return ((wchar_t)_Atomic_fetch_and_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline wchar_t atomic_fetch_and(volatile _Atomic_wchar_t *_Atom, + wchar_t _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline wchar_t atomic_fetch_and(_Atomic_wchar_t *_Atom, + wchar_t _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline wchar_t atomic_fetch_or_explicit( + volatile _Atomic_wchar_t *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return ((wchar_t)_Atomic_fetch_or_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline wchar_t atomic_fetch_or_explicit( + _Atomic_wchar_t *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return ((wchar_t)_Atomic_fetch_or_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline wchar_t atomic_fetch_or( + volatile _Atomic_wchar_t *_Atom, wchar_t _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline wchar_t atomic_fetch_or( + _Atomic_wchar_t *_Atom, wchar_t _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline wchar_t atomic_fetch_xor_explicit( + volatile _Atomic_wchar_t *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return ((wchar_t)_Atomic_fetch_xor_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline wchar_t atomic_fetch_xor_explicit( + _Atomic_wchar_t *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return ((wchar_t)_Atomic_fetch_xor_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline wchar_t atomic_fetch_xor( + volatile _Atomic_wchar_t *_Atom, wchar_t _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline wchar_t atomic_fetch_xor( + _Atomic_wchar_t *_Atom, wchar_t _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + + +inline wchar_t _Atomic_wchar_t::operator++(int) volatile noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline wchar_t _Atomic_wchar_t::operator++(int) noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline wchar_t _Atomic_wchar_t::operator--(int) volatile noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline wchar_t _Atomic_wchar_t::operator--(int) noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline wchar_t _Atomic_wchar_t::operator++() volatile noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline wchar_t _Atomic_wchar_t::operator++() noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline wchar_t _Atomic_wchar_t::operator--() volatile noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline wchar_t _Atomic_wchar_t::operator--() noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline wchar_t _Atomic_wchar_t::operator+=(wchar_t _Right) volatile noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline wchar_t _Atomic_wchar_t::operator+=(wchar_t _Right) noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline wchar_t _Atomic_wchar_t::operator-=(wchar_t _Right) volatile noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline wchar_t _Atomic_wchar_t::operator-=(wchar_t _Right) noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline wchar_t _Atomic_wchar_t::operator&=(wchar_t _Right) volatile noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline wchar_t _Atomic_wchar_t::operator&=(wchar_t _Right) noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline wchar_t _Atomic_wchar_t::operator|=(wchar_t _Right) volatile noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline wchar_t _Atomic_wchar_t::operator|=(wchar_t _Right) noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline wchar_t _Atomic_wchar_t::operator^=(wchar_t _Right) volatile noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline wchar_t _Atomic_wchar_t::operator^=(wchar_t _Right) noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline wchar_t _Atomic_wchar_t::fetch_add( + wchar_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline wchar_t _Atomic_wchar_t::fetch_add( + wchar_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline wchar_t _Atomic_wchar_t::fetch_sub( + wchar_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline wchar_t _Atomic_wchar_t::fetch_sub( + wchar_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline wchar_t _Atomic_wchar_t::fetch_and( + wchar_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline wchar_t _Atomic_wchar_t::fetch_and( + wchar_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline wchar_t _Atomic_wchar_t::fetch_or( + wchar_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline wchar_t _Atomic_wchar_t::fetch_or( + wchar_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline wchar_t _Atomic_wchar_t::fetch_xor( + wchar_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + +inline wchar_t _Atomic_wchar_t::fetch_xor( + wchar_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + + + +template<> + inline wchar_t atomic_fetch_add( + volatile atomic *_Atom, + wchar_t _Value) noexcept + { + return (atomic_fetch_add( + static_cast(_Atom), _Value)); + } + +template<> + inline wchar_t atomic_fetch_add(atomic *_Atom, + wchar_t _Value) noexcept + { + return (atomic_fetch_add(static_cast<_Atomic_wchar_t *>(_Atom), _Value)); + } + +template<> + inline wchar_t atomic_fetch_add_explicit( + volatile atomic *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline wchar_t atomic_fetch_add_explicit( + atomic *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast<_Atomic_wchar_t *>(_Atom), _Value, _Order)); + } + +template<> + inline wchar_t atomic_fetch_sub( + volatile atomic *_Atom, + wchar_t _Value) noexcept + { + return (atomic_fetch_sub( + static_cast(_Atom), _Value)); + } + +template<> + inline wchar_t atomic_fetch_sub(atomic *_Atom, + wchar_t _Value) noexcept + { + return (atomic_fetch_sub(static_cast<_Atomic_wchar_t *>(_Atom), _Value)); + } + +template<> + inline wchar_t atomic_fetch_sub_explicit( + volatile atomic *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline wchar_t atomic_fetch_sub_explicit( + atomic *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast<_Atomic_wchar_t *>(_Atom), _Value, _Order)); + } + +template<> + inline wchar_t atomic_fetch_and( + volatile atomic *_Atom, wchar_t _Value) noexcept + { + return (atomic_fetch_and( + static_cast(_Atom), _Value)); + } + +template<> + inline wchar_t atomic_fetch_and( + atomic *_Atom, wchar_t _Value) noexcept + { + return (atomic_fetch_and(static_cast<_Atomic_wchar_t *>(_Atom), _Value)); + } + +template<> + inline wchar_t atomic_fetch_and_explicit( + volatile atomic *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline wchar_t atomic_fetch_and_explicit( + atomic *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast<_Atomic_wchar_t *>(_Atom), _Value, _Order)); + } + +template<> + inline wchar_t atomic_fetch_or(volatile atomic *_Atom, + wchar_t _Value) noexcept + { + return (atomic_fetch_or( + static_cast(_Atom), _Value)); + } + +template<> + inline wchar_t atomic_fetch_or(atomic *_Atom, + wchar_t _Value) noexcept + { + return (atomic_fetch_or(static_cast<_Atomic_wchar_t *>(_Atom), _Value)); + } + +template<> + inline wchar_t atomic_fetch_or_explicit( + volatile atomic *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline wchar_t atomic_fetch_or_explicit( + atomic *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast<_Atomic_wchar_t *>(_Atom), _Value, _Order)); + } + +template<> + inline wchar_t atomic_fetch_xor(volatile atomic *_Atom, + wchar_t _Value) noexcept + { + return (atomic_fetch_xor( + static_cast(_Atom), _Value)); + } + +template<> + inline wchar_t atomic_fetch_xor(atomic *_Atom, + wchar_t _Value) noexcept + { + return (atomic_fetch_xor(static_cast<_Atomic_wchar_t *>(_Atom), _Value)); + } + +template<> + inline wchar_t atomic_fetch_xor_explicit( + volatile atomic *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline wchar_t atomic_fetch_xor_explicit( + atomic *_Atom, wchar_t _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast<_Atomic_wchar_t *>(_Atom), _Value, _Order)); + } +# 740 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +static_assert(2 == sizeof (short), + "_ISIZE and _ITYPE should match."); +# 70 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +typedef struct _Atomic_short + { + short operator=(short) volatile noexcept; + short operator=(short) noexcept; + + bool is_lock_free() const volatile noexcept; + bool is_lock_free() const noexcept; + void store(short, memory_order = memory_order_seq_cst) + volatile noexcept; + void store(short, memory_order = memory_order_seq_cst) + noexcept; + short load(memory_order = memory_order_seq_cst) + const volatile noexcept; + short load(memory_order = memory_order_seq_cst) + const noexcept; + operator short() const volatile noexcept; + operator short() const noexcept; + short exchange(short, + memory_order = memory_order_seq_cst) volatile noexcept; + short exchange(short, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_weak(short&, short, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_weak(short&, short, + memory_order, memory_order) noexcept; + bool compare_exchange_strong(short&, short, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_strong(short&, short, + memory_order, memory_order) noexcept; + bool compare_exchange_weak(short&, short, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_weak(short&, short, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_strong(short&, short, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_strong(short&, short, + memory_order = memory_order_seq_cst) noexcept; + + + short operator++(int) volatile noexcept; + short operator++(int) noexcept; + short operator--(int) volatile noexcept; + short operator--(int) noexcept; + short operator++() volatile noexcept; + short operator++() noexcept; + short operator--() volatile noexcept; + short operator--() noexcept; + short operator+=(short) volatile noexcept; + short operator+=(short) noexcept; + short operator-=(short) volatile noexcept; + short operator-=(short) noexcept; + short operator&=(short) volatile noexcept; + short operator&=(short) noexcept; + short operator|=(short) volatile noexcept; + short operator|=(short) noexcept; + short operator^=(short) volatile noexcept; + short operator^=(short) noexcept; + + short fetch_add(short, memory_order = memory_order_seq_cst) + volatile noexcept; + short fetch_add(short, memory_order = memory_order_seq_cst) noexcept; + short fetch_sub(short, memory_order = memory_order_seq_cst) + volatile noexcept; + short fetch_sub(short, memory_order = memory_order_seq_cst) noexcept; + short fetch_and(short, memory_order = memory_order_seq_cst) + volatile noexcept; + short fetch_and(short, memory_order = memory_order_seq_cst) noexcept; + short fetch_or(short, memory_order = memory_order_seq_cst) + volatile noexcept; + short fetch_or(short, memory_order = memory_order_seq_cst) noexcept; + short fetch_xor(short, memory_order = memory_order_seq_cst) + volatile noexcept; + short fetch_xor(short, memory_order = memory_order_seq_cst) noexcept; +# 169 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + alignas(sizeof(_Uint2_t)) _Uint2_t _My_val; + + + + + } _Atomic_short; + + + +template<> + struct atomic + : _Atomic_short + { + + atomic() noexcept = default; + + constexpr atomic(short _Val) noexcept + : _Atomic_short{(_Uint2_t)_Val} + { + } + + short operator=(short _Val) volatile noexcept + { + return (_Atomic_short::operator=(_Val)); + } + + short operator=(short _Val) noexcept + { + return (_Atomic_short::operator=(_Val)); + } + + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + }; +# 443 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline bool atomic_is_lock_free(const volatile _Atomic_short *) noexcept + { + return (_Atomic_is_lock_free_2()); + } + +inline bool atomic_is_lock_free(const _Atomic_short *) noexcept + { + return (_Atomic_is_lock_free_2()); + } + + +inline bool atomic_is_lock_free(const volatile atomic *) noexcept + { + return (_Atomic_is_lock_free_2()); + } + +inline bool atomic_is_lock_free(const atomic *) noexcept + { + return (_Atomic_is_lock_free_2()); + } + + + +inline void atomic_init(volatile _Atomic_short *_Atom, + short _Value) noexcept + { + _Atom->_My_val = (_Uint2_t)_Value; + + } + +inline void atomic_init(_Atomic_short *_Atom, + short _Value) noexcept + { + _Atom->_My_val = (_Uint2_t)_Value; + + } + + +inline void atomic_init(volatile atomic *_Atom, + short _Value) noexcept + { + _Atom->_My_val = (_Uint2_t)_Value; + + } + +inline void atomic_init(atomic *_Atom, + short _Value) noexcept + { + _Atom->_My_val = (_Uint2_t)_Value; + + } + + +inline void atomic_store_explicit( + volatile _Atomic_short *_Atom, short _Value, + memory_order _Order) noexcept + { + _Atomic_store_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order); + } + +inline void atomic_store_explicit( + _Atomic_short *_Atom, short _Value, + memory_order _Order) noexcept + { + _Atomic_store_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order); + } + +inline void atomic_store(volatile _Atomic_short *_Atom, + short _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void atomic_store(_Atomic_short *_Atom, + short _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline short atomic_load_explicit( + const volatile _Atomic_short *_Atom, memory_order _Order) noexcept + { + return ((short)_Atomic_load_2 ((_Uint2_t*)&_Atom->_My_val, _Order)); + } + +inline short atomic_load_explicit( + const _Atomic_short *_Atom, memory_order _Order) noexcept + { + return ((short)_Atomic_load_2 ((_Uint2_t*)&_Atom->_My_val, _Order)); + } + +inline short atomic_load( + const volatile _Atomic_short *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline short atomic_load( + const _Atomic_short *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline short atomic_exchange_explicit( + volatile _Atomic_short *_Atom, short _Value, + memory_order _Order) noexcept + { + return ((short)_Atomic_exchange_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline short atomic_exchange_explicit( + _Atomic_short *_Atom, short _Value, + memory_order _Order) noexcept + { + return ((short)_Atomic_exchange_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline short atomic_exchange(volatile _Atomic_short *_Atom, + short _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline short atomic_exchange(_Atomic_short *_Atom, + short _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak_explicit( + volatile _Atomic_short *_Atom, short *_Exp, short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t*)_Exp, (_Uint2_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak_explicit( + _Atomic_short *_Atom, short *_Exp, short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t*)_Exp, (_Uint2_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak( + volatile _Atomic_short *_Atom, short *_Exp, + short _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak( + _Atomic_short *_Atom, short *_Exp, + short _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong_explicit( + volatile _Atomic_short *_Atom, short *_Exp, short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t*)_Exp, (_Uint2_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong_explicit( + _Atomic_short *_Atom, short *_Exp, short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t*)_Exp, (_Uint2_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong( + volatile _Atomic_short *_Atom, short *_Exp, short _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong( + _Atomic_short *_Atom, short *_Exp, short _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + + +inline short _Atomic_short::operator=(short _Value) volatile noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline short _Atomic_short::operator=(short _Value) noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_short::is_lock_free() const volatile noexcept + { + return (atomic_is_lock_free(this)); + } + +inline bool _Atomic_short::is_lock_free() const noexcept + { + return (atomic_is_lock_free(this)); + } + +inline void _Atomic_short::store(short _Value, + memory_order _Order) volatile noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void _Atomic_short::store(short _Value, + memory_order _Order) noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline short _Atomic_short::load( + memory_order _Order) const volatile noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline short _Atomic_short::load( + memory_order _Order) const noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline _Atomic_short::operator short() const volatile noexcept + { + return (atomic_load(this)); + } + +inline _Atomic_short::operator short() const noexcept + { + return (atomic_load(this)); + } + +inline short _Atomic_short::exchange( + short _Value, memory_order _Order) volatile noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline short _Atomic_short::exchange( + short _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_short::compare_exchange_weak( + short& _Exp, short _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_short::compare_exchange_weak( + short& _Exp, short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_short::compare_exchange_weak( + short& _Exp, short _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_short::compare_exchange_weak( + short& _Exp, short _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_short::compare_exchange_strong( + short& _Exp, short _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_short::compare_exchange_strong( + short& _Exp, short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_short::compare_exchange_strong( + short& _Exp, short _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_short::compare_exchange_strong( + short& _Exp, short _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + + +template<> + inline bool atomic_is_lock_free( + const volatile atomic *_Atom) noexcept + { + return (atomic_is_lock_free( + static_cast(_Atom))); + } + +template<> + inline bool atomic_is_lock_free( + const atomic *_Atom) noexcept + { + return (atomic_is_lock_free(static_cast(_Atom))); + } + +template<> + inline void atomic_init(volatile atomic *_Atom, + short _Value) noexcept + { + atomic_init(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_init(atomic *_Atom, + short _Value) noexcept + { + atomic_init(static_cast<_Atomic_short *>(_Atom), _Value); + } + +template<> + inline void atomic_store(volatile atomic *_Atom, + short _Value) noexcept + { + atomic_store(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_store(atomic *_Atom, + short _Value) noexcept + { + atomic_store(static_cast<_Atomic_short *>(_Atom), _Value); + } + +template<> + inline void atomic_store_explicit(volatile atomic *_Atom, + short _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast(_Atom), + _Value, _Order); + } + +template<> + inline void atomic_store_explicit(atomic *_Atom, + short _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast<_Atomic_short *>(_Atom), + _Value, _Order); + } + +template<> + inline short atomic_load(const volatile atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline short atomic_load(const atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline short atomic_load_explicit( + const volatile atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline short atomic_load_explicit( + const atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline short atomic_exchange( + volatile atomic *_Atom, short _Value) noexcept + { + return (atomic_exchange( + static_cast(_Atom), _Value)); + } + +template<> + inline short atomic_exchange(atomic *_Atom, + short _Value) noexcept + { + return (atomic_exchange(static_cast<_Atomic_short *>(_Atom), _Value)); + } + +template<> + inline short atomic_exchange_explicit( + volatile atomic *_Atom, + short _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline short atomic_exchange_explicit(atomic *_Atom, + short _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(static_cast<_Atomic_short *>(_Atom), + _Value, _Order)); + } + +template<> + inline bool atomic_compare_exchange_weak( + volatile atomic *_Atom, short *_Exp, + short _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak( + atomic *_Atom, short *_Exp, + short _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast<_Atomic_short *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + volatile atomic *_Atom, short *_Exp, short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + atomic *_Atom, short *_Exp, short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast<_Atomic_short *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong( + volatile atomic *_Atom, short *_Exp, + short _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong( + atomic *_Atom, short *_Exp, + short _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast<_Atomic_short *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + volatile atomic *_Atom, short *_Exp, short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + atomic *_Atom, short *_Exp, short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast<_Atomic_short *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + + + + +inline short atomic_fetch_add_explicit( + volatile _Atomic_short *_Atom, short _Value, + memory_order _Order) noexcept + { + return ((short)_Atomic_fetch_add_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline short atomic_fetch_add_explicit( + _Atomic_short *_Atom, short _Value, + memory_order _Order) noexcept + { + return ((short)_Atomic_fetch_add_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline short atomic_fetch_add(volatile _Atomic_short *_Atom, + short _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline short atomic_fetch_add(_Atomic_short *_Atom, + short _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline short atomic_fetch_sub_explicit( + volatile _Atomic_short *_Atom, short _Value, + memory_order _Order) noexcept + { + return ((short)_Atomic_fetch_sub_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline short atomic_fetch_sub_explicit( + _Atomic_short *_Atom, short _Value, + memory_order _Order) noexcept + { + return ((short)_Atomic_fetch_sub_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline short atomic_fetch_sub(volatile _Atomic_short *_Atom, + short _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline short atomic_fetch_sub(_Atomic_short *_Atom, + short _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline short atomic_fetch_and_explicit( + volatile _Atomic_short *_Atom, short _Value, + memory_order _Order) noexcept + { + return ((short)_Atomic_fetch_and_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline short atomic_fetch_and_explicit( + _Atomic_short *_Atom, short _Value, + memory_order _Order) noexcept + { + return ((short)_Atomic_fetch_and_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline short atomic_fetch_and(volatile _Atomic_short *_Atom, + short _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline short atomic_fetch_and(_Atomic_short *_Atom, + short _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline short atomic_fetch_or_explicit( + volatile _Atomic_short *_Atom, short _Value, + memory_order _Order) noexcept + { + return ((short)_Atomic_fetch_or_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline short atomic_fetch_or_explicit( + _Atomic_short *_Atom, short _Value, + memory_order _Order) noexcept + { + return ((short)_Atomic_fetch_or_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline short atomic_fetch_or( + volatile _Atomic_short *_Atom, short _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline short atomic_fetch_or( + _Atomic_short *_Atom, short _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline short atomic_fetch_xor_explicit( + volatile _Atomic_short *_Atom, short _Value, + memory_order _Order) noexcept + { + return ((short)_Atomic_fetch_xor_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline short atomic_fetch_xor_explicit( + _Atomic_short *_Atom, short _Value, + memory_order _Order) noexcept + { + return ((short)_Atomic_fetch_xor_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline short atomic_fetch_xor( + volatile _Atomic_short *_Atom, short _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline short atomic_fetch_xor( + _Atomic_short *_Atom, short _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + + +inline short _Atomic_short::operator++(int) volatile noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline short _Atomic_short::operator++(int) noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline short _Atomic_short::operator--(int) volatile noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline short _Atomic_short::operator--(int) noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline short _Atomic_short::operator++() volatile noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline short _Atomic_short::operator++() noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline short _Atomic_short::operator--() volatile noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline short _Atomic_short::operator--() noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline short _Atomic_short::operator+=(short _Right) volatile noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline short _Atomic_short::operator+=(short _Right) noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline short _Atomic_short::operator-=(short _Right) volatile noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline short _Atomic_short::operator-=(short _Right) noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline short _Atomic_short::operator&=(short _Right) volatile noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline short _Atomic_short::operator&=(short _Right) noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline short _Atomic_short::operator|=(short _Right) volatile noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline short _Atomic_short::operator|=(short _Right) noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline short _Atomic_short::operator^=(short _Right) volatile noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline short _Atomic_short::operator^=(short _Right) noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline short _Atomic_short::fetch_add( + short _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline short _Atomic_short::fetch_add( + short _Value, memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline short _Atomic_short::fetch_sub( + short _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline short _Atomic_short::fetch_sub( + short _Value, memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline short _Atomic_short::fetch_and( + short _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline short _Atomic_short::fetch_and( + short _Value, memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline short _Atomic_short::fetch_or( + short _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline short _Atomic_short::fetch_or( + short _Value, memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline short _Atomic_short::fetch_xor( + short _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + +inline short _Atomic_short::fetch_xor( + short _Value, memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + + + +template<> + inline short atomic_fetch_add( + volatile atomic *_Atom, + short _Value) noexcept + { + return (atomic_fetch_add( + static_cast(_Atom), _Value)); + } + +template<> + inline short atomic_fetch_add(atomic *_Atom, + short _Value) noexcept + { + return (atomic_fetch_add(static_cast<_Atomic_short *>(_Atom), _Value)); + } + +template<> + inline short atomic_fetch_add_explicit( + volatile atomic *_Atom, short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline short atomic_fetch_add_explicit( + atomic *_Atom, short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast<_Atomic_short *>(_Atom), _Value, _Order)); + } + +template<> + inline short atomic_fetch_sub( + volatile atomic *_Atom, + short _Value) noexcept + { + return (atomic_fetch_sub( + static_cast(_Atom), _Value)); + } + +template<> + inline short atomic_fetch_sub(atomic *_Atom, + short _Value) noexcept + { + return (atomic_fetch_sub(static_cast<_Atomic_short *>(_Atom), _Value)); + } + +template<> + inline short atomic_fetch_sub_explicit( + volatile atomic *_Atom, short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline short atomic_fetch_sub_explicit( + atomic *_Atom, short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast<_Atomic_short *>(_Atom), _Value, _Order)); + } + +template<> + inline short atomic_fetch_and( + volatile atomic *_Atom, short _Value) noexcept + { + return (atomic_fetch_and( + static_cast(_Atom), _Value)); + } + +template<> + inline short atomic_fetch_and( + atomic *_Atom, short _Value) noexcept + { + return (atomic_fetch_and(static_cast<_Atomic_short *>(_Atom), _Value)); + } + +template<> + inline short atomic_fetch_and_explicit( + volatile atomic *_Atom, short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline short atomic_fetch_and_explicit( + atomic *_Atom, short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast<_Atomic_short *>(_Atom), _Value, _Order)); + } + +template<> + inline short atomic_fetch_or(volatile atomic *_Atom, + short _Value) noexcept + { + return (atomic_fetch_or( + static_cast(_Atom), _Value)); + } + +template<> + inline short atomic_fetch_or(atomic *_Atom, + short _Value) noexcept + { + return (atomic_fetch_or(static_cast<_Atomic_short *>(_Atom), _Value)); + } + +template<> + inline short atomic_fetch_or_explicit( + volatile atomic *_Atom, short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline short atomic_fetch_or_explicit( + atomic *_Atom, short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast<_Atomic_short *>(_Atom), _Value, _Order)); + } + +template<> + inline short atomic_fetch_xor(volatile atomic *_Atom, + short _Value) noexcept + { + return (atomic_fetch_xor( + static_cast(_Atom), _Value)); + } + +template<> + inline short atomic_fetch_xor(atomic *_Atom, + short _Value) noexcept + { + return (atomic_fetch_xor(static_cast<_Atomic_short *>(_Atom), _Value)); + } + +template<> + inline short atomic_fetch_xor_explicit( + volatile atomic *_Atom, short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline short atomic_fetch_xor_explicit( + atomic *_Atom, short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast<_Atomic_short *>(_Atom), _Value, _Order)); + } +# 746 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +static_assert(2 == sizeof (unsigned short), + "_ISIZE and _ITYPE should match."); +# 70 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +typedef struct _Atomic_ushort + { + unsigned short operator=(unsigned short) volatile noexcept; + unsigned short operator=(unsigned short) noexcept; + + bool is_lock_free() const volatile noexcept; + bool is_lock_free() const noexcept; + void store(unsigned short, memory_order = memory_order_seq_cst) + volatile noexcept; + void store(unsigned short, memory_order = memory_order_seq_cst) + noexcept; + unsigned short load(memory_order = memory_order_seq_cst) + const volatile noexcept; + unsigned short load(memory_order = memory_order_seq_cst) + const noexcept; + operator unsigned short() const volatile noexcept; + operator unsigned short() const noexcept; + unsigned short exchange(unsigned short, + memory_order = memory_order_seq_cst) volatile noexcept; + unsigned short exchange(unsigned short, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_weak(unsigned short&, unsigned short, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_weak(unsigned short&, unsigned short, + memory_order, memory_order) noexcept; + bool compare_exchange_strong(unsigned short&, unsigned short, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_strong(unsigned short&, unsigned short, + memory_order, memory_order) noexcept; + bool compare_exchange_weak(unsigned short&, unsigned short, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_weak(unsigned short&, unsigned short, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_strong(unsigned short&, unsigned short, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_strong(unsigned short&, unsigned short, + memory_order = memory_order_seq_cst) noexcept; + + + unsigned short operator++(int) volatile noexcept; + unsigned short operator++(int) noexcept; + unsigned short operator--(int) volatile noexcept; + unsigned short operator--(int) noexcept; + unsigned short operator++() volatile noexcept; + unsigned short operator++() noexcept; + unsigned short operator--() volatile noexcept; + unsigned short operator--() noexcept; + unsigned short operator+=(unsigned short) volatile noexcept; + unsigned short operator+=(unsigned short) noexcept; + unsigned short operator-=(unsigned short) volatile noexcept; + unsigned short operator-=(unsigned short) noexcept; + unsigned short operator&=(unsigned short) volatile noexcept; + unsigned short operator&=(unsigned short) noexcept; + unsigned short operator|=(unsigned short) volatile noexcept; + unsigned short operator|=(unsigned short) noexcept; + unsigned short operator^=(unsigned short) volatile noexcept; + unsigned short operator^=(unsigned short) noexcept; + + unsigned short fetch_add(unsigned short, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned short fetch_add(unsigned short, memory_order = memory_order_seq_cst) noexcept; + unsigned short fetch_sub(unsigned short, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned short fetch_sub(unsigned short, memory_order = memory_order_seq_cst) noexcept; + unsigned short fetch_and(unsigned short, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned short fetch_and(unsigned short, memory_order = memory_order_seq_cst) noexcept; + unsigned short fetch_or(unsigned short, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned short fetch_or(unsigned short, memory_order = memory_order_seq_cst) noexcept; + unsigned short fetch_xor(unsigned short, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned short fetch_xor(unsigned short, memory_order = memory_order_seq_cst) noexcept; +# 169 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + alignas(sizeof(_Uint2_t)) _Uint2_t _My_val; + + + + + } _Atomic_ushort; + + + +template<> + struct atomic + : _Atomic_ushort + { + + atomic() noexcept = default; + + constexpr atomic(unsigned short _Val) noexcept + : _Atomic_ushort{(_Uint2_t)_Val} + { + } + + unsigned short operator=(unsigned short _Val) volatile noexcept + { + return (_Atomic_ushort::operator=(_Val)); + } + + unsigned short operator=(unsigned short _Val) noexcept + { + return (_Atomic_ushort::operator=(_Val)); + } + + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + }; +# 443 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline bool atomic_is_lock_free(const volatile _Atomic_ushort *) noexcept + { + return (_Atomic_is_lock_free_2()); + } + +inline bool atomic_is_lock_free(const _Atomic_ushort *) noexcept + { + return (_Atomic_is_lock_free_2()); + } + + +inline bool atomic_is_lock_free(const volatile atomic *) noexcept + { + return (_Atomic_is_lock_free_2()); + } + +inline bool atomic_is_lock_free(const atomic *) noexcept + { + return (_Atomic_is_lock_free_2()); + } + + + +inline void atomic_init(volatile _Atomic_ushort *_Atom, + unsigned short _Value) noexcept + { + _Atom->_My_val = (_Uint2_t)_Value; + + } + +inline void atomic_init(_Atomic_ushort *_Atom, + unsigned short _Value) noexcept + { + _Atom->_My_val = (_Uint2_t)_Value; + + } + + +inline void atomic_init(volatile atomic *_Atom, + unsigned short _Value) noexcept + { + _Atom->_My_val = (_Uint2_t)_Value; + + } + +inline void atomic_init(atomic *_Atom, + unsigned short _Value) noexcept + { + _Atom->_My_val = (_Uint2_t)_Value; + + } + + +inline void atomic_store_explicit( + volatile _Atomic_ushort *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + _Atomic_store_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order); + } + +inline void atomic_store_explicit( + _Atomic_ushort *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + _Atomic_store_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order); + } + +inline void atomic_store(volatile _Atomic_ushort *_Atom, + unsigned short _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void atomic_store(_Atomic_ushort *_Atom, + unsigned short _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline unsigned short atomic_load_explicit( + const volatile _Atomic_ushort *_Atom, memory_order _Order) noexcept + { + return ((unsigned short)_Atomic_load_2 ((_Uint2_t*)&_Atom->_My_val, _Order)); + } + +inline unsigned short atomic_load_explicit( + const _Atomic_ushort *_Atom, memory_order _Order) noexcept + { + return ((unsigned short)_Atomic_load_2 ((_Uint2_t*)&_Atom->_My_val, _Order)); + } + +inline unsigned short atomic_load( + const volatile _Atomic_ushort *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline unsigned short atomic_load( + const _Atomic_ushort *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline unsigned short atomic_exchange_explicit( + volatile _Atomic_ushort *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return ((unsigned short)_Atomic_exchange_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline unsigned short atomic_exchange_explicit( + _Atomic_ushort *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return ((unsigned short)_Atomic_exchange_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline unsigned short atomic_exchange(volatile _Atomic_ushort *_Atom, + unsigned short _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned short atomic_exchange(_Atomic_ushort *_Atom, + unsigned short _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak_explicit( + volatile _Atomic_ushort *_Atom, unsigned short *_Exp, unsigned short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t*)_Exp, (_Uint2_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak_explicit( + _Atomic_ushort *_Atom, unsigned short *_Exp, unsigned short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t*)_Exp, (_Uint2_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak( + volatile _Atomic_ushort *_Atom, unsigned short *_Exp, + unsigned short _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak( + _Atomic_ushort *_Atom, unsigned short *_Exp, + unsigned short _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong_explicit( + volatile _Atomic_ushort *_Atom, unsigned short *_Exp, unsigned short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t*)_Exp, (_Uint2_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong_explicit( + _Atomic_ushort *_Atom, unsigned short *_Exp, unsigned short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t*)_Exp, (_Uint2_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong( + volatile _Atomic_ushort *_Atom, unsigned short *_Exp, unsigned short _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong( + _Atomic_ushort *_Atom, unsigned short *_Exp, unsigned short _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + + +inline unsigned short _Atomic_ushort::operator=(unsigned short _Value) volatile noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline unsigned short _Atomic_ushort::operator=(unsigned short _Value) noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_ushort::is_lock_free() const volatile noexcept + { + return (atomic_is_lock_free(this)); + } + +inline bool _Atomic_ushort::is_lock_free() const noexcept + { + return (atomic_is_lock_free(this)); + } + +inline void _Atomic_ushort::store(unsigned short _Value, + memory_order _Order) volatile noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void _Atomic_ushort::store(unsigned short _Value, + memory_order _Order) noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline unsigned short _Atomic_ushort::load( + memory_order _Order) const volatile noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline unsigned short _Atomic_ushort::load( + memory_order _Order) const noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline _Atomic_ushort::operator unsigned short() const volatile noexcept + { + return (atomic_load(this)); + } + +inline _Atomic_ushort::operator unsigned short() const noexcept + { + return (atomic_load(this)); + } + +inline unsigned short _Atomic_ushort::exchange( + unsigned short _Value, memory_order _Order) volatile noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline unsigned short _Atomic_ushort::exchange( + unsigned short _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_ushort::compare_exchange_weak( + unsigned short& _Exp, unsigned short _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_ushort::compare_exchange_weak( + unsigned short& _Exp, unsigned short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_ushort::compare_exchange_weak( + unsigned short& _Exp, unsigned short _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_ushort::compare_exchange_weak( + unsigned short& _Exp, unsigned short _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_ushort::compare_exchange_strong( + unsigned short& _Exp, unsigned short _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_ushort::compare_exchange_strong( + unsigned short& _Exp, unsigned short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_ushort::compare_exchange_strong( + unsigned short& _Exp, unsigned short _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_ushort::compare_exchange_strong( + unsigned short& _Exp, unsigned short _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + + +template<> + inline bool atomic_is_lock_free( + const volatile atomic *_Atom) noexcept + { + return (atomic_is_lock_free( + static_cast(_Atom))); + } + +template<> + inline bool atomic_is_lock_free( + const atomic *_Atom) noexcept + { + return (atomic_is_lock_free(static_cast(_Atom))); + } + +template<> + inline void atomic_init(volatile atomic *_Atom, + unsigned short _Value) noexcept + { + atomic_init(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_init(atomic *_Atom, + unsigned short _Value) noexcept + { + atomic_init(static_cast<_Atomic_ushort *>(_Atom), _Value); + } + +template<> + inline void atomic_store(volatile atomic *_Atom, + unsigned short _Value) noexcept + { + atomic_store(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_store(atomic *_Atom, + unsigned short _Value) noexcept + { + atomic_store(static_cast<_Atomic_ushort *>(_Atom), _Value); + } + +template<> + inline void atomic_store_explicit(volatile atomic *_Atom, + unsigned short _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast(_Atom), + _Value, _Order); + } + +template<> + inline void atomic_store_explicit(atomic *_Atom, + unsigned short _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast<_Atomic_ushort *>(_Atom), + _Value, _Order); + } + +template<> + inline unsigned short atomic_load(const volatile atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline unsigned short atomic_load(const atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline unsigned short atomic_load_explicit( + const volatile atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline unsigned short atomic_load_explicit( + const atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline unsigned short atomic_exchange( + volatile atomic *_Atom, unsigned short _Value) noexcept + { + return (atomic_exchange( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned short atomic_exchange(atomic *_Atom, + unsigned short _Value) noexcept + { + return (atomic_exchange(static_cast<_Atomic_ushort *>(_Atom), _Value)); + } + +template<> + inline unsigned short atomic_exchange_explicit( + volatile atomic *_Atom, + unsigned short _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned short atomic_exchange_explicit(atomic *_Atom, + unsigned short _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(static_cast<_Atomic_ushort *>(_Atom), + _Value, _Order)); + } + +template<> + inline bool atomic_compare_exchange_weak( + volatile atomic *_Atom, unsigned short *_Exp, + unsigned short _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak( + atomic *_Atom, unsigned short *_Exp, + unsigned short _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast<_Atomic_ushort *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + volatile atomic *_Atom, unsigned short *_Exp, unsigned short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + atomic *_Atom, unsigned short *_Exp, unsigned short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast<_Atomic_ushort *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong( + volatile atomic *_Atom, unsigned short *_Exp, + unsigned short _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong( + atomic *_Atom, unsigned short *_Exp, + unsigned short _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast<_Atomic_ushort *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + volatile atomic *_Atom, unsigned short *_Exp, unsigned short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + atomic *_Atom, unsigned short *_Exp, unsigned short _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast<_Atomic_ushort *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + + + + +inline unsigned short atomic_fetch_add_explicit( + volatile _Atomic_ushort *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return ((unsigned short)_Atomic_fetch_add_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline unsigned short atomic_fetch_add_explicit( + _Atomic_ushort *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return ((unsigned short)_Atomic_fetch_add_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline unsigned short atomic_fetch_add(volatile _Atomic_ushort *_Atom, + unsigned short _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned short atomic_fetch_add(_Atomic_ushort *_Atom, + unsigned short _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned short atomic_fetch_sub_explicit( + volatile _Atomic_ushort *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return ((unsigned short)_Atomic_fetch_sub_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline unsigned short atomic_fetch_sub_explicit( + _Atomic_ushort *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return ((unsigned short)_Atomic_fetch_sub_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline unsigned short atomic_fetch_sub(volatile _Atomic_ushort *_Atom, + unsigned short _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned short atomic_fetch_sub(_Atomic_ushort *_Atom, + unsigned short _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned short atomic_fetch_and_explicit( + volatile _Atomic_ushort *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return ((unsigned short)_Atomic_fetch_and_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline unsigned short atomic_fetch_and_explicit( + _Atomic_ushort *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return ((unsigned short)_Atomic_fetch_and_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline unsigned short atomic_fetch_and(volatile _Atomic_ushort *_Atom, + unsigned short _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned short atomic_fetch_and(_Atomic_ushort *_Atom, + unsigned short _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned short atomic_fetch_or_explicit( + volatile _Atomic_ushort *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return ((unsigned short)_Atomic_fetch_or_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline unsigned short atomic_fetch_or_explicit( + _Atomic_ushort *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return ((unsigned short)_Atomic_fetch_or_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline unsigned short atomic_fetch_or( + volatile _Atomic_ushort *_Atom, unsigned short _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned short atomic_fetch_or( + _Atomic_ushort *_Atom, unsigned short _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned short atomic_fetch_xor_explicit( + volatile _Atomic_ushort *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return ((unsigned short)_Atomic_fetch_xor_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline unsigned short atomic_fetch_xor_explicit( + _Atomic_ushort *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return ((unsigned short)_Atomic_fetch_xor_2 ((_Uint2_t*)&_Atom->_My_val, (_Uint2_t)_Value, _Order)); + } + +inline unsigned short atomic_fetch_xor( + volatile _Atomic_ushort *_Atom, unsigned short _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned short atomic_fetch_xor( + _Atomic_ushort *_Atom, unsigned short _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + + +inline unsigned short _Atomic_ushort::operator++(int) volatile noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline unsigned short _Atomic_ushort::operator++(int) noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline unsigned short _Atomic_ushort::operator--(int) volatile noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline unsigned short _Atomic_ushort::operator--(int) noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline unsigned short _Atomic_ushort::operator++() volatile noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline unsigned short _Atomic_ushort::operator++() noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline unsigned short _Atomic_ushort::operator--() volatile noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline unsigned short _Atomic_ushort::operator--() noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline unsigned short _Atomic_ushort::operator+=(unsigned short _Right) volatile noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline unsigned short _Atomic_ushort::operator+=(unsigned short _Right) noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline unsigned short _Atomic_ushort::operator-=(unsigned short _Right) volatile noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline unsigned short _Atomic_ushort::operator-=(unsigned short _Right) noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline unsigned short _Atomic_ushort::operator&=(unsigned short _Right) volatile noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline unsigned short _Atomic_ushort::operator&=(unsigned short _Right) noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline unsigned short _Atomic_ushort::operator|=(unsigned short _Right) volatile noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline unsigned short _Atomic_ushort::operator|=(unsigned short _Right) noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline unsigned short _Atomic_ushort::operator^=(unsigned short _Right) volatile noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline unsigned short _Atomic_ushort::operator^=(unsigned short _Right) noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline unsigned short _Atomic_ushort::fetch_add( + unsigned short _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline unsigned short _Atomic_ushort::fetch_add( + unsigned short _Value, memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline unsigned short _Atomic_ushort::fetch_sub( + unsigned short _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline unsigned short _Atomic_ushort::fetch_sub( + unsigned short _Value, memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline unsigned short _Atomic_ushort::fetch_and( + unsigned short _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline unsigned short _Atomic_ushort::fetch_and( + unsigned short _Value, memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline unsigned short _Atomic_ushort::fetch_or( + unsigned short _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline unsigned short _Atomic_ushort::fetch_or( + unsigned short _Value, memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline unsigned short _Atomic_ushort::fetch_xor( + unsigned short _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + +inline unsigned short _Atomic_ushort::fetch_xor( + unsigned short _Value, memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + + + +template<> + inline unsigned short atomic_fetch_add( + volatile atomic *_Atom, + unsigned short _Value) noexcept + { + return (atomic_fetch_add( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned short atomic_fetch_add(atomic *_Atom, + unsigned short _Value) noexcept + { + return (atomic_fetch_add(static_cast<_Atomic_ushort *>(_Atom), _Value)); + } + +template<> + inline unsigned short atomic_fetch_add_explicit( + volatile atomic *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned short atomic_fetch_add_explicit( + atomic *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast<_Atomic_ushort *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned short atomic_fetch_sub( + volatile atomic *_Atom, + unsigned short _Value) noexcept + { + return (atomic_fetch_sub( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned short atomic_fetch_sub(atomic *_Atom, + unsigned short _Value) noexcept + { + return (atomic_fetch_sub(static_cast<_Atomic_ushort *>(_Atom), _Value)); + } + +template<> + inline unsigned short atomic_fetch_sub_explicit( + volatile atomic *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned short atomic_fetch_sub_explicit( + atomic *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast<_Atomic_ushort *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned short atomic_fetch_and( + volatile atomic *_Atom, unsigned short _Value) noexcept + { + return (atomic_fetch_and( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned short atomic_fetch_and( + atomic *_Atom, unsigned short _Value) noexcept + { + return (atomic_fetch_and(static_cast<_Atomic_ushort *>(_Atom), _Value)); + } + +template<> + inline unsigned short atomic_fetch_and_explicit( + volatile atomic *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned short atomic_fetch_and_explicit( + atomic *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast<_Atomic_ushort *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned short atomic_fetch_or(volatile atomic *_Atom, + unsigned short _Value) noexcept + { + return (atomic_fetch_or( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned short atomic_fetch_or(atomic *_Atom, + unsigned short _Value) noexcept + { + return (atomic_fetch_or(static_cast<_Atomic_ushort *>(_Atom), _Value)); + } + +template<> + inline unsigned short atomic_fetch_or_explicit( + volatile atomic *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned short atomic_fetch_or_explicit( + atomic *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast<_Atomic_ushort *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned short atomic_fetch_xor(volatile atomic *_Atom, + unsigned short _Value) noexcept + { + return (atomic_fetch_xor( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned short atomic_fetch_xor(atomic *_Atom, + unsigned short _Value) noexcept + { + return (atomic_fetch_xor(static_cast<_Atomic_ushort *>(_Atom), _Value)); + } + +template<> + inline unsigned short atomic_fetch_xor_explicit( + volatile atomic *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned short atomic_fetch_xor_explicit( + atomic *_Atom, unsigned short _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast<_Atomic_ushort *>(_Atom), _Value, _Order)); + } +# 752 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +static_assert(4 == sizeof (int), + "_ISIZE and _ITYPE should match."); +# 70 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +typedef struct _Atomic_int + { + int operator=(int) volatile noexcept; + int operator=(int) noexcept; + + bool is_lock_free() const volatile noexcept; + bool is_lock_free() const noexcept; + void store(int, memory_order = memory_order_seq_cst) + volatile noexcept; + void store(int, memory_order = memory_order_seq_cst) + noexcept; + int load(memory_order = memory_order_seq_cst) + const volatile noexcept; + int load(memory_order = memory_order_seq_cst) + const noexcept; + operator int() const volatile noexcept; + operator int() const noexcept; + int exchange(int, + memory_order = memory_order_seq_cst) volatile noexcept; + int exchange(int, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_weak(int&, int, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_weak(int&, int, + memory_order, memory_order) noexcept; + bool compare_exchange_strong(int&, int, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_strong(int&, int, + memory_order, memory_order) noexcept; + bool compare_exchange_weak(int&, int, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_weak(int&, int, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_strong(int&, int, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_strong(int&, int, + memory_order = memory_order_seq_cst) noexcept; + + + int operator++(int) volatile noexcept; + int operator++(int) noexcept; + int operator--(int) volatile noexcept; + int operator--(int) noexcept; + int operator++() volatile noexcept; + int operator++() noexcept; + int operator--() volatile noexcept; + int operator--() noexcept; + int operator+=(int) volatile noexcept; + int operator+=(int) noexcept; + int operator-=(int) volatile noexcept; + int operator-=(int) noexcept; + int operator&=(int) volatile noexcept; + int operator&=(int) noexcept; + int operator|=(int) volatile noexcept; + int operator|=(int) noexcept; + int operator^=(int) volatile noexcept; + int operator^=(int) noexcept; + + int fetch_add(int, memory_order = memory_order_seq_cst) + volatile noexcept; + int fetch_add(int, memory_order = memory_order_seq_cst) noexcept; + int fetch_sub(int, memory_order = memory_order_seq_cst) + volatile noexcept; + int fetch_sub(int, memory_order = memory_order_seq_cst) noexcept; + int fetch_and(int, memory_order = memory_order_seq_cst) + volatile noexcept; + int fetch_and(int, memory_order = memory_order_seq_cst) noexcept; + int fetch_or(int, memory_order = memory_order_seq_cst) + volatile noexcept; + int fetch_or(int, memory_order = memory_order_seq_cst) noexcept; + int fetch_xor(int, memory_order = memory_order_seq_cst) + volatile noexcept; + int fetch_xor(int, memory_order = memory_order_seq_cst) noexcept; +# 169 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + alignas(sizeof(_Uint4_t)) _Uint4_t _My_val; + + + + + } _Atomic_int; + + + +template<> + struct atomic + : _Atomic_int + { + + atomic() noexcept = default; + + constexpr atomic(int _Val) noexcept + : _Atomic_int{(_Uint4_t)_Val} + { + } + + int operator=(int _Val) volatile noexcept + { + return (_Atomic_int::operator=(_Val)); + } + + int operator=(int _Val) noexcept + { + return (_Atomic_int::operator=(_Val)); + } + + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + }; +# 443 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline bool atomic_is_lock_free(const volatile _Atomic_int *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + +inline bool atomic_is_lock_free(const _Atomic_int *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + + +inline bool atomic_is_lock_free(const volatile atomic *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + +inline bool atomic_is_lock_free(const atomic *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + + + +inline void atomic_init(volatile _Atomic_int *_Atom, + int _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + +inline void atomic_init(_Atomic_int *_Atom, + int _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + + +inline void atomic_init(volatile atomic *_Atom, + int _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + +inline void atomic_init(atomic *_Atom, + int _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + + +inline void atomic_store_explicit( + volatile _Atomic_int *_Atom, int _Value, + memory_order _Order) noexcept + { + _Atomic_store_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order); + } + +inline void atomic_store_explicit( + _Atomic_int *_Atom, int _Value, + memory_order _Order) noexcept + { + _Atomic_store_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order); + } + +inline void atomic_store(volatile _Atomic_int *_Atom, + int _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void atomic_store(_Atomic_int *_Atom, + int _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline int atomic_load_explicit( + const volatile _Atomic_int *_Atom, memory_order _Order) noexcept + { + return ((int)_Atomic_load_4 ((_Uint4_t*)&_Atom->_My_val, _Order)); + } + +inline int atomic_load_explicit( + const _Atomic_int *_Atom, memory_order _Order) noexcept + { + return ((int)_Atomic_load_4 ((_Uint4_t*)&_Atom->_My_val, _Order)); + } + +inline int atomic_load( + const volatile _Atomic_int *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline int atomic_load( + const _Atomic_int *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline int atomic_exchange_explicit( + volatile _Atomic_int *_Atom, int _Value, + memory_order _Order) noexcept + { + return ((int)_Atomic_exchange_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline int atomic_exchange_explicit( + _Atomic_int *_Atom, int _Value, + memory_order _Order) noexcept + { + return ((int)_Atomic_exchange_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline int atomic_exchange(volatile _Atomic_int *_Atom, + int _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline int atomic_exchange(_Atomic_int *_Atom, + int _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak_explicit( + volatile _Atomic_int *_Atom, int *_Exp, int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak_explicit( + _Atomic_int *_Atom, int *_Exp, int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak( + volatile _Atomic_int *_Atom, int *_Exp, + int _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak( + _Atomic_int *_Atom, int *_Exp, + int _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong_explicit( + volatile _Atomic_int *_Atom, int *_Exp, int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong_explicit( + _Atomic_int *_Atom, int *_Exp, int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong( + volatile _Atomic_int *_Atom, int *_Exp, int _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong( + _Atomic_int *_Atom, int *_Exp, int _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + + +inline int _Atomic_int::operator=(int _Value) volatile noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline int _Atomic_int::operator=(int _Value) noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_int::is_lock_free() const volatile noexcept + { + return (atomic_is_lock_free(this)); + } + +inline bool _Atomic_int::is_lock_free() const noexcept + { + return (atomic_is_lock_free(this)); + } + +inline void _Atomic_int::store(int _Value, + memory_order _Order) volatile noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void _Atomic_int::store(int _Value, + memory_order _Order) noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline int _Atomic_int::load( + memory_order _Order) const volatile noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline int _Atomic_int::load( + memory_order _Order) const noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline _Atomic_int::operator int() const volatile noexcept + { + return (atomic_load(this)); + } + +inline _Atomic_int::operator int() const noexcept + { + return (atomic_load(this)); + } + +inline int _Atomic_int::exchange( + int _Value, memory_order _Order) volatile noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline int _Atomic_int::exchange( + int _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_int::compare_exchange_weak( + int& _Exp, int _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_int::compare_exchange_weak( + int& _Exp, int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_int::compare_exchange_weak( + int& _Exp, int _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_int::compare_exchange_weak( + int& _Exp, int _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_int::compare_exchange_strong( + int& _Exp, int _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_int::compare_exchange_strong( + int& _Exp, int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_int::compare_exchange_strong( + int& _Exp, int _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_int::compare_exchange_strong( + int& _Exp, int _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + + +template<> + inline bool atomic_is_lock_free( + const volatile atomic *_Atom) noexcept + { + return (atomic_is_lock_free( + static_cast(_Atom))); + } + +template<> + inline bool atomic_is_lock_free( + const atomic *_Atom) noexcept + { + return (atomic_is_lock_free(static_cast(_Atom))); + } + +template<> + inline void atomic_init(volatile atomic *_Atom, + int _Value) noexcept + { + atomic_init(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_init(atomic *_Atom, + int _Value) noexcept + { + atomic_init(static_cast<_Atomic_int *>(_Atom), _Value); + } + +template<> + inline void atomic_store(volatile atomic *_Atom, + int _Value) noexcept + { + atomic_store(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_store(atomic *_Atom, + int _Value) noexcept + { + atomic_store(static_cast<_Atomic_int *>(_Atom), _Value); + } + +template<> + inline void atomic_store_explicit(volatile atomic *_Atom, + int _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast(_Atom), + _Value, _Order); + } + +template<> + inline void atomic_store_explicit(atomic *_Atom, + int _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast<_Atomic_int *>(_Atom), + _Value, _Order); + } + +template<> + inline int atomic_load(const volatile atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline int atomic_load(const atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline int atomic_load_explicit( + const volatile atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline int atomic_load_explicit( + const atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline int atomic_exchange( + volatile atomic *_Atom, int _Value) noexcept + { + return (atomic_exchange( + static_cast(_Atom), _Value)); + } + +template<> + inline int atomic_exchange(atomic *_Atom, + int _Value) noexcept + { + return (atomic_exchange(static_cast<_Atomic_int *>(_Atom), _Value)); + } + +template<> + inline int atomic_exchange_explicit( + volatile atomic *_Atom, + int _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline int atomic_exchange_explicit(atomic *_Atom, + int _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(static_cast<_Atomic_int *>(_Atom), + _Value, _Order)); + } + +template<> + inline bool atomic_compare_exchange_weak( + volatile atomic *_Atom, int *_Exp, + int _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak( + atomic *_Atom, int *_Exp, + int _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast<_Atomic_int *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + volatile atomic *_Atom, int *_Exp, int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + atomic *_Atom, int *_Exp, int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast<_Atomic_int *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong( + volatile atomic *_Atom, int *_Exp, + int _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong( + atomic *_Atom, int *_Exp, + int _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast<_Atomic_int *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + volatile atomic *_Atom, int *_Exp, int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + atomic *_Atom, int *_Exp, int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast<_Atomic_int *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + + + + +inline int atomic_fetch_add_explicit( + volatile _Atomic_int *_Atom, int _Value, + memory_order _Order) noexcept + { + return ((int)_Atomic_fetch_add_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline int atomic_fetch_add_explicit( + _Atomic_int *_Atom, int _Value, + memory_order _Order) noexcept + { + return ((int)_Atomic_fetch_add_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline int atomic_fetch_add(volatile _Atomic_int *_Atom, + int _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline int atomic_fetch_add(_Atomic_int *_Atom, + int _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline int atomic_fetch_sub_explicit( + volatile _Atomic_int *_Atom, int _Value, + memory_order _Order) noexcept + { + return ((int)_Atomic_fetch_sub_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline int atomic_fetch_sub_explicit( + _Atomic_int *_Atom, int _Value, + memory_order _Order) noexcept + { + return ((int)_Atomic_fetch_sub_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline int atomic_fetch_sub(volatile _Atomic_int *_Atom, + int _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline int atomic_fetch_sub(_Atomic_int *_Atom, + int _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline int atomic_fetch_and_explicit( + volatile _Atomic_int *_Atom, int _Value, + memory_order _Order) noexcept + { + return ((int)_Atomic_fetch_and_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline int atomic_fetch_and_explicit( + _Atomic_int *_Atom, int _Value, + memory_order _Order) noexcept + { + return ((int)_Atomic_fetch_and_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline int atomic_fetch_and(volatile _Atomic_int *_Atom, + int _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline int atomic_fetch_and(_Atomic_int *_Atom, + int _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline int atomic_fetch_or_explicit( + volatile _Atomic_int *_Atom, int _Value, + memory_order _Order) noexcept + { + return ((int)_Atomic_fetch_or_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline int atomic_fetch_or_explicit( + _Atomic_int *_Atom, int _Value, + memory_order _Order) noexcept + { + return ((int)_Atomic_fetch_or_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline int atomic_fetch_or( + volatile _Atomic_int *_Atom, int _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline int atomic_fetch_or( + _Atomic_int *_Atom, int _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline int atomic_fetch_xor_explicit( + volatile _Atomic_int *_Atom, int _Value, + memory_order _Order) noexcept + { + return ((int)_Atomic_fetch_xor_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline int atomic_fetch_xor_explicit( + _Atomic_int *_Atom, int _Value, + memory_order _Order) noexcept + { + return ((int)_Atomic_fetch_xor_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline int atomic_fetch_xor( + volatile _Atomic_int *_Atom, int _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline int atomic_fetch_xor( + _Atomic_int *_Atom, int _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + + +inline int _Atomic_int::operator++(int) volatile noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline int _Atomic_int::operator++(int) noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline int _Atomic_int::operator--(int) volatile noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline int _Atomic_int::operator--(int) noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline int _Atomic_int::operator++() volatile noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline int _Atomic_int::operator++() noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline int _Atomic_int::operator--() volatile noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline int _Atomic_int::operator--() noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline int _Atomic_int::operator+=(int _Right) volatile noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline int _Atomic_int::operator+=(int _Right) noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline int _Atomic_int::operator-=(int _Right) volatile noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline int _Atomic_int::operator-=(int _Right) noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline int _Atomic_int::operator&=(int _Right) volatile noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline int _Atomic_int::operator&=(int _Right) noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline int _Atomic_int::operator|=(int _Right) volatile noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline int _Atomic_int::operator|=(int _Right) noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline int _Atomic_int::operator^=(int _Right) volatile noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline int _Atomic_int::operator^=(int _Right) noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline int _Atomic_int::fetch_add( + int _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline int _Atomic_int::fetch_add( + int _Value, memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline int _Atomic_int::fetch_sub( + int _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline int _Atomic_int::fetch_sub( + int _Value, memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline int _Atomic_int::fetch_and( + int _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline int _Atomic_int::fetch_and( + int _Value, memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline int _Atomic_int::fetch_or( + int _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline int _Atomic_int::fetch_or( + int _Value, memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline int _Atomic_int::fetch_xor( + int _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + +inline int _Atomic_int::fetch_xor( + int _Value, memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + + + +template<> + inline int atomic_fetch_add( + volatile atomic *_Atom, + int _Value) noexcept + { + return (atomic_fetch_add( + static_cast(_Atom), _Value)); + } + +template<> + inline int atomic_fetch_add(atomic *_Atom, + int _Value) noexcept + { + return (atomic_fetch_add(static_cast<_Atomic_int *>(_Atom), _Value)); + } + +template<> + inline int atomic_fetch_add_explicit( + volatile atomic *_Atom, int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline int atomic_fetch_add_explicit( + atomic *_Atom, int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast<_Atomic_int *>(_Atom), _Value, _Order)); + } + +template<> + inline int atomic_fetch_sub( + volatile atomic *_Atom, + int _Value) noexcept + { + return (atomic_fetch_sub( + static_cast(_Atom), _Value)); + } + +template<> + inline int atomic_fetch_sub(atomic *_Atom, + int _Value) noexcept + { + return (atomic_fetch_sub(static_cast<_Atomic_int *>(_Atom), _Value)); + } + +template<> + inline int atomic_fetch_sub_explicit( + volatile atomic *_Atom, int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline int atomic_fetch_sub_explicit( + atomic *_Atom, int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast<_Atomic_int *>(_Atom), _Value, _Order)); + } + +template<> + inline int atomic_fetch_and( + volatile atomic *_Atom, int _Value) noexcept + { + return (atomic_fetch_and( + static_cast(_Atom), _Value)); + } + +template<> + inline int atomic_fetch_and( + atomic *_Atom, int _Value) noexcept + { + return (atomic_fetch_and(static_cast<_Atomic_int *>(_Atom), _Value)); + } + +template<> + inline int atomic_fetch_and_explicit( + volatile atomic *_Atom, int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline int atomic_fetch_and_explicit( + atomic *_Atom, int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast<_Atomic_int *>(_Atom), _Value, _Order)); + } + +template<> + inline int atomic_fetch_or(volatile atomic *_Atom, + int _Value) noexcept + { + return (atomic_fetch_or( + static_cast(_Atom), _Value)); + } + +template<> + inline int atomic_fetch_or(atomic *_Atom, + int _Value) noexcept + { + return (atomic_fetch_or(static_cast<_Atomic_int *>(_Atom), _Value)); + } + +template<> + inline int atomic_fetch_or_explicit( + volatile atomic *_Atom, int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline int atomic_fetch_or_explicit( + atomic *_Atom, int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast<_Atomic_int *>(_Atom), _Value, _Order)); + } + +template<> + inline int atomic_fetch_xor(volatile atomic *_Atom, + int _Value) noexcept + { + return (atomic_fetch_xor( + static_cast(_Atom), _Value)); + } + +template<> + inline int atomic_fetch_xor(atomic *_Atom, + int _Value) noexcept + { + return (atomic_fetch_xor(static_cast<_Atomic_int *>(_Atom), _Value)); + } + +template<> + inline int atomic_fetch_xor_explicit( + volatile atomic *_Atom, int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline int atomic_fetch_xor_explicit( + atomic *_Atom, int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast<_Atomic_int *>(_Atom), _Value, _Order)); + } +# 758 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +static_assert(4 == sizeof (unsigned int), + "_ISIZE and _ITYPE should match."); +# 70 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +typedef struct _Atomic_uint + { + unsigned int operator=(unsigned int) volatile noexcept; + unsigned int operator=(unsigned int) noexcept; + + bool is_lock_free() const volatile noexcept; + bool is_lock_free() const noexcept; + void store(unsigned int, memory_order = memory_order_seq_cst) + volatile noexcept; + void store(unsigned int, memory_order = memory_order_seq_cst) + noexcept; + unsigned int load(memory_order = memory_order_seq_cst) + const volatile noexcept; + unsigned int load(memory_order = memory_order_seq_cst) + const noexcept; + operator unsigned int() const volatile noexcept; + operator unsigned int() const noexcept; + unsigned int exchange(unsigned int, + memory_order = memory_order_seq_cst) volatile noexcept; + unsigned int exchange(unsigned int, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_weak(unsigned int&, unsigned int, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_weak(unsigned int&, unsigned int, + memory_order, memory_order) noexcept; + bool compare_exchange_strong(unsigned int&, unsigned int, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_strong(unsigned int&, unsigned int, + memory_order, memory_order) noexcept; + bool compare_exchange_weak(unsigned int&, unsigned int, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_weak(unsigned int&, unsigned int, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_strong(unsigned int&, unsigned int, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_strong(unsigned int&, unsigned int, + memory_order = memory_order_seq_cst) noexcept; + + + unsigned int operator++(int) volatile noexcept; + unsigned int operator++(int) noexcept; + unsigned int operator--(int) volatile noexcept; + unsigned int operator--(int) noexcept; + unsigned int operator++() volatile noexcept; + unsigned int operator++() noexcept; + unsigned int operator--() volatile noexcept; + unsigned int operator--() noexcept; + unsigned int operator+=(unsigned int) volatile noexcept; + unsigned int operator+=(unsigned int) noexcept; + unsigned int operator-=(unsigned int) volatile noexcept; + unsigned int operator-=(unsigned int) noexcept; + unsigned int operator&=(unsigned int) volatile noexcept; + unsigned int operator&=(unsigned int) noexcept; + unsigned int operator|=(unsigned int) volatile noexcept; + unsigned int operator|=(unsigned int) noexcept; + unsigned int operator^=(unsigned int) volatile noexcept; + unsigned int operator^=(unsigned int) noexcept; + + unsigned int fetch_add(unsigned int, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned int fetch_add(unsigned int, memory_order = memory_order_seq_cst) noexcept; + unsigned int fetch_sub(unsigned int, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned int fetch_sub(unsigned int, memory_order = memory_order_seq_cst) noexcept; + unsigned int fetch_and(unsigned int, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned int fetch_and(unsigned int, memory_order = memory_order_seq_cst) noexcept; + unsigned int fetch_or(unsigned int, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned int fetch_or(unsigned int, memory_order = memory_order_seq_cst) noexcept; + unsigned int fetch_xor(unsigned int, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned int fetch_xor(unsigned int, memory_order = memory_order_seq_cst) noexcept; +# 169 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + alignas(sizeof(_Uint4_t)) _Uint4_t _My_val; + + + + + } _Atomic_uint; + + + +template<> + struct atomic + : _Atomic_uint + { + + atomic() noexcept = default; + + constexpr atomic(unsigned int _Val) noexcept + : _Atomic_uint{(_Uint4_t)_Val} + { + } + + unsigned int operator=(unsigned int _Val) volatile noexcept + { + return (_Atomic_uint::operator=(_Val)); + } + + unsigned int operator=(unsigned int _Val) noexcept + { + return (_Atomic_uint::operator=(_Val)); + } + + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + }; +# 443 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline bool atomic_is_lock_free(const volatile _Atomic_uint *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + +inline bool atomic_is_lock_free(const _Atomic_uint *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + + +inline bool atomic_is_lock_free(const volatile atomic *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + +inline bool atomic_is_lock_free(const atomic *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + + + +inline void atomic_init(volatile _Atomic_uint *_Atom, + unsigned int _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + +inline void atomic_init(_Atomic_uint *_Atom, + unsigned int _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + + +inline void atomic_init(volatile atomic *_Atom, + unsigned int _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + +inline void atomic_init(atomic *_Atom, + unsigned int _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + + +inline void atomic_store_explicit( + volatile _Atomic_uint *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + _Atomic_store_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order); + } + +inline void atomic_store_explicit( + _Atomic_uint *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + _Atomic_store_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order); + } + +inline void atomic_store(volatile _Atomic_uint *_Atom, + unsigned int _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void atomic_store(_Atomic_uint *_Atom, + unsigned int _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline unsigned int atomic_load_explicit( + const volatile _Atomic_uint *_Atom, memory_order _Order) noexcept + { + return ((unsigned int)_Atomic_load_4 ((_Uint4_t*)&_Atom->_My_val, _Order)); + } + +inline unsigned int atomic_load_explicit( + const _Atomic_uint *_Atom, memory_order _Order) noexcept + { + return ((unsigned int)_Atomic_load_4 ((_Uint4_t*)&_Atom->_My_val, _Order)); + } + +inline unsigned int atomic_load( + const volatile _Atomic_uint *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline unsigned int atomic_load( + const _Atomic_uint *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline unsigned int atomic_exchange_explicit( + volatile _Atomic_uint *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return ((unsigned int)_Atomic_exchange_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned int atomic_exchange_explicit( + _Atomic_uint *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return ((unsigned int)_Atomic_exchange_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned int atomic_exchange(volatile _Atomic_uint *_Atom, + unsigned int _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned int atomic_exchange(_Atomic_uint *_Atom, + unsigned int _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak_explicit( + volatile _Atomic_uint *_Atom, unsigned int *_Exp, unsigned int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak_explicit( + _Atomic_uint *_Atom, unsigned int *_Exp, unsigned int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak( + volatile _Atomic_uint *_Atom, unsigned int *_Exp, + unsigned int _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak( + _Atomic_uint *_Atom, unsigned int *_Exp, + unsigned int _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong_explicit( + volatile _Atomic_uint *_Atom, unsigned int *_Exp, unsigned int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong_explicit( + _Atomic_uint *_Atom, unsigned int *_Exp, unsigned int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong( + volatile _Atomic_uint *_Atom, unsigned int *_Exp, unsigned int _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong( + _Atomic_uint *_Atom, unsigned int *_Exp, unsigned int _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + + +inline unsigned int _Atomic_uint::operator=(unsigned int _Value) volatile noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline unsigned int _Atomic_uint::operator=(unsigned int _Value) noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_uint::is_lock_free() const volatile noexcept + { + return (atomic_is_lock_free(this)); + } + +inline bool _Atomic_uint::is_lock_free() const noexcept + { + return (atomic_is_lock_free(this)); + } + +inline void _Atomic_uint::store(unsigned int _Value, + memory_order _Order) volatile noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void _Atomic_uint::store(unsigned int _Value, + memory_order _Order) noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline unsigned int _Atomic_uint::load( + memory_order _Order) const volatile noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline unsigned int _Atomic_uint::load( + memory_order _Order) const noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline _Atomic_uint::operator unsigned int() const volatile noexcept + { + return (atomic_load(this)); + } + +inline _Atomic_uint::operator unsigned int() const noexcept + { + return (atomic_load(this)); + } + +inline unsigned int _Atomic_uint::exchange( + unsigned int _Value, memory_order _Order) volatile noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline unsigned int _Atomic_uint::exchange( + unsigned int _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_uint::compare_exchange_weak( + unsigned int& _Exp, unsigned int _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_uint::compare_exchange_weak( + unsigned int& _Exp, unsigned int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_uint::compare_exchange_weak( + unsigned int& _Exp, unsigned int _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_uint::compare_exchange_weak( + unsigned int& _Exp, unsigned int _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_uint::compare_exchange_strong( + unsigned int& _Exp, unsigned int _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_uint::compare_exchange_strong( + unsigned int& _Exp, unsigned int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_uint::compare_exchange_strong( + unsigned int& _Exp, unsigned int _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_uint::compare_exchange_strong( + unsigned int& _Exp, unsigned int _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + + +template<> + inline bool atomic_is_lock_free( + const volatile atomic *_Atom) noexcept + { + return (atomic_is_lock_free( + static_cast(_Atom))); + } + +template<> + inline bool atomic_is_lock_free( + const atomic *_Atom) noexcept + { + return (atomic_is_lock_free(static_cast(_Atom))); + } + +template<> + inline void atomic_init(volatile atomic *_Atom, + unsigned int _Value) noexcept + { + atomic_init(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_init(atomic *_Atom, + unsigned int _Value) noexcept + { + atomic_init(static_cast<_Atomic_uint *>(_Atom), _Value); + } + +template<> + inline void atomic_store(volatile atomic *_Atom, + unsigned int _Value) noexcept + { + atomic_store(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_store(atomic *_Atom, + unsigned int _Value) noexcept + { + atomic_store(static_cast<_Atomic_uint *>(_Atom), _Value); + } + +template<> + inline void atomic_store_explicit(volatile atomic *_Atom, + unsigned int _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast(_Atom), + _Value, _Order); + } + +template<> + inline void atomic_store_explicit(atomic *_Atom, + unsigned int _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast<_Atomic_uint *>(_Atom), + _Value, _Order); + } + +template<> + inline unsigned int atomic_load(const volatile atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline unsigned int atomic_load(const atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline unsigned int atomic_load_explicit( + const volatile atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline unsigned int atomic_load_explicit( + const atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline unsigned int atomic_exchange( + volatile atomic *_Atom, unsigned int _Value) noexcept + { + return (atomic_exchange( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned int atomic_exchange(atomic *_Atom, + unsigned int _Value) noexcept + { + return (atomic_exchange(static_cast<_Atomic_uint *>(_Atom), _Value)); + } + +template<> + inline unsigned int atomic_exchange_explicit( + volatile atomic *_Atom, + unsigned int _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned int atomic_exchange_explicit(atomic *_Atom, + unsigned int _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(static_cast<_Atomic_uint *>(_Atom), + _Value, _Order)); + } + +template<> + inline bool atomic_compare_exchange_weak( + volatile atomic *_Atom, unsigned int *_Exp, + unsigned int _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak( + atomic *_Atom, unsigned int *_Exp, + unsigned int _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast<_Atomic_uint *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + volatile atomic *_Atom, unsigned int *_Exp, unsigned int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + atomic *_Atom, unsigned int *_Exp, unsigned int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast<_Atomic_uint *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong( + volatile atomic *_Atom, unsigned int *_Exp, + unsigned int _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong( + atomic *_Atom, unsigned int *_Exp, + unsigned int _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast<_Atomic_uint *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + volatile atomic *_Atom, unsigned int *_Exp, unsigned int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + atomic *_Atom, unsigned int *_Exp, unsigned int _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast<_Atomic_uint *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + + + + +inline unsigned int atomic_fetch_add_explicit( + volatile _Atomic_uint *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return ((unsigned int)_Atomic_fetch_add_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned int atomic_fetch_add_explicit( + _Atomic_uint *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return ((unsigned int)_Atomic_fetch_add_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned int atomic_fetch_add(volatile _Atomic_uint *_Atom, + unsigned int _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned int atomic_fetch_add(_Atomic_uint *_Atom, + unsigned int _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned int atomic_fetch_sub_explicit( + volatile _Atomic_uint *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return ((unsigned int)_Atomic_fetch_sub_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned int atomic_fetch_sub_explicit( + _Atomic_uint *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return ((unsigned int)_Atomic_fetch_sub_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned int atomic_fetch_sub(volatile _Atomic_uint *_Atom, + unsigned int _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned int atomic_fetch_sub(_Atomic_uint *_Atom, + unsigned int _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned int atomic_fetch_and_explicit( + volatile _Atomic_uint *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return ((unsigned int)_Atomic_fetch_and_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned int atomic_fetch_and_explicit( + _Atomic_uint *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return ((unsigned int)_Atomic_fetch_and_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned int atomic_fetch_and(volatile _Atomic_uint *_Atom, + unsigned int _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned int atomic_fetch_and(_Atomic_uint *_Atom, + unsigned int _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned int atomic_fetch_or_explicit( + volatile _Atomic_uint *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return ((unsigned int)_Atomic_fetch_or_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned int atomic_fetch_or_explicit( + _Atomic_uint *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return ((unsigned int)_Atomic_fetch_or_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned int atomic_fetch_or( + volatile _Atomic_uint *_Atom, unsigned int _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned int atomic_fetch_or( + _Atomic_uint *_Atom, unsigned int _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned int atomic_fetch_xor_explicit( + volatile _Atomic_uint *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return ((unsigned int)_Atomic_fetch_xor_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned int atomic_fetch_xor_explicit( + _Atomic_uint *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return ((unsigned int)_Atomic_fetch_xor_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned int atomic_fetch_xor( + volatile _Atomic_uint *_Atom, unsigned int _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned int atomic_fetch_xor( + _Atomic_uint *_Atom, unsigned int _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + + +inline unsigned int _Atomic_uint::operator++(int) volatile noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline unsigned int _Atomic_uint::operator++(int) noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline unsigned int _Atomic_uint::operator--(int) volatile noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline unsigned int _Atomic_uint::operator--(int) noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline unsigned int _Atomic_uint::operator++() volatile noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline unsigned int _Atomic_uint::operator++() noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline unsigned int _Atomic_uint::operator--() volatile noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline unsigned int _Atomic_uint::operator--() noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline unsigned int _Atomic_uint::operator+=(unsigned int _Right) volatile noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline unsigned int _Atomic_uint::operator+=(unsigned int _Right) noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline unsigned int _Atomic_uint::operator-=(unsigned int _Right) volatile noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline unsigned int _Atomic_uint::operator-=(unsigned int _Right) noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline unsigned int _Atomic_uint::operator&=(unsigned int _Right) volatile noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline unsigned int _Atomic_uint::operator&=(unsigned int _Right) noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline unsigned int _Atomic_uint::operator|=(unsigned int _Right) volatile noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline unsigned int _Atomic_uint::operator|=(unsigned int _Right) noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline unsigned int _Atomic_uint::operator^=(unsigned int _Right) volatile noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline unsigned int _Atomic_uint::operator^=(unsigned int _Right) noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline unsigned int _Atomic_uint::fetch_add( + unsigned int _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline unsigned int _Atomic_uint::fetch_add( + unsigned int _Value, memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline unsigned int _Atomic_uint::fetch_sub( + unsigned int _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline unsigned int _Atomic_uint::fetch_sub( + unsigned int _Value, memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline unsigned int _Atomic_uint::fetch_and( + unsigned int _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline unsigned int _Atomic_uint::fetch_and( + unsigned int _Value, memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline unsigned int _Atomic_uint::fetch_or( + unsigned int _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline unsigned int _Atomic_uint::fetch_or( + unsigned int _Value, memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline unsigned int _Atomic_uint::fetch_xor( + unsigned int _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + +inline unsigned int _Atomic_uint::fetch_xor( + unsigned int _Value, memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + + + +template<> + inline unsigned int atomic_fetch_add( + volatile atomic *_Atom, + unsigned int _Value) noexcept + { + return (atomic_fetch_add( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned int atomic_fetch_add(atomic *_Atom, + unsigned int _Value) noexcept + { + return (atomic_fetch_add(static_cast<_Atomic_uint *>(_Atom), _Value)); + } + +template<> + inline unsigned int atomic_fetch_add_explicit( + volatile atomic *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned int atomic_fetch_add_explicit( + atomic *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast<_Atomic_uint *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned int atomic_fetch_sub( + volatile atomic *_Atom, + unsigned int _Value) noexcept + { + return (atomic_fetch_sub( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned int atomic_fetch_sub(atomic *_Atom, + unsigned int _Value) noexcept + { + return (atomic_fetch_sub(static_cast<_Atomic_uint *>(_Atom), _Value)); + } + +template<> + inline unsigned int atomic_fetch_sub_explicit( + volatile atomic *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned int atomic_fetch_sub_explicit( + atomic *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast<_Atomic_uint *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned int atomic_fetch_and( + volatile atomic *_Atom, unsigned int _Value) noexcept + { + return (atomic_fetch_and( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned int atomic_fetch_and( + atomic *_Atom, unsigned int _Value) noexcept + { + return (atomic_fetch_and(static_cast<_Atomic_uint *>(_Atom), _Value)); + } + +template<> + inline unsigned int atomic_fetch_and_explicit( + volatile atomic *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned int atomic_fetch_and_explicit( + atomic *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast<_Atomic_uint *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned int atomic_fetch_or(volatile atomic *_Atom, + unsigned int _Value) noexcept + { + return (atomic_fetch_or( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned int atomic_fetch_or(atomic *_Atom, + unsigned int _Value) noexcept + { + return (atomic_fetch_or(static_cast<_Atomic_uint *>(_Atom), _Value)); + } + +template<> + inline unsigned int atomic_fetch_or_explicit( + volatile atomic *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned int atomic_fetch_or_explicit( + atomic *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast<_Atomic_uint *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned int atomic_fetch_xor(volatile atomic *_Atom, + unsigned int _Value) noexcept + { + return (atomic_fetch_xor( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned int atomic_fetch_xor(atomic *_Atom, + unsigned int _Value) noexcept + { + return (atomic_fetch_xor(static_cast<_Atomic_uint *>(_Atom), _Value)); + } + +template<> + inline unsigned int atomic_fetch_xor_explicit( + volatile atomic *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned int atomic_fetch_xor_explicit( + atomic *_Atom, unsigned int _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast<_Atomic_uint *>(_Atom), _Value, _Order)); + } +# 764 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +static_assert(4 == sizeof (long), + "_ISIZE and _ITYPE should match."); +# 70 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +typedef struct _Atomic_long + { + long operator=(long) volatile noexcept; + long operator=(long) noexcept; + + bool is_lock_free() const volatile noexcept; + bool is_lock_free() const noexcept; + void store(long, memory_order = memory_order_seq_cst) + volatile noexcept; + void store(long, memory_order = memory_order_seq_cst) + noexcept; + long load(memory_order = memory_order_seq_cst) + const volatile noexcept; + long load(memory_order = memory_order_seq_cst) + const noexcept; + operator long() const volatile noexcept; + operator long() const noexcept; + long exchange(long, + memory_order = memory_order_seq_cst) volatile noexcept; + long exchange(long, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_weak(long&, long, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_weak(long&, long, + memory_order, memory_order) noexcept; + bool compare_exchange_strong(long&, long, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_strong(long&, long, + memory_order, memory_order) noexcept; + bool compare_exchange_weak(long&, long, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_weak(long&, long, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_strong(long&, long, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_strong(long&, long, + memory_order = memory_order_seq_cst) noexcept; + + + long operator++(int) volatile noexcept; + long operator++(int) noexcept; + long operator--(int) volatile noexcept; + long operator--(int) noexcept; + long operator++() volatile noexcept; + long operator++() noexcept; + long operator--() volatile noexcept; + long operator--() noexcept; + long operator+=(long) volatile noexcept; + long operator+=(long) noexcept; + long operator-=(long) volatile noexcept; + long operator-=(long) noexcept; + long operator&=(long) volatile noexcept; + long operator&=(long) noexcept; + long operator|=(long) volatile noexcept; + long operator|=(long) noexcept; + long operator^=(long) volatile noexcept; + long operator^=(long) noexcept; + + long fetch_add(long, memory_order = memory_order_seq_cst) + volatile noexcept; + long fetch_add(long, memory_order = memory_order_seq_cst) noexcept; + long fetch_sub(long, memory_order = memory_order_seq_cst) + volatile noexcept; + long fetch_sub(long, memory_order = memory_order_seq_cst) noexcept; + long fetch_and(long, memory_order = memory_order_seq_cst) + volatile noexcept; + long fetch_and(long, memory_order = memory_order_seq_cst) noexcept; + long fetch_or(long, memory_order = memory_order_seq_cst) + volatile noexcept; + long fetch_or(long, memory_order = memory_order_seq_cst) noexcept; + long fetch_xor(long, memory_order = memory_order_seq_cst) + volatile noexcept; + long fetch_xor(long, memory_order = memory_order_seq_cst) noexcept; +# 169 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + alignas(sizeof(_Uint4_t)) _Uint4_t _My_val; + + + + + } _Atomic_long; + + + +template<> + struct atomic + : _Atomic_long + { + + atomic() noexcept = default; + + constexpr atomic(long _Val) noexcept + : _Atomic_long{(_Uint4_t)_Val} + { + } + + long operator=(long _Val) volatile noexcept + { + return (_Atomic_long::operator=(_Val)); + } + + long operator=(long _Val) noexcept + { + return (_Atomic_long::operator=(_Val)); + } + + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + }; +# 443 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline bool atomic_is_lock_free(const volatile _Atomic_long *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + +inline bool atomic_is_lock_free(const _Atomic_long *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + + +inline bool atomic_is_lock_free(const volatile atomic *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + +inline bool atomic_is_lock_free(const atomic *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + + + +inline void atomic_init(volatile _Atomic_long *_Atom, + long _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + +inline void atomic_init(_Atomic_long *_Atom, + long _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + + +inline void atomic_init(volatile atomic *_Atom, + long _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + +inline void atomic_init(atomic *_Atom, + long _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + + +inline void atomic_store_explicit( + volatile _Atomic_long *_Atom, long _Value, + memory_order _Order) noexcept + { + _Atomic_store_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order); + } + +inline void atomic_store_explicit( + _Atomic_long *_Atom, long _Value, + memory_order _Order) noexcept + { + _Atomic_store_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order); + } + +inline void atomic_store(volatile _Atomic_long *_Atom, + long _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void atomic_store(_Atomic_long *_Atom, + long _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline long atomic_load_explicit( + const volatile _Atomic_long *_Atom, memory_order _Order) noexcept + { + return ((long)_Atomic_load_4 ((_Uint4_t*)&_Atom->_My_val, _Order)); + } + +inline long atomic_load_explicit( + const _Atomic_long *_Atom, memory_order _Order) noexcept + { + return ((long)_Atomic_load_4 ((_Uint4_t*)&_Atom->_My_val, _Order)); + } + +inline long atomic_load( + const volatile _Atomic_long *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline long atomic_load( + const _Atomic_long *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline long atomic_exchange_explicit( + volatile _Atomic_long *_Atom, long _Value, + memory_order _Order) noexcept + { + return ((long)_Atomic_exchange_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline long atomic_exchange_explicit( + _Atomic_long *_Atom, long _Value, + memory_order _Order) noexcept + { + return ((long)_Atomic_exchange_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline long atomic_exchange(volatile _Atomic_long *_Atom, + long _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long atomic_exchange(_Atomic_long *_Atom, + long _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak_explicit( + volatile _Atomic_long *_Atom, long *_Exp, long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak_explicit( + _Atomic_long *_Atom, long *_Exp, long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak( + volatile _Atomic_long *_Atom, long *_Exp, + long _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak( + _Atomic_long *_Atom, long *_Exp, + long _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong_explicit( + volatile _Atomic_long *_Atom, long *_Exp, long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong_explicit( + _Atomic_long *_Atom, long *_Exp, long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong( + volatile _Atomic_long *_Atom, long *_Exp, long _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong( + _Atomic_long *_Atom, long *_Exp, long _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + + +inline long _Atomic_long::operator=(long _Value) volatile noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline long _Atomic_long::operator=(long _Value) noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_long::is_lock_free() const volatile noexcept + { + return (atomic_is_lock_free(this)); + } + +inline bool _Atomic_long::is_lock_free() const noexcept + { + return (atomic_is_lock_free(this)); + } + +inline void _Atomic_long::store(long _Value, + memory_order _Order) volatile noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void _Atomic_long::store(long _Value, + memory_order _Order) noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline long _Atomic_long::load( + memory_order _Order) const volatile noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline long _Atomic_long::load( + memory_order _Order) const noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline _Atomic_long::operator long() const volatile noexcept + { + return (atomic_load(this)); + } + +inline _Atomic_long::operator long() const noexcept + { + return (atomic_load(this)); + } + +inline long _Atomic_long::exchange( + long _Value, memory_order _Order) volatile noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline long _Atomic_long::exchange( + long _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_long::compare_exchange_weak( + long& _Exp, long _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_long::compare_exchange_weak( + long& _Exp, long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_long::compare_exchange_weak( + long& _Exp, long _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_long::compare_exchange_weak( + long& _Exp, long _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_long::compare_exchange_strong( + long& _Exp, long _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_long::compare_exchange_strong( + long& _Exp, long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_long::compare_exchange_strong( + long& _Exp, long _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_long::compare_exchange_strong( + long& _Exp, long _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + + +template<> + inline bool atomic_is_lock_free( + const volatile atomic *_Atom) noexcept + { + return (atomic_is_lock_free( + static_cast(_Atom))); + } + +template<> + inline bool atomic_is_lock_free( + const atomic *_Atom) noexcept + { + return (atomic_is_lock_free(static_cast(_Atom))); + } + +template<> + inline void atomic_init(volatile atomic *_Atom, + long _Value) noexcept + { + atomic_init(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_init(atomic *_Atom, + long _Value) noexcept + { + atomic_init(static_cast<_Atomic_long *>(_Atom), _Value); + } + +template<> + inline void atomic_store(volatile atomic *_Atom, + long _Value) noexcept + { + atomic_store(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_store(atomic *_Atom, + long _Value) noexcept + { + atomic_store(static_cast<_Atomic_long *>(_Atom), _Value); + } + +template<> + inline void atomic_store_explicit(volatile atomic *_Atom, + long _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast(_Atom), + _Value, _Order); + } + +template<> + inline void atomic_store_explicit(atomic *_Atom, + long _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast<_Atomic_long *>(_Atom), + _Value, _Order); + } + +template<> + inline long atomic_load(const volatile atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline long atomic_load(const atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline long atomic_load_explicit( + const volatile atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline long atomic_load_explicit( + const atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline long atomic_exchange( + volatile atomic *_Atom, long _Value) noexcept + { + return (atomic_exchange( + static_cast(_Atom), _Value)); + } + +template<> + inline long atomic_exchange(atomic *_Atom, + long _Value) noexcept + { + return (atomic_exchange(static_cast<_Atomic_long *>(_Atom), _Value)); + } + +template<> + inline long atomic_exchange_explicit( + volatile atomic *_Atom, + long _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline long atomic_exchange_explicit(atomic *_Atom, + long _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(static_cast<_Atomic_long *>(_Atom), + _Value, _Order)); + } + +template<> + inline bool atomic_compare_exchange_weak( + volatile atomic *_Atom, long *_Exp, + long _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak( + atomic *_Atom, long *_Exp, + long _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast<_Atomic_long *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + volatile atomic *_Atom, long *_Exp, long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + atomic *_Atom, long *_Exp, long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast<_Atomic_long *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong( + volatile atomic *_Atom, long *_Exp, + long _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong( + atomic *_Atom, long *_Exp, + long _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast<_Atomic_long *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + volatile atomic *_Atom, long *_Exp, long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + atomic *_Atom, long *_Exp, long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast<_Atomic_long *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + + + + +inline long atomic_fetch_add_explicit( + volatile _Atomic_long *_Atom, long _Value, + memory_order _Order) noexcept + { + return ((long)_Atomic_fetch_add_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline long atomic_fetch_add_explicit( + _Atomic_long *_Atom, long _Value, + memory_order _Order) noexcept + { + return ((long)_Atomic_fetch_add_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline long atomic_fetch_add(volatile _Atomic_long *_Atom, + long _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long atomic_fetch_add(_Atomic_long *_Atom, + long _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long atomic_fetch_sub_explicit( + volatile _Atomic_long *_Atom, long _Value, + memory_order _Order) noexcept + { + return ((long)_Atomic_fetch_sub_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline long atomic_fetch_sub_explicit( + _Atomic_long *_Atom, long _Value, + memory_order _Order) noexcept + { + return ((long)_Atomic_fetch_sub_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline long atomic_fetch_sub(volatile _Atomic_long *_Atom, + long _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long atomic_fetch_sub(_Atomic_long *_Atom, + long _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long atomic_fetch_and_explicit( + volatile _Atomic_long *_Atom, long _Value, + memory_order _Order) noexcept + { + return ((long)_Atomic_fetch_and_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline long atomic_fetch_and_explicit( + _Atomic_long *_Atom, long _Value, + memory_order _Order) noexcept + { + return ((long)_Atomic_fetch_and_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline long atomic_fetch_and(volatile _Atomic_long *_Atom, + long _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long atomic_fetch_and(_Atomic_long *_Atom, + long _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long atomic_fetch_or_explicit( + volatile _Atomic_long *_Atom, long _Value, + memory_order _Order) noexcept + { + return ((long)_Atomic_fetch_or_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline long atomic_fetch_or_explicit( + _Atomic_long *_Atom, long _Value, + memory_order _Order) noexcept + { + return ((long)_Atomic_fetch_or_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline long atomic_fetch_or( + volatile _Atomic_long *_Atom, long _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long atomic_fetch_or( + _Atomic_long *_Atom, long _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long atomic_fetch_xor_explicit( + volatile _Atomic_long *_Atom, long _Value, + memory_order _Order) noexcept + { + return ((long)_Atomic_fetch_xor_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline long atomic_fetch_xor_explicit( + _Atomic_long *_Atom, long _Value, + memory_order _Order) noexcept + { + return ((long)_Atomic_fetch_xor_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline long atomic_fetch_xor( + volatile _Atomic_long *_Atom, long _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long atomic_fetch_xor( + _Atomic_long *_Atom, long _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + + +inline long _Atomic_long::operator++(int) volatile noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline long _Atomic_long::operator++(int) noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline long _Atomic_long::operator--(int) volatile noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline long _Atomic_long::operator--(int) noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline long _Atomic_long::operator++() volatile noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline long _Atomic_long::operator++() noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline long _Atomic_long::operator--() volatile noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline long _Atomic_long::operator--() noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline long _Atomic_long::operator+=(long _Right) volatile noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline long _Atomic_long::operator+=(long _Right) noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline long _Atomic_long::operator-=(long _Right) volatile noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline long _Atomic_long::operator-=(long _Right) noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline long _Atomic_long::operator&=(long _Right) volatile noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline long _Atomic_long::operator&=(long _Right) noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline long _Atomic_long::operator|=(long _Right) volatile noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline long _Atomic_long::operator|=(long _Right) noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline long _Atomic_long::operator^=(long _Right) volatile noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline long _Atomic_long::operator^=(long _Right) noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline long _Atomic_long::fetch_add( + long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline long _Atomic_long::fetch_add( + long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline long _Atomic_long::fetch_sub( + long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline long _Atomic_long::fetch_sub( + long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline long _Atomic_long::fetch_and( + long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline long _Atomic_long::fetch_and( + long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline long _Atomic_long::fetch_or( + long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline long _Atomic_long::fetch_or( + long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline long _Atomic_long::fetch_xor( + long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + +inline long _Atomic_long::fetch_xor( + long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + + + +template<> + inline long atomic_fetch_add( + volatile atomic *_Atom, + long _Value) noexcept + { + return (atomic_fetch_add( + static_cast(_Atom), _Value)); + } + +template<> + inline long atomic_fetch_add(atomic *_Atom, + long _Value) noexcept + { + return (atomic_fetch_add(static_cast<_Atomic_long *>(_Atom), _Value)); + } + +template<> + inline long atomic_fetch_add_explicit( + volatile atomic *_Atom, long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline long atomic_fetch_add_explicit( + atomic *_Atom, long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast<_Atomic_long *>(_Atom), _Value, _Order)); + } + +template<> + inline long atomic_fetch_sub( + volatile atomic *_Atom, + long _Value) noexcept + { + return (atomic_fetch_sub( + static_cast(_Atom), _Value)); + } + +template<> + inline long atomic_fetch_sub(atomic *_Atom, + long _Value) noexcept + { + return (atomic_fetch_sub(static_cast<_Atomic_long *>(_Atom), _Value)); + } + +template<> + inline long atomic_fetch_sub_explicit( + volatile atomic *_Atom, long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline long atomic_fetch_sub_explicit( + atomic *_Atom, long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast<_Atomic_long *>(_Atom), _Value, _Order)); + } + +template<> + inline long atomic_fetch_and( + volatile atomic *_Atom, long _Value) noexcept + { + return (atomic_fetch_and( + static_cast(_Atom), _Value)); + } + +template<> + inline long atomic_fetch_and( + atomic *_Atom, long _Value) noexcept + { + return (atomic_fetch_and(static_cast<_Atomic_long *>(_Atom), _Value)); + } + +template<> + inline long atomic_fetch_and_explicit( + volatile atomic *_Atom, long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline long atomic_fetch_and_explicit( + atomic *_Atom, long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast<_Atomic_long *>(_Atom), _Value, _Order)); + } + +template<> + inline long atomic_fetch_or(volatile atomic *_Atom, + long _Value) noexcept + { + return (atomic_fetch_or( + static_cast(_Atom), _Value)); + } + +template<> + inline long atomic_fetch_or(atomic *_Atom, + long _Value) noexcept + { + return (atomic_fetch_or(static_cast<_Atomic_long *>(_Atom), _Value)); + } + +template<> + inline long atomic_fetch_or_explicit( + volatile atomic *_Atom, long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline long atomic_fetch_or_explicit( + atomic *_Atom, long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast<_Atomic_long *>(_Atom), _Value, _Order)); + } + +template<> + inline long atomic_fetch_xor(volatile atomic *_Atom, + long _Value) noexcept + { + return (atomic_fetch_xor( + static_cast(_Atom), _Value)); + } + +template<> + inline long atomic_fetch_xor(atomic *_Atom, + long _Value) noexcept + { + return (atomic_fetch_xor(static_cast<_Atomic_long *>(_Atom), _Value)); + } + +template<> + inline long atomic_fetch_xor_explicit( + volatile atomic *_Atom, long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline long atomic_fetch_xor_explicit( + atomic *_Atom, long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast<_Atomic_long *>(_Atom), _Value, _Order)); + } +# 770 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +static_assert(4 == sizeof (unsigned long), + "_ISIZE and _ITYPE should match."); +# 70 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +typedef struct _Atomic_ulong + { + unsigned long operator=(unsigned long) volatile noexcept; + unsigned long operator=(unsigned long) noexcept; + + bool is_lock_free() const volatile noexcept; + bool is_lock_free() const noexcept; + void store(unsigned long, memory_order = memory_order_seq_cst) + volatile noexcept; + void store(unsigned long, memory_order = memory_order_seq_cst) + noexcept; + unsigned long load(memory_order = memory_order_seq_cst) + const volatile noexcept; + unsigned long load(memory_order = memory_order_seq_cst) + const noexcept; + operator unsigned long() const volatile noexcept; + operator unsigned long() const noexcept; + unsigned long exchange(unsigned long, + memory_order = memory_order_seq_cst) volatile noexcept; + unsigned long exchange(unsigned long, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_weak(unsigned long&, unsigned long, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_weak(unsigned long&, unsigned long, + memory_order, memory_order) noexcept; + bool compare_exchange_strong(unsigned long&, unsigned long, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_strong(unsigned long&, unsigned long, + memory_order, memory_order) noexcept; + bool compare_exchange_weak(unsigned long&, unsigned long, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_weak(unsigned long&, unsigned long, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_strong(unsigned long&, unsigned long, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_strong(unsigned long&, unsigned long, + memory_order = memory_order_seq_cst) noexcept; + + + unsigned long operator++(int) volatile noexcept; + unsigned long operator++(int) noexcept; + unsigned long operator--(int) volatile noexcept; + unsigned long operator--(int) noexcept; + unsigned long operator++() volatile noexcept; + unsigned long operator++() noexcept; + unsigned long operator--() volatile noexcept; + unsigned long operator--() noexcept; + unsigned long operator+=(unsigned long) volatile noexcept; + unsigned long operator+=(unsigned long) noexcept; + unsigned long operator-=(unsigned long) volatile noexcept; + unsigned long operator-=(unsigned long) noexcept; + unsigned long operator&=(unsigned long) volatile noexcept; + unsigned long operator&=(unsigned long) noexcept; + unsigned long operator|=(unsigned long) volatile noexcept; + unsigned long operator|=(unsigned long) noexcept; + unsigned long operator^=(unsigned long) volatile noexcept; + unsigned long operator^=(unsigned long) noexcept; + + unsigned long fetch_add(unsigned long, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned long fetch_add(unsigned long, memory_order = memory_order_seq_cst) noexcept; + unsigned long fetch_sub(unsigned long, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned long fetch_sub(unsigned long, memory_order = memory_order_seq_cst) noexcept; + unsigned long fetch_and(unsigned long, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned long fetch_and(unsigned long, memory_order = memory_order_seq_cst) noexcept; + unsigned long fetch_or(unsigned long, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned long fetch_or(unsigned long, memory_order = memory_order_seq_cst) noexcept; + unsigned long fetch_xor(unsigned long, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned long fetch_xor(unsigned long, memory_order = memory_order_seq_cst) noexcept; +# 169 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + alignas(sizeof(_Uint4_t)) _Uint4_t _My_val; + + + + + } _Atomic_ulong; + + + +template<> + struct atomic + : _Atomic_ulong + { + + atomic() noexcept = default; + + constexpr atomic(unsigned long _Val) noexcept + : _Atomic_ulong{(_Uint4_t)_Val} + { + } + + unsigned long operator=(unsigned long _Val) volatile noexcept + { + return (_Atomic_ulong::operator=(_Val)); + } + + unsigned long operator=(unsigned long _Val) noexcept + { + return (_Atomic_ulong::operator=(_Val)); + } + + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + }; +# 443 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline bool atomic_is_lock_free(const volatile _Atomic_ulong *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + +inline bool atomic_is_lock_free(const _Atomic_ulong *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + + +inline bool atomic_is_lock_free(const volatile atomic *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + +inline bool atomic_is_lock_free(const atomic *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + + + +inline void atomic_init(volatile _Atomic_ulong *_Atom, + unsigned long _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + +inline void atomic_init(_Atomic_ulong *_Atom, + unsigned long _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + + +inline void atomic_init(volatile atomic *_Atom, + unsigned long _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + +inline void atomic_init(atomic *_Atom, + unsigned long _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + + +inline void atomic_store_explicit( + volatile _Atomic_ulong *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + _Atomic_store_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order); + } + +inline void atomic_store_explicit( + _Atomic_ulong *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + _Atomic_store_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order); + } + +inline void atomic_store(volatile _Atomic_ulong *_Atom, + unsigned long _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void atomic_store(_Atomic_ulong *_Atom, + unsigned long _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline unsigned long atomic_load_explicit( + const volatile _Atomic_ulong *_Atom, memory_order _Order) noexcept + { + return ((unsigned long)_Atomic_load_4 ((_Uint4_t*)&_Atom->_My_val, _Order)); + } + +inline unsigned long atomic_load_explicit( + const _Atomic_ulong *_Atom, memory_order _Order) noexcept + { + return ((unsigned long)_Atomic_load_4 ((_Uint4_t*)&_Atom->_My_val, _Order)); + } + +inline unsigned long atomic_load( + const volatile _Atomic_ulong *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline unsigned long atomic_load( + const _Atomic_ulong *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline unsigned long atomic_exchange_explicit( + volatile _Atomic_ulong *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return ((unsigned long)_Atomic_exchange_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned long atomic_exchange_explicit( + _Atomic_ulong *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return ((unsigned long)_Atomic_exchange_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned long atomic_exchange(volatile _Atomic_ulong *_Atom, + unsigned long _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long atomic_exchange(_Atomic_ulong *_Atom, + unsigned long _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak_explicit( + volatile _Atomic_ulong *_Atom, unsigned long *_Exp, unsigned long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak_explicit( + _Atomic_ulong *_Atom, unsigned long *_Exp, unsigned long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak( + volatile _Atomic_ulong *_Atom, unsigned long *_Exp, + unsigned long _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak( + _Atomic_ulong *_Atom, unsigned long *_Exp, + unsigned long _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong_explicit( + volatile _Atomic_ulong *_Atom, unsigned long *_Exp, unsigned long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong_explicit( + _Atomic_ulong *_Atom, unsigned long *_Exp, unsigned long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong( + volatile _Atomic_ulong *_Atom, unsigned long *_Exp, unsigned long _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong( + _Atomic_ulong *_Atom, unsigned long *_Exp, unsigned long _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + + +inline unsigned long _Atomic_ulong::operator=(unsigned long _Value) volatile noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline unsigned long _Atomic_ulong::operator=(unsigned long _Value) noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_ulong::is_lock_free() const volatile noexcept + { + return (atomic_is_lock_free(this)); + } + +inline bool _Atomic_ulong::is_lock_free() const noexcept + { + return (atomic_is_lock_free(this)); + } + +inline void _Atomic_ulong::store(unsigned long _Value, + memory_order _Order) volatile noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void _Atomic_ulong::store(unsigned long _Value, + memory_order _Order) noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline unsigned long _Atomic_ulong::load( + memory_order _Order) const volatile noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline unsigned long _Atomic_ulong::load( + memory_order _Order) const noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline _Atomic_ulong::operator unsigned long() const volatile noexcept + { + return (atomic_load(this)); + } + +inline _Atomic_ulong::operator unsigned long() const noexcept + { + return (atomic_load(this)); + } + +inline unsigned long _Atomic_ulong::exchange( + unsigned long _Value, memory_order _Order) volatile noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline unsigned long _Atomic_ulong::exchange( + unsigned long _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_ulong::compare_exchange_weak( + unsigned long& _Exp, unsigned long _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_ulong::compare_exchange_weak( + unsigned long& _Exp, unsigned long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_ulong::compare_exchange_weak( + unsigned long& _Exp, unsigned long _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_ulong::compare_exchange_weak( + unsigned long& _Exp, unsigned long _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_ulong::compare_exchange_strong( + unsigned long& _Exp, unsigned long _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_ulong::compare_exchange_strong( + unsigned long& _Exp, unsigned long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_ulong::compare_exchange_strong( + unsigned long& _Exp, unsigned long _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_ulong::compare_exchange_strong( + unsigned long& _Exp, unsigned long _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + + +template<> + inline bool atomic_is_lock_free( + const volatile atomic *_Atom) noexcept + { + return (atomic_is_lock_free( + static_cast(_Atom))); + } + +template<> + inline bool atomic_is_lock_free( + const atomic *_Atom) noexcept + { + return (atomic_is_lock_free(static_cast(_Atom))); + } + +template<> + inline void atomic_init(volatile atomic *_Atom, + unsigned long _Value) noexcept + { + atomic_init(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_init(atomic *_Atom, + unsigned long _Value) noexcept + { + atomic_init(static_cast<_Atomic_ulong *>(_Atom), _Value); + } + +template<> + inline void atomic_store(volatile atomic *_Atom, + unsigned long _Value) noexcept + { + atomic_store(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_store(atomic *_Atom, + unsigned long _Value) noexcept + { + atomic_store(static_cast<_Atomic_ulong *>(_Atom), _Value); + } + +template<> + inline void atomic_store_explicit(volatile atomic *_Atom, + unsigned long _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast(_Atom), + _Value, _Order); + } + +template<> + inline void atomic_store_explicit(atomic *_Atom, + unsigned long _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast<_Atomic_ulong *>(_Atom), + _Value, _Order); + } + +template<> + inline unsigned long atomic_load(const volatile atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline unsigned long atomic_load(const atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline unsigned long atomic_load_explicit( + const volatile atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline unsigned long atomic_load_explicit( + const atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline unsigned long atomic_exchange( + volatile atomic *_Atom, unsigned long _Value) noexcept + { + return (atomic_exchange( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned long atomic_exchange(atomic *_Atom, + unsigned long _Value) noexcept + { + return (atomic_exchange(static_cast<_Atomic_ulong *>(_Atom), _Value)); + } + +template<> + inline unsigned long atomic_exchange_explicit( + volatile atomic *_Atom, + unsigned long _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long atomic_exchange_explicit(atomic *_Atom, + unsigned long _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(static_cast<_Atomic_ulong *>(_Atom), + _Value, _Order)); + } + +template<> + inline bool atomic_compare_exchange_weak( + volatile atomic *_Atom, unsigned long *_Exp, + unsigned long _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak( + atomic *_Atom, unsigned long *_Exp, + unsigned long _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast<_Atomic_ulong *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + volatile atomic *_Atom, unsigned long *_Exp, unsigned long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + atomic *_Atom, unsigned long *_Exp, unsigned long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast<_Atomic_ulong *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong( + volatile atomic *_Atom, unsigned long *_Exp, + unsigned long _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong( + atomic *_Atom, unsigned long *_Exp, + unsigned long _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast<_Atomic_ulong *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + volatile atomic *_Atom, unsigned long *_Exp, unsigned long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + atomic *_Atom, unsigned long *_Exp, unsigned long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast<_Atomic_ulong *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + + + + +inline unsigned long atomic_fetch_add_explicit( + volatile _Atomic_ulong *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return ((unsigned long)_Atomic_fetch_add_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned long atomic_fetch_add_explicit( + _Atomic_ulong *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return ((unsigned long)_Atomic_fetch_add_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned long atomic_fetch_add(volatile _Atomic_ulong *_Atom, + unsigned long _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long atomic_fetch_add(_Atomic_ulong *_Atom, + unsigned long _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long atomic_fetch_sub_explicit( + volatile _Atomic_ulong *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return ((unsigned long)_Atomic_fetch_sub_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned long atomic_fetch_sub_explicit( + _Atomic_ulong *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return ((unsigned long)_Atomic_fetch_sub_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned long atomic_fetch_sub(volatile _Atomic_ulong *_Atom, + unsigned long _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long atomic_fetch_sub(_Atomic_ulong *_Atom, + unsigned long _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long atomic_fetch_and_explicit( + volatile _Atomic_ulong *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return ((unsigned long)_Atomic_fetch_and_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned long atomic_fetch_and_explicit( + _Atomic_ulong *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return ((unsigned long)_Atomic_fetch_and_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned long atomic_fetch_and(volatile _Atomic_ulong *_Atom, + unsigned long _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long atomic_fetch_and(_Atomic_ulong *_Atom, + unsigned long _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long atomic_fetch_or_explicit( + volatile _Atomic_ulong *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return ((unsigned long)_Atomic_fetch_or_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned long atomic_fetch_or_explicit( + _Atomic_ulong *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return ((unsigned long)_Atomic_fetch_or_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned long atomic_fetch_or( + volatile _Atomic_ulong *_Atom, unsigned long _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long atomic_fetch_or( + _Atomic_ulong *_Atom, unsigned long _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long atomic_fetch_xor_explicit( + volatile _Atomic_ulong *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return ((unsigned long)_Atomic_fetch_xor_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned long atomic_fetch_xor_explicit( + _Atomic_ulong *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return ((unsigned long)_Atomic_fetch_xor_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline unsigned long atomic_fetch_xor( + volatile _Atomic_ulong *_Atom, unsigned long _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long atomic_fetch_xor( + _Atomic_ulong *_Atom, unsigned long _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + + +inline unsigned long _Atomic_ulong::operator++(int) volatile noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline unsigned long _Atomic_ulong::operator++(int) noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline unsigned long _Atomic_ulong::operator--(int) volatile noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline unsigned long _Atomic_ulong::operator--(int) noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline unsigned long _Atomic_ulong::operator++() volatile noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline unsigned long _Atomic_ulong::operator++() noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline unsigned long _Atomic_ulong::operator--() volatile noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline unsigned long _Atomic_ulong::operator--() noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline unsigned long _Atomic_ulong::operator+=(unsigned long _Right) volatile noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline unsigned long _Atomic_ulong::operator+=(unsigned long _Right) noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline unsigned long _Atomic_ulong::operator-=(unsigned long _Right) volatile noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline unsigned long _Atomic_ulong::operator-=(unsigned long _Right) noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline unsigned long _Atomic_ulong::operator&=(unsigned long _Right) volatile noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline unsigned long _Atomic_ulong::operator&=(unsigned long _Right) noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline unsigned long _Atomic_ulong::operator|=(unsigned long _Right) volatile noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline unsigned long _Atomic_ulong::operator|=(unsigned long _Right) noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline unsigned long _Atomic_ulong::operator^=(unsigned long _Right) volatile noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline unsigned long _Atomic_ulong::operator^=(unsigned long _Right) noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline unsigned long _Atomic_ulong::fetch_add( + unsigned long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline unsigned long _Atomic_ulong::fetch_add( + unsigned long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline unsigned long _Atomic_ulong::fetch_sub( + unsigned long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline unsigned long _Atomic_ulong::fetch_sub( + unsigned long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline unsigned long _Atomic_ulong::fetch_and( + unsigned long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline unsigned long _Atomic_ulong::fetch_and( + unsigned long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline unsigned long _Atomic_ulong::fetch_or( + unsigned long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline unsigned long _Atomic_ulong::fetch_or( + unsigned long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline unsigned long _Atomic_ulong::fetch_xor( + unsigned long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + +inline unsigned long _Atomic_ulong::fetch_xor( + unsigned long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + + + +template<> + inline unsigned long atomic_fetch_add( + volatile atomic *_Atom, + unsigned long _Value) noexcept + { + return (atomic_fetch_add( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned long atomic_fetch_add(atomic *_Atom, + unsigned long _Value) noexcept + { + return (atomic_fetch_add(static_cast<_Atomic_ulong *>(_Atom), _Value)); + } + +template<> + inline unsigned long atomic_fetch_add_explicit( + volatile atomic *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long atomic_fetch_add_explicit( + atomic *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast<_Atomic_ulong *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long atomic_fetch_sub( + volatile atomic *_Atom, + unsigned long _Value) noexcept + { + return (atomic_fetch_sub( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned long atomic_fetch_sub(atomic *_Atom, + unsigned long _Value) noexcept + { + return (atomic_fetch_sub(static_cast<_Atomic_ulong *>(_Atom), _Value)); + } + +template<> + inline unsigned long atomic_fetch_sub_explicit( + volatile atomic *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long atomic_fetch_sub_explicit( + atomic *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast<_Atomic_ulong *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long atomic_fetch_and( + volatile atomic *_Atom, unsigned long _Value) noexcept + { + return (atomic_fetch_and( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned long atomic_fetch_and( + atomic *_Atom, unsigned long _Value) noexcept + { + return (atomic_fetch_and(static_cast<_Atomic_ulong *>(_Atom), _Value)); + } + +template<> + inline unsigned long atomic_fetch_and_explicit( + volatile atomic *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long atomic_fetch_and_explicit( + atomic *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast<_Atomic_ulong *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long atomic_fetch_or(volatile atomic *_Atom, + unsigned long _Value) noexcept + { + return (atomic_fetch_or( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned long atomic_fetch_or(atomic *_Atom, + unsigned long _Value) noexcept + { + return (atomic_fetch_or(static_cast<_Atomic_ulong *>(_Atom), _Value)); + } + +template<> + inline unsigned long atomic_fetch_or_explicit( + volatile atomic *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long atomic_fetch_or_explicit( + atomic *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast<_Atomic_ulong *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long atomic_fetch_xor(volatile atomic *_Atom, + unsigned long _Value) noexcept + { + return (atomic_fetch_xor( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned long atomic_fetch_xor(atomic *_Atom, + unsigned long _Value) noexcept + { + return (atomic_fetch_xor(static_cast<_Atomic_ulong *>(_Atom), _Value)); + } + +template<> + inline unsigned long atomic_fetch_xor_explicit( + volatile atomic *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long atomic_fetch_xor_explicit( + atomic *_Atom, unsigned long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast<_Atomic_ulong *>(_Atom), _Value, _Order)); + } +# 776 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +static_assert(8 == sizeof (long long), + "_ISIZE and _ITYPE should match."); +# 70 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +typedef struct _Atomic_llong + { + long long operator=(long long) volatile noexcept; + long long operator=(long long) noexcept; + + bool is_lock_free() const volatile noexcept; + bool is_lock_free() const noexcept; + void store(long long, memory_order = memory_order_seq_cst) + volatile noexcept; + void store(long long, memory_order = memory_order_seq_cst) + noexcept; + long long load(memory_order = memory_order_seq_cst) + const volatile noexcept; + long long load(memory_order = memory_order_seq_cst) + const noexcept; + operator long long() const volatile noexcept; + operator long long() const noexcept; + long long exchange(long long, + memory_order = memory_order_seq_cst) volatile noexcept; + long long exchange(long long, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_weak(long long&, long long, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_weak(long long&, long long, + memory_order, memory_order) noexcept; + bool compare_exchange_strong(long long&, long long, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_strong(long long&, long long, + memory_order, memory_order) noexcept; + bool compare_exchange_weak(long long&, long long, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_weak(long long&, long long, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_strong(long long&, long long, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_strong(long long&, long long, + memory_order = memory_order_seq_cst) noexcept; + + + long long operator++(int) volatile noexcept; + long long operator++(int) noexcept; + long long operator--(int) volatile noexcept; + long long operator--(int) noexcept; + long long operator++() volatile noexcept; + long long operator++() noexcept; + long long operator--() volatile noexcept; + long long operator--() noexcept; + long long operator+=(long long) volatile noexcept; + long long operator+=(long long) noexcept; + long long operator-=(long long) volatile noexcept; + long long operator-=(long long) noexcept; + long long operator&=(long long) volatile noexcept; + long long operator&=(long long) noexcept; + long long operator|=(long long) volatile noexcept; + long long operator|=(long long) noexcept; + long long operator^=(long long) volatile noexcept; + long long operator^=(long long) noexcept; + + long long fetch_add(long long, memory_order = memory_order_seq_cst) + volatile noexcept; + long long fetch_add(long long, memory_order = memory_order_seq_cst) noexcept; + long long fetch_sub(long long, memory_order = memory_order_seq_cst) + volatile noexcept; + long long fetch_sub(long long, memory_order = memory_order_seq_cst) noexcept; + long long fetch_and(long long, memory_order = memory_order_seq_cst) + volatile noexcept; + long long fetch_and(long long, memory_order = memory_order_seq_cst) noexcept; + long long fetch_or(long long, memory_order = memory_order_seq_cst) + volatile noexcept; + long long fetch_or(long long, memory_order = memory_order_seq_cst) noexcept; + long long fetch_xor(long long, memory_order = memory_order_seq_cst) + volatile noexcept; + long long fetch_xor(long long, memory_order = memory_order_seq_cst) noexcept; +# 169 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + alignas(sizeof(_Uint8_t)) _Uint8_t _My_val; + + + + + } _Atomic_llong; + + + +template<> + struct atomic + : _Atomic_llong + { + + atomic() noexcept = default; + + constexpr atomic(long long _Val) noexcept + : _Atomic_llong{(_Uint8_t)_Val} + { + } + + long long operator=(long long _Val) volatile noexcept + { + return (_Atomic_llong::operator=(_Val)); + } + + long long operator=(long long _Val) noexcept + { + return (_Atomic_llong::operator=(_Val)); + } + + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + }; +# 443 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline bool atomic_is_lock_free(const volatile _Atomic_llong *) noexcept + { + return (_Atomic_is_lock_free_8()); + } + +inline bool atomic_is_lock_free(const _Atomic_llong *) noexcept + { + return (_Atomic_is_lock_free_8()); + } + + +inline bool atomic_is_lock_free(const volatile atomic *) noexcept + { + return (_Atomic_is_lock_free_8()); + } + +inline bool atomic_is_lock_free(const atomic *) noexcept + { + return (_Atomic_is_lock_free_8()); + } + + + +inline void atomic_init(volatile _Atomic_llong *_Atom, + long long _Value) noexcept + { + _Atom->_My_val = (_Uint8_t)_Value; + + } + +inline void atomic_init(_Atomic_llong *_Atom, + long long _Value) noexcept + { + _Atom->_My_val = (_Uint8_t)_Value; + + } + + +inline void atomic_init(volatile atomic *_Atom, + long long _Value) noexcept + { + _Atom->_My_val = (_Uint8_t)_Value; + + } + +inline void atomic_init(atomic *_Atom, + long long _Value) noexcept + { + _Atom->_My_val = (_Uint8_t)_Value; + + } + + +inline void atomic_store_explicit( + volatile _Atomic_llong *_Atom, long long _Value, + memory_order _Order) noexcept + { + _Atomic_store_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order); + } + +inline void atomic_store_explicit( + _Atomic_llong *_Atom, long long _Value, + memory_order _Order) noexcept + { + _Atomic_store_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order); + } + +inline void atomic_store(volatile _Atomic_llong *_Atom, + long long _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void atomic_store(_Atomic_llong *_Atom, + long long _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline long long atomic_load_explicit( + const volatile _Atomic_llong *_Atom, memory_order _Order) noexcept + { + return ((long long)_Atomic_load_8 ((_Uint8_t*)&_Atom->_My_val, _Order)); + } + +inline long long atomic_load_explicit( + const _Atomic_llong *_Atom, memory_order _Order) noexcept + { + return ((long long)_Atomic_load_8 ((_Uint8_t*)&_Atom->_My_val, _Order)); + } + +inline long long atomic_load( + const volatile _Atomic_llong *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline long long atomic_load( + const _Atomic_llong *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline long long atomic_exchange_explicit( + volatile _Atomic_llong *_Atom, long long _Value, + memory_order _Order) noexcept + { + return ((long long)_Atomic_exchange_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline long long atomic_exchange_explicit( + _Atomic_llong *_Atom, long long _Value, + memory_order _Order) noexcept + { + return ((long long)_Atomic_exchange_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline long long atomic_exchange(volatile _Atomic_llong *_Atom, + long long _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long long atomic_exchange(_Atomic_llong *_Atom, + long long _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak_explicit( + volatile _Atomic_llong *_Atom, long long *_Exp, long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t*)_Exp, (_Uint8_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak_explicit( + _Atomic_llong *_Atom, long long *_Exp, long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t*)_Exp, (_Uint8_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak( + volatile _Atomic_llong *_Atom, long long *_Exp, + long long _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak( + _Atomic_llong *_Atom, long long *_Exp, + long long _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong_explicit( + volatile _Atomic_llong *_Atom, long long *_Exp, long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t*)_Exp, (_Uint8_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong_explicit( + _Atomic_llong *_Atom, long long *_Exp, long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t*)_Exp, (_Uint8_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong( + volatile _Atomic_llong *_Atom, long long *_Exp, long long _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong( + _Atomic_llong *_Atom, long long *_Exp, long long _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + + +inline long long _Atomic_llong::operator=(long long _Value) volatile noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline long long _Atomic_llong::operator=(long long _Value) noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_llong::is_lock_free() const volatile noexcept + { + return (atomic_is_lock_free(this)); + } + +inline bool _Atomic_llong::is_lock_free() const noexcept + { + return (atomic_is_lock_free(this)); + } + +inline void _Atomic_llong::store(long long _Value, + memory_order _Order) volatile noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void _Atomic_llong::store(long long _Value, + memory_order _Order) noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline long long _Atomic_llong::load( + memory_order _Order) const volatile noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline long long _Atomic_llong::load( + memory_order _Order) const noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline _Atomic_llong::operator long long() const volatile noexcept + { + return (atomic_load(this)); + } + +inline _Atomic_llong::operator long long() const noexcept + { + return (atomic_load(this)); + } + +inline long long _Atomic_llong::exchange( + long long _Value, memory_order _Order) volatile noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline long long _Atomic_llong::exchange( + long long _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_llong::compare_exchange_weak( + long long& _Exp, long long _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_llong::compare_exchange_weak( + long long& _Exp, long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_llong::compare_exchange_weak( + long long& _Exp, long long _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_llong::compare_exchange_weak( + long long& _Exp, long long _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_llong::compare_exchange_strong( + long long& _Exp, long long _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_llong::compare_exchange_strong( + long long& _Exp, long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_llong::compare_exchange_strong( + long long& _Exp, long long _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_llong::compare_exchange_strong( + long long& _Exp, long long _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + + +template<> + inline bool atomic_is_lock_free( + const volatile atomic *_Atom) noexcept + { + return (atomic_is_lock_free( + static_cast(_Atom))); + } + +template<> + inline bool atomic_is_lock_free( + const atomic *_Atom) noexcept + { + return (atomic_is_lock_free(static_cast(_Atom))); + } + +template<> + inline void atomic_init(volatile atomic *_Atom, + long long _Value) noexcept + { + atomic_init(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_init(atomic *_Atom, + long long _Value) noexcept + { + atomic_init(static_cast<_Atomic_llong *>(_Atom), _Value); + } + +template<> + inline void atomic_store(volatile atomic *_Atom, + long long _Value) noexcept + { + atomic_store(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_store(atomic *_Atom, + long long _Value) noexcept + { + atomic_store(static_cast<_Atomic_llong *>(_Atom), _Value); + } + +template<> + inline void atomic_store_explicit(volatile atomic *_Atom, + long long _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast(_Atom), + _Value, _Order); + } + +template<> + inline void atomic_store_explicit(atomic *_Atom, + long long _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast<_Atomic_llong *>(_Atom), + _Value, _Order); + } + +template<> + inline long long atomic_load(const volatile atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline long long atomic_load(const atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline long long atomic_load_explicit( + const volatile atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline long long atomic_load_explicit( + const atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline long long atomic_exchange( + volatile atomic *_Atom, long long _Value) noexcept + { + return (atomic_exchange( + static_cast(_Atom), _Value)); + } + +template<> + inline long long atomic_exchange(atomic *_Atom, + long long _Value) noexcept + { + return (atomic_exchange(static_cast<_Atomic_llong *>(_Atom), _Value)); + } + +template<> + inline long long atomic_exchange_explicit( + volatile atomic *_Atom, + long long _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline long long atomic_exchange_explicit(atomic *_Atom, + long long _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(static_cast<_Atomic_llong *>(_Atom), + _Value, _Order)); + } + +template<> + inline bool atomic_compare_exchange_weak( + volatile atomic *_Atom, long long *_Exp, + long long _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak( + atomic *_Atom, long long *_Exp, + long long _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast<_Atomic_llong *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + volatile atomic *_Atom, long long *_Exp, long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + atomic *_Atom, long long *_Exp, long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast<_Atomic_llong *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong( + volatile atomic *_Atom, long long *_Exp, + long long _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong( + atomic *_Atom, long long *_Exp, + long long _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast<_Atomic_llong *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + volatile atomic *_Atom, long long *_Exp, long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + atomic *_Atom, long long *_Exp, long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast<_Atomic_llong *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + + + + +inline long long atomic_fetch_add_explicit( + volatile _Atomic_llong *_Atom, long long _Value, + memory_order _Order) noexcept + { + return ((long long)_Atomic_fetch_add_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline long long atomic_fetch_add_explicit( + _Atomic_llong *_Atom, long long _Value, + memory_order _Order) noexcept + { + return ((long long)_Atomic_fetch_add_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline long long atomic_fetch_add(volatile _Atomic_llong *_Atom, + long long _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long long atomic_fetch_add(_Atomic_llong *_Atom, + long long _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long long atomic_fetch_sub_explicit( + volatile _Atomic_llong *_Atom, long long _Value, + memory_order _Order) noexcept + { + return ((long long)_Atomic_fetch_sub_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline long long atomic_fetch_sub_explicit( + _Atomic_llong *_Atom, long long _Value, + memory_order _Order) noexcept + { + return ((long long)_Atomic_fetch_sub_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline long long atomic_fetch_sub(volatile _Atomic_llong *_Atom, + long long _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long long atomic_fetch_sub(_Atomic_llong *_Atom, + long long _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long long atomic_fetch_and_explicit( + volatile _Atomic_llong *_Atom, long long _Value, + memory_order _Order) noexcept + { + return ((long long)_Atomic_fetch_and_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline long long atomic_fetch_and_explicit( + _Atomic_llong *_Atom, long long _Value, + memory_order _Order) noexcept + { + return ((long long)_Atomic_fetch_and_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline long long atomic_fetch_and(volatile _Atomic_llong *_Atom, + long long _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long long atomic_fetch_and(_Atomic_llong *_Atom, + long long _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long long atomic_fetch_or_explicit( + volatile _Atomic_llong *_Atom, long long _Value, + memory_order _Order) noexcept + { + return ((long long)_Atomic_fetch_or_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline long long atomic_fetch_or_explicit( + _Atomic_llong *_Atom, long long _Value, + memory_order _Order) noexcept + { + return ((long long)_Atomic_fetch_or_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline long long atomic_fetch_or( + volatile _Atomic_llong *_Atom, long long _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long long atomic_fetch_or( + _Atomic_llong *_Atom, long long _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long long atomic_fetch_xor_explicit( + volatile _Atomic_llong *_Atom, long long _Value, + memory_order _Order) noexcept + { + return ((long long)_Atomic_fetch_xor_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline long long atomic_fetch_xor_explicit( + _Atomic_llong *_Atom, long long _Value, + memory_order _Order) noexcept + { + return ((long long)_Atomic_fetch_xor_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline long long atomic_fetch_xor( + volatile _Atomic_llong *_Atom, long long _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline long long atomic_fetch_xor( + _Atomic_llong *_Atom, long long _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + + +inline long long _Atomic_llong::operator++(int) volatile noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline long long _Atomic_llong::operator++(int) noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline long long _Atomic_llong::operator--(int) volatile noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline long long _Atomic_llong::operator--(int) noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline long long _Atomic_llong::operator++() volatile noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline long long _Atomic_llong::operator++() noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline long long _Atomic_llong::operator--() volatile noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline long long _Atomic_llong::operator--() noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline long long _Atomic_llong::operator+=(long long _Right) volatile noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline long long _Atomic_llong::operator+=(long long _Right) noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline long long _Atomic_llong::operator-=(long long _Right) volatile noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline long long _Atomic_llong::operator-=(long long _Right) noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline long long _Atomic_llong::operator&=(long long _Right) volatile noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline long long _Atomic_llong::operator&=(long long _Right) noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline long long _Atomic_llong::operator|=(long long _Right) volatile noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline long long _Atomic_llong::operator|=(long long _Right) noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline long long _Atomic_llong::operator^=(long long _Right) volatile noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline long long _Atomic_llong::operator^=(long long _Right) noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline long long _Atomic_llong::fetch_add( + long long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline long long _Atomic_llong::fetch_add( + long long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline long long _Atomic_llong::fetch_sub( + long long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline long long _Atomic_llong::fetch_sub( + long long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline long long _Atomic_llong::fetch_and( + long long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline long long _Atomic_llong::fetch_and( + long long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline long long _Atomic_llong::fetch_or( + long long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline long long _Atomic_llong::fetch_or( + long long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline long long _Atomic_llong::fetch_xor( + long long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + +inline long long _Atomic_llong::fetch_xor( + long long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + + + +template<> + inline long long atomic_fetch_add( + volatile atomic *_Atom, + long long _Value) noexcept + { + return (atomic_fetch_add( + static_cast(_Atom), _Value)); + } + +template<> + inline long long atomic_fetch_add(atomic *_Atom, + long long _Value) noexcept + { + return (atomic_fetch_add(static_cast<_Atomic_llong *>(_Atom), _Value)); + } + +template<> + inline long long atomic_fetch_add_explicit( + volatile atomic *_Atom, long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline long long atomic_fetch_add_explicit( + atomic *_Atom, long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast<_Atomic_llong *>(_Atom), _Value, _Order)); + } + +template<> + inline long long atomic_fetch_sub( + volatile atomic *_Atom, + long long _Value) noexcept + { + return (atomic_fetch_sub( + static_cast(_Atom), _Value)); + } + +template<> + inline long long atomic_fetch_sub(atomic *_Atom, + long long _Value) noexcept + { + return (atomic_fetch_sub(static_cast<_Atomic_llong *>(_Atom), _Value)); + } + +template<> + inline long long atomic_fetch_sub_explicit( + volatile atomic *_Atom, long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline long long atomic_fetch_sub_explicit( + atomic *_Atom, long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast<_Atomic_llong *>(_Atom), _Value, _Order)); + } + +template<> + inline long long atomic_fetch_and( + volatile atomic *_Atom, long long _Value) noexcept + { + return (atomic_fetch_and( + static_cast(_Atom), _Value)); + } + +template<> + inline long long atomic_fetch_and( + atomic *_Atom, long long _Value) noexcept + { + return (atomic_fetch_and(static_cast<_Atomic_llong *>(_Atom), _Value)); + } + +template<> + inline long long atomic_fetch_and_explicit( + volatile atomic *_Atom, long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline long long atomic_fetch_and_explicit( + atomic *_Atom, long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast<_Atomic_llong *>(_Atom), _Value, _Order)); + } + +template<> + inline long long atomic_fetch_or(volatile atomic *_Atom, + long long _Value) noexcept + { + return (atomic_fetch_or( + static_cast(_Atom), _Value)); + } + +template<> + inline long long atomic_fetch_or(atomic *_Atom, + long long _Value) noexcept + { + return (atomic_fetch_or(static_cast<_Atomic_llong *>(_Atom), _Value)); + } + +template<> + inline long long atomic_fetch_or_explicit( + volatile atomic *_Atom, long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline long long atomic_fetch_or_explicit( + atomic *_Atom, long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast<_Atomic_llong *>(_Atom), _Value, _Order)); + } + +template<> + inline long long atomic_fetch_xor(volatile atomic *_Atom, + long long _Value) noexcept + { + return (atomic_fetch_xor( + static_cast(_Atom), _Value)); + } + +template<> + inline long long atomic_fetch_xor(atomic *_Atom, + long long _Value) noexcept + { + return (atomic_fetch_xor(static_cast<_Atomic_llong *>(_Atom), _Value)); + } + +template<> + inline long long atomic_fetch_xor_explicit( + volatile atomic *_Atom, long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline long long atomic_fetch_xor_explicit( + atomic *_Atom, long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast<_Atomic_llong *>(_Atom), _Value, _Order)); + } +# 782 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +static_assert(8 == sizeof (unsigned long long), + "_ISIZE and _ITYPE should match."); +# 70 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +typedef struct _Atomic_ullong + { + unsigned long long operator=(unsigned long long) volatile noexcept; + unsigned long long operator=(unsigned long long) noexcept; + + bool is_lock_free() const volatile noexcept; + bool is_lock_free() const noexcept; + void store(unsigned long long, memory_order = memory_order_seq_cst) + volatile noexcept; + void store(unsigned long long, memory_order = memory_order_seq_cst) + noexcept; + unsigned long long load(memory_order = memory_order_seq_cst) + const volatile noexcept; + unsigned long long load(memory_order = memory_order_seq_cst) + const noexcept; + operator unsigned long long() const volatile noexcept; + operator unsigned long long() const noexcept; + unsigned long long exchange(unsigned long long, + memory_order = memory_order_seq_cst) volatile noexcept; + unsigned long long exchange(unsigned long long, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_weak(unsigned long long&, unsigned long long, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_weak(unsigned long long&, unsigned long long, + memory_order, memory_order) noexcept; + bool compare_exchange_strong(unsigned long long&, unsigned long long, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_strong(unsigned long long&, unsigned long long, + memory_order, memory_order) noexcept; + bool compare_exchange_weak(unsigned long long&, unsigned long long, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_weak(unsigned long long&, unsigned long long, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_strong(unsigned long long&, unsigned long long, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_strong(unsigned long long&, unsigned long long, + memory_order = memory_order_seq_cst) noexcept; + + + unsigned long long operator++(int) volatile noexcept; + unsigned long long operator++(int) noexcept; + unsigned long long operator--(int) volatile noexcept; + unsigned long long operator--(int) noexcept; + unsigned long long operator++() volatile noexcept; + unsigned long long operator++() noexcept; + unsigned long long operator--() volatile noexcept; + unsigned long long operator--() noexcept; + unsigned long long operator+=(unsigned long long) volatile noexcept; + unsigned long long operator+=(unsigned long long) noexcept; + unsigned long long operator-=(unsigned long long) volatile noexcept; + unsigned long long operator-=(unsigned long long) noexcept; + unsigned long long operator&=(unsigned long long) volatile noexcept; + unsigned long long operator&=(unsigned long long) noexcept; + unsigned long long operator|=(unsigned long long) volatile noexcept; + unsigned long long operator|=(unsigned long long) noexcept; + unsigned long long operator^=(unsigned long long) volatile noexcept; + unsigned long long operator^=(unsigned long long) noexcept; + + unsigned long long fetch_add(unsigned long long, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned long long fetch_add(unsigned long long, memory_order = memory_order_seq_cst) noexcept; + unsigned long long fetch_sub(unsigned long long, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned long long fetch_sub(unsigned long long, memory_order = memory_order_seq_cst) noexcept; + unsigned long long fetch_and(unsigned long long, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned long long fetch_and(unsigned long long, memory_order = memory_order_seq_cst) noexcept; + unsigned long long fetch_or(unsigned long long, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned long long fetch_or(unsigned long long, memory_order = memory_order_seq_cst) noexcept; + unsigned long long fetch_xor(unsigned long long, memory_order = memory_order_seq_cst) + volatile noexcept; + unsigned long long fetch_xor(unsigned long long, memory_order = memory_order_seq_cst) noexcept; +# 169 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + alignas(sizeof(_Uint8_t)) _Uint8_t _My_val; + + + + + } _Atomic_ullong; + + + +template<> + struct atomic + : _Atomic_ullong + { + + atomic() noexcept = default; + + constexpr atomic(unsigned long long _Val) noexcept + : _Atomic_ullong{(_Uint8_t)_Val} + { + } + + unsigned long long operator=(unsigned long long _Val) volatile noexcept + { + return (_Atomic_ullong::operator=(_Val)); + } + + unsigned long long operator=(unsigned long long _Val) noexcept + { + return (_Atomic_ullong::operator=(_Val)); + } + + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + }; +# 443 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline bool atomic_is_lock_free(const volatile _Atomic_ullong *) noexcept + { + return (_Atomic_is_lock_free_8()); + } + +inline bool atomic_is_lock_free(const _Atomic_ullong *) noexcept + { + return (_Atomic_is_lock_free_8()); + } + + +inline bool atomic_is_lock_free(const volatile atomic *) noexcept + { + return (_Atomic_is_lock_free_8()); + } + +inline bool atomic_is_lock_free(const atomic *) noexcept + { + return (_Atomic_is_lock_free_8()); + } + + + +inline void atomic_init(volatile _Atomic_ullong *_Atom, + unsigned long long _Value) noexcept + { + _Atom->_My_val = (_Uint8_t)_Value; + + } + +inline void atomic_init(_Atomic_ullong *_Atom, + unsigned long long _Value) noexcept + { + _Atom->_My_val = (_Uint8_t)_Value; + + } + + +inline void atomic_init(volatile atomic *_Atom, + unsigned long long _Value) noexcept + { + _Atom->_My_val = (_Uint8_t)_Value; + + } + +inline void atomic_init(atomic *_Atom, + unsigned long long _Value) noexcept + { + _Atom->_My_val = (_Uint8_t)_Value; + + } + + +inline void atomic_store_explicit( + volatile _Atomic_ullong *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + _Atomic_store_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order); + } + +inline void atomic_store_explicit( + _Atomic_ullong *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + _Atomic_store_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order); + } + +inline void atomic_store(volatile _Atomic_ullong *_Atom, + unsigned long long _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void atomic_store(_Atomic_ullong *_Atom, + unsigned long long _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline unsigned long long atomic_load_explicit( + const volatile _Atomic_ullong *_Atom, memory_order _Order) noexcept + { + return ((unsigned long long)_Atomic_load_8 ((_Uint8_t*)&_Atom->_My_val, _Order)); + } + +inline unsigned long long atomic_load_explicit( + const _Atomic_ullong *_Atom, memory_order _Order) noexcept + { + return ((unsigned long long)_Atomic_load_8 ((_Uint8_t*)&_Atom->_My_val, _Order)); + } + +inline unsigned long long atomic_load( + const volatile _Atomic_ullong *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline unsigned long long atomic_load( + const _Atomic_ullong *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline unsigned long long atomic_exchange_explicit( + volatile _Atomic_ullong *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return ((unsigned long long)_Atomic_exchange_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline unsigned long long atomic_exchange_explicit( + _Atomic_ullong *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return ((unsigned long long)_Atomic_exchange_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline unsigned long long atomic_exchange(volatile _Atomic_ullong *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long long atomic_exchange(_Atomic_ullong *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak_explicit( + volatile _Atomic_ullong *_Atom, unsigned long long *_Exp, unsigned long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t*)_Exp, (_Uint8_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak_explicit( + _Atomic_ullong *_Atom, unsigned long long *_Exp, unsigned long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t*)_Exp, (_Uint8_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak( + volatile _Atomic_ullong *_Atom, unsigned long long *_Exp, + unsigned long long _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak( + _Atomic_ullong *_Atom, unsigned long long *_Exp, + unsigned long long _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong_explicit( + volatile _Atomic_ullong *_Atom, unsigned long long *_Exp, unsigned long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t*)_Exp, (_Uint8_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong_explicit( + _Atomic_ullong *_Atom, unsigned long long *_Exp, unsigned long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t*)_Exp, (_Uint8_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong( + volatile _Atomic_ullong *_Atom, unsigned long long *_Exp, unsigned long long _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong( + _Atomic_ullong *_Atom, unsigned long long *_Exp, unsigned long long _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + + +inline unsigned long long _Atomic_ullong::operator=(unsigned long long _Value) volatile noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline unsigned long long _Atomic_ullong::operator=(unsigned long long _Value) noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_ullong::is_lock_free() const volatile noexcept + { + return (atomic_is_lock_free(this)); + } + +inline bool _Atomic_ullong::is_lock_free() const noexcept + { + return (atomic_is_lock_free(this)); + } + +inline void _Atomic_ullong::store(unsigned long long _Value, + memory_order _Order) volatile noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void _Atomic_ullong::store(unsigned long long _Value, + memory_order _Order) noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline unsigned long long _Atomic_ullong::load( + memory_order _Order) const volatile noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline unsigned long long _Atomic_ullong::load( + memory_order _Order) const noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline _Atomic_ullong::operator unsigned long long() const volatile noexcept + { + return (atomic_load(this)); + } + +inline _Atomic_ullong::operator unsigned long long() const noexcept + { + return (atomic_load(this)); + } + +inline unsigned long long _Atomic_ullong::exchange( + unsigned long long _Value, memory_order _Order) volatile noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline unsigned long long _Atomic_ullong::exchange( + unsigned long long _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_ullong::compare_exchange_weak( + unsigned long long& _Exp, unsigned long long _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_ullong::compare_exchange_weak( + unsigned long long& _Exp, unsigned long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_ullong::compare_exchange_weak( + unsigned long long& _Exp, unsigned long long _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_ullong::compare_exchange_weak( + unsigned long long& _Exp, unsigned long long _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_ullong::compare_exchange_strong( + unsigned long long& _Exp, unsigned long long _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_ullong::compare_exchange_strong( + unsigned long long& _Exp, unsigned long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_ullong::compare_exchange_strong( + unsigned long long& _Exp, unsigned long long _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_ullong::compare_exchange_strong( + unsigned long long& _Exp, unsigned long long _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + + + +template<> + inline bool atomic_is_lock_free( + const volatile atomic *_Atom) noexcept + { + return (atomic_is_lock_free( + static_cast(_Atom))); + } + +template<> + inline bool atomic_is_lock_free( + const atomic *_Atom) noexcept + { + return (atomic_is_lock_free(static_cast(_Atom))); + } + +template<> + inline void atomic_init(volatile atomic *_Atom, + unsigned long long _Value) noexcept + { + atomic_init(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_init(atomic *_Atom, + unsigned long long _Value) noexcept + { + atomic_init(static_cast<_Atomic_ullong *>(_Atom), _Value); + } + +template<> + inline void atomic_store(volatile atomic *_Atom, + unsigned long long _Value) noexcept + { + atomic_store(static_cast(_Atom), _Value); + } + +template<> + inline void atomic_store(atomic *_Atom, + unsigned long long _Value) noexcept + { + atomic_store(static_cast<_Atomic_ullong *>(_Atom), _Value); + } + +template<> + inline void atomic_store_explicit(volatile atomic *_Atom, + unsigned long long _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast(_Atom), + _Value, _Order); + } + +template<> + inline void atomic_store_explicit(atomic *_Atom, + unsigned long long _Value, memory_order _Order) noexcept + { + atomic_store_explicit(static_cast<_Atomic_ullong *>(_Atom), + _Value, _Order); + } + +template<> + inline unsigned long long atomic_load(const volatile atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline unsigned long long atomic_load(const atomic *_Atom) noexcept + { + return (atomic_load(static_cast(_Atom))); + } + +template<> + inline unsigned long long atomic_load_explicit( + const volatile atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline unsigned long long atomic_load_explicit( + const atomic *_Atom, memory_order _Order) noexcept + { + return (atomic_load_explicit( + static_cast(_Atom), _Order)); + } + +template<> + inline unsigned long long atomic_exchange( + volatile atomic *_Atom, unsigned long long _Value) noexcept + { + return (atomic_exchange( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned long long atomic_exchange(atomic *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_exchange(static_cast<_Atomic_ullong *>(_Atom), _Value)); + } + +template<> + inline unsigned long long atomic_exchange_explicit( + volatile atomic *_Atom, + unsigned long long _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long long atomic_exchange_explicit(atomic *_Atom, + unsigned long long _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(static_cast<_Atomic_ullong *>(_Atom), + _Value, _Order)); + } + +template<> + inline bool atomic_compare_exchange_weak( + volatile atomic *_Atom, unsigned long long *_Exp, + unsigned long long _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak( + atomic *_Atom, unsigned long long *_Exp, + unsigned long long _Value) noexcept + { + return (atomic_compare_exchange_weak( + static_cast<_Atomic_ullong *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + volatile atomic *_Atom, unsigned long long *_Exp, unsigned long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_weak_explicit( + atomic *_Atom, unsigned long long *_Exp, unsigned long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + static_cast<_Atomic_ullong *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong( + volatile atomic *_Atom, unsigned long long *_Exp, + unsigned long long _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong( + atomic *_Atom, unsigned long long *_Exp, + unsigned long long _Value) noexcept + { + return (atomic_compare_exchange_strong( + static_cast<_Atomic_ullong *>(_Atom), _Exp, _Value)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + volatile atomic *_Atom, unsigned long long *_Exp, unsigned long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast(_Atom), _Exp, + _Value, _Order1, _Order2)); + } + +template<> + inline bool atomic_compare_exchange_strong_explicit( + atomic *_Atom, unsigned long long *_Exp, unsigned long long _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + static_cast<_Atomic_ullong *>(_Atom), _Exp, _Value, _Order1, _Order2)); + } + + + + +inline unsigned long long atomic_fetch_add_explicit( + volatile _Atomic_ullong *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return ((unsigned long long)_Atomic_fetch_add_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline unsigned long long atomic_fetch_add_explicit( + _Atomic_ullong *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return ((unsigned long long)_Atomic_fetch_add_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline unsigned long long atomic_fetch_add(volatile _Atomic_ullong *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long long atomic_fetch_add(_Atomic_ullong *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long long atomic_fetch_sub_explicit( + volatile _Atomic_ullong *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return ((unsigned long long)_Atomic_fetch_sub_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline unsigned long long atomic_fetch_sub_explicit( + _Atomic_ullong *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return ((unsigned long long)_Atomic_fetch_sub_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline unsigned long long atomic_fetch_sub(volatile _Atomic_ullong *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long long atomic_fetch_sub(_Atomic_ullong *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long long atomic_fetch_and_explicit( + volatile _Atomic_ullong *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return ((unsigned long long)_Atomic_fetch_and_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline unsigned long long atomic_fetch_and_explicit( + _Atomic_ullong *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return ((unsigned long long)_Atomic_fetch_and_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline unsigned long long atomic_fetch_and(volatile _Atomic_ullong *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long long atomic_fetch_and(_Atomic_ullong *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_fetch_and_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long long atomic_fetch_or_explicit( + volatile _Atomic_ullong *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return ((unsigned long long)_Atomic_fetch_or_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline unsigned long long atomic_fetch_or_explicit( + _Atomic_ullong *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return ((unsigned long long)_Atomic_fetch_or_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline unsigned long long atomic_fetch_or( + volatile _Atomic_ullong *_Atom, unsigned long long _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long long atomic_fetch_or( + _Atomic_ullong *_Atom, unsigned long long _Value) noexcept + { + return (atomic_fetch_or_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long long atomic_fetch_xor_explicit( + volatile _Atomic_ullong *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return ((unsigned long long)_Atomic_fetch_xor_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline unsigned long long atomic_fetch_xor_explicit( + _Atomic_ullong *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return ((unsigned long long)_Atomic_fetch_xor_8 ((_Uint8_t*)&_Atom->_My_val, (_Uint8_t)_Value, _Order)); + } + +inline unsigned long long atomic_fetch_xor( + volatile _Atomic_ullong *_Atom, unsigned long long _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline unsigned long long atomic_fetch_xor( + _Atomic_ullong *_Atom, unsigned long long _Value) noexcept + { + return (atomic_fetch_xor_explicit(_Atom, _Value, memory_order_seq_cst)); + } + + +inline unsigned long long _Atomic_ullong::operator++(int) volatile noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline unsigned long long _Atomic_ullong::operator++(int) noexcept + { + return (atomic_fetch_add(this, 1)); + } + +inline unsigned long long _Atomic_ullong::operator--(int) volatile noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline unsigned long long _Atomic_ullong::operator--(int) noexcept + { + return (atomic_fetch_sub(this, 1)); + } + +inline unsigned long long _Atomic_ullong::operator++() volatile noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline unsigned long long _Atomic_ullong::operator++() noexcept + { + return (atomic_fetch_add(this, 1) + 1); + } + +inline unsigned long long _Atomic_ullong::operator--() volatile noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline unsigned long long _Atomic_ullong::operator--() noexcept + { + return (atomic_fetch_sub(this, 1) - 1); + } + +inline unsigned long long _Atomic_ullong::operator+=(unsigned long long _Right) volatile noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline unsigned long long _Atomic_ullong::operator+=(unsigned long long _Right) noexcept + { + return (atomic_fetch_add(this, _Right) + _Right); + } + +inline unsigned long long _Atomic_ullong::operator-=(unsigned long long _Right) volatile noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline unsigned long long _Atomic_ullong::operator-=(unsigned long long _Right) noexcept + { + return (atomic_fetch_sub(this, _Right) - _Right); + } + +inline unsigned long long _Atomic_ullong::operator&=(unsigned long long _Right) volatile noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline unsigned long long _Atomic_ullong::operator&=(unsigned long long _Right) noexcept + { + return (atomic_fetch_and(this, _Right) & _Right); + } + +inline unsigned long long _Atomic_ullong::operator|=(unsigned long long _Right) volatile noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline unsigned long long _Atomic_ullong::operator|=(unsigned long long _Right) noexcept + { + return (atomic_fetch_or(this, _Right) | _Right); + } + +inline unsigned long long _Atomic_ullong::operator^=(unsigned long long _Right) volatile noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline unsigned long long _Atomic_ullong::operator^=(unsigned long long _Right) noexcept + { + return (atomic_fetch_xor(this, _Right) ^ _Right); + } + +inline unsigned long long _Atomic_ullong::fetch_add( + unsigned long long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline unsigned long long _Atomic_ullong::fetch_add( + unsigned long long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline unsigned long long _Atomic_ullong::fetch_sub( + unsigned long long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline unsigned long long _Atomic_ullong::fetch_sub( + unsigned long long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline unsigned long long _Atomic_ullong::fetch_and( + unsigned long long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline unsigned long long _Atomic_ullong::fetch_and( + unsigned long long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit(this, _Value, _Order)); + } + +inline unsigned long long _Atomic_ullong::fetch_or( + unsigned long long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline unsigned long long _Atomic_ullong::fetch_or( + unsigned long long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit(this, _Value, _Order)); + } + +inline unsigned long long _Atomic_ullong::fetch_xor( + unsigned long long _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + +inline unsigned long long _Atomic_ullong::fetch_xor( + unsigned long long _Value, memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit(this, _Value, _Order)); + } + + + +template<> + inline unsigned long long atomic_fetch_add( + volatile atomic *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_fetch_add( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned long long atomic_fetch_add(atomic *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_fetch_add(static_cast<_Atomic_ullong *>(_Atom), _Value)); + } + +template<> + inline unsigned long long atomic_fetch_add_explicit( + volatile atomic *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long long atomic_fetch_add_explicit( + atomic *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit( + static_cast<_Atomic_ullong *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long long atomic_fetch_sub( + volatile atomic *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_fetch_sub( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned long long atomic_fetch_sub(atomic *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_fetch_sub(static_cast<_Atomic_ullong *>(_Atom), _Value)); + } + +template<> + inline unsigned long long atomic_fetch_sub_explicit( + volatile atomic *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long long atomic_fetch_sub_explicit( + atomic *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit( + static_cast<_Atomic_ullong *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long long atomic_fetch_and( + volatile atomic *_Atom, unsigned long long _Value) noexcept + { + return (atomic_fetch_and( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned long long atomic_fetch_and( + atomic *_Atom, unsigned long long _Value) noexcept + { + return (atomic_fetch_and(static_cast<_Atomic_ullong *>(_Atom), _Value)); + } + +template<> + inline unsigned long long atomic_fetch_and_explicit( + volatile atomic *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long long atomic_fetch_and_explicit( + atomic *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_and_explicit( + static_cast<_Atomic_ullong *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long long atomic_fetch_or(volatile atomic *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_fetch_or( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned long long atomic_fetch_or(atomic *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_fetch_or(static_cast<_Atomic_ullong *>(_Atom), _Value)); + } + +template<> + inline unsigned long long atomic_fetch_or_explicit( + volatile atomic *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long long atomic_fetch_or_explicit( + atomic *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_or_explicit( + static_cast<_Atomic_ullong *>(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long long atomic_fetch_xor(volatile atomic *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_fetch_xor( + static_cast(_Atom), _Value)); + } + +template<> + inline unsigned long long atomic_fetch_xor(atomic *_Atom, + unsigned long long _Value) noexcept + { + return (atomic_fetch_xor(static_cast<_Atomic_ullong *>(_Atom), _Value)); + } + +template<> + inline unsigned long long atomic_fetch_xor_explicit( + volatile atomic *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast(_Atom), _Value, _Order)); + } + +template<> + inline unsigned long long atomic_fetch_xor_explicit( + atomic *_Atom, unsigned long long _Value, + memory_order _Order) noexcept + { + return (atomic_fetch_xor_explicit( + static_cast<_Atomic_ullong *>(_Atom), _Value, _Order)); + } +# 788 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 + + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 1 3 +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +static_assert(4 == sizeof (void *), + "_ISIZE and _ITYPE should match."); +# 70 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +typedef struct _Atomic_address + { + void * operator=(void *) volatile noexcept; + void * operator=(void *) noexcept; + + bool is_lock_free() const volatile noexcept; + bool is_lock_free() const noexcept; + void store(void *, memory_order = memory_order_seq_cst) + volatile noexcept; + void store(void *, memory_order = memory_order_seq_cst) + noexcept; + void * load(memory_order = memory_order_seq_cst) + const volatile noexcept; + void * load(memory_order = memory_order_seq_cst) + const noexcept; + operator void *() const volatile noexcept; + operator void *() const noexcept; + void * exchange(void *, + memory_order = memory_order_seq_cst) volatile noexcept; + void * exchange(void *, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_weak(void *&, void *, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_weak(void *&, void *, + memory_order, memory_order) noexcept; + bool compare_exchange_strong(void *&, void *, + memory_order, memory_order) volatile noexcept; + bool compare_exchange_strong(void *&, void *, + memory_order, memory_order) noexcept; + bool compare_exchange_weak(void *&, void *, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_weak(void *&, void *, + memory_order = memory_order_seq_cst) noexcept; + bool compare_exchange_strong(void *&, void *, + memory_order = memory_order_seq_cst) volatile noexcept; + bool compare_exchange_strong(void *&, void *, + memory_order = memory_order_seq_cst) noexcept; +# 146 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + void * fetch_add(ptrdiff_t, + memory_order = memory_order_seq_cst) volatile noexcept; + void * fetch_add(ptrdiff_t, + memory_order = memory_order_seq_cst) noexcept; + void * fetch_sub(ptrdiff_t, + memory_order = memory_order_seq_cst) volatile noexcept; + void * fetch_sub(ptrdiff_t, + memory_order = memory_order_seq_cst) noexcept; + void * operator+=(ptrdiff_t) volatile noexcept; + void * operator+=(ptrdiff_t) noexcept; + void * operator-=(ptrdiff_t) volatile noexcept; + void * operator-=(ptrdiff_t) noexcept; +# 171 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 + _Uint4_t _My_val; + + + } _Atomic_address; +# 208 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +template + struct atomic<_Ty *> + : _Atomic_address + { + atomic(const atomic&) = delete; + atomic& operator=(const atomic&) = delete; + atomic& operator=(const atomic&) volatile = delete; + + atomic() noexcept = default; + + constexpr atomic(_Ty *_Right) noexcept + : _Atomic_address{(_Uint4_t)_Right} + { + } + + _Ty *operator=(_Ty *_Right) volatile noexcept + { + return (reinterpret_cast<_Ty *>( + _Atomic_address::operator=((void *)_Right))); + } + + _Ty *operator=(_Ty *_Right) noexcept + { + return (reinterpret_cast<_Ty *>( + _Atomic_address::operator=((void *)_Right))); + } + + void store(_Ty *_Value, + memory_order _Order = memory_order_seq_cst) volatile noexcept + { + _Atomic_address::store((void *)_Value, _Order); + } + + void store(_Ty *_Value, + memory_order _Order = memory_order_seq_cst) noexcept + { + _Atomic_address::store((void *)_Value, _Order); + } + + _Ty *load(memory_order _Order = memory_order_seq_cst) + const volatile noexcept + { + return (reinterpret_cast<_Ty *>(_Atomic_address::load(_Order))); + } + + _Ty *load(memory_order _Order = memory_order_seq_cst) + const noexcept + { + return (reinterpret_cast<_Ty *>(_Atomic_address::load(_Order))); + } + + operator _Ty *() const volatile noexcept + { + return (reinterpret_cast<_Ty *>(_Atomic_address::operator void *())); + } + + operator _Ty *() const noexcept + { + return (reinterpret_cast<_Ty *>(_Atomic_address::operator void *())); + } + + _Ty *exchange(_Ty *_Value, + memory_order _Order = memory_order_seq_cst) volatile noexcept + { + return (reinterpret_cast<_Ty *>(_Atomic_address::exchange( + (void *)_Value, _Order))); + } + + _Ty *exchange(_Ty *_Value, + memory_order _Order = memory_order_seq_cst) noexcept + { + return (reinterpret_cast<_Ty *>(_Atomic_address::exchange( + (void *)_Value, _Order))); + } + + bool compare_exchange_weak( + _Ty *& _Exp, _Ty *_Value, + memory_order _Order1, + memory_order _Order2) volatile noexcept + { + return (_Atomic_address::compare_exchange_weak( + (void *&)_Exp, (void *)_Value, _Order1, _Order2)); + } + + bool compare_exchange_weak( + _Ty *& _Exp, _Ty *_Value, + memory_order _Order1, + memory_order _Order2) noexcept + { + return (_Atomic_address::compare_exchange_weak( + (void *&)_Exp, (void *)_Value, _Order1, _Order2)); + } + + bool compare_exchange_weak( + _Ty *& _Exp, _Ty *_Value, + memory_order _Order = memory_order_seq_cst) volatile noexcept + { + return (_Atomic_address::compare_exchange_weak( + (void *&)_Exp, (void *)_Value, _Order)); + } + + bool compare_exchange_weak( + _Ty *& _Exp, _Ty *_Value, + memory_order _Order = memory_order_seq_cst) noexcept + { + return (_Atomic_address::compare_exchange_weak( + (void *&)_Exp, (void *)_Value, _Order)); + } + + bool compare_exchange_strong( + _Ty *& _Exp, _Ty *_Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (_Atomic_address::compare_exchange_strong( + (void *&)_Exp, (void *)_Value, _Order1, _Order2)); + } + + bool compare_exchange_strong( + _Ty *& _Exp, _Ty *_Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_address::compare_exchange_strong( + (void *&)_Exp, (void *)_Value, _Order1, _Order2)); + } + + bool compare_exchange_strong( + _Ty *& _Exp, _Ty *_Value, + memory_order _Order = memory_order_seq_cst) volatile noexcept + { + return (_Atomic_address::compare_exchange_strong( + (void *&)_Exp, (void *)_Value, _Order)); + } + + bool compare_exchange_strong( + _Ty *& _Exp, _Ty *_Value, + memory_order _Order = memory_order_seq_cst) noexcept + { + return (_Atomic_address::compare_exchange_strong( + (void *&)_Exp, (void *)_Value, _Order)); + } + + typedef typename _If::value, _Ty, char>::type _Obj; + + _Ty *fetch_add(ptrdiff_t _Value, + memory_order _Order = memory_order_seq_cst) volatile noexcept + { + return (reinterpret_cast<_Ty *>( + _Atomic_address::fetch_add(_Value * sizeof (_Obj), _Order))); + } + + _Ty *fetch_add(ptrdiff_t _Value, + memory_order _Order = memory_order_seq_cst) noexcept + { + return (reinterpret_cast<_Ty *>( + _Atomic_address::fetch_add(_Value * sizeof (_Obj), _Order))); + } + + _Ty *fetch_sub(ptrdiff_t _Value, + memory_order _Order = memory_order_seq_cst) volatile noexcept + { + return (reinterpret_cast<_Ty *>( + _Atomic_address::fetch_sub(_Value * sizeof (_Obj), _Order))); + } + + _Ty *fetch_sub(ptrdiff_t _Value, + memory_order _Order = memory_order_seq_cst) noexcept + { + return (reinterpret_cast<_Ty *>( + _Atomic_address::fetch_sub(_Value * sizeof (_Obj), _Order))); + } + + _Ty *operator++(int) volatile noexcept + { + return (fetch_add(1)); + } + + _Ty *operator++(int) noexcept + { + return (fetch_add(1)); + } + + _Ty *operator--(int) volatile noexcept + { + return (fetch_sub(1)); + } + + _Ty *operator--(int) noexcept + { + return (fetch_sub(1)); + } + + _Ty *operator+=(ptrdiff_t _Right) volatile noexcept + { + return ((_Ty *)((_Obj *)fetch_add(_Right) + _Right)); + } + + _Ty *operator+=(ptrdiff_t _Right) noexcept + { + return ((_Ty *)((_Obj *)fetch_add(_Right) + _Right)); + } + + _Ty *operator-=(ptrdiff_t _Right) volatile noexcept + { + return ((_Ty *)((_Obj *)fetch_sub(_Right) - _Right)); + } + + _Ty *operator-=(ptrdiff_t _Right) noexcept + { + return ((_Ty *)((_Obj *)fetch_sub(_Right) - _Right)); + } + + _Ty *operator++() volatile noexcept + { + return (*this += 1); + } + + _Ty *operator++() noexcept + { + return (*this += 1); + } + + _Ty *operator--() volatile noexcept + { + return (*this -= 1); + } + + _Ty *operator--() noexcept + { + return (*this -= 1); + } + }; + + + + +inline bool atomic_is_lock_free(const volatile _Atomic_address *) noexcept + { + return (_Atomic_is_lock_free_4()); + } + +inline bool atomic_is_lock_free(const _Atomic_address *) noexcept + { + return (_Atomic_is_lock_free_4()); + } +# 466 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline void atomic_init(volatile _Atomic_address *_Atom, + void * _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } + +inline void atomic_init(_Atomic_address *_Atom, + void * _Value) noexcept + { + _Atom->_My_val = (_Uint4_t)_Value; + + } +# 496 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline void atomic_store_explicit( + volatile _Atomic_address *_Atom, void * _Value, + memory_order _Order) noexcept + { + _Atomic_store_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order); + } + +inline void atomic_store_explicit( + _Atomic_address *_Atom, void * _Value, + memory_order _Order) noexcept + { + _Atomic_store_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order); + } + +inline void atomic_store(volatile _Atomic_address *_Atom, + void * _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void atomic_store(_Atomic_address *_Atom, + void * _Value) noexcept + { + atomic_store_explicit(_Atom, _Value, memory_order_seq_cst); + } + +inline void * atomic_load_explicit( + const volatile _Atomic_address *_Atom, memory_order _Order) noexcept + { + return ((void *)_Atomic_load_4 ((_Uint4_t*)&_Atom->_My_val, _Order)); + } + +inline void * atomic_load_explicit( + const _Atomic_address *_Atom, memory_order _Order) noexcept + { + return ((void *)_Atomic_load_4 ((_Uint4_t*)&_Atom->_My_val, _Order)); + } + +inline void * atomic_load( + const volatile _Atomic_address *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline void * atomic_load( + const _Atomic_address *_Atom) noexcept + { + return (atomic_load_explicit(_Atom, memory_order_seq_cst)); + } + +inline void * atomic_exchange_explicit( + volatile _Atomic_address *_Atom, void * _Value, + memory_order _Order) noexcept + { + return ((void *)_Atomic_exchange_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline void * atomic_exchange_explicit( + _Atomic_address *_Atom, void * _Value, + memory_order _Order) noexcept + { + return ((void *)_Atomic_exchange_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline void * atomic_exchange(volatile _Atomic_address *_Atom, + void * _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline void * atomic_exchange(_Atomic_address *_Atom, + void * _Value) noexcept + { + return (atomic_exchange_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak_explicit( + volatile _Atomic_address *_Atom, void * *_Exp, void * _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak_explicit( + _Atomic_address *_Atom, void * *_Exp, void * _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_weak_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_weak( + volatile _Atomic_address *_Atom, void * *_Exp, + void * _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_weak( + _Atomic_address *_Atom, void * *_Exp, + void * _Value) noexcept + { + return (atomic_compare_exchange_weak_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong_explicit( + volatile _Atomic_address *_Atom, void * *_Exp, void * _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong_explicit( + _Atomic_address *_Atom, void * *_Exp, void * _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atomic_compare_exchange_strong_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t*)_Exp, (_Uint4_t)_Value, _Order1, _Order2)); + + } + +inline bool atomic_compare_exchange_strong( + volatile _Atomic_address *_Atom, void * *_Exp, void * _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + +inline bool atomic_compare_exchange_strong( + _Atomic_address *_Atom, void * *_Exp, void * _Value) noexcept + { + return (atomic_compare_exchange_strong_explicit( + _Atom, _Exp, _Value, memory_order_seq_cst, memory_order_seq_cst)); + } + + +inline void * _Atomic_address::operator=(void * _Value) volatile noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline void * _Atomic_address::operator=(void * _Value) noexcept + { + atomic_store(this, _Value); + return (_Value); + } + +inline bool _Atomic_address::is_lock_free() const volatile noexcept + { + return (atomic_is_lock_free(this)); + } + +inline bool _Atomic_address::is_lock_free() const noexcept + { + return (atomic_is_lock_free(this)); + } + +inline void _Atomic_address::store(void * _Value, + memory_order _Order) volatile noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void _Atomic_address::store(void * _Value, + memory_order _Order) noexcept + { + atomic_store_explicit(this, _Value, _Order); + } + +inline void * _Atomic_address::load( + memory_order _Order) const volatile noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline void * _Atomic_address::load( + memory_order _Order) const noexcept + { + return (atomic_load_explicit(this, _Order)); + } + +inline _Atomic_address::operator void *() const volatile noexcept + { + return (atomic_load(this)); + } + +inline _Atomic_address::operator void *() const noexcept + { + return (atomic_load(this)); + } + +inline void * _Atomic_address::exchange( + void * _Value, memory_order _Order) volatile noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline void * _Atomic_address::exchange( + void * _Value, memory_order _Order) noexcept + { + return (atomic_exchange_explicit(this, _Value, _Order)); + } + +inline bool _Atomic_address::compare_exchange_weak( + void *& _Exp, void * _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_address::compare_exchange_weak( + void *& _Exp, void * _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_address::compare_exchange_weak( + void *& _Exp, void * _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_address::compare_exchange_weak( + void *& _Exp, void * _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_weak_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_address::compare_exchange_strong( + void *& _Exp, void * _Value, + memory_order _Order1, memory_order _Order2) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_address::compare_exchange_strong( + void *& _Exp, void * _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order1, _Order2)); + } + +inline bool _Atomic_address::compare_exchange_strong( + void *& _Exp, void * _Value, + memory_order _Order) volatile noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } + +inline bool _Atomic_address::compare_exchange_strong( + void *& _Exp, void * _Value, + memory_order _Order) noexcept + { + return (atomic_compare_exchange_strong_explicit( + this, &_Exp, _Value, _Order, _Get_memory_order(_Order))); + } +# 1419 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xxatomic" 3 +inline void * atomic_fetch_add_explicit( + volatile _Atomic_address *_Atom, ptrdiff_t _Value, + memory_order _Order) noexcept + { + return ((void *)(void *)_Atomic_fetch_add_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline void * atomic_fetch_add_explicit( + _Atomic_address *_Atom, ptrdiff_t _Value, + memory_order _Order) noexcept + { + return ((void *)(void *)_Atomic_fetch_add_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline void * atomic_fetch_add( + volatile _Atomic_address *_Atom, ptrdiff_t _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline void * atomic_fetch_add( + _Atomic_address *_Atom, ptrdiff_t _Value) noexcept + { + return (atomic_fetch_add_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline void * atomic_fetch_sub_explicit( + volatile _Atomic_address *_Atom, ptrdiff_t _Value, + memory_order _Order) noexcept + { + return ((void *)(void *)_Atomic_fetch_sub_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline void * atomic_fetch_sub_explicit( + _Atomic_address *_Atom, ptrdiff_t _Value, + memory_order _Order) noexcept + { + return ((void *)(void *)_Atomic_fetch_sub_4 ((_Uint4_t*)&_Atom->_My_val, (_Uint4_t)_Value, _Order)); + } + +inline void * atomic_fetch_sub( + volatile _Atomic_address *_Atom, ptrdiff_t _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + +inline void * atomic_fetch_sub( + _Atomic_address *_Atom, ptrdiff_t _Value) noexcept + { + return (atomic_fetch_sub_explicit(_Atom, _Value, memory_order_seq_cst)); + } + + +inline void * _Atomic_address::fetch_add( + ptrdiff_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline void * _Atomic_address::fetch_add( + ptrdiff_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_add_explicit(this, _Value, _Order)); + } + +inline void * _Atomic_address::fetch_sub( + ptrdiff_t _Value, memory_order _Order) volatile noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline void * _Atomic_address::fetch_sub( + ptrdiff_t _Value, memory_order _Order) noexcept + { + return (atomic_fetch_sub_explicit(this, _Value, _Order)); + } + +inline void * _Atomic_address::operator+=(ptrdiff_t _Right) volatile noexcept + { + return ((char*)fetch_add(_Right) + _Right); + } + +inline void * _Atomic_address::operator+=(ptrdiff_t _Right) noexcept + { + return ((char*)fetch_add(_Right) + _Right); + } + +inline void * _Atomic_address::operator-=(ptrdiff_t _Right) volatile noexcept + { + return ((char*)fetch_sub(_Right) - _Right); + } + +inline void * _Atomic_address::operator-=(ptrdiff_t _Right) noexcept + { + return ((char*)fetch_sub(_Right) - _Right); + } +# 795 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\atomic" 2 3 + + + +template + inline bool atomic_is_lock_free( + const volatile atomic<_Ty> *_Atom) noexcept + { + return (_Atom->is_lock_free()); + } + +template + inline bool atomic_is_lock_free( + const atomic<_Ty> *_Atom) noexcept + { + return (_Atom->is_lock_free()); + } + +template + inline void atomic_init( + volatile atomic<_Ty> *_Atom, _Ty _Value) noexcept + { + *_Atom = _Value; + } + +template + inline void atomic_init( + atomic<_Ty> *_Atom, _Ty _Value) noexcept + { + *_Atom = _Value; + } + +template + inline void atomic_store(volatile atomic<_Ty> *_Atom, + _Ty _Value) noexcept + { + _Atom->store(_Value); + } + +template + inline void atomic_store(atomic<_Ty> *_Atom, + _Ty _Value) noexcept + { + _Atom->store(_Value); + } + +template + inline void atomic_store_explicit( + volatile atomic<_Ty> *_Atom, _Ty _Value, + memory_order _Order) noexcept + { + _Atom->store(_Value, _Order); + } + +template + inline void atomic_store_explicit( + atomic<_Ty> *_Atom, _Ty _Value, + memory_order _Order) noexcept + { + _Atom->store(_Value, _Order); + } + +template + inline _Ty atomic_load(const volatile atomic<_Ty> *_Atom) noexcept + { + return (_Atom->load()); + } + +template + inline _Ty atomic_load(const atomic<_Ty> *_Atom) noexcept + { + return (_Atom->load()); + } + +template + inline _Ty atomic_load_explicit( + const volatile atomic<_Ty> *_Atom, + memory_order _Order) noexcept + { + return (_Atom->load(_Order)); + } + +template + inline _Ty atomic_load_explicit( + const atomic<_Ty> *_Atom, + memory_order _Order) noexcept + { + return (_Atom->load(_Order)); + } + +template + inline _Ty atomic_exchange(volatile atomic<_Ty> *_Atom, + _Ty _Value) noexcept + { + return (_Atom->exchange(_Value)); + } + +template + inline _Ty atomic_exchange(atomic<_Ty> *_Atom, + _Ty _Value) noexcept + { + return (_Atom->exchange(_Value)); + } + +template + inline _Ty atomic_exchange_explicit(volatile atomic<_Ty> *_Atom, + _Ty _Value, memory_order _Order) noexcept + { + return (_Atom->exchange(_Value, _Order)); + } + +template + inline _Ty atomic_exchange_explicit(atomic<_Ty> *_Atom, _Ty _Value, + memory_order _Order) noexcept + { + return (_Atom->exchange(_Value, _Order)); + } + +template + inline bool atomic_compare_exchange_weak( + volatile atomic<_Ty> *_Atom, _Ty *_Exp, _Ty _Value) noexcept + { + return (_Atom->compare_exchange_weak(*_Exp, _Value)); + } + +template + inline bool atomic_compare_exchange_weak( + atomic<_Ty> *_Atom, _Ty *_Exp, _Ty _Value) noexcept + { + return (_Atom->compare_exchange_weak(*_Exp, _Value)); + } + +template + inline bool atomic_compare_exchange_weak_explicit( + volatile atomic<_Ty> *_Atom, _Ty *_Exp, _Ty _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atom->compare_exchange_weak(*_Exp, _Value, _Order1, _Order2)); + } + +template + inline bool atomic_compare_exchange_weak_explicit( + atomic<_Ty> *_Atom, _Ty *_Exp, _Ty _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atom->compare_exchange_weak(*_Exp, _Value, _Order1, _Order2)); + } + +template + inline bool atomic_compare_exchange_strong( + volatile atomic<_Ty> *_Atom, _Ty *_Exp, _Ty _Value) noexcept + { + return (_Atom->compare_exchange_strong(*_Exp, _Value)); + } + +template + inline bool atomic_compare_exchange_strong( + atomic<_Ty> *_Atom, _Ty *_Exp, _Ty _Value) noexcept + { + return (_Atom->compare_exchange_strong(*_Exp, _Value)); + } + +template + inline bool atomic_compare_exchange_strong_explicit( + volatile atomic<_Ty> *_Atom, _Ty *_Exp, _Ty _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atom->compare_exchange_strong(*_Exp, _Value, _Order1, _Order2)); + } + +template + inline bool atomic_compare_exchange_strong_explicit( + atomic<_Ty> *_Atom, _Ty *_Exp, _Ty _Value, + memory_order _Order1, memory_order _Order2) noexcept + { + return (_Atom->compare_exchange_strong(*_Exp, _Value, _Order1, _Order2)); + } + + +template + inline _Ty *atomic_fetch_add(volatile atomic<_Ty*> *_Atom, + ptrdiff_t _Value) noexcept + { + return (_Atom->fetch_add(_Value)); + } + +template + inline _Ty *atomic_fetch_add(atomic<_Ty*> *_Atom, + ptrdiff_t _Value) noexcept + { + return (_Atom->fetch_add(_Value)); + } + +template + inline _Ty *atomic_fetch_add_explicit( + volatile atomic<_Ty*> *_Atom, ptrdiff_t _Value, + memory_order _Order) noexcept + { + return (_Atom->fetch_add(_Value, _Order)); + } + +template + inline _Ty *atomic_fetch_add_explicit( + atomic<_Ty*> *_Atom, ptrdiff_t _Value, + memory_order _Order) noexcept + { + return (_Atom->fetch_add(_Value, _Order)); + } + +template + inline _Ty *atomic_fetch_sub(volatile atomic<_Ty*> *_Atom, + ptrdiff_t _Value) noexcept + { + return (_Atom->fetch_sub(_Value)); + } + +template + inline _Ty *atomic_fetch_sub(atomic<_Ty*> *_Atom, + ptrdiff_t _Value) noexcept + { + return (_Atom->fetch_sub(_Value)); + } + +template + inline _Ty *atomic_fetch_sub_explicit( + volatile atomic<_Ty*> *_Atom, ptrdiff_t _Value, + memory_order _Order) noexcept + { + return (_Atom->fetch_sub(_Value, _Order)); + } + +template + inline _Ty *atomic_fetch_sub_explicit( + atomic<_Ty*> *_Atom, ptrdiff_t _Value, + memory_order _Order) noexcept + { + return (_Atom->fetch_sub(_Value, _Order)); + } + + +extern "C" inline void atomic_thread_fence(memory_order _Order) noexcept + { + return (_Atomic_thread_fence(_Order)); + } + +extern "C" inline void atomic_signal_fence(memory_order _Order) noexcept + { + return (_Atomic_signal_fence(_Order)); + } + + +typedef atomic atomic_bool; + +typedef atomic atomic_char; +typedef atomic atomic_schar; +typedef atomic atomic_uchar; +typedef atomic atomic_short; +typedef atomic atomic_ushort; +typedef atomic atomic_int; +typedef atomic atomic_uint; +typedef atomic atomic_long; +typedef atomic atomic_ulong; +typedef atomic atomic_llong; +typedef atomic atomic_ullong; + +typedef atomic atomic_char16_t; +typedef atomic atomic_char32_t; + +typedef atomic atomic_wchar_t; + +typedef atomic atomic_int8_t; +typedef atomic atomic_uint8_t; +typedef atomic atomic_int16_t; +typedef atomic atomic_uint16_t; +typedef atomic atomic_int32_t; +typedef atomic atomic_uint32_t; +typedef atomic atomic_int64_t; +typedef atomic atomic_uint64_t; + +typedef atomic atomic_int_least8_t; +typedef atomic atomic_uint_least8_t; +typedef atomic atomic_int_least16_t; +typedef atomic atomic_uint_least16_t; +typedef atomic atomic_int_least32_t; +typedef atomic atomic_uint_least32_t; +typedef atomic atomic_int_least64_t; +typedef atomic atomic_uint_least64_t; + +typedef atomic atomic_int_fast8_t; +typedef atomic atomic_uint_fast8_t; +typedef atomic atomic_int_fast16_t; +typedef atomic atomic_uint_fast16_t; +typedef atomic atomic_int_fast32_t; +typedef atomic atomic_uint_fast32_t; +typedef atomic atomic_int_fast64_t; +typedef atomic atomic_uint_fast64_t; + +typedef atomic atomic_intptr_t; +typedef atomic atomic_uintptr_t; +typedef atomic atomic_size_t; +typedef atomic atomic_ptrdiff_t; +typedef atomic atomic_intmax_t; +typedef atomic atomic_uintmax_t; +} + +#pragma warning(pop) +#pragma pack(pop) +# 12 "../LEngine/Object.h" 2 + +# 1 "../LEngine/Asset.h" 1 + + + + + + + +# 1 "../LEngine/Guid.h" 1 + + + + + + +struct Guid { + union { + std::array data; + std::array datai; + }; + + Guid() :datai{ 0,0,0,0 } { + + } + Guid(uint32_t i0, uint32_t i1, uint32_t i2, uint32_t i3) : datai{ i0,i1,i2,i3 } { + + } + Guid(const std::array& data_i) : datai(data_i) { + + } + Guid(const std::array& data) : data(data) { + + } + Guid(const Guid& guid) : data(guid.data) { + + } + Guid& operator =(const Guid& right) { + data = right.data; + return *this; + } + bool operator ==(const Guid& right) const { + return std::equal(data.begin(), data.end(), right.data.begin()); + } + bool operator !=(const Guid& right) const { + return !std::equal(data.begin(), data.end(), right.data.begin()); + } + bool IsZero() const { + return (datai[0] == 0) && (datai[1] == 0) && (datai[2] == 0) && (datai[3] == 0); + } +}; +# 8 "../LEngine/Asset.h" 2 + + +class AssetFileLink { +public: + using LocalFileID = std::uint32_t; + static constexpr LocalFileID InvalidID = -1; + + Guid fileGuid; + LocalFileID localId; + + AssetFileLink():localId(InvalidID){} + + AssetFileLink(const AssetFileLink& link) :fileGuid(link.fileGuid), localId(link.localId) {} + + AssetFileLink(Guid _fileGuid, LocalFileID _localId) :fileGuid(_fileGuid), localId(_localId) {} + + AssetFileLink& operator=(const AssetFileLink& link) { + fileGuid = link.fileGuid; + localId = link.localId; + return *this; + } + + bool operator==(const AssetFileLink& link) const { + return (fileGuid == link.fileGuid) && (localId == link.localId); + } + + bool operator!=(const AssetFileLink& link) const { + return (fileGuid != link.fileGuid) || (localId != link.localId); + } + + bool IsValid() const{ + return (localId != InvalidID) && !fileGuid.IsZero(); + } +}; +# 13 "../LEngine/Object.h" 2 + + +class Object; +class OutputArchive; + +class ObjectRegistry { +public: + using instance_id_t = uint64_t; + friend class Object; +private: + static instance_id_t add_object(std::shared_ptr object); + static void remove_object(instance_id_t object); + static std::map> _registry; + static std::atomic _last_index; +}; + +class Archive; +class Object : public std::enable_shared_from_this{ +public: + using instance_id_t = ObjectRegistry::instance_id_t; + virtual void serialize(Archive& archive); + + virtual void construct() { + + } + + virtual std::wstring get_type_name() const{ + return L"Object"; + } + + std::shared_ptr as_object(){ + return shared_from_this(); + } + + template + static std::vector> FindObjectsOfType() { + std::vector> result; + auto& registry = ObjectRegistry::_registry; + for(auto& pair : registry){ + auto obj = pair.second.lock(); + auto targetObj = std::dynamic_pointer_cast(obj); + if(targetObj != nullptr){ + result.push_back(targetObj); + } + } + return result; + } + + static std::shared_ptr Find(const AssetFileLink& link) + { + auto& registry = ObjectRegistry::_registry; + for (auto& pair : registry) { + auto obj = pair.second.lock(); + if(obj != nullptr && obj->GetFileLink() == link) + { + return obj; + } + } + return nullptr; + } + + static std::shared_ptr create(); + virtual ~Object(); + + const std::wstring& get_name() const{ + return _name; + } + + void SetName(const std::wstring& name){ + _name = name; + } + + instance_id_t GetInstanceId() const{ + return _instance_id; + } + + const AssetFileLink& GetFileLink() const{ + return _fileLink; + } + void SetLink(const AssetFileLink& link){ + _fileLink = link; + } +protected: + void Register(); + Object(); + AssetFileLink _fileLink; + instance_id_t _instance_id; +private: + std::wstring _name; +}; +# 11 "../LEngine/Material.h" 2 + + + +class Material : public Object { +public: + std::wstring class_name() const { + return L"Material"; + } + void SetShader(ShaderPtr _shader); + ShaderPtr GetShader() { + return shader; + } + void SetParametersBlock(ShaderParametersBlock& block); + ShaderParametersBlock& GetParametersBlock() { + return parameters; + } + void Apply(); + static MaterialPtr Create(std::string name); + static MaterialPtr Create(ShaderPtr shader, std::string name); + static std::string DiffuseMapName(); + static std::string NormalMapName(); + static std::string DiffuseColorName(); + ShaderParametersContext& GetCompiledParameters(ShaderType shader_type) + { + return shaderParameters[(uint32_t)shader_type]; + } +private: + + Material(std::string name) + :_name(name) + { + + } + std::string _name; + ShaderPtr shader; + ShaderParametersContext shaderParameters[(uint32_t)ShaderType::Count]; + ShaderParametersBlock parameters; + + + void RebuildBuffers(); + void RebuildShaderParameters(ShaderParametersContext& params, CComPtr reflection); +}; +# 6 "../LEngine/Gizmos.h" 2 + + + + + +# 1 "../LEngine/Camera.h" 1 + + + +# 1 "../LEngine/ObjectsFactory.h" 1 + + + + + + + + +class ObjectsFactory { +public: + typedef std::function()> factory_function; + typedef std::map factory_container; + + static ObjectsFactory& instance(); + void register_factory(factory_function factory, const std::wstring& class_name); + std::shared_ptr create_object(const std::wstring& class_name) const; + + template + std::shared_ptr create_object(){ + return std::dynamic_pointer_cast(create_object(T::type_name(), game_object)); + } +private: + factory_container _factory_functions; +}; + + +template +struct ObjectFactory { + typedef std::shared_ptr object_pointer_t; + ObjectFactory() { + ObjectsFactory::instance().register_factory(&factory_func, T::type_name()); + } + static std::shared_ptr factory_func() { + return std::static_pointer_cast(T::create()); + } +}; +# 4 "../LEngine/Camera.h" 2 + + +# 1 "../LEngine/Component.h" 1 + + + + + + +class Component;static ObjectFactory Component_factory;class Component : public Object {public:static std::wstring type_name() {return L"Component";}std::wstring get_type_name() const override{ return L"Component";}static std::shared_ptr create() { auto result = std::shared_ptr(new Component()); result->Register(); result->construct(); return result;} +public: + GameObjectPtr gameObject; + TransformPtr transform(); + virtual void tick(float deltaTime) {} + Component(){} + + void serialize(Archive& archive) override; +}; +# 6 "../LEngine/Camera.h" 2 + +using namespace lm; + +class Camera;static ObjectFactory Camera_factory;class Camera : public Component {public:static std::wstring type_name() {return L"Camera";}std::wstring get_type_name() const override{ return L"Camera";}static std::shared_ptr create() { auto result = std::shared_ptr(new Camera()); result->Register(); result->construct(); return result;} +public: + float nearClipPlane = 0.03f; + float farClipPlane = 100.0f; + float fov = 45.0f; + float aspect = 1.333333333f; + + virtual void serialize(Archive& archive) override; + + float4x4 worldToCameraMatrix(); + float4x4 projectionMatrix(); + void test() { + construct(); + } +private: + float4x4 _projection; + void UpdateProjectionMatrix(); +}; + +typedef std::shared_ptr CameraPtr; +# 11 "../LEngine/Gizmos.h" 2 + +# 1 "../LEngine/Bounds.h" 1 + + + + +using namespace lm; + +class Bounds { +public: + Bounds() + :_center(0,0,0), _size(0,0,0) { + + } + Bounds(float3 center, float3 size) + :_center(center), _size(size) + { + + } + + float3 GetSize() { + return _size; + } + float3 GetCenter() { + return _center; + } + void SetSize(const float3& size) { + _size = size; + } + void SetCenter(const float3& center) { + _center = center; + } + void Scale(float value) { + _size *= value; + } + float3 Minimum() const { + return _size * -0.5f + _center; + } + float3 Maximum() const { + return _size * 0.5f + _center; + } +private: + float3 _center; + float3 _size; +}; +# 12 "../LEngine/Gizmos.h" 2 + + +using namespace lm; + +class Gizmos { +public: + Gizmos(); + void Init(); + void DrawLine(const float3& from, const float3& to); + void DrawBounds(const Bounds& bounds); + void DrawAll(CameraPtr camera); + void Clear(); + void PrepareRender(); + float4 GetColor(); + void SetColor(float4 color); + void SetMatrix(const float4x4& matrix); + float4x4 GetMatrix(); +private: + void DrawImpl(CameraPtr camera, MaterialPtr material); + ID3D11InputLayoutPtr _inputLayout; + ID3D11BufferPtr _vertexBuffer; + ID3D11DepthStencilStatePtr _backLineDepthState; + ID3D11DepthStencilStatePtr _frontLineDepthState; + MaterialPtr _backMaterial; + MaterialPtr _frontMaterial; + float4 _color; + float4x4 _matrix; + std::vector _vertices; +}; +# 8 "../LEngine/Scene.h" 2 + + +class Scene { +public: + Scene() { + _gizmos.Init(); + } + std::vector objects; + void tick(float deltaTime); + void SetName(const std::string& name); + std::string GetName(); + Gizmos& GetGizmos() { + return _gizmos; + } +private: + Gizmos _gizmos; + std::string _name; +}; +# 4 "../LEngine\\LEngine.h" 2 + + + +# 1 "../LEngine/Renderer.h" 1 + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_5.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_5.h" +typedef struct IDXGIOutput5 IDXGIOutput5; + + + + + + +typedef struct IDXGISwapChain4 IDXGISwapChain4; + + + + + + +typedef struct IDXGIDevice4 IDXGIDevice4; + + + + + + +typedef struct IDXGIFactory5 IDXGIFactory5; +# 74 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_5.h" +extern "C"{ +# 86 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_5.h" +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0000_v0_0_s_ifspec; +# 96 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_5.h" +extern "C" const IID IID_IDXGIOutput5; + + + + struct __declspec(uuid("80A07424-AB52-42EB-833C-0C42FD282D98")) __declspec(novtable) + IDXGIOutput5 : public IDXGIOutput4 + { + public: + virtual HRESULT __stdcall DuplicateOutput1( + + IUnknown *pDevice, + UINT Flags, + + UINT SupportedFormatsCount, + + const DXGI_FORMAT *pSupportedFormats, + + IDXGIOutputDuplication **ppOutputDuplication) = 0; + + }; +# 412 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_5.h" +typedef +enum DXGI_HDR_METADATA_TYPE + { + DXGI_HDR_METADATA_TYPE_NONE = 0, + DXGI_HDR_METADATA_TYPE_HDR10 = 1 + } DXGI_HDR_METADATA_TYPE; + +typedef struct DXGI_HDR_METADATA_HDR10 + { + UINT16 RedPrimary[ 2 ]; + UINT16 GreenPrimary[ 2 ]; + UINT16 BluePrimary[ 2 ]; + UINT16 WhitePoint[ 2 ]; + UINT MaxMasteringLuminance; + UINT MinMasteringLuminance; + UINT16 MaxContentLightLevel; + UINT16 MaxFrameAverageLightLevel; + } DXGI_HDR_METADATA_HDR10; + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0001_v0_0_s_ifspec; +# 443 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_5.h" +extern "C" const IID IID_IDXGISwapChain4; + + + + struct __declspec(uuid("3D585D5A-BD4A-489E-B1F4-3DBCB6452FFB")) __declspec(novtable) + IDXGISwapChain4 : public IDXGISwapChain3 + { + public: + virtual HRESULT __stdcall SetHDRMetaData( + + DXGI_HDR_METADATA_TYPE Type, + + UINT Size, + + void *pMetaData) = 0; + + }; +# 865 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_5.h" +typedef +enum _DXGI_OFFER_RESOURCE_FLAGS + { + DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT = 0x1 + } DXGI_OFFER_RESOURCE_FLAGS; + +typedef +enum _DXGI_RECLAIM_RESOURCE_RESULTS + { + DXGI_RECLAIM_RESOURCE_RESULT_OK = 0, + DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED = 1, + DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED = 2 + } DXGI_RECLAIM_RESOURCE_RESULTS; + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0002_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0002_v0_0_s_ifspec; +# 891 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_5.h" +extern "C" const IID IID_IDXGIDevice4; + + + + struct __declspec(uuid("95B4F95F-D8DA-4CA4-9EE6-3B76D5968A10")) __declspec(novtable) + IDXGIDevice4 : public IDXGIDevice3 + { + public: + virtual HRESULT __stdcall OfferResources1( + + UINT NumResources, + + IDXGIResource *const *ppResources, + + DXGI_OFFER_RESOURCE_PRIORITY Priority, + + UINT Flags) = 0; + + virtual HRESULT __stdcall ReclaimResources1( + + UINT NumResources, + + IDXGIResource *const *ppResources, + + DXGI_RECLAIM_RESOURCE_RESULTS *pResults) = 0; + + }; +# 1150 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_5.h" +typedef +enum DXGI_FEATURE + { + DXGI_FEATURE_PRESENT_ALLOW_TEARING = 0 + } DXGI_FEATURE; + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0003_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0003_v0_0_s_ifspec; +# 1168 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_5.h" +extern "C" const IID IID_IDXGIFactory5; + + + + struct __declspec(uuid("7632e1f5-ee65-4dca-87fd-84cd75f8838d")) __declspec(novtable) + IDXGIFactory5 : public IDXGIFactory4 + { + public: + virtual HRESULT __stdcall CheckFeatureSupport( + DXGI_FEATURE Feature, + + void *pFeatureSupportData, + UINT FeatureSupportDataSize) = 0; + + }; +# 1514 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\dxgi1_5.h" +extern "C" const GUID IID_IDXGIOutput5; +extern "C" const GUID IID_IDXGISwapChain4; +extern "C" const GUID IID_IDXGIDevice4; +extern "C" const GUID IID_IDXGIFactory5; + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0004_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0004_v0_0_s_ifspec; + + + + + + +} +# 6 "../LEngine/Renderer.h" 2 + + + + + +# 1 "../LEngine/FatalError.h" 1 + + + + + +inline void FatalError(const TCHAR* message) { + int b1 = 12750; + int b2 = 4750; + int len = 80; + + for(int i = 0; i < 2; ++i) { + Beep(b1, len); + Beep(b2, len); + } + + MessageBoxW(0, message, L"Error", 0x00000000L); + exit(0); +} +# 11 "../LEngine/Renderer.h" 2 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dxgidebug.h" 1 +# 44 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dxgidebug.h" +typedef struct IDXGIInfoQueue IDXGIInfoQueue; + + + + + + +typedef struct IDXGIDebug IDXGIDebug; + + + + + + +typedef struct IDXGIDebug1 IDXGIDebug1; +# 68 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dxgidebug.h" +extern "C"{ +# 80 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dxgidebug.h" +typedef +enum DXGI_DEBUG_RLO_FLAGS + { + DXGI_DEBUG_RLO_SUMMARY = 0x1, + DXGI_DEBUG_RLO_DETAIL = 0x2, + DXGI_DEBUG_RLO_IGNORE_INTERNAL = 0x4, + DXGI_DEBUG_RLO_ALL = 0x7 + } DXGI_DEBUG_RLO_FLAGS; + +typedef GUID DXGI_DEBUG_ID; + +extern "C" const GUID DXGI_DEBUG_ALL; +extern "C" const GUID DXGI_DEBUG_DX; +extern "C" const GUID DXGI_DEBUG_DXGI; +extern "C" const GUID DXGI_DEBUG_APP; +typedef +enum DXGI_INFO_QUEUE_MESSAGE_CATEGORY + { + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_UNKNOWN = 0, + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_MISCELLANEOUS = ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_UNKNOWN + 1 ) , + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_INITIALIZATION = ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_MISCELLANEOUS + 1 ) , + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_CLEANUP = ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_INITIALIZATION + 1 ) , + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_COMPILATION = ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_CLEANUP + 1 ) , + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_CREATION = ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_COMPILATION + 1 ) , + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_SETTING = ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_CREATION + 1 ) , + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_GETTING = ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_SETTING + 1 ) , + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_RESOURCE_MANIPULATION = ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_GETTING + 1 ) , + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_EXECUTION = ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_RESOURCE_MANIPULATION + 1 ) , + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_SHADER = ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_EXECUTION + 1 ) + } DXGI_INFO_QUEUE_MESSAGE_CATEGORY; + +typedef +enum DXGI_INFO_QUEUE_MESSAGE_SEVERITY + { + DXGI_INFO_QUEUE_MESSAGE_SEVERITY_CORRUPTION = 0, + DXGI_INFO_QUEUE_MESSAGE_SEVERITY_ERROR = ( DXGI_INFO_QUEUE_MESSAGE_SEVERITY_CORRUPTION + 1 ) , + DXGI_INFO_QUEUE_MESSAGE_SEVERITY_WARNING = ( DXGI_INFO_QUEUE_MESSAGE_SEVERITY_ERROR + 1 ) , + DXGI_INFO_QUEUE_MESSAGE_SEVERITY_INFO = ( DXGI_INFO_QUEUE_MESSAGE_SEVERITY_WARNING + 1 ) , + DXGI_INFO_QUEUE_MESSAGE_SEVERITY_MESSAGE = ( DXGI_INFO_QUEUE_MESSAGE_SEVERITY_INFO + 1 ) + } DXGI_INFO_QUEUE_MESSAGE_SEVERITY; + +typedef int DXGI_INFO_QUEUE_MESSAGE_ID; + + +typedef struct DXGI_INFO_QUEUE_MESSAGE + { + DXGI_DEBUG_ID Producer; + DXGI_INFO_QUEUE_MESSAGE_CATEGORY Category; + DXGI_INFO_QUEUE_MESSAGE_SEVERITY Severity; + DXGI_INFO_QUEUE_MESSAGE_ID ID; + + const char *pDescription; + SIZE_T DescriptionByteLength; + } DXGI_INFO_QUEUE_MESSAGE; + +typedef struct DXGI_INFO_QUEUE_FILTER_DESC + { + UINT NumCategories; + + DXGI_INFO_QUEUE_MESSAGE_CATEGORY *pCategoryList; + UINT NumSeverities; + + DXGI_INFO_QUEUE_MESSAGE_SEVERITY *pSeverityList; + UINT NumIDs; + + DXGI_INFO_QUEUE_MESSAGE_ID *pIDList; + } DXGI_INFO_QUEUE_FILTER_DESC; + +typedef struct DXGI_INFO_QUEUE_FILTER + { + DXGI_INFO_QUEUE_FILTER_DESC AllowList; + DXGI_INFO_QUEUE_FILTER_DESC DenyList; + } DXGI_INFO_QUEUE_FILTER; + + +HRESULT __stdcall DXGIGetDebugInterface(const IID & riid, void **ppDebug); + + +extern RPC_IF_HANDLE __MIDL_itf_dxgidebug_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgidebug_0000_0000_v0_0_s_ifspec; +# 168 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dxgidebug.h" +extern "C" const IID IID_IDXGIInfoQueue; + + + + struct __declspec(uuid("D67441C7-672A-476f-9E82-CD55B44949CE")) __declspec(novtable) + IDXGIInfoQueue : public IUnknown + { + public: + virtual HRESULT __stdcall SetMessageCountLimit( + + DXGI_DEBUG_ID Producer, + + UINT64 MessageCountLimit) = 0; + + virtual void __stdcall ClearStoredMessages( + + DXGI_DEBUG_ID Producer) = 0; + + virtual HRESULT __stdcall GetMessageW( + + DXGI_DEBUG_ID Producer, + + UINT64 MessageIndex, + + DXGI_INFO_QUEUE_MESSAGE *pMessage, + + SIZE_T *pMessageByteLength) = 0; + + virtual UINT64 __stdcall GetNumStoredMessagesAllowedByRetrievalFilters( + + DXGI_DEBUG_ID Producer) = 0; + + virtual UINT64 __stdcall GetNumStoredMessages( + + DXGI_DEBUG_ID Producer) = 0; + + virtual UINT64 __stdcall GetNumMessagesDiscardedByMessageCountLimit( + + DXGI_DEBUG_ID Producer) = 0; + + virtual UINT64 __stdcall GetMessageCountLimit( + + DXGI_DEBUG_ID Producer) = 0; + + virtual UINT64 __stdcall GetNumMessagesAllowedByStorageFilter( + + DXGI_DEBUG_ID Producer) = 0; + + virtual UINT64 __stdcall GetNumMessagesDeniedByStorageFilter( + + DXGI_DEBUG_ID Producer) = 0; + + virtual HRESULT __stdcall AddStorageFilterEntries( + + DXGI_DEBUG_ID Producer, + + DXGI_INFO_QUEUE_FILTER *pFilter) = 0; + + virtual HRESULT __stdcall GetStorageFilter( + + DXGI_DEBUG_ID Producer, + + DXGI_INFO_QUEUE_FILTER *pFilter, + + SIZE_T *pFilterByteLength) = 0; + + virtual void __stdcall ClearStorageFilter( + + DXGI_DEBUG_ID Producer) = 0; + + virtual HRESULT __stdcall PushEmptyStorageFilter( + + DXGI_DEBUG_ID Producer) = 0; + + virtual HRESULT __stdcall PushDenyAllStorageFilter( + + DXGI_DEBUG_ID Producer) = 0; + + virtual HRESULT __stdcall PushCopyOfStorageFilter( + + DXGI_DEBUG_ID Producer) = 0; + + virtual HRESULT __stdcall PushStorageFilter( + + DXGI_DEBUG_ID Producer, + + DXGI_INFO_QUEUE_FILTER *pFilter) = 0; + + virtual void __stdcall PopStorageFilter( + + DXGI_DEBUG_ID Producer) = 0; + + virtual UINT __stdcall GetStorageFilterStackSize( + + DXGI_DEBUG_ID Producer) = 0; + + virtual HRESULT __stdcall AddRetrievalFilterEntries( + + DXGI_DEBUG_ID Producer, + + DXGI_INFO_QUEUE_FILTER *pFilter) = 0; + + virtual HRESULT __stdcall GetRetrievalFilter( + + DXGI_DEBUG_ID Producer, + + DXGI_INFO_QUEUE_FILTER *pFilter, + + SIZE_T *pFilterByteLength) = 0; + + virtual void __stdcall ClearRetrievalFilter( + + DXGI_DEBUG_ID Producer) = 0; + + virtual HRESULT __stdcall PushEmptyRetrievalFilter( + + DXGI_DEBUG_ID Producer) = 0; + + virtual HRESULT __stdcall PushDenyAllRetrievalFilter( + + DXGI_DEBUG_ID Producer) = 0; + + virtual HRESULT __stdcall PushCopyOfRetrievalFilter( + + DXGI_DEBUG_ID Producer) = 0; + + virtual HRESULT __stdcall PushRetrievalFilter( + + DXGI_DEBUG_ID Producer, + + DXGI_INFO_QUEUE_FILTER *pFilter) = 0; + + virtual void __stdcall PopRetrievalFilter( + + DXGI_DEBUG_ID Producer) = 0; + + virtual UINT __stdcall GetRetrievalFilterStackSize( + + DXGI_DEBUG_ID Producer) = 0; + + virtual HRESULT __stdcall AddMessage( + + DXGI_DEBUG_ID Producer, + + DXGI_INFO_QUEUE_MESSAGE_CATEGORY Category, + + DXGI_INFO_QUEUE_MESSAGE_SEVERITY Severity, + + DXGI_INFO_QUEUE_MESSAGE_ID ID, + + LPCSTR pDescription) = 0; + + virtual HRESULT __stdcall AddApplicationMessage( + + DXGI_INFO_QUEUE_MESSAGE_SEVERITY Severity, + + LPCSTR pDescription) = 0; + + virtual HRESULT __stdcall SetBreakOnCategory( + + DXGI_DEBUG_ID Producer, + + DXGI_INFO_QUEUE_MESSAGE_CATEGORY Category, + + BOOL bEnable) = 0; + + virtual HRESULT __stdcall SetBreakOnSeverity( + + DXGI_DEBUG_ID Producer, + + DXGI_INFO_QUEUE_MESSAGE_SEVERITY Severity, + + BOOL bEnable) = 0; + + virtual HRESULT __stdcall SetBreakOnID( + + DXGI_DEBUG_ID Producer, + + DXGI_INFO_QUEUE_MESSAGE_ID ID, + + BOOL bEnable) = 0; + + virtual BOOL __stdcall GetBreakOnCategory( + + DXGI_DEBUG_ID Producer, + + DXGI_INFO_QUEUE_MESSAGE_CATEGORY Category) = 0; + + virtual BOOL __stdcall GetBreakOnSeverity( + + DXGI_DEBUG_ID Producer, + + DXGI_INFO_QUEUE_MESSAGE_SEVERITY Severity) = 0; + + virtual BOOL __stdcall GetBreakOnID( + + DXGI_DEBUG_ID Producer, + + DXGI_INFO_QUEUE_MESSAGE_ID ID) = 0; + + virtual void __stdcall SetMuteDebugOutput( + + DXGI_DEBUG_ID Producer, + + BOOL bMute) = 0; + + virtual BOOL __stdcall GetMuteDebugOutput( + + DXGI_DEBUG_ID Producer) = 0; + + }; +# 790 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dxgidebug.h" +extern "C" const IID IID_IDXGIDebug; + + + + struct __declspec(uuid("119E7452-DE9E-40fe-8806-88F90C12B441")) __declspec(novtable) + IDXGIDebug : public IUnknown + { + public: + virtual HRESULT __stdcall ReportLiveObjects( + GUID apiid, + DXGI_DEBUG_RLO_FLAGS flags) = 0; + + }; +# 872 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dxgidebug.h" +extern "C" const IID IID_IDXGIDebug1; + + + + struct __declspec(uuid("c5a05f0c-16f2-4adf-9f4d-a8c4d58ac550")) __declspec(novtable) + IDXGIDebug1 : public IDXGIDebug + { + public: + virtual void __stdcall EnableLeakTrackingForThread( void) = 0; + + virtual void __stdcall DisableLeakTrackingForThread( void) = 0; + + virtual BOOL __stdcall IsLeakTrackingEnabledForThread( void) = 0; + + }; +# 977 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dxgidebug.h" +extern "C" const GUID IID_IDXGIInfoQueue; +extern "C" const GUID IID_IDXGIDebug; +extern "C" const GUID IID_IDXGIDebug1; + + +extern RPC_IF_HANDLE __MIDL_itf_dxgidebug_0000_0003_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgidebug_0000_0003_v0_0_s_ifspec; + + + + + + +} +# 14 "../LEngine/Renderer.h" 2 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\sstream" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + +namespace std { +#pragma warning(disable: 4251) + + +template + class basic_stringbuf + : public basic_streambuf<_Elem, _Traits> + { +public: + typedef basic_stringbuf<_Elem, _Traits, _Alloc> _Myt; + typedef _Alloc allocator_type; + typedef basic_streambuf<_Elem, _Traits> _Mysb; + typedef basic_string<_Elem, _Traits, _Alloc> _Mystr; + + explicit basic_stringbuf(ios_base::openmode _Mode = + ios_base::in | ios_base::out) + { + _Init(0, 0, _Getstate(_Mode)); + } + + explicit basic_stringbuf(const _Mystr& _Str, + ios_base::openmode _Mode = ios_base::in | ios_base::out) + { + _Init(_Str.c_str(), _Str.size(), _Getstate(_Mode)); + } + + basic_stringbuf(_Myt&& _Right) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + + _Myt& operator=(_Myt&& _Right) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + return (*this); + } + + void _Assign_rv(_Myt&& _Right) + { + if (this != &_Right) + { + _Tidy(); + this->swap(_Right); + } + } + + void swap(_Myt& _Right) + { + if (this != &_Right) + { + _Mysb::swap(_Right); + ::std:: swap(_Seekhigh, _Right._Seekhigh); + ::std:: swap(_Mystate, _Right._Mystate); + _Swap_adl(_Al, _Right._Al); + } + } + + basic_stringbuf(const _Myt&) = delete; + _Myt& operator=(const _Myt&) = delete; + + virtual ~basic_stringbuf() noexcept + { + _Tidy(); + } + + enum + { + _Allocated = 1, + _Constant = 2, + _Noread = 4, + _Append = 8, + _Atend = 16}; + typedef int _Strstate; + + typedef typename _Traits::int_type int_type; + typedef typename _Traits::pos_type pos_type; + typedef typename _Traits::off_type off_type; + + _Mystr str() const + { + if (!(_Mystate & _Constant) && _Mysb::pptr() != 0) + { + _Mystr _Str(_Mysb::pbase(), (_Seekhigh < _Mysb::pptr() + ? _Mysb::pptr() : _Seekhigh) - _Mysb::pbase()); + return (_Str); + } + else if (!(_Mystate & _Noread) && _Mysb::gptr() != 0) + { + _Mystr _Str(_Mysb::eback(), _Mysb::egptr() - _Mysb::eback()); + return (_Str); + } + else + { + _Mystr _Nul; + return (_Nul); + } + } + + void str(const _Mystr& _Newstr) + { + _Tidy(); + _Init(_Newstr.c_str(), _Newstr.size(), _Mystate); + } + +protected: + virtual int_type overflow(int_type _Meta = _Traits::eof()) + { + if (_Mystate & _Constant) + return (_Traits::eof()); + else if (_Traits::eq_int_type(_Traits::eof(), _Meta)) + return (_Traits::not_eof(_Meta)); + + if (_Mystate & _Append + && _Mysb::pptr() != 0 && _Mysb::pptr() < _Seekhigh) + _Mysb::setp(_Mysb::pbase(), _Seekhigh, _Mysb::epptr()); + + if (_Mysb::pptr() != 0 + && _Mysb::pptr() < _Mysb::epptr()) + { + *_Mysb::_Pninc() = _Traits::to_char_type(_Meta); + return (_Meta); + } + else + { + size_t _Oldsize = _Mysb::pptr() == 0 + ? 0 : _Mysb::epptr() - _Mysb::eback(); + size_t _Newsize = _Oldsize; + size_t _Inc = _Newsize / 2 < _MINSIZE + ? _MINSIZE : _Newsize / 2; + + while (0 < _Inc && 2147483647 - _Inc < _Newsize) + _Inc /= 2; + if (_Inc == 0) + return (_Traits::eof()); + + _Newsize += _Inc; + + _Elem *_Newptr = _Al.allocate(_Newsize); + _Elem *_Oldptr = _Mysb::eback(); + + if (0 < _Oldsize) + _Traits::copy(_Newptr, _Oldptr, _Oldsize); + + if (_Oldsize == 0) + { + _Seekhigh = _Newptr; + _Mysb::setp(_Newptr, _Newptr + _Newsize); + if (_Mystate & _Noread) + _Mysb::setg(_Newptr, 0, _Newptr); + else + _Mysb::setg(_Newptr, _Newptr, _Newptr + 1); + } + else + { + _Seekhigh = _Newptr + (_Seekhigh - _Oldptr); + _Mysb::setp(_Newptr + (_Mysb::pbase() - _Oldptr), + _Newptr + (_Mysb::pptr() - _Oldptr), + _Newptr + _Newsize); + if (_Mystate & _Noread) + _Mysb::setg(_Newptr, 0, _Newptr); + else + _Mysb::setg(_Newptr, + _Newptr + (_Mysb::gptr() - _Oldptr), + _Mysb::pptr() + 1); + } + + if (_Mystate & _Allocated) + _Al.deallocate(_Oldptr, _Oldsize); + _Mystate |= _Allocated; + + *_Mysb::_Pninc() = _Traits::to_char_type(_Meta); + return (_Meta); + } + } + + virtual int_type pbackfail(int_type _Meta = _Traits::eof()) + { + if (_Mysb::gptr() == 0 + || _Mysb::gptr() <= _Mysb::eback() + || (!_Traits::eq_int_type(_Traits::eof(), _Meta) + && !_Traits::eq(_Traits::to_char_type(_Meta), _Mysb::gptr()[-1]) + && _Mystate & _Constant)) + return (_Traits::eof()); + else + { + _Mysb::gbump(-1); + if (!_Traits::eq_int_type(_Traits::eof(), _Meta)) + *_Mysb::gptr() = _Traits::to_char_type(_Meta); + return (_Traits::not_eof(_Meta)); + } + } + + virtual int_type underflow() + { + if (_Mysb::gptr() == 0) + return (_Traits::eof()); + else if (_Mysb::gptr() < _Mysb::egptr()) + return (_Traits::to_int_type(*_Mysb::gptr())); + else if (_Mystate & _Noread || _Mysb::pptr() == 0 + || (_Mysb::pptr() <= _Mysb::gptr() && _Seekhigh <= _Mysb::gptr())) + return (_Traits::eof()); + else + { + if (_Seekhigh < _Mysb::pptr()) + _Seekhigh = _Mysb::pptr(); + _Mysb::setg(_Mysb::eback(), _Mysb::gptr(), _Seekhigh); + return (_Traits::to_int_type(*_Mysb::gptr())); + } + } + + virtual pos_type seekoff(off_type _Off, + ios_base::seekdir _Way, + ios_base::openmode _Which = ios_base::in | ios_base::out) + { + if (_Mysb::pptr() != 0 && _Seekhigh < _Mysb::pptr()) + _Seekhigh = _Mysb::pptr(); + + if (_Which & ios_base::in && _Mysb::gptr() != 0) + { + if (_Way == ios_base::end) + _Off += (off_type)(_Seekhigh - _Mysb::eback()); + else if (_Way == ios_base::cur + && (_Which & ios_base::out) == 0) + _Off += (off_type)(_Mysb::gptr() - _Mysb::eback()); + else if (_Way != ios_base::beg) + _Off = _BADOFF; + + if (0 <= _Off && _Off <= _Seekhigh - _Mysb::eback()) + { + _Mysb::gbump((int)(_Mysb::eback() - _Mysb::gptr() + _Off)); + if (_Which & ios_base::out && _Mysb::pptr() != 0) + _Mysb::setp(_Mysb::pbase(), _Mysb::gptr(), + _Mysb::epptr()); + } + else + _Off = _BADOFF; + } + else if (_Which & ios_base::out && _Mysb::pptr() != 0) + { + if (_Way == ios_base::end) + _Off += (off_type)(_Seekhigh - _Mysb::eback()); + else if (_Way == ios_base::cur) + _Off += (off_type)(_Mysb::pptr() - _Mysb::eback()); + else if (_Way != ios_base::beg) + _Off = _BADOFF; + + if (0 <= _Off && _Off <= _Seekhigh - _Mysb::eback()) + _Mysb::pbump((int)(_Mysb::eback() + - _Mysb::pptr() + _Off)); + else + _Off = _BADOFF; + } + + else if (_Off != 0) + + + _Off = _BADOFF; + return (pos_type(_Off)); + } + + virtual pos_type seekpos(pos_type _Ptr, + ios_base::openmode _Mode = ios_base::in | ios_base::out) + { + streamoff _Off = (streamoff)_Ptr; + if (_Mysb::pptr() != 0 && _Seekhigh < _Mysb::pptr()) + _Seekhigh = _Mysb::pptr(); + + if (_Off == _BADOFF) + ; + else if (_Mode & ios_base::in && _Mysb::gptr() != 0) + { + if (0 <= _Off && _Off <= _Seekhigh - _Mysb::eback()) + { + _Mysb::gbump((int)(_Mysb::eback() - _Mysb::gptr() + _Off)); + if (_Mode & ios_base::out && _Mysb::pptr() != 0) + _Mysb::setp(_Mysb::pbase(), _Mysb::gptr(), + _Mysb::epptr()); + } + else + _Off = _BADOFF; + } + else if (_Mode & ios_base::out && _Mysb::pptr() != 0) + { + if (0 <= _Off && _Off <= _Seekhigh - _Mysb::eback()) + _Mysb::pbump((int)(_Mysb::eback() + - _Mysb::pptr() + _Off)); + else + _Off = _BADOFF; + } + else + _Off = _BADOFF; + return (streampos(_Off)); + } + + void _Init(const _Elem *_Ptr, + size_t _Count, _Strstate _State) + { + _Seekhigh = 0; + _Mystate = _State; + + if (_Count != 0 + && (_Mystate & (_Noread | _Constant)) != (_Noread | _Constant)) + { + _Elem *_Pnew = _Al.allocate(_Count); + _Traits::copy(_Pnew, _Ptr, _Count); + _Seekhigh = _Pnew + _Count; + + if (!(_Mystate & _Noread)) + _Mysb::setg(_Pnew, _Pnew, + _Pnew + _Count); + if (!(_Mystate & _Constant)) + { + _Mysb::setp(_Pnew, + (_Mystate & (_Atend | _Append)) ? _Pnew + _Count : _Pnew, + _Pnew + _Count); + if (_Mysb::gptr() == 0) + _Mysb::setg(_Pnew, 0, _Pnew); + } + _Mystate |= _Allocated; + } + } + + void _Tidy() + { + if (_Mystate & _Allocated) + _Al.deallocate(_Mysb::eback(), + (_Mysb::pptr() != 0 ? _Mysb::epptr() + : _Mysb::egptr()) - _Mysb::eback()); + _Mysb::setg(0, 0, 0); + _Mysb::setp(0, 0); + _Seekhigh = 0; + _Mystate &= ~_Allocated; + } + +private: + enum + { + _MINSIZE = 32}; + + _Strstate _Getstate(ios_base::openmode _Mode) + { + _Strstate _State = (_Strstate)0; + if (!(_Mode & ios_base::in)) + _State |= _Noread; + if (!(_Mode & ios_base::out)) + _State |= _Constant; + if (_Mode & ios_base::app) + _State |= _Append; + if (_Mode & ios_base::ate) + _State |= _Atend; + return (_State); + } + + _Elem *_Seekhigh; + _Strstate _Mystate; + allocator_type _Al; + }; + + +template inline + void swap(basic_stringbuf<_Elem, _Traits, _Alloc>& _Left, + basic_stringbuf<_Elem, _Traits, _Alloc>& _Right) + { + _Left.swap(_Right); + } + + +template + class basic_istringstream + : public basic_istream<_Elem, _Traits> + { +public: + typedef basic_istringstream<_Elem, _Traits, _Alloc> _Myt; + typedef basic_istream<_Elem, _Traits> _Mybase; + typedef _Alloc allocator_type; + typedef basic_stringbuf<_Elem, _Traits, _Alloc> _Mysb; + typedef basic_string<_Elem, _Traits, _Alloc> _Mystr; + + explicit basic_istringstream(ios_base::openmode _Mode = ios_base::in) + : _Mybase(&_Stringbuffer), + _Stringbuffer(_Mode | ios_base::in) + { + } + + explicit basic_istringstream(const _Mystr& _Str, + ios_base::openmode _Mode = ios_base::in) + : _Mybase(&_Stringbuffer), + _Stringbuffer(_Str, _Mode | ios_base::in) + { + } + + basic_istringstream(_Myt&& _Right) + : _Mybase(&_Stringbuffer) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + + _Myt& operator=(_Myt&& _Right) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + return (*this); + } + + void _Assign_rv(_Myt&& _Right) + { + if (this != &_Right) + { + _Stringbuffer.str(_Mystr()); + this->swap(_Right); + } + } + + void swap(_Myt& _Right) + { + if (this != &_Right) + { + _Mybase::swap(_Right); + _Stringbuffer.swap(_Right._Stringbuffer); + } + } + + basic_istringstream(const _Myt&) = delete; + _Myt& operator=(const _Myt&) = delete; + + virtual ~basic_istringstream() noexcept + { + } + + _Mysb *rdbuf() const + { + return ((_Mysb *)&_Stringbuffer); + } + + _Mystr str() const + { + return (_Stringbuffer.str()); + } + + void str(const _Mystr& _Newstr) + { + _Stringbuffer.str(_Newstr); + } + +private: + _Mysb _Stringbuffer; + }; + + +template inline + void swap(basic_istringstream<_Elem, _Traits, _Alloc>& _Left, + basic_istringstream<_Elem, _Traits, _Alloc>& _Right) + { + _Left.swap(_Right); + } + + +template + class basic_ostringstream + : public basic_ostream<_Elem, _Traits> + { +public: + typedef basic_ostringstream<_Elem, _Traits, _Alloc> _Myt; + typedef basic_ostream<_Elem, _Traits> _Mybase; + typedef _Alloc allocator_type; + typedef basic_stringbuf<_Elem, _Traits, _Alloc> _Mysb; + typedef basic_string<_Elem, _Traits, _Alloc> _Mystr; + + explicit basic_ostringstream(ios_base::openmode _Mode = ios_base::out) + : _Mybase(&_Stringbuffer), + _Stringbuffer(_Mode | ios_base::out) + { + } + + explicit basic_ostringstream(const _Mystr& _Str, + ios_base::openmode _Mode = ios_base::out) + : _Mybase(&_Stringbuffer), + _Stringbuffer(_Str, _Mode | ios_base::out) + { + } + + basic_ostringstream(_Myt&& _Right) + : _Mybase(&_Stringbuffer) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + + _Myt& operator=(_Myt&& _Right) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + return (*this); + } + + void _Assign_rv(_Myt&& _Right) + { + if (this != &_Right) + { + _Stringbuffer.str(_Mystr()); + this->swap(_Right); + } + } + + void swap(_Myt& _Right) + { + if (this != &_Right) + { + _Mybase::swap(_Right); + _Stringbuffer.swap(_Right._Stringbuffer); + } + } + + basic_ostringstream(const _Myt&) = delete; + _Myt& operator=(const _Myt&) = delete; + + virtual ~basic_ostringstream() noexcept + { + } + + _Mysb *rdbuf() const + { + return ((_Mysb *)&_Stringbuffer); + } + + _Mystr str() const + { + return (_Stringbuffer.str()); + } + + void str(const _Mystr& _Newstr) + { + _Stringbuffer.str(_Newstr); + } + +private: + _Mysb _Stringbuffer; + }; + + +template inline + void swap(basic_ostringstream<_Elem, _Traits, _Alloc>& _Left, + basic_ostringstream<_Elem, _Traits, _Alloc>& _Right) + { + _Left.swap(_Right); + } + + +template + class basic_stringstream + : public basic_iostream<_Elem, _Traits> + { +public: + typedef basic_stringstream<_Elem, _Traits, _Alloc> _Myt; + typedef basic_iostream<_Elem, _Traits> _Mybase; + typedef _Elem char_type; + typedef _Traits traits_type; + typedef _Alloc allocator_type; + typedef typename _Traits::int_type int_type; + typedef typename _Traits::pos_type pos_type; + typedef typename _Traits::off_type off_type; + typedef basic_stringbuf<_Elem, _Traits, _Alloc> _Mysb; + typedef basic_string<_Elem, _Traits, _Alloc> _Mystr; + + explicit basic_stringstream(ios_base::openmode _Mode = + ios_base::in | ios_base::out) + : _Mybase(&_Stringbuffer), + _Stringbuffer(_Mode) + { + } + + explicit basic_stringstream(const _Mystr& _Str, + ios_base::openmode _Mode = ios_base::in | ios_base::out) + : _Mybase(&_Stringbuffer), + _Stringbuffer(_Str, _Mode) + { + } + + basic_stringstream(_Myt&& _Right) + : _Mybase(&_Stringbuffer) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + + _Myt& operator=(_Myt&& _Right) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + return (*this); + } + + void _Assign_rv(_Myt&& _Right) + { + if (this != &_Right) + { + _Stringbuffer.str(_Mystr()); + this->swap(_Right); + } + } + + void swap(_Myt& _Right) + { + if (this != &_Right) + { + _Mybase::swap(_Right); + _Stringbuffer.swap(_Right._Stringbuffer); + } + } + + basic_stringstream(const _Myt&) = delete; + _Myt& operator=(const _Myt&) = delete; + + virtual ~basic_stringstream() noexcept + { + } + + _Mysb *rdbuf() const + { + return ((_Mysb *)&_Stringbuffer); + } + + _Mystr str() const + { + return (_Stringbuffer.str()); + } + + void str(const _Mystr& _Newstr) + { + _Stringbuffer.str(_Newstr); + } + +private: + _Mysb _Stringbuffer; + }; + + +template inline + void swap(basic_stringstream<_Elem, _Traits, _Alloc>& _Left, + basic_stringstream<_Elem, _Traits, _Alloc>& _Right) + { + _Left.swap(_Right); + } +} + +#pragma warning(pop) +#pragma pack(pop) +# 15 "../LEngine/Renderer.h" 2 + +# 1 "../LEngine/D3d12DescriptorHeapAllocator.h" 1 + + + + + +# 1 "../LEngine/d3d11_helper.h" 1 + + + + + +class d3d11_helper { +public: + static void DefaultDepthStencilDesc(D3D11_DEPTH_STENCIL_DESC& desc) { + desc.DepthEnable = 1; + desc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL; + desc.DepthFunc = D3D11_COMPARISON_LESS; + desc.StencilEnable = 0; + desc.StencilReadMask = ( 0xff ); + desc.StencilWriteMask = ( 0xff ); + desc.FrontFace.StencilFunc = D3D11_COMPARISON_ALWAYS; + desc.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS; + desc.FrontFace.StencilDepthFailOp = D3D11_STENCIL_OP_KEEP; + desc.BackFace.StencilDepthFailOp = D3D11_STENCIL_OP_KEEP; + desc.FrontFace.StencilPassOp = D3D11_STENCIL_OP_KEEP; + desc.BackFace.StencilPassOp = D3D11_STENCIL_OP_KEEP; + desc.FrontFace.StencilFailOp = D3D11_STENCIL_OP_KEEP; + desc.BackFace.StencilFailOp = D3D11_STENCIL_OP_KEEP; + } +}; +# 6 "../LEngine/D3d12DescriptorHeapAllocator.h" 2 + + + +# 1 "../LEngine/ForwardListItem.h" 1 + + + +class ForwardListItem{ +public: + ForwardListItem* next; +}; +# 9 "../LEngine/D3d12DescriptorHeapAllocator.h" 2 + + +class D3d12DescriptorHeapAllocator { +public: + + D3d12DescriptorHeapAllocator(CComPtr heap):_heap(heap) + { + _descriptor = heap->GetDesc(); + _heapStartAddress = heap->GetCPUDescriptorHandleForHeapStart().ptr; + ID3D12DevicePtr device; + heap->GetDevice(__uuidof(**(&device)), IID_PPV_ARGS_Helper(&device)); + _itemSize = device->GetDescriptorHandleIncrementSize(_descriptor.Type); + + _items.resize(_descriptor.NumDescriptors); + + for(size_t i = 0; i < _descriptor.NumDescriptors - 1; ++i){ + _items[i].next = &_items[i + 1]; + } + _items[_descriptor.NumDescriptors - 1].next = nullptr; + _listHead = &_items[0]; + } + + D3D12_CPU_DESCRIPTOR_HANDLE alloc(){ + if(_listHead == nullptr){ + return {0}; + } + auto allocatedId = getItemIndex(_listHead); + auto resultAddress = _heapStartAddress + (allocatedId * _itemSize); + _listHead = _listHead->next; + return{ resultAddress }; + } + void free(D3D12_CPU_DESCRIPTOR_HANDLE handle){ + auto itemId = getDescriptorId(handle); + if (itemId >= _items.size()) { + throw std::exception("Invalid handle"); + } + auto freeItem = &_items[itemId]; + freeItem->next = _listHead; + _listHead = freeItem; + + } + CComPtr getHeap() + { + return _heap; + } + size_t getItemSize() const + { + return _itemSize; + } + size_t getDescriptorId(D3D12_CPU_DESCRIPTOR_HANDLE handle) const + { + if (handle.ptr < _heapStartAddress) { + throw std::exception("Invalid handle"); + } + return (handle.ptr - _heapStartAddress) / _itemSize; + } + size_t getDescriptorsCount() const + { + return _descriptor.NumDescriptors; + } +private: + size_t getItemIndex(const ForwardListItem* item) const noexcept{ + return (item - &_items[0]); + } + CComPtr _heap; + ForwardListItem* _listHead = nullptr; + std::vector _items; + D3D12_DESCRIPTOR_HEAP_DESC _descriptor; + size_t _itemSize; + size_t _heapStartAddress; +}; +# 16 "../LEngine/Renderer.h" 2 +# 34 "../LEngine/Renderer.h" +class Renderer { +public: + bool Init(); + + ID3D12DevicePtr GetDevice(); + + CComPtr GetAdapter() { + return dxgiAdapter; + } + CComPtr GetFactory() { + return dxgiFactory; + } + + CComPtr BeginCommandList(); + void EndCommandList(); + + std::vector EnumOutputs(); + IDXGISwapChain1Ptr CreateSwapChain(HWND window, bool windowed, uint32_t width, uint32_t height, uint32_t buffers_count, bool stereo); + std::vector GetDisplayModes(DXGI_FORMAT format, IDXGIOutput1Ptr output); + std::vector GetStereoModes(std::vector& modes); + void WaitCommandsQueue(); + + std::shared_ptr getSrvDescriptorsAllocator(); + +private: + CComPtr dxgiInfoQueue; + ID3D12DevicePtr device; + IDXGIAdapter1Ptr dxgiAdapter; + IDXGIFactory4Ptr dxgiFactory; + + CComPtr _directCommandQueue; + CComPtr _directCommandList; + CComPtr _directCommandAllocator; + + CComPtr _srvDescriptorsHeap; + std::shared_ptr _srvDescriptorAllocator; +}; + +typedef std::shared_ptr RendererPtr; +# 7 "../LEngine\\LEngine.h" 2 + +# 1 "../LEngine/RenderOutput.h" 1 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cassert" 1 3 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\assert.h" 1 3 +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\assert.h" 3 +#pragma pack(push, 8) +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\assert.h" 3 + extern "C" { +# 26 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\assert.h" 3 + void __cdecl _wassert( + wchar_t const* _Message, + wchar_t const* _File, + unsigned _Line + ); +# 41 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\assert.h" 3 +} +# 41 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\assert.h" 3 +#pragma pack(pop) +# 4 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\cassert" 2 3 +# 6 "../LEngine/RenderOutput.h" 2 + + + + + +# 1 "../LEngine/d3dx12.h" 1 +# 19 "../LEngine/d3dx12.h" +struct CD3DX12_DEFAULT {}; +extern const __declspec(selectany) CD3DX12_DEFAULT D3D12_DEFAULT; + + +inline bool operator==(const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r) { + return l.TopLeftX == r.TopLeftX && l.TopLeftY == r.TopLeftY && l.Width == r.Width && + l.Height == r.Height && l.MinDepth == r.MinDepth && l.MaxDepth == r.MaxDepth; +} + + +inline bool operator!=(const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r) { + return !(l == r); +} + + +struct CD3DX12_RECT : public D3D12_RECT { + CD3DX12_RECT() { + } + explicit CD3DX12_RECT(const D3D12_RECT& o) : + D3D12_RECT(o) { + } + explicit CD3DX12_RECT( + LONG Left, + LONG Top, + LONG Right, + LONG Bottom) { + left = Left; + top = Top; + right = Right; + bottom = Bottom; + } + ~CD3DX12_RECT() {} + operator const D3D12_RECT&() const { return *this; } +}; + + +struct CD3DX12_BOX : public D3D12_BOX { + CD3DX12_BOX() { + } + explicit CD3DX12_BOX(const D3D12_BOX& o) : + D3D12_BOX(o) { + } + explicit CD3DX12_BOX( + LONG Left, + LONG Right) { + left = Left; + top = 0; + front = 0; + right = Right; + bottom = 1; + back = 1; + } + explicit CD3DX12_BOX( + LONG Left, + LONG Top, + LONG Right, + LONG Bottom) { + left = Left; + top = Top; + front = 0; + right = Right; + bottom = Bottom; + back = 1; + } + explicit CD3DX12_BOX( + LONG Left, + LONG Top, + LONG Front, + LONG Right, + LONG Bottom, + LONG Back) { + left = Left; + top = Top; + front = Front; + right = Right; + bottom = Bottom; + back = Back; + } + ~CD3DX12_BOX() {} + operator const D3D12_BOX&() const { return *this; } +}; +inline bool operator==(const D3D12_BOX& l, const D3D12_BOX& r) { + return l.left == r.left && l.top == r.top && l.front == r.front && + l.right == r.right && l.bottom == r.bottom && l.back == r.back; +} +inline bool operator!=(const D3D12_BOX& l, const D3D12_BOX& r) { + return !(l == r); +} + + +struct CD3DX12_DEPTH_STENCIL_DESC : public D3D12_DEPTH_STENCIL_DESC { + CD3DX12_DEPTH_STENCIL_DESC() { + } + explicit CD3DX12_DEPTH_STENCIL_DESC(const D3D12_DEPTH_STENCIL_DESC& o) : + D3D12_DEPTH_STENCIL_DESC(o) { + } + explicit CD3DX12_DEPTH_STENCIL_DESC(CD3DX12_DEFAULT) { + DepthEnable = 1; + DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; + DepthFunc = D3D12_COMPARISON_FUNC_LESS; + StencilEnable = 0; + StencilReadMask = ( 0xff ); + StencilWriteMask = ( 0xff ); + const D3D12_DEPTH_STENCILOP_DESC defaultStencilOp = + { D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_COMPARISON_FUNC_ALWAYS }; + FrontFace = defaultStencilOp; + BackFace = defaultStencilOp; + } + explicit CD3DX12_DEPTH_STENCIL_DESC( + BOOL depthEnable, + D3D12_DEPTH_WRITE_MASK depthWriteMask, + D3D12_COMPARISON_FUNC depthFunc, + BOOL stencilEnable, + UINT8 stencilReadMask, + UINT8 stencilWriteMask, + D3D12_STENCIL_OP frontStencilFailOp, + D3D12_STENCIL_OP frontStencilDepthFailOp, + D3D12_STENCIL_OP frontStencilPassOp, + D3D12_COMPARISON_FUNC frontStencilFunc, + D3D12_STENCIL_OP backStencilFailOp, + D3D12_STENCIL_OP backStencilDepthFailOp, + D3D12_STENCIL_OP backStencilPassOp, + D3D12_COMPARISON_FUNC backStencilFunc) { + DepthEnable = depthEnable; + DepthWriteMask = depthWriteMask; + DepthFunc = depthFunc; + StencilEnable = stencilEnable; + StencilReadMask = stencilReadMask; + StencilWriteMask = stencilWriteMask; + FrontFace.StencilFailOp = frontStencilFailOp; + FrontFace.StencilDepthFailOp = frontStencilDepthFailOp; + FrontFace.StencilPassOp = frontStencilPassOp; + FrontFace.StencilFunc = frontStencilFunc; + BackFace.StencilFailOp = backStencilFailOp; + BackFace.StencilDepthFailOp = backStencilDepthFailOp; + BackFace.StencilPassOp = backStencilPassOp; + BackFace.StencilFunc = backStencilFunc; + } + ~CD3DX12_DEPTH_STENCIL_DESC() {} + operator const D3D12_DEPTH_STENCIL_DESC&() const { return *this; } +}; + + +struct CD3DX12_BLEND_DESC : public D3D12_BLEND_DESC { + CD3DX12_BLEND_DESC() { + } + explicit CD3DX12_BLEND_DESC(const D3D12_BLEND_DESC& o) : + D3D12_BLEND_DESC(o) { + } + explicit CD3DX12_BLEND_DESC(CD3DX12_DEFAULT) { + AlphaToCoverageEnable = 0; + IndependentBlendEnable = 0; + const D3D12_RENDER_TARGET_BLEND_DESC defaultRenderTargetBlendDesc = + { + 0,0, + D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, + D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, + D3D12_LOGIC_OP_NOOP, + D3D12_COLOR_WRITE_ENABLE_ALL, + }; + for (UINT i = 0; i < ( 8 ); ++i) + RenderTarget[i] = defaultRenderTargetBlendDesc; + } + ~CD3DX12_BLEND_DESC() {} + operator const D3D12_BLEND_DESC&() const { return *this; } +}; + + +struct CD3DX12_RASTERIZER_DESC : public D3D12_RASTERIZER_DESC { + CD3DX12_RASTERIZER_DESC() { + } + explicit CD3DX12_RASTERIZER_DESC(const D3D12_RASTERIZER_DESC& o) : + D3D12_RASTERIZER_DESC(o) { + } + explicit CD3DX12_RASTERIZER_DESC(CD3DX12_DEFAULT) { + FillMode = D3D12_FILL_MODE_SOLID; + CullMode = D3D12_CULL_MODE_BACK; + FrontCounterClockwise = 0; + DepthBias = ( 0 ); + DepthBiasClamp = ( 0.0f ); + SlopeScaledDepthBias = ( 0.0f ); + DepthClipEnable = 1; + MultisampleEnable = 0; + AntialiasedLineEnable = 0; + ForcedSampleCount = 0; + ConservativeRaster = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF; + } + explicit CD3DX12_RASTERIZER_DESC( + D3D12_FILL_MODE fillMode, + D3D12_CULL_MODE cullMode, + BOOL frontCounterClockwise, + INT depthBias, + FLOAT depthBiasClamp, + FLOAT slopeScaledDepthBias, + BOOL depthClipEnable, + BOOL multisampleEnable, + BOOL antialiasedLineEnable, + UINT forcedSampleCount, + D3D12_CONSERVATIVE_RASTERIZATION_MODE conservativeRaster) { + FillMode = fillMode; + CullMode = cullMode; + FrontCounterClockwise = frontCounterClockwise; + DepthBias = depthBias; + DepthBiasClamp = depthBiasClamp; + SlopeScaledDepthBias = slopeScaledDepthBias; + DepthClipEnable = depthClipEnable; + MultisampleEnable = multisampleEnable; + AntialiasedLineEnable = antialiasedLineEnable; + ForcedSampleCount = forcedSampleCount; + ConservativeRaster = conservativeRaster; + } + ~CD3DX12_RASTERIZER_DESC() {} + operator const D3D12_RASTERIZER_DESC&() const { return *this; } +}; + + +struct CD3DX12_RESOURCE_ALLOCATION_INFO : public D3D12_RESOURCE_ALLOCATION_INFO { + CD3DX12_RESOURCE_ALLOCATION_INFO() { + } + explicit CD3DX12_RESOURCE_ALLOCATION_INFO(const D3D12_RESOURCE_ALLOCATION_INFO& o) : + D3D12_RESOURCE_ALLOCATION_INFO(o) { + } + CD3DX12_RESOURCE_ALLOCATION_INFO( + UINT64 size, + UINT64 alignment) { + SizeInBytes = size; + Alignment = alignment; + } + operator const D3D12_RESOURCE_ALLOCATION_INFO&() const { return *this; } +}; + + +struct CD3DX12_HEAP_PROPERTIES : public D3D12_HEAP_PROPERTIES { + CD3DX12_HEAP_PROPERTIES() { + } + explicit CD3DX12_HEAP_PROPERTIES(const D3D12_HEAP_PROPERTIES &o) : + D3D12_HEAP_PROPERTIES(o) { + } + CD3DX12_HEAP_PROPERTIES( + D3D12_CPU_PAGE_PROPERTY cpuPageProperty, + D3D12_MEMORY_POOL memoryPoolPreference, + UINT creationNodeMask = 1, + UINT nodeMask = 1) { + Type = D3D12_HEAP_TYPE_CUSTOM; + CPUPageProperty = cpuPageProperty; + MemoryPoolPreference = memoryPoolPreference; + CreationNodeMask = creationNodeMask; + VisibleNodeMask = nodeMask; + } + explicit CD3DX12_HEAP_PROPERTIES( + D3D12_HEAP_TYPE type, + UINT creationNodeMask = 1, + UINT nodeMask = 1) { + Type = type; + CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN; + MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN; + CreationNodeMask = creationNodeMask; + VisibleNodeMask = nodeMask; + } + operator const D3D12_HEAP_PROPERTIES&() const { return *this; } + bool IsCPUAccessible() const { + return Type == D3D12_HEAP_TYPE_UPLOAD || Type == D3D12_HEAP_TYPE_READBACK || (Type == D3D12_HEAP_TYPE_CUSTOM && + (CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE || CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_BACK)); + } +}; +inline bool operator==(const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r) { + return l.Type == r.Type && l.CPUPageProperty == r.CPUPageProperty && + l.MemoryPoolPreference == r.MemoryPoolPreference && + l.CreationNodeMask == r.CreationNodeMask && + l.VisibleNodeMask == r.VisibleNodeMask; +} +inline bool operator!=(const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r) { + return !(l == r); +} + + +struct CD3DX12_HEAP_DESC : public D3D12_HEAP_DESC { + CD3DX12_HEAP_DESC() { + } + explicit CD3DX12_HEAP_DESC(const D3D12_HEAP_DESC &o) : + D3D12_HEAP_DESC(o) { + } + CD3DX12_HEAP_DESC( + UINT64 size, + D3D12_HEAP_PROPERTIES properties, + UINT64 alignment = 0, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) { + SizeInBytes = size; + Properties = properties; + Alignment = alignment; + Flags = flags; + } + CD3DX12_HEAP_DESC( + UINT64 size, + D3D12_HEAP_TYPE type, + UINT64 alignment = 0, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) { + SizeInBytes = size; + Properties = CD3DX12_HEAP_PROPERTIES(type); + Alignment = alignment; + Flags = flags; + } + CD3DX12_HEAP_DESC( + UINT64 size, + D3D12_CPU_PAGE_PROPERTY cpuPageProperty, + D3D12_MEMORY_POOL memoryPoolPreference, + UINT64 alignment = 0, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) { + SizeInBytes = size; + Properties = CD3DX12_HEAP_PROPERTIES(cpuPageProperty, memoryPoolPreference); + Alignment = alignment; + Flags = flags; + } + CD3DX12_HEAP_DESC( + const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, + D3D12_HEAP_PROPERTIES properties, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) { + SizeInBytes = resAllocInfo.SizeInBytes; + Properties = properties; + Alignment = resAllocInfo.Alignment; + Flags = flags; + } + CD3DX12_HEAP_DESC( + const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, + D3D12_HEAP_TYPE type, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) { + SizeInBytes = resAllocInfo.SizeInBytes; + Properties = CD3DX12_HEAP_PROPERTIES(type); + Alignment = resAllocInfo.Alignment; + Flags = flags; + } + CD3DX12_HEAP_DESC( + const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, + D3D12_CPU_PAGE_PROPERTY cpuPageProperty, + D3D12_MEMORY_POOL memoryPoolPreference, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) { + SizeInBytes = resAllocInfo.SizeInBytes; + Properties = CD3DX12_HEAP_PROPERTIES(cpuPageProperty, memoryPoolPreference); + Alignment = resAllocInfo.Alignment; + Flags = flags; + } + operator const D3D12_HEAP_DESC&() const { return *this; } + bool IsCPUAccessible() const { + return static_cast< const CD3DX12_HEAP_PROPERTIES* >(&Properties)->IsCPUAccessible(); + } +}; +inline bool operator==(const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r) { + return l.SizeInBytes == r.SizeInBytes && + l.Properties == r.Properties && + l.Alignment == r.Alignment && + l.Flags == r.Flags; +} +inline bool operator!=(const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r) { + return !(l == r); +} + + +struct CD3DX12_CLEAR_VALUE : public D3D12_CLEAR_VALUE { + CD3DX12_CLEAR_VALUE() { + } + explicit CD3DX12_CLEAR_VALUE(const D3D12_CLEAR_VALUE &o) : + D3D12_CLEAR_VALUE(o) { + } + CD3DX12_CLEAR_VALUE( + DXGI_FORMAT format, + const FLOAT color[4]) { + Format = format; + memcpy(Color, color, sizeof(Color)); + } + CD3DX12_CLEAR_VALUE( + DXGI_FORMAT format, + FLOAT depth, + UINT8 stencil) { + Format = format; + + memcpy(&DepthStencil.Depth, &depth, sizeof(depth)); + DepthStencil.Stencil = stencil; + } + operator const D3D12_CLEAR_VALUE&() const { return *this; } +}; + + +struct CD3DX12_RANGE : public D3D12_RANGE { + CD3DX12_RANGE() { + } + explicit CD3DX12_RANGE(const D3D12_RANGE &o) : + D3D12_RANGE(o) { + } + CD3DX12_RANGE( + SIZE_T begin, + SIZE_T end) { + Begin = begin; + End = end; + } + operator const D3D12_RANGE&() const { return *this; } +}; + + +struct CD3DX12_SHADER_BYTECODE : public D3D12_SHADER_BYTECODE { + CD3DX12_SHADER_BYTECODE() { + } + explicit CD3DX12_SHADER_BYTECODE(const D3D12_SHADER_BYTECODE &o) : + D3D12_SHADER_BYTECODE(o) { + } + CD3DX12_SHADER_BYTECODE( + ID3DBlob* pShaderBlob) { + pShaderBytecode = pShaderBlob->GetBufferPointer(); + BytecodeLength = pShaderBlob->GetBufferSize(); + } + CD3DX12_SHADER_BYTECODE( + void* _pShaderBytecode, + SIZE_T bytecodeLength) { + pShaderBytecode = _pShaderBytecode; + BytecodeLength = bytecodeLength; + } + operator const D3D12_SHADER_BYTECODE&() const { return *this; } +}; + + +struct CD3DX12_TILED_RESOURCE_COORDINATE : public D3D12_TILED_RESOURCE_COORDINATE { + CD3DX12_TILED_RESOURCE_COORDINATE() { + } + explicit CD3DX12_TILED_RESOURCE_COORDINATE(const D3D12_TILED_RESOURCE_COORDINATE &o) : + D3D12_TILED_RESOURCE_COORDINATE(o) { + } + CD3DX12_TILED_RESOURCE_COORDINATE( + UINT x, + UINT y, + UINT z, + UINT subresource) { + X = x; + Y = y; + Z = z; + Subresource = subresource; + } + operator const D3D12_TILED_RESOURCE_COORDINATE&() const { return *this; } +}; + + +struct CD3DX12_TILE_REGION_SIZE : public D3D12_TILE_REGION_SIZE { + CD3DX12_TILE_REGION_SIZE() { + } + explicit CD3DX12_TILE_REGION_SIZE(const D3D12_TILE_REGION_SIZE &o) : + D3D12_TILE_REGION_SIZE(o) { + } + CD3DX12_TILE_REGION_SIZE( + UINT numTiles, + BOOL useBox, + UINT width, + UINT16 height, + UINT16 depth) { + NumTiles = numTiles; + UseBox = useBox; + Width = width; + Height = height; + Depth = depth; + } + operator const D3D12_TILE_REGION_SIZE&() const { return *this; } +}; + + +struct CD3DX12_SUBRESOURCE_TILING : public D3D12_SUBRESOURCE_TILING { + CD3DX12_SUBRESOURCE_TILING() { + } + explicit CD3DX12_SUBRESOURCE_TILING(const D3D12_SUBRESOURCE_TILING &o) : + D3D12_SUBRESOURCE_TILING(o) { + } + CD3DX12_SUBRESOURCE_TILING( + UINT widthInTiles, + UINT16 heightInTiles, + UINT16 depthInTiles, + UINT startTileIndexInOverallResource) { + WidthInTiles = widthInTiles; + HeightInTiles = heightInTiles; + DepthInTiles = depthInTiles; + StartTileIndexInOverallResource = startTileIndexInOverallResource; + } + operator const D3D12_SUBRESOURCE_TILING&() const { return *this; } +}; + + +struct CD3DX12_TILE_SHAPE : public D3D12_TILE_SHAPE { + CD3DX12_TILE_SHAPE() { + } + explicit CD3DX12_TILE_SHAPE(const D3D12_TILE_SHAPE &o) : + D3D12_TILE_SHAPE(o) { + } + CD3DX12_TILE_SHAPE( + UINT widthInTexels, + UINT heightInTexels, + UINT depthInTexels) { + WidthInTexels = widthInTexels; + HeightInTexels = heightInTexels; + DepthInTexels = depthInTexels; + } + operator const D3D12_TILE_SHAPE&() const { return *this; } +}; + + +struct CD3DX12_RESOURCE_BARRIER : public D3D12_RESOURCE_BARRIER { + CD3DX12_RESOURCE_BARRIER() { + } + explicit CD3DX12_RESOURCE_BARRIER(const D3D12_RESOURCE_BARRIER &o) : + D3D12_RESOURCE_BARRIER(o) { + } + static inline CD3DX12_RESOURCE_BARRIER Transition( + ID3D12Resource* pResource, + D3D12_RESOURCE_STATES stateBefore, + D3D12_RESOURCE_STATES stateAfter, + UINT subresource = ( 0xffffffff ), + D3D12_RESOURCE_BARRIER_FLAGS flags = D3D12_RESOURCE_BARRIER_FLAG_NONE) { + CD3DX12_RESOURCE_BARRIER result; + memset((&result),0,(sizeof(result))); + D3D12_RESOURCE_BARRIER &barrier = result; + result.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; + result.Flags = flags; + barrier.Transition.pResource = pResource; + barrier.Transition.StateBefore = stateBefore; + barrier.Transition.StateAfter = stateAfter; + barrier.Transition.Subresource = subresource; + return result; + } + static inline CD3DX12_RESOURCE_BARRIER Aliasing( + ID3D12Resource* pResourceBefore, + ID3D12Resource* pResourceAfter) { + CD3DX12_RESOURCE_BARRIER result; + memset((&result),0,(sizeof(result))); + D3D12_RESOURCE_BARRIER &barrier = result; + result.Type = D3D12_RESOURCE_BARRIER_TYPE_ALIASING; + barrier.Aliasing.pResourceBefore = pResourceBefore; + barrier.Aliasing.pResourceAfter = pResourceAfter; + return result; + } + static inline CD3DX12_RESOURCE_BARRIER UAV( + ID3D12Resource* pResource) { + CD3DX12_RESOURCE_BARRIER result; + memset((&result),0,(sizeof(result))); + D3D12_RESOURCE_BARRIER &barrier = result; + result.Type = D3D12_RESOURCE_BARRIER_TYPE_UAV; + barrier.UAV.pResource = pResource; + return result; + } + operator const D3D12_RESOURCE_BARRIER&() const { return *this; } +}; + + +struct CD3DX12_PACKED_MIP_INFO : public D3D12_PACKED_MIP_INFO { + CD3DX12_PACKED_MIP_INFO() { + } + explicit CD3DX12_PACKED_MIP_INFO(const D3D12_PACKED_MIP_INFO &o) : + D3D12_PACKED_MIP_INFO(o) { + } + CD3DX12_PACKED_MIP_INFO( + UINT8 numStandardMips, + UINT8 numPackedMips, + UINT numTilesForPackedMips, + UINT startTileIndexInOverallResource) { + NumStandardMips = numStandardMips; + NumPackedMips = numPackedMips; + NumTilesForPackedMips = numTilesForPackedMips; + StartTileIndexInOverallResource = startTileIndexInOverallResource; + } + operator const D3D12_PACKED_MIP_INFO&() const { return *this; } +}; + + +struct CD3DX12_SUBRESOURCE_FOOTPRINT : public D3D12_SUBRESOURCE_FOOTPRINT { + CD3DX12_SUBRESOURCE_FOOTPRINT() { + } + explicit CD3DX12_SUBRESOURCE_FOOTPRINT(const D3D12_SUBRESOURCE_FOOTPRINT &o) : + D3D12_SUBRESOURCE_FOOTPRINT(o) { + } + CD3DX12_SUBRESOURCE_FOOTPRINT( + DXGI_FORMAT format, + UINT width, + UINT height, + UINT depth, + UINT rowPitch) { + Format = format; + Width = width; + Height = height; + Depth = depth; + RowPitch = rowPitch; + } + explicit CD3DX12_SUBRESOURCE_FOOTPRINT( + const D3D12_RESOURCE_DESC& resDesc, + UINT rowPitch) { + Format = resDesc.Format; + Width = UINT(resDesc.Width); + Height = resDesc.Height; + Depth = (resDesc.Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? resDesc.DepthOrArraySize : 1); + RowPitch = rowPitch; + } + operator const D3D12_SUBRESOURCE_FOOTPRINT&() const { return *this; } +}; + + +struct CD3DX12_TEXTURE_COPY_LOCATION : public D3D12_TEXTURE_COPY_LOCATION { + CD3DX12_TEXTURE_COPY_LOCATION() { + } + explicit CD3DX12_TEXTURE_COPY_LOCATION(const D3D12_TEXTURE_COPY_LOCATION &o) : + D3D12_TEXTURE_COPY_LOCATION(o) { + } + CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes) { pResource = pRes; } + CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes, D3D12_PLACED_SUBRESOURCE_FOOTPRINT const& Footprint) { + pResource = pRes; + Type = D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT; + PlacedFootprint = Footprint; + } + CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes, UINT Sub) { + pResource = pRes; + Type = D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX; + SubresourceIndex = Sub; + } +}; + + +struct CD3DX12_DESCRIPTOR_RANGE : public D3D12_DESCRIPTOR_RANGE { + CD3DX12_DESCRIPTOR_RANGE() {} + explicit CD3DX12_DESCRIPTOR_RANGE(const D3D12_DESCRIPTOR_RANGE &o) : + D3D12_DESCRIPTOR_RANGE(o) { + } + CD3DX12_DESCRIPTOR_RANGE( + D3D12_DESCRIPTOR_RANGE_TYPE rangeType, + UINT numDescriptors, + UINT baseShaderRegister, + UINT registerSpace = 0, + UINT offsetInDescriptorsFromTableStart = + ( 0xffffffff )) { + Init(rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart); + } + + inline void Init( + D3D12_DESCRIPTOR_RANGE_TYPE rangeType, + UINT numDescriptors, + UINT baseShaderRegister, + UINT registerSpace = 0, + UINT offsetInDescriptorsFromTableStart = + ( 0xffffffff )) { + Init(*this, rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart); + } + + static inline void Init( + D3D12_DESCRIPTOR_RANGE &range, + D3D12_DESCRIPTOR_RANGE_TYPE rangeType, + UINT numDescriptors, + UINT baseShaderRegister, + UINT registerSpace = 0, + UINT offsetInDescriptorsFromTableStart = + ( 0xffffffff )) { + range.RangeType = rangeType; + range.NumDescriptors = numDescriptors; + range.BaseShaderRegister = baseShaderRegister; + range.RegisterSpace = registerSpace; + range.OffsetInDescriptorsFromTableStart = offsetInDescriptorsFromTableStart; + } +}; + + +struct CD3DX12_ROOT_DESCRIPTOR_TABLE : public D3D12_ROOT_DESCRIPTOR_TABLE { + CD3DX12_ROOT_DESCRIPTOR_TABLE() {} + explicit CD3DX12_ROOT_DESCRIPTOR_TABLE(const D3D12_ROOT_DESCRIPTOR_TABLE &o) : + D3D12_ROOT_DESCRIPTOR_TABLE(o) { + } + CD3DX12_ROOT_DESCRIPTOR_TABLE( + UINT numDescriptorRanges, + const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) { + Init(numDescriptorRanges, _pDescriptorRanges); + } + + inline void Init( + UINT numDescriptorRanges, + const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) { + Init(*this, numDescriptorRanges, _pDescriptorRanges); + } + + static inline void Init( + D3D12_ROOT_DESCRIPTOR_TABLE &rootDescriptorTable, + UINT numDescriptorRanges, + const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) { + rootDescriptorTable.NumDescriptorRanges = numDescriptorRanges; + rootDescriptorTable.pDescriptorRanges = _pDescriptorRanges; + } +}; + + +struct CD3DX12_ROOT_CONSTANTS : public D3D12_ROOT_CONSTANTS { + CD3DX12_ROOT_CONSTANTS() {} + explicit CD3DX12_ROOT_CONSTANTS(const D3D12_ROOT_CONSTANTS &o) : + D3D12_ROOT_CONSTANTS(o) { + } + CD3DX12_ROOT_CONSTANTS( + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0) { + Init(num32BitValues, shaderRegister, registerSpace); + } + + inline void Init( + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0) { + Init(*this, num32BitValues, shaderRegister, registerSpace); + } + + static inline void Init( + D3D12_ROOT_CONSTANTS &rootConstants, + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0) { + rootConstants.Num32BitValues = num32BitValues; + rootConstants.ShaderRegister = shaderRegister; + rootConstants.RegisterSpace = registerSpace; + } +}; + + +struct CD3DX12_ROOT_DESCRIPTOR : public D3D12_ROOT_DESCRIPTOR { + CD3DX12_ROOT_DESCRIPTOR() {} + explicit CD3DX12_ROOT_DESCRIPTOR(const D3D12_ROOT_DESCRIPTOR &o) : + D3D12_ROOT_DESCRIPTOR(o) { + } + CD3DX12_ROOT_DESCRIPTOR( + UINT shaderRegister, + UINT registerSpace = 0) { + Init(shaderRegister, registerSpace); + } + + inline void Init( + UINT shaderRegister, + UINT registerSpace = 0) { + Init(*this, shaderRegister, registerSpace); + } + + static inline void Init( D3D12_ROOT_DESCRIPTOR &table, UINT shaderRegister, UINT registerSpace = 0) { + table.ShaderRegister = shaderRegister; + table.RegisterSpace = registerSpace; + } +}; + + +struct CD3DX12_ROOT_PARAMETER : public D3D12_ROOT_PARAMETER { + CD3DX12_ROOT_PARAMETER() {} + explicit CD3DX12_ROOT_PARAMETER(const D3D12_ROOT_PARAMETER &o) : + D3D12_ROOT_PARAMETER(o) { + } + + static inline void InitAsDescriptorTable( + D3D12_ROOT_PARAMETER &rootParam, + UINT numDescriptorRanges, + const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR_TABLE::Init(rootParam.DescriptorTable, numDescriptorRanges, pDescriptorRanges); + } + + static inline void InitAsConstants( + D3D12_ROOT_PARAMETER &rootParam, + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_CONSTANTS::Init(rootParam.Constants, num32BitValues, shaderRegister, registerSpace); + } + + static inline void InitAsConstantBufferView( + D3D12_ROOT_PARAMETER &rootParam, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_CBV; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); + } + + static inline void InitAsShaderResourceView( + D3D12_ROOT_PARAMETER &rootParam, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_SRV; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); + } + + static inline void InitAsUnorderedAccessView( + D3D12_ROOT_PARAMETER &rootParam, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_UAV; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); + } + + inline void InitAsDescriptorTable( + UINT numDescriptorRanges, + const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsDescriptorTable(*this, numDescriptorRanges, pDescriptorRanges, visibility); + } + + inline void InitAsConstants( + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsConstants(*this, num32BitValues, shaderRegister, registerSpace, visibility); + } + + inline void InitAsConstantBufferView( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsConstantBufferView(*this, shaderRegister, registerSpace, visibility); + } + + inline void InitAsShaderResourceView( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsShaderResourceView(*this, shaderRegister, registerSpace, visibility); + } + + inline void InitAsUnorderedAccessView( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsUnorderedAccessView(*this, shaderRegister, registerSpace, visibility); + } +}; + + +struct CD3DX12_STATIC_SAMPLER_DESC : public D3D12_STATIC_SAMPLER_DESC { + CD3DX12_STATIC_SAMPLER_DESC() {} + explicit CD3DX12_STATIC_SAMPLER_DESC(const D3D12_STATIC_SAMPLER_DESC &o) : + D3D12_STATIC_SAMPLER_DESC(o) { + } + CD3DX12_STATIC_SAMPLER_DESC( + UINT shaderRegister, + D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, + D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + FLOAT mipLODBias = 0, + UINT maxAnisotropy = 16, + D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, + D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, + FLOAT minLOD = 0.f, + FLOAT maxLOD = ( 3.402823466e+38f ), + D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, + UINT registerSpace = 0) { + Init( + shaderRegister, + filter, + addressU, + addressV, + addressW, + mipLODBias, + maxAnisotropy, + comparisonFunc, + borderColor, + minLOD, + maxLOD, + shaderVisibility, + registerSpace); + } + + static inline void Init( + D3D12_STATIC_SAMPLER_DESC &samplerDesc, + UINT shaderRegister, + D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, + D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + FLOAT mipLODBias = 0, + UINT maxAnisotropy = 16, + D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, + D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, + FLOAT minLOD = 0.f, + FLOAT maxLOD = ( 3.402823466e+38f ), + D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, + UINT registerSpace = 0) { + samplerDesc.ShaderRegister = shaderRegister; + samplerDesc.Filter = filter; + samplerDesc.AddressU = addressU; + samplerDesc.AddressV = addressV; + samplerDesc.AddressW = addressW; + samplerDesc.MipLODBias = mipLODBias; + samplerDesc.MaxAnisotropy = maxAnisotropy; + samplerDesc.ComparisonFunc = comparisonFunc; + samplerDesc.BorderColor = borderColor; + samplerDesc.MinLOD = minLOD; + samplerDesc.MaxLOD = maxLOD; + samplerDesc.ShaderVisibility = shaderVisibility; + samplerDesc.RegisterSpace = registerSpace; + } + inline void Init( + UINT shaderRegister, + D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, + D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + FLOAT mipLODBias = 0, + UINT maxAnisotropy = 16, + D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, + D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, + FLOAT minLOD = 0.f, + FLOAT maxLOD = ( 3.402823466e+38f ), + D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, + UINT registerSpace = 0) { + Init( + *this, + shaderRegister, + filter, + addressU, + addressV, + addressW, + mipLODBias, + maxAnisotropy, + comparisonFunc, + borderColor, + minLOD, + maxLOD, + shaderVisibility, + registerSpace); + } + +}; + + +struct CD3DX12_ROOT_SIGNATURE_DESC : public D3D12_ROOT_SIGNATURE_DESC { + CD3DX12_ROOT_SIGNATURE_DESC() {} + explicit CD3DX12_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC &o) : + D3D12_ROOT_SIGNATURE_DESC(o) { + } + CD3DX12_ROOT_SIGNATURE_DESC( + UINT numParameters, + const D3D12_ROOT_PARAMETER* _pParameters, + UINT numStaticSamplers = 0, + const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = 0, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + Init(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); + } + CD3DX12_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT) { + Init(0, 0, 0, 0, D3D12_ROOT_SIGNATURE_FLAG_NONE); + } + + inline void Init( + UINT numParameters, + const D3D12_ROOT_PARAMETER* _pParameters, + UINT numStaticSamplers = 0, + const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = 0, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + Init(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); + } + + static inline void Init( + D3D12_ROOT_SIGNATURE_DESC &desc, + UINT numParameters, + const D3D12_ROOT_PARAMETER* _pParameters, + UINT numStaticSamplers = 0, + const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = 0, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + desc.NumParameters = numParameters; + desc.pParameters = _pParameters; + desc.NumStaticSamplers = numStaticSamplers; + desc.pStaticSamplers = _pStaticSamplers; + desc.Flags = flags; + } +}; + + +struct CD3DX12_DESCRIPTOR_RANGE1 : public D3D12_DESCRIPTOR_RANGE1 { + CD3DX12_DESCRIPTOR_RANGE1() {} + explicit CD3DX12_DESCRIPTOR_RANGE1(const D3D12_DESCRIPTOR_RANGE1 &o) : + D3D12_DESCRIPTOR_RANGE1(o) { + } + CD3DX12_DESCRIPTOR_RANGE1( + D3D12_DESCRIPTOR_RANGE_TYPE rangeType, + UINT numDescriptors, + UINT baseShaderRegister, + UINT registerSpace = 0, + D3D12_DESCRIPTOR_RANGE_FLAGS flags = D3D12_DESCRIPTOR_RANGE_FLAG_NONE, + UINT offsetInDescriptorsFromTableStart = + ( 0xffffffff )) { + Init(rangeType, numDescriptors, baseShaderRegister, registerSpace, flags, offsetInDescriptorsFromTableStart); + } + + inline void Init( + D3D12_DESCRIPTOR_RANGE_TYPE rangeType, + UINT numDescriptors, + UINT baseShaderRegister, + UINT registerSpace = 0, + D3D12_DESCRIPTOR_RANGE_FLAGS flags = D3D12_DESCRIPTOR_RANGE_FLAG_NONE, + UINT offsetInDescriptorsFromTableStart = + ( 0xffffffff )) { + Init(*this, rangeType, numDescriptors, baseShaderRegister, registerSpace, flags, offsetInDescriptorsFromTableStart); + } + + static inline void Init( + D3D12_DESCRIPTOR_RANGE1 &range, + D3D12_DESCRIPTOR_RANGE_TYPE rangeType, + UINT numDescriptors, + UINT baseShaderRegister, + UINT registerSpace = 0, + D3D12_DESCRIPTOR_RANGE_FLAGS flags = D3D12_DESCRIPTOR_RANGE_FLAG_NONE, + UINT offsetInDescriptorsFromTableStart = + ( 0xffffffff )) { + range.RangeType = rangeType; + range.NumDescriptors = numDescriptors; + range.BaseShaderRegister = baseShaderRegister; + range.RegisterSpace = registerSpace; + range.Flags = flags; + range.OffsetInDescriptorsFromTableStart = offsetInDescriptorsFromTableStart; + } +}; + + +struct CD3DX12_ROOT_DESCRIPTOR_TABLE1 : public D3D12_ROOT_DESCRIPTOR_TABLE1 { + CD3DX12_ROOT_DESCRIPTOR_TABLE1() {} + explicit CD3DX12_ROOT_DESCRIPTOR_TABLE1(const D3D12_ROOT_DESCRIPTOR_TABLE1 &o) : + D3D12_ROOT_DESCRIPTOR_TABLE1(o) { + } + CD3DX12_ROOT_DESCRIPTOR_TABLE1( + UINT numDescriptorRanges, + const D3D12_DESCRIPTOR_RANGE1* _pDescriptorRanges) { + Init(numDescriptorRanges, _pDescriptorRanges); + } + + inline void Init( + UINT numDescriptorRanges, + const D3D12_DESCRIPTOR_RANGE1* _pDescriptorRanges) { + Init(*this, numDescriptorRanges, _pDescriptorRanges); + } + + static inline void Init( + D3D12_ROOT_DESCRIPTOR_TABLE1 &rootDescriptorTable, + UINT numDescriptorRanges, + const D3D12_DESCRIPTOR_RANGE1* _pDescriptorRanges) { + rootDescriptorTable.NumDescriptorRanges = numDescriptorRanges; + rootDescriptorTable.pDescriptorRanges = _pDescriptorRanges; + } +}; + + +struct CD3DX12_ROOT_DESCRIPTOR1 : public D3D12_ROOT_DESCRIPTOR1 { + CD3DX12_ROOT_DESCRIPTOR1() {} + explicit CD3DX12_ROOT_DESCRIPTOR1(const D3D12_ROOT_DESCRIPTOR1 &o) : + D3D12_ROOT_DESCRIPTOR1(o) { + } + CD3DX12_ROOT_DESCRIPTOR1( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE) { + Init(shaderRegister, registerSpace, flags); + } + + inline void Init( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE) { + Init(*this, shaderRegister, registerSpace, flags); + } + + static inline void Init( + D3D12_ROOT_DESCRIPTOR1 &table, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE) { + table.ShaderRegister = shaderRegister; + table.RegisterSpace = registerSpace; + table.Flags = flags; + } +}; + + +struct CD3DX12_ROOT_PARAMETER1 : public D3D12_ROOT_PARAMETER1 { + CD3DX12_ROOT_PARAMETER1() {} + explicit CD3DX12_ROOT_PARAMETER1(const D3D12_ROOT_PARAMETER1 &o) : + D3D12_ROOT_PARAMETER1(o) { + } + + static inline void InitAsDescriptorTable( + D3D12_ROOT_PARAMETER1 &rootParam, + UINT numDescriptorRanges, + const D3D12_DESCRIPTOR_RANGE1* pDescriptorRanges, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR_TABLE1::Init(rootParam.DescriptorTable, numDescriptorRanges, pDescriptorRanges); + } + + static inline void InitAsConstants( + D3D12_ROOT_PARAMETER1 &rootParam, + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_CONSTANTS::Init(rootParam.Constants, num32BitValues, shaderRegister, registerSpace); + } + + static inline void InitAsConstantBufferView( + D3D12_ROOT_PARAMETER1 &rootParam, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_CBV; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR1::Init(rootParam.Descriptor, shaderRegister, registerSpace, flags); + } + + static inline void InitAsShaderResourceView( + D3D12_ROOT_PARAMETER1 &rootParam, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_SRV; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR1::Init(rootParam.Descriptor, shaderRegister, registerSpace, flags); + } + + static inline void InitAsUnorderedAccessView( + D3D12_ROOT_PARAMETER1 &rootParam, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_UAV; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR1::Init(rootParam.Descriptor, shaderRegister, registerSpace, flags); + } + + inline void InitAsDescriptorTable( + UINT numDescriptorRanges, + const D3D12_DESCRIPTOR_RANGE1* pDescriptorRanges, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsDescriptorTable(*this, numDescriptorRanges, pDescriptorRanges, visibility); + } + + inline void InitAsConstants( + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsConstants(*this, num32BitValues, shaderRegister, registerSpace, visibility); + } + + inline void InitAsConstantBufferView( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsConstantBufferView(*this, shaderRegister, registerSpace, flags, visibility); + } + + inline void InitAsShaderResourceView( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsShaderResourceView(*this, shaderRegister, registerSpace, flags, visibility); + } + + inline void InitAsUnorderedAccessView( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsUnorderedAccessView(*this, shaderRegister, registerSpace, flags, visibility); + } +}; + + +struct CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC : public D3D12_VERSIONED_ROOT_SIGNATURE_DESC { + CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC() {} + explicit CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC &o) : + D3D12_VERSIONED_ROOT_SIGNATURE_DESC(o) { + } + explicit CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC &o) { + Version = D3D_ROOT_SIGNATURE_VERSION_1_0; + Desc_1_0 = o; + } + explicit CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC1 &o) { + Version = D3D_ROOT_SIGNATURE_VERSION_1_1; + Desc_1_1 = o; + } + CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC( + UINT numParameters, + const D3D12_ROOT_PARAMETER* _pParameters, + UINT numStaticSamplers = 0, + const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = 0, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + Init_1_0(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); + } + CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC( + UINT numParameters, + const D3D12_ROOT_PARAMETER1* _pParameters, + UINT numStaticSamplers = 0, + const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = 0, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + Init_1_1(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); + } + CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT) { + Init_1_1(0, 0, 0, 0, D3D12_ROOT_SIGNATURE_FLAG_NONE); + } + + inline void Init_1_0( + UINT numParameters, + const D3D12_ROOT_PARAMETER* _pParameters, + UINT numStaticSamplers = 0, + const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = 0, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + Init_1_0(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); + } + + static inline void Init_1_0( + D3D12_VERSIONED_ROOT_SIGNATURE_DESC &desc, + UINT numParameters, + const D3D12_ROOT_PARAMETER* _pParameters, + UINT numStaticSamplers = 0, + const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = 0, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + desc.Version = D3D_ROOT_SIGNATURE_VERSION_1_0; + desc.Desc_1_0.NumParameters = numParameters; + desc.Desc_1_0.pParameters = _pParameters; + desc.Desc_1_0.NumStaticSamplers = numStaticSamplers; + desc.Desc_1_0.pStaticSamplers = _pStaticSamplers; + desc.Desc_1_0.Flags = flags; + } + + inline void Init_1_1( + UINT numParameters, + const D3D12_ROOT_PARAMETER1* _pParameters, + UINT numStaticSamplers = 0, + const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = 0, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + Init_1_1(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); + } + + static inline void Init_1_1( + D3D12_VERSIONED_ROOT_SIGNATURE_DESC &desc, + UINT numParameters, + const D3D12_ROOT_PARAMETER1* _pParameters, + UINT numStaticSamplers = 0, + const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = 0, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + desc.Version = D3D_ROOT_SIGNATURE_VERSION_1_1; + desc.Desc_1_1.NumParameters = numParameters; + desc.Desc_1_1.pParameters = _pParameters; + desc.Desc_1_1.NumStaticSamplers = numStaticSamplers; + desc.Desc_1_1.pStaticSamplers = _pStaticSamplers; + desc.Desc_1_1.Flags = flags; + } +}; + + +struct CD3DX12_CPU_DESCRIPTOR_HANDLE : public D3D12_CPU_DESCRIPTOR_HANDLE { + CD3DX12_CPU_DESCRIPTOR_HANDLE() {} + explicit CD3DX12_CPU_DESCRIPTOR_HANDLE(const D3D12_CPU_DESCRIPTOR_HANDLE &o) : + D3D12_CPU_DESCRIPTOR_HANDLE(o) { + } + CD3DX12_CPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) { ptr = 0; } + CD3DX12_CPU_DESCRIPTOR_HANDLE( const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize) { + InitOffsetted(other, offsetScaledByIncrementSize); + } + CD3DX12_CPU_DESCRIPTOR_HANDLE( const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize) { + InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize); + } + CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize) { + ptr += offsetInDescriptors * descriptorIncrementSize; + return *this; + } + CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize) { + ptr += offsetScaledByIncrementSize; + return *this; + } + bool operator==( const D3D12_CPU_DESCRIPTOR_HANDLE& other) const { + return (ptr == other.ptr); + } + bool operator!=( const D3D12_CPU_DESCRIPTOR_HANDLE& other) const { + return (ptr != other.ptr); + } + CD3DX12_CPU_DESCRIPTOR_HANDLE &operator=(const D3D12_CPU_DESCRIPTOR_HANDLE &other) { + ptr = other.ptr; + return *this; + } + + inline void InitOffsetted( const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) { + InitOffsetted(*this, base, offsetScaledByIncrementSize); + } + + inline void InitOffsetted( const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) { + InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize); + } + + static inline void InitOffsetted( D3D12_CPU_DESCRIPTOR_HANDLE &handle, const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) { + handle.ptr = base.ptr + offsetScaledByIncrementSize; + } + + static inline void InitOffsetted( D3D12_CPU_DESCRIPTOR_HANDLE &handle, const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) { + handle.ptr = base.ptr + offsetInDescriptors * descriptorIncrementSize; + } +}; + + +struct CD3DX12_GPU_DESCRIPTOR_HANDLE : public D3D12_GPU_DESCRIPTOR_HANDLE { + CD3DX12_GPU_DESCRIPTOR_HANDLE() {} + explicit CD3DX12_GPU_DESCRIPTOR_HANDLE(const D3D12_GPU_DESCRIPTOR_HANDLE &o) : + D3D12_GPU_DESCRIPTOR_HANDLE(o) { + } + CD3DX12_GPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) { ptr = 0; } + CD3DX12_GPU_DESCRIPTOR_HANDLE( const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize) { + InitOffsetted(other, offsetScaledByIncrementSize); + } + CD3DX12_GPU_DESCRIPTOR_HANDLE( const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize) { + InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize); + } + CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize) { + ptr += offsetInDescriptors * descriptorIncrementSize; + return *this; + } + CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize) { + ptr += offsetScaledByIncrementSize; + return *this; + } + inline bool operator==( const D3D12_GPU_DESCRIPTOR_HANDLE& other) const { + return (ptr == other.ptr); + } + inline bool operator!=( const D3D12_GPU_DESCRIPTOR_HANDLE& other) const { + return (ptr != other.ptr); + } + CD3DX12_GPU_DESCRIPTOR_HANDLE &operator=(const D3D12_GPU_DESCRIPTOR_HANDLE &other) { + ptr = other.ptr; + return *this; + } + + inline void InitOffsetted( const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) { + InitOffsetted(*this, base, offsetScaledByIncrementSize); + } + + inline void InitOffsetted( const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) { + InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize); + } + + static inline void InitOffsetted( D3D12_GPU_DESCRIPTOR_HANDLE &handle, const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) { + handle.ptr = base.ptr + offsetScaledByIncrementSize; + } + + static inline void InitOffsetted( D3D12_GPU_DESCRIPTOR_HANDLE &handle, const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) { + handle.ptr = base.ptr + offsetInDescriptors * descriptorIncrementSize; + } +}; + + +inline UINT D3D12CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT PlaneSlice, UINT MipLevels, UINT ArraySize) { + return MipSlice + ArraySlice * MipLevels + PlaneSlice * MipLevels * ArraySize; +} + + +template +inline void D3D12DecomposeSubresource(UINT Subresource, UINT MipLevels, UINT ArraySize, T& MipSlice, U& ArraySlice, V& PlaneSlice) { + MipSlice = static_cast(Subresource % MipLevels); + ArraySlice = static_cast((Subresource / MipLevels) % ArraySize); + PlaneSlice = static_cast(Subresource / (MipLevels * ArraySize)); +} + + +inline UINT8 D3D12GetFormatPlaneCount( + ID3D12Device* pDevice, + DXGI_FORMAT Format +) { + D3D12_FEATURE_DATA_FORMAT_INFO formatInfo = { Format }; + if ((((HRESULT)(pDevice->CheckFeatureSupport(D3D12_FEATURE_FORMAT_INFO, &formatInfo, sizeof(formatInfo)))) < 0)) { + return 0; + } + return formatInfo.PlaneCount; +} + + +struct CD3DX12_RESOURCE_DESC : public D3D12_RESOURCE_DESC { + CD3DX12_RESOURCE_DESC() { + } + explicit CD3DX12_RESOURCE_DESC(const D3D12_RESOURCE_DESC& o) : + D3D12_RESOURCE_DESC(o) { + } + CD3DX12_RESOURCE_DESC( + D3D12_RESOURCE_DIMENSION dimension, + UINT64 alignment, + UINT64 width, + UINT height, + UINT16 depthOrArraySize, + UINT16 mipLevels, + DXGI_FORMAT format, + UINT sampleCount, + UINT sampleQuality, + D3D12_TEXTURE_LAYOUT layout, + D3D12_RESOURCE_FLAGS flags) { + Dimension = dimension; + Alignment = alignment; + Width = width; + Height = height; + DepthOrArraySize = depthOrArraySize; + MipLevels = mipLevels; + Format = format; + SampleDesc.Count = sampleCount; + SampleDesc.Quality = sampleQuality; + Layout = layout; + Flags = flags; + } + static inline CD3DX12_RESOURCE_DESC Buffer( + const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, + D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE) { + return CD3DX12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION_BUFFER, resAllocInfo.Alignment, resAllocInfo.SizeInBytes, + 1, 1, 1, DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags); + } + static inline CD3DX12_RESOURCE_DESC Buffer( + UINT64 width, + D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, + UINT64 alignment = 0) { + return CD3DX12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION_BUFFER, alignment, width, 1, 1, 1, + DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags); + } + static inline CD3DX12_RESOURCE_DESC Tex1D( + DXGI_FORMAT format, + UINT64 width, + UINT16 arraySize = 1, + UINT16 mipLevels = 0, + D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, + D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, + UINT64 alignment = 0) { + return CD3DX12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION_TEXTURE1D, alignment, width, 1, arraySize, + mipLevels, format, 1, 0, layout, flags); + } + static inline CD3DX12_RESOURCE_DESC Tex2D( + DXGI_FORMAT format, + UINT64 width, + UINT height, + UINT16 arraySize = 1, + UINT16 mipLevels = 0, + UINT sampleCount = 1, + UINT sampleQuality = 0, + D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, + D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, + UINT64 alignment = 0) { + return CD3DX12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION_TEXTURE2D, alignment, width, height, arraySize, + mipLevels, format, sampleCount, sampleQuality, layout, flags); + } + static inline CD3DX12_RESOURCE_DESC Tex3D( + DXGI_FORMAT format, + UINT64 width, + UINT height, + UINT16 depth, + UINT16 mipLevels = 0, + D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, + D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, + UINT64 alignment = 0) { + return CD3DX12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION_TEXTURE3D, alignment, width, height, depth, + mipLevels, format, 1, 0, layout, flags); + } + inline UINT16 Depth() const { + return (Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1); + } + inline UINT16 ArraySize() const { + return (Dimension != D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1); + } + inline UINT8 PlaneCount( ID3D12Device* pDevice) const { + return D3D12GetFormatPlaneCount(pDevice, Format); + } + inline UINT Subresources( ID3D12Device* pDevice) const { + return MipLevels * ArraySize() * PlaneCount(pDevice); + } + inline UINT CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT PlaneSlice) { + return D3D12CalcSubresource(MipSlice, ArraySlice, PlaneSlice, MipLevels, ArraySize()); + } + operator const D3D12_RESOURCE_DESC&() const { return *this; } +}; +inline bool operator==(const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r) { + return l.Dimension == r.Dimension && + l.Alignment == r.Alignment && + l.Width == r.Width && + l.Height == r.Height && + l.DepthOrArraySize == r.DepthOrArraySize && + l.MipLevels == r.MipLevels && + l.Format == r.Format && + l.SampleDesc.Count == r.SampleDesc.Count && + l.SampleDesc.Quality == r.SampleDesc.Quality && + l.Layout == r.Layout && + l.Flags == r.Flags; +} +inline bool operator!=(const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r) { + return !(l == r); +} + + + +inline void MemcpySubresource( + const D3D12_MEMCPY_DEST* pDest, + const D3D12_SUBRESOURCE_DATA* pSrc, + SIZE_T RowSizeInBytes, + UINT NumRows, + UINT NumSlices) { + for (UINT z = 0; z < NumSlices; ++z) { + BYTE* pDestSlice = reinterpret_cast(pDest->pData) + pDest->SlicePitch * z; + const BYTE* pSrcSlice = reinterpret_cast(pSrc->pData) + pSrc->SlicePitch * z; + for (UINT y = 0; y < NumRows; ++y) { + memcpy(pDestSlice + pDest->RowPitch * y, + pSrcSlice + pSrc->RowPitch * y, + RowSizeInBytes); + } + } +} + + + +inline UINT64 GetRequiredIntermediateSize( + ID3D12Resource* pDestinationResource, + UINT FirstSubresource, + UINT NumSubresources) { + D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); + UINT64 RequiredSize = 0; + + ID3D12Device* pDevice; + pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); + pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, 0, nullptr, nullptr, nullptr, &RequiredSize); + pDevice->Release(); + + return RequiredSize; +} + + + +inline UINT64 UpdateSubresources( + ID3D12GraphicsCommandList* pCmdList, + ID3D12Resource* pDestinationResource, + ID3D12Resource* pIntermediate, + UINT FirstSubresource, + UINT NumSubresources, + UINT64 RequiredSize, + const D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, + const UINT* pNumRows, + const UINT64* pRowSizesInBytes, + const D3D12_SUBRESOURCE_DATA* pSrcData) { + + D3D12_RESOURCE_DESC IntermediateDesc = pIntermediate->GetDesc(); + D3D12_RESOURCE_DESC DestinationDesc = pDestinationResource->GetDesc(); + if (IntermediateDesc.Dimension != D3D12_RESOURCE_DIMENSION_BUFFER || + IntermediateDesc.Width < RequiredSize + pLayouts[0].Offset || + RequiredSize >(SIZE_T) - 1 || + (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER && + (FirstSubresource != 0 || NumSubresources != 1))) { + return 0; + } + + BYTE* pData; + HRESULT hr = pIntermediate->Map(0, 0, reinterpret_cast(&pData)); + if ((((HRESULT)(hr)) < 0)) { + return 0; + } + + for (UINT i = 0; i < NumSubresources; ++i) { + if (pRowSizesInBytes[i] >(SIZE_T)-1) return 0; + D3D12_MEMCPY_DEST DestData = { pData + pLayouts[i].Offset, pLayouts[i].Footprint.RowPitch, pLayouts[i].Footprint.RowPitch * pNumRows[i] }; + MemcpySubresource(&DestData, &pSrcData[i], (SIZE_T)pRowSizesInBytes[i], pNumRows[i], pLayouts[i].Footprint.Depth); + } + pIntermediate->Unmap(0, 0); + + if (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER) { + CD3DX12_BOX SrcBox(UINT(pLayouts[0].Offset), UINT(pLayouts[0].Offset + pLayouts[0].Footprint.Width)); + pCmdList->CopyBufferRegion( + pDestinationResource, 0, pIntermediate, pLayouts[0].Offset, pLayouts[0].Footprint.Width); + } else { + for (UINT i = 0; i < NumSubresources; ++i) { + CD3DX12_TEXTURE_COPY_LOCATION Dst(pDestinationResource, i + FirstSubresource); + CD3DX12_TEXTURE_COPY_LOCATION Src(pIntermediate, pLayouts[i]); + pCmdList->CopyTextureRegion(&Dst, 0, 0, 0, &Src, nullptr); + } + } + return RequiredSize; +} + + + +inline UINT64 UpdateSubresources( + ID3D12GraphicsCommandList* pCmdList, + ID3D12Resource* pDestinationResource, + ID3D12Resource* pIntermediate, + UINT64 IntermediateOffset, + UINT FirstSubresource, + UINT NumSubresources, + D3D12_SUBRESOURCE_DATA* pSrcData) { + UINT64 RequiredSize = 0; + UINT64 MemToAlloc = static_cast(sizeof(D3D12_PLACED_SUBRESOURCE_FOOTPRINT) + sizeof(UINT) + sizeof(UINT64)) * NumSubresources; + if (MemToAlloc > 0xffffffff) { + return 0; + } + void* pMem = HeapAlloc(GetProcessHeap(), 0, static_cast(MemToAlloc)); + if (pMem == 0) { + return 0; + } + D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts = reinterpret_cast(pMem); + UINT64* pRowSizesInBytes = reinterpret_cast(pLayouts + NumSubresources); + UINT* pNumRows = reinterpret_cast(pRowSizesInBytes + NumSubresources); + + D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); + ID3D12Device* pDevice; + pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); + pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, pLayouts, pNumRows, pRowSizesInBytes, &RequiredSize); + pDevice->Release(); + + UINT64 Result = UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, pLayouts, pNumRows, pRowSizesInBytes, pSrcData); + HeapFree(GetProcessHeap(), 0, pMem); + return Result; +} + + + +template +inline UINT64 UpdateSubresources( + ID3D12GraphicsCommandList* pCmdList, + ID3D12Resource* pDestinationResource, + ID3D12Resource* pIntermediate, + UINT64 IntermediateOffset, + UINT FirstSubresource, + UINT NumSubresources, + D3D12_SUBRESOURCE_DATA* pSrcData) { + UINT64 RequiredSize = 0; + D3D12_PLACED_SUBRESOURCE_FOOTPRINT Layouts[MaxSubresources]; + UINT NumRows[MaxSubresources]; + UINT64 RowSizesInBytes[MaxSubresources]; + + D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); + ID3D12Device* pDevice; + pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); + pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, Layouts, NumRows, RowSizesInBytes, &RequiredSize); + pDevice->Release(); + + return UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, Layouts, NumRows, RowSizesInBytes, pSrcData); +} + + +inline bool D3D12IsLayoutOpaque(D3D12_TEXTURE_LAYOUT Layout) { + return Layout == D3D12_TEXTURE_LAYOUT_UNKNOWN || Layout == D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE; +} + + +inline ID3D12CommandList * const * CommandListCast(ID3D12GraphicsCommandList * const * pp) { + + + + + return reinterpret_cast(pp); +} + + + + + + +inline HRESULT D3DX12SerializeVersionedRootSignature( + const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignatureDesc, + D3D_ROOT_SIGNATURE_VERSION MaxVersion, + ID3DBlob** ppBlob, + ID3DBlob** ppErrorBlob) { + switch (MaxVersion) { + case D3D_ROOT_SIGNATURE_VERSION_1_0: + switch (pRootSignatureDesc->Version) { + case D3D_ROOT_SIGNATURE_VERSION_1_0: + return D3D12SerializeRootSignature(&pRootSignatureDesc->Desc_1_0, D3D_ROOT_SIGNATURE_VERSION_1, ppBlob, ppErrorBlob); + + case D3D_ROOT_SIGNATURE_VERSION_1_1: + { + const D3D12_ROOT_SIGNATURE_DESC1& desc_1_1 = pRootSignatureDesc->Desc_1_1; + + SIZE_T ParametersSize = sizeof(D3D12_ROOT_PARAMETER) * desc_1_1.NumParameters; + void* pParameters = (ParametersSize > 0) ? HeapAlloc(GetProcessHeap(), 0, ParametersSize) : 0; + D3D12_ROOT_PARAMETER* pParameters_1_0 = reinterpret_cast(pParameters); + + for (UINT n = 0; n < desc_1_1.NumParameters; n++) { + pParameters_1_0[n].ParameterType = desc_1_1.pParameters[n].ParameterType; + pParameters_1_0[n].ShaderVisibility = desc_1_1.pParameters[n].ShaderVisibility; + + switch (desc_1_1.pParameters[n].ParameterType) { + case D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS: + pParameters_1_0[n].Constants.Num32BitValues = desc_1_1.pParameters[n].Constants.Num32BitValues; + pParameters_1_0[n].Constants.RegisterSpace = desc_1_1.pParameters[n].Constants.RegisterSpace; + pParameters_1_0[n].Constants.ShaderRegister = desc_1_1.pParameters[n].Constants.ShaderRegister; + break; + + case D3D12_ROOT_PARAMETER_TYPE_CBV: + case D3D12_ROOT_PARAMETER_TYPE_SRV: + case D3D12_ROOT_PARAMETER_TYPE_UAV: + pParameters_1_0[n].Descriptor.RegisterSpace = desc_1_1.pParameters[n].Descriptor.RegisterSpace; + pParameters_1_0[n].Descriptor.ShaderRegister = desc_1_1.pParameters[n].Descriptor.ShaderRegister; + break; + + case D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE: + const D3D12_ROOT_DESCRIPTOR_TABLE1& table_1_1 = desc_1_1.pParameters[n].DescriptorTable; + + SIZE_T DescriptorRangesSize = sizeof(D3D12_DESCRIPTOR_RANGE) * table_1_1.NumDescriptorRanges; + void* pDescriptorRanges = (DescriptorRangesSize > 0) ? HeapAlloc(GetProcessHeap(), 0, DescriptorRangesSize) : 0; + D3D12_DESCRIPTOR_RANGE* pDescriptorRanges_1_0 = reinterpret_cast(pDescriptorRanges); + + for (UINT x = 0; x < table_1_1.NumDescriptorRanges; x++) { + pDescriptorRanges_1_0[x].BaseShaderRegister = table_1_1.pDescriptorRanges[x].BaseShaderRegister; + pDescriptorRanges_1_0[x].NumDescriptors = table_1_1.pDescriptorRanges[x].NumDescriptors; + pDescriptorRanges_1_0[x].OffsetInDescriptorsFromTableStart = table_1_1.pDescriptorRanges[x].OffsetInDescriptorsFromTableStart; + pDescriptorRanges_1_0[x].RangeType = table_1_1.pDescriptorRanges[x].RangeType; + pDescriptorRanges_1_0[x].RegisterSpace = table_1_1.pDescriptorRanges[x].RegisterSpace; + } + + D3D12_ROOT_DESCRIPTOR_TABLE& table_1_0 = pParameters_1_0[n].DescriptorTable; + table_1_0.NumDescriptorRanges = table_1_1.NumDescriptorRanges; + table_1_0.pDescriptorRanges = pDescriptorRanges_1_0; + } + } + + CD3DX12_ROOT_SIGNATURE_DESC desc_1_0(desc_1_1.NumParameters, pParameters_1_0, desc_1_1.NumStaticSamplers, desc_1_1.pStaticSamplers, desc_1_1.Flags); + HRESULT hr = D3D12SerializeRootSignature(&desc_1_0, D3D_ROOT_SIGNATURE_VERSION_1, ppBlob, ppErrorBlob); + + for (UINT n = 0; n < desc_1_0.NumParameters; n++) { + if (desc_1_0.pParameters[n].ParameterType == D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE) { + HeapFree(GetProcessHeap(), 0, reinterpret_cast(const_cast(pParameters_1_0[n].DescriptorTable.pDescriptorRanges))); + } + } + HeapFree(GetProcessHeap(), 0, pParameters); + return hr; + } + } + break; + + case D3D_ROOT_SIGNATURE_VERSION_1_1: + return D3D12SerializeVersionedRootSignature(pRootSignatureDesc, ppBlob, ppErrorBlob); + } + + return ((HRESULT)0x80070057L); +} +# 11 "../LEngine/RenderOutput.h" 2 + + + +class RenderOutput { +public: + + virtual ~RenderOutput() { + } + virtual uint32_t GetWidth() = 0; + virtual uint32_t GetHeight() = 0; + + virtual CD3DX12_CPU_DESCRIPTOR_HANDLE GetRenderTargetDescriptor(uint32_t id) = 0; + virtual CD3DX12_CPU_DESCRIPTOR_HANDLE GetDepthStencilDescriptor(uint32_t id) = 0; + + virtual ID3D12ResourcePtr GetRenderTarget(uint32_t id) = 0; + virtual ID3D12ResourcePtr GetDepthBuffer(uint32_t id) = 0; + + virtual void Present() = 0; + virtual void OnPreRender(RendererPtr renderer) = 0; + + virtual uint32_t GetCurrentBufferIndex() = 0; + virtual uint32_t GetBuffersCount() = 0; +protected: +}; + +typedef std::shared_ptr RenderOutputPtr; +# 8 "../LEngine\\LEngine.h" 2 + + +class LEngine { +public: + static std::shared_ptr Instance(); + friend class Scene; + ScenePtr GetActiveScene(); + void LoadScene(const std::string& path); + void Init(const std::wstring& assetsPath); + RendererPtr& GetRenderer() { + return _renderer; + } + void AddOutput(RenderOutputPtr output) { + _outputs.push_back(output); + } + std::vector GetOutputs() { + return _outputs; + } +private: + LEngine() + { + _renderer = std::make_shared(); + } + RendererPtr _renderer; + ScenePtr _activeScene; + static std::shared_ptr _instance; + std::vector _outputs; +}; +# 4 "D:/lengine/LEditor/LEditor.cpp" 2 + +# 1 "D:/directui/DirectUI\\Ui.h" 1 + + + +# 1 "D:/directui/DirectUI/UiCore.h" 1 + + + +# 1 "D:/directui/DirectUI/Window.h" 1 + + + + + + +# 1 "D:/directui/DirectUI/UiTypes.h" 1 + + + + + +# 1 "D:/directui/DirectUI/UiD2d.h" 1 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1_1.h" 1 +# 16 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1_1.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" 1 +# 19 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dcommon.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dcommon.h" +#pragma warning(push) +#pragma warning(disable: 4201) + + + + +struct IDXGISurface; + + + + +typedef enum DWRITE_MEASURING_MODE +{ + + + + DWRITE_MEASURING_MODE_NATURAL, + + + + + DWRITE_MEASURING_MODE_GDI_CLASSIC, + + + + + + DWRITE_MEASURING_MODE_GDI_NATURAL + +} DWRITE_MEASURING_MODE; + + + + + +typedef enum D2D1_ALPHA_MODE +{ + + + + + + D2D1_ALPHA_MODE_UNKNOWN = 0, + + + + + D2D1_ALPHA_MODE_PREMULTIPLIED = 1, + + + + + D2D1_ALPHA_MODE_STRAIGHT = 2, + + + + + D2D1_ALPHA_MODE_IGNORE = 3, + + D2D1_ALPHA_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_ALPHA_MODE; + + + + +typedef struct D2D1_PIXEL_FORMAT +{ + DXGI_FORMAT format; + D2D1_ALPHA_MODE alphaMode; + +} D2D1_PIXEL_FORMAT; + + + + +typedef struct D2D_POINT_2U +{ + UINT32 x; + UINT32 y; + +} D2D_POINT_2U; + + + + +typedef struct D2D_POINT_2F +{ + FLOAT x; + FLOAT y; + +} D2D_POINT_2F; + +typedef POINT D2D_POINT_2L; + + + + +typedef struct D2D_VECTOR_2F +{ + FLOAT x; + FLOAT y; + +} D2D_VECTOR_2F; + + + + + +typedef struct D2D_VECTOR_3F +{ + FLOAT x; + FLOAT y; + FLOAT z; + +} D2D_VECTOR_3F; + + + + + +typedef struct D2D_VECTOR_4F +{ + FLOAT x; + FLOAT y; + FLOAT z; + FLOAT w; + +} D2D_VECTOR_4F; + + + + + + +typedef struct D2D_RECT_F +{ + FLOAT left; + FLOAT top; + FLOAT right; + FLOAT bottom; + +} D2D_RECT_F; + + + + + + +typedef struct D2D_RECT_U +{ + UINT32 left; + UINT32 top; + UINT32 right; + UINT32 bottom; + +} D2D_RECT_U; + +typedef RECT D2D_RECT_L; + + + + +typedef struct D2D_SIZE_F +{ + FLOAT width; + FLOAT height; + +} D2D_SIZE_F; + + + + + + +typedef struct D2D_SIZE_U +{ + UINT32 width; + UINT32 height; + +} D2D_SIZE_U; + + + + + +typedef struct D2D_MATRIX_3X2_F +{ + union + { + struct + { + + + + FLOAT m11; + + + + + FLOAT m12; + + + + + FLOAT m21; + + + + + FLOAT m22; + + + + + FLOAT dx; + + + + + FLOAT dy; + }; + + struct + { + FLOAT _11, _12; + FLOAT _21, _22; + FLOAT _31, _32; + }; + + FLOAT m[3][2]; + }; + +} D2D_MATRIX_3X2_F; + + + + + + +typedef struct D2D_MATRIX_4X3_F +{ + union + { + struct + { + FLOAT _11, _12, _13; + FLOAT _21, _22, _23; + FLOAT _31, _32, _33; + FLOAT _41, _42, _43; + }; + + FLOAT m[4][3]; + }; + +} D2D_MATRIX_4X3_F; + + + + + +typedef struct D2D_MATRIX_4X4_F +{ + union + { + struct + { + FLOAT _11, _12, _13, _14; + FLOAT _21, _22, _23, _24; + FLOAT _31, _32, _33, _34; + FLOAT _41, _42, _43, _44; + }; + + FLOAT m[4][4]; + }; + +} D2D_MATRIX_4X4_F; + + + + + +typedef struct D2D_MATRIX_5X4_F +{ + union + { + struct + { + FLOAT _11, _12, _13, _14; + FLOAT _21, _22, _23, _24; + FLOAT _31, _32, _33, _34; + FLOAT _41, _42, _43, _44; + FLOAT _51, _52, _53, _54; + }; + + FLOAT m[5][4]; + }; + +} D2D_MATRIX_5X4_F; + + +typedef D2D_POINT_2F D2D1_POINT_2F; +typedef D2D_POINT_2U D2D1_POINT_2U; +typedef D2D_POINT_2L D2D1_POINT_2L; +typedef D2D_RECT_F D2D1_RECT_F; +typedef D2D_RECT_U D2D1_RECT_U; +typedef D2D_RECT_L D2D1_RECT_L; +typedef D2D_SIZE_F D2D1_SIZE_F; +typedef D2D_SIZE_U D2D1_SIZE_U; +typedef D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F; + + +#pragma warning(pop) +# 19 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\D2DErr.h" 1 +# 20 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\D2DBaseTypes.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\D2DBaseTypes.h" +typedef D3DCOLORVALUE D2D_COLOR_F; +# 21 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" 2 +# 50 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" +typedef struct IDWriteTextFormat IDWriteTextFormat; +typedef struct IDWriteTextLayout IDWriteTextLayout; +typedef struct IDWriteRenderingParams IDWriteRenderingParams; +typedef struct IDXGISurface IDXGISurface; +typedef struct IWICBitmap IWICBitmap; +typedef struct IWICBitmapSource IWICBitmapSource; + +typedef struct DWRITE_GLYPH_RUN DWRITE_GLYPH_RUN; + + + +struct ID2D1Factory; +struct ID2D1RenderTarget; +struct ID2D1BitmapRenderTarget; +struct ID2D1SimplifiedGeometrySink; +struct ID2D1TessellationSink; +struct ID2D1Geometry; +struct ID2D1Brush; +# 89 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" +enum +{ + D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR = 0, + D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR = 1, + D2D1_INTERPOLATION_MODE_DEFINITION_CUBIC = 2, + D2D1_INTERPOLATION_MODE_DEFINITION_MULTI_SAMPLE_LINEAR = 3, + D2D1_INTERPOLATION_MODE_DEFINITION_ANISOTROPIC = 4, + D2D1_INTERPOLATION_MODE_DEFINITION_HIGH_QUALITY_CUBIC = 5, + D2D1_INTERPOLATION_MODE_DEFINITION_FANT = 6, + D2D1_INTERPOLATION_MODE_DEFINITION_MIPMAP_LINEAR = 7 + +}; + + + + + +typedef enum D2D1_GAMMA +{ + + + + + D2D1_GAMMA_2_2 = 0, + + + + + D2D1_GAMMA_1_0 = 1, + D2D1_GAMMA_FORCE_DWORD = 0xffffffff + +} D2D1_GAMMA; + + + + + +typedef enum D2D1_OPACITY_MASK_CONTENT +{ + + + + + D2D1_OPACITY_MASK_CONTENT_GRAPHICS = 0, + + + + + D2D1_OPACITY_MASK_CONTENT_TEXT_NATURAL = 1, + + + + + D2D1_OPACITY_MASK_CONTENT_TEXT_GDI_COMPATIBLE = 2, + D2D1_OPACITY_MASK_CONTENT_FORCE_DWORD = 0xffffffff + +} D2D1_OPACITY_MASK_CONTENT; + + + + + +typedef enum D2D1_EXTEND_MODE +{ + + + + + + D2D1_EXTEND_MODE_CLAMP = 0, + + + + + + D2D1_EXTEND_MODE_WRAP = 1, + + + + + + D2D1_EXTEND_MODE_MIRROR = 2, + D2D1_EXTEND_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_EXTEND_MODE; + + + + + +typedef enum D2D1_ANTIALIAS_MODE +{ + + + + + D2D1_ANTIALIAS_MODE_PER_PRIMITIVE = 0, + + + + + D2D1_ANTIALIAS_MODE_ALIASED = 1, + D2D1_ANTIALIAS_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_ANTIALIAS_MODE; + + + + + +typedef enum D2D1_TEXT_ANTIALIAS_MODE +{ + + + + + D2D1_TEXT_ANTIALIAS_MODE_DEFAULT = 0, + + + + + D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE = 1, + + + + + D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE = 2, + + + + + D2D1_TEXT_ANTIALIAS_MODE_ALIASED = 3, + D2D1_TEXT_ANTIALIAS_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_TEXT_ANTIALIAS_MODE; + + + + + + + +typedef enum D2D1_BITMAP_INTERPOLATION_MODE +{ + + + + + + D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR, + + + + + D2D1_BITMAP_INTERPOLATION_MODE_LINEAR = D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR, + D2D1_BITMAP_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_BITMAP_INTERPOLATION_MODE; + + + + + + +typedef enum D2D1_DRAW_TEXT_OPTIONS +{ + + + + + D2D1_DRAW_TEXT_OPTIONS_NO_SNAP = 0x00000001, + + + + + D2D1_DRAW_TEXT_OPTIONS_CLIP = 0x00000002, + + + + + D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT = 0x00000004, + + + + + D2D1_DRAW_TEXT_OPTIONS_DISABLE_COLOR_BITMAP_SNAPPING = 0x00000008, + D2D1_DRAW_TEXT_OPTIONS_NONE = 0x00000000, + D2D1_DRAW_TEXT_OPTIONS_FORCE_DWORD = 0xffffffff + +} D2D1_DRAW_TEXT_OPTIONS; + +extern "C++" { inline constexpr D2D1_DRAW_TEXT_OPTIONS operator | (D2D1_DRAW_TEXT_OPTIONS a, D2D1_DRAW_TEXT_OPTIONS b) throw() { return D2D1_DRAW_TEXT_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_DRAW_TEXT_OPTIONS &operator |= (D2D1_DRAW_TEXT_OPTIONS &a, D2D1_DRAW_TEXT_OPTIONS b) throw() { return (D2D1_DRAW_TEXT_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_DRAW_TEXT_OPTIONS operator & (D2D1_DRAW_TEXT_OPTIONS a, D2D1_DRAW_TEXT_OPTIONS b) throw() { return D2D1_DRAW_TEXT_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_DRAW_TEXT_OPTIONS &operator &= (D2D1_DRAW_TEXT_OPTIONS &a, D2D1_DRAW_TEXT_OPTIONS b) throw() { return (D2D1_DRAW_TEXT_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_DRAW_TEXT_OPTIONS operator ~ (D2D1_DRAW_TEXT_OPTIONS a) throw() { return D2D1_DRAW_TEXT_OPTIONS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D2D1_DRAW_TEXT_OPTIONS operator ^ (D2D1_DRAW_TEXT_OPTIONS a, D2D1_DRAW_TEXT_OPTIONS b) throw() { return D2D1_DRAW_TEXT_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_DRAW_TEXT_OPTIONS &operator ^= (D2D1_DRAW_TEXT_OPTIONS &a, D2D1_DRAW_TEXT_OPTIONS b) throw() { return (D2D1_DRAW_TEXT_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; + +typedef D2D_POINT_2U D2D1_POINT_2U; +typedef D2D_POINT_2F D2D1_POINT_2F; +typedef D2D_RECT_F D2D1_RECT_F; +typedef D2D_RECT_U D2D1_RECT_U; +typedef D2D_SIZE_F D2D1_SIZE_F; +typedef D2D_SIZE_U D2D1_SIZE_U; +typedef D2D_COLOR_F D2D1_COLOR_F; +typedef D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F; +typedef UINT64 D2D1_TAG; + + + + +typedef struct D2D1_BITMAP_PROPERTIES +{ + D2D1_PIXEL_FORMAT pixelFormat; + FLOAT dpiX; + FLOAT dpiY; + +} D2D1_BITMAP_PROPERTIES; + + + + + +typedef struct D2D1_GRADIENT_STOP +{ + FLOAT position; + D2D1_COLOR_F color; + +} D2D1_GRADIENT_STOP; + + + + + +typedef struct D2D1_BRUSH_PROPERTIES +{ + FLOAT opacity; + D2D1_MATRIX_3X2_F transform; + +} D2D1_BRUSH_PROPERTIES; + + + + + +typedef struct D2D1_BITMAP_BRUSH_PROPERTIES +{ + D2D1_EXTEND_MODE extendModeX; + D2D1_EXTEND_MODE extendModeY; + D2D1_BITMAP_INTERPOLATION_MODE interpolationMode; + +} D2D1_BITMAP_BRUSH_PROPERTIES; + + + + + + +typedef struct D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES +{ + D2D1_POINT_2F startPoint; + D2D1_POINT_2F endPoint; + +} D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES; + + + + + + +typedef struct D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES +{ + D2D1_POINT_2F center; + D2D1_POINT_2F gradientOriginOffset; + FLOAT radiusX; + FLOAT radiusY; + +} D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES; + + + + + + +typedef enum D2D1_ARC_SIZE +{ + D2D1_ARC_SIZE_SMALL = 0, + D2D1_ARC_SIZE_LARGE = 1, + D2D1_ARC_SIZE_FORCE_DWORD = 0xffffffff + +} D2D1_ARC_SIZE; + + + + + +typedef enum D2D1_CAP_STYLE +{ + + + + + D2D1_CAP_STYLE_FLAT = 0, + + + + + D2D1_CAP_STYLE_SQUARE = 1, + + + + + D2D1_CAP_STYLE_ROUND = 2, + + + + + D2D1_CAP_STYLE_TRIANGLE = 3, + D2D1_CAP_STYLE_FORCE_DWORD = 0xffffffff + +} D2D1_CAP_STYLE; + + + + + +typedef enum D2D1_DASH_STYLE +{ + D2D1_DASH_STYLE_SOLID = 0, + D2D1_DASH_STYLE_DASH = 1, + D2D1_DASH_STYLE_DOT = 2, + D2D1_DASH_STYLE_DASH_DOT = 3, + D2D1_DASH_STYLE_DASH_DOT_DOT = 4, + D2D1_DASH_STYLE_CUSTOM = 5, + D2D1_DASH_STYLE_FORCE_DWORD = 0xffffffff + +} D2D1_DASH_STYLE; + + + + + +typedef enum D2D1_LINE_JOIN +{ + + + + + D2D1_LINE_JOIN_MITER = 0, + + + + + D2D1_LINE_JOIN_BEVEL = 1, + + + + + D2D1_LINE_JOIN_ROUND = 2, + + + + + D2D1_LINE_JOIN_MITER_OR_BEVEL = 3, + D2D1_LINE_JOIN_FORCE_DWORD = 0xffffffff + +} D2D1_LINE_JOIN; + + + + + +typedef enum D2D1_COMBINE_MODE +{ + + + + + + D2D1_COMBINE_MODE_UNION = 0, + + + + + + D2D1_COMBINE_MODE_INTERSECT = 1, + + + + + + D2D1_COMBINE_MODE_XOR = 2, + + + + + + D2D1_COMBINE_MODE_EXCLUDE = 3, + D2D1_COMBINE_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_COMBINE_MODE; + + + + + + +typedef enum D2D1_GEOMETRY_RELATION +{ + + + + + + D2D1_GEOMETRY_RELATION_UNKNOWN = 0, + + + + + D2D1_GEOMETRY_RELATION_DISJOINT = 1, + + + + + D2D1_GEOMETRY_RELATION_IS_CONTAINED = 2, + + + + + D2D1_GEOMETRY_RELATION_CONTAINS = 3, + + + + + D2D1_GEOMETRY_RELATION_OVERLAP = 4, + D2D1_GEOMETRY_RELATION_FORCE_DWORD = 0xffffffff + +} D2D1_GEOMETRY_RELATION; + + + + + +typedef enum D2D1_GEOMETRY_SIMPLIFICATION_OPTION +{ + D2D1_GEOMETRY_SIMPLIFICATION_OPTION_CUBICS_AND_LINES = 0, + D2D1_GEOMETRY_SIMPLIFICATION_OPTION_LINES = 1, + D2D1_GEOMETRY_SIMPLIFICATION_OPTION_FORCE_DWORD = 0xffffffff + +} D2D1_GEOMETRY_SIMPLIFICATION_OPTION; + + + + + +typedef enum D2D1_FIGURE_BEGIN +{ + D2D1_FIGURE_BEGIN_FILLED = 0, + D2D1_FIGURE_BEGIN_HOLLOW = 1, + D2D1_FIGURE_BEGIN_FORCE_DWORD = 0xffffffff + +} D2D1_FIGURE_BEGIN; + + + + + +typedef enum D2D1_FIGURE_END +{ + D2D1_FIGURE_END_OPEN = 0, + D2D1_FIGURE_END_CLOSED = 1, + D2D1_FIGURE_END_FORCE_DWORD = 0xffffffff + +} D2D1_FIGURE_END; + + + + + +typedef struct D2D1_BEZIER_SEGMENT +{ + D2D1_POINT_2F point1; + D2D1_POINT_2F point2; + D2D1_POINT_2F point3; + +} D2D1_BEZIER_SEGMENT; + + + + + +typedef struct D2D1_TRIANGLE +{ + D2D1_POINT_2F point1; + D2D1_POINT_2F point2; + D2D1_POINT_2F point3; + +} D2D1_TRIANGLE; + + + + + + +typedef enum D2D1_PATH_SEGMENT +{ + D2D1_PATH_SEGMENT_NONE = 0x00000000, + D2D1_PATH_SEGMENT_FORCE_UNSTROKED = 0x00000001, + D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN = 0x00000002, + D2D1_PATH_SEGMENT_FORCE_DWORD = 0xffffffff + +} D2D1_PATH_SEGMENT; + +extern "C++" { inline constexpr D2D1_PATH_SEGMENT operator | (D2D1_PATH_SEGMENT a, D2D1_PATH_SEGMENT b) throw() { return D2D1_PATH_SEGMENT(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_PATH_SEGMENT &operator |= (D2D1_PATH_SEGMENT &a, D2D1_PATH_SEGMENT b) throw() { return (D2D1_PATH_SEGMENT &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_PATH_SEGMENT operator & (D2D1_PATH_SEGMENT a, D2D1_PATH_SEGMENT b) throw() { return D2D1_PATH_SEGMENT(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_PATH_SEGMENT &operator &= (D2D1_PATH_SEGMENT &a, D2D1_PATH_SEGMENT b) throw() { return (D2D1_PATH_SEGMENT &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_PATH_SEGMENT operator ~ (D2D1_PATH_SEGMENT a) throw() { return D2D1_PATH_SEGMENT(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D2D1_PATH_SEGMENT operator ^ (D2D1_PATH_SEGMENT a, D2D1_PATH_SEGMENT b) throw() { return D2D1_PATH_SEGMENT(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_PATH_SEGMENT &operator ^= (D2D1_PATH_SEGMENT &a, D2D1_PATH_SEGMENT b) throw() { return (D2D1_PATH_SEGMENT &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; + + + + + +typedef enum D2D1_SWEEP_DIRECTION +{ + D2D1_SWEEP_DIRECTION_COUNTER_CLOCKWISE = 0, + D2D1_SWEEP_DIRECTION_CLOCKWISE = 1, + D2D1_SWEEP_DIRECTION_FORCE_DWORD = 0xffffffff + +} D2D1_SWEEP_DIRECTION; + + + + + + +typedef enum D2D1_FILL_MODE +{ + D2D1_FILL_MODE_ALTERNATE = 0, + D2D1_FILL_MODE_WINDING = 1, + D2D1_FILL_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_FILL_MODE; + + + + + +typedef struct D2D1_ARC_SEGMENT +{ + D2D1_POINT_2F point; + D2D1_SIZE_F size; + FLOAT rotationAngle; + D2D1_SWEEP_DIRECTION sweepDirection; + D2D1_ARC_SIZE arcSize; + +} D2D1_ARC_SEGMENT; + + + + + +typedef struct D2D1_QUADRATIC_BEZIER_SEGMENT +{ + D2D1_POINT_2F point1; + D2D1_POINT_2F point2; + +} D2D1_QUADRATIC_BEZIER_SEGMENT; + + + + + +typedef struct D2D1_ELLIPSE +{ + D2D1_POINT_2F point; + FLOAT radiusX; + FLOAT radiusY; + +} D2D1_ELLIPSE; + + + + + +typedef struct D2D1_ROUNDED_RECT +{ + D2D1_RECT_F rect; + FLOAT radiusX; + FLOAT radiusY; + +} D2D1_ROUNDED_RECT; + + + + + +typedef struct D2D1_STROKE_STYLE_PROPERTIES +{ + D2D1_CAP_STYLE startCap; + D2D1_CAP_STYLE endCap; + D2D1_CAP_STYLE dashCap; + D2D1_LINE_JOIN lineJoin; + FLOAT miterLimit; + D2D1_DASH_STYLE dashStyle; + FLOAT dashOffset; + +} D2D1_STROKE_STYLE_PROPERTIES; + + + + + + +typedef enum D2D1_LAYER_OPTIONS +{ + D2D1_LAYER_OPTIONS_NONE = 0x00000000, +# 706 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" + D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE = 0x00000001, + D2D1_LAYER_OPTIONS_FORCE_DWORD = 0xffffffff + +} D2D1_LAYER_OPTIONS; + +extern "C++" { inline constexpr D2D1_LAYER_OPTIONS operator | (D2D1_LAYER_OPTIONS a, D2D1_LAYER_OPTIONS b) throw() { return D2D1_LAYER_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_LAYER_OPTIONS &operator |= (D2D1_LAYER_OPTIONS &a, D2D1_LAYER_OPTIONS b) throw() { return (D2D1_LAYER_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_LAYER_OPTIONS operator & (D2D1_LAYER_OPTIONS a, D2D1_LAYER_OPTIONS b) throw() { return D2D1_LAYER_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_LAYER_OPTIONS &operator &= (D2D1_LAYER_OPTIONS &a, D2D1_LAYER_OPTIONS b) throw() { return (D2D1_LAYER_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_LAYER_OPTIONS operator ~ (D2D1_LAYER_OPTIONS a) throw() { return D2D1_LAYER_OPTIONS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D2D1_LAYER_OPTIONS operator ^ (D2D1_LAYER_OPTIONS a, D2D1_LAYER_OPTIONS b) throw() { return D2D1_LAYER_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_LAYER_OPTIONS &operator ^= (D2D1_LAYER_OPTIONS &a, D2D1_LAYER_OPTIONS b) throw() { return (D2D1_LAYER_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; + + + + + + +typedef struct D2D1_LAYER_PARAMETERS +{ + + + + + + D2D1_RECT_F contentBounds; + + + + + + ID2D1Geometry *geometricMask; + + + + + D2D1_ANTIALIAS_MODE maskAntialiasMode; + + + + + + D2D1_MATRIX_3X2_F maskTransform; + + + + + + FLOAT opacity; + + + + + + + ID2D1Brush *opacityBrush; + + + + + D2D1_LAYER_OPTIONS layerOptions; + +} D2D1_LAYER_PARAMETERS; + + + + + +typedef enum D2D1_WINDOW_STATE +{ + D2D1_WINDOW_STATE_NONE = 0x0000000, + D2D1_WINDOW_STATE_OCCLUDED = 0x0000001, + D2D1_WINDOW_STATE_FORCE_DWORD = 0xffffffff + +} D2D1_WINDOW_STATE; + +extern "C++" { inline constexpr D2D1_WINDOW_STATE operator | (D2D1_WINDOW_STATE a, D2D1_WINDOW_STATE b) throw() { return D2D1_WINDOW_STATE(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_WINDOW_STATE &operator |= (D2D1_WINDOW_STATE &a, D2D1_WINDOW_STATE b) throw() { return (D2D1_WINDOW_STATE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_WINDOW_STATE operator & (D2D1_WINDOW_STATE a, D2D1_WINDOW_STATE b) throw() { return D2D1_WINDOW_STATE(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_WINDOW_STATE &operator &= (D2D1_WINDOW_STATE &a, D2D1_WINDOW_STATE b) throw() { return (D2D1_WINDOW_STATE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_WINDOW_STATE operator ~ (D2D1_WINDOW_STATE a) throw() { return D2D1_WINDOW_STATE(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D2D1_WINDOW_STATE operator ^ (D2D1_WINDOW_STATE a, D2D1_WINDOW_STATE b) throw() { return D2D1_WINDOW_STATE(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_WINDOW_STATE &operator ^= (D2D1_WINDOW_STATE &a, D2D1_WINDOW_STATE b) throw() { return (D2D1_WINDOW_STATE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; + + + + + + +typedef enum D2D1_RENDER_TARGET_TYPE +{ + + + + + D2D1_RENDER_TARGET_TYPE_DEFAULT = 0, + + + + + D2D1_RENDER_TARGET_TYPE_SOFTWARE = 1, + + + + + D2D1_RENDER_TARGET_TYPE_HARDWARE = 2, + D2D1_RENDER_TARGET_TYPE_FORCE_DWORD = 0xffffffff + +} D2D1_RENDER_TARGET_TYPE; + + + + + + +typedef enum D2D1_FEATURE_LEVEL +{ + + + + + D2D1_FEATURE_LEVEL_DEFAULT = 0, + + + + + D2D1_FEATURE_LEVEL_9 = D3D_FEATURE_LEVEL_9_1, + + + + + D2D1_FEATURE_LEVEL_10 = D3D_FEATURE_LEVEL_10_0, + D2D1_FEATURE_LEVEL_FORCE_DWORD = 0xffffffff + +} D2D1_FEATURE_LEVEL; + + + + + + + +typedef enum D2D1_RENDER_TARGET_USAGE +{ + D2D1_RENDER_TARGET_USAGE_NONE = 0x00000000, + + + + + + D2D1_RENDER_TARGET_USAGE_FORCE_BITMAP_REMOTING = 0x00000001, + + + + + + D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE = 0x00000002, + D2D1_RENDER_TARGET_USAGE_FORCE_DWORD = 0xffffffff + +} D2D1_RENDER_TARGET_USAGE; + +extern "C++" { inline constexpr D2D1_RENDER_TARGET_USAGE operator | (D2D1_RENDER_TARGET_USAGE a, D2D1_RENDER_TARGET_USAGE b) throw() { return D2D1_RENDER_TARGET_USAGE(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_RENDER_TARGET_USAGE &operator |= (D2D1_RENDER_TARGET_USAGE &a, D2D1_RENDER_TARGET_USAGE b) throw() { return (D2D1_RENDER_TARGET_USAGE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_RENDER_TARGET_USAGE operator & (D2D1_RENDER_TARGET_USAGE a, D2D1_RENDER_TARGET_USAGE b) throw() { return D2D1_RENDER_TARGET_USAGE(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_RENDER_TARGET_USAGE &operator &= (D2D1_RENDER_TARGET_USAGE &a, D2D1_RENDER_TARGET_USAGE b) throw() { return (D2D1_RENDER_TARGET_USAGE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_RENDER_TARGET_USAGE operator ~ (D2D1_RENDER_TARGET_USAGE a) throw() { return D2D1_RENDER_TARGET_USAGE(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D2D1_RENDER_TARGET_USAGE operator ^ (D2D1_RENDER_TARGET_USAGE a, D2D1_RENDER_TARGET_USAGE b) throw() { return D2D1_RENDER_TARGET_USAGE(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_RENDER_TARGET_USAGE &operator ^= (D2D1_RENDER_TARGET_USAGE &a, D2D1_RENDER_TARGET_USAGE b) throw() { return (D2D1_RENDER_TARGET_USAGE &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; + + + + + +typedef enum D2D1_PRESENT_OPTIONS +{ + D2D1_PRESENT_OPTIONS_NONE = 0x00000000, + + + + + D2D1_PRESENT_OPTIONS_RETAIN_CONTENTS = 0x00000001, + + + + + D2D1_PRESENT_OPTIONS_IMMEDIATELY = 0x00000002, + D2D1_PRESENT_OPTIONS_FORCE_DWORD = 0xffffffff + +} D2D1_PRESENT_OPTIONS; + +extern "C++" { inline constexpr D2D1_PRESENT_OPTIONS operator | (D2D1_PRESENT_OPTIONS a, D2D1_PRESENT_OPTIONS b) throw() { return D2D1_PRESENT_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_PRESENT_OPTIONS &operator |= (D2D1_PRESENT_OPTIONS &a, D2D1_PRESENT_OPTIONS b) throw() { return (D2D1_PRESENT_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_PRESENT_OPTIONS operator & (D2D1_PRESENT_OPTIONS a, D2D1_PRESENT_OPTIONS b) throw() { return D2D1_PRESENT_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_PRESENT_OPTIONS &operator &= (D2D1_PRESENT_OPTIONS &a, D2D1_PRESENT_OPTIONS b) throw() { return (D2D1_PRESENT_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_PRESENT_OPTIONS operator ~ (D2D1_PRESENT_OPTIONS a) throw() { return D2D1_PRESENT_OPTIONS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D2D1_PRESENT_OPTIONS operator ^ (D2D1_PRESENT_OPTIONS a, D2D1_PRESENT_OPTIONS b) throw() { return D2D1_PRESENT_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_PRESENT_OPTIONS &operator ^= (D2D1_PRESENT_OPTIONS &a, D2D1_PRESENT_OPTIONS b) throw() { return (D2D1_PRESENT_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; + + + + + + + +typedef struct D2D1_RENDER_TARGET_PROPERTIES +{ + D2D1_RENDER_TARGET_TYPE type; + D2D1_PIXEL_FORMAT pixelFormat; + FLOAT dpiX; + FLOAT dpiY; + D2D1_RENDER_TARGET_USAGE usage; + D2D1_FEATURE_LEVEL minLevel; + +} D2D1_RENDER_TARGET_PROPERTIES; + + + + + + +typedef struct D2D1_HWND_RENDER_TARGET_PROPERTIES +{ + HWND hwnd; + D2D1_SIZE_U pixelSize; + D2D1_PRESENT_OPTIONS presentOptions; + +} D2D1_HWND_RENDER_TARGET_PROPERTIES; + + + + + + +typedef enum D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS +{ + D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE = 0x00000000, + + + + + + + D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE = 0x00000001, + D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_FORCE_DWORD = 0xffffffff + +} D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS; + +extern "C++" { inline constexpr D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS operator | (D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS a, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS b) throw() { return D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS &operator |= (D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS &a, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS b) throw() { return (D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS operator & (D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS a, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS b) throw() { return D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS &operator &= (D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS &a, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS b) throw() { return (D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS operator ~ (D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS a) throw() { return D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS operator ^ (D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS a, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS b) throw() { return D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS &operator ^= (D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS &a, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS b) throw() { return (D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; + + + + + + +typedef struct D2D1_DRAWING_STATE_DESCRIPTION +{ + D2D1_ANTIALIAS_MODE antialiasMode; + D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode; + D2D1_TAG tag1; + D2D1_TAG tag2; + D2D1_MATRIX_3X2_F transform; + +} D2D1_DRAWING_STATE_DESCRIPTION; + + + + + + +typedef enum D2D1_DC_INITIALIZE_MODE +{ + + + + + D2D1_DC_INITIALIZE_MODE_COPY = 0, + + + + + D2D1_DC_INITIALIZE_MODE_CLEAR = 1, + D2D1_DC_INITIALIZE_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_DC_INITIALIZE_MODE; + + + + + +typedef enum D2D1_DEBUG_LEVEL +{ + D2D1_DEBUG_LEVEL_NONE = 0, + D2D1_DEBUG_LEVEL_ERROR = 1, + D2D1_DEBUG_LEVEL_WARNING = 2, + D2D1_DEBUG_LEVEL_INFORMATION = 3, + D2D1_DEBUG_LEVEL_FORCE_DWORD = 0xffffffff + +} D2D1_DEBUG_LEVEL; + + + + + + +typedef enum D2D1_FACTORY_TYPE +{ + + + + + + + D2D1_FACTORY_TYPE_SINGLE_THREADED = 0, + + + + + + D2D1_FACTORY_TYPE_MULTI_THREADED = 1, + D2D1_FACTORY_TYPE_FORCE_DWORD = 0xffffffff + +} D2D1_FACTORY_TYPE; + + + + + +typedef struct D2D1_FACTORY_OPTIONS +{ + + + + + + D2D1_DEBUG_LEVEL debugLevel; + +} D2D1_FACTORY_OPTIONS; +# 1034 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" +struct __declspec(uuid("2cd90691-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1Resource : public IUnknown +{ + + + + + virtual __declspec(nothrow) void __stdcall GetFactory( + ID2D1Factory **factory + ) const = 0; +}; + + + + + +struct __declspec(uuid("65019f75-8da2-497c-b32c-dfa34e48ede6")) __declspec(novtable) ID2D1Image : public ID2D1Resource +{ +}; + + + + + +struct __declspec(uuid("a2296057-ea42-4099-983b-539fb6505426")) __declspec(novtable) ID2D1Bitmap : public ID2D1Image +{ + + + + + virtual __declspec(nothrow) D2D1_SIZE_F __stdcall GetSize( + ) const = 0; + + + + + virtual __declspec(nothrow) D2D1_SIZE_U __stdcall GetPixelSize( + ) const = 0; + + + + + virtual __declspec(nothrow) D2D1_PIXEL_FORMAT __stdcall GetPixelFormat( + ) const = 0; + + + + + virtual __declspec(nothrow) void __stdcall GetDpi( + FLOAT *dpiX, + FLOAT *dpiY + ) const = 0; + + virtual __declspec(nothrow) HRESULT __stdcall CopyFromBitmap( + const D2D1_POINT_2U *destPoint, + ID2D1Bitmap *bitmap, + const D2D1_RECT_U *srcRect + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall CopyFromRenderTarget( + const D2D1_POINT_2U *destPoint, + ID2D1RenderTarget *renderTarget, + const D2D1_RECT_U *srcRect + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall CopyFromMemory( + const D2D1_RECT_U *dstRect, + const void *srcData, + UINT32 pitch + ) = 0; +}; + + + + + + +struct __declspec(uuid("2cd906a7-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1GradientStopCollection : public ID2D1Resource +{ + + + + + virtual __declspec(nothrow) UINT32 __stdcall GetGradientStopCount( + ) const = 0; + + + + + + virtual __declspec(nothrow) void __stdcall GetGradientStops( + D2D1_GRADIENT_STOP *gradientStops, + UINT32 gradientStopsCount + ) const = 0; + + + + + virtual __declspec(nothrow) D2D1_GAMMA __stdcall GetColorInterpolationGamma( + ) const = 0; + + virtual __declspec(nothrow) D2D1_EXTEND_MODE __stdcall GetExtendMode( + ) const = 0; +}; + + + + + +struct __declspec(uuid("2cd906a8-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1Brush : public ID2D1Resource +{ + + + + + virtual __declspec(nothrow) void __stdcall SetOpacity( + FLOAT opacity + ) = 0; + + + + + virtual __declspec(nothrow) void __stdcall SetTransform( + const D2D1_MATRIX_3X2_F *transform + ) = 0; + + virtual __declspec(nothrow) FLOAT __stdcall GetOpacity( + ) const = 0; + + virtual __declspec(nothrow) void __stdcall GetTransform( + D2D1_MATRIX_3X2_F *transform + ) const = 0; + + __declspec(nothrow) + void + SetTransform( + const D2D1_MATRIX_3X2_F &transform + ) + { + SetTransform(&transform); + } +}; + + + + + +struct __declspec(uuid("2cd906aa-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1BitmapBrush : public ID2D1Brush +{ + + + + + + virtual __declspec(nothrow) void __stdcall SetExtendModeX( + D2D1_EXTEND_MODE extendModeX + ) = 0; + + + + + + virtual __declspec(nothrow) void __stdcall SetExtendModeY( + D2D1_EXTEND_MODE extendModeY + ) = 0; + + + + + virtual __declspec(nothrow) void __stdcall SetInterpolationMode( + D2D1_BITMAP_INTERPOLATION_MODE interpolationMode + ) = 0; + + + + + virtual __declspec(nothrow) void __stdcall SetBitmap( + ID2D1Bitmap *bitmap + ) = 0; + + virtual __declspec(nothrow) D2D1_EXTEND_MODE __stdcall GetExtendModeX( + ) const = 0; + + virtual __declspec(nothrow) D2D1_EXTEND_MODE __stdcall GetExtendModeY( + ) const = 0; + + virtual __declspec(nothrow) D2D1_BITMAP_INTERPOLATION_MODE __stdcall GetInterpolationMode( + ) const = 0; + + virtual __declspec(nothrow) void __stdcall GetBitmap( + ID2D1Bitmap **bitmap + ) const = 0; +}; + + + + + +struct __declspec(uuid("2cd906a9-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1SolidColorBrush : public ID2D1Brush +{ + + virtual __declspec(nothrow) void __stdcall SetColor( + const D2D1_COLOR_F *color + ) = 0; + + virtual __declspec(nothrow) D2D1_COLOR_F __stdcall GetColor( + ) const = 0; + + __declspec(nothrow) + void + SetColor( + const D2D1_COLOR_F &color + ) + { + SetColor(&color); + } +}; + + + + + +struct __declspec(uuid("2cd906ab-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1LinearGradientBrush : public ID2D1Brush +{ + + virtual __declspec(nothrow) void __stdcall SetStartPoint( + D2D1_POINT_2F startPoint + ) = 0; + + + + + + virtual __declspec(nothrow) void __stdcall SetEndPoint( + D2D1_POINT_2F endPoint + ) = 0; + + virtual __declspec(nothrow) D2D1_POINT_2F __stdcall GetStartPoint( + ) const = 0; + + virtual __declspec(nothrow) D2D1_POINT_2F __stdcall GetEndPoint( + ) const = 0; + + virtual __declspec(nothrow) void __stdcall GetGradientStopCollection( + ID2D1GradientStopCollection **gradientStopCollection + ) const = 0; +}; + + + + + +struct __declspec(uuid("2cd906ac-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1RadialGradientBrush : public ID2D1Brush +{ + + + + + + virtual __declspec(nothrow) void __stdcall SetCenter( + D2D1_POINT_2F center + ) = 0; + + + + + virtual __declspec(nothrow) void __stdcall SetGradientOriginOffset( + D2D1_POINT_2F gradientOriginOffset + ) = 0; + + virtual __declspec(nothrow) void __stdcall SetRadiusX( + FLOAT radiusX + ) = 0; + + virtual __declspec(nothrow) void __stdcall SetRadiusY( + FLOAT radiusY + ) = 0; + + virtual __declspec(nothrow) D2D1_POINT_2F __stdcall GetCenter( + ) const = 0; + + virtual __declspec(nothrow) D2D1_POINT_2F __stdcall GetGradientOriginOffset( + ) const = 0; + + virtual __declspec(nothrow) FLOAT __stdcall GetRadiusX( + ) const = 0; + + virtual __declspec(nothrow) FLOAT __stdcall GetRadiusY( + ) const = 0; + + virtual __declspec(nothrow) void __stdcall GetGradientStopCollection( + ID2D1GradientStopCollection **gradientStopCollection + ) const = 0; +}; + + + + + +struct __declspec(uuid("2cd9069d-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1StrokeStyle : public ID2D1Resource +{ + + virtual __declspec(nothrow) D2D1_CAP_STYLE __stdcall GetStartCap( + ) const = 0; + + virtual __declspec(nothrow) D2D1_CAP_STYLE __stdcall GetEndCap( + ) const = 0; + + virtual __declspec(nothrow) D2D1_CAP_STYLE __stdcall GetDashCap( + ) const = 0; + + virtual __declspec(nothrow) FLOAT __stdcall GetMiterLimit( + ) const = 0; + + virtual __declspec(nothrow) D2D1_LINE_JOIN __stdcall GetLineJoin( + ) const = 0; + + virtual __declspec(nothrow) FLOAT __stdcall GetDashOffset( + ) const = 0; + + virtual __declspec(nothrow) D2D1_DASH_STYLE __stdcall GetDashStyle( + ) const = 0; + + virtual __declspec(nothrow) UINT32 __stdcall GetDashesCount( + ) const = 0; + + + + + + virtual __declspec(nothrow) void __stdcall GetDashes( + FLOAT *dashes, + UINT32 dashesCount + ) const = 0; +}; + + + + + + + +struct __declspec(uuid("2cd906a1-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1Geometry : public ID2D1Resource +{ + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetBounds( + const D2D1_MATRIX_3X2_F *worldTransform, + D2D1_RECT_F *bounds + ) const = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetWidenedBounds( + FLOAT strokeWidth, + ID2D1StrokeStyle *strokeStyle, + const D2D1_MATRIX_3X2_F *worldTransform, + FLOAT flatteningTolerance, + D2D1_RECT_F *bounds + ) const = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall StrokeContainsPoint( + D2D1_POINT_2F point, + FLOAT strokeWidth, + ID2D1StrokeStyle *strokeStyle, + const D2D1_MATRIX_3X2_F *worldTransform, + FLOAT flatteningTolerance, + BOOL *contains + ) const = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall FillContainsPoint( + D2D1_POINT_2F point, + const D2D1_MATRIX_3X2_F *worldTransform, + FLOAT flatteningTolerance, + BOOL *contains + ) const = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall CompareWithGeometry( + ID2D1Geometry *inputGeometry, + const D2D1_MATRIX_3X2_F *inputGeometryTransform, + FLOAT flatteningTolerance, + D2D1_GEOMETRY_RELATION *relation + ) const = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall Simplify( + D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, + const D2D1_MATRIX_3X2_F *worldTransform, + FLOAT flatteningTolerance, + ID2D1SimplifiedGeometrySink *geometrySink + ) const = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall Tessellate( + const D2D1_MATRIX_3X2_F *worldTransform, + FLOAT flatteningTolerance, + ID2D1TessellationSink *tessellationSink + ) const = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall CombineWithGeometry( + ID2D1Geometry *inputGeometry, + D2D1_COMBINE_MODE combineMode, + const D2D1_MATRIX_3X2_F *inputGeometryTransform, + FLOAT flatteningTolerance, + ID2D1SimplifiedGeometrySink *geometrySink + ) const = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall Outline( + const D2D1_MATRIX_3X2_F *worldTransform, + FLOAT flatteningTolerance, + ID2D1SimplifiedGeometrySink *geometrySink + ) const = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall ComputeArea( + const D2D1_MATRIX_3X2_F *worldTransform, + FLOAT flatteningTolerance, + FLOAT *area + ) const = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall ComputeLength( + const D2D1_MATRIX_3X2_F *worldTransform, + FLOAT flatteningTolerance, + FLOAT *length + ) const = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall ComputePointAtLength( + FLOAT length, + const D2D1_MATRIX_3X2_F *worldTransform, + FLOAT flatteningTolerance, + D2D1_POINT_2F *point, + D2D1_POINT_2F *unitTangentVector + ) const = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall Widen( + FLOAT strokeWidth, + ID2D1StrokeStyle *strokeStyle, + const D2D1_MATRIX_3X2_F *worldTransform, + FLOAT flatteningTolerance, + ID2D1SimplifiedGeometrySink *geometrySink + ) const = 0; + + + + + __declspec(nothrow) + HRESULT + GetBounds( + const D2D1_MATRIX_3X2_F &worldTransform, + D2D1_RECT_F *bounds + ) const + { + return GetBounds(&worldTransform, bounds); + } + + + + + + __declspec(nothrow) + HRESULT + GetWidenedBounds( + FLOAT strokeWidth, + ID2D1StrokeStyle *strokeStyle, + const D2D1_MATRIX_3X2_F &worldTransform, + FLOAT flatteningTolerance, + D2D1_RECT_F *bounds + ) const + { + return GetWidenedBounds(strokeWidth, strokeStyle, &worldTransform, flatteningTolerance, bounds); + } + + + + + + __declspec(nothrow) + HRESULT + GetWidenedBounds( + FLOAT strokeWidth, + ID2D1StrokeStyle *strokeStyle, + const D2D1_MATRIX_3X2_F *worldTransform, + D2D1_RECT_F *bounds + ) const + { + return GetWidenedBounds(strokeWidth, strokeStyle, worldTransform, (0.25f), bounds); + } + + + + + + __declspec(nothrow) + HRESULT + GetWidenedBounds( + FLOAT strokeWidth, + ID2D1StrokeStyle *strokeStyle, + const D2D1_MATRIX_3X2_F &worldTransform, + D2D1_RECT_F *bounds + ) const + { + return GetWidenedBounds(strokeWidth, strokeStyle, &worldTransform, (0.25f), bounds); + } + + __declspec(nothrow) + HRESULT + StrokeContainsPoint( + D2D1_POINT_2F point, + FLOAT strokeWidth, + ID2D1StrokeStyle *strokeStyle, + const D2D1_MATRIX_3X2_F &worldTransform, + FLOAT flatteningTolerance, + BOOL *contains + ) const + { + return StrokeContainsPoint(point, strokeWidth, strokeStyle, &worldTransform, flatteningTolerance, contains); + } + + + + + + __declspec(nothrow) + HRESULT + StrokeContainsPoint( + D2D1_POINT_2F point, + FLOAT strokeWidth, + ID2D1StrokeStyle *strokeStyle, + const D2D1_MATRIX_3X2_F *worldTransform, + BOOL *contains + ) const + { + return StrokeContainsPoint(point, strokeWidth, strokeStyle, worldTransform, (0.25f), contains); + } + + __declspec(nothrow) + HRESULT + StrokeContainsPoint( + D2D1_POINT_2F point, + FLOAT strokeWidth, + ID2D1StrokeStyle *strokeStyle, + const D2D1_MATRIX_3X2_F &worldTransform, + BOOL *contains + ) const + { + return StrokeContainsPoint(point, strokeWidth, strokeStyle, &worldTransform, (0.25f), contains); + } + + __declspec(nothrow) + HRESULT + FillContainsPoint( + D2D1_POINT_2F point, + const D2D1_MATRIX_3X2_F &worldTransform, + FLOAT flatteningTolerance, + BOOL *contains + ) const + { + return FillContainsPoint(point, &worldTransform, flatteningTolerance, contains); + } + + + + + __declspec(nothrow) + HRESULT + FillContainsPoint( + D2D1_POINT_2F point, + const D2D1_MATRIX_3X2_F *worldTransform, + BOOL *contains + ) const + { + return FillContainsPoint(point, worldTransform, (0.25f), contains); + } + + __declspec(nothrow) + HRESULT + FillContainsPoint( + D2D1_POINT_2F point, + const D2D1_MATRIX_3X2_F &worldTransform, + BOOL *contains + ) const + { + return FillContainsPoint(point, &worldTransform, (0.25f), contains); + } + + + + + __declspec(nothrow) + HRESULT + CompareWithGeometry( + ID2D1Geometry *inputGeometry, + const D2D1_MATRIX_3X2_F &inputGeometryTransform, + FLOAT flatteningTolerance, + D2D1_GEOMETRY_RELATION *relation + ) const + { + return CompareWithGeometry(inputGeometry, &inputGeometryTransform, flatteningTolerance, relation); + } + + + + + __declspec(nothrow) + HRESULT + CompareWithGeometry( + ID2D1Geometry *inputGeometry, + const D2D1_MATRIX_3X2_F *inputGeometryTransform, + D2D1_GEOMETRY_RELATION *relation + ) const + { + return CompareWithGeometry(inputGeometry, inputGeometryTransform, (0.25f), relation); + } + + + + + __declspec(nothrow) + HRESULT + CompareWithGeometry( + ID2D1Geometry *inputGeometry, + const D2D1_MATRIX_3X2_F &inputGeometryTransform, + D2D1_GEOMETRY_RELATION *relation + ) const + { + return CompareWithGeometry(inputGeometry, &inputGeometryTransform, (0.25f), relation); + } + + + + + + __declspec(nothrow) + HRESULT + Simplify( + D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, + const D2D1_MATRIX_3X2_F &worldTransform, + FLOAT flatteningTolerance, + ID2D1SimplifiedGeometrySink *geometrySink + ) const + { + return Simplify(simplificationOption, &worldTransform, flatteningTolerance, geometrySink); + } + + + + + + __declspec(nothrow) + HRESULT + Simplify( + D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, + const D2D1_MATRIX_3X2_F *worldTransform, + ID2D1SimplifiedGeometrySink *geometrySink + ) const + { + return Simplify(simplificationOption, worldTransform, (0.25f), geometrySink); + } + + + + + + __declspec(nothrow) + HRESULT + Simplify( + D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, + const D2D1_MATRIX_3X2_F &worldTransform, + ID2D1SimplifiedGeometrySink *geometrySink + ) const + { + return Simplify(simplificationOption, &worldTransform, (0.25f), geometrySink); + } + + + + + __declspec(nothrow) + HRESULT + Tessellate( + const D2D1_MATRIX_3X2_F &worldTransform, + FLOAT flatteningTolerance, + ID2D1TessellationSink *tessellationSink + ) const + { + return Tessellate(&worldTransform, flatteningTolerance, tessellationSink); + } + + + + + __declspec(nothrow) + HRESULT + Tessellate( + const D2D1_MATRIX_3X2_F *worldTransform, + ID2D1TessellationSink *tessellationSink + ) const + { + return Tessellate(worldTransform, (0.25f), tessellationSink); + } + + + + + __declspec(nothrow) + HRESULT + Tessellate( + const D2D1_MATRIX_3X2_F &worldTransform, + ID2D1TessellationSink *tessellationSink + ) const + { + return Tessellate(&worldTransform, (0.25f), tessellationSink); + } + + + + + + __declspec(nothrow) + HRESULT + CombineWithGeometry( + ID2D1Geometry *inputGeometry, + D2D1_COMBINE_MODE combineMode, + const D2D1_MATRIX_3X2_F &inputGeometryTransform, + FLOAT flatteningTolerance, + ID2D1SimplifiedGeometrySink *geometrySink + ) const + { + return CombineWithGeometry(inputGeometry, combineMode, &inputGeometryTransform, flatteningTolerance, geometrySink); + } + + + + + + __declspec(nothrow) + HRESULT + CombineWithGeometry( + ID2D1Geometry *inputGeometry, + D2D1_COMBINE_MODE combineMode, + const D2D1_MATRIX_3X2_F *inputGeometryTransform, + ID2D1SimplifiedGeometrySink *geometrySink + ) const + { + return CombineWithGeometry(inputGeometry, combineMode, inputGeometryTransform, (0.25f), geometrySink); + } + + + + + + __declspec(nothrow) + HRESULT + CombineWithGeometry( + ID2D1Geometry *inputGeometry, + D2D1_COMBINE_MODE combineMode, + const D2D1_MATRIX_3X2_F &inputGeometryTransform, + ID2D1SimplifiedGeometrySink *geometrySink + ) const + { + return CombineWithGeometry(inputGeometry, combineMode, &inputGeometryTransform, (0.25f), geometrySink); + } + + + + + + __declspec(nothrow) + HRESULT + Outline( + const D2D1_MATRIX_3X2_F &worldTransform, + FLOAT flatteningTolerance, + ID2D1SimplifiedGeometrySink *geometrySink + ) const + { + return Outline(&worldTransform, flatteningTolerance, geometrySink); + } + + + + + + __declspec(nothrow) + HRESULT + Outline( + const D2D1_MATRIX_3X2_F *worldTransform, + ID2D1SimplifiedGeometrySink *geometrySink + ) const + { + return Outline(worldTransform, (0.25f), geometrySink); + } + + + + + + __declspec(nothrow) + HRESULT + Outline( + const D2D1_MATRIX_3X2_F &worldTransform, + ID2D1SimplifiedGeometrySink *geometrySink + ) const + { + return Outline(&worldTransform, (0.25f), geometrySink); + } + + + + + __declspec(nothrow) + HRESULT + ComputeArea( + const D2D1_MATRIX_3X2_F &worldTransform, + FLOAT flatteningTolerance, + FLOAT *area + ) const + { + return ComputeArea(&worldTransform, flatteningTolerance, area); + } + + + + + __declspec(nothrow) + HRESULT + ComputeArea( + const D2D1_MATRIX_3X2_F *worldTransform, + FLOAT *area + ) const + { + return ComputeArea(worldTransform, (0.25f), area); + } + + + + + __declspec(nothrow) + HRESULT + ComputeArea( + const D2D1_MATRIX_3X2_F &worldTransform, + FLOAT *area + ) const + { + return ComputeArea(&worldTransform, (0.25f), area); + } + + + + + __declspec(nothrow) + HRESULT + ComputeLength( + const D2D1_MATRIX_3X2_F &worldTransform, + FLOAT flatteningTolerance, + FLOAT *length + ) const + { + return ComputeLength(&worldTransform, flatteningTolerance, length); + } + + + + + __declspec(nothrow) + HRESULT + ComputeLength( + const D2D1_MATRIX_3X2_F *worldTransform, + FLOAT *length + ) const + { + return ComputeLength(worldTransform, (0.25f), length); + } + + + + + __declspec(nothrow) + HRESULT + ComputeLength( + const D2D1_MATRIX_3X2_F &worldTransform, + FLOAT *length + ) const + { + return ComputeLength(&worldTransform, (0.25f), length); + } + + + + + __declspec(nothrow) + HRESULT + ComputePointAtLength( + FLOAT length, + const D2D1_MATRIX_3X2_F &worldTransform, + FLOAT flatteningTolerance, + D2D1_POINT_2F *point, + D2D1_POINT_2F *unitTangentVector + ) const + { + return ComputePointAtLength(length, &worldTransform, flatteningTolerance, point, unitTangentVector); + } + + + + + __declspec(nothrow) + HRESULT + ComputePointAtLength( + FLOAT length, + const D2D1_MATRIX_3X2_F *worldTransform, + D2D1_POINT_2F *point, + D2D1_POINT_2F *unitTangentVector + ) const + { + return ComputePointAtLength(length, worldTransform, (0.25f), point, unitTangentVector); + } + + + + + __declspec(nothrow) + HRESULT + ComputePointAtLength( + FLOAT length, + const D2D1_MATRIX_3X2_F &worldTransform, + D2D1_POINT_2F *point, + D2D1_POINT_2F *unitTangentVector + ) const + { + return ComputePointAtLength(length, &worldTransform, (0.25f), point, unitTangentVector); + } + + + + + __declspec(nothrow) + HRESULT + Widen( + FLOAT strokeWidth, + ID2D1StrokeStyle *strokeStyle, + const D2D1_MATRIX_3X2_F &worldTransform, + FLOAT flatteningTolerance, + ID2D1SimplifiedGeometrySink *geometrySink + ) const + { + return Widen(strokeWidth, strokeStyle, &worldTransform, flatteningTolerance, geometrySink); + } + + + + + __declspec(nothrow) + HRESULT + Widen( + FLOAT strokeWidth, + ID2D1StrokeStyle *strokeStyle, + const D2D1_MATRIX_3X2_F *worldTransform, + ID2D1SimplifiedGeometrySink *geometrySink + ) const + { + return Widen(strokeWidth, strokeStyle, worldTransform, (0.25f), geometrySink); + } + + + + + __declspec(nothrow) + HRESULT + Widen( + FLOAT strokeWidth, + ID2D1StrokeStyle *strokeStyle, + const D2D1_MATRIX_3X2_F &worldTransform, + ID2D1SimplifiedGeometrySink *geometrySink + ) const + { + return Widen(strokeWidth, strokeStyle, &worldTransform, (0.25f), geometrySink); + } +}; + + + + + +struct __declspec(uuid("2cd906a2-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1RectangleGeometry : public ID2D1Geometry +{ + + virtual __declspec(nothrow) void __stdcall GetRect( + D2D1_RECT_F *rect + ) const = 0; +}; + + + + + +struct __declspec(uuid("2cd906a3-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1RoundedRectangleGeometry : public ID2D1Geometry +{ + + virtual __declspec(nothrow) void __stdcall GetRoundedRect( + D2D1_ROUNDED_RECT *roundedRect + ) const = 0; +}; + + + + + +struct __declspec(uuid("2cd906a4-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1EllipseGeometry : public ID2D1Geometry +{ + + virtual __declspec(nothrow) void __stdcall GetEllipse( + D2D1_ELLIPSE *ellipse + ) const = 0; +}; + + + + + +struct __declspec(uuid("2cd906a6-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1GeometryGroup : public ID2D1Geometry +{ + + virtual __declspec(nothrow) D2D1_FILL_MODE __stdcall GetFillMode( + ) const = 0; + + virtual __declspec(nothrow) UINT32 __stdcall GetSourceGeometryCount( + ) const = 0; + + virtual __declspec(nothrow) void __stdcall GetSourceGeometries( + ID2D1Geometry **geometries, + UINT32 geometriesCount + ) const = 0; +}; + + + + + +struct __declspec(uuid("2cd906bb-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1TransformedGeometry : public ID2D1Geometry +{ + + virtual __declspec(nothrow) void __stdcall GetSourceGeometry( + ID2D1Geometry **sourceGeometry + ) const = 0; + + virtual __declspec(nothrow) void __stdcall GetTransform( + D2D1_MATRIX_3X2_F *transform + ) const = 0; +}; + + + + + + +struct __declspec(uuid("2cd9069e-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1SimplifiedGeometrySink : public IUnknown +{ + + virtual __declspec(nothrow) void __stdcall SetFillMode( + D2D1_FILL_MODE fillMode + ) = 0; + + virtual __declspec(nothrow) void __stdcall SetSegmentFlags( + D2D1_PATH_SEGMENT vertexFlags + ) = 0; + + virtual __declspec(nothrow) void __stdcall BeginFigure( + D2D1_POINT_2F startPoint, + D2D1_FIGURE_BEGIN figureBegin + ) = 0; + + virtual __declspec(nothrow) void __stdcall AddLines( + const D2D1_POINT_2F *points, + UINT32 pointsCount + ) = 0; + + virtual __declspec(nothrow) void __stdcall AddBeziers( + const D2D1_BEZIER_SEGMENT *beziers, + UINT32 beziersCount + ) = 0; + + virtual __declspec(nothrow) void __stdcall EndFigure( + D2D1_FIGURE_END figureEnd + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall Close( + ) = 0; +}; + + + + + + +struct __declspec(uuid("2cd9069f-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1GeometrySink : public ID2D1SimplifiedGeometrySink +{ + + virtual __declspec(nothrow) void __stdcall AddLine( + D2D1_POINT_2F point + ) = 0; + + virtual __declspec(nothrow) void __stdcall AddBezier( + const D2D1_BEZIER_SEGMENT *bezier + ) = 0; + + virtual __declspec(nothrow) void __stdcall AddQuadraticBezier( + const D2D1_QUADRATIC_BEZIER_SEGMENT *bezier + ) = 0; + + virtual __declspec(nothrow) void __stdcall AddQuadraticBeziers( + const D2D1_QUADRATIC_BEZIER_SEGMENT *beziers, + UINT32 beziersCount + ) = 0; + + virtual __declspec(nothrow) void __stdcall AddArc( + const D2D1_ARC_SEGMENT *arc + ) = 0; + + __declspec(nothrow) + void + AddBezier( + const D2D1_BEZIER_SEGMENT &bezier + ) + { + AddBezier(&bezier); + } + + __declspec(nothrow) + void + AddQuadraticBezier( + const D2D1_QUADRATIC_BEZIER_SEGMENT &bezier + ) + { + AddQuadraticBezier(&bezier); + } + + __declspec(nothrow) + void + AddArc( + const D2D1_ARC_SEGMENT &arc + ) + { + AddArc(&arc); + } +}; + + + + + +struct __declspec(uuid("2cd906c1-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1TessellationSink : public IUnknown +{ + + virtual __declspec(nothrow) void __stdcall AddTriangles( + const D2D1_TRIANGLE *triangles, + UINT32 trianglesCount + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall Close( + ) = 0; +}; + + + + + +struct __declspec(uuid("2cd906a5-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1PathGeometry : public ID2D1Geometry +{ + + + + + virtual __declspec(nothrow) HRESULT __stdcall Open( + ID2D1GeometrySink **geometrySink + ) = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall Stream( + ID2D1GeometrySink *geometrySink + ) const = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetSegmentCount( + UINT32 *count + ) const = 0; + + virtual __declspec(nothrow) HRESULT __stdcall GetFigureCount( + UINT32 *count + ) const = 0; +}; + + + + + +struct __declspec(uuid("2cd906c2-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1Mesh : public ID2D1Resource +{ + + + + + virtual __declspec(nothrow) HRESULT __stdcall Open( + ID2D1TessellationSink **tessellationSink + ) = 0; +}; + + + + + +struct __declspec(uuid("2cd9069b-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1Layer : public ID2D1Resource +{ + + virtual __declspec(nothrow) D2D1_SIZE_F __stdcall GetSize( + ) const = 0; +}; + + + + + + +struct __declspec(uuid("28506e39-ebf6-46a1-bb47-fd85565ab957")) __declspec(novtable) ID2D1DrawingStateBlock : public ID2D1Resource +{ + + + + + virtual __declspec(nothrow) void __stdcall GetDescription( + D2D1_DRAWING_STATE_DESCRIPTION *stateDescription + ) const = 0; + + + + + virtual __declspec(nothrow) void __stdcall SetDescription( + const D2D1_DRAWING_STATE_DESCRIPTION *stateDescription + ) = 0; + + + + + virtual __declspec(nothrow) void __stdcall SetTextRenderingParams( + IDWriteRenderingParams *textRenderingParams = 0 + ) = 0; + + + + + + + virtual __declspec(nothrow) void __stdcall GetTextRenderingParams( + IDWriteRenderingParams **textRenderingParams + ) const = 0; + + __declspec(nothrow) + void + SetDescription( + const D2D1_DRAWING_STATE_DESCRIPTION &stateDescription + ) + { + SetDescription(&stateDescription); + } +}; + + + + + + + +struct __declspec(uuid("2cd90694-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1RenderTarget : public ID2D1Resource +{ + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateBitmap( + D2D1_SIZE_U size, + const void *srcData, + UINT32 pitch, + const D2D1_BITMAP_PROPERTIES *bitmapProperties, + ID2D1Bitmap **bitmap + ) = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateBitmapFromWicBitmap( + IWICBitmapSource *wicBitmapSource, + const D2D1_BITMAP_PROPERTIES *bitmapProperties, + ID2D1Bitmap **bitmap + ) = 0; + + + + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateSharedBitmap( + const IID & riid, + void *data, + const D2D1_BITMAP_PROPERTIES *bitmapProperties, + ID2D1Bitmap **bitmap + ) = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateBitmapBrush( + ID2D1Bitmap *bitmap, + const D2D1_BITMAP_BRUSH_PROPERTIES *bitmapBrushProperties, + const D2D1_BRUSH_PROPERTIES *brushProperties, + ID2D1BitmapBrush **bitmapBrush + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall CreateSolidColorBrush( + const D2D1_COLOR_F *color, + const D2D1_BRUSH_PROPERTIES *brushProperties, + ID2D1SolidColorBrush **solidColorBrush + ) = 0; +# 2405 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateGradientStopCollection( + const D2D1_GRADIENT_STOP *gradientStops, + UINT32 gradientStopsCount, + D2D1_GAMMA colorInterpolationGamma, + D2D1_EXTEND_MODE extendMode, + ID2D1GradientStopCollection **gradientStopCollection + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall CreateLinearGradientBrush( + const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushProperties, + const D2D1_BRUSH_PROPERTIES *brushProperties, + ID2D1GradientStopCollection *gradientStopCollection, + ID2D1LinearGradientBrush **linearGradientBrush + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall CreateRadialGradientBrush( + const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushProperties, + const D2D1_BRUSH_PROPERTIES *brushProperties, + ID2D1GradientStopCollection *gradientStopCollection, + ID2D1RadialGradientBrush **radialGradientBrush + ) = 0; +# 2445 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateCompatibleRenderTarget( + const D2D1_SIZE_F *desiredSize, + const D2D1_SIZE_U *desiredPixelSize, + const D2D1_PIXEL_FORMAT *desiredFormat, + D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options, + ID2D1BitmapRenderTarget **bitmapRenderTarget + ) = 0; +# 2463 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateLayer( + const D2D1_SIZE_F *size, + ID2D1Layer **layer + ) = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateMesh( + ID2D1Mesh **mesh + ) = 0; + + virtual __declspec(nothrow) void __stdcall DrawLine( + D2D1_POINT_2F point0, + D2D1_POINT_2F point1, + ID2D1Brush *brush, + FLOAT strokeWidth = 1.0f, + ID2D1StrokeStyle *strokeStyle = 0 + ) = 0; + + virtual __declspec(nothrow) void __stdcall DrawRectangle( + const D2D1_RECT_F *rect, + ID2D1Brush *brush, + FLOAT strokeWidth = 1.0f, + ID2D1StrokeStyle *strokeStyle = 0 + ) = 0; + + virtual __declspec(nothrow) void __stdcall FillRectangle( + const D2D1_RECT_F *rect, + ID2D1Brush *brush + ) = 0; + + virtual __declspec(nothrow) void __stdcall DrawRoundedRectangle( + const D2D1_ROUNDED_RECT *roundedRect, + ID2D1Brush *brush, + FLOAT strokeWidth = 1.0f, + ID2D1StrokeStyle *strokeStyle = 0 + ) = 0; + + virtual __declspec(nothrow) void __stdcall FillRoundedRectangle( + const D2D1_ROUNDED_RECT *roundedRect, + ID2D1Brush *brush + ) = 0; + + virtual __declspec(nothrow) void __stdcall DrawEllipse( + const D2D1_ELLIPSE *ellipse, + ID2D1Brush *brush, + FLOAT strokeWidth = 1.0f, + ID2D1StrokeStyle *strokeStyle = 0 + ) = 0; + + virtual __declspec(nothrow) void __stdcall FillEllipse( + const D2D1_ELLIPSE *ellipse, + ID2D1Brush *brush + ) = 0; + + virtual __declspec(nothrow) void __stdcall DrawGeometry( + ID2D1Geometry *geometry, + ID2D1Brush *brush, + FLOAT strokeWidth = 1.0f, + ID2D1StrokeStyle *strokeStyle = 0 + ) = 0; + + + + + + virtual __declspec(nothrow) void __stdcall FillGeometry( + ID2D1Geometry *geometry, + ID2D1Brush *brush, + ID2D1Brush *opacityBrush = 0 + ) = 0; + + + + + + virtual __declspec(nothrow) void __stdcall FillMesh( + ID2D1Mesh *mesh, + ID2D1Brush *brush + ) = 0; + + + + + + + virtual __declspec(nothrow) void __stdcall FillOpacityMask( + ID2D1Bitmap *opacityMask, + ID2D1Brush *brush, + D2D1_OPACITY_MASK_CONTENT content, + const D2D1_RECT_F *destinationRectangle = 0, + const D2D1_RECT_F *sourceRectangle = 0 + ) = 0; + + virtual __declspec(nothrow) void __stdcall DrawBitmap( + ID2D1Bitmap *bitmap, + const D2D1_RECT_F *destinationRectangle = 0, + FLOAT opacity = 1.0f, + D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, + const D2D1_RECT_F *sourceRectangle = 0 + ) = 0; + + + + + + virtual __declspec(nothrow) void __stdcall DrawTextW( + const WCHAR *string, + UINT32 stringLength, + IDWriteTextFormat *textFormat, + const D2D1_RECT_F *layoutRect, + ID2D1Brush *defaultFillBrush, + D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE, + DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL + ) = 0; +# 2588 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" + virtual __declspec(nothrow) void __stdcall DrawTextLayout( + D2D1_POINT_2F origin, + IDWriteTextLayout *textLayout, + ID2D1Brush *defaultFillBrush, + D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE + ) = 0; + + virtual __declspec(nothrow) void __stdcall DrawGlyphRun( + D2D1_POINT_2F baselineOrigin, + const DWRITE_GLYPH_RUN *glyphRun, + ID2D1Brush *foregroundBrush, + DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL + ) = 0; + + virtual __declspec(nothrow) void __stdcall SetTransform( + const D2D1_MATRIX_3X2_F *transform + ) = 0; + + virtual __declspec(nothrow) void __stdcall GetTransform( + D2D1_MATRIX_3X2_F *transform + ) const = 0; + + virtual __declspec(nothrow) void __stdcall SetAntialiasMode( + D2D1_ANTIALIAS_MODE antialiasMode + ) = 0; + + virtual __declspec(nothrow) D2D1_ANTIALIAS_MODE __stdcall GetAntialiasMode( + ) const = 0; + + virtual __declspec(nothrow) void __stdcall SetTextAntialiasMode( + D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode + ) = 0; + + virtual __declspec(nothrow) D2D1_TEXT_ANTIALIAS_MODE __stdcall GetTextAntialiasMode( + ) const = 0; + + virtual __declspec(nothrow) void __stdcall SetTextRenderingParams( + IDWriteRenderingParams *textRenderingParams = 0 + ) = 0; + + + + + + virtual __declspec(nothrow) void __stdcall GetTextRenderingParams( + IDWriteRenderingParams **textRenderingParams + ) const = 0; + + + + + + virtual __declspec(nothrow) void __stdcall SetTags( + D2D1_TAG tag1, + D2D1_TAG tag2 + ) = 0; + + + + + + virtual __declspec(nothrow) void __stdcall GetTags( + D2D1_TAG *tag1 = 0, + D2D1_TAG *tag2 = 0 + ) const = 0; +# 2661 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" + virtual __declspec(nothrow) void __stdcall PushLayer( + const D2D1_LAYER_PARAMETERS *layerParameters, + ID2D1Layer *layer + ) = 0; + + + + + virtual __declspec(nothrow) void __stdcall PopLayer( + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall Flush( + D2D1_TAG *tag1 = 0, + D2D1_TAG *tag2 = 0 + ) = 0; + + + + + + virtual __declspec(nothrow) void __stdcall SaveDrawingState( + ID2D1DrawingStateBlock *drawingStateBlock + ) const = 0; + + + + + virtual __declspec(nothrow) void __stdcall RestoreDrawingState( + ID2D1DrawingStateBlock *drawingStateBlock + ) = 0; + + + + + + + + virtual __declspec(nothrow) void __stdcall PushAxisAlignedClip( + const D2D1_RECT_F *clipRect, + D2D1_ANTIALIAS_MODE antialiasMode + ) = 0; + + virtual __declspec(nothrow) void __stdcall PopAxisAlignedClip( + ) = 0; + + virtual __declspec(nothrow) void __stdcall Clear( + const D2D1_COLOR_F *clearColor = 0 + ) = 0; + + + + + + virtual __declspec(nothrow) void __stdcall BeginDraw( + ) = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall EndDraw( + D2D1_TAG *tag1 = 0, + D2D1_TAG *tag2 = 0 + ) = 0; + + virtual __declspec(nothrow) D2D1_PIXEL_FORMAT __stdcall GetPixelFormat( + ) const = 0; + + + + + + + + virtual __declspec(nothrow) void __stdcall SetDpi( + FLOAT dpiX, + FLOAT dpiY + ) = 0; + + + + + virtual __declspec(nothrow) void __stdcall GetDpi( + FLOAT *dpiX, + FLOAT *dpiY + ) const = 0; + + + + + virtual __declspec(nothrow) D2D1_SIZE_F __stdcall GetSize( + ) const = 0; + + + + + virtual __declspec(nothrow) D2D1_SIZE_U __stdcall GetPixelSize( + ) const = 0; + + + + + + virtual __declspec(nothrow) UINT32 __stdcall GetMaximumBitmapSize( + ) const = 0; + + + + + + + + virtual __declspec(nothrow) BOOL __stdcall IsSupported( + const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties + ) const = 0; + + __declspec(nothrow) + HRESULT + CreateBitmap( + D2D1_SIZE_U size, + const void *srcData, + UINT32 pitch, + const D2D1_BITMAP_PROPERTIES &bitmapProperties, + ID2D1Bitmap **bitmap + ) + { + return CreateBitmap(size, srcData, pitch, &bitmapProperties, bitmap); + } + + __declspec(nothrow) + HRESULT + CreateBitmap( + D2D1_SIZE_U size, + const D2D1_BITMAP_PROPERTIES &bitmapProperties, + ID2D1Bitmap **bitmap + ) + { + return CreateBitmap(size, 0, 0, &bitmapProperties, bitmap); + } + + + + + __declspec(nothrow) + HRESULT + CreateBitmapFromWicBitmap( + IWICBitmapSource *wicBitmapSource, + const D2D1_BITMAP_PROPERTIES &bitmapProperties, + ID2D1Bitmap **bitmap + ) + { + return CreateBitmapFromWicBitmap(wicBitmapSource, &bitmapProperties, bitmap); + } + + + + + __declspec(nothrow) + HRESULT + CreateBitmapFromWicBitmap( + IWICBitmapSource *wicBitmapSource, + ID2D1Bitmap **bitmap + ) + { + return CreateBitmapFromWicBitmap(wicBitmapSource, 0, bitmap); + } + + + + + + __declspec(nothrow) + HRESULT + CreateBitmapBrush( + ID2D1Bitmap *bitmap, + ID2D1BitmapBrush **bitmapBrush + ) + { + return CreateBitmapBrush(bitmap, 0, 0, bitmapBrush); + } + + + + + + __declspec(nothrow) + HRESULT + CreateBitmapBrush( + ID2D1Bitmap *bitmap, + const D2D1_BITMAP_BRUSH_PROPERTIES &bitmapBrushProperties, + ID2D1BitmapBrush **bitmapBrush + ) + { + return CreateBitmapBrush(bitmap, &bitmapBrushProperties, 0, bitmapBrush); + } + + + + + + __declspec(nothrow) + HRESULT + CreateBitmapBrush( + ID2D1Bitmap *bitmap, + const D2D1_BITMAP_BRUSH_PROPERTIES &bitmapBrushProperties, + const D2D1_BRUSH_PROPERTIES &brushProperties, + ID2D1BitmapBrush **bitmapBrush + ) + { + return CreateBitmapBrush(bitmap, &bitmapBrushProperties, &brushProperties, bitmapBrush); + } + + __declspec(nothrow) + HRESULT + CreateSolidColorBrush( + const D2D1_COLOR_F &color, + ID2D1SolidColorBrush **solidColorBrush + ) + { + return CreateSolidColorBrush(&color, 0, solidColorBrush); + } + + __declspec(nothrow) + HRESULT + CreateSolidColorBrush( + const D2D1_COLOR_F &color, + const D2D1_BRUSH_PROPERTIES &brushProperties, + ID2D1SolidColorBrush **solidColorBrush + ) + { + return CreateSolidColorBrush(&color, &brushProperties, solidColorBrush); + } + + __declspec(nothrow) + HRESULT + CreateGradientStopCollection( + const D2D1_GRADIENT_STOP *gradientStops, + UINT32 gradientStopsCount, + ID2D1GradientStopCollection **gradientStopCollection + ) + { + return CreateGradientStopCollection(gradientStops, gradientStopsCount, D2D1_GAMMA_2_2, D2D1_EXTEND_MODE_CLAMP, gradientStopCollection); + } + + __declspec(nothrow) + HRESULT + CreateLinearGradientBrush( + const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES &linearGradientBrushProperties, + ID2D1GradientStopCollection *gradientStopCollection, + ID2D1LinearGradientBrush **linearGradientBrush + ) + { + return CreateLinearGradientBrush(&linearGradientBrushProperties, 0, gradientStopCollection, linearGradientBrush); + } + + __declspec(nothrow) + HRESULT + CreateLinearGradientBrush( + const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES &linearGradientBrushProperties, + const D2D1_BRUSH_PROPERTIES &brushProperties, + ID2D1GradientStopCollection *gradientStopCollection, + ID2D1LinearGradientBrush **linearGradientBrush + ) + { + return CreateLinearGradientBrush(&linearGradientBrushProperties, &brushProperties, gradientStopCollection, linearGradientBrush); + } + + __declspec(nothrow) + HRESULT + CreateRadialGradientBrush( + const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES &radialGradientBrushProperties, + ID2D1GradientStopCollection *gradientStopCollection, + ID2D1RadialGradientBrush **radialGradientBrush + ) + { + return CreateRadialGradientBrush(&radialGradientBrushProperties, 0, gradientStopCollection, radialGradientBrush); + } + + __declspec(nothrow) + HRESULT + CreateRadialGradientBrush( + const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES &radialGradientBrushProperties, + const D2D1_BRUSH_PROPERTIES &brushProperties, + ID2D1GradientStopCollection *gradientStopCollection, + ID2D1RadialGradientBrush **radialGradientBrush + ) + { + return CreateRadialGradientBrush(&radialGradientBrushProperties, &brushProperties, gradientStopCollection, radialGradientBrush); + } + + __declspec(nothrow) + HRESULT + CreateCompatibleRenderTarget( + ID2D1BitmapRenderTarget **bitmapRenderTarget + ) + { + return CreateCompatibleRenderTarget(0, 0, 0, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget); + } + + __declspec(nothrow) + HRESULT + CreateCompatibleRenderTarget( + D2D1_SIZE_F desiredSize, + ID2D1BitmapRenderTarget **bitmapRenderTarget + ) + { + return CreateCompatibleRenderTarget(&desiredSize, 0, 0, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget); + } + + __declspec(nothrow) + HRESULT + CreateCompatibleRenderTarget( + D2D1_SIZE_F desiredSize, + D2D1_SIZE_U desiredPixelSize, + ID2D1BitmapRenderTarget **bitmapRenderTarget + ) + { + return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, 0, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget); + } + + __declspec(nothrow) + HRESULT + CreateCompatibleRenderTarget( + D2D1_SIZE_F desiredSize, + D2D1_SIZE_U desiredPixelSize, + D2D1_PIXEL_FORMAT desiredFormat, + ID2D1BitmapRenderTarget **bitmapRenderTarget + ) + { + return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, &desiredFormat, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget); + } + + __declspec(nothrow) + HRESULT + CreateCompatibleRenderTarget( + D2D1_SIZE_F desiredSize, + D2D1_SIZE_U desiredPixelSize, + D2D1_PIXEL_FORMAT desiredFormat, + D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options, + ID2D1BitmapRenderTarget **bitmapRenderTarget + ) + { + return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, &desiredFormat, options, bitmapRenderTarget); + } + + __declspec(nothrow) + HRESULT + CreateLayer( + D2D1_SIZE_F size, + ID2D1Layer **layer + ) + { + return CreateLayer(&size, layer); + } + + __declspec(nothrow) + HRESULT + CreateLayer( + ID2D1Layer **layer + ) + { + return CreateLayer(0, layer); + } + + __declspec(nothrow) + void + DrawRectangle( + const D2D1_RECT_F &rect, + ID2D1Brush *brush, + FLOAT strokeWidth = 1.0f, + ID2D1StrokeStyle *strokeStyle = 0 + ) + { + DrawRectangle(&rect, brush, strokeWidth, strokeStyle); + } + + __declspec(nothrow) + void + FillRectangle( + const D2D1_RECT_F &rect, + ID2D1Brush *brush + ) + { + FillRectangle(&rect, brush); + } + + __declspec(nothrow) + void + DrawRoundedRectangle( + const D2D1_ROUNDED_RECT &roundedRect, + ID2D1Brush *brush, + FLOAT strokeWidth = 1.0f, + ID2D1StrokeStyle *strokeStyle = 0 + ) + { + DrawRoundedRectangle(&roundedRect, brush, strokeWidth, strokeStyle); + } + + __declspec(nothrow) + void + FillRoundedRectangle( + const D2D1_ROUNDED_RECT &roundedRect, + ID2D1Brush *brush + ) + { + FillRoundedRectangle(&roundedRect, brush); + } + + __declspec(nothrow) + void + DrawEllipse( + const D2D1_ELLIPSE &ellipse, + ID2D1Brush *brush, + FLOAT strokeWidth = 1.0f, + ID2D1StrokeStyle *strokeStyle = 0 + ) + { + DrawEllipse(&ellipse, brush, strokeWidth, strokeStyle); + } + + __declspec(nothrow) + void + FillEllipse( + const D2D1_ELLIPSE &ellipse, + ID2D1Brush *brush + ) + { + FillEllipse(&ellipse, brush); + } + + __declspec(nothrow) + void + FillOpacityMask( + ID2D1Bitmap *opacityMask, + ID2D1Brush *brush, + D2D1_OPACITY_MASK_CONTENT content, + const D2D1_RECT_F &destinationRectangle, + const D2D1_RECT_F &sourceRectangle + ) + { + FillOpacityMask(opacityMask, brush, content, &destinationRectangle, &sourceRectangle); + } + + __declspec(nothrow) + void + DrawBitmap( + ID2D1Bitmap *bitmap, + const D2D1_RECT_F &destinationRectangle, + FLOAT opacity = 1.0f, + D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, + const D2D1_RECT_F *sourceRectangle = 0 + ) + { + DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, sourceRectangle); + } + + __declspec(nothrow) + void + DrawBitmap( + ID2D1Bitmap *bitmap, + const D2D1_RECT_F &destinationRectangle, + FLOAT opacity, + D2D1_BITMAP_INTERPOLATION_MODE interpolationMode, + const D2D1_RECT_F &sourceRectangle + ) + { + DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, &sourceRectangle); + } + + __declspec(nothrow) + void + SetTransform( + const D2D1_MATRIX_3X2_F &transform + ) + { + SetTransform(&transform); + } + + __declspec(nothrow) + void + PushLayer( + const D2D1_LAYER_PARAMETERS &layerParameters, + ID2D1Layer *layer + ) + { + PushLayer(&layerParameters, layer); + } + + __declspec(nothrow) + void + PushAxisAlignedClip( + const D2D1_RECT_F &clipRect, + D2D1_ANTIALIAS_MODE antialiasMode + ) + { + return PushAxisAlignedClip(&clipRect, antialiasMode); + } + + __declspec(nothrow) + void + Clear( + const D2D1_COLOR_F &clearColor + ) + { + return Clear(&clearColor); + } + + + + + + __declspec(nothrow) + void + DrawTextW( + const WCHAR *string, + UINT32 stringLength, + IDWriteTextFormat *textFormat, + const D2D1_RECT_F &layoutRect, + ID2D1Brush *defaultFillBrush, + D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE, + DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL + ) + { + return DrawTextW(string, stringLength, textFormat, &layoutRect, defaultFillBrush, options, measuringMode); + } + + __declspec(nothrow) + BOOL + IsSupported( + const D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties + ) const + { + return IsSupported(&renderTargetProperties); + } +}; + + + + + + +struct __declspec(uuid("2cd90695-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1BitmapRenderTarget : public ID2D1RenderTarget +{ + + virtual __declspec(nothrow) HRESULT __stdcall GetBitmap( + ID2D1Bitmap **bitmap + ) = 0; +}; + + + + + +struct __declspec(uuid("2cd90698-12e2-11dc-9fed-001143a055f9")) __declspec(novtable) ID2D1HwndRenderTarget : public ID2D1RenderTarget +{ + + virtual __declspec(nothrow) D2D1_WINDOW_STATE __stdcall CheckWindowState( + ) = 0; +# 3228 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" + virtual __declspec(nothrow) HRESULT __stdcall Resize( + const D2D1_SIZE_U *pixelSize + ) = 0; + + virtual __declspec(nothrow) HWND __stdcall GetHwnd( + ) const = 0; + + __declspec(nothrow) + HRESULT + Resize( + const D2D1_SIZE_U &pixelSize + ) + { + return Resize(&pixelSize); + } +}; +# 3256 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" +struct __declspec(uuid("e0db51c3-6f77-4bae-b3d5-e47509b35838")) __declspec(novtable) ID2D1GdiInteropRenderTarget : public IUnknown +{ + + virtual __declspec(nothrow) HRESULT __stdcall GetDC( + D2D1_DC_INITIALIZE_MODE mode, + HDC *hdc + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall ReleaseDC( + const RECT *update + ) = 0; +}; +# 3280 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" +struct __declspec(uuid("1c51bc64-de61-46fd-9899-63a5d8f03950")) __declspec(novtable) ID2D1DCRenderTarget : public ID2D1RenderTarget +{ + + virtual __declspec(nothrow) HRESULT __stdcall BindDC( + const HDC hDC, + const RECT *pSubRect + ) = 0; +}; + + + + + +struct __declspec(uuid("06152247-6f50-465a-9245-118bfd3b6007")) __declspec(novtable) ID2D1Factory : public IUnknown +{ + + + + + + virtual __declspec(nothrow) HRESULT __stdcall ReloadSystemMetrics( + ) = 0; + + + + + virtual __declspec(nothrow) void __stdcall GetDesktopDpi( + FLOAT *dpiX, + FLOAT *dpiY + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall CreateRectangleGeometry( + const D2D1_RECT_F *rectangle, + ID2D1RectangleGeometry **rectangleGeometry + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall CreateRoundedRectangleGeometry( + const D2D1_ROUNDED_RECT *roundedRectangle, + ID2D1RoundedRectangleGeometry **roundedRectangleGeometry + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall CreateEllipseGeometry( + const D2D1_ELLIPSE *ellipse, + ID2D1EllipseGeometry **ellipseGeometry + ) = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateGeometryGroup( + D2D1_FILL_MODE fillMode, + ID2D1Geometry **geometries, + UINT32 geometriesCount, + ID2D1GeometryGroup **geometryGroup + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall CreateTransformedGeometry( + ID2D1Geometry *sourceGeometry, + const D2D1_MATRIX_3X2_F *transform, + ID2D1TransformedGeometry **transformedGeometry + ) = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreatePathGeometry( + ID2D1PathGeometry **pathGeometry + ) = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateStrokeStyle( + const D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties, + const FLOAT *dashes, + UINT32 dashesCount, + ID2D1StrokeStyle **strokeStyle + ) = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateDrawingStateBlock( + const D2D1_DRAWING_STATE_DESCRIPTION *drawingStateDescription, + IDWriteRenderingParams *textRenderingParams, + ID2D1DrawingStateBlock **drawingStateBlock + ) = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateWicBitmapRenderTarget( + IWICBitmap *target, + const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, + ID2D1RenderTarget **renderTarget + ) = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateHwndRenderTarget( + const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, + const D2D1_HWND_RENDER_TARGET_PROPERTIES *hwndRenderTargetProperties, + ID2D1HwndRenderTarget **hwndRenderTarget + ) = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateDxgiSurfaceRenderTarget( + IDXGISurface *dxgiSurface, + const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, + ID2D1RenderTarget **renderTarget + ) = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateDCRenderTarget( + const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, + ID2D1DCRenderTarget **dcRenderTarget + ) = 0; + + __declspec(nothrow) + HRESULT + CreateRectangleGeometry( + const D2D1_RECT_F &rectangle, + ID2D1RectangleGeometry **rectangleGeometry + ) + { + return CreateRectangleGeometry(&rectangle, rectangleGeometry); + } + + __declspec(nothrow) + HRESULT + CreateRoundedRectangleGeometry( + const D2D1_ROUNDED_RECT &roundedRectangle, + ID2D1RoundedRectangleGeometry **roundedRectangleGeometry + ) + { + return CreateRoundedRectangleGeometry(&roundedRectangle, roundedRectangleGeometry); + } + + __declspec(nothrow) + HRESULT + CreateEllipseGeometry( + const D2D1_ELLIPSE &ellipse, + ID2D1EllipseGeometry **ellipseGeometry + ) + { + return CreateEllipseGeometry(&ellipse, ellipseGeometry); + } + + __declspec(nothrow) + HRESULT + CreateTransformedGeometry( + ID2D1Geometry *sourceGeometry, + const D2D1_MATRIX_3X2_F &transform, + ID2D1TransformedGeometry **transformedGeometry + ) + { + return CreateTransformedGeometry(sourceGeometry, &transform, transformedGeometry); + } + + __declspec(nothrow) + HRESULT + CreateStrokeStyle( + const D2D1_STROKE_STYLE_PROPERTIES &strokeStyleProperties, + const FLOAT *dashes, + UINT32 dashesCount, + ID2D1StrokeStyle **strokeStyle + ) + { + return CreateStrokeStyle(&strokeStyleProperties, dashes, dashesCount, strokeStyle); + } + + __declspec(nothrow) + HRESULT + CreateDrawingStateBlock( + const D2D1_DRAWING_STATE_DESCRIPTION &drawingStateDescription, + ID2D1DrawingStateBlock **drawingStateBlock + ) + { + return CreateDrawingStateBlock(&drawingStateDescription, 0, drawingStateBlock); + } + + __declspec(nothrow) + HRESULT + CreateDrawingStateBlock( + ID2D1DrawingStateBlock **drawingStateBlock + ) + { + return CreateDrawingStateBlock(0, 0, drawingStateBlock); + } + + __declspec(nothrow) + HRESULT + CreateWicBitmapRenderTarget( + IWICBitmap *target, + const D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties, + ID2D1RenderTarget **renderTarget + ) + { + return CreateWicBitmapRenderTarget(target, &renderTargetProperties, renderTarget); + } + + __declspec(nothrow) + HRESULT + CreateHwndRenderTarget( + const D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties, + const D2D1_HWND_RENDER_TARGET_PROPERTIES &hwndRenderTargetProperties, + ID2D1HwndRenderTarget **hwndRenderTarget + ) + { + return CreateHwndRenderTarget(&renderTargetProperties, &hwndRenderTargetProperties, hwndRenderTarget); + } + + __declspec(nothrow) + HRESULT + CreateDxgiSurfaceRenderTarget( + IDXGISurface *dxgiSurface, + const D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties, + ID2D1RenderTarget **renderTarget + ) + { + return CreateDxgiSurfaceRenderTarget(dxgiSurface, &renderTargetProperties, renderTarget); + } +}; +# 3526 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" +extern "C" const IID IID_ID2D1Resource; +extern "C" const IID IID_ID2D1Image; +extern "C" const IID IID_ID2D1Bitmap; +extern "C" const IID IID_ID2D1GradientStopCollection; +extern "C" const IID IID_ID2D1Brush; +extern "C" const IID IID_ID2D1BitmapBrush; +extern "C" const IID IID_ID2D1SolidColorBrush; +extern "C" const IID IID_ID2D1LinearGradientBrush; +extern "C" const IID IID_ID2D1RadialGradientBrush; +extern "C" const IID IID_ID2D1StrokeStyle; +extern "C" const IID IID_ID2D1Geometry; +extern "C" const IID IID_ID2D1RectangleGeometry; +extern "C" const IID IID_ID2D1RoundedRectangleGeometry; +extern "C" const IID IID_ID2D1EllipseGeometry; +extern "C" const IID IID_ID2D1GeometryGroup; +extern "C" const IID IID_ID2D1TransformedGeometry; +extern "C" const IID IID_ID2D1SimplifiedGeometrySink; +extern "C" const IID IID_ID2D1GeometrySink; +extern "C" const IID IID_ID2D1TessellationSink; +extern "C" const IID IID_ID2D1PathGeometry; +extern "C" const IID IID_ID2D1Mesh; +extern "C" const IID IID_ID2D1Layer; +extern "C" const IID IID_ID2D1DrawingStateBlock; +extern "C" const IID IID_ID2D1RenderTarget; +extern "C" const IID IID_ID2D1BitmapRenderTarget; +extern "C" const IID IID_ID2D1HwndRenderTarget; +extern "C" const IID IID_ID2D1DCRenderTarget; +extern "C" const IID IID_ID2D1Factory; +# 3563 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" +extern "C" const IID IID_ID2D1GdiInteropRenderTarget; +# 3657 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" +extern "C" +{ + + + + + + + HRESULT __stdcall + D2D1CreateFactory( + D2D1_FACTORY_TYPE factoryType, + const IID & riid, + const D2D1_FACTORY_OPTIONS *pFactoryOptions, + void **ppIFactory + ); + + + void __stdcall + D2D1MakeRotateMatrix( + FLOAT angle, + D2D1_POINT_2F center, + D2D1_MATRIX_3X2_F *matrix + ); + + void __stdcall + D2D1MakeSkewMatrix( + FLOAT angleX, + FLOAT angleY, + D2D1_POINT_2F center, + D2D1_MATRIX_3X2_F *matrix + ); + + BOOL __stdcall + D2D1IsMatrixInvertible( + const D2D1_MATRIX_3X2_F *matrix + ); + + BOOL __stdcall + D2D1InvertMatrix( + D2D1_MATRIX_3X2_F *matrix + ); + + +} + + + + + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1helper.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1helper.h" +namespace D2D1 +{ + + + + + __declspec(nothrow) + __forceinline + D2D1_MATRIX_3X2_F + IdentityMatrix(); + + + + + template + struct TypeTraits + { + typedef D2D1_POINT_2F Point; + typedef D2D1_SIZE_F Size; + typedef D2D1_RECT_F Rect; + }; + + template<> + struct TypeTraits + { + typedef D2D1_POINT_2U Point; + typedef D2D1_SIZE_U Size; + typedef D2D1_RECT_U Rect; + }; + + static + __declspec(nothrow) + inline + FLOAT FloatMax() + { + + return 3.402823466e+38F; + + + + } + + + + + template + __declspec(nothrow) + __forceinline + typename TypeTraits::Point + Point2( + Type x, + Type y + ) + { + typename TypeTraits::Point point = { x, y }; + + return point; + } + + __declspec(nothrow) + __forceinline + D2D1_POINT_2F + Point2F( + FLOAT x = 0.f, + FLOAT y = 0.f + ) + { + return Point2(x, y); + } + + __declspec(nothrow) + __forceinline + D2D1_POINT_2U + Point2U( + UINT32 x = 0, + UINT32 y = 0 + ) + { + return Point2(x, y); + } + + template + __declspec(nothrow) + __forceinline + typename TypeTraits::Size + Size( + Type width, + Type height + ) + { + typename TypeTraits::Size size = { width, height }; + + return size; + } + + __declspec(nothrow) + __forceinline + D2D1_SIZE_F + SizeF( + FLOAT width = 0.f, + FLOAT height = 0.f + ) + { + return Size(width, height); + } + + __declspec(nothrow) + __forceinline + D2D1_SIZE_U + SizeU( + UINT32 width = 0, + UINT32 height = 0 + ) + { + return Size(width, height); + } + + template + __declspec(nothrow) + __forceinline + typename TypeTraits::Rect + Rect( + Type left, + Type top, + Type right, + Type bottom + ) + { + typename TypeTraits::Rect rect = { left, top, right, bottom }; + + return rect; + } + + __declspec(nothrow) + __forceinline + D2D1_RECT_F + RectF( + FLOAT left = 0.f, + FLOAT top = 0.f, + FLOAT right = 0.f, + FLOAT bottom = 0.f + ) + { + return Rect(left, top, right, bottom); + } + + __declspec(nothrow) + __forceinline + D2D1_RECT_U + RectU( + UINT32 left = 0, + UINT32 top = 0, + UINT32 right = 0, + UINT32 bottom = 0 + ) + { + return Rect(left, top, right, bottom); + } + + __declspec(nothrow) + __forceinline + D2D1_RECT_F + InfiniteRect() + { + D2D1_RECT_F rect = { -FloatMax(), -FloatMax(), FloatMax(), FloatMax() }; + + return rect; + } + + __declspec(nothrow) + __forceinline + D2D1_ARC_SEGMENT + ArcSegment( + const D2D1_POINT_2F &point, + const D2D1_SIZE_F &size, + FLOAT rotationAngle, + D2D1_SWEEP_DIRECTION sweepDirection, + D2D1_ARC_SIZE arcSize + ) + { + D2D1_ARC_SEGMENT arcSegment = { point, size, rotationAngle, sweepDirection, arcSize }; + + return arcSegment; + } + + __declspec(nothrow) + __forceinline + D2D1_BEZIER_SEGMENT + BezierSegment( + const D2D1_POINT_2F &point1, + const D2D1_POINT_2F &point2, + const D2D1_POINT_2F &point3 + ) + { + D2D1_BEZIER_SEGMENT bezierSegment = { point1, point2, point3 }; + + return bezierSegment; + } + + __declspec(nothrow) + __forceinline + D2D1_ELLIPSE + Ellipse( + const D2D1_POINT_2F ¢er, + FLOAT radiusX, + FLOAT radiusY + ) + { + D2D1_ELLIPSE ellipse; + + ellipse.point = center; + ellipse.radiusX = radiusX; + ellipse.radiusY = radiusY; + + return ellipse; + } + + __declspec(nothrow) + __forceinline + D2D1_ROUNDED_RECT + RoundedRect( + const D2D1_RECT_F &rect, + FLOAT radiusX, + FLOAT radiusY + ) + { + D2D1_ROUNDED_RECT roundedRect; + + roundedRect.rect = rect; + roundedRect.radiusX = radiusX; + roundedRect.radiusY = radiusY; + + return roundedRect; + } + + __declspec(nothrow) + __forceinline + D2D1_BRUSH_PROPERTIES + BrushProperties( + FLOAT opacity = 1.0, + const D2D1_MATRIX_3X2_F &transform = D2D1::IdentityMatrix() + ) + { + D2D1_BRUSH_PROPERTIES brushProperties; + + brushProperties.opacity = opacity; + brushProperties.transform = transform; + + return brushProperties; + } + + __declspec(nothrow) + __forceinline + D2D1_GRADIENT_STOP + GradientStop( + FLOAT position, + const D2D1_COLOR_F &color + ) + { + D2D1_GRADIENT_STOP gradientStop = { position, color }; + + return gradientStop; + } + + __declspec(nothrow) + __forceinline + D2D1_QUADRATIC_BEZIER_SEGMENT + QuadraticBezierSegment( + const D2D1_POINT_2F &point1, + const D2D1_POINT_2F &point2 + ) + { + D2D1_QUADRATIC_BEZIER_SEGMENT quadraticBezier = { point1, point2 }; + + return quadraticBezier; + } + + __declspec(nothrow) + __forceinline + D2D1_STROKE_STYLE_PROPERTIES + StrokeStyleProperties( + D2D1_CAP_STYLE startCap = D2D1_CAP_STYLE_FLAT, + D2D1_CAP_STYLE endCap = D2D1_CAP_STYLE_FLAT, + D2D1_CAP_STYLE dashCap = D2D1_CAP_STYLE_FLAT, + D2D1_LINE_JOIN lineJoin = D2D1_LINE_JOIN_MITER, + FLOAT miterLimit = 10.0f, + D2D1_DASH_STYLE dashStyle = D2D1_DASH_STYLE_SOLID, + FLOAT dashOffset = 0.0f + ) + { + D2D1_STROKE_STYLE_PROPERTIES strokeStyleProperties; + + strokeStyleProperties.startCap = startCap; + strokeStyleProperties.endCap = endCap; + strokeStyleProperties.dashCap = dashCap; + strokeStyleProperties.lineJoin = lineJoin; + strokeStyleProperties.miterLimit = miterLimit; + strokeStyleProperties.dashStyle = dashStyle; + strokeStyleProperties.dashOffset = dashOffset; + + return strokeStyleProperties; + } + + __declspec(nothrow) + __forceinline + D2D1_BITMAP_BRUSH_PROPERTIES + BitmapBrushProperties( + D2D1_EXTEND_MODE extendModeX = D2D1_EXTEND_MODE_CLAMP, + D2D1_EXTEND_MODE extendModeY = D2D1_EXTEND_MODE_CLAMP, + D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLATION_MODE_LINEAR + ) + { + D2D1_BITMAP_BRUSH_PROPERTIES bitmapBrushProperties; + + bitmapBrushProperties.extendModeX = extendModeX; + bitmapBrushProperties.extendModeY = extendModeY; + bitmapBrushProperties.interpolationMode = interpolationMode; + + return bitmapBrushProperties; + } + + __declspec(nothrow) + __forceinline + D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES + LinearGradientBrushProperties( + const D2D1_POINT_2F &startPoint, + const D2D1_POINT_2F &endPoint + ) + { + D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES linearGradientBrushProperties; + + linearGradientBrushProperties.startPoint = startPoint; + linearGradientBrushProperties.endPoint = endPoint; + + return linearGradientBrushProperties; + } + + __declspec(nothrow) + __forceinline + D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES + RadialGradientBrushProperties( + const D2D1_POINT_2F ¢er, + const D2D1_POINT_2F &gradientOriginOffset, + FLOAT radiusX, + FLOAT radiusY + ) + { + D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES radialGradientBrushProperties; + + radialGradientBrushProperties.center = center; + radialGradientBrushProperties.gradientOriginOffset = gradientOriginOffset; + radialGradientBrushProperties.radiusX = radiusX; + radialGradientBrushProperties.radiusY = radiusY; + + return radialGradientBrushProperties; + } + + + + + __declspec(nothrow) + __forceinline + D2D1_PIXEL_FORMAT + PixelFormat( + DXGI_FORMAT dxgiFormat = DXGI_FORMAT_UNKNOWN, + D2D1_ALPHA_MODE alphaMode = D2D1_ALPHA_MODE_UNKNOWN + ) + { + D2D1_PIXEL_FORMAT pixelFormat; + + pixelFormat.format = dxgiFormat; + pixelFormat.alphaMode = alphaMode; + + return pixelFormat; + } + + + + + __declspec(nothrow) + __forceinline + D2D1_BITMAP_PROPERTIES + BitmapProperties( + const D2D1_PIXEL_FORMAT &pixelFormat = D2D1::PixelFormat(), + FLOAT dpiX = 96.0f, + FLOAT dpiY = 96.0f + ) + { + D2D1_BITMAP_PROPERTIES bitmapProperties; + + bitmapProperties.pixelFormat = pixelFormat; + bitmapProperties.dpiX = dpiX; + bitmapProperties.dpiY = dpiY; + + return bitmapProperties; + } + + + + + __declspec(nothrow) + __forceinline + D2D1_RENDER_TARGET_PROPERTIES + RenderTargetProperties( + D2D1_RENDER_TARGET_TYPE type = D2D1_RENDER_TARGET_TYPE_DEFAULT, + const D2D1_PIXEL_FORMAT &pixelFormat = D2D1::PixelFormat(), + FLOAT dpiX = 0.0, + FLOAT dpiY = 0.0, + D2D1_RENDER_TARGET_USAGE usage = D2D1_RENDER_TARGET_USAGE_NONE, + D2D1_FEATURE_LEVEL minLevel = D2D1_FEATURE_LEVEL_DEFAULT + ) + { + D2D1_RENDER_TARGET_PROPERTIES renderTargetProperties; + + renderTargetProperties.type = type; + renderTargetProperties.pixelFormat = pixelFormat; + renderTargetProperties.dpiX = dpiX; + renderTargetProperties.dpiY = dpiY; + renderTargetProperties.usage = usage; + renderTargetProperties.minLevel = minLevel; + + return renderTargetProperties; + } + + __declspec(nothrow) + __forceinline + D2D1_HWND_RENDER_TARGET_PROPERTIES + HwndRenderTargetProperties( + HWND hwnd, + D2D1_SIZE_U pixelSize = D2D1::Size(static_cast(0), static_cast(0)), + D2D1_PRESENT_OPTIONS presentOptions = D2D1_PRESENT_OPTIONS_NONE + ) + { + D2D1_HWND_RENDER_TARGET_PROPERTIES hwndRenderTargetProperties; + + hwndRenderTargetProperties.hwnd = hwnd; + hwndRenderTargetProperties.pixelSize = pixelSize; + hwndRenderTargetProperties.presentOptions = presentOptions; + + return hwndRenderTargetProperties; + } + + __declspec(nothrow) + __forceinline + D2D1_LAYER_PARAMETERS + LayerParameters( + const D2D1_RECT_F &contentBounds = D2D1::InfiniteRect(), + ID2D1Geometry *geometricMask = 0, + D2D1_ANTIALIAS_MODE maskAntialiasMode = D2D1_ANTIALIAS_MODE_PER_PRIMITIVE, + D2D1_MATRIX_3X2_F maskTransform = D2D1::IdentityMatrix(), + FLOAT opacity = 1.0, + ID2D1Brush *opacityBrush = 0, + D2D1_LAYER_OPTIONS layerOptions = D2D1_LAYER_OPTIONS_NONE + ) + { + D2D1_LAYER_PARAMETERS layerParameters = { 0 }; + + layerParameters.contentBounds = contentBounds; + layerParameters.geometricMask = geometricMask; + layerParameters.maskAntialiasMode = maskAntialiasMode; + layerParameters.maskTransform = maskTransform; + layerParameters.opacity = opacity; + layerParameters.opacityBrush = opacityBrush; + layerParameters.layerOptions = layerOptions; + + return layerParameters; + } + + __declspec(nothrow) + __forceinline + D2D1_DRAWING_STATE_DESCRIPTION + DrawingStateDescription( + D2D1_ANTIALIAS_MODE antialiasMode = D2D1_ANTIALIAS_MODE_PER_PRIMITIVE, + D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode = D2D1_TEXT_ANTIALIAS_MODE_DEFAULT, + D2D1_TAG tag1 = 0, + D2D1_TAG tag2 = 0, + const D2D1_MATRIX_3X2_F &transform = D2D1::IdentityMatrix() + ) + { + D2D1_DRAWING_STATE_DESCRIPTION drawingStateDescription; + + drawingStateDescription.antialiasMode = antialiasMode; + drawingStateDescription.textAntialiasMode = textAntialiasMode; + drawingStateDescription.tag1 = tag1; + drawingStateDescription.tag2 = tag2; + drawingStateDescription.transform = transform; + + return drawingStateDescription; + } + + + + + class ColorF : public D2D1_COLOR_F + { + public: + + enum Enum + { + AliceBlue = 0xF0F8FF, + AntiqueWhite = 0xFAEBD7, + Aqua = 0x00FFFF, + Aquamarine = 0x7FFFD4, + Azure = 0xF0FFFF, + Beige = 0xF5F5DC, + Bisque = 0xFFE4C4, + Black = 0x000000, + BlanchedAlmond = 0xFFEBCD, + Blue = 0x0000FF, + BlueViolet = 0x8A2BE2, + Brown = 0xA52A2A, + BurlyWood = 0xDEB887, + CadetBlue = 0x5F9EA0, + Chartreuse = 0x7FFF00, + Chocolate = 0xD2691E, + Coral = 0xFF7F50, + CornflowerBlue = 0x6495ED, + Cornsilk = 0xFFF8DC, + Crimson = 0xDC143C, + Cyan = 0x00FFFF, + DarkBlue = 0x00008B, + DarkCyan = 0x008B8B, + DarkGoldenrod = 0xB8860B, + DarkGray = 0xA9A9A9, + DarkGreen = 0x006400, + DarkKhaki = 0xBDB76B, + DarkMagenta = 0x8B008B, + DarkOliveGreen = 0x556B2F, + DarkOrange = 0xFF8C00, + DarkOrchid = 0x9932CC, + DarkRed = 0x8B0000, + DarkSalmon = 0xE9967A, + DarkSeaGreen = 0x8FBC8F, + DarkSlateBlue = 0x483D8B, + DarkSlateGray = 0x2F4F4F, + DarkTurquoise = 0x00CED1, + DarkViolet = 0x9400D3, + DeepPink = 0xFF1493, + DeepSkyBlue = 0x00BFFF, + DimGray = 0x696969, + DodgerBlue = 0x1E90FF, + Firebrick = 0xB22222, + FloralWhite = 0xFFFAF0, + ForestGreen = 0x228B22, + Fuchsia = 0xFF00FF, + Gainsboro = 0xDCDCDC, + GhostWhite = 0xF8F8FF, + Gold = 0xFFD700, + Goldenrod = 0xDAA520, + Gray = 0x808080, + Green = 0x008000, + GreenYellow = 0xADFF2F, + Honeydew = 0xF0FFF0, + HotPink = 0xFF69B4, + IndianRed = 0xCD5C5C, + Indigo = 0x4B0082, + Ivory = 0xFFFFF0, + Khaki = 0xF0E68C, + Lavender = 0xE6E6FA, + LavenderBlush = 0xFFF0F5, + LawnGreen = 0x7CFC00, + LemonChiffon = 0xFFFACD, + LightBlue = 0xADD8E6, + LightCoral = 0xF08080, + LightCyan = 0xE0FFFF, + LightGoldenrodYellow = 0xFAFAD2, + LightGreen = 0x90EE90, + LightGray = 0xD3D3D3, + LightPink = 0xFFB6C1, + LightSalmon = 0xFFA07A, + LightSeaGreen = 0x20B2AA, + LightSkyBlue = 0x87CEFA, + LightSlateGray = 0x778899, + LightSteelBlue = 0xB0C4DE, + LightYellow = 0xFFFFE0, + Lime = 0x00FF00, + LimeGreen = 0x32CD32, + Linen = 0xFAF0E6, + Magenta = 0xFF00FF, + Maroon = 0x800000, + MediumAquamarine = 0x66CDAA, + MediumBlue = 0x0000CD, + MediumOrchid = 0xBA55D3, + MediumPurple = 0x9370DB, + MediumSeaGreen = 0x3CB371, + MediumSlateBlue = 0x7B68EE, + MediumSpringGreen = 0x00FA9A, + MediumTurquoise = 0x48D1CC, + MediumVioletRed = 0xC71585, + MidnightBlue = 0x191970, + MintCream = 0xF5FFFA, + MistyRose = 0xFFE4E1, + Moccasin = 0xFFE4B5, + NavajoWhite = 0xFFDEAD, + Navy = 0x000080, + OldLace = 0xFDF5E6, + Olive = 0x808000, + OliveDrab = 0x6B8E23, + Orange = 0xFFA500, + OrangeRed = 0xFF4500, + Orchid = 0xDA70D6, + PaleGoldenrod = 0xEEE8AA, + PaleGreen = 0x98FB98, + PaleTurquoise = 0xAFEEEE, + PaleVioletRed = 0xDB7093, + PapayaWhip = 0xFFEFD5, + PeachPuff = 0xFFDAB9, + Peru = 0xCD853F, + Pink = 0xFFC0CB, + Plum = 0xDDA0DD, + PowderBlue = 0xB0E0E6, + Purple = 0x800080, + Red = 0xFF0000, + RosyBrown = 0xBC8F8F, + RoyalBlue = 0x4169E1, + SaddleBrown = 0x8B4513, + Salmon = 0xFA8072, + SandyBrown = 0xF4A460, + SeaGreen = 0x2E8B57, + SeaShell = 0xFFF5EE, + Sienna = 0xA0522D, + Silver = 0xC0C0C0, + SkyBlue = 0x87CEEB, + SlateBlue = 0x6A5ACD, + SlateGray = 0x708090, + Snow = 0xFFFAFA, + SpringGreen = 0x00FF7F, + SteelBlue = 0x4682B4, + Tan = 0xD2B48C, + Teal = 0x008080, + Thistle = 0xD8BFD8, + Tomato = 0xFF6347, + Turquoise = 0x40E0D0, + Violet = 0xEE82EE, + Wheat = 0xF5DEB3, + White = 0xFFFFFF, + WhiteSmoke = 0xF5F5F5, + Yellow = 0xFFFF00, + YellowGreen = 0x9ACD32, + }; + + + + + + __declspec(nothrow) + __forceinline + ColorF( + UINT32 rgb, + FLOAT a = 1.0 + ) + { + Init(rgb, a); + } + + __declspec(nothrow) + __forceinline + ColorF( + Enum knownColor, + FLOAT a = 1.0 + ) + { + Init(knownColor, a); + } + + __declspec(nothrow) + __forceinline + ColorF( + FLOAT red, + FLOAT green, + FLOAT blue, + FLOAT alpha = 1.0 + ) + { + r = red; + g = green; + b = blue; + a = alpha; + } + + private: + + __declspec(nothrow) + __forceinline + void + Init( + UINT32 rgb, + FLOAT alpha + ) + { + r = static_cast((rgb & sc_redMask) >> sc_redShift) / 255.f; + g = static_cast((rgb & sc_greenMask) >> sc_greenShift) / 255.f; + b = static_cast((rgb & sc_blueMask) >> sc_blueShift) / 255.f; + a = alpha; + } + + static const UINT32 sc_redShift = 16; + static const UINT32 sc_greenShift = 8; + static const UINT32 sc_blueShift = 0; + + static const UINT32 sc_redMask = 0xff << sc_redShift; + static const UINT32 sc_greenMask = 0xff << sc_greenShift; + static const UINT32 sc_blueMask = 0xff << sc_blueShift; + }; + + class Matrix3x2F : public D2D1_MATRIX_3X2_F + { + public: + + __declspec(nothrow) + __forceinline + Matrix3x2F( + FLOAT m11, + FLOAT m12, + FLOAT m21, + FLOAT m22, + FLOAT m31, + FLOAT m32 + ) + { + _11 = m11; + _12 = m12; + _21 = m21; + _22 = m22; + _31 = m31; + _32 = m32; + } + + + + + __declspec(nothrow) + __forceinline + Matrix3x2F( + ) + { + } + + + + + static + __declspec(nothrow) + __forceinline + Matrix3x2F + Identity() + { + Matrix3x2F identity; + + identity._11 = 1.f; + identity._12 = 0.f; + identity._21 = 0.f; + identity._22 = 1.f; + identity._31 = 0.f; + identity._32 = 0.f; + + return identity; + } + + static + __declspec(nothrow) + __forceinline + Matrix3x2F + Translation( + D2D1_SIZE_F size + ) + { + Matrix3x2F translation; + + translation._11 = 1.0; translation._12 = 0.0; + translation._21 = 0.0; translation._22 = 1.0; + translation._31 = size.width; translation._32 = size.height; + + return translation; + } + + static + __declspec(nothrow) + __forceinline + Matrix3x2F + Translation( + FLOAT x, + FLOAT y + ) + { + return Translation(SizeF(x, y)); + } + + + static + __declspec(nothrow) + __forceinline + Matrix3x2F + Scale( + D2D1_SIZE_F size, + D2D1_POINT_2F center = D2D1::Point2F() + ) + { + Matrix3x2F scale; + + scale._11 = size.width; scale._12 = 0.0; + scale._21 = 0.0; scale._22 = size.height; + scale._31 = center.x - size.width * center.x; + scale._32 = center.y - size.height * center.y; + + return scale; + } + + static + __declspec(nothrow) + __forceinline + Matrix3x2F + Scale( + FLOAT x, + FLOAT y, + D2D1_POINT_2F center = D2D1::Point2F() + ) + { + return Scale(SizeF(x, y), center); + } + + static + __declspec(nothrow) + __forceinline + Matrix3x2F + Rotation( + FLOAT angle, + D2D1_POINT_2F center = D2D1::Point2F() + ) + { + Matrix3x2F rotation; + + D2D1MakeRotateMatrix(angle, center, &rotation); + + return rotation; + } + + static + __declspec(nothrow) + __forceinline + Matrix3x2F + Skew( + FLOAT angleX, + FLOAT angleY, + D2D1_POINT_2F center = D2D1::Point2F() + ) + { + Matrix3x2F skew; + + D2D1MakeSkewMatrix(angleX, angleY, center, &skew); + + return skew; + } + + + + + + static + __declspec(nothrow) + inline + const Matrix3x2F* + ReinterpretBaseType(const D2D1_MATRIX_3X2_F *pMatrix) + { + return static_cast(pMatrix); + } + + static + __declspec(nothrow) + inline + Matrix3x2F* + ReinterpretBaseType(D2D1_MATRIX_3X2_F *pMatrix) + { + return static_cast(pMatrix); + } + + __declspec(nothrow) + inline + FLOAT + Determinant() const + { + return (_11 * _22) - (_12 * _21); + } + + __declspec(nothrow) + inline + bool + IsInvertible() const + { + return !!D2D1IsMatrixInvertible(this); + } + + __declspec(nothrow) + inline + bool + Invert() + { + return !!D2D1InvertMatrix(this); + } + + __declspec(nothrow) + inline + bool + IsIdentity() const + { + return _11 == 1.f && _12 == 0.f + && _21 == 0.f && _22 == 1.f + && _31 == 0.f && _32 == 0.f; + } + + __declspec(nothrow) + inline + void SetProduct( + const Matrix3x2F &a, + const Matrix3x2F &b + ) + { + _11 = a._11 * b._11 + a._12 * b._21; + _12 = a._11 * b._12 + a._12 * b._22; + _21 = a._21 * b._11 + a._22 * b._21; + _22 = a._21 * b._12 + a._22 * b._22; + _31 = a._31 * b._11 + a._32 * b._21 + b._31; + _32 = a._31 * b._12 + a._32 * b._22 + b._32; + } + + __declspec(nothrow) + __forceinline + Matrix3x2F + operator*( + const Matrix3x2F &matrix + ) const + { + Matrix3x2F result; + + result.SetProduct(*this, matrix); + + return result; + } + + __declspec(nothrow) + __forceinline + D2D1_POINT_2F + TransformPoint( + D2D1_POINT_2F point + ) const + { + D2D1_POINT_2F result = + { + point.x * _11 + point.y * _21 + _31, + point.x * _12 + point.y * _22 + _32 + }; + + return result; + } + }; + + __declspec(nothrow) + __forceinline + D2D1_POINT_2F + operator*( + const D2D1_POINT_2F &point, + const D2D1_MATRIX_3X2_F &matrix + ) + { + return Matrix3x2F::ReinterpretBaseType(&matrix)->TransformPoint(point); + } + + __declspec(nothrow) + D2D1_MATRIX_3X2_F + IdentityMatrix() + { + return Matrix3x2F::Identity(); + } + +} + +__declspec(nothrow) +__forceinline +D2D1_MATRIX_3X2_F +operator*( + const D2D1_MATRIX_3X2_F &matrix1, + const D2D1_MATRIX_3X2_F &matrix2 + ) +{ + return + (*D2D1::Matrix3x2F::ReinterpretBaseType(&matrix1)) * + (*D2D1::Matrix3x2F::ReinterpretBaseType(&matrix2)); +} + +__declspec(nothrow) +inline +bool +operator==(const D2D1_SIZE_U &size1, const D2D1_SIZE_U &size2) +{ + return (size1.width == size2.width) && (size1.height == size2.height); +} + +__declspec(nothrow) +inline +bool +operator==(const D2D1_RECT_U &rect1, const D2D1_RECT_U &rect2) +{ + return (rect1.left == rect2.left) && (rect1.top == rect2.top) && + (rect1.right == rect2.right) && (rect1.bottom == rect2.bottom); +} +# 3708 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1.h" 2 + + + + + +__declspec(nothrow) +inline +HRESULT +D2D1CreateFactory( + D2D1_FACTORY_TYPE factoryType, + const IID & riid, + void **factory + ) +{ + return + D2D1CreateFactory( + factoryType, + riid, + 0, + factory); +} + + +template +__declspec(nothrow) +HRESULT +D2D1CreateFactory( + D2D1_FACTORY_TYPE factoryType, + Factory **factory + ) +{ + return + D2D1CreateFactory( + factoryType, + __uuidof(Factory), + reinterpret_cast(factory)); +} + +template +__declspec(nothrow) +HRESULT +D2D1CreateFactory( + D2D1_FACTORY_TYPE factoryType, + const D2D1_FACTORY_OPTIONS &factoryOptions, + Factory **ppFactory + ) +{ + return + D2D1CreateFactory( + factoryType, + __uuidof(Factory), + &factoryOptions, + reinterpret_cast(ppFactory)); +} +# 16 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1_1.h" 2 + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1effects.h" 1 +# 23 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1effects.h" +extern "C" const GUID CLSID_D2D12DAffineTransform; +extern "C" const GUID CLSID_D2D13DPerspectiveTransform; +extern "C" const GUID CLSID_D2D13DTransform; +extern "C" const GUID CLSID_D2D1ArithmeticComposite; +extern "C" const GUID CLSID_D2D1Atlas; +extern "C" const GUID CLSID_D2D1BitmapSource; +extern "C" const GUID CLSID_D2D1Blend; +extern "C" const GUID CLSID_D2D1Border; +extern "C" const GUID CLSID_D2D1Brightness; +extern "C" const GUID CLSID_D2D1ColorManagement; +extern "C" const GUID CLSID_D2D1ColorMatrix; +extern "C" const GUID CLSID_D2D1Composite; +extern "C" const GUID CLSID_D2D1ConvolveMatrix; +extern "C" const GUID CLSID_D2D1Crop; +extern "C" const GUID CLSID_D2D1DirectionalBlur; +extern "C" const GUID CLSID_D2D1DiscreteTransfer; +extern "C" const GUID CLSID_D2D1DisplacementMap; +extern "C" const GUID CLSID_D2D1DistantDiffuse; +extern "C" const GUID CLSID_D2D1DistantSpecular; +extern "C" const GUID CLSID_D2D1DpiCompensation; +extern "C" const GUID CLSID_D2D1Flood; +extern "C" const GUID CLSID_D2D1GammaTransfer; +extern "C" const GUID CLSID_D2D1GaussianBlur; +extern "C" const GUID CLSID_D2D1Scale; +extern "C" const GUID CLSID_D2D1Histogram; +extern "C" const GUID CLSID_D2D1HueRotation; +extern "C" const GUID CLSID_D2D1LinearTransfer; +extern "C" const GUID CLSID_D2D1LuminanceToAlpha; +extern "C" const GUID CLSID_D2D1Morphology; +extern "C" const GUID CLSID_D2D1OpacityMetadata; +extern "C" const GUID CLSID_D2D1PointDiffuse; +extern "C" const GUID CLSID_D2D1PointSpecular; +extern "C" const GUID CLSID_D2D1Premultiply; +extern "C" const GUID CLSID_D2D1Saturation; +extern "C" const GUID CLSID_D2D1Shadow; +extern "C" const GUID CLSID_D2D1SpotDiffuse; +extern "C" const GUID CLSID_D2D1SpotSpecular; +extern "C" const GUID CLSID_D2D1TableTransfer; +extern "C" const GUID CLSID_D2D1Tile; +extern "C" const GUID CLSID_D2D1Turbulence; +extern "C" const GUID CLSID_D2D1UnPremultiply; + + + + + + +typedef enum D2D1_BORDER_MODE +{ + D2D1_BORDER_MODE_SOFT = 0, + D2D1_BORDER_MODE_HARD = 1, + D2D1_BORDER_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_BORDER_MODE; + + + + + + +typedef enum D2D1_CHANNEL_SELECTOR +{ + D2D1_CHANNEL_SELECTOR_R = 0, + D2D1_CHANNEL_SELECTOR_G = 1, + D2D1_CHANNEL_SELECTOR_B = 2, + D2D1_CHANNEL_SELECTOR_A = 3, + D2D1_CHANNEL_SELECTOR_FORCE_DWORD = 0xffffffff + +} D2D1_CHANNEL_SELECTOR; + + + + + + +typedef enum D2D1_BITMAPSOURCE_ORIENTATION +{ + D2D1_BITMAPSOURCE_ORIENTATION_DEFAULT = 1, + D2D1_BITMAPSOURCE_ORIENTATION_FLIP_HORIZONTAL = 2, + D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE180 = 3, + D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE180_FLIP_HORIZONTAL = 4, + D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE270_FLIP_HORIZONTAL = 5, + D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE90 = 6, + D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE90_FLIP_HORIZONTAL = 7, + D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE270 = 8, + D2D1_BITMAPSOURCE_ORIENTATION_FORCE_DWORD = 0xffffffff + +} D2D1_BITMAPSOURCE_ORIENTATION; + + + + + +typedef enum D2D1_GAUSSIANBLUR_PROP +{ + + + + + + D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION = 0, + + + + + + D2D1_GAUSSIANBLUR_PROP_OPTIMIZATION = 1, + + + + + + D2D1_GAUSSIANBLUR_PROP_BORDER_MODE = 2, + D2D1_GAUSSIANBLUR_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_GAUSSIANBLUR_PROP; + +typedef enum D2D1_GAUSSIANBLUR_OPTIMIZATION +{ + D2D1_GAUSSIANBLUR_OPTIMIZATION_SPEED = 0, + D2D1_GAUSSIANBLUR_OPTIMIZATION_BALANCED = 1, + D2D1_GAUSSIANBLUR_OPTIMIZATION_QUALITY = 2, + D2D1_GAUSSIANBLUR_OPTIMIZATION_FORCE_DWORD = 0xffffffff + +} D2D1_GAUSSIANBLUR_OPTIMIZATION; + + + + + +typedef enum D2D1_DIRECTIONALBLUR_PROP +{ + + + + + + D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION = 0, + + + + + + D2D1_DIRECTIONALBLUR_PROP_ANGLE = 1, + + + + + + D2D1_DIRECTIONALBLUR_PROP_OPTIMIZATION = 2, + + + + + + D2D1_DIRECTIONALBLUR_PROP_BORDER_MODE = 3, + D2D1_DIRECTIONALBLUR_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_DIRECTIONALBLUR_PROP; + +typedef enum D2D1_DIRECTIONALBLUR_OPTIMIZATION +{ + D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED = 0, + D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED = 1, + D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY = 2, + D2D1_DIRECTIONALBLUR_OPTIMIZATION_FORCE_DWORD = 0xffffffff + +} D2D1_DIRECTIONALBLUR_OPTIMIZATION; + + + + + +typedef enum D2D1_SHADOW_PROP +{ + + + + + + D2D1_SHADOW_PROP_BLUR_STANDARD_DEVIATION = 0, + + + + + + D2D1_SHADOW_PROP_COLOR = 1, + + + + + + D2D1_SHADOW_PROP_OPTIMIZATION = 2, + D2D1_SHADOW_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_SHADOW_PROP; + +typedef enum D2D1_SHADOW_OPTIMIZATION +{ + D2D1_SHADOW_OPTIMIZATION_SPEED = 0, + D2D1_SHADOW_OPTIMIZATION_BALANCED = 1, + D2D1_SHADOW_OPTIMIZATION_QUALITY = 2, + D2D1_SHADOW_OPTIMIZATION_FORCE_DWORD = 0xffffffff + +} D2D1_SHADOW_OPTIMIZATION; + + + + + +typedef enum D2D1_BLEND_PROP +{ + + + + + + D2D1_BLEND_PROP_MODE = 0, + D2D1_BLEND_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_BLEND_PROP; + +typedef enum D2D1_BLEND_MODE +{ + D2D1_BLEND_MODE_MULTIPLY = 0, + D2D1_BLEND_MODE_SCREEN = 1, + D2D1_BLEND_MODE_DARKEN = 2, + D2D1_BLEND_MODE_LIGHTEN = 3, + D2D1_BLEND_MODE_DISSOLVE = 4, + D2D1_BLEND_MODE_COLOR_BURN = 5, + D2D1_BLEND_MODE_LINEAR_BURN = 6, + D2D1_BLEND_MODE_DARKER_COLOR = 7, + D2D1_BLEND_MODE_LIGHTER_COLOR = 8, + D2D1_BLEND_MODE_COLOR_DODGE = 9, + D2D1_BLEND_MODE_LINEAR_DODGE = 10, + D2D1_BLEND_MODE_OVERLAY = 11, + D2D1_BLEND_MODE_SOFT_LIGHT = 12, + D2D1_BLEND_MODE_HARD_LIGHT = 13, + D2D1_BLEND_MODE_VIVID_LIGHT = 14, + D2D1_BLEND_MODE_LINEAR_LIGHT = 15, + D2D1_BLEND_MODE_PIN_LIGHT = 16, + D2D1_BLEND_MODE_HARD_MIX = 17, + D2D1_BLEND_MODE_DIFFERENCE = 18, + D2D1_BLEND_MODE_EXCLUSION = 19, + D2D1_BLEND_MODE_HUE = 20, + D2D1_BLEND_MODE_SATURATION = 21, + D2D1_BLEND_MODE_COLOR = 22, + D2D1_BLEND_MODE_LUMINOSITY = 23, + D2D1_BLEND_MODE_SUBTRACT = 24, + D2D1_BLEND_MODE_DIVISION = 25, + D2D1_BLEND_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_BLEND_MODE; + + + + + +typedef enum D2D1_SATURATION_PROP +{ + + + + + + D2D1_SATURATION_PROP_SATURATION = 0, + D2D1_SATURATION_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_SATURATION_PROP; + + + + + +typedef enum D2D1_HUEROTATION_PROP +{ + + + + + + D2D1_HUEROTATION_PROP_ANGLE = 0, + D2D1_HUEROTATION_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_HUEROTATION_PROP; + + + + + +typedef enum D2D1_COLORMATRIX_PROP +{ + + + + + + D2D1_COLORMATRIX_PROP_COLOR_MATRIX = 0, + + + + + + D2D1_COLORMATRIX_PROP_ALPHA_MODE = 1, + + + + + + D2D1_COLORMATRIX_PROP_CLAMP_OUTPUT = 2, + D2D1_COLORMATRIX_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_COLORMATRIX_PROP; + +typedef enum D2D1_COLORMATRIX_ALPHA_MODE +{ + D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED = 1, + D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT = 2, + D2D1_COLORMATRIX_ALPHA_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_COLORMATRIX_ALPHA_MODE; + + + + + +typedef enum D2D1_BITMAPSOURCE_PROP +{ + + + + + + D2D1_BITMAPSOURCE_PROP_WIC_BITMAP_SOURCE = 0, + + + + + + D2D1_BITMAPSOURCE_PROP_SCALE = 1, + + + + + + D2D1_BITMAPSOURCE_PROP_INTERPOLATION_MODE = 2, + + + + + + D2D1_BITMAPSOURCE_PROP_ENABLE_DPI_CORRECTION = 3, + + + + + + D2D1_BITMAPSOURCE_PROP_ALPHA_MODE = 4, + + + + + + D2D1_BITMAPSOURCE_PROP_ORIENTATION = 5, + D2D1_BITMAPSOURCE_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_BITMAPSOURCE_PROP; + +typedef enum D2D1_BITMAPSOURCE_INTERPOLATION_MODE +{ + D2D1_BITMAPSOURCE_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0, + D2D1_BITMAPSOURCE_INTERPOLATION_MODE_LINEAR = 1, + D2D1_BITMAPSOURCE_INTERPOLATION_MODE_CUBIC = 2, + D2D1_BITMAPSOURCE_INTERPOLATION_MODE_FANT = 6, + D2D1_BITMAPSOURCE_INTERPOLATION_MODE_MIPMAP_LINEAR = 7, + D2D1_BITMAPSOURCE_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_BITMAPSOURCE_INTERPOLATION_MODE; + +typedef enum D2D1_BITMAPSOURCE_ALPHA_MODE +{ + D2D1_BITMAPSOURCE_ALPHA_MODE_PREMULTIPLIED = 1, + D2D1_BITMAPSOURCE_ALPHA_MODE_STRAIGHT = 2, + D2D1_BITMAPSOURCE_ALPHA_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_BITMAPSOURCE_ALPHA_MODE; + + + + + +typedef enum D2D1_COMPOSITE_PROP +{ + + + + + + D2D1_COMPOSITE_PROP_MODE = 0, + D2D1_COMPOSITE_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_COMPOSITE_PROP; + + + + + +typedef enum D2D1_3DTRANSFORM_PROP +{ + + + + + + D2D1_3DTRANSFORM_PROP_INTERPOLATION_MODE = 0, + + + + + + D2D1_3DTRANSFORM_PROP_BORDER_MODE = 1, + + + + + + D2D1_3DTRANSFORM_PROP_TRANSFORM_MATRIX = 2, + D2D1_3DTRANSFORM_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_3DTRANSFORM_PROP; + +typedef enum D2D1_3DTRANSFORM_INTERPOLATION_MODE +{ + D2D1_3DTRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0, + D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR = 1, + D2D1_3DTRANSFORM_INTERPOLATION_MODE_CUBIC = 2, + D2D1_3DTRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3, + D2D1_3DTRANSFORM_INTERPOLATION_MODE_ANISOTROPIC = 4, + D2D1_3DTRANSFORM_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_3DTRANSFORM_INTERPOLATION_MODE; + + + + + +typedef enum D2D1_3DPERSPECTIVETRANSFORM_PROP +{ + + + + + + D2D1_3DPERSPECTIVETRANSFORM_PROP_INTERPOLATION_MODE = 0, + + + + + + D2D1_3DPERSPECTIVETRANSFORM_PROP_BORDER_MODE = 1, + + + + + + D2D1_3DPERSPECTIVETRANSFORM_PROP_DEPTH = 2, + + + + + + D2D1_3DPERSPECTIVETRANSFORM_PROP_PERSPECTIVE_ORIGIN = 3, + + + + + + D2D1_3DPERSPECTIVETRANSFORM_PROP_LOCAL_OFFSET = 4, + + + + + + D2D1_3DPERSPECTIVETRANSFORM_PROP_GLOBAL_OFFSET = 5, + + + + + + D2D1_3DPERSPECTIVETRANSFORM_PROP_ROTATION_ORIGIN = 6, + + + + + + D2D1_3DPERSPECTIVETRANSFORM_PROP_ROTATION = 7, + D2D1_3DPERSPECTIVETRANSFORM_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_3DPERSPECTIVETRANSFORM_PROP; + +typedef enum D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE +{ + D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0, + D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_LINEAR = 1, + D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_CUBIC = 2, + D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3, + D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_ANISOTROPIC = 4, + D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE; + + + + + +typedef enum D2D1_2DAFFINETRANSFORM_PROP +{ + + + + + + D2D1_2DAFFINETRANSFORM_PROP_INTERPOLATION_MODE = 0, + + + + + + D2D1_2DAFFINETRANSFORM_PROP_BORDER_MODE = 1, + + + + + + D2D1_2DAFFINETRANSFORM_PROP_TRANSFORM_MATRIX = 2, + + + + + + D2D1_2DAFFINETRANSFORM_PROP_SHARPNESS = 3, + D2D1_2DAFFINETRANSFORM_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_2DAFFINETRANSFORM_PROP; + +typedef enum D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE +{ + D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0, + D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_LINEAR = 1, + D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_CUBIC = 2, + D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3, + D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_ANISOTROPIC = 4, + D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC = 5, + D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE; + + + + + +typedef enum D2D1_DPICOMPENSATION_PROP +{ + + + + + + D2D1_DPICOMPENSATION_PROP_INTERPOLATION_MODE = 0, + + + + + + D2D1_DPICOMPENSATION_PROP_BORDER_MODE = 1, + + + + + + D2D1_DPICOMPENSATION_PROP_INPUT_DPI = 2, + D2D1_DPICOMPENSATION_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_DPICOMPENSATION_PROP; + +typedef enum D2D1_DPICOMPENSATION_INTERPOLATION_MODE +{ + D2D1_DPICOMPENSATION_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0, + D2D1_DPICOMPENSATION_INTERPOLATION_MODE_LINEAR = 1, + D2D1_DPICOMPENSATION_INTERPOLATION_MODE_CUBIC = 2, + D2D1_DPICOMPENSATION_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3, + D2D1_DPICOMPENSATION_INTERPOLATION_MODE_ANISOTROPIC = 4, + D2D1_DPICOMPENSATION_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC = 5, + D2D1_DPICOMPENSATION_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_DPICOMPENSATION_INTERPOLATION_MODE; + + + + + +typedef enum D2D1_SCALE_PROP +{ + + + + + + D2D1_SCALE_PROP_SCALE = 0, + + + + + + D2D1_SCALE_PROP_CENTER_POINT = 1, + + + + + + D2D1_SCALE_PROP_INTERPOLATION_MODE = 2, + + + + + + D2D1_SCALE_PROP_BORDER_MODE = 3, + + + + + + D2D1_SCALE_PROP_SHARPNESS = 4, + D2D1_SCALE_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_SCALE_PROP; + +typedef enum D2D1_SCALE_INTERPOLATION_MODE +{ + D2D1_SCALE_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0, + D2D1_SCALE_INTERPOLATION_MODE_LINEAR = 1, + D2D1_SCALE_INTERPOLATION_MODE_CUBIC = 2, + D2D1_SCALE_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3, + D2D1_SCALE_INTERPOLATION_MODE_ANISOTROPIC = 4, + D2D1_SCALE_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC = 5, + D2D1_SCALE_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_SCALE_INTERPOLATION_MODE; + + + + + +typedef enum D2D1_TURBULENCE_PROP +{ + + + + + + D2D1_TURBULENCE_PROP_OFFSET = 0, + + + + + + D2D1_TURBULENCE_PROP_SIZE = 1, + + + + + + D2D1_TURBULENCE_PROP_BASE_FREQUENCY = 2, + + + + + + D2D1_TURBULENCE_PROP_NUM_OCTAVES = 3, + + + + + + D2D1_TURBULENCE_PROP_SEED = 4, + + + + + + D2D1_TURBULENCE_PROP_NOISE = 5, + + + + + + D2D1_TURBULENCE_PROP_STITCHABLE = 6, + D2D1_TURBULENCE_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_TURBULENCE_PROP; + +typedef enum D2D1_TURBULENCE_NOISE +{ + D2D1_TURBULENCE_NOISE_FRACTAL_SUM = 0, + D2D1_TURBULENCE_NOISE_TURBULENCE = 1, + D2D1_TURBULENCE_NOISE_FORCE_DWORD = 0xffffffff + +} D2D1_TURBULENCE_NOISE; + + + + + +typedef enum D2D1_DISPLACEMENTMAP_PROP +{ + + + + + + D2D1_DISPLACEMENTMAP_PROP_SCALE = 0, + + + + + + D2D1_DISPLACEMENTMAP_PROP_X_CHANNEL_SELECT = 1, + + + + + + D2D1_DISPLACEMENTMAP_PROP_Y_CHANNEL_SELECT = 2, + D2D1_DISPLACEMENTMAP_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_DISPLACEMENTMAP_PROP; + + + + + +typedef enum D2D1_COLORMANAGEMENT_PROP +{ + + + + + + D2D1_COLORMANAGEMENT_PROP_SOURCE_COLOR_CONTEXT = 0, + + + + + + D2D1_COLORMANAGEMENT_PROP_SOURCE_RENDERING_INTENT = 1, + + + + + + D2D1_COLORMANAGEMENT_PROP_DESTINATION_COLOR_CONTEXT = 2, + + + + + + D2D1_COLORMANAGEMENT_PROP_DESTINATION_RENDERING_INTENT = 3, + + + + + + D2D1_COLORMANAGEMENT_PROP_ALPHA_MODE = 4, + + + + + + D2D1_COLORMANAGEMENT_PROP_QUALITY = 5, + D2D1_COLORMANAGEMENT_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_COLORMANAGEMENT_PROP; + +typedef enum D2D1_COLORMANAGEMENT_ALPHA_MODE +{ + D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED = 1, + D2D1_COLORMANAGEMENT_ALPHA_MODE_STRAIGHT = 2, + D2D1_COLORMANAGEMENT_ALPHA_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_COLORMANAGEMENT_ALPHA_MODE; + +typedef enum D2D1_COLORMANAGEMENT_QUALITY +{ + D2D1_COLORMANAGEMENT_QUALITY_PROOF = 0, + D2D1_COLORMANAGEMENT_QUALITY_NORMAL = 1, + D2D1_COLORMANAGEMENT_QUALITY_BEST = 2, + D2D1_COLORMANAGEMENT_QUALITY_FORCE_DWORD = 0xffffffff + +} D2D1_COLORMANAGEMENT_QUALITY; + + + + + +typedef enum D2D1_COLORMANAGEMENT_RENDERING_INTENT +{ + D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL = 0, + D2D1_COLORMANAGEMENT_RENDERING_INTENT_RELATIVE_COLORIMETRIC = 1, + D2D1_COLORMANAGEMENT_RENDERING_INTENT_SATURATION = 2, + D2D1_COLORMANAGEMENT_RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 3, + D2D1_COLORMANAGEMENT_RENDERING_INTENT_FORCE_DWORD = 0xffffffff + +} D2D1_COLORMANAGEMENT_RENDERING_INTENT; + + + + + +typedef enum D2D1_HISTOGRAM_PROP +{ + + + + + + D2D1_HISTOGRAM_PROP_NUM_BINS = 0, + + + + + + D2D1_HISTOGRAM_PROP_CHANNEL_SELECT = 1, + + + + + + D2D1_HISTOGRAM_PROP_HISTOGRAM_OUTPUT = 2, + D2D1_HISTOGRAM_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_HISTOGRAM_PROP; + + + + + +typedef enum D2D1_POINTSPECULAR_PROP +{ + + + + + + D2D1_POINTSPECULAR_PROP_LIGHT_POSITION = 0, + + + + + + D2D1_POINTSPECULAR_PROP_SPECULAR_EXPONENT = 1, + + + + + + D2D1_POINTSPECULAR_PROP_SPECULAR_CONSTANT = 2, + + + + + + D2D1_POINTSPECULAR_PROP_SURFACE_SCALE = 3, + + + + + + D2D1_POINTSPECULAR_PROP_COLOR = 4, + + + + + + D2D1_POINTSPECULAR_PROP_KERNEL_UNIT_LENGTH = 5, + + + + + + D2D1_POINTSPECULAR_PROP_SCALE_MODE = 6, + D2D1_POINTSPECULAR_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_POINTSPECULAR_PROP; + +typedef enum D2D1_POINTSPECULAR_SCALE_MODE +{ + D2D1_POINTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR = 0, + D2D1_POINTSPECULAR_SCALE_MODE_LINEAR = 1, + D2D1_POINTSPECULAR_SCALE_MODE_CUBIC = 2, + D2D1_POINTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3, + D2D1_POINTSPECULAR_SCALE_MODE_ANISOTROPIC = 4, + D2D1_POINTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC = 5, + D2D1_POINTSPECULAR_SCALE_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_POINTSPECULAR_SCALE_MODE; + + + + + +typedef enum D2D1_SPOTSPECULAR_PROP +{ + + + + + + D2D1_SPOTSPECULAR_PROP_LIGHT_POSITION = 0, + + + + + + D2D1_SPOTSPECULAR_PROP_POINTS_AT = 1, + + + + + + D2D1_SPOTSPECULAR_PROP_FOCUS = 2, + + + + + + D2D1_SPOTSPECULAR_PROP_LIMITING_CONE_ANGLE = 3, + + + + + + D2D1_SPOTSPECULAR_PROP_SPECULAR_EXPONENT = 4, + + + + + + D2D1_SPOTSPECULAR_PROP_SPECULAR_CONSTANT = 5, + + + + + + D2D1_SPOTSPECULAR_PROP_SURFACE_SCALE = 6, + + + + + + D2D1_SPOTSPECULAR_PROP_COLOR = 7, + + + + + + D2D1_SPOTSPECULAR_PROP_KERNEL_UNIT_LENGTH = 8, + + + + + + D2D1_SPOTSPECULAR_PROP_SCALE_MODE = 9, + D2D1_SPOTSPECULAR_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_SPOTSPECULAR_PROP; + +typedef enum D2D1_SPOTSPECULAR_SCALE_MODE +{ + D2D1_SPOTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR = 0, + D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR = 1, + D2D1_SPOTSPECULAR_SCALE_MODE_CUBIC = 2, + D2D1_SPOTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3, + D2D1_SPOTSPECULAR_SCALE_MODE_ANISOTROPIC = 4, + D2D1_SPOTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC = 5, + D2D1_SPOTSPECULAR_SCALE_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_SPOTSPECULAR_SCALE_MODE; + + + + + +typedef enum D2D1_DISTANTSPECULAR_PROP +{ + + + + + + D2D1_DISTANTSPECULAR_PROP_AZIMUTH = 0, + + + + + + D2D1_DISTANTSPECULAR_PROP_ELEVATION = 1, + + + + + + D2D1_DISTANTSPECULAR_PROP_SPECULAR_EXPONENT = 2, + + + + + + D2D1_DISTANTSPECULAR_PROP_SPECULAR_CONSTANT = 3, + + + + + + D2D1_DISTANTSPECULAR_PROP_SURFACE_SCALE = 4, + + + + + + D2D1_DISTANTSPECULAR_PROP_COLOR = 5, + + + + + + D2D1_DISTANTSPECULAR_PROP_KERNEL_UNIT_LENGTH = 6, + + + + + + D2D1_DISTANTSPECULAR_PROP_SCALE_MODE = 7, + D2D1_DISTANTSPECULAR_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_DISTANTSPECULAR_PROP; + +typedef enum D2D1_DISTANTSPECULAR_SCALE_MODE +{ + D2D1_DISTANTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR = 0, + D2D1_DISTANTSPECULAR_SCALE_MODE_LINEAR = 1, + D2D1_DISTANTSPECULAR_SCALE_MODE_CUBIC = 2, + D2D1_DISTANTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3, + D2D1_DISTANTSPECULAR_SCALE_MODE_ANISOTROPIC = 4, + D2D1_DISTANTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC = 5, + D2D1_DISTANTSPECULAR_SCALE_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_DISTANTSPECULAR_SCALE_MODE; + + + + + +typedef enum D2D1_POINTDIFFUSE_PROP +{ + + + + + + D2D1_POINTDIFFUSE_PROP_LIGHT_POSITION = 0, + + + + + + D2D1_POINTDIFFUSE_PROP_DIFFUSE_CONSTANT = 1, + + + + + + D2D1_POINTDIFFUSE_PROP_SURFACE_SCALE = 2, + + + + + + D2D1_POINTDIFFUSE_PROP_COLOR = 3, + + + + + + D2D1_POINTDIFFUSE_PROP_KERNEL_UNIT_LENGTH = 4, + + + + + + D2D1_POINTDIFFUSE_PROP_SCALE_MODE = 5, + D2D1_POINTDIFFUSE_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_POINTDIFFUSE_PROP; + +typedef enum D2D1_POINTDIFFUSE_SCALE_MODE +{ + D2D1_POINTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR = 0, + D2D1_POINTDIFFUSE_SCALE_MODE_LINEAR = 1, + D2D1_POINTDIFFUSE_SCALE_MODE_CUBIC = 2, + D2D1_POINTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3, + D2D1_POINTDIFFUSE_SCALE_MODE_ANISOTROPIC = 4, + D2D1_POINTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC = 5, + D2D1_POINTDIFFUSE_SCALE_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_POINTDIFFUSE_SCALE_MODE; + + + + + +typedef enum D2D1_SPOTDIFFUSE_PROP +{ + + + + + + D2D1_SPOTDIFFUSE_PROP_LIGHT_POSITION = 0, + + + + + + D2D1_SPOTDIFFUSE_PROP_POINTS_AT = 1, + + + + + + D2D1_SPOTDIFFUSE_PROP_FOCUS = 2, + + + + + + D2D1_SPOTDIFFUSE_PROP_LIMITING_CONE_ANGLE = 3, + + + + + + D2D1_SPOTDIFFUSE_PROP_DIFFUSE_CONSTANT = 4, + + + + + + D2D1_SPOTDIFFUSE_PROP_SURFACE_SCALE = 5, + + + + + + D2D1_SPOTDIFFUSE_PROP_COLOR = 6, + + + + + + D2D1_SPOTDIFFUSE_PROP_KERNEL_UNIT_LENGTH = 7, + + + + + + D2D1_SPOTDIFFUSE_PROP_SCALE_MODE = 8, + D2D1_SPOTDIFFUSE_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_SPOTDIFFUSE_PROP; + +typedef enum D2D1_SPOTDIFFUSE_SCALE_MODE +{ + D2D1_SPOTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR = 0, + D2D1_SPOTDIFFUSE_SCALE_MODE_LINEAR = 1, + D2D1_SPOTDIFFUSE_SCALE_MODE_CUBIC = 2, + D2D1_SPOTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3, + D2D1_SPOTDIFFUSE_SCALE_MODE_ANISOTROPIC = 4, + D2D1_SPOTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC = 5, + D2D1_SPOTDIFFUSE_SCALE_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_SPOTDIFFUSE_SCALE_MODE; + + + + + +typedef enum D2D1_DISTANTDIFFUSE_PROP +{ + + + + + + D2D1_DISTANTDIFFUSE_PROP_AZIMUTH = 0, + + + + + + D2D1_DISTANTDIFFUSE_PROP_ELEVATION = 1, + + + + + + D2D1_DISTANTDIFFUSE_PROP_DIFFUSE_CONSTANT = 2, + + + + + + D2D1_DISTANTDIFFUSE_PROP_SURFACE_SCALE = 3, + + + + + + D2D1_DISTANTDIFFUSE_PROP_COLOR = 4, + + + + + + D2D1_DISTANTDIFFUSE_PROP_KERNEL_UNIT_LENGTH = 5, + + + + + + D2D1_DISTANTDIFFUSE_PROP_SCALE_MODE = 6, + D2D1_DISTANTDIFFUSE_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_DISTANTDIFFUSE_PROP; + +typedef enum D2D1_DISTANTDIFFUSE_SCALE_MODE +{ + D2D1_DISTANTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR = 0, + D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR = 1, + D2D1_DISTANTDIFFUSE_SCALE_MODE_CUBIC = 2, + D2D1_DISTANTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3, + D2D1_DISTANTDIFFUSE_SCALE_MODE_ANISOTROPIC = 4, + D2D1_DISTANTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC = 5, + D2D1_DISTANTDIFFUSE_SCALE_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_DISTANTDIFFUSE_SCALE_MODE; + + + + + +typedef enum D2D1_FLOOD_PROP +{ + + + + + + D2D1_FLOOD_PROP_COLOR = 0, + D2D1_FLOOD_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_FLOOD_PROP; + + + + + +typedef enum D2D1_LINEARTRANSFER_PROP +{ + + + + + + D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT = 0, + + + + + + D2D1_LINEARTRANSFER_PROP_RED_SLOPE = 1, + + + + + + D2D1_LINEARTRANSFER_PROP_RED_DISABLE = 2, + + + + + + D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT = 3, + + + + + + D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE = 4, + + + + + + D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE = 5, + + + + + + D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT = 6, + + + + + + D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE = 7, + + + + + + D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE = 8, + + + + + + D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT = 9, + + + + + + D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE = 10, + + + + + + D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE = 11, + + + + + + D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT = 12, + D2D1_LINEARTRANSFER_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_LINEARTRANSFER_PROP; + + + + + +typedef enum D2D1_GAMMATRANSFER_PROP +{ + + + + + + D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE = 0, + + + + + + D2D1_GAMMATRANSFER_PROP_RED_EXPONENT = 1, + + + + + + D2D1_GAMMATRANSFER_PROP_RED_OFFSET = 2, + + + + + + D2D1_GAMMATRANSFER_PROP_RED_DISABLE = 3, + + + + + + D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE = 4, + + + + + + D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT = 5, + + + + + + D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET = 6, + + + + + + D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE = 7, + + + + + + D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE = 8, + + + + + + D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT = 9, + + + + + + D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET = 10, + + + + + + D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE = 11, + + + + + + D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE = 12, + + + + + + D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT = 13, + + + + + + D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET = 14, + + + + + + D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE = 15, + + + + + + D2D1_GAMMATRANSFER_PROP_CLAMP_OUTPUT = 16, + D2D1_GAMMATRANSFER_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_GAMMATRANSFER_PROP; + + + + + +typedef enum D2D1_TABLETRANSFER_PROP +{ + + + + + + D2D1_TABLETRANSFER_PROP_RED_TABLE = 0, + + + + + + D2D1_TABLETRANSFER_PROP_RED_DISABLE = 1, + + + + + + D2D1_TABLETRANSFER_PROP_GREEN_TABLE = 2, + + + + + + D2D1_TABLETRANSFER_PROP_GREEN_DISABLE = 3, + + + + + + D2D1_TABLETRANSFER_PROP_BLUE_TABLE = 4, + + + + + + D2D1_TABLETRANSFER_PROP_BLUE_DISABLE = 5, + + + + + + D2D1_TABLETRANSFER_PROP_ALPHA_TABLE = 6, + + + + + + D2D1_TABLETRANSFER_PROP_ALPHA_DISABLE = 7, + + + + + + D2D1_TABLETRANSFER_PROP_CLAMP_OUTPUT = 8, + D2D1_TABLETRANSFER_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_TABLETRANSFER_PROP; + + + + + +typedef enum D2D1_DISCRETETRANSFER_PROP +{ + + + + + + D2D1_DISCRETETRANSFER_PROP_RED_TABLE = 0, + + + + + + D2D1_DISCRETETRANSFER_PROP_RED_DISABLE = 1, + + + + + + D2D1_DISCRETETRANSFER_PROP_GREEN_TABLE = 2, + + + + + + D2D1_DISCRETETRANSFER_PROP_GREEN_DISABLE = 3, + + + + + + D2D1_DISCRETETRANSFER_PROP_BLUE_TABLE = 4, + + + + + + D2D1_DISCRETETRANSFER_PROP_BLUE_DISABLE = 5, + + + + + + D2D1_DISCRETETRANSFER_PROP_ALPHA_TABLE = 6, + + + + + + D2D1_DISCRETETRANSFER_PROP_ALPHA_DISABLE = 7, + + + + + + D2D1_DISCRETETRANSFER_PROP_CLAMP_OUTPUT = 8, + D2D1_DISCRETETRANSFER_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_DISCRETETRANSFER_PROP; + + + + + +typedef enum D2D1_CONVOLVEMATRIX_PROP +{ + + + + + + D2D1_CONVOLVEMATRIX_PROP_KERNEL_UNIT_LENGTH = 0, + + + + + + D2D1_CONVOLVEMATRIX_PROP_SCALE_MODE = 1, + + + + + + D2D1_CONVOLVEMATRIX_PROP_KERNEL_SIZE_X = 2, + + + + + + D2D1_CONVOLVEMATRIX_PROP_KERNEL_SIZE_Y = 3, + + + + + + D2D1_CONVOLVEMATRIX_PROP_KERNEL_MATRIX = 4, + + + + + + D2D1_CONVOLVEMATRIX_PROP_DIVISOR = 5, + + + + + + D2D1_CONVOLVEMATRIX_PROP_BIAS = 6, + + + + + + D2D1_CONVOLVEMATRIX_PROP_KERNEL_OFFSET = 7, + + + + + + D2D1_CONVOLVEMATRIX_PROP_PRESERVE_ALPHA = 8, + + + + + + D2D1_CONVOLVEMATRIX_PROP_BORDER_MODE = 9, + + + + + + D2D1_CONVOLVEMATRIX_PROP_CLAMP_OUTPUT = 10, + D2D1_CONVOLVEMATRIX_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_CONVOLVEMATRIX_PROP; + +typedef enum D2D1_CONVOLVEMATRIX_SCALE_MODE +{ + D2D1_CONVOLVEMATRIX_SCALE_MODE_NEAREST_NEIGHBOR = 0, + D2D1_CONVOLVEMATRIX_SCALE_MODE_LINEAR = 1, + D2D1_CONVOLVEMATRIX_SCALE_MODE_CUBIC = 2, + D2D1_CONVOLVEMATRIX_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3, + D2D1_CONVOLVEMATRIX_SCALE_MODE_ANISOTROPIC = 4, + D2D1_CONVOLVEMATRIX_SCALE_MODE_HIGH_QUALITY_CUBIC = 5, + D2D1_CONVOLVEMATRIX_SCALE_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_CONVOLVEMATRIX_SCALE_MODE; + + + + + +typedef enum D2D1_BRIGHTNESS_PROP +{ + + + + + + D2D1_BRIGHTNESS_PROP_WHITE_POINT = 0, + + + + + + D2D1_BRIGHTNESS_PROP_BLACK_POINT = 1, + D2D1_BRIGHTNESS_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_BRIGHTNESS_PROP; + + + + + +typedef enum D2D1_ARITHMETICCOMPOSITE_PROP +{ + + + + + + D2D1_ARITHMETICCOMPOSITE_PROP_COEFFICIENTS = 0, + + + + + + D2D1_ARITHMETICCOMPOSITE_PROP_CLAMP_OUTPUT = 1, + D2D1_ARITHMETICCOMPOSITE_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_ARITHMETICCOMPOSITE_PROP; + + + + + +typedef enum D2D1_CROP_PROP +{ + + + + + + D2D1_CROP_PROP_RECT = 0, + + + + + + D2D1_CROP_PROP_BORDER_MODE = 1, + D2D1_CROP_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_CROP_PROP; + + + + + +typedef enum D2D1_BORDER_PROP +{ + + + + + + D2D1_BORDER_PROP_EDGE_MODE_X = 0, + + + + + + D2D1_BORDER_PROP_EDGE_MODE_Y = 1, + D2D1_BORDER_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_BORDER_PROP; + + + + + +typedef enum D2D1_BORDER_EDGE_MODE +{ + D2D1_BORDER_EDGE_MODE_CLAMP = 0, + D2D1_BORDER_EDGE_MODE_WRAP = 1, + D2D1_BORDER_EDGE_MODE_MIRROR = 2, + D2D1_BORDER_EDGE_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_BORDER_EDGE_MODE; + + + + + +typedef enum D2D1_MORPHOLOGY_PROP +{ + + + + + + D2D1_MORPHOLOGY_PROP_MODE = 0, + + + + + + D2D1_MORPHOLOGY_PROP_WIDTH = 1, + + + + + + D2D1_MORPHOLOGY_PROP_HEIGHT = 2, + D2D1_MORPHOLOGY_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_MORPHOLOGY_PROP; + +typedef enum D2D1_MORPHOLOGY_MODE +{ + D2D1_MORPHOLOGY_MODE_ERODE = 0, + D2D1_MORPHOLOGY_MODE_DILATE = 1, + D2D1_MORPHOLOGY_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_MORPHOLOGY_MODE; + + + + + +typedef enum D2D1_TILE_PROP +{ + + + + + + D2D1_TILE_PROP_RECT = 0, + D2D1_TILE_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_TILE_PROP; + + + + + +typedef enum D2D1_ATLAS_PROP +{ + + + + + + D2D1_ATLAS_PROP_INPUT_RECT = 0, + + + + + + D2D1_ATLAS_PROP_INPUT_PADDING_RECT = 1, + D2D1_ATLAS_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_ATLAS_PROP; + + + + + +typedef enum D2D1_OPACITYMETADATA_PROP +{ + + + + + + D2D1_OPACITYMETADATA_PROP_INPUT_OPAQUE_RECT = 0, + D2D1_OPACITYMETADATA_PROP_FORCE_DWORD = 0xffffffff + +} D2D1_OPACITYMETADATA_PROP; +# 19 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1_1.h" 2 +# 31 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1_1.h" +typedef struct ID2D1ColorContext ID2D1ColorContext; +typedef struct IWICColorContext IWICColorContext; +typedef struct IWICImagingFactory IWICImagingFactory; +typedef struct IPrintDocumentPackageTarget IPrintDocumentPackageTarget; +typedef struct IDWriteFactory IDWriteFactory; +typedef struct DWRITE_GLYPH_RUN_DESCRIPTION DWRITE_GLYPH_RUN_DESCRIPTION; +typedef struct D2D1_PROPERTY_BINDING D2D1_PROPERTY_BINDING; + + + + +typedef HRESULT (__stdcall *PD2D1_EFFECT_FACTORY)( + IUnknown **effectImpl + ); + + + +struct ID2D1Device; +struct ID2D1Effect; + + + + + + + +typedef D2D_RECT_L D2D1_RECT_L; +typedef D2D_POINT_2L D2D1_POINT_2L; + + + + + +typedef enum D2D1_PROPERTY_TYPE +{ + D2D1_PROPERTY_TYPE_UNKNOWN = 0, + D2D1_PROPERTY_TYPE_STRING = 1, + D2D1_PROPERTY_TYPE_BOOL = 2, + D2D1_PROPERTY_TYPE_UINT32 = 3, + D2D1_PROPERTY_TYPE_INT32 = 4, + D2D1_PROPERTY_TYPE_FLOAT = 5, + D2D1_PROPERTY_TYPE_VECTOR2 = 6, + D2D1_PROPERTY_TYPE_VECTOR3 = 7, + D2D1_PROPERTY_TYPE_VECTOR4 = 8, + D2D1_PROPERTY_TYPE_BLOB = 9, + D2D1_PROPERTY_TYPE_IUNKNOWN = 10, + D2D1_PROPERTY_TYPE_ENUM = 11, + D2D1_PROPERTY_TYPE_ARRAY = 12, + D2D1_PROPERTY_TYPE_CLSID = 13, + D2D1_PROPERTY_TYPE_MATRIX_3X2 = 14, + D2D1_PROPERTY_TYPE_MATRIX_4X3 = 15, + D2D1_PROPERTY_TYPE_MATRIX_4X4 = 16, + D2D1_PROPERTY_TYPE_MATRIX_5X4 = 17, + D2D1_PROPERTY_TYPE_COLOR_CONTEXT = 18, + D2D1_PROPERTY_TYPE_FORCE_DWORD = 0xffffffff + +} D2D1_PROPERTY_TYPE; + + + + + + +typedef enum D2D1_PROPERTY +{ + D2D1_PROPERTY_CLSID = 0x80000000, + D2D1_PROPERTY_DISPLAYNAME = 0x80000001, + D2D1_PROPERTY_AUTHOR = 0x80000002, + D2D1_PROPERTY_CATEGORY = 0x80000003, + D2D1_PROPERTY_DESCRIPTION = 0x80000004, + D2D1_PROPERTY_INPUTS = 0x80000005, + D2D1_PROPERTY_CACHED = 0x80000006, + D2D1_PROPERTY_PRECISION = 0x80000007, + D2D1_PROPERTY_MIN_INPUTS = 0x80000008, + D2D1_PROPERTY_MAX_INPUTS = 0x80000009, + D2D1_PROPERTY_FORCE_DWORD = 0xffffffff + +} D2D1_PROPERTY; + + + + + + +typedef enum D2D1_SUBPROPERTY +{ + D2D1_SUBPROPERTY_DISPLAYNAME = 0x80000000, + D2D1_SUBPROPERTY_ISREADONLY = 0x80000001, + D2D1_SUBPROPERTY_MIN = 0x80000002, + D2D1_SUBPROPERTY_MAX = 0x80000003, + D2D1_SUBPROPERTY_DEFAULT = 0x80000004, + D2D1_SUBPROPERTY_FIELDS = 0x80000005, + D2D1_SUBPROPERTY_INDEX = 0x80000006, + D2D1_SUBPROPERTY_FORCE_DWORD = 0xffffffff + +} D2D1_SUBPROPERTY; + + + + + +typedef enum D2D1_BITMAP_OPTIONS +{ + + + + + D2D1_BITMAP_OPTIONS_NONE = 0x00000000, + + + + + D2D1_BITMAP_OPTIONS_TARGET = 0x00000001, + + + + + + D2D1_BITMAP_OPTIONS_CANNOT_DRAW = 0x00000002, + + + + + D2D1_BITMAP_OPTIONS_CPU_READ = 0x00000004, + + + + + D2D1_BITMAP_OPTIONS_GDI_COMPATIBLE = 0x00000008, + D2D1_BITMAP_OPTIONS_FORCE_DWORD = 0xffffffff + +} D2D1_BITMAP_OPTIONS; + +extern "C++" { inline constexpr D2D1_BITMAP_OPTIONS operator | (D2D1_BITMAP_OPTIONS a, D2D1_BITMAP_OPTIONS b) throw() { return D2D1_BITMAP_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_BITMAP_OPTIONS &operator |= (D2D1_BITMAP_OPTIONS &a, D2D1_BITMAP_OPTIONS b) throw() { return (D2D1_BITMAP_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_BITMAP_OPTIONS operator & (D2D1_BITMAP_OPTIONS a, D2D1_BITMAP_OPTIONS b) throw() { return D2D1_BITMAP_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_BITMAP_OPTIONS &operator &= (D2D1_BITMAP_OPTIONS &a, D2D1_BITMAP_OPTIONS b) throw() { return (D2D1_BITMAP_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_BITMAP_OPTIONS operator ~ (D2D1_BITMAP_OPTIONS a) throw() { return D2D1_BITMAP_OPTIONS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D2D1_BITMAP_OPTIONS operator ^ (D2D1_BITMAP_OPTIONS a, D2D1_BITMAP_OPTIONS b) throw() { return D2D1_BITMAP_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_BITMAP_OPTIONS &operator ^= (D2D1_BITMAP_OPTIONS &a, D2D1_BITMAP_OPTIONS b) throw() { return (D2D1_BITMAP_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; + + + + + +typedef enum D2D1_COMPOSITE_MODE +{ + D2D1_COMPOSITE_MODE_SOURCE_OVER = 0, + D2D1_COMPOSITE_MODE_DESTINATION_OVER = 1, + D2D1_COMPOSITE_MODE_SOURCE_IN = 2, + D2D1_COMPOSITE_MODE_DESTINATION_IN = 3, + D2D1_COMPOSITE_MODE_SOURCE_OUT = 4, + D2D1_COMPOSITE_MODE_DESTINATION_OUT = 5, + D2D1_COMPOSITE_MODE_SOURCE_ATOP = 6, + D2D1_COMPOSITE_MODE_DESTINATION_ATOP = 7, + D2D1_COMPOSITE_MODE_XOR = 8, + D2D1_COMPOSITE_MODE_PLUS = 9, + D2D1_COMPOSITE_MODE_SOURCE_COPY = 10, + D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY = 11, + D2D1_COMPOSITE_MODE_MASK_INVERT = 12, + D2D1_COMPOSITE_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_COMPOSITE_MODE; + + + + + +typedef enum D2D1_BUFFER_PRECISION +{ + D2D1_BUFFER_PRECISION_UNKNOWN = 0, + D2D1_BUFFER_PRECISION_8BPC_UNORM = 1, + D2D1_BUFFER_PRECISION_8BPC_UNORM_SRGB = 2, + D2D1_BUFFER_PRECISION_16BPC_UNORM = 3, + D2D1_BUFFER_PRECISION_16BPC_FLOAT = 4, + D2D1_BUFFER_PRECISION_32BPC_FLOAT = 5, + D2D1_BUFFER_PRECISION_FORCE_DWORD = 0xffffffff + +} D2D1_BUFFER_PRECISION; + + + + + +typedef enum D2D1_MAP_OPTIONS +{ + + + + + D2D1_MAP_OPTIONS_NONE = 0, + + + + + D2D1_MAP_OPTIONS_READ = 1, + + + + + D2D1_MAP_OPTIONS_WRITE = 2, + + + + + D2D1_MAP_OPTIONS_DISCARD = 4, + D2D1_MAP_OPTIONS_FORCE_DWORD = 0xffffffff + +} D2D1_MAP_OPTIONS; + +extern "C++" { inline constexpr D2D1_MAP_OPTIONS operator | (D2D1_MAP_OPTIONS a, D2D1_MAP_OPTIONS b) throw() { return D2D1_MAP_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_MAP_OPTIONS &operator |= (D2D1_MAP_OPTIONS &a, D2D1_MAP_OPTIONS b) throw() { return (D2D1_MAP_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_MAP_OPTIONS operator & (D2D1_MAP_OPTIONS a, D2D1_MAP_OPTIONS b) throw() { return D2D1_MAP_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_MAP_OPTIONS &operator &= (D2D1_MAP_OPTIONS &a, D2D1_MAP_OPTIONS b) throw() { return (D2D1_MAP_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_MAP_OPTIONS operator ~ (D2D1_MAP_OPTIONS a) throw() { return D2D1_MAP_OPTIONS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D2D1_MAP_OPTIONS operator ^ (D2D1_MAP_OPTIONS a, D2D1_MAP_OPTIONS b) throw() { return D2D1_MAP_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_MAP_OPTIONS &operator ^= (D2D1_MAP_OPTIONS &a, D2D1_MAP_OPTIONS b) throw() { return (D2D1_MAP_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; + + + + + + +typedef enum D2D1_INTERPOLATION_MODE +{ + D2D1_INTERPOLATION_MODE_NEAREST_NEIGHBOR = D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR, + D2D1_INTERPOLATION_MODE_LINEAR = D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR, + D2D1_INTERPOLATION_MODE_CUBIC = D2D1_INTERPOLATION_MODE_DEFINITION_CUBIC, + D2D1_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = D2D1_INTERPOLATION_MODE_DEFINITION_MULTI_SAMPLE_LINEAR, + D2D1_INTERPOLATION_MODE_ANISOTROPIC = D2D1_INTERPOLATION_MODE_DEFINITION_ANISOTROPIC, + D2D1_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC = D2D1_INTERPOLATION_MODE_DEFINITION_HIGH_QUALITY_CUBIC, + D2D1_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_INTERPOLATION_MODE; + + + + + +typedef enum D2D1_UNIT_MODE +{ + D2D1_UNIT_MODE_DIPS = 0, + D2D1_UNIT_MODE_PIXELS = 1, + D2D1_UNIT_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_UNIT_MODE; + + + + + +typedef enum D2D1_COLOR_SPACE +{ + + + + + D2D1_COLOR_SPACE_CUSTOM = 0, + + + + + D2D1_COLOR_SPACE_SRGB = 1, + + + + + D2D1_COLOR_SPACE_SCRGB = 2, + D2D1_COLOR_SPACE_FORCE_DWORD = 0xffffffff + +} D2D1_COLOR_SPACE; + + + + + +typedef enum D2D1_DEVICE_CONTEXT_OPTIONS +{ + D2D1_DEVICE_CONTEXT_OPTIONS_NONE = 0, + + + + + + D2D1_DEVICE_CONTEXT_OPTIONS_ENABLE_MULTITHREADED_OPTIMIZATIONS = 1, + D2D1_DEVICE_CONTEXT_OPTIONS_FORCE_DWORD = 0xffffffff + +} D2D1_DEVICE_CONTEXT_OPTIONS; + +extern "C++" { inline constexpr D2D1_DEVICE_CONTEXT_OPTIONS operator | (D2D1_DEVICE_CONTEXT_OPTIONS a, D2D1_DEVICE_CONTEXT_OPTIONS b) throw() { return D2D1_DEVICE_CONTEXT_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_DEVICE_CONTEXT_OPTIONS &operator |= (D2D1_DEVICE_CONTEXT_OPTIONS &a, D2D1_DEVICE_CONTEXT_OPTIONS b) throw() { return (D2D1_DEVICE_CONTEXT_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_DEVICE_CONTEXT_OPTIONS operator & (D2D1_DEVICE_CONTEXT_OPTIONS a, D2D1_DEVICE_CONTEXT_OPTIONS b) throw() { return D2D1_DEVICE_CONTEXT_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_DEVICE_CONTEXT_OPTIONS &operator &= (D2D1_DEVICE_CONTEXT_OPTIONS &a, D2D1_DEVICE_CONTEXT_OPTIONS b) throw() { return (D2D1_DEVICE_CONTEXT_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_DEVICE_CONTEXT_OPTIONS operator ~ (D2D1_DEVICE_CONTEXT_OPTIONS a) throw() { return D2D1_DEVICE_CONTEXT_OPTIONS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D2D1_DEVICE_CONTEXT_OPTIONS operator ^ (D2D1_DEVICE_CONTEXT_OPTIONS a, D2D1_DEVICE_CONTEXT_OPTIONS b) throw() { return D2D1_DEVICE_CONTEXT_OPTIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_DEVICE_CONTEXT_OPTIONS &operator ^= (D2D1_DEVICE_CONTEXT_OPTIONS &a, D2D1_DEVICE_CONTEXT_OPTIONS b) throw() { return (D2D1_DEVICE_CONTEXT_OPTIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; + + + + + + +typedef enum D2D1_STROKE_TRANSFORM_TYPE +{ + + + + + D2D1_STROKE_TRANSFORM_TYPE_NORMAL = 0, + + + + + + D2D1_STROKE_TRANSFORM_TYPE_FIXED = 1, + + + + + D2D1_STROKE_TRANSFORM_TYPE_HAIRLINE = 2, + D2D1_STROKE_TRANSFORM_TYPE_FORCE_DWORD = 0xffffffff + +} D2D1_STROKE_TRANSFORM_TYPE; + + + + + +typedef enum D2D1_PRIMITIVE_BLEND +{ + D2D1_PRIMITIVE_BLEND_SOURCE_OVER = 0, + D2D1_PRIMITIVE_BLEND_COPY = 1, + D2D1_PRIMITIVE_BLEND_MIN = 2, + D2D1_PRIMITIVE_BLEND_ADD = 3, + D2D1_PRIMITIVE_BLEND_FORCE_DWORD = 0xffffffff + +} D2D1_PRIMITIVE_BLEND; + + + + + + +typedef enum D2D1_THREADING_MODE +{ + + + + + + + D2D1_THREADING_MODE_SINGLE_THREADED = D2D1_FACTORY_TYPE_SINGLE_THREADED, + + + + + + D2D1_THREADING_MODE_MULTI_THREADED = D2D1_FACTORY_TYPE_MULTI_THREADED, + D2D1_THREADING_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_THREADING_MODE; + + + + + +typedef enum D2D1_COLOR_INTERPOLATION_MODE +{ + + + + + D2D1_COLOR_INTERPOLATION_MODE_STRAIGHT = 0, + + + + + D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED = 1, + D2D1_COLOR_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_COLOR_INTERPOLATION_MODE; + +typedef D2D_VECTOR_2F D2D1_VECTOR_2F; +typedef D2D_VECTOR_3F D2D1_VECTOR_3F; +typedef D2D_VECTOR_4F D2D1_VECTOR_4F; + + + + +typedef struct D2D1_BITMAP_PROPERTIES1 +{ + D2D1_PIXEL_FORMAT pixelFormat; + FLOAT dpiX; + FLOAT dpiY; + + + + + D2D1_BITMAP_OPTIONS bitmapOptions; + ID2D1ColorContext *colorContext; + +} D2D1_BITMAP_PROPERTIES1; + + + + + +typedef struct D2D1_MAPPED_RECT +{ + UINT32 pitch; + BYTE *bits; + +} D2D1_MAPPED_RECT; + + + + + +typedef struct D2D1_RENDERING_CONTROLS +{ + + + + + D2D1_BUFFER_PRECISION bufferPrecision; + + + + + D2D1_SIZE_U tileSize; + +} D2D1_RENDERING_CONTROLS; + + + + + +typedef struct D2D1_EFFECT_INPUT_DESCRIPTION +{ + + + + + ID2D1Effect *effect; + + + + + UINT32 inputIndex; + + + + + + D2D1_RECT_F inputRectangle; + +} D2D1_EFFECT_INPUT_DESCRIPTION; + +typedef D2D_MATRIX_4X3_F D2D1_MATRIX_4X3_F; +typedef D2D_MATRIX_4X4_F D2D1_MATRIX_4X4_F; +typedef D2D_MATRIX_5X4_F D2D1_MATRIX_5X4_F; + + + + +typedef struct D2D1_POINT_DESCRIPTION +{ + D2D1_POINT_2F point; + D2D1_POINT_2F unitTangentVector; + UINT32 endSegment; + UINT32 endFigure; + FLOAT lengthToEndSegment; + +} D2D1_POINT_DESCRIPTION; + + + + + +typedef struct D2D1_IMAGE_BRUSH_PROPERTIES +{ + D2D1_RECT_F sourceRectangle; + D2D1_EXTEND_MODE extendModeX; + D2D1_EXTEND_MODE extendModeY; + D2D1_INTERPOLATION_MODE interpolationMode; + +} D2D1_IMAGE_BRUSH_PROPERTIES; + + + + + +typedef struct D2D1_BITMAP_BRUSH_PROPERTIES1 +{ + D2D1_EXTEND_MODE extendModeX; + D2D1_EXTEND_MODE extendModeY; + D2D1_INTERPOLATION_MODE interpolationMode; + +} D2D1_BITMAP_BRUSH_PROPERTIES1; + + + + + +typedef struct D2D1_STROKE_STYLE_PROPERTIES1 +{ + D2D1_CAP_STYLE startCap; + D2D1_CAP_STYLE endCap; + D2D1_CAP_STYLE dashCap; + D2D1_LINE_JOIN lineJoin; + FLOAT miterLimit; + D2D1_DASH_STYLE dashStyle; + FLOAT dashOffset; + + + + + D2D1_STROKE_TRANSFORM_TYPE transformType; + +} D2D1_STROKE_STYLE_PROPERTIES1; + + + + + +typedef enum D2D1_LAYER_OPTIONS1 +{ + D2D1_LAYER_OPTIONS1_NONE = 0, + D2D1_LAYER_OPTIONS1_INITIALIZE_FROM_BACKGROUND = 1, + D2D1_LAYER_OPTIONS1_IGNORE_ALPHA = 2, + D2D1_LAYER_OPTIONS1_FORCE_DWORD = 0xffffffff + +} D2D1_LAYER_OPTIONS1; + +extern "C++" { inline constexpr D2D1_LAYER_OPTIONS1 operator | (D2D1_LAYER_OPTIONS1 a, D2D1_LAYER_OPTIONS1 b) throw() { return D2D1_LAYER_OPTIONS1(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_LAYER_OPTIONS1 &operator |= (D2D1_LAYER_OPTIONS1 &a, D2D1_LAYER_OPTIONS1 b) throw() { return (D2D1_LAYER_OPTIONS1 &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_LAYER_OPTIONS1 operator & (D2D1_LAYER_OPTIONS1 a, D2D1_LAYER_OPTIONS1 b) throw() { return D2D1_LAYER_OPTIONS1(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_LAYER_OPTIONS1 &operator &= (D2D1_LAYER_OPTIONS1 &a, D2D1_LAYER_OPTIONS1 b) throw() { return (D2D1_LAYER_OPTIONS1 &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr D2D1_LAYER_OPTIONS1 operator ~ (D2D1_LAYER_OPTIONS1 a) throw() { return D2D1_LAYER_OPTIONS1(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr D2D1_LAYER_OPTIONS1 operator ^ (D2D1_LAYER_OPTIONS1 a, D2D1_LAYER_OPTIONS1 b) throw() { return D2D1_LAYER_OPTIONS1(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline D2D1_LAYER_OPTIONS1 &operator ^= (D2D1_LAYER_OPTIONS1 &a, D2D1_LAYER_OPTIONS1 b) throw() { return (D2D1_LAYER_OPTIONS1 &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; + + + + + +typedef struct D2D1_LAYER_PARAMETERS1 +{ + D2D1_RECT_F contentBounds; + ID2D1Geometry *geometricMask; + D2D1_ANTIALIAS_MODE maskAntialiasMode; + D2D1_MATRIX_3X2_F maskTransform; + FLOAT opacity; + ID2D1Brush *opacityBrush; + D2D1_LAYER_OPTIONS1 layerOptions; + +} D2D1_LAYER_PARAMETERS1; + + + + + +typedef enum D2D1_PRINT_FONT_SUBSET_MODE +{ + + + + + D2D1_PRINT_FONT_SUBSET_MODE_DEFAULT = 0, + + + + + D2D1_PRINT_FONT_SUBSET_MODE_EACHPAGE = 1, + + + + + D2D1_PRINT_FONT_SUBSET_MODE_NONE = 2, + D2D1_PRINT_FONT_SUBSET_MODE_FORCE_DWORD = 0xffffffff + +} D2D1_PRINT_FONT_SUBSET_MODE; + + + + + +typedef struct D2D1_DRAWING_STATE_DESCRIPTION1 +{ + D2D1_ANTIALIAS_MODE antialiasMode; + D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode; + D2D1_TAG tag1; + D2D1_TAG tag2; + D2D1_MATRIX_3X2_F transform; + D2D1_PRIMITIVE_BLEND primitiveBlend; + D2D1_UNIT_MODE unitMode; + +} D2D1_DRAWING_STATE_DESCRIPTION1; + + + + + +typedef struct D2D1_PRINT_CONTROL_PROPERTIES +{ + D2D1_PRINT_FONT_SUBSET_MODE fontSubset; + + + + + + FLOAT rasterDPI; + + + + + D2D1_COLOR_SPACE colorSpace; + +} D2D1_PRINT_CONTROL_PROPERTIES; + + + + + + +typedef struct D2D1_CREATION_PROPERTIES +{ + + + + + D2D1_THREADING_MODE threadingMode; + D2D1_DEBUG_LEVEL debugLevel; + D2D1_DEVICE_CONTEXT_OPTIONS options; + +} D2D1_CREATION_PROPERTIES; +# 651 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1_1.h" +struct __declspec(uuid("82237326-8111-4f7c-bcf4-b5c1175564fe")) __declspec(novtable) ID2D1GdiMetafileSink : public IUnknown +{ + + + + + virtual __declspec(nothrow) HRESULT __stdcall ProcessRecord( + DWORD recordType, + const void *recordData, + DWORD recordDataSize + ) = 0; +}; + + + + + +struct __declspec(uuid("2f543dc3-cfc1-4211-864f-cfd91c6f3395")) __declspec(novtable) ID2D1GdiMetafile : public ID2D1Resource +{ + + + + + virtual __declspec(nothrow) HRESULT __stdcall Stream( + ID2D1GdiMetafileSink *sink + ) = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetBounds( + D2D1_RECT_F *bounds + ) = 0; +}; + + + + + + +struct __declspec(uuid("54d7898a-a061-40a7-bec7-e465bcba2c4f")) __declspec(novtable) ID2D1CommandSink : public IUnknown +{ + + virtual __declspec(nothrow) HRESULT __stdcall BeginDraw( + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall EndDraw( + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetAntialiasMode( + D2D1_ANTIALIAS_MODE antialiasMode + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetTags( + D2D1_TAG tag1, + D2D1_TAG tag2 + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetTextAntialiasMode( + D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetTextRenderingParams( + IDWriteRenderingParams *textRenderingParams + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetTransform( + const D2D1_MATRIX_3X2_F *transform + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetPrimitiveBlend( + D2D1_PRIMITIVE_BLEND primitiveBlend + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall SetUnitMode( + D2D1_UNIT_MODE unitMode + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall Clear( + const D2D1_COLOR_F *color + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall DrawGlyphRun( + D2D1_POINT_2F baselineOrigin, + const DWRITE_GLYPH_RUN *glyphRun, + const DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription, + ID2D1Brush *foregroundBrush, + DWRITE_MEASURING_MODE measuringMode + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall DrawLine( + D2D1_POINT_2F point0, + D2D1_POINT_2F point1, + ID2D1Brush *brush, + FLOAT strokeWidth, + ID2D1StrokeStyle *strokeStyle + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall DrawGeometry( + ID2D1Geometry *geometry, + ID2D1Brush *brush, + FLOAT strokeWidth, + ID2D1StrokeStyle *strokeStyle + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall DrawRectangle( + const D2D1_RECT_F *rect, + ID2D1Brush *brush, + FLOAT strokeWidth, + ID2D1StrokeStyle *strokeStyle + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall DrawBitmap( + ID2D1Bitmap *bitmap, + const D2D1_RECT_F *destinationRectangle, + FLOAT opacity, + D2D1_INTERPOLATION_MODE interpolationMode, + const D2D1_RECT_F *sourceRectangle, + const D2D1_MATRIX_4X4_F *perspectiveTransform + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall DrawImage( + ID2D1Image *image, + const D2D1_POINT_2F *targetOffset, + const D2D1_RECT_F *imageRectangle, + D2D1_INTERPOLATION_MODE interpolationMode, + D2D1_COMPOSITE_MODE compositeMode + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall DrawGdiMetafile( + ID2D1GdiMetafile *gdiMetafile, + const D2D1_POINT_2F *targetOffset + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall FillMesh( + ID2D1Mesh *mesh, + ID2D1Brush *brush + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall FillOpacityMask( + ID2D1Bitmap *opacityMask, + ID2D1Brush *brush, + const D2D1_RECT_F *destinationRectangle, + const D2D1_RECT_F *sourceRectangle + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall FillGeometry( + ID2D1Geometry *geometry, + ID2D1Brush *brush, + ID2D1Brush *opacityBrush + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall FillRectangle( + const D2D1_RECT_F *rect, + ID2D1Brush *brush + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall PushAxisAlignedClip( + const D2D1_RECT_F *clipRect, + D2D1_ANTIALIAS_MODE antialiasMode + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall PushLayer( + const D2D1_LAYER_PARAMETERS1 *layerParameters1, + ID2D1Layer *layer + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall PopAxisAlignedClip( + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall PopLayer( + ) = 0; +}; + + + + + +struct __declspec(uuid("b4f34a19-2383-4d76-94f6-ec343657c3dc")) __declspec(novtable) ID2D1CommandList : public ID2D1Image +{ + + + + + virtual __declspec(nothrow) HRESULT __stdcall Stream( + ID2D1CommandSink *sink + ) = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall Close( + ) = 0; +}; + + + + + + +struct __declspec(uuid("2c1d867d-c290-41c8-ae7e-34a98702e9a5")) __declspec(novtable) ID2D1PrintControl : public IUnknown +{ + + virtual __declspec(nothrow) HRESULT __stdcall AddPage( + ID2D1CommandList *commandList, + D2D_SIZE_F pageSize, + IStream *pagePrintTicketStream, + D2D1_TAG *tag1 = 0, + D2D1_TAG *tag2 = 0 + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall Close( + ) = 0; +}; + + + + + + +struct __declspec(uuid("fe9e984d-3f95-407c-b5db-cb94d4e8f87c")) __declspec(novtable) ID2D1ImageBrush : public ID2D1Brush +{ + + virtual __declspec(nothrow) void __stdcall SetImage( + ID2D1Image *image + ) = 0; + + virtual __declspec(nothrow) void __stdcall SetExtendModeX( + D2D1_EXTEND_MODE extendModeX + ) = 0; + + virtual __declspec(nothrow) void __stdcall SetExtendModeY( + D2D1_EXTEND_MODE extendModeY + ) = 0; + + virtual __declspec(nothrow) void __stdcall SetInterpolationMode( + D2D1_INTERPOLATION_MODE interpolationMode + ) = 0; + + virtual __declspec(nothrow) void __stdcall SetSourceRectangle( + const D2D1_RECT_F *sourceRectangle + ) = 0; + + virtual __declspec(nothrow) void __stdcall GetImage( + ID2D1Image **image + ) const = 0; + + virtual __declspec(nothrow) D2D1_EXTEND_MODE __stdcall GetExtendModeX( + ) const = 0; + + virtual __declspec(nothrow) D2D1_EXTEND_MODE __stdcall GetExtendModeY( + ) const = 0; + + virtual __declspec(nothrow) D2D1_INTERPOLATION_MODE __stdcall GetInterpolationMode( + ) const = 0; + + virtual __declspec(nothrow) void __stdcall GetSourceRectangle( + D2D1_RECT_F *sourceRectangle + ) const = 0; +}; + + + + + + +struct __declspec(uuid("41343a53-e41a-49a2-91cd-21793bbb62e5")) __declspec(novtable) ID2D1BitmapBrush1 : public ID2D1BitmapBrush +{ + + + + + virtual __declspec(nothrow) void __stdcall SetInterpolationMode1( + D2D1_INTERPOLATION_MODE interpolationMode + ) = 0; + + virtual __declspec(nothrow) D2D1_INTERPOLATION_MODE __stdcall GetInterpolationMode1( + ) const = 0; +}; + + + + + +struct __declspec(uuid("10a72a66-e91c-43f4-993f-ddf4b82b0b4a")) __declspec(novtable) ID2D1StrokeStyle1 : public ID2D1StrokeStyle +{ + + virtual __declspec(nothrow) D2D1_STROKE_TRANSFORM_TYPE __stdcall GetStrokeTransformType( + ) const = 0; +}; + + + + + + + +struct __declspec(uuid("62baa2d2-ab54-41b7-b872-787e0106a421")) __declspec(novtable) ID2D1PathGeometry1 : public ID2D1PathGeometry +{ + + virtual __declspec(nothrow) HRESULT __stdcall ComputePointAndSegmentAtLength( + FLOAT length, + UINT32 startSegment, + const D2D1_MATRIX_3X2_F *worldTransform, + FLOAT flatteningTolerance, + D2D1_POINT_DESCRIPTION *pointDescription + ) const = 0; + + __declspec(nothrow) + HRESULT + ComputePointAndSegmentAtLength( + FLOAT length, + UINT32 startSegment, + const D2D1_MATRIX_3X2_F &worldTransform, + FLOAT flatteningTolerance, + D2D1_POINT_DESCRIPTION *pointDescription + ) const + { + return ComputePointAndSegmentAtLength(length, startSegment, &worldTransform, flatteningTolerance, pointDescription); + } + + __declspec(nothrow) + HRESULT + ComputePointAndSegmentAtLength( + FLOAT length, + UINT32 startSegment, + const D2D1_MATRIX_3X2_F *worldTransform, + D2D1_POINT_DESCRIPTION *pointDescription + ) const + { + return ComputePointAndSegmentAtLength(length, startSegment, worldTransform, (0.25f), pointDescription); + } + + __declspec(nothrow) + HRESULT + ComputePointAndSegmentAtLength( + FLOAT length, + UINT32 startSegment, + const D2D1_MATRIX_3X2_F &worldTransform, + D2D1_POINT_DESCRIPTION *pointDescription + ) const + { + return ComputePointAndSegmentAtLength(length, startSegment, &worldTransform, (0.25f), pointDescription); + } +}; + + + + + + +struct __declspec(uuid("483473d7-cd46-4f9d-9d3a-3112aa80159d")) __declspec(novtable) ID2D1Properties : public IUnknown +{ + + + + + virtual __declspec(nothrow) UINT32 __stdcall GetPropertyCount( + ) const = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetPropertyName( + UINT32 index, + PWSTR name, + UINT32 nameCount + ) const = 0; + + + + + virtual __declspec(nothrow) UINT32 __stdcall GetPropertyNameLength( + UINT32 index + ) const = 0; + + + + + virtual __declspec(nothrow) D2D1_PROPERTY_TYPE __stdcall GetType( + UINT32 index + ) const = 0; + + + + + virtual __declspec(nothrow) UINT32 __stdcall GetPropertyIndex( + PCWSTR name + ) const = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall SetValueByName( + PCWSTR name, + D2D1_PROPERTY_TYPE type, + const BYTE *data, + UINT32 dataSize + ) = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall SetValue( + UINT32 index, + D2D1_PROPERTY_TYPE type, + const BYTE *data, + UINT32 dataSize + ) = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetValueByName( + PCWSTR name, + D2D1_PROPERTY_TYPE type, + BYTE *data, + UINT32 dataSize + ) const = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetValue( + UINT32 index, + D2D1_PROPERTY_TYPE type, + BYTE *data, + UINT32 dataSize + ) const = 0; + + + + + virtual __declspec(nothrow) UINT32 __stdcall GetValueSize( + UINT32 index + ) const = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetSubProperties( + UINT32 index, + ID2D1Properties **subProperties + ) const = 0; + + __declspec(nothrow) + HRESULT + SetValueByName( + PCWSTR name, + const BYTE *data, + UINT32 dataSize + ) + { + return SetValueByName(name, D2D1_PROPERTY_TYPE_UNKNOWN, data, dataSize); + } + + __declspec(nothrow) + HRESULT + SetValue( + UINT32 index, + const BYTE *data, + UINT32 dataSize + ) + { + return SetValue(index, D2D1_PROPERTY_TYPE_UNKNOWN, data, dataSize); + } + + __declspec(nothrow) + HRESULT + GetValueByName( + PCWSTR name, + BYTE *data, + UINT32 dataSize + ) const + { + return GetValueByName(name, D2D1_PROPERTY_TYPE_UNKNOWN, data, dataSize); + } + + __declspec(nothrow) + HRESULT + GetValue( + UINT32 index, + BYTE *data, + UINT32 dataSize + ) const + { + return GetValue(index, D2D1_PROPERTY_TYPE_UNKNOWN, data, dataSize); + } + + + + + template + HRESULT GetValueByName( + PCWSTR propertyName, + T *value + ) const + { + return GetValueByName(propertyName, reinterpret_cast(value), sizeof(*value)); + } + + template + T GetValueByName( + PCWSTR propertyName + ) const + { + T value; + HRESULT ignoreHr = GetValueByName(propertyName, reinterpret_cast(&value), sizeof(value)); + (ignoreHr); + + return value; + } + + + template + HRESULT SetValueByName( + PCWSTR propertyName, + const T &value + ) + { + return SetValueByName(propertyName, reinterpret_cast(&value), sizeof(value)); + } + + template + HRESULT GetValue( + U index, + BYTE *data, + UINT32 dataSize + ) const + { + return GetValue(static_cast(index), data, dataSize); + } + + template + HRESULT GetValue( + U index, + T *value + ) const + { + return GetValue(static_cast(index), reinterpret_cast(value), sizeof(*value)); + } + + template + T GetValue( + U index + ) const + { + T value; + HRESULT ignoreHr = GetValue(static_cast(index), reinterpret_cast(&value), sizeof(value)); + + + ignoreHr; + + return value; + } + + template + HRESULT SetValue( + U index, + const BYTE *data, + UINT32 dataSize + ) + { + return SetValue(static_cast(index), data, dataSize); + } + + template + HRESULT SetValue( + U index, + const T &value + ) + { + return SetValue(static_cast(index), reinterpret_cast(&value), sizeof(value)); + } + + template + HRESULT GetPropertyName( + U index, + PWSTR name, + UINT32 nameCount + ) const + { + return GetPropertyName(static_cast(index), name, nameCount); + } + + template + UINT32 GetPropertyNameLength( + U index + ) const + { + return GetPropertyNameLength(static_cast(index)); + } + + template + D2D1_PROPERTY_TYPE GetType( + U index + ) const + { + return GetType(static_cast(index)); + } + + + template + UINT32 GetValueSize( + U index + ) const + { + return GetValueSize(static_cast(index)); + } + + template + HRESULT GetSubProperties( + U index, + ID2D1Properties **subProperties + ) const + { + return GetSubProperties(static_cast(index), subProperties); + } +}; + + + + + + +struct __declspec(uuid("28211a43-7d89-476f-8181-2d6159b220ad")) __declspec(novtable) ID2D1Effect : public ID2D1Properties +{ + + + + + + virtual __declspec(nothrow) void __stdcall SetInput( + UINT32 index, + ID2D1Image *input, + BOOL invalidate = 1 + ) = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall SetInputCount( + UINT32 inputCount + ) = 0; + + + + + + virtual __declspec(nothrow) void __stdcall GetInput( + UINT32 index, + ID2D1Image **input + ) const = 0; + + + + + virtual __declspec(nothrow) UINT32 __stdcall GetInputCount( + ) const = 0; + + + + + + virtual __declspec(nothrow) void __stdcall GetOutput( + ID2D1Image **outputImage + ) const = 0; + + __declspec(nothrow) + void + SetInputEffect( + UINT32 index, + ID2D1Effect *inputEffect, + BOOL invalidate = 1 + ) + { + + ID2D1Image *output = 0; + if (inputEffect != 0) + { + inputEffect->GetOutput(&output); + } + SetInput(index, output, invalidate); + if (output != 0) + { + output->Release(); + } + } +}; + + + + + + +struct __declspec(uuid("a898a84c-3873-4588-b08b-ebbf978df041")) __declspec(novtable) ID2D1Bitmap1 : public ID2D1Bitmap +{ + + + + + virtual __declspec(nothrow) void __stdcall GetColorContext( + ID2D1ColorContext **colorContext + ) const = 0; + + + + + virtual __declspec(nothrow) D2D1_BITMAP_OPTIONS __stdcall GetOptions( + ) const = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetSurface( + IDXGISurface **dxgiSurface + ) const = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall Map( + D2D1_MAP_OPTIONS options, + D2D1_MAPPED_RECT *mappedRect + ) = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall Unmap( + ) = 0; +}; + + + + + +struct __declspec(uuid("1c4820bb-5771-4518-a581-2fe4dd0ec657")) __declspec(novtable) ID2D1ColorContext : public ID2D1Resource +{ + + + + + virtual __declspec(nothrow) D2D1_COLOR_SPACE __stdcall GetColorSpace( + ) const = 0; + + + + + virtual __declspec(nothrow) UINT32 __stdcall GetProfileSize( + ) const = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetProfile( + BYTE *profile, + UINT32 profileSize + ) const = 0; +}; + + + + + + +struct __declspec(uuid("ae1572f4-5dd0-4777-998b-9279472ae63b")) __declspec(novtable) ID2D1GradientStopCollection1 : public ID2D1GradientStopCollection +{ +# 1432 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1_1.h" + virtual __declspec(nothrow) void __stdcall GetGradientStops1( + D2D1_GRADIENT_STOP *gradientStops, + UINT32 gradientStopsCount + ) const = 0; + + + + + + + virtual __declspec(nothrow) D2D1_COLOR_SPACE __stdcall GetPreInterpolationSpace( + ) const = 0; + + + + + + + + virtual __declspec(nothrow) D2D1_COLOR_SPACE __stdcall GetPostInterpolationSpace( + ) const = 0; + + + + + + + virtual __declspec(nothrow) D2D1_BUFFER_PRECISION __stdcall GetBufferPrecision( + ) const = 0; + + + + + virtual __declspec(nothrow) D2D1_COLOR_INTERPOLATION_MODE __stdcall GetColorInterpolationMode( + ) const = 0; +}; + + + + + +struct __declspec(uuid("689f1f85-c72e-4e33-8f19-85754efd5ace")) __declspec(novtable) ID2D1DrawingStateBlock1 : public ID2D1DrawingStateBlock +{ + + + + + virtual __declspec(nothrow) void __stdcall GetDescription( + D2D1_DRAWING_STATE_DESCRIPTION1 *stateDescription + ) const = 0; + + using ID2D1DrawingStateBlock::GetDescription; + + + + + virtual __declspec(nothrow) void __stdcall SetDescription( + const D2D1_DRAWING_STATE_DESCRIPTION1 *stateDescription + ) = 0; + + using ID2D1DrawingStateBlock::SetDescription; +}; + + + + + + +struct __declspec(uuid("e8f7fe7a-191c-466d-ad95-975678bda998")) __declspec(novtable) ID2D1DeviceContext : public ID2D1RenderTarget +{ + + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateBitmap( + D2D1_SIZE_U size, + const void *sourceData, + UINT32 pitch, + const D2D1_BITMAP_PROPERTIES1 *bitmapProperties, + ID2D1Bitmap1 **bitmap + ) = 0; + + using ID2D1RenderTarget::CreateBitmap; + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateBitmapFromWicBitmap( + IWICBitmapSource *wicBitmapSource, + const D2D1_BITMAP_PROPERTIES1 *bitmapProperties, + ID2D1Bitmap1 **bitmap + ) = 0; + + using ID2D1RenderTarget::CreateBitmapFromWicBitmap; + + + + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateColorContext( + D2D1_COLOR_SPACE space, + const BYTE *profile, + UINT32 profileSize, + ID2D1ColorContext **colorContext + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall CreateColorContextFromFilename( + PCWSTR filename, + ID2D1ColorContext **colorContext + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall CreateColorContextFromWicColorContext( + IWICColorContext *wicColorContext, + ID2D1ColorContext **colorContext + ) = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateBitmapFromDxgiSurface( + IDXGISurface *surface, + const D2D1_BITMAP_PROPERTIES1 *bitmapProperties, + ID2D1Bitmap1 **bitmap + ) = 0; + + + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateEffect( + const IID & effectId, + ID2D1Effect **effect + ) = 0; +# 1584 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1_1.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateGradientStopCollection( + const D2D1_GRADIENT_STOP *straightAlphaGradientStops, + UINT32 straightAlphaGradientStopsCount, + D2D1_COLOR_SPACE preInterpolationSpace, + D2D1_COLOR_SPACE postInterpolationSpace, + D2D1_BUFFER_PRECISION bufferPrecision, + D2D1_EXTEND_MODE extendMode, + D2D1_COLOR_INTERPOLATION_MODE colorInterpolationMode, + ID2D1GradientStopCollection1 **gradientStopCollection1 + ) = 0; + + using ID2D1RenderTarget::CreateGradientStopCollection; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateImageBrush( + ID2D1Image *image, + const D2D1_IMAGE_BRUSH_PROPERTIES *imageBrushProperties, + const D2D1_BRUSH_PROPERTIES *brushProperties, + ID2D1ImageBrush **imageBrush + ) = 0; + + virtual __declspec(nothrow) HRESULT __stdcall CreateBitmapBrush( + ID2D1Bitmap *bitmap, + const D2D1_BITMAP_BRUSH_PROPERTIES1 *bitmapBrushProperties, + const D2D1_BRUSH_PROPERTIES *brushProperties, + ID2D1BitmapBrush1 **bitmapBrush + ) = 0; + + using ID2D1RenderTarget::CreateBitmapBrush; + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateCommandList( + ID2D1CommandList **commandList + ) = 0; + + + + + virtual __declspec(nothrow) BOOL __stdcall IsDxgiFormatSupported( + DXGI_FORMAT format + ) const = 0; + + + + + virtual __declspec(nothrow) BOOL __stdcall IsBufferPrecisionSupported( + D2D1_BUFFER_PRECISION bufferPrecision + ) const = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetImageLocalBounds( + ID2D1Image *image, + D2D1_RECT_F *localBounds + ) const = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetImageWorldBounds( + ID2D1Image *image, + D2D1_RECT_F *worldBounds + ) const = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetGlyphRunWorldBounds( + D2D1_POINT_2F baselineOrigin, + const DWRITE_GLYPH_RUN *glyphRun, + DWRITE_MEASURING_MODE measuringMode, + D2D1_RECT_F *bounds + ) const = 0; + + + + + virtual __declspec(nothrow) void __stdcall GetDevice( + ID2D1Device **device + ) const = 0; + + + + + + + virtual __declspec(nothrow) void __stdcall SetTarget( + ID2D1Image *image + ) = 0; + + + + + virtual __declspec(nothrow) void __stdcall GetTarget( + ID2D1Image **image + ) const = 0; + + + + + virtual __declspec(nothrow) void __stdcall SetRenderingControls( + const D2D1_RENDERING_CONTROLS *renderingControls + ) = 0; + + + + + + virtual __declspec(nothrow) void __stdcall GetRenderingControls( + D2D1_RENDERING_CONTROLS *renderingControls + ) const = 0; + + + + + virtual __declspec(nothrow) void __stdcall SetPrimitiveBlend( + D2D1_PRIMITIVE_BLEND primitiveBlend + ) = 0; + + + + + virtual __declspec(nothrow) D2D1_PRIMITIVE_BLEND __stdcall GetPrimitiveBlend( + ) const = 0; + + + + + virtual __declspec(nothrow) void __stdcall SetUnitMode( + D2D1_UNIT_MODE unitMode + ) = 0; + + + + + virtual __declspec(nothrow) D2D1_UNIT_MODE __stdcall GetUnitMode( + ) const = 0; + + + + + virtual __declspec(nothrow) void __stdcall DrawGlyphRun( + D2D1_POINT_2F baselineOrigin, + const DWRITE_GLYPH_RUN *glyphRun, + const DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription, + ID2D1Brush *foregroundBrush, + DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL + ) = 0; + + using ID2D1RenderTarget::DrawGlyphRun; + + + + + + virtual __declspec(nothrow) void __stdcall DrawImage( + ID2D1Image *image, + const D2D1_POINT_2F *targetOffset = 0, + const D2D1_RECT_F *imageRectangle = 0, + D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR, + D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER + ) = 0; + + + + + virtual __declspec(nothrow) void __stdcall DrawGdiMetafile( + ID2D1GdiMetafile *gdiMetafile, + const D2D1_POINT_2F *targetOffset = 0 + ) = 0; + + virtual __declspec(nothrow) void __stdcall DrawBitmap( + ID2D1Bitmap *bitmap, + const D2D1_RECT_F *destinationRectangle, + FLOAT opacity, + D2D1_INTERPOLATION_MODE interpolationMode, + const D2D1_RECT_F *sourceRectangle = 0, + const D2D1_MATRIX_4X4_F *perspectiveTransform = 0 + ) = 0; + + using ID2D1RenderTarget::DrawBitmap; + + + + + virtual __declspec(nothrow) void __stdcall PushLayer( + const D2D1_LAYER_PARAMETERS1 *layerParameters, + ID2D1Layer *layer + ) = 0; + + using ID2D1RenderTarget::PushLayer; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall InvalidateEffectInputRectangle( + ID2D1Effect *effect, + UINT32 input, + const D2D1_RECT_F *inputRectangle + ) = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetEffectInvalidRectangleCount( + ID2D1Effect *effect, + UINT32 *rectangleCount + ) = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetEffectInvalidRectangles( + ID2D1Effect *effect, + D2D1_RECT_F *rectangles, + UINT32 rectanglesCount + ) = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetEffectRequiredInputRectangles( + ID2D1Effect *renderEffect, + const D2D1_RECT_F *renderImageRectangle, + const D2D1_EFFECT_INPUT_DESCRIPTION *inputDescriptions, + D2D1_RECT_F *requiredInputRects, + UINT32 inputCount + ) = 0; + + + + + + + virtual __declspec(nothrow) void __stdcall FillOpacityMask( + ID2D1Bitmap *opacityMask, + ID2D1Brush *brush, + const D2D1_RECT_F *destinationRectangle = 0, + const D2D1_RECT_F *sourceRectangle = 0 + ) = 0; + + using ID2D1RenderTarget::FillOpacityMask; + + __declspec(nothrow) + HRESULT + CreateBitmap( + D2D1_SIZE_U size, + const void *sourceData, + UINT32 pitch, + const D2D1_BITMAP_PROPERTIES1 &bitmapProperties, + ID2D1Bitmap1 **bitmap + ) + { + return CreateBitmap(size, sourceData, pitch, &bitmapProperties, bitmap); + } + + + + + __declspec(nothrow) + HRESULT + CreateBitmapFromWicBitmap( + IWICBitmapSource *wicBitmapSource, + const D2D1_BITMAP_PROPERTIES1 &bitmapProperties, + ID2D1Bitmap1 **bitmap + ) + { + return CreateBitmapFromWicBitmap(wicBitmapSource, &bitmapProperties, bitmap); + } + + + + + __declspec(nothrow) + HRESULT + CreateBitmapFromWicBitmap( + IWICBitmapSource *wicBitmapSource, + ID2D1Bitmap1 **bitmap + ) + { + return CreateBitmapFromWicBitmap(wicBitmapSource, 0, bitmap); + } + + __declspec(nothrow) + HRESULT + CreateBitmapFromDxgiSurface( + IDXGISurface *surface, + const D2D1_BITMAP_PROPERTIES1 &bitmapProperties, + ID2D1Bitmap1 **bitmap + ) + { + return CreateBitmapFromDxgiSurface(surface, &bitmapProperties, bitmap); + } + + __declspec(nothrow) + HRESULT + CreateImageBrush( + ID2D1Image *image, + const D2D1_IMAGE_BRUSH_PROPERTIES &imageBrushProperties, + const D2D1_BRUSH_PROPERTIES &brushProperties, + ID2D1ImageBrush **imageBrush + ) + { + return CreateImageBrush(image, &imageBrushProperties, &brushProperties, imageBrush); + } + + __declspec(nothrow) + HRESULT + CreateImageBrush( + ID2D1Image *image, + const D2D1_IMAGE_BRUSH_PROPERTIES &imageBrushProperties, + ID2D1ImageBrush **imageBrush + ) + { + return CreateImageBrush(image,&imageBrushProperties, 0, imageBrush); + } + + __declspec(nothrow) + HRESULT + CreateBitmapBrush( + ID2D1Bitmap *bitmap, + ID2D1BitmapBrush1 **bitmapBrush + ) + { + return CreateBitmapBrush(bitmap, 0, 0, bitmapBrush); + } + + __declspec(nothrow) + HRESULT + CreateBitmapBrush( + ID2D1Bitmap *bitmap, + const D2D1_BITMAP_BRUSH_PROPERTIES1 &bitmapBrushProperties, + ID2D1BitmapBrush1 **bitmapBrush + ) + { + return CreateBitmapBrush(bitmap, &bitmapBrushProperties, 0, bitmapBrush); + } + + __declspec(nothrow) + HRESULT + CreateBitmapBrush( + ID2D1Bitmap *bitmap, + const D2D1_BITMAP_BRUSH_PROPERTIES1 &bitmapBrushProperties, + const D2D1_BRUSH_PROPERTIES &brushProperties, + ID2D1BitmapBrush1 **bitmapBrush + ) + { + return CreateBitmapBrush(bitmap, &bitmapBrushProperties, &brushProperties, bitmapBrush); + } + + + + + __declspec(nothrow) + void + DrawImage( + ID2D1Effect *effect, + const D2D1_POINT_2F *targetOffset = 0, + const D2D1_RECT_F *imageRectangle = 0, + D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR, + D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER + ) + { + + ID2D1Image *output = 0; + effect->GetOutput(&output); + DrawImage(output, targetOffset, imageRectangle, interpolationMode, compositeMode); + output->Release(); + } + + __declspec(nothrow) + void + DrawImage( + ID2D1Image *image, + D2D1_INTERPOLATION_MODE interpolationMode, + D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER + ) + { + DrawImage(image, 0, 0, interpolationMode, compositeMode); + } + + __declspec(nothrow) + void + DrawImage( + ID2D1Effect *effect, + D2D1_INTERPOLATION_MODE interpolationMode, + D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER + ) + { + DrawImage(effect, 0, 0, interpolationMode, compositeMode); + } + + __declspec(nothrow) + void + DrawImage( + ID2D1Image *image, + D2D1_POINT_2F targetOffset, + D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR, + D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER + ) + { + DrawImage(image, &targetOffset, 0, interpolationMode, compositeMode); + } + + __declspec(nothrow) + void + DrawImage( + ID2D1Effect *effect, + D2D1_POINT_2F targetOffset, + D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR, + D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER + ) + { + DrawImage(effect, &targetOffset, 0, interpolationMode, compositeMode); + } + + __declspec(nothrow) + void + DrawImage( + ID2D1Image *image, + D2D1_POINT_2F targetOffset, + const D2D1_RECT_F &imageRectangle, + D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR, + D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER + ) + { + DrawImage(image, &targetOffset, &imageRectangle, interpolationMode, compositeMode); + } + + __declspec(nothrow) + void + DrawImage( + ID2D1Effect *effect, + D2D1_POINT_2F targetOffset, + const D2D1_RECT_F &imageRectangle, + D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR, + D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER + ) + { + DrawImage(effect, &targetOffset, &imageRectangle, interpolationMode, compositeMode); + } + + __declspec(nothrow) + void + PushLayer( + const D2D1_LAYER_PARAMETERS1 &layerParameters, + ID2D1Layer *layer + ) + { + PushLayer(&layerParameters, layer); + } + + __declspec(nothrow) + void + DrawGdiMetafile( + ID2D1GdiMetafile *gdiMetafile, + D2D1_POINT_2F targetOffset + ) + { + DrawGdiMetafile(gdiMetafile, &targetOffset); + } + + __declspec(nothrow) + void + DrawBitmap( + ID2D1Bitmap *bitmap, + const D2D1_RECT_F &destinationRectangle, + FLOAT opacity, + D2D1_INTERPOLATION_MODE interpolationMode, + const D2D1_RECT_F *sourceRectangle = 0, + const D2D1_MATRIX_4X4_F *perspectiveTransform = 0 + ) + { + DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform); + } + + __declspec(nothrow) + void + DrawBitmap( + ID2D1Bitmap *bitmap, + const D2D1_RECT_F &destinationRectangle, + FLOAT opacity, + D2D1_INTERPOLATION_MODE interpolationMode, + const D2D1_RECT_F &sourceRectangle, + const D2D1_MATRIX_4X4_F *perspectiveTransform = 0 + ) + { + DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, &sourceRectangle, perspectiveTransform); + } + + __declspec(nothrow) + void + DrawBitmap( + ID2D1Bitmap *bitmap, + const D2D1_RECT_F &destinationRectangle, + FLOAT opacity, + D2D1_INTERPOLATION_MODE interpolationMode, + const D2D1_RECT_F &sourceRectangle, + const D2D1_MATRIX_4X4_F &perspectiveTransform + ) + { + DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, &sourceRectangle, &perspectiveTransform); + } + + __declspec(nothrow) + void + FillOpacityMask( + ID2D1Bitmap *opacityMask, + ID2D1Brush *brush, + const D2D1_RECT_F &destinationRectangle, + const D2D1_RECT_F *sourceRectangle = 0 + ) + { + FillOpacityMask(opacityMask, brush, &destinationRectangle, sourceRectangle); + } + + __declspec(nothrow) + void + FillOpacityMask( + ID2D1Bitmap *opacityMask, + ID2D1Brush *brush, + const D2D1_RECT_F &destinationRectangle, + const D2D1_RECT_F &sourceRectangle + ) + { + FillOpacityMask(opacityMask, brush, &destinationRectangle, &sourceRectangle); + } + + + + + __declspec(nothrow) + void + SetRenderingControls( + const D2D1_RENDERING_CONTROLS &renderingControls + ) + { + return SetRenderingControls(&renderingControls); + } +}; + + + + + + +struct __declspec(uuid("47dd575d-ac05-4cdd-8049-9b02cd16f44c")) __declspec(novtable) ID2D1Device : public ID2D1Resource +{ + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateDeviceContext( + D2D1_DEVICE_CONTEXT_OPTIONS options, + ID2D1DeviceContext **deviceContext + ) = 0; + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreatePrintControl( + IWICImagingFactory *wicFactory, + IPrintDocumentPackageTarget *documentTarget, + const D2D1_PRINT_CONTROL_PROPERTIES *printControlProperties, + ID2D1PrintControl **printControl + ) = 0; + + + + + virtual __declspec(nothrow) void __stdcall SetMaximumTextureMemory( + UINT64 maximumInBytes + ) = 0; + + + + + virtual __declspec(nothrow) UINT64 __stdcall GetMaximumTextureMemory( + ) const = 0; + + + + + + virtual __declspec(nothrow) void __stdcall ClearResources( + UINT32 millisecondsSinceUse = 0 + ) = 0; + + __declspec(nothrow) + HRESULT + CreatePrintControl( + IWICImagingFactory *wicFactory, + IPrintDocumentPackageTarget *documentTarget, + const D2D1_PRINT_CONTROL_PROPERTIES &printControlProperties, + ID2D1PrintControl **printControl + ) + { + return CreatePrintControl(wicFactory, documentTarget, &printControlProperties, printControl); + } +}; + + + + + +struct __declspec(uuid("bb12d362-daee-4b9a-aa1d-14ba401cfa1f")) __declspec(novtable) ID2D1Factory1 : public ID2D1Factory +{ + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateDevice( + IDXGIDevice *dxgiDevice, + ID2D1Device **d2dDevice + ) = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateStrokeStyle( + const D2D1_STROKE_STYLE_PROPERTIES1 *strokeStyleProperties, + const FLOAT *dashes, + UINT32 dashesCount, + ID2D1StrokeStyle1 **strokeStyle + ) = 0; + + using ID2D1Factory::CreateStrokeStyle; + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreatePathGeometry( + ID2D1PathGeometry1 **pathGeometry + ) = 0; + + using ID2D1Factory::CreatePathGeometry; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateDrawingStateBlock( + const D2D1_DRAWING_STATE_DESCRIPTION1 *drawingStateDescription, + IDWriteRenderingParams *textRenderingParams, + ID2D1DrawingStateBlock1 **drawingStateBlock + ) = 0; + + using ID2D1Factory::CreateDrawingStateBlock; + + + + + virtual __declspec(nothrow) HRESULT __stdcall CreateGdiMetafile( + IStream *metafileStream, + ID2D1GdiMetafile **metafile + ) = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall RegisterEffectFromStream( + const IID & classId, + IStream *propertyXml, + const D2D1_PROPERTY_BINDING *bindings, + UINT32 bindingsCount, + const PD2D1_EFFECT_FACTORY effectFactory + ) = 0; + + + + + + virtual __declspec(nothrow) HRESULT __stdcall RegisterEffectFromString( + const IID & classId, + PCWSTR propertyXml, + const D2D1_PROPERTY_BINDING *bindings, + UINT32 bindingsCount, + const PD2D1_EFFECT_FACTORY effectFactory + ) = 0; + + + + + + + virtual __declspec(nothrow) HRESULT __stdcall UnregisterEffect( + const IID & classId + ) = 0; +# 2295 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1_1.h" + virtual __declspec(nothrow) HRESULT __stdcall GetRegisteredEffects( + CLSID *effects, + UINT32 effectsCount, + UINT32 *effectsReturned, + UINT32 *effectsRegistered + ) const = 0; + + + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetEffectProperties( + const IID & effectId, + ID2D1Properties **properties + ) const = 0; + + __declspec(nothrow) + HRESULT + CreateStrokeStyle( + const D2D1_STROKE_STYLE_PROPERTIES1 &strokeStyleProperties, + const FLOAT *dashes, + UINT32 dashesCount, + ID2D1StrokeStyle1 **strokeStyle + ) + { + return CreateStrokeStyle(&strokeStyleProperties, dashes, dashesCount, strokeStyle); + } + + __declspec(nothrow) + HRESULT + CreateDrawingStateBlock( + const D2D1_DRAWING_STATE_DESCRIPTION1 &drawingStateDescription, + ID2D1DrawingStateBlock1 **drawingStateBlock + ) + { + return CreateDrawingStateBlock(&drawingStateDescription, 0, drawingStateBlock); + } + + __declspec(nothrow) + HRESULT + CreateDrawingStateBlock( + ID2D1DrawingStateBlock1 **drawingStateBlock + ) + { + return CreateDrawingStateBlock(0, 0, drawingStateBlock); + } +}; + + + + + + +struct __declspec(uuid("31e6e7bc-e0ff-4d46-8c64-a0a8c41c15d3")) __declspec(novtable) ID2D1Multithread : public IUnknown +{ + + + + + + virtual __declspec(nothrow) BOOL __stdcall GetMultithreadProtected( + ) const = 0; + + + + + virtual __declspec(nothrow) void __stdcall Enter( + ) = 0; + + + + + virtual __declspec(nothrow) void __stdcall Leave( + ) = 0; +}; + + + + + + +extern "C" const IID IID_ID2D1GdiMetafileSink; +extern "C" const IID IID_ID2D1GdiMetafile; +extern "C" const IID IID_ID2D1CommandSink; +extern "C" const IID IID_ID2D1CommandList; +extern "C" const IID IID_ID2D1PrintControl; +extern "C" const IID IID_ID2D1ImageBrush; +extern "C" const IID IID_ID2D1BitmapBrush1; +extern "C" const IID IID_ID2D1StrokeStyle1; +extern "C" const IID IID_ID2D1PathGeometry1; +extern "C" const IID IID_ID2D1Properties; +extern "C" const IID IID_ID2D1Effect; +extern "C" const IID IID_ID2D1Bitmap1; +extern "C" const IID IID_ID2D1ColorContext; +extern "C" const IID IID_ID2D1GradientStopCollection1; +extern "C" const IID IID_ID2D1DrawingStateBlock1; +extern "C" const IID IID_ID2D1DeviceContext; +extern "C" const IID IID_ID2D1Device; +extern "C" const IID IID_ID2D1Factory1; +extern "C" const IID IID_ID2D1Multithread; +# 2443 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1_1.h" +extern "C" +{ + + + HRESULT __stdcall + D2D1CreateDevice( + IDXGIDevice *dxgiDevice, + const D2D1_CREATION_PROPERTIES *creationProperties, + ID2D1Device **d2dDevice + ); + + HRESULT __stdcall + D2D1CreateDeviceContext( + IDXGISurface *dxgiSurface, + const D2D1_CREATION_PROPERTIES *creationProperties, + ID2D1DeviceContext **d2dDeviceContext + ); + + D2D1_COLOR_F __stdcall + D2D1ConvertColorSpace( + D2D1_COLOR_SPACE sourceColorSpace, + D2D1_COLOR_SPACE destinationColorSpace, + const D2D1_COLOR_F* color + ); + + void __stdcall + D2D1SinCos( + FLOAT angle, + FLOAT *s, + FLOAT *c + ); + + FLOAT __stdcall + D2D1Tan( + FLOAT angle + ); + + FLOAT __stdcall + D2D1Vec3Length( + FLOAT x, + FLOAT y, + FLOAT z + ); + + +} + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1_1helper.h" 1 +# 29 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1_1helper.h" +namespace D2D1 +{ + template<> + struct TypeTraits + { + typedef D2D1_POINT_2L Point; + typedef D2D1_RECT_L Rect; + }; + + template<> + struct TypeTraits + { + typedef D2D1_POINT_2L Point; + typedef D2D1_RECT_L Rect; + }; + + class Matrix4x3F : public D2D1_MATRIX_4X3_F + { + public: + + __declspec(nothrow) + inline + Matrix4x3F( + FLOAT m11, FLOAT m12, FLOAT m13, + FLOAT m21, FLOAT m22, FLOAT m23, + FLOAT m31, FLOAT m32, FLOAT m33, + FLOAT m41, FLOAT m42, FLOAT m43 + ) + { + _11 = m11; + _12 = m12; + _13 = m13; + + _21 = m21; + _22 = m22; + _23 = m23; + + _31 = m31; + _32 = m32; + _33 = m33; + + _41 = m41; + _42 = m42; + _43 = m43; + } + + __declspec(nothrow) + inline + Matrix4x3F() + { + _11 = 1; + _12 = 0; + _13 = 0; + + _21 = 0; + _22 = 1; + _23 = 0; + + _31 = 0; + _32 = 0; + _33 = 1; + + _41 = 0; + _42 = 0; + _43 = 0; + } + }; + + class Matrix4x4F : public D2D1_MATRIX_4X4_F + { + public: + + __declspec(nothrow) + inline + Matrix4x4F( + FLOAT m11, FLOAT m12, FLOAT m13, FLOAT m14, + FLOAT m21, FLOAT m22, FLOAT m23, FLOAT m24, + FLOAT m31, FLOAT m32, FLOAT m33, FLOAT m34, + FLOAT m41, FLOAT m42, FLOAT m43, FLOAT m44 + ) + { + _11 = m11; + _12 = m12; + _13 = m13; + _14 = m14; + + _21 = m21; + _22 = m22; + _23 = m23; + _24 = m24; + + _31 = m31; + _32 = m32; + _33 = m33; + _34 = m34; + + _41 = m41; + _42 = m42; + _43 = m43; + _44 = m44; + } + + __declspec(nothrow) + inline + Matrix4x4F() + { + _11 = 1; + _12 = 0; + _13 = 0; + _14 = 0; + + _21 = 0; + _22 = 1; + _23 = 0; + _24 = 0; + + _31 = 0; + _32 = 0; + _33 = 1; + _34 = 0; + + _41 = 0; + _42 = 0; + _43 = 0; + _44 = 1; + } + + __declspec(nothrow) + inline + bool + operator==( + const Matrix4x4F& r + ) const + { + return _11 == r._11 && _12 == r._12 && _13 == r._13 && _14 == r._14 && + _21 == r._21 && _22 == r._22 && _23 == r._23 && _24 == r._24 && + _31 == r._31 && _32 == r._32 && _33 == r._33 && _34 == r._34 && + _41 == r._41 && _42 == r._42 && _43 == r._43 && _44 == r._44; + } + + __declspec(nothrow) + inline + bool + operator!=( + const Matrix4x4F& r + ) const + { + return !(*this == r); + } + + static + __declspec(nothrow) + inline + Matrix4x4F + Translation(FLOAT x, FLOAT y, FLOAT z) + { + Matrix4x4F translation; + + translation._11 = 1.0; translation._12 = 0.0; translation._13 = 0.0; translation._14 = 0.0; + translation._21 = 0.0; translation._22 = 1.0; translation._23 = 0.0; translation._24 = 0.0; + translation._31 = 0.0; translation._32 = 0.0; translation._33 = 1.0; translation._34 = 0.0; + translation._41 = x; translation._42 = y; translation._43 = z; translation._44 = 1.0; + + return translation; + } + + static + __declspec(nothrow) + inline + Matrix4x4F + Scale(FLOAT x, FLOAT y, FLOAT z) + { + Matrix4x4F scale; + + scale._11 = x; scale._12 = 0.0; scale._13 = 0.0; scale._14 = 0.0; + scale._21 = 0.0; scale._22 = y; scale._23 = 0.0; scale._24 = 0.0; + scale._31 = 0.0; scale._32 = 0.0; scale._33 = z; scale._34 = 0.0; + scale._41 = 0.0; scale._42 = 0.0; scale._43 = 0.0; scale._44 = 1.0; + + return scale; + } + + static + __declspec(nothrow) + inline + Matrix4x4F + RotationX(FLOAT degreeX) + { + FLOAT angleInRadian = degreeX * (3.141592654f / 180.0f); + + FLOAT sinAngle = 0.0; + FLOAT cosAngle = 0.0; + D2D1SinCos(angleInRadian, &sinAngle, &cosAngle); + + Matrix4x4F rotationX( + 1, 0, 0, 0, + 0, cosAngle, sinAngle, 0, + 0, -sinAngle, cosAngle, 0, + 0, 0, 0, 1 + ); + + return rotationX; + } + + static + __declspec(nothrow) + inline + Matrix4x4F + RotationY(FLOAT degreeY) + { + FLOAT angleInRadian = degreeY * (3.141592654f / 180.0f); + + FLOAT sinAngle = 0.0; + FLOAT cosAngle = 0.0; + D2D1SinCos(angleInRadian, &sinAngle, &cosAngle); + + Matrix4x4F rotationY( + cosAngle, 0, -sinAngle, 0, + 0, 1, 0, 0, + sinAngle, 0, cosAngle, 0, + 0, 0, 0, 1 + ); + + return rotationY; + } + + static + __declspec(nothrow) + inline + Matrix4x4F + RotationZ(FLOAT degreeZ) + { + FLOAT angleInRadian = degreeZ * (3.141592654f / 180.0f); + + FLOAT sinAngle = 0.0; + FLOAT cosAngle = 0.0; + D2D1SinCos(angleInRadian, &sinAngle, &cosAngle); + + Matrix4x4F rotationZ( + cosAngle, sinAngle, 0, 0, + -sinAngle, cosAngle, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 + ); + + return rotationZ; + } + + + + + static + __declspec(nothrow) + inline + Matrix4x4F + RotationArbitraryAxis(FLOAT x, FLOAT y, FLOAT z, FLOAT degree) + { + + FLOAT magnitude = D2D1Vec3Length(x, y, z); + x /= magnitude; + y /= magnitude; + z /= magnitude; + + FLOAT angleInRadian = degree * (3.141592654f / 180.0f); + + FLOAT sinAngle = 0.0; + FLOAT cosAngle = 0.0; + D2D1SinCos(angleInRadian, &sinAngle, &cosAngle); + + FLOAT oneMinusCosAngle = 1 - cosAngle; + + Matrix4x4F rotationArb( + 1 + oneMinusCosAngle * (x * x - 1), + z * sinAngle + oneMinusCosAngle * x * y, + -y * sinAngle + oneMinusCosAngle * x * z, + 0, + + -z * sinAngle + oneMinusCosAngle * y * x, + 1 + oneMinusCosAngle * (y * y - 1), + x * sinAngle + oneMinusCosAngle * y * z, + 0, + + y * sinAngle + oneMinusCosAngle * z * x, + -x * sinAngle + oneMinusCosAngle * z * y, + 1 + oneMinusCosAngle * (z * z - 1) , + 0, + + 0, 0, 0, 1 + ); + + return rotationArb; + } + + static + __declspec(nothrow) + inline + Matrix4x4F + SkewX(FLOAT degreeX) + { + FLOAT angleInRadian = degreeX * (3.141592654f / 180.0f); + + FLOAT tanAngle = D2D1Tan(angleInRadian); + + Matrix4x4F skewX( + 1, 0, 0, 0, + tanAngle, 1, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 + ); + + return skewX; + } + + static + __declspec(nothrow) + inline + Matrix4x4F + SkewY(FLOAT degreeY) + { + FLOAT angleInRadian = degreeY * (3.141592654f / 180.0f); + + FLOAT tanAngle = D2D1Tan(angleInRadian); + + Matrix4x4F skewY( + 1, tanAngle, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 + ); + + return skewY; + } + + + static + __declspec(nothrow) + inline + Matrix4x4F + PerspectiveProjection(FLOAT depth) + { + float proj = 0; + + if (depth > 0) + { + proj = -1/depth; + } + + Matrix4x4F projection( + 1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, proj, + 0, 0, 0, 1 + ); + + return projection; + } + + + + + + static + __declspec(nothrow) + inline + const Matrix4x4F* + ReinterpretBaseType(const D2D1_MATRIX_4X4_F *pMatrix) + { + return static_cast(pMatrix); + } + + static + __declspec(nothrow) + inline + Matrix4x4F* + ReinterpretBaseType(D2D1_MATRIX_4X4_F *pMatrix) + { + return static_cast(pMatrix); + } + + __declspec(nothrow) + inline + FLOAT + Determinant() const + { + FLOAT minor1 = _41 * (_12 * (_23 * _34 - _33 * _24) - _13 * (_22 * _34 - _24 * _32) + _14 * (_22 * _33 - _23 * _32)); + FLOAT minor2 = _42 * (_11 * (_21 * _34 - _31 * _24) - _13 * (_21 * _34 - _24 * _31) + _14 * (_21 * _33 - _23 * _31)); + FLOAT minor3 = _43 * (_11 * (_22 * _34 - _32 * _24) - _12 * (_21 * _34 - _24 * _31) + _14 * (_21 * _32 - _22 * _31)); + FLOAT minor4 = _44 * (_11 * (_22 * _33 - _32 * _23) - _12 * (_21 * _33 - _23 * _31) + _13 * (_21 * _32 - _22 * _31)); + + return minor1 - minor2 + minor3 - minor4; + } + + __declspec(nothrow) + inline + bool + IsIdentity() const + { + return _11 == 1.f && _12 == 0.f && _13 == 0.f && _14 == 0.f + && _21 == 0.f && _22 == 1.f && _23 == 0.f && _24 == 0.f + && _31 == 0.f && _32 == 0.f && _33 == 1.f && _34 == 0.f + && _41 == 0.f && _42 == 0.f && _43 == 0.f && _44 == 1.f; + } + + __declspec(nothrow) + inline + void + SetProduct(const Matrix4x4F &a, const Matrix4x4F &b) + { + _11 = a._11 * b._11 + a._12 * b._21 + a._13 * b._31 + a._14 * b._41; + _12 = a._11 * b._12 + a._12 * b._22 + a._13 * b._32 + a._14 * b._42; + _13 = a._11 * b._13 + a._12 * b._23 + a._13 * b._33 + a._14 * b._43; + _14 = a._11 * b._14 + a._12 * b._24 + a._13 * b._34 + a._14 * b._44; + + _21 = a._21 * b._11 + a._22 * b._21 + a._23 * b._31 + a._24 * b._41; + _22 = a._21 * b._12 + a._22 * b._22 + a._23 * b._32 + a._24 * b._42; + _23 = a._21 * b._13 + a._22 * b._23 + a._23 * b._33 + a._24 * b._43; + _24 = a._21 * b._14 + a._22 * b._24 + a._23 * b._34 + a._24 * b._44; + + _31 = a._31 * b._11 + a._32 * b._21 + a._33 * b._31 + a._34 * b._41; + _32 = a._31 * b._12 + a._32 * b._22 + a._33 * b._32 + a._34 * b._42; + _33 = a._31 * b._13 + a._32 * b._23 + a._33 * b._33 + a._34 * b._43; + _34 = a._31 * b._14 + a._32 * b._24 + a._33 * b._34 + a._34 * b._44; + + _41 = a._41 * b._11 + a._42 * b._21 + a._43 * b._31 + a._44 * b._41; + _42 = a._41 * b._12 + a._42 * b._22 + a._43 * b._32 + a._44 * b._42; + _43 = a._41 * b._13 + a._42 * b._23 + a._43 * b._33 + a._44 * b._43; + _44 = a._41 * b._14 + a._42 * b._24 + a._43 * b._34 + a._44 * b._44; + } + + __declspec(nothrow) + inline + Matrix4x4F + operator*(const Matrix4x4F &matrix) const + { + Matrix4x4F result; + + result.SetProduct(*this, matrix); + + return result; + } + }; + + + class Matrix5x4F : public D2D1_MATRIX_5X4_F + { + public: + + __declspec(nothrow) + inline + Matrix5x4F( + FLOAT m11, FLOAT m12, FLOAT m13, FLOAT m14, + FLOAT m21, FLOAT m22, FLOAT m23, FLOAT m24, + FLOAT m31, FLOAT m32, FLOAT m33, FLOAT m34, + FLOAT m41, FLOAT m42, FLOAT m43, FLOAT m44, + FLOAT m51, FLOAT m52, FLOAT m53, FLOAT m54 + ) + { + _11 = m11; + _12 = m12; + _13 = m13; + _14 = m14; + + _21 = m21; + _22 = m22; + _23 = m23; + _24 = m24; + + _31 = m31; + _32 = m32; + _33 = m33; + _34 = m34; + + _41 = m41; + _42 = m42; + _43 = m43; + _44 = m44; + + _51 = m51; + _52 = m52; + _53 = m53; + _54 = m54; + } + + __declspec(nothrow) + inline + Matrix5x4F() + { + _11 = 1; + _12 = 0; + _13 = 0; + _14 = 0; + + _21 = 0; + _22 = 1; + _23 = 0; + _24 = 0; + + _31 = 0; + _32 = 0; + _33 = 1; + _34 = 0; + + _41 = 0; + _42 = 0; + _43 = 0; + _44 = 1; + + _51 = 0; + _52 = 0; + _53 = 0; + _54 = 0; + } + }; + + __declspec(nothrow) + inline + D2D1_COLOR_F + ConvertColorSpace( + D2D1_COLOR_SPACE sourceColorSpace, + D2D1_COLOR_SPACE destinationColorSpace, + const D2D1_COLOR_F& color + ) + { + return D2D1ConvertColorSpace( + sourceColorSpace, + destinationColorSpace, + &color + ); + } + + __declspec(nothrow) + __forceinline + D2D1_DRAWING_STATE_DESCRIPTION1 + DrawingStateDescription1( + D2D1_ANTIALIAS_MODE antialiasMode = D2D1_ANTIALIAS_MODE_PER_PRIMITIVE, + D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode = D2D1_TEXT_ANTIALIAS_MODE_DEFAULT, + D2D1_TAG tag1 = 0, + D2D1_TAG tag2 = 0, + const D2D1_MATRIX_3X2_F &transform = D2D1::IdentityMatrix(), + D2D1_PRIMITIVE_BLEND primitiveBlend = D2D1_PRIMITIVE_BLEND_SOURCE_OVER, + D2D1_UNIT_MODE unitMode = D2D1_UNIT_MODE_DIPS + ) + { + D2D1_DRAWING_STATE_DESCRIPTION1 drawingStateDescription1; + + drawingStateDescription1.antialiasMode = antialiasMode; + drawingStateDescription1.textAntialiasMode = textAntialiasMode; + drawingStateDescription1.tag1 = tag1; + drawingStateDescription1.tag2 = tag2; + drawingStateDescription1.transform = transform; + drawingStateDescription1.primitiveBlend = primitiveBlend; + drawingStateDescription1.unitMode = unitMode; + + return drawingStateDescription1; + } + + __declspec(nothrow) + __forceinline + D2D1_DRAWING_STATE_DESCRIPTION1 + DrawingStateDescription1( + const D2D1_DRAWING_STATE_DESCRIPTION &desc, + D2D1_PRIMITIVE_BLEND primitiveBlend = D2D1_PRIMITIVE_BLEND_SOURCE_OVER, + D2D1_UNIT_MODE unitMode = D2D1_UNIT_MODE_DIPS + ) + { + D2D1_DRAWING_STATE_DESCRIPTION1 drawingStateDescription1; + + drawingStateDescription1.antialiasMode = desc.antialiasMode; + drawingStateDescription1.textAntialiasMode = desc.textAntialiasMode; + drawingStateDescription1.tag1 = desc.tag1; + drawingStateDescription1.tag2 = desc.tag2; + drawingStateDescription1.transform = desc.transform; + drawingStateDescription1.primitiveBlend = primitiveBlend; + drawingStateDescription1.unitMode = unitMode; + + return drawingStateDescription1; + } + + __declspec(nothrow) + __forceinline + D2D1_BITMAP_PROPERTIES1 + BitmapProperties1( + D2D1_BITMAP_OPTIONS bitmapOptions = D2D1_BITMAP_OPTIONS_NONE, + const D2D1_PIXEL_FORMAT pixelFormat = D2D1::PixelFormat(), + FLOAT dpiX = 96.0f, + FLOAT dpiY = 96.0f, + ID2D1ColorContext *colorContext = 0 + ) + { + D2D1_BITMAP_PROPERTIES1 bitmapProperties = + { + pixelFormat, + dpiX, dpiY, + bitmapOptions, + colorContext + }; + + return bitmapProperties; + } + + __declspec(nothrow) + __forceinline + D2D1_LAYER_PARAMETERS1 + LayerParameters1( + const D2D1_RECT_F &contentBounds = D2D1::InfiniteRect(), + ID2D1Geometry *geometricMask = 0, + D2D1_ANTIALIAS_MODE maskAntialiasMode = D2D1_ANTIALIAS_MODE_PER_PRIMITIVE, + D2D1_MATRIX_3X2_F maskTransform = D2D1::IdentityMatrix(), + FLOAT opacity = 1.0, + ID2D1Brush *opacityBrush = 0, + D2D1_LAYER_OPTIONS1 layerOptions = D2D1_LAYER_OPTIONS1_NONE + ) + { + D2D1_LAYER_PARAMETERS1 layerParameters = { 0 }; + + layerParameters.contentBounds = contentBounds; + layerParameters.geometricMask = geometricMask; + layerParameters.maskAntialiasMode = maskAntialiasMode; + layerParameters.maskTransform = maskTransform; + layerParameters.opacity = opacity; + layerParameters.opacityBrush = opacityBrush; + layerParameters.layerOptions = layerOptions; + + return layerParameters; + } + + __declspec(nothrow) + __forceinline + D2D1_STROKE_STYLE_PROPERTIES1 + StrokeStyleProperties1( + D2D1_CAP_STYLE startCap = D2D1_CAP_STYLE_FLAT, + D2D1_CAP_STYLE endCap = D2D1_CAP_STYLE_FLAT, + D2D1_CAP_STYLE dashCap = D2D1_CAP_STYLE_FLAT, + D2D1_LINE_JOIN lineJoin = D2D1_LINE_JOIN_MITER, + FLOAT miterLimit = 10.0f, + D2D1_DASH_STYLE dashStyle = D2D1_DASH_STYLE_SOLID, + FLOAT dashOffset = 0.0f, + D2D1_STROKE_TRANSFORM_TYPE transformType = D2D1_STROKE_TRANSFORM_TYPE_NORMAL + ) + { + D2D1_STROKE_STYLE_PROPERTIES1 strokeStyleProperties; + + strokeStyleProperties.startCap = startCap; + strokeStyleProperties.endCap = endCap; + strokeStyleProperties.dashCap = dashCap; + strokeStyleProperties.lineJoin = lineJoin; + strokeStyleProperties.miterLimit = miterLimit; + strokeStyleProperties.dashStyle = dashStyle; + strokeStyleProperties.dashOffset = dashOffset; + strokeStyleProperties.transformType = transformType; + + return strokeStyleProperties; + } + + __declspec(nothrow) + __forceinline + D2D1_IMAGE_BRUSH_PROPERTIES + ImageBrushProperties( + D2D1_RECT_F sourceRectangle, + D2D1_EXTEND_MODE extendModeX = D2D1_EXTEND_MODE_CLAMP, + D2D1_EXTEND_MODE extendModeY = D2D1_EXTEND_MODE_CLAMP, + D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR + ) + { + D2D1_IMAGE_BRUSH_PROPERTIES imageBrushProperties; + + imageBrushProperties.extendModeX = extendModeX; + imageBrushProperties.extendModeY = extendModeY; + imageBrushProperties.interpolationMode = interpolationMode; + imageBrushProperties.sourceRectangle = sourceRectangle; + + return imageBrushProperties; + } + + __declspec(nothrow) + __forceinline + D2D1_BITMAP_BRUSH_PROPERTIES1 + BitmapBrushProperties1( + D2D1_EXTEND_MODE extendModeX = D2D1_EXTEND_MODE_CLAMP, + D2D1_EXTEND_MODE extendModeY = D2D1_EXTEND_MODE_CLAMP, + D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR + ) + { + D2D1_BITMAP_BRUSH_PROPERTIES1 bitmapBrush1Properties; + + bitmapBrush1Properties.extendModeX = extendModeX; + bitmapBrush1Properties.extendModeY = extendModeY; + bitmapBrush1Properties.interpolationMode = interpolationMode; + + return bitmapBrush1Properties; + } + + __declspec(nothrow) + __forceinline + D2D1_PRINT_CONTROL_PROPERTIES + PrintControlProperties( + D2D1_PRINT_FONT_SUBSET_MODE fontSubsetMode = D2D1_PRINT_FONT_SUBSET_MODE_DEFAULT, + FLOAT rasterDpi = 150.0f, + D2D1_COLOR_SPACE colorSpace = D2D1_COLOR_SPACE_SRGB + ) + { + D2D1_PRINT_CONTROL_PROPERTIES printControlProps; + + printControlProps.fontSubset = fontSubsetMode; + printControlProps.rasterDPI = rasterDpi; + printControlProps.colorSpace = colorSpace; + + return printControlProps; + } + + __declspec(nothrow) + __forceinline + D2D1_RENDERING_CONTROLS + RenderingControls( + D2D1_BUFFER_PRECISION bufferPrecision, + D2D1_SIZE_U tileSize + ) + { + D2D1_RENDERING_CONTROLS renderingControls; + + renderingControls.bufferPrecision = bufferPrecision; + renderingControls.tileSize = tileSize; + + return renderingControls; + } + + __declspec(nothrow) + __forceinline + D2D1_EFFECT_INPUT_DESCRIPTION + EffectInputDescription( + ID2D1Effect *effect, + UINT32 inputIndex, + D2D1_RECT_F inputRectangle + ) + { + D2D1_EFFECT_INPUT_DESCRIPTION description; + + description.effect = effect; + description.inputIndex = inputIndex; + description.inputRectangle = inputRectangle; + + return description; + } + + __declspec(nothrow) + __forceinline + D2D1_CREATION_PROPERTIES + CreationProperties( + D2D1_THREADING_MODE threadingMode, + D2D1_DEBUG_LEVEL debugLevel, + D2D1_DEVICE_CONTEXT_OPTIONS options + ) + { + D2D1_CREATION_PROPERTIES creationProperties; + + creationProperties.threadingMode = threadingMode; + creationProperties.debugLevel = debugLevel; + creationProperties.options = options; + + return creationProperties; + } + + __declspec(nothrow) + __forceinline + D2D1_VECTOR_2F + Vector2F( + FLOAT x = 0.0f, + FLOAT y = 0.0f + ) + { + D2D1_VECTOR_2F vec2 = {x, y}; + return vec2; + } + + __declspec(nothrow) + __forceinline + D2D1_VECTOR_3F + Vector3F( + FLOAT x = 0.0f, + FLOAT y = 0.0f, + FLOAT z = 0.0f + ) + { + D2D1_VECTOR_3F vec3 = {x, y, z}; + return vec3; + } + + __declspec(nothrow) + __forceinline + D2D1_VECTOR_4F + Vector4F( + FLOAT x = 0.0f, + FLOAT y = 0.0f, + FLOAT z = 0.0f, + FLOAT w = 0.0f + ) + { + D2D1_VECTOR_4F vec4 = {x, y, z, w}; + return vec4; + } + + __declspec(nothrow) + __forceinline + D2D1_POINT_2L + Point2L( + INT32 x = 0, + INT32 y = 0 + ) + { + return Point2(x, y); + } + + __declspec(nothrow) + __forceinline + D2D1_RECT_L + RectL( + INT32 left = 0.f, + INT32 top = 0.f, + INT32 right = 0.f, + INT32 bottom = 0.f + ) + { + return Rect(left, top, right, bottom); + } + + + + + + __declspec(nothrow) + __forceinline + HRESULT + SetDpiCompensatedEffectInput( + ID2D1DeviceContext *deviceContext, + ID2D1Effect *effect, + UINT32 inputIndex, + ID2D1Bitmap *inputBitmap, + D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR, + D2D1_BORDER_MODE borderMode = D2D1_BORDER_MODE_HARD + ) + { + HRESULT hr = ((HRESULT)0L); + ID2D1Effect *dpiCompensationEffect = 0; + + if (!inputBitmap) + { + effect->SetInput(inputIndex, 0); + return hr; + } + + hr = deviceContext->CreateEffect(CLSID_D2D1DpiCompensation, &dpiCompensationEffect); + + if ((((HRESULT)(hr)) >= 0)) + { + if ((((HRESULT)(hr)) >= 0)) + { + dpiCompensationEffect->SetInput(0, inputBitmap); + + D2D1_POINT_2F bitmapDpi; + inputBitmap->GetDpi(&bitmapDpi.x, &bitmapDpi.y); + hr = dpiCompensationEffect->SetValue(D2D1_DPICOMPENSATION_PROP_INPUT_DPI, bitmapDpi); + } + + if ((((HRESULT)(hr)) >= 0)) + { + hr = dpiCompensationEffect->SetValue(D2D1_DPICOMPENSATION_PROP_INTERPOLATION_MODE, interpolationMode); + } + + if ((((HRESULT)(hr)) >= 0)) + { + hr = dpiCompensationEffect->SetValue(D2D1_DPICOMPENSATION_PROP_BORDER_MODE, borderMode); + } + + if ((((HRESULT)(hr)) >= 0)) + { + effect->SetInputEffect(inputIndex, dpiCompensationEffect); + } + + if (dpiCompensationEffect) + { + dpiCompensationEffect->Release(); + } + } + + return hr; + } + +} +# 2491 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\d2d1_1.h" 2 + + + + + +inline HRESULT +D2D1CreateDevice( + IDXGIDevice *dxgiDevice, + const D2D1_CREATION_PROPERTIES &creationProperties, + ID2D1Device **d2dDevice + ) +{ + + return + D2D1CreateDevice( + dxgiDevice, + &creationProperties, + d2dDevice); +} + +inline HRESULT +D2D1CreateDeviceContext( + IDXGISurface *dxgiSurface, + const D2D1_CREATION_PROPERTIES &creationProperties, + ID2D1DeviceContext **d2dDeviceContext + ) +{ + return + D2D1CreateDeviceContext( + dxgiSurface, + &creationProperties, + d2dDeviceContext); +} +# 4 "D:/directui/DirectUI/UiD2d.h" 2 + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" 1 +# 37 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" +enum DWRITE_FONT_FILE_TYPE +{ + + + + DWRITE_FONT_FILE_TYPE_UNKNOWN, + + + + + DWRITE_FONT_FILE_TYPE_CFF, + + + + + DWRITE_FONT_FILE_TYPE_TRUETYPE, + + + + + DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION, + + + + + DWRITE_FONT_FILE_TYPE_TYPE1_PFM, + + + + + DWRITE_FONT_FILE_TYPE_TYPE1_PFB, + + + + + DWRITE_FONT_FILE_TYPE_VECTOR, + + + + + DWRITE_FONT_FILE_TYPE_BITMAP, + + + DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION, +}; + + + + + + +enum DWRITE_FONT_FACE_TYPE +{ + + + + DWRITE_FONT_FACE_TYPE_CFF, + + + + + DWRITE_FONT_FACE_TYPE_TRUETYPE, + + + + + DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION, + + + + + DWRITE_FONT_FACE_TYPE_TYPE1, + + + + + DWRITE_FONT_FACE_TYPE_VECTOR, + + + + + DWRITE_FONT_FACE_TYPE_BITMAP, + + + + + DWRITE_FONT_FACE_TYPE_UNKNOWN, + + + + + + + + DWRITE_FONT_FACE_TYPE_RAW_CFF, + + + DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION, +}; + + + + + +enum DWRITE_FONT_SIMULATIONS +{ + + + + DWRITE_FONT_SIMULATIONS_NONE = 0x0000, + + + + + DWRITE_FONT_SIMULATIONS_BOLD = 0x0001, + + + + + DWRITE_FONT_SIMULATIONS_OBLIQUE = 0x0002 +}; + + +extern "C++" { inline constexpr DWRITE_FONT_SIMULATIONS operator | (DWRITE_FONT_SIMULATIONS a, DWRITE_FONT_SIMULATIONS b) throw() { return DWRITE_FONT_SIMULATIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline DWRITE_FONT_SIMULATIONS &operator |= (DWRITE_FONT_SIMULATIONS &a, DWRITE_FONT_SIMULATIONS b) throw() { return (DWRITE_FONT_SIMULATIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr DWRITE_FONT_SIMULATIONS operator & (DWRITE_FONT_SIMULATIONS a, DWRITE_FONT_SIMULATIONS b) throw() { return DWRITE_FONT_SIMULATIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline DWRITE_FONT_SIMULATIONS &operator &= (DWRITE_FONT_SIMULATIONS &a, DWRITE_FONT_SIMULATIONS b) throw() { return (DWRITE_FONT_SIMULATIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr DWRITE_FONT_SIMULATIONS operator ~ (DWRITE_FONT_SIMULATIONS a) throw() { return DWRITE_FONT_SIMULATIONS(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr DWRITE_FONT_SIMULATIONS operator ^ (DWRITE_FONT_SIMULATIONS a, DWRITE_FONT_SIMULATIONS b) throw() { return DWRITE_FONT_SIMULATIONS(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline DWRITE_FONT_SIMULATIONS &operator ^= (DWRITE_FONT_SIMULATIONS &a, DWRITE_FONT_SIMULATIONS b) throw() { return (DWRITE_FONT_SIMULATIONS &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; + + + + + + +enum DWRITE_FONT_WEIGHT +{ + + + + DWRITE_FONT_WEIGHT_THIN = 100, + + + + + DWRITE_FONT_WEIGHT_EXTRA_LIGHT = 200, + + + + + DWRITE_FONT_WEIGHT_ULTRA_LIGHT = 200, + + + + + DWRITE_FONT_WEIGHT_LIGHT = 300, + + + + + DWRITE_FONT_WEIGHT_SEMI_LIGHT = 350, + + + + + DWRITE_FONT_WEIGHT_NORMAL = 400, + + + + + DWRITE_FONT_WEIGHT_REGULAR = 400, + + + + + DWRITE_FONT_WEIGHT_MEDIUM = 500, + + + + + DWRITE_FONT_WEIGHT_DEMI_BOLD = 600, + + + + + DWRITE_FONT_WEIGHT_SEMI_BOLD = 600, + + + + + DWRITE_FONT_WEIGHT_BOLD = 700, + + + + + DWRITE_FONT_WEIGHT_EXTRA_BOLD = 800, + + + + + DWRITE_FONT_WEIGHT_ULTRA_BOLD = 800, + + + + + DWRITE_FONT_WEIGHT_BLACK = 900, + + + + + DWRITE_FONT_WEIGHT_HEAVY = 900, + + + + + DWRITE_FONT_WEIGHT_EXTRA_BLACK = 950, + + + + + DWRITE_FONT_WEIGHT_ULTRA_BLACK = 950 +}; + + + + + + +enum DWRITE_FONT_STRETCH +{ + + + + DWRITE_FONT_STRETCH_UNDEFINED = 0, + + + + + DWRITE_FONT_STRETCH_ULTRA_CONDENSED = 1, + + + + + DWRITE_FONT_STRETCH_EXTRA_CONDENSED = 2, + + + + + DWRITE_FONT_STRETCH_CONDENSED = 3, + + + + + DWRITE_FONT_STRETCH_SEMI_CONDENSED = 4, + + + + + DWRITE_FONT_STRETCH_NORMAL = 5, + + + + + DWRITE_FONT_STRETCH_MEDIUM = 5, + + + + + DWRITE_FONT_STRETCH_SEMI_EXPANDED = 6, + + + + + DWRITE_FONT_STRETCH_EXPANDED = 7, + + + + + DWRITE_FONT_STRETCH_EXTRA_EXPANDED = 8, + + + + + DWRITE_FONT_STRETCH_ULTRA_EXPANDED = 9 +}; + + + + + +enum DWRITE_FONT_STYLE +{ + + + + DWRITE_FONT_STYLE_NORMAL, + + + + + DWRITE_FONT_STYLE_OBLIQUE, + + + + + DWRITE_FONT_STYLE_ITALIC + +}; + + + + +enum DWRITE_INFORMATIONAL_STRING_ID +{ + + + + DWRITE_INFORMATIONAL_STRING_NONE, + + + + + DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE, + + + + + DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS, + + + + + DWRITE_INFORMATIONAL_STRING_TRADEMARK, + + + + + DWRITE_INFORMATIONAL_STRING_MANUFACTURER, + + + + + DWRITE_INFORMATIONAL_STRING_DESIGNER, + + + + + DWRITE_INFORMATIONAL_STRING_DESIGNER_URL, + + + + + DWRITE_INFORMATIONAL_STRING_DESCRIPTION, + + + + + DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL, + + + + + DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION, + + + + + DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL, + + + + + + DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES, + + + + + DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES, + + + + + + DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES, + + + + + DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES, + + + + + DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT, + + + + + DWRITE_INFORMATIONAL_STRING_FULL_NAME, + + + + + DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME, + + + + + DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME, + + + + + DWRITE_INFORMATIONAL_STRING_WWS_FAMILY_NAME, + + + + + + + DWRITE_INFORMATIONAL_STRING_DESIGN_SCRIPT_LANGUAGE_TAG, + + + + + + DWRITE_INFORMATIONAL_STRING_SUPPORTED_SCRIPT_LANGUAGE_TAG, +}; + + + + + + +struct DWRITE_FONT_METRICS +{ +# 477 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + UINT16 designUnitsPerEm; + + + + + + UINT16 ascent; + + + + + + UINT16 descent; +# 498 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + INT16 lineGap; + + + + + + + UINT16 capHeight; + + + + + + UINT16 xHeight; + + + + + + + INT16 underlinePosition; + + + + + UINT16 underlineThickness; + + + + + + + INT16 strikethroughPosition; + + + + + UINT16 strikethroughThickness; +}; + + + + + +struct DWRITE_GLYPH_METRICS +{ + + + + + + INT32 leftSideBearing; + + + + + UINT32 advanceWidth; + + + + + + INT32 rightSideBearing; + + + + + + INT32 topSideBearing; + + + + + + + + UINT32 advanceHeight; + + + + + + + INT32 bottomSideBearing; + + + + + + + INT32 verticalOriginY; +}; + + + + + +struct DWRITE_GLYPH_OFFSET +{ + + + + + FLOAT advanceOffset; + + + + + + FLOAT ascenderOffset; +}; +# 620 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" +enum DWRITE_FACTORY_TYPE +{ + + + + + DWRITE_FACTORY_TYPE_SHARED, + + + + + DWRITE_FACTORY_TYPE_ISOLATED +}; +# 649 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" +struct IDWriteFontFileStream; +# 660 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" +struct __declspec(uuid("727cad4e-d6af-4c9e-8a08-d695b11caa49")) __declspec(novtable) IDWriteFontFileLoader : public IUnknown +{ +# 673 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateStreamFromKey( + void const* fontFileReferenceKey, + UINT32 fontFileReferenceKeySize, + IDWriteFontFileStream** fontFileStream + ) = 0; +}; + + + + + + +struct __declspec(uuid("b2d9f3ec-c9fe-4a11-a2ec-d86208f7c0a2")) __declspec(novtable) IDWriteLocalFontFileLoader : public IDWriteFontFileLoader +{ +# 697 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFilePathLengthFromKey( + void const* fontFileReferenceKey, + UINT32 fontFileReferenceKeySize, + UINT32* filePathLength + ) = 0; +# 714 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFilePathFromKey( + void const* fontFileReferenceKey, + UINT32 fontFileReferenceKeySize, + WCHAR* filePath, + UINT32 filePathSize + ) = 0; +# 731 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetLastWriteTimeFromKey( + void const* fontFileReferenceKey, + UINT32 fontFileReferenceKeySize, + FILETIME* lastWriteTime + ) = 0; +}; + + + + +struct __declspec(uuid("6d4865fe-0ab8-4d91-8f62-5dd6be34a3e0")) __declspec(novtable) IDWriteFontFileStream : public IUnknown +{ +# 757 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall ReadFileFragment( + void const** fragmentStart, + UINT64 fileOffset, + UINT64 fragmentSize, + void** fragmentContext + ) = 0; + + + + + + virtual __declspec(nothrow) void __stdcall ReleaseFileFragment( + void* fragmentContext + ) = 0; +# 785 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFileSize( + UINT64* fileSize + ) = 0; +# 799 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetLastWriteTime( + UINT64* lastWriteTime + ) = 0; +}; + + + + +struct __declspec(uuid("739d886a-cef5-47dc-8769-1a8b41bebbb0")) __declspec(novtable) IDWriteFontFile : public IUnknown +{ +# 818 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetReferenceKey( + void const** fontFileReferenceKey, + UINT32* fontFileReferenceKeySize + ) = 0; +# 830 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetLoader( + IDWriteFontFileLoader** fontFileLoader + ) = 0; +# 853 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall Analyze( + BOOL* isSupportedFontType, + DWRITE_FONT_FILE_TYPE* fontFileType, + DWRITE_FONT_FACE_TYPE* fontFaceType, + UINT32* numberOfFaces + ) = 0; +}; + + + + + + +enum DWRITE_PIXEL_GEOMETRY +{ + + + + DWRITE_PIXEL_GEOMETRY_FLAT, + + + + + + DWRITE_PIXEL_GEOMETRY_RGB, + + + + + + DWRITE_PIXEL_GEOMETRY_BGR +}; + + + + + + +enum DWRITE_RENDERING_MODE +{ + + + + DWRITE_RENDERING_MODE_DEFAULT, + + + + + + DWRITE_RENDERING_MODE_ALIASED, + + + + + + + + DWRITE_RENDERING_MODE_GDI_CLASSIC, +# 919 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + DWRITE_RENDERING_MODE_GDI_NATURAL, + + + + + + + + DWRITE_RENDERING_MODE_NATURAL, + + + + + + + + DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC, + + + + + + DWRITE_RENDERING_MODE_OUTLINE, + + + + + DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC = DWRITE_RENDERING_MODE_GDI_CLASSIC, + DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL = DWRITE_RENDERING_MODE_GDI_NATURAL, + DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL = DWRITE_RENDERING_MODE_NATURAL, + DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC +}; + + + + + +struct DWRITE_MATRIX +{ + + + + FLOAT m11; + + + + + FLOAT m12; + + + + + FLOAT m21; + + + + + FLOAT m22; + + + + + FLOAT dx; + + + + + FLOAT dy; +}; + + + + +struct __declspec(uuid("2f0da53a-2add-47cd-82ee-d9ec34688e75")) __declspec(novtable) IDWriteRenderingParams : public IUnknown +{ + + + + + virtual __declspec(nothrow) FLOAT __stdcall GetGamma() = 0; + + + + + + virtual __declspec(nothrow) FLOAT __stdcall GetEnhancedContrast() = 0; + + + + + + virtual __declspec(nothrow) FLOAT __stdcall GetClearTypeLevel() = 0; + + + + + virtual __declspec(nothrow) DWRITE_PIXEL_GEOMETRY __stdcall GetPixelGeometry() = 0; + + + + + virtual __declspec(nothrow) DWRITE_RENDERING_MODE __stdcall GetRenderingMode() = 0; +}; + + +struct ID2D1SimplifiedGeometrySink; + +typedef ID2D1SimplifiedGeometrySink IDWriteGeometrySink; + + + + + + +struct __declspec(uuid("5f49804d-7024-4d43-bfa9-d25984f53849")) __declspec(novtable) IDWriteFontFace : public IUnknown +{ + + + + virtual __declspec(nothrow) DWRITE_FONT_FACE_TYPE __stdcall GetType() = 0; +# 1051 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFiles( + UINT32* numberOfFiles, + IDWriteFontFile** fontFiles + ) = 0; + + + + + + virtual __declspec(nothrow) UINT32 __stdcall GetIndex() = 0; + + + + + virtual __declspec(nothrow) DWRITE_FONT_SIMULATIONS __stdcall GetSimulations() = 0; + + + + + virtual __declspec(nothrow) BOOL __stdcall IsSymbolFont() = 0; + + + + + + + + virtual __declspec(nothrow) void __stdcall GetMetrics( + DWRITE_FONT_METRICS* fontFaceMetrics + ) = 0; + + + + + virtual __declspec(nothrow) UINT16 __stdcall GetGlyphCount() = 0; +# 1101 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetDesignGlyphMetrics( + UINT16 const* glyphIndices, + UINT32 glyphCount, + DWRITE_GLYPH_METRICS* glyphMetrics, + BOOL isSideways = 0 + ) = 0; +# 1122 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetGlyphIndicesW( + UINT32 const* codePoints, + UINT32 codePointCount, + UINT16* glyphIndices + ) = 0; +# 1162 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall TryGetFontTable( + UINT32 openTypeTableTag, + const void** tableData, + UINT32* tableSize, + void** tableContext, + BOOL* exists + ) = 0; + + + + + + virtual __declspec(nothrow) void __stdcall ReleaseFontTable( + void* tableContext + ) = 0; +# 1195 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetGlyphRunOutline( + FLOAT emSize, + UINT16 const* glyphIndices, + FLOAT const* glyphAdvances, + DWRITE_GLYPH_OFFSET const* glyphOffsets, + UINT32 glyphCount, + BOOL isSideways, + BOOL isRightToLeft, + IDWriteGeometrySink* geometrySink + ) = 0; +# 1225 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetRecommendedRenderingMode( + FLOAT emSize, + FLOAT pixelsPerDip, + DWRITE_MEASURING_MODE measuringMode, + IDWriteRenderingParams* renderingParams, + DWRITE_RENDERING_MODE* renderingMode + ) = 0; +# 1244 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetGdiCompatibleMetrics( + FLOAT emSize, + FLOAT pixelsPerDip, + DWRITE_MATRIX const* transform, + DWRITE_FONT_METRICS* fontFaceMetrics + ) = 0; +# 1276 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetGdiCompatibleGlyphMetrics( + FLOAT emSize, + FLOAT pixelsPerDip, + DWRITE_MATRIX const* transform, + BOOL useGdiNatural, + UINT16 const* glyphIndices, + UINT32 glyphCount, + DWRITE_GLYPH_METRICS* glyphMetrics, + BOOL isSideways = 0 + ) = 0; +}; + + +struct IDWriteFactory; +struct IDWriteFontFileEnumerator; +# 1301 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" +struct __declspec(uuid("cca920e4-52f0-492b-bfa8-29c72ee0a468")) __declspec(novtable) IDWriteFontCollectionLoader : public IUnknown +{ +# 1315 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateEnumeratorFromKey( + IDWriteFactory* factory, + void const* collectionKey, + UINT32 collectionKeySize, + IDWriteFontFileEnumerator** fontFileEnumerator + ) = 0; +}; + + + + + +struct __declspec(uuid("72755049-5ff7-435d-8348-4be97cfa6c7c")) __declspec(novtable) IDWriteFontFileEnumerator : public IUnknown +{ +# 1338 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall MoveNext( + BOOL* hasCurrentFile + ) = 0; +# 1349 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetCurrentFontFile( + IDWriteFontFile** fontFile + ) = 0; +}; + + + + +struct __declspec(uuid("08256209-099a-4b34-b86d-c22b110e7771")) __declspec(novtable) IDWriteLocalizedStrings : public IUnknown +{ + + + + virtual __declspec(nothrow) UINT32 __stdcall GetCount() = 0; +# 1374 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall FindLocaleName( + WCHAR const* localeName, + UINT32* index, + BOOL* exists + ) = 0; +# 1388 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetLocaleNameLength( + UINT32 index, + UINT32* length + ) = 0; +# 1403 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetLocaleName( + UINT32 index, + WCHAR* localeName, + UINT32 size + ) = 0; +# 1417 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetStringLength( + UINT32 index, + UINT32* length + ) = 0; +# 1432 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetString( + UINT32 index, + WCHAR* stringBuffer, + UINT32 size + ) = 0; +}; + +struct IDWriteFontFamily; +struct IDWriteFont; + + + + +struct __declspec(uuid("a84cee02-3eea-4eee-a827-87c1a02a0fcc")) __declspec(novtable) IDWriteFontCollection : public IUnknown +{ + + + + virtual __declspec(nothrow) UINT32 __stdcall GetFontFamilyCount() = 0; +# 1460 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFontFamily( + UINT32 index, + IDWriteFontFamily** fontFamily + ) = 0; +# 1474 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall FindFamilyName( + WCHAR const* familyName, + UINT32* index, + BOOL* exists + ) = 0; +# 1489 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFontFromFontFace( + IDWriteFontFace* fontFace, + IDWriteFont** font + ) = 0; +}; + + + + +struct __declspec(uuid("1a0d8438-1d97-4ec1-aef9-a2fb86ed6acb")) __declspec(novtable) IDWriteFontList : public IUnknown +{ + + + + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetFontCollection( + IDWriteFontCollection** fontCollection + ) = 0; + + + + + virtual __declspec(nothrow) UINT32 __stdcall GetFontCount() = 0; +# 1524 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFont( + UINT32 index, + IDWriteFont** font + ) = 0; +}; + + + + + +struct __declspec(uuid("da20d8ef-812a-4c43-9802-62ec4abd7add")) __declspec(novtable) IDWriteFontFamily : public IDWriteFontList +{ + + + + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetFamilyNames( + IDWriteLocalizedStrings** names + ) = 0; +# 1557 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFirstMatchingFont( + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFont** matchingFont + ) = 0; +# 1574 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetMatchingFonts( + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontList** matchingFonts + ) = 0; +}; + + + + +struct __declspec(uuid("acd16696-8c14-4f5d-877e-fe3fc1d32737")) __declspec(novtable) IDWriteFont : public IUnknown +{ + + + + + + + + virtual __declspec(nothrow) HRESULT __stdcall GetFontFamily( + IDWriteFontFamily** fontFamily + ) = 0; + + + + + virtual __declspec(nothrow) DWRITE_FONT_WEIGHT __stdcall GetWeight() = 0; + + + + + virtual __declspec(nothrow) DWRITE_FONT_STRETCH __stdcall GetStretch() = 0; + + + + + virtual __declspec(nothrow) DWRITE_FONT_STYLE __stdcall GetStyle() = 0; + + + + + virtual __declspec(nothrow) BOOL __stdcall IsSymbolFont() = 0; +# 1625 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFaceNames( + IDWriteLocalizedStrings** names + ) = 0; +# 1639 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetInformationalStrings( + DWRITE_INFORMATIONAL_STRING_ID informationalStringID, + IDWriteLocalizedStrings** informationalStrings, + BOOL* exists + ) = 0; + + + + + virtual __declspec(nothrow) DWRITE_FONT_SIMULATIONS __stdcall GetSimulations() = 0; + + + + + + virtual __declspec(nothrow) void __stdcall GetMetrics( + DWRITE_FONT_METRICS* fontMetrics + ) = 0; +# 1666 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall HasCharacter( + UINT32 unicodeValue, + BOOL* exists + ) = 0; +# 1678 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateFontFace( + IDWriteFontFace** fontFace + ) = 0; +}; + + + + +enum DWRITE_READING_DIRECTION +{ + + + + DWRITE_READING_DIRECTION_LEFT_TO_RIGHT = 0, + + + + + DWRITE_READING_DIRECTION_RIGHT_TO_LEFT = 1, + + + + + DWRITE_READING_DIRECTION_TOP_TO_BOTTOM = 2, + + + + + DWRITE_READING_DIRECTION_BOTTOM_TO_TOP = 3, +}; + + + + +enum DWRITE_FLOW_DIRECTION +{ + + + + DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM = 0, + + + + + DWRITE_FLOW_DIRECTION_BOTTOM_TO_TOP = 1, + + + + + DWRITE_FLOW_DIRECTION_LEFT_TO_RIGHT = 2, + + + + + DWRITE_FLOW_DIRECTION_RIGHT_TO_LEFT = 3, +}; + + + + + +enum DWRITE_TEXT_ALIGNMENT +{ + + + + DWRITE_TEXT_ALIGNMENT_LEADING, + + + + + DWRITE_TEXT_ALIGNMENT_TRAILING, + + + + + DWRITE_TEXT_ALIGNMENT_CENTER, + + + + + DWRITE_TEXT_ALIGNMENT_JUSTIFIED +}; + + + + + +enum DWRITE_PARAGRAPH_ALIGNMENT +{ + + + + DWRITE_PARAGRAPH_ALIGNMENT_NEAR, + + + + + DWRITE_PARAGRAPH_ALIGNMENT_FAR, + + + + + DWRITE_PARAGRAPH_ALIGNMENT_CENTER +}; + + + + +enum DWRITE_WORD_WRAPPING +{ + + + + DWRITE_WORD_WRAPPING_WRAP = 0, + + + + + + DWRITE_WORD_WRAPPING_NO_WRAP = 1, + + + + + + DWRITE_WORD_WRAPPING_EMERGENCY_BREAK = 2, + + + + + + DWRITE_WORD_WRAPPING_WHOLE_WORD = 3, + + + + + DWRITE_WORD_WRAPPING_CHARACTER = 4, +}; + + + + +enum DWRITE_LINE_SPACING_METHOD +{ + + + + DWRITE_LINE_SPACING_METHOD_DEFAULT, + + + + + + DWRITE_LINE_SPACING_METHOD_UNIFORM, + + + + + DWRITE_LINE_SPACING_METHOD_PROPORTIONAL +}; + + + + +enum DWRITE_TRIMMING_GRANULARITY +{ + + + + DWRITE_TRIMMING_GRANULARITY_NONE, + + + + + DWRITE_TRIMMING_GRANULARITY_CHARACTER, + + + + + DWRITE_TRIMMING_GRANULARITY_WORD +}; + + + + +enum DWRITE_FONT_FEATURE_TAG +{ + DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS = 0x63726661, + DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS = 0x63703263, + DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS = 0x63733263, + DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES = 0x746c6163, + DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS = 0x65736163, + DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION = 0x706d6363, + DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES = 0x67696c63, + DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING = 0x70737063, + DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH = 0x68777363, + DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING = 0x73727563, + DWRITE_FONT_FEATURE_TAG_DEFAULT = 0x746c6664, + DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES = 0x67696c64, + DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS = 0x74707865, + DWRITE_FONT_FEATURE_TAG_FRACTIONS = 0x63617266, + DWRITE_FONT_FEATURE_TAG_FULL_WIDTH = 0x64697766, + DWRITE_FONT_FEATURE_TAG_HALF_FORMS = 0x666c6168, + DWRITE_FONT_FEATURE_TAG_HALANT_FORMS = 0x6e6c6168, + DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH = 0x746c6168, + DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS = 0x74736968, + DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES = 0x616e6b68, + DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES = 0x67696c68, + DWRITE_FONT_FEATURE_TAG_HALF_WIDTH = 0x64697768, + DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS = 0x6f6a6f68, + DWRITE_FONT_FEATURE_TAG_JIS04_FORMS = 0x3430706a, + DWRITE_FONT_FEATURE_TAG_JIS78_FORMS = 0x3837706a, + DWRITE_FONT_FEATURE_TAG_JIS83_FORMS = 0x3338706a, + DWRITE_FONT_FEATURE_TAG_JIS90_FORMS = 0x3039706a, + DWRITE_FONT_FEATURE_TAG_KERNING = 0x6e72656b, + DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES = 0x6167696c, + DWRITE_FONT_FEATURE_TAG_LINING_FIGURES = 0x6d756e6c, + DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS = 0x6c636f6c, + DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING = 0x6b72616d, + DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK = 0x6b72676d, + DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING = 0x6b6d6b6d, + DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS = 0x746c616e, + DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS = 0x6b636c6e, + DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES = 0x6d756e6f, + DWRITE_FONT_FEATURE_TAG_ORDINALS = 0x6e64726f, + DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH = 0x746c6170, + DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS = 0x70616370, + DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES = 0x6d756e70, + DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS = 0x64697770, + DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS = 0x64697771, + DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES = 0x67696c72, + DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS = 0x79627572, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = 0x746c6173, + DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS = 0x666e6973, + DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS = 0x70636d73, + DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS = 0x6c706d73, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 = 0x31307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 = 0x32307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 = 0x33307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 = 0x34307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 = 0x35307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 = 0x36307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 = 0x37307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 = 0x38307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 = 0x39307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 = 0x30317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 = 0x31317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 = 0x32317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 = 0x33317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 = 0x34317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 = 0x35317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 = 0x36317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 = 0x37317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 = 0x38317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 = 0x39317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 = 0x30327373, + DWRITE_FONT_FEATURE_TAG_SUBSCRIPT = 0x73627573, + DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT = 0x73707573, + DWRITE_FONT_FEATURE_TAG_SWASH = 0x68737773, + DWRITE_FONT_FEATURE_TAG_TITLING = 0x6c746974, + DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS = 0x6d616e74, + DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES = 0x6d756e74, + DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS = 0x64617274, + DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS = 0x64697774, + DWRITE_FONT_FEATURE_TAG_UNICASE = 0x63696e75, + DWRITE_FONT_FEATURE_TAG_VERTICAL_WRITING = 0x74726576, + DWRITE_FONT_FEATURE_TAG_VERTICAL_ALTERNATES_AND_ROTATION = 0x32747276, + DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO = 0x6f72657a, +}; + + + + +struct DWRITE_TEXT_RANGE +{ + + + + UINT32 startPosition; + + + + + UINT32 length; +}; + + + + +struct DWRITE_FONT_FEATURE +{ + + + + DWRITE_FONT_FEATURE_TAG nameTag; +# 1982 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + UINT32 parameter; +}; + + + + + + +struct DWRITE_TYPOGRAPHIC_FEATURES +{ + + + + DWRITE_FONT_FEATURE* features; + + + + + UINT32 featureCount; +}; + + + + +struct DWRITE_TRIMMING +{ + + + + DWRITE_TRIMMING_GRANULARITY granularity; + + + + + + + UINT32 delimiter; + + + + + UINT32 delimiterCount; +}; + + +struct IDWriteTypography; +struct IDWriteInlineObject; + + + + + + + +struct __declspec(uuid("9c906818-31d7-4fd3-a151-7c5e225db55a")) __declspec(novtable) IDWriteTextFormat : public IUnknown +{ + + + + + + + + virtual __declspec(nothrow) HRESULT __stdcall SetTextAlignment( + DWRITE_TEXT_ALIGNMENT textAlignment + ) = 0; +# 2056 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetParagraphAlignment( + DWRITE_PARAGRAPH_ALIGNMENT paragraphAlignment + ) = 0; +# 2067 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetWordWrapping( + DWRITE_WORD_WRAPPING wordWrapping + ) = 0; +# 2083 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetReadingDirection( + DWRITE_READING_DIRECTION readingDirection + ) = 0; +# 2099 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetFlowDirection( + DWRITE_FLOW_DIRECTION flowDirection + ) = 0; +# 2110 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetIncrementalTabStop( + FLOAT incrementalTabStop + ) = 0; +# 2128 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetTrimming( + DWRITE_TRIMMING const* trimmingOptions, + IDWriteInlineObject* trimmingSign + ) = 0; +# 2146 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetLineSpacing( + DWRITE_LINE_SPACING_METHOD lineSpacingMethod, + FLOAT lineSpacing, + FLOAT baseline + ) = 0; + + + + + virtual __declspec(nothrow) DWRITE_TEXT_ALIGNMENT __stdcall GetTextAlignment() = 0; + + + + + virtual __declspec(nothrow) DWRITE_PARAGRAPH_ALIGNMENT __stdcall GetParagraphAlignment() = 0; + + + + + virtual __declspec(nothrow) DWRITE_WORD_WRAPPING __stdcall GetWordWrapping() = 0; + + + + + virtual __declspec(nothrow) DWRITE_READING_DIRECTION __stdcall GetReadingDirection() = 0; + + + + + virtual __declspec(nothrow) DWRITE_FLOW_DIRECTION __stdcall GetFlowDirection() = 0; + + + + + virtual __declspec(nothrow) FLOAT __stdcall GetIncrementalTabStop() = 0; +# 2190 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetTrimming( + DWRITE_TRIMMING* trimmingOptions, + IDWriteInlineObject** trimmingSign + ) = 0; +# 2204 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetLineSpacing( + DWRITE_LINE_SPACING_METHOD* lineSpacingMethod, + FLOAT* lineSpacing, + FLOAT* baseline + ) = 0; +# 2217 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFontCollection( + IDWriteFontCollection** fontCollection + ) = 0; + + + + + virtual __declspec(nothrow) UINT32 __stdcall GetFontFamilyNameLength() = 0; +# 2234 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFontFamilyName( + WCHAR* fontFamilyName, + UINT32 nameSize + ) = 0; + + + + + virtual __declspec(nothrow) DWRITE_FONT_WEIGHT __stdcall GetFontWeight() = 0; + + + + + virtual __declspec(nothrow) DWRITE_FONT_STYLE __stdcall GetFontStyle() = 0; + + + + + virtual __declspec(nothrow) DWRITE_FONT_STRETCH __stdcall GetFontStretch() = 0; + + + + + virtual __declspec(nothrow) FLOAT __stdcall GetFontSize() = 0; + + + + + virtual __declspec(nothrow) UINT32 __stdcall GetLocaleNameLength() = 0; +# 2272 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetLocaleName( + WCHAR* localeName, + UINT32 nameSize + ) = 0; +}; + + + + + +struct __declspec(uuid("55f1112b-1dc2-4b3c-9541-f46894ed85b6")) __declspec(novtable) IDWriteTypography : public IUnknown +{ + + + + + + + + virtual __declspec(nothrow) HRESULT __stdcall AddFontFeature( + DWRITE_FONT_FEATURE fontFeature + ) = 0; + + + + + virtual __declspec(nothrow) UINT32 __stdcall GetFontFeatureCount() = 0; +# 2308 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFontFeature( + UINT32 fontFeatureIndex, + DWRITE_FONT_FEATURE* fontFeature + ) = 0; +}; + +enum DWRITE_SCRIPT_SHAPES +{ + + + + DWRITE_SCRIPT_SHAPES_DEFAULT = 0, + + + + + DWRITE_SCRIPT_SHAPES_NO_VISUAL = 1 +}; + + +extern "C++" { inline constexpr DWRITE_SCRIPT_SHAPES operator | (DWRITE_SCRIPT_SHAPES a, DWRITE_SCRIPT_SHAPES b) throw() { return DWRITE_SCRIPT_SHAPES(((_ENUM_FLAG_SIZED_INTEGER::type)a) | ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline DWRITE_SCRIPT_SHAPES &operator |= (DWRITE_SCRIPT_SHAPES &a, DWRITE_SCRIPT_SHAPES b) throw() { return (DWRITE_SCRIPT_SHAPES &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr DWRITE_SCRIPT_SHAPES operator & (DWRITE_SCRIPT_SHAPES a, DWRITE_SCRIPT_SHAPES b) throw() { return DWRITE_SCRIPT_SHAPES(((_ENUM_FLAG_SIZED_INTEGER::type)a) & ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline DWRITE_SCRIPT_SHAPES &operator &= (DWRITE_SCRIPT_SHAPES &a, DWRITE_SCRIPT_SHAPES b) throw() { return (DWRITE_SCRIPT_SHAPES &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline constexpr DWRITE_SCRIPT_SHAPES operator ~ (DWRITE_SCRIPT_SHAPES a) throw() { return DWRITE_SCRIPT_SHAPES(~((_ENUM_FLAG_SIZED_INTEGER::type)a)); } inline constexpr DWRITE_SCRIPT_SHAPES operator ^ (DWRITE_SCRIPT_SHAPES a, DWRITE_SCRIPT_SHAPES b) throw() { return DWRITE_SCRIPT_SHAPES(((_ENUM_FLAG_SIZED_INTEGER::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } inline DWRITE_SCRIPT_SHAPES &operator ^= (DWRITE_SCRIPT_SHAPES &a, DWRITE_SCRIPT_SHAPES b) throw() { return (DWRITE_SCRIPT_SHAPES &)(((_ENUM_FLAG_SIZED_INTEGER::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER::type)b)); } }; + + + + + +struct DWRITE_SCRIPT_ANALYSIS +{ + + + + UINT16 script; + + + + + DWRITE_SCRIPT_SHAPES shapes; +}; + + + + + +enum DWRITE_BREAK_CONDITION +{ + + + + + DWRITE_BREAK_CONDITION_NEUTRAL, + + + + + + + DWRITE_BREAK_CONDITION_CAN_BREAK, + + + + + + DWRITE_BREAK_CONDITION_MAY_NOT_BREAK, + + + + + + DWRITE_BREAK_CONDITION_MUST_BREAK +}; + + + + +struct DWRITE_LINE_BREAKPOINT +{ + + + + UINT8 breakConditionBefore : 2; + + + + + UINT8 breakConditionAfter : 2; + + + + + + UINT8 isWhitespace : 1; + + + + + + UINT8 isSoftHyphen : 1; + + UINT8 padding : 2; +}; + + + + +enum DWRITE_NUMBER_SUBSTITUTION_METHOD +{ + + + + + DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE, + + + + + + + + DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL, + + + + + + DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE, + + + + + + DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL, +# 2447 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL +}; + + + + +struct __declspec(uuid("14885CC9-BAB0-4f90-B6ED-5C366A2CD03D")) __declspec(novtable) IDWriteNumberSubstitution : public IUnknown +{ +}; + + + + +struct DWRITE_SHAPING_TEXT_PROPERTIES +{ + + + + + UINT16 isShapedAlone : 1; + + + + + UINT16 reserved : 15; +}; + + + + +struct DWRITE_SHAPING_GLYPH_PROPERTIES +{ + + + + + + UINT16 justification : 4; + + + + + UINT16 isClusterStart : 1; + + + + + UINT16 isDiacritic : 1; + + + + + UINT16 isZeroWidthSpace : 1; + + + + + UINT16 reserved : 9; +}; +# 2518 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" +struct __declspec(uuid("688e1a58-5094-47c8-adc8-fbcea60ae92b")) __declspec(novtable) IDWriteTextAnalysisSource : public IUnknown +{ +# 2546 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetTextAtPosition( + UINT32 textPosition, + WCHAR const** textString, + UINT32* textLength + ) = 0; +# 2571 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetTextBeforePosition( + UINT32 textPosition, + WCHAR const** textString, + UINT32* textLength + ) = 0; + + + + + virtual __declspec(nothrow) DWRITE_READING_DIRECTION __stdcall GetParagraphReadingDirection() = 0; +# 2594 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetLocaleName( + UINT32 textPosition, + UINT32* textLength, + WCHAR const** localeName + ) = 0; +# 2614 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetNumberSubstitution( + UINT32 textPosition, + UINT32* textLength, + IDWriteNumberSubstitution** numberSubstitution + ) = 0; +}; + + + + + + + +struct __declspec(uuid("5810cd44-0ca0-4701-b3fa-bec5182ae4f6")) __declspec(novtable) IDWriteTextAnalysisSink : public IUnknown +{ +# 2638 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetScriptAnalysis( + UINT32 textPosition, + UINT32 textLength, + DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis + ) = 0; +# 2654 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetLineBreakpoints( + UINT32 textPosition, + UINT32 textLength, + DWRITE_LINE_BREAKPOINT const* lineBreakpoints + ) = 0; +# 2674 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetBidiLevel( + UINT32 textPosition, + UINT32 textLength, + UINT8 explicitLevel, + UINT8 resolvedLevel + ) = 0; +# 2698 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetNumberSubstitution( + UINT32 textPosition, + UINT32 textLength, + IDWriteNumberSubstitution* numberSubstitution + ) = 0; +}; + + + + +struct __declspec(uuid("b7e6163e-7f46-43b4-84b3-e4e6249c365d")) __declspec(novtable) IDWriteTextAnalyzer : public IUnknown +{ +# 2722 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall AnalyzeScript( + IDWriteTextAnalysisSource* analysisSource, + UINT32 textPosition, + UINT32 textLength, + IDWriteTextAnalysisSink* analysisSink + ) = 0; +# 2749 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall AnalyzeBidi( + IDWriteTextAnalysisSource* analysisSource, + UINT32 textPosition, + UINT32 textLength, + IDWriteTextAnalysisSink* analysisSink + ) = 0; +# 2777 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall AnalyzeNumberSubstitution( + IDWriteTextAnalysisSource* analysisSource, + UINT32 textPosition, + UINT32 textLength, + IDWriteTextAnalysisSink* analysisSink + ) = 0; +# 2812 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall AnalyzeLineBreakpoints( + IDWriteTextAnalysisSource* analysisSource, + UINT32 textPosition, + UINT32 textLength, + IDWriteTextAnalysisSink* analysisSink + ) = 0; +# 2865 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetGlyphs( + WCHAR const* textString, + UINT32 textLength, + IDWriteFontFace* fontFace, + BOOL isSideways, + BOOL isRightToLeft, + DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis, + WCHAR const* localeName, + IDWriteNumberSubstitution* numberSubstitution, + DWRITE_TYPOGRAPHIC_FEATURES const** features, + UINT32 const* featureRangeLengths, + UINT32 featureRanges, + UINT32 maxGlyphCount, + UINT16* clusterMap, + DWRITE_SHAPING_TEXT_PROPERTIES* textProps, + UINT16* glyphIndices, + DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps, + UINT32* actualGlyphCount + ) = 0; +# 2917 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetGlyphPlacements( + WCHAR const* textString, + UINT16 const* clusterMap, + DWRITE_SHAPING_TEXT_PROPERTIES* textProps, + UINT32 textLength, + UINT16 const* glyphIndices, + DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProps, + UINT32 glyphCount, + IDWriteFontFace* fontFace, + FLOAT fontEmSize, + BOOL isSideways, + BOOL isRightToLeft, + DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis, + WCHAR const* localeName, + DWRITE_TYPOGRAPHIC_FEATURES const** features, + UINT32 const* featureRangeLengths, + UINT32 featureRanges, + FLOAT* glyphAdvances, + DWRITE_GLYPH_OFFSET* glyphOffsets + ) = 0; +# 2979 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetGdiCompatibleGlyphPlacements( + WCHAR const* textString, + UINT16 const* clusterMap, + DWRITE_SHAPING_TEXT_PROPERTIES* textProps, + UINT32 textLength, + UINT16 const* glyphIndices, + DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProps, + UINT32 glyphCount, + IDWriteFontFace * fontFace, + FLOAT fontEmSize, + FLOAT pixelsPerDip, + DWRITE_MATRIX const* transform, + BOOL useGdiNatural, + BOOL isSideways, + BOOL isRightToLeft, + DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis, + WCHAR const* localeName, + DWRITE_TYPOGRAPHIC_FEATURES const** features, + UINT32 const* featureRangeLengths, + UINT32 featureRanges, + FLOAT* glyphAdvances, + DWRITE_GLYPH_OFFSET* glyphOffsets + ) = 0; +}; + + + + + +struct DWRITE_GLYPH_RUN +{ + + + + IDWriteFontFace* fontFace; + + + + + FLOAT fontEmSize; + + + + + UINT32 glyphCount; + + + + + UINT16 const* glyphIndices; + + + + + FLOAT const* glyphAdvances; + + + + + DWRITE_GLYPH_OFFSET const* glyphOffsets; + + + + + + + + BOOL isSideways; +# 3055 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + UINT32 bidiLevel; +}; + + + + + +struct DWRITE_GLYPH_RUN_DESCRIPTION +{ + + + + WCHAR const* localeName; + + + + + WCHAR const* string; + + + + + + UINT32 stringLength; + + + + + + UINT16 const* clusterMap; + + + + + + UINT32 textPosition; +}; + + + + + + +struct DWRITE_UNDERLINE +{ + + + + FLOAT width; + + + + + + FLOAT thickness; + + + + + + + FLOAT offset; + + + + + FLOAT runHeight; + + + + + + + DWRITE_READING_DIRECTION readingDirection; + + + + + + + DWRITE_FLOW_DIRECTION flowDirection; +# 3144 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + WCHAR const* localeName; + + + + + + + DWRITE_MEASURING_MODE measuringMode; +}; + + + + + + +struct DWRITE_STRIKETHROUGH +{ + + + + FLOAT width; + + + + + + FLOAT thickness; + + + + + + + FLOAT offset; + + + + + + + DWRITE_READING_DIRECTION readingDirection; + + + + + + + DWRITE_FLOW_DIRECTION flowDirection; + + + + + WCHAR const* localeName; + + + + + + + DWRITE_MEASURING_MODE measuringMode; +}; + + + + + +struct DWRITE_LINE_METRICS +{ + + + + + UINT32 length; + + + + + + UINT32 trailingWhitespaceLength; + + + + + + + UINT32 newlineLength; + + + + + FLOAT height; + + + + + FLOAT baseline; + + + + + BOOL isTrimmed; +}; + + + + + +struct DWRITE_CLUSTER_METRICS +{ + + + + FLOAT width; + + + + + UINT16 length; + + + + + UINT16 canWrapLineAfter : 1; + + + + + UINT16 isWhitespace : 1; + + + + + UINT16 isNewline : 1; + + + + + UINT16 isSoftHyphen : 1; + + + + + UINT16 isRightToLeft : 1; + + UINT16 padding : 11; +}; + + + + + + +struct DWRITE_TEXT_METRICS +{ + + + + + FLOAT left; + + + + + + FLOAT top; + + + + + + FLOAT width; + + + + + + FLOAT widthIncludingTrailingWhitespace; + + + + + + FLOAT height; + + + + + + + FLOAT layoutWidth; + + + + + + FLOAT layoutHeight; + + + + + + + + UINT32 maxBidiReorderingDepth; + + + + + UINT32 lineCount; +}; + + + + + + +struct DWRITE_INLINE_OBJECT_METRICS +{ + + + + FLOAT width; + + + + + FLOAT height; + + + + + + FLOAT baseline; + + + + + + BOOL supportsSideways; +}; +# 3397 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" +struct DWRITE_OVERHANG_METRICS +{ + + + + FLOAT left; + + + + + FLOAT top; + + + + + FLOAT right; + + + + + FLOAT bottom; +}; + + + + + +struct DWRITE_HIT_TEST_METRICS +{ + + + + UINT32 textPosition; + + + + + UINT32 length; + + + + + FLOAT left; + + + + + FLOAT top; + + + + + FLOAT width; + + + + + FLOAT height; + + + + + UINT32 bidiLevel; + + + + + BOOL isText; + + + + + BOOL isTrimmed; +}; + + +struct IDWriteTextRenderer; + + + + + + +struct __declspec(uuid("8339FDE3-106F-47ab-8373-1C6295EB10B3")) __declspec(novtable) IDWriteInlineObject : public IUnknown +{ +# 3497 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall Draw( + void* clientDrawingContext, + IDWriteTextRenderer* renderer, + FLOAT originX, + FLOAT originY, + BOOL isSideways, + BOOL isRightToLeft, + IUnknown* clientDrawingEffect + ) = 0; +# 3514 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetMetrics( + DWRITE_INLINE_OBJECT_METRICS* metrics + ) = 0; +# 3534 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetOverhangMetrics( + DWRITE_OVERHANG_METRICS* overhangs + ) = 0; +# 3547 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetBreakConditions( + DWRITE_BREAK_CONDITION* breakConditionBefore, + DWRITE_BREAK_CONDITION* breakConditionAfter + ) = 0; +}; + + + + +struct __declspec(uuid("eaf3a2da-ecf4-4d24-b644-b34f6842024b")) __declspec(novtable) IDWritePixelSnapping : public IUnknown +{ +# 3567 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall IsPixelSnappingDisabled( + void* clientDrawingContext, + BOOL* isDisabled + ) = 0; +# 3581 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetCurrentTransform( + void* clientDrawingContext, + DWRITE_MATRIX* transform + ) = 0; +# 3596 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetPixelsPerDip( + void* clientDrawingContext, + FLOAT* pixelsPerDip + ) = 0; +}; + + + + + + +struct __declspec(uuid("ef8a8135-5cc6-45fe-8825-c5a0724eb819")) __declspec(novtable) IDWriteTextRenderer : public IDWritePixelSnapping +{ +# 3632 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall DrawGlyphRun( + void* clientDrawingContext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GLYPH_RUN const* glyphRun, + DWRITE_GLYPH_RUN_DESCRIPTION const* glyphRunDescription, + IUnknown* clientDrawingEffect + ) = 0; +# 3669 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall DrawUnderline( + void* clientDrawingContext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_UNDERLINE const* underline, + IUnknown* clientDrawingEffect + ) = 0; +# 3700 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall DrawStrikethrough( + void* clientDrawingContext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_STRIKETHROUGH const* strikethrough, + IUnknown* clientDrawingEffect + ) = 0; +# 3728 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall DrawInlineObject( + void* clientDrawingContext, + FLOAT originX, + FLOAT originY, + IDWriteInlineObject* inlineObject, + BOOL isSideways, + BOOL isRightToLeft, + IUnknown* clientDrawingEffect + ) = 0; +}; + + + + + + + +struct __declspec(uuid("53737037-6d14-410b-9bfe-0b182bb70961")) __declspec(novtable) IDWriteTextLayout : public IDWriteTextFormat +{ + + + + + + + + virtual __declspec(nothrow) HRESULT __stdcall SetMaxWidth( + FLOAT maxWidth + ) = 0; +# 3765 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetMaxHeight( + FLOAT maxHeight + ) = 0; +# 3777 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetFontCollection( + IDWriteFontCollection* fontCollection, + DWRITE_TEXT_RANGE textRange + ) = 0; +# 3790 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetFontFamilyName( + WCHAR const* fontFamilyName, + DWRITE_TEXT_RANGE textRange + ) = 0; +# 3803 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetFontWeight( + DWRITE_FONT_WEIGHT fontWeight, + DWRITE_TEXT_RANGE textRange + ) = 0; +# 3816 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetFontStyle( + DWRITE_FONT_STYLE fontStyle, + DWRITE_TEXT_RANGE textRange + ) = 0; +# 3829 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetFontStretch( + DWRITE_FONT_STRETCH fontStretch, + DWRITE_TEXT_RANGE textRange + ) = 0; +# 3842 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetFontSize( + FLOAT fontSize, + DWRITE_TEXT_RANGE textRange + ) = 0; +# 3855 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetUnderline( + BOOL hasUnderline, + DWRITE_TEXT_RANGE textRange + ) = 0; +# 3868 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetStrikethrough( + BOOL hasStrikethrough, + DWRITE_TEXT_RANGE textRange + ) = 0; +# 3885 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetDrawingEffect( + IUnknown* drawingEffect, + DWRITE_TEXT_RANGE textRange + ) = 0; +# 3903 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetInlineObject( + IDWriteInlineObject* inlineObject, + DWRITE_TEXT_RANGE textRange + ) = 0; +# 3916 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetTypography( + IDWriteTypography* typography, + DWRITE_TEXT_RANGE textRange + ) = 0; +# 3929 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetLocaleName( + WCHAR const* localeName, + DWRITE_TEXT_RANGE textRange + ) = 0; + + + + + virtual __declspec(nothrow) FLOAT __stdcall GetMaxWidth() = 0; + + + + + virtual __declspec(nothrow) FLOAT __stdcall GetMaxHeight() = 0; +# 3953 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFontCollection( + UINT32 currentPosition, + IDWriteFontCollection** fontCollection, + DWRITE_TEXT_RANGE* textRange = 0 + ) = 0; +# 3968 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFontFamilyNameLength( + UINT32 currentPosition, + UINT32* nameLength, + DWRITE_TEXT_RANGE* textRange = 0 + ) = 0; +# 3984 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFontFamilyName( + UINT32 currentPosition, + WCHAR* fontFamilyName, + UINT32 nameSize, + DWRITE_TEXT_RANGE* textRange = 0 + ) = 0; +# 4000 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFontWeight( + UINT32 currentPosition, + DWRITE_FONT_WEIGHT* fontWeight, + DWRITE_TEXT_RANGE* textRange = 0 + ) = 0; +# 4015 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFontStyle( + UINT32 currentPosition, + DWRITE_FONT_STYLE* fontStyle, + DWRITE_TEXT_RANGE* textRange = 0 + ) = 0; +# 4030 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFontStretch( + UINT32 currentPosition, + DWRITE_FONT_STRETCH* fontStretch, + DWRITE_TEXT_RANGE* textRange = 0 + ) = 0; +# 4045 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetFontSize( + UINT32 currentPosition, + FLOAT* fontSize, + DWRITE_TEXT_RANGE* textRange = 0 + ) = 0; +# 4060 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetUnderline( + UINT32 currentPosition, + BOOL* hasUnderline, + DWRITE_TEXT_RANGE* textRange = 0 + ) = 0; +# 4075 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetStrikethrough( + UINT32 currentPosition, + BOOL* hasStrikethrough, + DWRITE_TEXT_RANGE* textRange = 0 + ) = 0; +# 4090 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetDrawingEffect( + UINT32 currentPosition, + IUnknown** drawingEffect, + DWRITE_TEXT_RANGE* textRange = 0 + ) = 0; +# 4105 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetInlineObject( + UINT32 currentPosition, + IDWriteInlineObject** inlineObject, + DWRITE_TEXT_RANGE* textRange = 0 + ) = 0; +# 4120 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetTypography( + UINT32 currentPosition, + IDWriteTypography** typography, + DWRITE_TEXT_RANGE* textRange = 0 + ) = 0; +# 4135 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetLocaleNameLength( + UINT32 currentPosition, + UINT32* nameLength, + DWRITE_TEXT_RANGE* textRange = 0 + ) = 0; +# 4151 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetLocaleName( + UINT32 currentPosition, + WCHAR* localeName, + UINT32 nameSize, + DWRITE_TEXT_RANGE* textRange = 0 + ) = 0; +# 4170 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall Draw( + void* clientDrawingContext, + IDWriteTextRenderer* renderer, + FLOAT originX, + FLOAT originY + ) = 0; +# 4193 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetLineMetrics( + DWRITE_LINE_METRICS* lineMetrics, + UINT32 maxLineCount, + UINT32* actualLineCount + ) = 0; +# 4212 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetMetrics( + DWRITE_TEXT_METRICS* textMetrics + ) = 0; +# 4229 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetOverhangMetrics( + DWRITE_OVERHANG_METRICS* overhangs + ) = 0; +# 4248 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetClusterMetrics( + DWRITE_CLUSTER_METRICS* clusterMetrics, + UINT32 maxClusterCount, + UINT32* actualClusterCount + ) = 0; +# 4262 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall DetermineMinWidth( + FLOAT* minWidth + ) = 0; +# 4286 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall HitTestPoint( + FLOAT pointX, + FLOAT pointY, + BOOL* isTrailingHit, + BOOL* isInside, + DWRITE_HIT_TEST_METRICS* hitTestMetrics + ) = 0; +# 4321 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall HitTestTextPosition( + UINT32 textPosition, + BOOL isTrailingHit, + FLOAT* pointX, + FLOAT* pointY, + DWRITE_HIT_TEST_METRICS* hitTestMetrics + ) = 0; +# 4369 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall HitTestTextRange( + UINT32 textPosition, + UINT32 textLength, + FLOAT originX, + FLOAT originY, + DWRITE_HIT_TEST_METRICS* hitTestMetrics, + UINT32 maxHitTestMetricsCount, + UINT32* actualHitTestMetricsCount + ) = 0; +}; + + + + + +struct __declspec(uuid("5e5a32a3-8dff-4773-9ff6-0696eab77267")) __declspec(novtable) IDWriteBitmapRenderTarget : public IUnknown +{ +# 4405 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall DrawGlyphRun( + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GLYPH_RUN const* glyphRun, + IDWriteRenderingParams* renderingParams, + COLORREF textColor, + RECT* blackBoxRect = 0 + ) = 0; +# 4427 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HDC __stdcall GetMemoryDC() = 0; +# 4436 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) FLOAT __stdcall GetPixelsPerDip() = 0; +# 4446 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetPixelsPerDip( + FLOAT pixelsPerDip + ) = 0; +# 4459 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetCurrentTransform( + DWRITE_MATRIX* transform + ) = 0; +# 4472 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall SetCurrentTransform( + DWRITE_MATRIX const* transform + ) = 0; +# 4483 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetSize( + SIZE* size + ) = 0; +# 4495 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall Resize( + UINT32 width, + UINT32 height + ) = 0; +}; + + + + +struct __declspec(uuid("1edd9491-9853-4299-898f-6432983b6f3a")) __declspec(novtable) IDWriteGdiInterop : public IUnknown +{ +# 4515 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateFontFromLOGFONT( + LOGFONTW const* logFont, + IDWriteFont** font + ) = 0; +# 4530 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall ConvertFontToLOGFONT( + IDWriteFont* font, + LOGFONTW* logFont, + BOOL* isSystemFont + ) = 0; +# 4544 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall ConvertFontFaceToLOGFONT( + IDWriteFontFace* font, + LOGFONTW* logFont + ) = 0; +# 4559 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateFontFaceFromHdc( + HDC hdc, + IDWriteFontFace** fontFace + ) = 0; +# 4571 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateBitmapRenderTarget( + HDC hdc, + UINT32 width, + UINT32 height, + IDWriteBitmapRenderTarget** renderTarget + ) = 0; +}; + + + + + +enum DWRITE_TEXTURE_TYPE +{ + + + + + DWRITE_TEXTURE_ALIASED_1x1, + + + + + + DWRITE_TEXTURE_CLEARTYPE_3x1 +}; +# 4606 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" +struct __declspec(uuid("7d97dbf7-e085-42d4-81e3-6a883bded118")) __declspec(novtable) IDWriteGlyphRunAnalysis : public IUnknown +{ +# 4619 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetAlphaTextureBounds( + DWRITE_TEXTURE_TYPE textureType, + RECT* textureBounds + ) = 0; +# 4637 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateAlphaTexture( + DWRITE_TEXTURE_TYPE textureType, + RECT const* textureBounds, + BYTE* alphaValues, + UINT32 bufferSize + ) = 0; +# 4653 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetAlphaBlendParams( + IDWriteRenderingParams* renderingParams, + FLOAT* blendGamma, + FLOAT* blendEnhancedContrast, + FLOAT* blendClearTypeLevel + ) = 0; +}; + + + + +struct __declspec(uuid("b859ee5a-d838-4b5b-a2e8-1adc7d93db48")) __declspec(novtable) IDWriteFactory : public IUnknown +{ +# 4677 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetSystemFontCollection( + IDWriteFontCollection** fontCollection, + BOOL checkForUpdates = 0 + ) = 0; +# 4693 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateCustomFontCollection( + IDWriteFontCollectionLoader* collectionLoader, + void const* collectionKey, + UINT32 collectionKeySize, + IDWriteFontCollection** fontCollection + ) = 0; +# 4707 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall RegisterFontCollectionLoader( + IDWriteFontCollectionLoader* fontCollectionLoader + ) = 0; +# 4718 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall UnregisterFontCollectionLoader( + IDWriteFontCollectionLoader* fontCollectionLoader + ) = 0; +# 4735 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateFontFileReference( + WCHAR const* filePath, + FILETIME const* lastWriteTime, + IDWriteFontFile** fontFile + ) = 0; +# 4760 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateCustomFontFileReference( + void const* fontFileReferenceKey, + UINT32 fontFileReferenceKeySize, + IDWriteFontFileLoader* fontFileLoader, + IDWriteFontFile** fontFile + ) = 0; +# 4781 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateFontFace( + DWRITE_FONT_FACE_TYPE fontFaceType, + UINT32 numberOfFiles, + IDWriteFontFile* const* fontFiles, + UINT32 faceIndex, + DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags, + IDWriteFontFace** fontFace + ) = 0; +# 4797 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateRenderingParams( + IDWriteRenderingParams** renderingParams + ) = 0; +# 4809 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateMonitorRenderingParams( + HMONITOR monitor, + IDWriteRenderingParams** renderingParams + ) = 0; +# 4826 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateCustomRenderingParams( + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT clearTypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + IDWriteRenderingParams** renderingParams + ) = 0; +# 4854 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall RegisterFontFileLoader( + IDWriteFontFileLoader* fontFileLoader + ) = 0; +# 4876 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall UnregisterFontFileLoader( + IDWriteFontFileLoader* fontFileLoader + ) = 0; +# 4894 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateTextFormat( + WCHAR const* fontFamilyName, + IDWriteFontCollection* fontCollection, + DWRITE_FONT_WEIGHT fontWeight, + DWRITE_FONT_STYLE fontStyle, + DWRITE_FONT_STRETCH fontStretch, + FLOAT fontSize, + WCHAR const* localeName, + IDWriteTextFormat** textFormat + ) = 0; +# 4912 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateTypography( + IDWriteTypography** typography + ) = 0; +# 4923 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall GetGdiInterop( + IDWriteGdiInterop** gdiInterop + ) = 0; +# 4941 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateTextLayout( + WCHAR const* string, + UINT32 stringLength, + IDWriteTextFormat* textFormat, + FLOAT maxWidth, + FLOAT maxHeight, + IDWriteTextLayout** textLayout + ) = 0; +# 4974 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateGdiCompatibleTextLayout( + WCHAR const* string, + UINT32 stringLength, + IDWriteTextFormat* textFormat, + FLOAT layoutWidth, + FLOAT layoutHeight, + FLOAT pixelsPerDip, + DWRITE_MATRIX const* transform, + BOOL useGdiNatural, + IDWriteTextLayout** textLayout + ) = 0; +# 4996 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateEllipsisTrimmingSign( + IDWriteTextFormat* textFormat, + IDWriteInlineObject** trimmingSign + ) = 0; +# 5008 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateTextAnalyzer( + IDWriteTextAnalyzer** textAnalyzer + ) = 0; +# 5021 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateNumberSubstitution( + DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod, + WCHAR const* localeName, + BOOL ignoreUserOverride, + IDWriteNumberSubstitution** numberSubstitution + ) = 0; +# 5046 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" + virtual __declspec(nothrow) HRESULT __stdcall CreateGlyphRunAnalysis( + DWRITE_GLYPH_RUN const* glyphRun, + FLOAT pixelsPerDip, + DWRITE_MATRIX const* transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + IDWriteGlyphRunAnalysis** glyphRunAnalysis + ) = 0; + +}; +# 5079 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/um\\dwrite.h" +extern "C" HRESULT __declspec(dllimport) __stdcall DWriteCreateFactory( + DWRITE_FACTORY_TYPE factoryType, + const IID & iid, + IUnknown **factory + ); +# 5 "D:/directui/DirectUI/UiD2d.h" 2 + + + + + +typedef CComPtr ID2D1BrushPtr; +typedef CComPtr ID2D1BitmapPtr; +typedef CComPtr ID2D1Bitmap1Ptr; +typedef CComPtr ID2D1BitmapBrushPtr; +typedef CComPtr ID2D1FactoryPtr; +typedef CComPtr ID2D1Factory1Ptr; +typedef CComPtr ID2D1HwndRenderTargetPtr; +typedef CComPtr ID2D1RenderTargetPtr; +typedef CComPtr ID2D1SolidColorBrushPtr; +typedef CComPtr ID2D1DevicePtr; +typedef CComPtr ID2D1DeviceContextPtr; + + +typedef CComPtr IDWriteFactoryPtr; +typedef CComPtr IDWriteTextFormatPtr; + + +typedef CComPtr IDXGIDevicePtr; +typedef CComPtr IDXGIDevice1Ptr; +typedef CComPtr IDXGISurfacePtr; +typedef CComPtr IDXGISurface1Ptr; +typedef CComPtr IDXGISwapChainPtr; +typedef CComPtr IDXGISwapChain1Ptr; +# 6 "D:/directui/DirectUI/UiTypes.h" 2 + +# 1 "D:/directui/DirectUI/UiSize.h" 1 + + + +# 1 "D:/directui/DirectUI/UiLength.h" 1 + + + + + + +class UiLength { +public: + UiLength() + :value(std::numeric_limits::quiet_NaN()){ + + } + UiLength(double val) + :value(val) { + + } + double value; + + void SetUndefined() { + value = std::numeric_limits::quiet_NaN(); + } + + bool IsUndefined() const{ + return std::numeric_limits::quiet_NaN() == value; + } + + bool operator ==(const UiLength& other) const {return value == other.value;} + bool operator !=(const UiLength& other) const {return value != other.value;} + bool operator >(const UiLength& other) const {return value > other.value;} + bool operator <(const UiLength& other) const {return value < other.value;} + bool operator >=(const UiLength& other) const { return value >= other.value; } + bool operator <=(const UiLength& other) const { return value <= other.value; } + + bool operator ==(double other) const { return value == other; } + bool operator !=(double other) const { return value != other; } + bool operator >(double other) const { return value > other; } + bool operator >=(double other) const { return value >= other; } + bool operator <(double other) const { return value < other; } + bool operator <=(double other) const { return value <= other; } + + + bool operator ==(float other) const { return value == (double)other; } + bool operator !=(float other) const { return value != (double)other; } + bool operator >(float other) const { return value > (double)other; } + bool operator >=(float other) const { return value >= (double)other; } + bool operator <(float other) const { return value < (double)other; } + bool operator <=(float other) const { return value <= (double)other; } + + UiLength& operator +=(float other) { value += other; return *this; } + UiLength& operator -=(float other) { value -= other; return *this; } + UiLength& operator *=(float other) { value *= other; return *this; } + UiLength& operator /=(float other) { value /= other; return *this; } + + UiLength& operator +=(UiLength other) { value += other.value; return *this; } + UiLength& operator -=(UiLength other) { value -= other.value; return *this; } + UiLength& operator *=(UiLength other) { value *= other.value; return *this; } + UiLength& operator /=(UiLength other) { value /= other.value; return *this; } + + + UiLength operator +(UiLength other) { return UiLength(value + other.value); } + UiLength operator -(UiLength other) { return UiLength(value - other.value); } + UiLength operator *(UiLength other) { return UiLength(value * other.value); } + UiLength operator /(UiLength other) { return UiLength(value / other.value); } + + UiLength operator +(double other) {return UiLength(value + other); } + UiLength operator -(double other) {return UiLength(value - other); } + UiLength operator *(double other) {return UiLength(value * other); } + UiLength operator /(double other) {return UiLength(value / other); } +# 77 "D:/directui/DirectUI/UiLength.h" + UiLength& operator=(double val) { + value = val; + return *this; + } + + UiLength& operator=(float val) { + value = (double)val; + return *this; + } + + static UiLength Undefined() { + return UiLength(std::numeric_limits::quiet_NaN()); + } +}; +# 4 "D:/directui/DirectUI/UiSize.h" 2 + + +class UiSize { +public: + UiLength Width; + UiLength Height; + + UiSize() { + + } + + UiSize(UiLength width, UiLength height) + :Width(width), Height(height) + { + + } + + void SetUndefined() { + Width.SetUndefined(); + Height.SetUndefined(); + } +}; +# 7 "D:/directui/DirectUI/UiTypes.h" 2 + +# 1 "D:/directui/DirectUI/UiPoint.h" 1 + + + + + +class UiPoint { +public: + UiLength x; + UiLength y; + + UiPoint(UiLength _x, UiLength _y) + :x(_x), y(_y) + { + + } + + UiPoint() + :x(0), y(0) + { + + } + + UiPoint& operator =(double other) { + x = other; + y = other; + return *this; + } + + + bool operator ==(const UiPoint& other) const{ + return (x == other.x) && (y == other.y); + } + + UiPoint operator -(const UiPoint other) { + return UiPoint(x - other.x, y - other.y); + } + + UiPoint operator +(const UiPoint other) { + return UiPoint(x + other.x, y + other.y); + } + + UiPoint& operator +=(UiPoint other) { + x += other.x; + y += other.y; + return *this; + } + + UiPoint& operator -=(UiPoint other) { + x -= other.x; + y -= other.y; + return *this; + } + + UiPoint& operator *=(UiPoint other) { + x *= other.x; + y *= other.y; + return *this; + } + UiPoint& operator /=(UiPoint other) { + x /= other.x; + y /= other.y; + return *this; + } + + UiPoint& operator /=(UiLength other) { + x /= other; + y /= other; + return *this; + } + + UiPoint& operator *=(UiLength other) { + x *= other; + y *= other; + return *this; + } + void SetUndefined() { + x.SetUndefined(); + y.SetUndefined(); + } +}; +# 8 "D:/directui/DirectUI/UiTypes.h" 2 + + +class UiTransform; +typedef std::shared_ptr UiTransformPtr; + +class UiControl; +typedef std::shared_ptr UiControlPtr; + +class Window; +typedef std::shared_ptr WindowPtr; + +class UiBitmap; +typedef std::shared_ptr UiBitmapPtr; + +class UiBrush; +typedef std::shared_ptr UiBrushPtr; + +class Window; +typedef std::shared_ptr WindowPtr; + +class UiCoreWindow; +typedef std::shared_ptr UiCoreWindowPtr; + +class UiRenderer; +typedef std::shared_ptr UiRendererPtr; + +typedef std::wstring UiString; + +class UiCore; +typedef std::shared_ptr UiCorePtr; +# 7 "D:/directui/DirectUI/Window.h" 2 + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\locale" 1 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocbuf" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 6385) + +namespace std { + +template > + class wbuffer_convert + : public basic_streambuf<_Elem, _Traits> + { + enum _Mode {_Unused, _Wrote, _Need, _Got, _Eof}; + enum {_STRING_INC = 8}; +public: + typedef wbuffer_convert<_Codecvt, _Elem, _Traits> _Myt; + typedef streambuf _Mysb; + typedef char_traits _Byte_traits; + + typedef typename _Traits::int_type int_type; + typedef typename _Traits::pos_type pos_type; + typedef typename _Traits::off_type off_type; + typedef typename _Codecvt::state_type state_type; + + explicit wbuffer_convert(_Mysb *_Strbuf = 0) + : _State(), _Pcvt(new _Codecvt), + _Mystrbuf(_Strbuf), _Status(_Unused), _Nback(0) + { + _Loc = locale(_Loc, _Pcvt); + } + + wbuffer_convert(_Mysb *_Strbuf, const _Codecvt *_Pcvt_arg) + : _State(), _Pcvt(_Pcvt_arg), + _Mystrbuf(_Strbuf), _Status(_Unused), _Nback(0) + { + _Loc = locale(_Loc, _Pcvt); + } + + wbuffer_convert(_Mysb *_Strbuf, + const _Codecvt *_Pcvt_arg, state_type _State_arg) + : _State(_State_arg), _Pcvt(_Pcvt_arg), + _Mystrbuf(_Strbuf), _Status(_Unused), _Nback(0) + { + _Loc = locale(_Loc, _Pcvt); + } + + virtual ~wbuffer_convert() noexcept + { + char *_Buf = (char *)_Str.c_str(); + + for (; _Status == _Wrote ; ) + { + char *_Dest; + + if (_Str.size() < _STRING_INC) + _Str.assign(_STRING_INC, '\0'); + switch (_Pcvt->unshift(_State, + _Buf, _Buf + _Str.size(), _Dest)) + { + case _Codecvt::ok: + _Status = _Unused; + + case _Codecvt::partial: + { + int _Count = (int)(_Dest - _Buf); + if (0 < _Count + && _Byte_traits::eq_int_type( + _Byte_traits::eof(), + (_Byte_traits::int_type)_Mystrbuf->sputn(_Buf, + _Count))) + return; + + if (_Status == _Wrote && _Count == 0) + _Str.append(_STRING_INC, '\0'); + break; + } + + case _Codecvt::noconv: + return; + + default: + return; + } + } + } + + _Mysb *rdbuf() const + { + return (_Mystrbuf); + } + + _Mysb *rdbuf(_Mysb *_Strbuf) + { + _Mysb *_Oldstrbuf = _Mystrbuf; + _Mystrbuf = _Strbuf; + return (_Oldstrbuf); + } + + state_type state() const + { + return (_State); + } + + wbuffer_convert(const wbuffer_convert&) = delete; + wbuffer_convert& operator=(const wbuffer_convert&) = delete; + +protected: + virtual int_type overflow(int_type _Meta = _Traits::eof()) + { + if (_Traits::eq_int_type(_Traits::eof(), _Meta)) + return (_Traits::not_eof(_Meta)); + else if (_Mystrbuf == 0 || 0 < _Nback + || (_Status != _Unused && _Status != _Wrote)) + return (_Traits::eof()); + else + { + char *_Buf = (char *)_Str.c_str(); + const _Elem _Ch = _Traits::to_char_type(_Meta); + const _Elem *_Src; + char *_Dest; + + if (_Str.size() < _STRING_INC) + _Str.assign(_STRING_INC, '\0'); + for (_Status = _Wrote; ; ) + switch (_Pcvt->out(_State, + &_Ch, &_Ch + 1, _Src, + _Buf, _Buf + _Str.size(), _Dest)) + { + case _Codecvt::partial: + case _Codecvt::ok: + { + int _Count = (int)(_Dest - _Buf); + if (0 < _Count + && _Byte_traits::eq_int_type( + _Byte_traits::eof(), + (_Byte_traits::int_type)_Mystrbuf->sputn(_Buf, + _Count))) + return (_Traits::eof()); + + if (_Src != &_Ch) + return (_Meta); + + if (0 < _Count) + ; + else if (_Str.size() < 4 * _STRING_INC) + _Str.append(_STRING_INC, '\0'); + else + return (_Traits::eof()); + break; + } + + case _Codecvt::noconv: + if (_Traits::eq_int_type( + _Traits::eof(), + (typename _Traits::int_type)_Mystrbuf->sputn( + (char *)&_Ch, + (streamsize)sizeof (_Elem)))) + return (_Traits::eof()); + else + return (_Meta); + + default: + return (_Traits::eof()); + } + } + } + + virtual int_type pbackfail(int_type _Meta = _Traits::eof()) + { + if (sizeof (_Myback) / sizeof (_Myback[0]) <= _Nback + || _Status == _Wrote) + return (_Traits::eof()); + else + { + if (!_Traits::eq_int_type(_Traits::eof(), _Meta)) + _Myback[_Nback] = _Traits::to_char_type(_Meta); + ++_Nback; + if (_Status == _Unused) + _Status = _Got; + return (_Meta); + } + } + + virtual int_type underflow() + { + int_type _Meta; + + if (0 < _Nback) + ; + else if (_Traits::eq_int_type(_Traits::eof(), _Meta = _Get_elem())) + return (_Meta); + else + _Myback[_Nback++] = _Traits::to_char_type(_Meta); + return (_Traits::to_int_type(_Myback[_Nback - 1])); + } + + virtual int_type uflow() + { + int_type _Meta; + + if (0 < _Nback) + ; + else if (_Traits::eq_int_type(_Traits::eof(), _Meta = _Get_elem())) + return (_Meta); + else + _Myback[_Nback++] = _Traits::to_char_type(_Meta); + return (_Traits::to_int_type(_Myback[--_Nback])); + } + + virtual pos_type seekoff(off_type, + ios::seekdir, + ios::openmode = + (ios::openmode)(ios::in | ios::out)) + { + return (pos_type(-1)); + } + + virtual pos_type seekpos(pos_type, + ios::openmode = + (ios::openmode)(ios::in | ios::out)) + { + return (pos_type(-1)); + } + +private: + int_type _Get_elem() + { + if (_Mystrbuf != 0 && _Status != _Wrote) + { + if (_Status == _Eof) + ; + else if (_Str.size() == 0) + _Status = _Need; + else + _Status = _Got; + + for (; _Status != _Eof; ) + { + char *_Buf = (char *)_Str.c_str(); + _Elem _Ch, *_Dest; + const char *_Src; + int _Meta; + + if (_Status != _Need) + ; + else if (_Byte_traits::eq_int_type(_Byte_traits::eof(), + _Meta = _Mystrbuf->sbumpc())) + _Status = _Eof; + else + _Str.append(1, _Byte_traits::to_char_type(_Meta)); + + switch (_Pcvt->in(_State, + _Buf, _Buf + _Str.size(), _Src, + &_Ch, &_Ch + 1, _Dest)) + { + case _Codecvt::partial: + case _Codecvt::ok: + _Str.erase((size_t)0, + (size_t)(_Src - _Buf)); + if (_Dest != &_Ch) + return (_Traits::to_int_type(_Ch)); + break; + + case _Codecvt::noconv: + if (_Str.size() < sizeof (_Elem)) + break; + :: memcpy(&_Ch, _Buf, + sizeof (_Elem)); + _Str.erase((size_t)0, sizeof (_Elem)); + return (_Traits::to_int_type(_Ch)); + + default: + _Status = _Eof; + } + } + } + + return (_Traits::eof()); + } + + state_type _State; + const _Codecvt *_Pcvt; + _Mysb *_Mystrbuf; + _Mode _Status; + size_t _Nback; + _Elem _Myback[8]; + string _Str; + locale _Loc; + }; + + +template, + class _Balloc = allocator > + class wstring_convert + { + enum {_BUF_INC = 8, _BUF_MAX = 16}; + void _Init(const _Codecvt *_Pcvt_arg = new _Codecvt) + { + _State = state_type{}; + _Pcvt = _Pcvt_arg; + _Loc = locale(_Loc, _Pcvt); + _Nconv = 0; + } + +public: + typedef basic_string, _Balloc> byte_string; + typedef basic_string<_Elem, char_traits<_Elem>, _Walloc> wide_string; + typedef typename _Codecvt::state_type state_type; + typedef typename wide_string::traits_type::int_type int_type; + + wstring_convert() + : _Has_berr(false), _Has_werr(false), _Has_state(false) + { + _Init(); + } + + explicit wstring_convert(const _Codecvt *_Pcvt_arg) + : _Has_berr(false), _Has_werr(false), _Has_state(false) + { + _Init(_Pcvt_arg); + } + + wstring_convert(const _Codecvt *_Pcvt_arg, state_type _State_arg) + : _Has_berr(false), _Has_werr(false), _Has_state(true) + { + _Init(_Pcvt_arg); + _State = _State_arg; + } + + explicit wstring_convert(const byte_string& _Berr_arg) + : _Has_berr(true), _Has_werr(false), _Has_state(false), + _Berr(_Berr_arg) + { + _Init(); + } + + wstring_convert(const byte_string& _Berr_arg, + const wide_string& _Werr_arg) + : _Has_berr(true), _Has_werr(true), _Has_state(false), + _Berr(_Berr_arg), _Werr(_Werr_arg) + { + _Init(); + } + + virtual ~wstring_convert() noexcept + { + } + + size_t converted() const noexcept + { + return (_Nconv); + } + + state_type state() const + { + return (_State); + } + + wide_string from_bytes(char _Byte) + { + return (from_bytes(&_Byte, &_Byte + 1)); + } + + wide_string from_bytes(const char *_Ptr) + { + return (from_bytes(_Ptr, _Ptr + :: strlen(_Ptr))); + } + + wide_string from_bytes(const byte_string& _Bstr) + { + const char *_Ptr = _Bstr.c_str(); + return (from_bytes(_Ptr, _Ptr + _Bstr.size())); + } + + wide_string from_bytes(const char *_First, const char *_Last) + { + wide_string _Wbuf, _Wstr; + const char *_First_sav = _First; + + if (!_Has_state) + _State = state_type{}; + _Wbuf.append((:: size_t)_BUF_INC, (_Elem)'\0'); + for (_Nconv = 0; _First != _Last; _Nconv = _First - _First_sav) + { + _Elem *_Dest = &*_Wbuf.begin(); + _Elem *_Dnext; + + switch (_Pcvt->in(_State, + _First, _Last, _First, + _Dest, _Dest + _Wbuf.size(), _Dnext)) + { + case _Codecvt::partial: + case _Codecvt::ok: + if (_Dest < _Dnext) + _Wstr.append(_Dest, (:: size_t)(_Dnext - _Dest)); + else if (_Wbuf.size() < _BUF_MAX) + _Wbuf.append((:: size_t)_BUF_INC, '\0'); + else if (_Has_werr) + return (_Werr); + else + throw range_error("bad conversion"); + break; + + case _Codecvt::noconv: + for (; _First != _Last; ++_First) + _Wstr.append((:: size_t)1, + (_Elem)(unsigned char)*_First); + break; + + default: + if (_Has_werr) + return (_Werr); + else + throw range_error("bad conversion"); + } + } + return (_Wstr); + } + + byte_string to_bytes(_Elem _Char) + { + return (to_bytes(&_Char, &_Char + 1)); + } + + byte_string to_bytes(const _Elem *_Wptr) + { + const _Elem *_Next = _Wptr; + for (; (int_type)*_Next != 0; ++_Next) + ; + return (to_bytes(_Wptr, _Next)); + } + + byte_string to_bytes(const wide_string& _Wstr) + { + const _Elem *_Wptr = _Wstr.c_str(); + return (to_bytes(_Wptr, _Wptr + _Wstr.size())); + } + + byte_string to_bytes(const _Elem *_First, const _Elem *_Last) + { + byte_string _Bbuf, _Bstr; + const _Elem *_First_sav = _First; + + if (!_Has_state) + _State = state_type{}; + _Bbuf.append((:: size_t)_BUF_INC, '\0'); + for (_Nconv = 0; _First != _Last; _Nconv = _First - _First_sav) + { + char *_Dest = &*_Bbuf.begin(); + char *_Dnext; + + switch (_Pcvt->out(_State, + _First, _Last, _First, + _Dest, _Dest + _Bbuf.size(), _Dnext)) + { + case _Codecvt::partial: + case _Codecvt::ok: + if (_Dest < _Dnext) + _Bstr.append(_Dest, (:: size_t)(_Dnext - _Dest)); + else if (_Bbuf.size() < _BUF_MAX) + _Bbuf.append((:: size_t)_BUF_INC, '\0'); + else if (_Has_berr) + return (_Berr); + else + throw range_error("bad conversion"); + break; + + case _Codecvt::noconv: + for (; _First != _Last; ++_First) + _Bstr.append((:: size_t)1, + (char)(int_type)*_First); + break; + + default: + if (_Has_berr) + return (_Berr); + else + throw range_error("bad conversion"); + } + } + return (_Bstr); + } + + wstring_convert(const wstring_convert&) = delete; + wstring_convert& operator=(const wstring_convert&) = delete; + +private: + const _Codecvt *_Pcvt; + locale _Loc; + byte_string _Berr; + wide_string _Werr; + state_type _State; + bool _Has_state; + bool _Has_berr; + bool _Has_werr; + size_t _Nconv; + }; +} + +#pragma warning(pop) +#pragma pack(pop) +# 7 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\locale" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocmes" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +namespace std { + +#pragma warning(push) +#pragma warning(disable: 4275) + +struct messages_base + : public locale::facet + { + typedef int catalog; + + explicit messages_base(size_t _Refs = 0) + : locale::facet(_Refs) + { + } + }; + +#pragma warning(pop) + + +template + class messages + : public messages_base + { +public: + typedef _Elem char_type; + typedef basic_string<_Elem, char_traits<_Elem>, allocator<_Elem> > + string_type; + + catalog open(const string& _Catname, const locale& _Loc) const + { + return (do_open(_Catname, _Loc)); + } + + string_type get(catalog _Catval, int _Set, int _Message, + const string_type& _Dflt) const + { + return (do_get(_Catval, _Set, _Message, _Dflt)); + } + + void close(catalog _Catval) const + { + do_close(_Catval); + } + + static locale::id id; + + explicit messages(size_t _Refs = 0) + : messages_base(_Refs) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + messages(const _Locinfo& _Lobj, size_t _Refs = 0) + : messages_base(_Refs) + { + _Init(_Lobj); + } + + static size_t _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new messages<_Elem>( + _Locinfo(_Ploc->c_str())); + return (6); + } + +protected: + messages(const char *_Locname, size_t _Refs = 0) + : messages_base(_Refs) + { + { _Locinfo _Lobj(_Locname); + _Init(_Lobj); + } + } + + virtual ~messages() noexcept + { + } + + void _Init(const _Locinfo&) + { + } + + virtual catalog do_open(const string&, const locale&) const + { + return (-1); + } + + virtual string_type do_get(catalog, int, int, + const string_type& _Dflt) const + { + return (_Dflt); + } + + virtual void do_close(catalog) const + { + } + }; + + +template + locale::id messages<_Elem>::id; + + +template + class messages_byname + : public messages<_Elem> + { +public: + explicit messages_byname(const char *_Locname, size_t _Refs = 0) + : messages<_Elem>(_Locname, _Refs) + { + } + + explicit messages_byname(const string& _Str, size_t _Refs = 0) + : messages<_Elem>(_Str.c_str(), _Refs) + { + } + +protected: + virtual ~messages_byname() noexcept + { + } + }; +# 152 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocmes" 3 +} + +#pragma warning(pop) +#pragma pack(pop) +# 8 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\locale" 2 3 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocmon" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4275) + +namespace std { + +struct money_base + : public locale::facet + { + enum + { + symbol = '$', sign = '+', space = ' ', value = 'v', none = 'x'}; + typedef int part; + + struct pattern + { + char field[4]; + }; + + money_base(size_t _Refs = 0) + : locale::facet(_Refs) + { + } + }; + + +template + class _Mpunct + : public money_base + { +public: + typedef _Elem char_type; + typedef basic_string<_Elem, char_traits<_Elem>, allocator<_Elem> > + string_type; + + _Elem decimal_point() const + { + return (do_decimal_point()); + } + + _Elem thousands_sep() const + { + return (do_thousands_sep()); + } + + string grouping() const + { + return (do_grouping()); + } + + string_type curr_symbol() const + { + return (do_curr_symbol()); + } + + string_type positive_sign() const + { + return (do_positive_sign()); + } + + string_type negative_sign() const + { + return (do_negative_sign()); + } + + int frac_digits() const + { + return (do_frac_digits()); + } + + pattern pos_format() const + { + return (do_pos_format()); + } + + pattern neg_format() const + { + return (do_neg_format()); + } + + explicit _Mpunct(size_t _Refs, bool _Intl) + : money_base(_Refs), _International(_Intl) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + _Mpunct(const _Locinfo& _Lobj, size_t _Refs, bool _Intl, + bool _Isdef = false) + : money_base(_Refs), _International(_Intl) + { + _Init(_Lobj, _Isdef); + } + +protected: + _Mpunct(const char *_Locname, size_t _Refs, + bool _Intl, bool _Isdef = false) + : money_base(_Refs), _International(_Intl) + { + { _Locinfo _Lobj(_Locname); + _Init(_Lobj, _Isdef); + } + } + + virtual ~_Mpunct() noexcept + { + _Tidy(); + } + + template + void _Getvals(_Elem2, const lconv *_Ptr) + { + _Currencysign = _Maklocstr(_International ? _Ptr->int_curr_symbol : _Ptr->currency_symbol, (_Elem2 *)0, _Cvt); + + _Plussign = _Maklocstr(4 < (unsigned int)_Ptr->p_sign_posn ? "" : _Ptr->positive_sign, (_Elem2 *)0, _Cvt); + + _Minussign = _Maklocstr(4 < (unsigned int)_Ptr->n_sign_posn ? "-" : _Ptr->negative_sign, (_Elem2 *)0, _Cvt); + + _Decimalpoint = _Maklocchr(_Ptr->mon_decimal_point[0], (_Elem2 *)0, _Cvt); + _Kseparator = _Maklocchr(_Ptr->mon_thousands_sep[0], (_Elem2 *)0, _Cvt); + } + + template<> + void _Getvals(wchar_t, const lconv *_Ptr) + { + _Currencysign = (const _Elem *)_Maklocwcs(_International + ? _Ptr->_W_int_curr_symbol : _Ptr->_W_currency_symbol); + _Plussign = (const _Elem *)_Maklocwcs( + 4 < (unsigned int)_Ptr->p_sign_posn + ? L"" : _Ptr->_W_positive_sign); + _Minussign = (const _Elem *)_Maklocwcs( + 4 < (unsigned int)_Ptr->n_sign_posn + ? L"-" : _Ptr->_W_negative_sign); + _Decimalpoint = (_Elem)_Ptr->_W_mon_decimal_point[0]; + _Kseparator = (_Elem)_Ptr->_W_mon_thousands_sep[0]; + } + + void _Init(const _Locinfo& _Lobj, bool _Isdef = false) + { + _Cvt = _Lobj._Getcvt(); + const lconv *_Ptr = _Lobj._Getlconv(); + + _Grouping = 0; + _Currencysign = 0; + _Plussign = 0; + _Minussign = 0; + + try { + _Grouping = _Maklocstr(_Ptr->mon_grouping, (char *)0, _Cvt); + _Getvals((_Elem)0, _Ptr); + } catch (...) { + _Tidy(); + throw; + } + + _Fracdigits = _International ? _Ptr->int_frac_digits + : _Ptr->frac_digits; + if (_Fracdigits < 0 || 127 <= _Fracdigits) + _Fracdigits = 0; + + _Makpat(_Plusformat, _Ptr->p_sep_by_space, + _Ptr->p_cs_precedes, _Ptr->p_sign_posn); + _Makpat(_Minusformat, _Ptr->n_sep_by_space, + _Ptr->n_cs_precedes, _Ptr->n_sign_posn); + + if (_Isdef) + { + :: memcpy(&_Plusformat, "$+xv", 4); + :: memcpy(&_Minusformat, "$+xv", 4); + } + } + + virtual _Elem do_decimal_point() const + { + return (_Decimalpoint); + } + + virtual _Elem do_thousands_sep() const + { + return (_Kseparator); + } + + virtual string do_grouping() const + { + return (string(_Grouping)); + } + + virtual string_type do_curr_symbol() const + { + return (string_type(_Currencysign)); + } + + virtual string_type do_positive_sign() const + { + return (string_type(_Plussign)); + } + + virtual string_type do_negative_sign() const + { + return (string_type(_Minussign)); + } + + virtual int do_frac_digits() const + { + return (_Fracdigits); + } + + virtual pattern do_pos_format() const + { + return (_Plusformat); + } + + virtual pattern do_neg_format() const + { + return (_Minusformat); + } + +private: + void _Makpat(pattern& _Pattern, unsigned int _Sepbyspace, + unsigned int _Symbolprecedes, unsigned int _Signposition) + { + const char *_Ptr = _International || 2 < _Sepbyspace + || 1 < _Symbolprecedes || 4 < _Signposition + ? "$+xv" + : &( + "+v$x" "+v$x" "v$+x" "v+$x" "v$+x" + "+$vx" "+$vx" "$v+x" "+$vx" "$+vx" + "+v $" "+v $" "v $+" "v +$" "v $+" + "+$ v" "+$ v" "$ v+" "+$ v" "$+ v" + "+xv$" "+ v$" "v$ +" "v+ $" "v$ +" + "+x$v" "+ $v" "$v +" "+ $v" "$ +v") + [_Signposition * 4 + + _Symbolprecedes * 20 + + _Sepbyspace * 40]; + + ::memcpy_s((_Pattern.field), (sizeof (_Pattern.field)), (_Ptr), (4)); + } + + void _Tidy() + { + :: free((void *)_Grouping); + :: free((void *)_Currencysign); + :: free((void *)_Plussign); + :: free((void *)_Minussign); + } + + const char *_Grouping; + _Elem _Decimalpoint; + _Elem _Kseparator; + const _Elem *_Currencysign; + const _Elem *_Plussign; + const _Elem *_Minussign; + int _Fracdigits; + pattern _Plusformat; + pattern _Minusformat; + bool _International; + + _Locinfo::_Cvtvec _Cvt; + }; + + +template + class moneypunct + : public _Mpunct<_Elem> + { +public: + static const bool intl; + static locale::id id; + + explicit moneypunct(size_t _Refs = 0) + : _Mpunct<_Elem>(_Refs, _Intl) + { + } + + moneypunct(const _Locinfo& _Lobj, size_t _Refs = 0, bool _Isdef = false) + : _Mpunct<_Elem>(_Lobj, _Refs, _Intl, _Isdef) + { + } + + static size_t _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new moneypunct<_Elem, _Intl>( + _Locinfo(_Ploc->c_str()), 0, true); + return (3); + } + +protected: + moneypunct(const char *_Locname, size_t _Refs = 0) + : _Mpunct<_Elem>(_Locname, _Refs, _Intl) + { + } + + virtual ~moneypunct() noexcept + { + } + }; + + +template + const bool moneypunct<_Elem, _Intl>::intl = _Intl; + + +template + locale::id moneypunct<_Elem, _Intl>::id; + + +template + class moneypunct_byname + : public moneypunct<_Elem, _Intl> + { +public: + explicit moneypunct_byname(const char *_Locname, size_t _Refs = 0) + : moneypunct<_Elem, _Intl>(_Locname, _Refs) + { + } + + explicit moneypunct_byname(const string& _Str, size_t _Refs = 0) + : moneypunct<_Elem, _Intl>(_Str.c_str(), _Refs) + { + } + +protected: + virtual ~moneypunct_byname() noexcept + { + } + }; + + +template > > + class money_get + : public locale::facet + { + typedef moneypunct<_Elem, false> _Mypunct0; + typedef moneypunct<_Elem, true> _Mypunct1; + +public: + typedef _Elem char_type; + typedef _InIt iter_type; + typedef basic_string<_Elem, char_traits<_Elem>, allocator<_Elem> > + string_type; + + _InIt get(_InIt _First, _InIt _Last, + bool _Intl, ios_base& _Iosbase, ios_base::iostate& _State, + long double& _Val) const + { + return (do_get(_First, _Last, _Intl, _Iosbase, _State, _Val)); + } + + _InIt get(_InIt _First, _InIt _Last, + bool _Intl, ios_base& _Iosbase, ios_base::iostate& _State, + string_type& _Val) const + { + return (do_get(_First, _Last, _Intl, _Iosbase, _State, _Val)); + } + + static locale::id id; + + explicit money_get(size_t _Refs = 0) + : locale::facet(_Refs) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + money_get(const _Locinfo& _Lobj, size_t _Refs = 0) + : locale::facet(_Refs) + { + _Init(_Lobj); + } + + static size_t _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new money_get<_Elem, _InIt>( + _Locinfo(_Ploc->c_str())); + return (3); + } + +protected: + virtual ~money_get() noexcept + { + } + + void _Init(const _Locinfo&) + { + } + + virtual _InIt do_get(_InIt _First, _InIt _Last, + bool _Intl, ios_base& _Iosbase, ios_base::iostate& _State, + long double& _Val) const + { + _Elem _Atoms[sizeof ("0123456789-")]; + string _Str = _Getmfld(_First, _Last, _Intl, _Iosbase, _Atoms); + + if (_First == _Last) + _State |= ios_base::eofbit; + if (_Str.size() == 0) + _State |= ios_base::failbit; + else + { + const char *_Eb = _Str.c_str(); + char *_Ep; + int _Errno = 0; + const long double _Ans = + _Stodx_v2(_Eb, &_Ep, 0, &_Errno); + + if (_Ep == _Eb || _Errno != 0) + _State |= ios_base::failbit; + else + _Val = _Ans; + } + return (_First); + } + + virtual _InIt do_get(_InIt _First, _InIt _Last, + bool _Intl, ios_base& _Iosbase, ios_base::iostate& _State, + string_type& _Val) const + { + _Elem _Atoms[sizeof ("0123456789-")]; + string _Str = _Getmfld(_First, _Last, _Intl, _Iosbase, _Atoms); + size_t _Len = _Str.size(); + + if (_First == _Last) + _State |= ios_base::eofbit; + if (_Len == 0) + _State |= ios_base::failbit; + else + { + size_t _Idx = 0; + _Val.resize(_Len); + if (_Str[0] == '-') + _Val[_Idx++] = _Atoms[10]; + for (; _Idx < _Len; ++_Idx) + _Val[_Idx] = _Atoms[_Str[_Idx] - '0']; + } + return (_First); + } + +private: + string _Getmfld(_InIt& _First, _InIt& _Last, + bool _Intl, ios_base& _Iosbase, _Elem *_Atoms) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocmon", 463); + const _Mpunct<_Elem> *_Ppunct_fac; + if (_Intl) + _Ppunct_fac = + &use_facet< _Mypunct1 >(_Iosbase.getloc()); + else + _Ppunct_fac = + &use_facet< _Mypunct0 >(_Iosbase.getloc()); + + bool _Bad = false, _Neg = false; + string_type _Sign; + const money_base::pattern _Pattern = _Ppunct_fac->neg_format(); + string _Val; + size_t _Idx; + static const char _Src[] = {"0123456789-"}; + const ctype<_Elem>& _Ctype_fac = + use_facet< ctype<_Elem> >(_Iosbase.getloc()); + _Ctype_fac.widen(&_Src[0], &_Src[sizeof (_Src)], _Atoms); + + for (size_t _Off = 0; !_Bad && _Off < 4; ++_Off) + switch (_Pattern.field[_Off]) + { + case money_base::symbol: + { + string_type _Symbol = _Ppunct_fac->curr_symbol(); + typename string_type::const_iterator _Source; + + if (!(_Iosbase.flags() & ios_base::showbase) + && _First != _Last && *_First != *_Symbol.c_str()) + _Symbol.erase(); + else if (_Off == 3 && _Sign.size() <= 1 + && (_First == _Last || *_First != *_Symbol.c_str())) + _Symbol.erase(); + + for (_Source = _Symbol.begin(); + _First != _Last && _Source != _Symbol.end() + && *_First == *_Source; ++_Source, (void)++_First) + ; + + if (_Source != _Symbol.end()) + _Bad = true; + break; + } + + case money_base::sign: + if (_First == _Last) + ; + else if (0 < (_Ppunct_fac->positive_sign()).size() + && _Ppunct_fac->positive_sign()[0] == *_First) + { + ++_First; + _Sign = _Ppunct_fac->positive_sign(); + } + else if (0 < (_Ppunct_fac->negative_sign()).size() + && _Ppunct_fac->negative_sign()[0] == *_First) + { + ++_First; + _Sign = _Ppunct_fac->negative_sign(); + _Neg = true; + } + else if (0 == (_Ppunct_fac->positive_sign()).size()) + ; + else if (0 == (_Ppunct_fac->negative_sign()).size()) + _Neg = true; + break; + + case money_base::value: + { + int _Fracdigseen = 0; + int _Fracdigits = _Ppunct_fac->frac_digits(); + const string _Grouping = _Ppunct_fac->grouping(); + const _Elem _Kseparator = _Grouping.size() == 0 + ? (_Elem)0 : _Ppunct_fac->thousands_sep(); + + if (_Kseparator == (_Elem)0 + || 127 <= (unsigned char)*_Grouping.c_str()) + for (; _First != _Last + && (_Idx = _Find_elem(_Atoms, *_First)) < 10; + ++_First) + _Val += _Src[_Idx]; + else + { + string _Groups((size_t)1, '\0'); + size_t _Group = 0; + + for (; _First != _Last; ++_First) + if ((_Idx = _Find_elem(_Atoms, *_First)) < 10) + { + _Val += _Src[_Idx]; + if (_Groups[_Group] != 127) + ++_Groups[_Group]; + } + else if (_Groups[_Group] == '\0' + || *_First != _Kseparator) + break; + else + { + _Groups.append((size_t)1, '\0'); + ++_Group; + } + + if (_Group == 0) + ; + else if ('\0' < _Groups[_Group]) + ++_Group; + else + _Bad = true; + + for (const char *_Pg = _Grouping.c_str(); + !_Bad && 0 < _Group; ) + if (*_Pg == 127) + break; + else if ((0 < --_Group && *_Pg != _Groups[_Group]) + || (0 == _Group && *_Pg < _Groups[_Group])) + _Bad = true; + else if ('\0' < _Pg[1]) + ++_Pg; + if (_Bad) + break; + } + + const _Elem _Point = _Ppunct_fac->decimal_point(); + if (_First != _Last + && _Point != (_Elem)0 + && *_First == _Point) + { + while (++_First != _Last + && _Fracdigseen < _Fracdigits + && (_Idx = _Find_elem(_Atoms, *_First)) < 10) + _Val += _Src[_Idx], ++_Fracdigseen; + + if (_Fracdigseen < _Fracdigits) + _Bad = true; + } + + if (_Val.size() == 0) + _Bad = true; + else + for (; _Fracdigseen < _Fracdigits; ++_Fracdigseen) + _Val += '0'; + break; + } + + case money_base::space: + case money_base::none: + { + if (_Off == 3) + break; + + bool _Seen = false; + + for (; _First != _Last + && _Ctype_fac.is(ctype_base::space, *_First); ++_First) + _Seen = true; + if (_Pattern.field[_Off] == money_base::space && !_Seen) + _Bad = true; + } + } + + if (!_Bad && 1 < _Sign.size()) + { + typename string_type::const_iterator _Source; + + for (_Source = _Sign.begin(); ++_Source != _Sign.end() + && _First != _Last && *_First == *_Source; ++_First) + ; + if (_Source != _Sign.end()) + _Bad = true; + } + + if (_Bad) + _Val.erase(); + else if (_Neg) + _Val.insert((size_t)0, (size_t)1, '-'); + return (_Val); + } + }; + + +template + locale::id money_get<_Elem, _InIt>::id; + + +template > > + class money_put + : public locale::facet + { + typedef moneypunct<_Elem, false> _Mypunct0; + typedef moneypunct<_Elem, true> _Mypunct1; + +public: + typedef _Elem char_type; + typedef _OutIt iter_type; + typedef basic_string<_Elem, char_traits<_Elem>, allocator<_Elem> > + string_type; + + _OutIt put(_OutIt _Dest, + bool _Intl, ios_base& _Iosbase, _Elem _Fill, + long double _Val) const + { + return (do_put(_Dest, _Intl, _Iosbase, _Fill, _Val)); + } + + _OutIt put(_OutIt _Dest, + bool _Intl, ios_base& _Iosbase, _Elem _Fill, + const string_type& _Val) const + { + return (do_put(_Dest, _Intl, _Iosbase, _Fill, _Val)); + } + + static locale::id id; + + explicit money_put(size_t _Refs = 0) + : locale::facet(_Refs) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + money_put(const _Locinfo& _Lobj, size_t _Refs = 0) + : locale::facet(_Refs) + { + _Init(_Lobj); + } + + static size_t _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new money_put<_Elem, _OutIt>( + _Locinfo(_Ploc->c_str())); + return (3); + } + +protected: + virtual ~money_put() noexcept + { + } + + void _Init(const _Locinfo&) + { + } + + virtual _OutIt do_put(_OutIt _Dest, + bool _Intl, ios_base& _Iosbase, _Elem _Fill, + long double _Val) const + { + bool _Negative = false; + if (_Val < 0) + _Negative = true, _Val = -_Val; + + size_t _Exp; + for (_Exp = 0; 1e35 <= _Val && _Exp < 5000; _Exp += 10) + _Val /= 1e10; + + char _Buf[40]; + + int _Count = :: sprintf_s(_Buf, sizeof (_Buf), "%.0Lf", + _Val); + + if (_Count < 0) + return (_Dest); + + const ctype<_Elem>& _Ctype_fac = + use_facet< ctype<_Elem> >(_Iosbase.getloc()); + const _Elem _E0 = _Ctype_fac.widen('0'); + + string_type _Val2(_Count, (_Elem)0); + _Ctype_fac.widen(&_Buf[0], &_Buf[_Count], &_Val2[0]); + _Val2.append(_Exp, _E0); + return (_Putmfld(_Dest, _Intl, _Iosbase, _Fill, + _Negative, _Val2, _E0)); + } + + virtual _OutIt do_put(_OutIt _Dest, + bool _Intl, ios_base& _Iosbase, _Elem _Fill, + const string_type& _Val) const + { + static const char _Src[] = {"0123456789-"}; + _Elem _Atoms[sizeof (_Src)]; + const ctype<_Elem>& _Ctype_fac = + use_facet< ctype<_Elem> >(_Iosbase.getloc()); + _Ctype_fac.widen(&_Src[0], &_Src[sizeof (_Src)], _Atoms); + + bool _Negative = false; + size_t _Idx0 = 0; + if (!_Val.empty() && _Val[0] == _Atoms[10]) + _Negative = true, ++_Idx0; + + size_t _Size = _Val.size(); + size_t _Idx = _Idx0; + for (; _Idx < _Size && _Find_elem(_Atoms, _Val[_Idx]) < 10; ++_Idx) + ; + string_type _Val2(&_Val[_Idx0], (size_t)(_Idx - _Idx0)); + if (_Val2.empty()) + _Val2.append((size_t)1, _Atoms[0]); + + return (_Putmfld(_Dest, _Intl, _Iosbase, _Fill, + _Negative, _Val2, _Atoms[0])); + } + +private: + _OutIt _Putmfld(_OutIt _Dest, + bool _Intl, ios_base& _Iosbase, _Elem _Fill, + bool _Neg, string_type _Val, _Elem _E0) const + { + _Debug_pointer(_Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocmon", 772); + const _Mpunct<_Elem> *_Ppunct_fac; + if (_Intl) + _Ppunct_fac = + &use_facet< _Mypunct1 >(_Iosbase.getloc()); + else + _Ppunct_fac = + &use_facet< _Mypunct0 >(_Iosbase.getloc()); + + const string _Grouping = _Ppunct_fac->grouping(); + int _Ifracdigits = _Ppunct_fac->frac_digits(); + unsigned int _Fracdigits = _Ifracdigits < 0 ? -_Ifracdigits + : _Ifracdigits; + + if (_Val.size() <= _Fracdigits) + _Val.insert((size_t)0, _Fracdigits - _Val.size() + 1, _E0); + else if (*_Grouping.c_str() != 127 && '\0' < *_Grouping.c_str()) + { + const _Elem _Kseparator = _Ppunct_fac->thousands_sep(); + const char *_Pg = _Grouping.c_str(); + size_t _Off = _Val.size() - _Fracdigits; + + while (*_Pg != 127 && '\0' < *_Pg + && (size_t)*_Pg < _Off) + { + _Val.insert(_Off -= *_Pg, (size_t)1, _Kseparator); + if ('\0' < _Pg[1]) + ++_Pg; + } + } + + money_base::pattern _Pattern; + string_type _Sign; + if (_Neg) + { + _Pattern = _Ppunct_fac->neg_format(); + _Sign = _Ppunct_fac->negative_sign(); + } + else + { + _Pattern = _Ppunct_fac->pos_format(); + _Sign = _Ppunct_fac->positive_sign(); + } + + string_type _Symbol; + if (_Iosbase.flags() & ios_base::showbase) + _Symbol = _Ppunct_fac->curr_symbol(); + + bool _Intern = false; + size_t _Fillcount, _Off; + for (_Fillcount = 0, _Off = 0; _Off < 4; ++_Off) + switch (_Pattern.field[_Off]) + { + case money_base::symbol: + _Fillcount += _Symbol.size(); + break; + + case money_base::sign: + _Fillcount += _Sign.size(); + break; + + case money_base::value: + _Fillcount += _Val.size() + (0 < _Fracdigits ? 1 : 0) + + (_Val.size() <= _Fracdigits + ? _Fracdigits - _Val.size() + 1 : 0); + break; + + case money_base::space: + ++_Fillcount; + + + case money_base::none: + if (_Off != 3) + _Intern = true; + break; + } + + _Fillcount = _Iosbase.width() <= 0 + || (size_t)_Iosbase.width() <= _Fillcount + ? 0 : (size_t)_Iosbase.width() - _Fillcount; + + ios_base::fmtflags _Afl = + _Iosbase.flags() & ios_base::adjustfield; + if (_Afl != ios_base::left + && (_Afl != ios_base::internal || !_Intern)) + { + _Dest = _Rep(_Dest, _Fill, _Fillcount); + _Fillcount = 0; + } + + for (_Off = 0; _Off < 4; ++_Off) + switch (_Pattern.field[_Off]) + { + case money_base::symbol: + _Dest = _Put(_Dest, _Symbol.begin(), _Symbol.size()); + break; + + case money_base::sign: + if (0 < _Sign.size()) + _Dest = _Put(_Dest, _Sign.begin(), 1); + break; + + case money_base::value: + if (_Fracdigits == 0) + _Dest = _Put(_Dest, _Val.begin(), + _Val.size()); + else if (_Val.size() <= _Fracdigits) + { + *_Dest++ = _E0; + *_Dest++ = _Ppunct_fac->decimal_point(); + _Dest = _Rep(_Dest, _E0, + _Fracdigits - _Val.size()); + _Dest = _Put(_Dest, _Val.begin(), _Val.size()); + } + else + { + _Dest = _Put(_Dest, _Val.begin(), + _Val.size() - _Fracdigits); + *_Dest++ = _Ppunct_fac->decimal_point(); + _Dest = _Put(_Dest, _Val.end() - _Fracdigits, + _Fracdigits); + } + break; + + case money_base::space: + _Dest = _Rep(_Dest, _Fill, 1); + + + case money_base::none: + if (_Afl == ios_base::internal) + { + _Dest = _Rep(_Dest, _Fill, _Fillcount); + _Fillcount = 0; + } + } + + if (1 < _Sign.size()) + _Dest = _Put(_Dest, _Sign.begin() + 1, + _Sign.size() - 1); + _Iosbase.width(0); + return (_Rep(_Dest, _Fill, _Fillcount)); + } + + static _OutIt _Put(_OutIt _Dest, + typename string_type::const_iterator _Source, size_t _Count) + { + for (; 0 < _Count; --_Count, (void)++_Dest, ++_Source) + *_Dest = *_Source; + return (_Dest); + } + + static _OutIt _Rep(_OutIt _Dest, + _Elem _Ch, size_t _Count) + { + for (; 0 < _Count; --_Count, (void)++_Dest) + *_Dest = _Ch; + return (_Dest); + } + }; + + +template + locale::id money_put<_Elem, _OutIt>::id; +# 982 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xlocmon" 3 +} + + +#pragma warning(pop) +#pragma pack(pop) +# 9 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\locale" 2 3 + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ctime" 1 3 +# 13 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ctime" 3 +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\time.h" 1 3 +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\time.h" 3 +#pragma pack(push, 8) +# 14 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\time.h" 3 + extern "C" { +# 23 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\time.h" 3 +typedef long clock_t; + +struct _timespec32 +{ + __time32_t tv_sec; + long tv_nsec; +}; + +struct _timespec64 +{ + __time64_t tv_sec; + long tv_nsec; +}; + + + struct timespec + { + time_t tv_sec; + long tv_nsec; + }; +# 60 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\time.h" 3 + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_get_daylight" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + int* __cdecl __daylight(void); + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_get_dstbias" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + long* __cdecl __dstbias(void); + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_get_timezone" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + long* __cdecl __timezone(void); + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_get_tzname" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char** __cdecl __tzname(void); + + + + + errno_t __cdecl _get_daylight( + int* _Daylight + ); + + + errno_t __cdecl _get_dstbias( + long* _DaylightSavingsBias + ); + + + errno_t __cdecl _get_timezone( + long* _TimeZone + ); + + + errno_t __cdecl _get_tzname( + size_t* _ReturnValue, + char* _Buffer, + size_t _SizeInBytes, + int _Index + ); +# 115 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\time.h" 3 + __declspec(deprecated("This function or variable may be unsafe. Consider using " "asctime_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl asctime( + struct tm const* _Tm + ); + + + + + errno_t __cdecl asctime_s( + char* _Buffer, + size_t _SizeInBytes, + struct tm const* _Tm + ); + + +extern "C++" { template inline errno_t __cdecl asctime_s(char (&_Buffer)[_Size], struct tm const* _Time) throw() { return asctime_s(_Buffer, _Size, _Time); } } + + + + + + + clock_t __cdecl clock(void); + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_ctime32_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl _ctime32( + __time32_t const* _Time + ); + + + errno_t __cdecl _ctime32_s( + char* _Buffer, + size_t _SizeInBytes, + __time32_t const* _Time + ); + +extern "C++" { template inline errno_t __cdecl _ctime32_s(char (&_Buffer)[_Size], __time32_t const* _Time) throw() { return _ctime32_s(_Buffer, _Size, _Time); } } + + + + + + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_ctime64_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + char* __cdecl _ctime64( + __time64_t const* _Time + ); + + + errno_t __cdecl _ctime64_s( + char* _Buffer, + size_t _SizeInBytes, + __time64_t const* _Time + ); + +extern "C++" { template inline errno_t __cdecl _ctime64_s(char (&_Buffer)[_Size], __time64_t const* _Time) throw() { return _ctime64_s(_Buffer, _Size, _Time); } } + + + + + + + double __cdecl _difftime32( + __time32_t _Time1, + __time32_t _Time2 + ); + + + double __cdecl _difftime64( + __time64_t _Time1, + __time64_t _Time2 + ); + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_gmtime32_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + struct tm* __cdecl _gmtime32( + __time32_t const* _Time + ); + + + errno_t __cdecl _gmtime32_s( + struct tm* _Tm, + __time32_t const* _Time + ); + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_gmtime64_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + struct tm* __cdecl _gmtime64( + __time64_t const* _Time + ); + + + errno_t __cdecl _gmtime64_s( + struct tm* _Tm, + __time64_t const* _Time + ); + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_localtime32_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + struct tm* __cdecl _localtime32( + __time32_t const* _Time + ); + + + errno_t __cdecl _localtime32_s( + struct tm* _Tm, + __time32_t const* _Time + ); + + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "_localtime64_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + struct tm* __cdecl _localtime64( + __time64_t const* _Time + ); + + + errno_t __cdecl _localtime64_s( + struct tm* _Tm, + __time64_t const* _Time + ); + + + __time32_t __cdecl _mkgmtime32( + struct tm* _Tm + ); + + + __time64_t __cdecl _mkgmtime64( + struct tm* _Tm + ); + + + __time32_t __cdecl _mktime32( + struct tm* _Tm + ); + + + __time64_t __cdecl _mktime64( + struct tm* _Tm + ); + + + + size_t __cdecl strftime( + char* _Buffer, + size_t _SizeInBytes, + char const* _Format, + struct tm const* _Tm + ); + + + + size_t __cdecl _strftime_l( + char* _Buffer, + size_t _MaxSize, + char const* _Format, + struct tm const* _Tm, + _locale_t _Locale + ); + + + errno_t __cdecl _strdate_s( + char* _Buffer, + size_t _SizeInBytes + ); + +extern "C++" { template inline errno_t __cdecl _strdate_s(char (&_Buffer)[_Size]) throw() { return _strdate_s(_Buffer, _Size); } } + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_strdate_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char* __cdecl _strdate( char *_Buffer); + + + + + + errno_t __cdecl _strtime_s( + char* _Buffer, + size_t _SizeInBytes + ); + +extern "C++" { template inline errno_t __cdecl _strtime_s(char (&_Buffer)[_Size]) throw() { return _strtime_s(_Buffer, _Size); } } + + + + +__declspec(deprecated("This function or variable may be unsafe. Consider using " "_strtime_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) char* __cdecl _strtime( char *_Buffer); + + + + + __time32_t __cdecl _time32( + __time32_t* _Time + ); + + __time64_t __cdecl _time64( + __time64_t* _Time + ); + + + + int __cdecl _timespec32_get( + struct _timespec32* _Ts, + int _Base + ); + + + + int __cdecl _timespec64_get( + struct _timespec64* _Ts, + int _Base + ); +# 341 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\time.h" 3 + void __cdecl _tzset(void); + + + __declspec(deprecated("This function or variable has been superceded by newer library " "or operating system functionality. Consider using " "GetLocalTime" " " "instead. See online help for details.")) + unsigned __cdecl _getsystime( + struct tm* _Tm + ); + + __declspec(deprecated("This function or variable has been superceded by newer library " "or operating system functionality. Consider using " "SetLocalTime" " " "instead. See online help for details.")) + unsigned __cdecl _setsystime( + struct tm* _Tm, + unsigned _Milliseconds + ); +# 474 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\time.h" 3 + __declspec(deprecated("This function or variable may be unsafe. Consider using " "ctime_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + static __inline char* __cdecl ctime( + time_t const* const _Time + ) + { +#pragma warning(push) +#pragma warning(disable: 4996) + return _ctime64(_Time); +#pragma warning(pop) + } + + + static __inline double __cdecl difftime( + time_t const _Time1, + time_t const _Time2 + ) + { + return _difftime64(_Time1, _Time2); + } + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "gmtime_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + static __inline struct tm* __cdecl gmtime( + time_t const* const _Time) + { +#pragma warning(push) +#pragma warning(disable: 4996) + return _gmtime64(_Time); +#pragma warning(pop) + } + + __declspec(deprecated("This function or variable may be unsafe. Consider using " "localtime_s" " instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. " "See online help for details.")) + static __inline struct tm* __cdecl localtime( + time_t const* const _Time + ) + { +#pragma warning(push) +#pragma warning(disable: 4996) + return _localtime64(_Time); +#pragma warning(pop) + } + + + static __inline time_t __cdecl _mkgmtime( + struct tm* const _Tm + ) + { + return _mkgmtime64(_Tm); + } + + + static __inline time_t __cdecl mktime( + struct tm* const _Tm + ) + { + return _mktime64(_Tm); + } + + static __inline time_t __cdecl time( + time_t* const _Time + ) + { + return _time64(_Time); + } + + + static __inline int __cdecl timespec_get( + struct timespec* const _Ts, + int const _Base + ) + { + return _timespec64_get((struct _timespec64*)_Ts, _Base); + } + + + + static __inline errno_t __cdecl ctime_s( + char* const _Buffer, + size_t const _SizeInBytes, + time_t const* const _Time + ) + { + return _ctime64_s(_Buffer, _SizeInBytes, _Time); + } + + + static __inline errno_t __cdecl gmtime_s( + struct tm* const _Tm, + time_t const* const _Time + ) + { + return _gmtime64_s(_Tm, _Time); + } + + + static __inline errno_t __cdecl localtime_s( + struct tm* const _Tm, + time_t const* const _Time + ) + { + return _localtime64_s(_Tm, _Time); + } +# 593 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\time.h" 3 + __declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C " "and C++ conformant name: " "_tzset" ". See online help for details.")) void __cdecl tzset(void); + + + + + + +} +# 600 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/ucrt\\time.h" 3 +#pragma pack(pop) +# 13 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ctime" 2 3 + + + + +namespace std { +using :: clock_t; using :: size_t; +using :: time_t; using :: tm; +using :: asctime; using :: clock; using :: ctime; +using :: difftime; using :: gmtime; using :: localtime; +using :: mktime; using :: strftime; using :: time; +} +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime" 2 3 + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4275) + +namespace std { + +struct time_base + : public locale::facet + { + enum dateorder + { + no_order, dmy, mdy, ymd, ydm}; + + time_base(size_t _Refs = 0) + : locale::facet(_Refs) + { + } + + ~time_base() noexcept + { + } + }; + + +template > > + class time_get + : public time_base + { +public: + typedef _Elem char_type; + typedef _InIt iter_type; + typedef ctype<_Elem> _Ctype; + + static locale::id id; + + dateorder date_order() const + { + return (do_date_order()); + } + + _InIt get_time(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, tm *_Pt) const + { + return (do_get_time(_First, _Last, _Iosbase, _State, _Pt)); + } + + _InIt get_date(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, tm *_Pt) const + { + return (do_get_date(_First, _Last, _Iosbase, _State, _Pt)); + } + + _InIt get_weekday(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, tm *_Pt) const + { + return (do_get_weekday(_First, _Last, _Iosbase, _State, _Pt)); + } + + _InIt get_monthname(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, tm *_Pt) const + { + return (do_get_monthname(_First, _Last, _Iosbase, _State, _Pt)); + } + + _InIt get_year(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, tm *_Pt) const + { + return (do_get_year(_First, _Last, _Iosbase, _State, _Pt)); + } + + _InIt get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, tm *_Pt, + char _Specifier, char _Modifier = '\0') const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 87); + _Debug_pointer(_Pt, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 88); + return (do_get(_First, _Last, _Iosbase, _State, _Pt, + _Specifier, _Modifier)); + } + + _InIt get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, tm *_Pt, + const _Elem *_Fmtfirst, const _Elem *_Fmtlast) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 97); + _Debug_pointer(_Pt, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 98); + _Debug_range(_Fmtfirst, _Fmtlast, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 99); + const _Ctype& _Ctype_fac = use_facet< _Ctype >(_Iosbase.getloc()); + + _State = ios_base::goodbit; + + for (; _Fmtfirst != _Fmtlast; ++_Fmtfirst) + if (_Ctype_fac.narrow(*_Fmtfirst) != '%') + { + if (_Ctype_fac.is(_Ctype::space, *_Fmtfirst)) + for (; _First != _Last + && _Ctype_fac.is(_Ctype::space, *_First); ++_First) + ; + else if (*_First != *_Fmtfirst) + { + _State |= ios_base::failbit; + break; + } + else + ++_First; + } + else if (++_Fmtfirst == _Fmtlast) + { + if (*_First != _Fmtfirst[-1]) + _State |= ios_base::failbit; + else + ++_First; + break; + } + else + { + char _Specifier = _Ctype_fac.narrow(*_Fmtfirst); + char _Modifier = '\0'; + _Elem _Percent = _Fmtfirst[-1]; + + if (_Specifier != 'E' && _Specifier != 'O' + && _Specifier != 'Q' && _Specifier != '#') + ; + else if (++_Fmtfirst == _Fmtlast) + { + if (*_First != _Percent + || ++_First == _Last + || _Ctype_fac.narrow(*_First) != _Specifier) + _State |= ios_base::failbit; + else + ++_First; + break; + } + else + { + _Modifier = _Specifier; + _Specifier = _Ctype_fac.narrow(*_Fmtfirst); + } + + _First = do_get(_First, _Last, _Iosbase, _State, _Pt, + _Specifier, _Modifier); + } + if (_First == _Last) + _State |= ios_base::eofbit; + return (_First); + } + + explicit time_get(size_t _Refs = 0) + : time_base(_Refs) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + time_get(const _Locinfo& _Lobj, size_t _Refs = 0) + : time_base(_Refs) + { + _Init(_Lobj); + } + + static size_t __cdecl _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new time_get<_Elem, _InIt>( + _Locinfo(_Ploc->c_str())); + return (5); + } + +protected: + virtual ~time_get() noexcept + { + _Tidy(); + } + + time_get(const char *_Locname, size_t _Refs = 0) + : time_base(_Refs) + { + { _Locinfo _Lobj(_Locname); + _Init(_Lobj); + } + } + + template + void _Getvals(_Elem2, const _Locinfo& _Lobj) + { + _Cvt = _Lobj._Getcvt(); + _Days = _Maklocstr(_Lobj._Getdays(), (_Elem *)0, _Cvt); + _Months = _Maklocstr(_Lobj._Getmonths(), (_Elem *)0, _Cvt); + _Ampm = _Maklocstr(":AM:am:PM:pm", (_Elem *)0, _Cvt); + } + + template<> + void _Getvals(wchar_t, const _Locinfo& _Lobj) + { + _Cvt = _Lobj._Getcvt(); + _Days = (const _Elem *)_Maklocwcs( + (const wchar_t *)_Lobj._W_Getdays()); + _Months = (const _Elem *)_Maklocwcs( + (const wchar_t *)_Lobj._W_Getmonths()); + _Ampm = (const _Elem *)_Maklocwcs(L":AM:am:PM:pm"); + } + + void _Init(const _Locinfo& _Lobj) + { + _Days = 0; + _Months = 0; + _Ampm = 0; + + try { + _Getvals((_Elem)0, _Lobj); + + _Dateorder = (dateorder)_Lobj._Getdateorder(); + + } catch (...) { + _Tidy(); + throw; + } + } + + virtual dateorder do_date_order() const + { + return (_Dateorder); + } + + virtual _InIt do_get_time( + _InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, tm *_Pt) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 243); + _Debug_pointer(_Pt, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 244); + const _Ctype& _Ctype_fac = use_facet< _Ctype >(_Iosbase.getloc()); + + _State |= _Getint(_First, _Last, 0, 23, + _Pt->tm_hour, _Ctype_fac); + + if (_State != ios_base::goodbit || _Ctype_fac.narrow(*_First) != ':') + _State |= ios_base::failbit; + else + _State |= _Getint(++_First, _Last, 0, 59, + _Pt->tm_min, _Ctype_fac); + + if (_State != ios_base::goodbit || _Ctype_fac.narrow(*_First) != ':') + _State |= ios_base::failbit; + else + _State |= _Getint(++_First, _Last, 0, 59, + _Pt->tm_sec, _Ctype_fac); + return (_First); + } + + virtual _InIt do_get_date( + _InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, tm *_Pt) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 268); + _Debug_pointer(_Pt, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 269); + const _Ctype& _Ctype_fac = use_facet< _Ctype >(_Iosbase.getloc()); + + dateorder _Dorder = date_order(); + if (_Dorder == no_order) + _Dorder = mdy; + + if (_First == _Last) + ; + else if (!_Ctype_fac.is(_Ctype::digit, *_First)) + { + _First = get_monthname(_First, _Last, _Iosbase, _State, _Pt); + _Dorder = mdy; + } + else if (_Dorder == mdy) + { + _State |= _Getint(_First, _Last, 1, 12, + _Pt->tm_mon, _Ctype_fac); + --_Pt->tm_mon; + } + else if (_Dorder == dmy) + _State |= _Getint(_First, _Last, 1, 31, + _Pt->tm_mday, _Ctype_fac); + else + _First = get_year(_First, _Last, _Iosbase, _State, _Pt); + + while (_First != _Last && _Ctype_fac.is(_Ctype::space, *_First)) + ++_First; + + if (_First != _Last) + { + char _Ch = _Ctype_fac.narrow(*_First); + if (_Ch == ':' || _Ch == ',' || _Ch == '/') + ++_First; + } + while (_First != _Last && _Ctype_fac.is(_Ctype::space, *_First)) + ++_First; + + if (_First == _Last) + ; + else if (!_Ctype_fac.is(_Ctype::digit, *_First)) + if (_Dorder == mdy) + _State |= ios_base::failbit; + else + { + _First = get_monthname(_First, _Last, _Iosbase, _State, _Pt); + if (_Dorder == ydm) + _Dorder = ymd; + } + else if (_Dorder == dmy || _Dorder == ymd) + { + _State |= _Getint(_First, _Last, 1, 12, + _Pt->tm_mon, _Ctype_fac); + --_Pt->tm_mon; + } + else + _State |= _Getint(_First, _Last, 1, 31, + _Pt->tm_mday, _Ctype_fac); + + while (_First != _Last && _Ctype_fac.is(_Ctype::space, *_First)) + ++_First; + if (_First != _Last) + { + char _Ch = _Ctype_fac.narrow(*_First); + if (_Ch == ':' || _Ch == ',' || _Ch == '/') + ++_First; + } + while (_First != _Last && _Ctype_fac.is(_Ctype::space, *_First)) + ++_First; + + if (_First == _Last) + _State |= ios_base::failbit; + else if (!_Ctype_fac.is(_Ctype::digit, *_First)) + if (_Dorder != ydm) + _State |= ios_base::failbit; + else + _First = get_monthname(_First, _Last, _Iosbase, _State, _Pt); + else if (_Dorder == ydm) + { + _State |= _Getint(_First, _Last, 1, 12, + _Pt->tm_mon, _Ctype_fac); + --_Pt->tm_mon; + } + else if (_Dorder == ymd) + _State |= _Getint(_First, _Last, 1, 31, + _Pt->tm_mday, _Ctype_fac); + else + _First = get_year(_First, _Last, _Iosbase, _State, _Pt); + + if (_First == _Last) + _State |= ios_base::eofbit; + return (_First); + } + + virtual _InIt do_get_weekday( + _InIt _First, _InIt _Last, + ios_base&, ios_base::iostate& _State, tm *_Pt) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 367); + _Debug_pointer(_Pt, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 368); + int _Num = _Getloctxt(_First, _Last, (size_t)0, _Days); + + if (_Num < 0) + _State |= ios_base::failbit; + else + _Pt->tm_wday = _Num >> 1; + return (_First); + } + + virtual _InIt do_get_monthname( + _InIt _First, _InIt _Last, + ios_base&, ios_base::iostate& _State, tm *_Pt) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 382); + _Debug_pointer(_Pt, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 383); + int _Num = _Getloctxt(_First, _Last, (size_t)0, _Months); + + if (_Num < 0) + _State |= ios_base::failbit; + else + _Pt->tm_mon = _Num >> 1; + return (_First); + } + + virtual _InIt do_get_year( + _InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, tm *_Pt) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 397); + _Debug_pointer(_Pt, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 398); + const _Ctype& _Ctype_fac = use_facet< _Ctype >(_Iosbase.getloc()); + + int _Ans = 0; + ios_base::iostate _Res = _Getint(_First, _Last, 0, 9999, + _Ans, _Ctype_fac); + + _State |= _Res; + if (_Res & ios_base::failbit) + ; + else if (_Ans < 69) + _Pt->tm_year = _Ans + 100; + else if (_Ans < 100) + _Pt->tm_year = _Ans; + else + _Pt->tm_year = _Ans - 1900; + return (_First); + } + + virtual _InIt do_get(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, tm *_Pt, + char _Specifier, char = 0) const + { + const _Ctype& _Ctype_fac = use_facet< _Ctype >(_Iosbase.getloc()); + int _Ans = 0; + + _State = ios_base::goodbit; + + switch (_Specifier) + { + case 'a': + case 'A': + _First = get_weekday(_First, _Last, _Iosbase, _State, _Pt); + break; + + case 'b': + case 'B': + case 'h': + _First = get_monthname(_First, _Last, _Iosbase, _State, _Pt); + break; + + case 'c': + _First = _Getfmt(_First, _Last, _Iosbase, _State, _Pt, + "%b %d %H : %M : %S %Y"); + break; + + case 'C': + _State |= _Getint(_First, _Last, 0, 99, + _Ans, _Ctype_fac); + if (!(_State & ios_base::failbit)) + _Pt->tm_year = _Ans * 100 - 1900; + break; + + case 'd': + case 'e': + _State |= _Getint(_First, _Last, 1, 31, + _Pt->tm_mday, _Ctype_fac); + break; + + case 'D': + _First = _Getfmt(_First, _Last, _Iosbase, _State, _Pt, + "%m / %d / %y"); + break; + + case 'H': + _State |= _Getint(_First, _Last, 0, 23, + _Pt->tm_hour, _Ctype_fac); + break; + + case 'I': + _State |= _Getint(_First, _Last, 1, 12, + _Ans, _Ctype_fac); + if (!(_State & ios_base::failbit)) + _Pt->tm_hour = _Ans == 12 ? 0 : _Ans; + break; + + case 'j': + _State |= _Getint(_First, _Last, 1, 366, + _Pt->tm_yday, _Ctype_fac); + break; + + case 'm': + _State |= _Getint(_First, _Last, 1, 12, + _Ans, _Ctype_fac); + if (!(_State & ios_base::failbit)) + _Pt->tm_mon = _Ans - 1; + break; + + case 'M': + _State |= _Getint(_First, _Last, 0, 59, + _Pt->tm_min, _Ctype_fac); + break; + + case 'n': + case 't': + _First = _Getfmt(_First, _Last, _Iosbase, _State, _Pt, + " "); + break; + + case 'p': + _Ans = _Getloctxt(_First, _Last, (size_t)0, ":AM:am:PM:pm"); + if (_Ans < 0) + _State |= ios_base::failbit; + else if (1 < _Ans) + _Pt->tm_hour += 12; + break; + + case 'r': + _First = _Getfmt(_First, _Last, _Iosbase, _State, _Pt, + "%I : %M : %S %p"); + break; + + case 'R': + _First = _Getfmt(_First, _Last, _Iosbase, _State, _Pt, + "%H : %M"); + break; + + case 'S': + _State |= _Getint(_First, _Last, 0, 60, + _Pt->tm_sec, _Ctype_fac); + break; + + case 'T': + case 'X': + _First = _Getfmt(_First, _Last, _Iosbase, _State, _Pt, + "%H : %M : %S"); + break; + + case 'U': + _State |= _Getint(_First, _Last, 0, 53, + _Pt->tm_yday, _Ctype_fac); + break; + + case 'w': + _State |= _Getint(_First, _Last, 0, 6, + _Pt->tm_wday, _Ctype_fac); + break; + + case 'W': + _State |= _Getint(_First, _Last, 0, 53, + _Pt->tm_yday, _Ctype_fac); + break; + + case 'x': + _First = _Getfmt(_First, _Last, _Iosbase, _State, _Pt, + "%d / %m / %y"); + break; + + case 'y': + _State |= _Getint(_First, _Last, 0, 99, + _Ans, _Ctype_fac); + if (!(_State & ios_base::failbit)) + _Pt->tm_year = _Ans < 69 ? _Ans + 100 : _Ans; + break; + + case 'Y': + _First = get_year(_First, _Last, _Iosbase, _State, _Pt); + break; + + default: + _State |= ios_base::failbit; + } + + if (_First == _Last) + _State |= ios_base::eofbit; + return (_First); + } + + _InIt _Getfmt(_InIt _First, _InIt _Last, + ios_base& _Iosbase, ios_base::iostate& _State, tm *_Pt, + const char *_Fmtfirst) const + { + const _Ctype& _Ctype_fac = use_facet< _Ctype >(_Iosbase.getloc()); + + for (; *_Fmtfirst != '\0'; ++_Fmtfirst) + if (*_Fmtfirst == '%') + _First = do_get(_First, _Last, _Iosbase, _State, _Pt, + *++_Fmtfirst); + else if (*_Fmtfirst == ' ') + for (; _First != _Last + && _Ctype_fac.is(_Ctype::space, *_First); ++_First) + ; + else if (_Ctype_fac.narrow(*_First) != *_Fmtfirst) + { + _State |= ios_base::failbit; + break; + } + else + ++_First; + if (_First == _Last) + _State |= ios_base::eofbit; + return (_First); + } + +private: + ios_base::iostate __cdecl _Getint( + _InIt& _First, _InIt& _Last, + int _Lo, int _Hi, int& _Val, + const _Ctype& _Ctype_fac) const + { + char _Ac[32], *_Ep; + char *_Ptr = _Ac; + char _Ch; + + if (_First == _Last) + ; + else if ((_Ch = _Ctype_fac.narrow(*_First)) == '+') + *_Ptr++ = '+', ++_First; + else if (_Ch == '-') + *_Ptr++ = '-', ++_First; + + bool _Seendigit = false; + while (_First != _Last && _Ctype_fac.narrow(*_First) == '0') + _Seendigit = true, ++_First; + if (_Seendigit) + *_Ptr++ = '0'; + + for (char *const _Pe = &_Ac[32 - 1]; _First != _Last + && '0' <= (_Ch = _Ctype_fac.narrow(*_First)) && _Ch <= '9'; + _Seendigit = true, ++_First) + { + *_Ptr = _Ch; + if (_Ptr < _Pe) + ++_Ptr; + } + + if (!_Seendigit) + _Ptr = _Ac; + *_Ptr = '\0'; + int _Errno = 0; + const long _Ans = :: _Stolx(_Ac, &_Ep, 10, &_Errno); + ios_base::iostate _State = ios_base::goodbit; + + if (_First == _Last) + _State |= ios_base::eofbit; + if (_Ep == _Ac || _Errno != 0 || _Ans < _Lo || _Hi < _Ans) + _State |= ios_base::failbit; + else + _Val = _Ans; + return (_State); + } + + void _Tidy() + { + :: free((void *)_Days); + :: free((void *)_Months); + :: free((void *)_Ampm); + } + + const _Elem *_Days; + const _Elem *_Months; + const _Elem *_Ampm; + dateorder _Dateorder; + _Locinfo::_Cvtvec _Cvt; + }; + + +template + locale::id time_get<_Elem, _InIt>::id; + + +template > > + class time_get_byname + : public time_get<_Elem, _InIt> + { +public: + explicit time_get_byname(const char *_Locname, size_t _Refs = 0) + : time_get<_Elem, _InIt>(_Locname, _Refs) + { + } + + explicit time_get_byname(const string& _Str, size_t _Refs = 0) + : time_get<_Elem, _InIt>(_Locinfo(_Str.c_str()), _Refs) + { + } + +protected: + virtual ~time_get_byname() noexcept + { + } + }; + + +template > > + class time_put + : public locale::facet + { +public: + typedef _Elem char_type; + typedef _OutIt iter_type; + typedef ctype<_Elem> _Ctype; + + _OutIt put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, const tm *_Pt, + const _Elem *_Fmtfirst, const _Elem *_Fmtlast) const + { + _Debug_pointer(_Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 697); + _Debug_pointer(_Pt, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 698); + const _Ctype& _Ctype_fac = use_facet< _Ctype >(_Iosbase.getloc()); + + for (; _Fmtfirst != _Fmtlast; ++_Fmtfirst) + if (_Ctype_fac.narrow(*_Fmtfirst) != '%') + *_Dest++ = *_Fmtfirst; + else if (++_Fmtfirst == _Fmtlast) + { + *_Dest++ = _Fmtfirst[-1]; + break; + } + else + { + char _Specifier = _Ctype_fac.narrow(*_Fmtfirst); + char _Modifier = '\0'; + _Elem _Percent = _Fmtfirst[-1]; + + if (_Specifier != 'E' && _Specifier != 'O' + && _Specifier != 'Q' && _Specifier != '#') + ; + else if (++_Fmtfirst == _Fmtlast) + { + *_Dest++ = _Percent; + *_Dest++ = _Specifier; + break; + } + else + { + _Modifier = _Specifier; + _Specifier = _Ctype_fac.narrow(*_Fmtfirst); + } + + _Dest = do_put(_Dest, _Iosbase, _Fill, _Pt, + _Specifier, _Modifier); + } + return (_Dest); + } + + _OutIt put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, const tm *_Pt, + char _Specifier, char _Modifier = '\0') const + { + return (do_put(_Dest, _Iosbase, _Fill, _Pt, _Specifier, _Modifier)); + } + + static locale::id id; + + explicit time_put(size_t _Refs = 0) + : locale::facet(_Refs) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + time_put(const _Locinfo& _Lobj, size_t _Refs = 0) + : locale::facet(_Refs) + { + _Init(_Lobj); + } + + static size_t __cdecl _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new time_put<_Elem, _OutIt>( + _Locinfo(_Ploc->c_str())); + return (5); + } + +protected: + virtual ~time_put() noexcept + { + } + + void _Init(const _Locinfo& _Lobj) + { + _Tnames = _Lobj._Gettnames(); + } + + virtual _OutIt do_put(_OutIt _Dest, + ios_base&, _Elem, const tm *_Pt, + char _Specifier, char _Modifier = '\0') const + { + _Debug_pointer(_Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 782); + _Debug_pointer(_Pt, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 783); + + char _Fmt[5] = "!%x\0"; + size_t _Count, _Num; + string _Str; + + if (_Modifier == '\0') + _Fmt[2] = _Specifier; + else + { + _Fmt[2] = _Modifier; + _Fmt[3] = _Specifier; + } + + for (_Num = 16; ; _Num *= 2) + { + _Str.append(_Num, '\0'); + if (0 < (_Count = _Strftime(&*_Str.begin(), _Str.size(), + _Fmt, _Pt, _Tnames._Getptr()))) + break; + } + return (::std:: copy(&_Str[1], &_Str[_Count], _Dest)); + } + +private: + _Locinfo::_Timevec _Tnames; + }; + + +template + locale::id time_put<_Elem, _OutIt>::id; + + + +template + class time_put + : public locale::facet + { +public: + typedef wchar_t _Elem; + typedef _Elem char_type; + typedef _OutIt iter_type; + typedef ctype<_Elem> _Ctype; + + _OutIt put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, const tm *_Pt, + const _Elem *_Fmtfirst, const _Elem *_Fmtlast) const + { + _Debug_pointer(_Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 832); + _Debug_pointer(_Pt, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 833); + const _Ctype& _Ctype_fac = use_facet< _Ctype >(_Iosbase.getloc()); + + for (; _Fmtfirst != _Fmtlast; ++_Fmtfirst) + if (_Ctype_fac.narrow(*_Fmtfirst) != '%') + *_Dest++ = *_Fmtfirst; + else if (++_Fmtfirst == _Fmtlast) + { + *_Dest++ = _Fmtfirst[-1]; + break; + } + else + { + char _Specifier = _Ctype_fac.narrow(*_Fmtfirst); + char _Modifier = '\0'; + _Elem _Percent = _Fmtfirst[-1]; + + if (_Specifier != 'E' && _Specifier != 'O' + && _Specifier != 'Q' && _Specifier != '#') + ; + else if (++_Fmtfirst == _Fmtlast) + { + *_Dest++ = _Percent; + *_Dest++ = _Specifier; + break; + } + else + { + _Modifier = _Specifier; + _Specifier = _Ctype_fac.narrow(*_Fmtfirst); + } + + _Dest = do_put(_Dest, _Iosbase, _Fill, _Pt, + _Specifier, _Modifier); + } + return (_Dest); + } + + _OutIt put(_OutIt _Dest, + ios_base& _Iosbase, _Elem _Fill, const tm *_Pt, + char _Specifier, char _Modifier = '\0') const + { + return (do_put(_Dest, _Iosbase, _Fill, _Pt, _Specifier, _Modifier)); + } + + static locale::id id; + + explicit time_put(size_t _Refs = 0) + : locale::facet(_Refs) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + time_put(const _Locinfo& _Lobj, size_t _Refs = 0) + : locale::facet(_Refs) + { + _Init(_Lobj); + } + + static size_t __cdecl _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new time_put<_Elem, _OutIt>( + _Locinfo(_Ploc->c_str())); + return (5); + } + +protected: + virtual ~time_put() noexcept + { + } + + time_put(const char *_Locname, size_t _Refs = 0) + : locale::facet(_Refs) + { + { _Locinfo _Lobj(_Locname); + _Init(_Lobj); + } + } + + void _Init(const _Locinfo& _Lobj) + { + _Tnames = _Lobj._W_Gettnames(); + } + + virtual _OutIt do_put(_OutIt _Dest, + ios_base&, _Elem, const tm *_Pt, + char _Specifier, char _Modifier = '\0') const + { + _Debug_pointer(_Dest, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 925); + _Debug_pointer(_Pt, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime", 926); + + wchar_t _Fmt[5] = L"!%x\0"; + size_t _Count, _Num; + wstring _Str; + + if (_Modifier == '\0') + _Fmt[2] = (_Elem)_Specifier; + else + { + _Fmt[2] = (_Elem)_Modifier; + _Fmt[3] = (_Elem)_Specifier; + } + + for (_Num = 16; ; _Num *= 2) + { + _Str.append(_Num, '\0'); + if (0 < (_Count = _Wcsftime(&*_Str.begin(), _Str.size(), + _Fmt, _Pt, _Tnames._Getptr()))) + break; + } + return (::std:: copy(&_Str[1], &_Str[_Count], _Dest)); + } + +private: + _Locinfo::_Timevec _Tnames; + }; + + +template + locale::id time_put::id; +# 1102 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime" 3 +template > > + class time_put_byname + : public time_put<_Elem, _OutIt> + { +public: + explicit time_put_byname(const char *_Locname, size_t _Refs = 0) + : time_put<_Elem, _OutIt>(_Locname, _Refs) + { + } + + explicit time_put_byname(const string& _Str, size_t _Refs = 0) + : time_put<_Elem, _OutIt>(_Str.c_str(), _Refs) + { + } + +protected: + virtual ~time_put_byname() noexcept + { + } + }; +# 1145 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\xloctime" 3 +} + + +#pragma warning(pop) +#pragma pack(pop) +# 11 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\locale" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4275) + +namespace std { + +template + class collate + : public locale::facet + { +public: + typedef _Elem char_type; + typedef basic_string<_Elem, char_traits<_Elem>, + allocator<_Elem> > string_type; + + int compare(const _Elem *_First1, const _Elem *_Last1, + const _Elem *_First2, const _Elem *_Last2) const + { + return (do_compare(_First1, _Last1, _First2, _Last2)); + } + + string_type transform(const _Elem *_First, const _Elem *_Last) const + { + return (do_transform(_First, _Last)); + } + + long hash(const _Elem *_First, const _Elem *_Last) const + { + return (do_hash(_First, _Last)); + } + + static locale::id id; + + explicit collate(size_t _Refs = 0) + : locale::facet(_Refs) + { + { _Locinfo _Lobj; + _Init(_Lobj); + } + } + + collate(const _Locinfo& _Lobj, size_t _Refs = 0) + : locale::facet(_Refs) + { + _Init(_Lobj); + } + + static size_t _Getcat(const locale::facet **_Ppf = 0, + const locale *_Ploc = 0) + { + if (_Ppf != 0 && *_Ppf == 0) + *_Ppf = new collate<_Elem>( + _Locinfo(_Ploc->name().c_str())); + return (1); + } + +protected: + ~collate() noexcept + { + :: free(_Coll._LocaleName); + } + +protected: + collate(const char *_Locname, size_t _Refs = 0) + : locale::facet(_Refs) + { + { _Locinfo _Lobj(_Locname); + _Init(_Lobj); + } + } + + void _Init(const _Locinfo& _Lobj) + { + _Coll = _Lobj._Getcoll(); + } + + virtual int do_compare(const _Elem *_First1, const _Elem *_Last1, + const _Elem *_First2, const _Elem *_Last2) const + { + _Debug_range(_First1, _Last1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\locale", 95); + _Debug_range(_First2, _Last2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\locale", 96); + int _Ans = _LStrcoll(_First1, _Last1, _First2, _Last2, &_Coll); + return (_Ans < 0 ? -1 : _Ans == 0 ? 0 : +1); + } + + virtual string_type do_transform(const _Elem *_First, + const _Elem *_Last) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\locale", 104); + size_t _Count; + string_type _Str; + + for (_Count = _Last - _First; 0 < _Count; ) + { + _Str.resize(_Count); + if ((_Count = _LStrxfrm(&*_Str.begin(), + &*_Str.begin() + _Str.size(), + _First, _Last, &_Coll)) <= _Str.size()) + break; + } + _Str.resize(_Count); + return (_Str); + } + + virtual long do_hash(const _Elem *_First, + const _Elem *_Last) const + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\locale", 123); + return ((long)_Hash_seq((const unsigned char *)_First, + (_Last - _First) * sizeof (_Elem))); + } + +private: + _Locinfo::_Collvec _Coll; + }; + + +template + locale::id collate<_Elem>::id; +# 149 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\locale" 3 +template + class collate_byname + : public collate<_Elem> + { +public: + explicit collate_byname(const char *_Locname, size_t _Refs = 0) + : collate<_Elem>(_Locname, _Refs) + { + } + + explicit collate_byname(const string& _Str, size_t _Refs = 0) + : collate<_Elem>(_Locinfo(_Str.c_str()), _Refs) + { + } + +protected: + virtual ~collate_byname() noexcept + { + } + }; + + + + + +template inline + bool has_facet(const locale& _Loc) noexcept + { + { ::std:: _Lockit _Lock(0); + size_t _Id = _Facet::id; + return (_Loc._Getfacet(_Id) != 0 + || _Facet::_Getcat() != (size_t)(-1)); + } + } + + +template inline + bool (isalnum)(_Elem _Ch, const locale& _Loc) + { + return (use_facet< ctype<_Elem> >(_Loc).is(ctype_base::alnum, _Ch)); + } + +template inline + bool (isalpha)(_Elem _Ch, const locale& _Loc) + { + return (use_facet< ctype<_Elem> >(_Loc).is(ctype_base::alpha, _Ch)); + } + +template inline + bool (isblank)(_Elem _Ch, const locale& _Loc) + { + return (use_facet< ctype<_Elem> >(_Loc).is(ctype_base::blank, _Ch)); + } + +template inline + bool (iscntrl)(_Elem _Ch, const locale& _Loc) + { + return (use_facet< ctype<_Elem> >(_Loc).is(ctype_base::cntrl, _Ch)); + } + +template inline + bool (isdigit)(_Elem _Ch, const locale& _Loc) + { + return (use_facet< ctype<_Elem> >(_Loc).is(ctype_base::digit, _Ch)); + } + +template inline + bool (isgraph)(_Elem _Ch, const locale& _Loc) + { + return (use_facet< ctype<_Elem> >(_Loc).is(ctype_base::graph, _Ch)); + } + +template inline + bool (islower)(_Elem _Ch, const locale& _Loc) + { + return (use_facet< ctype<_Elem> >(_Loc).is(ctype_base::lower, _Ch)); + } + +template inline + bool (isprint)(_Elem _Ch, const locale& _Loc) + { + return (use_facet< ctype<_Elem> >(_Loc).is(ctype_base::print, _Ch)); + } + +template inline + bool (ispunct)(_Elem _Ch, const locale& _Loc) + { + return (use_facet< ctype<_Elem> >(_Loc).is(ctype_base::punct, _Ch)); + } + +template inline + bool (isspace)(_Elem _Ch, const locale& _Loc) + { + return (use_facet< ctype<_Elem> >(_Loc).is(ctype_base::space, _Ch)); + } + +template inline + bool (isupper)(_Elem _Ch, const locale& _Loc) + { + return (use_facet< ctype<_Elem> >(_Loc).is(ctype_base::upper, _Ch)); + } + +template inline + bool (isxdigit)(_Elem _Ch, const locale& _Loc) + { + return (use_facet< ctype<_Elem> >(_Loc).is(ctype_base::xdigit, _Ch)); + } + +template inline + _Elem (tolower)(_Elem _Ch, const locale& _Loc) + { + return (use_facet< ctype<_Elem> >(_Loc).tolower(_Ch)); + } + +template inline + _Elem (toupper)(_Elem _Ch, const locale& _Loc) + { + return (use_facet< ctype<_Elem> >(_Loc).toupper(_Ch)); + } +} + +#pragma warning(pop) +#pragma pack(pop) +# 9 "D:/directui/DirectUI/Window.h" 2 + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\codecvt" 1 3 + + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 6326) + +namespace std { + + + + +enum codecvt_mode { + consume_header = 4, + generate_header = 2, + little_endian = 1}; + +typedef :: mbstate_t _Statype; + + +template + class codecvt_utf8 + : public codecvt<_Elem, char, _Statype> + { +public: + typedef codecvt<_Elem, char, _Statype> _Mybase; + typedef typename _Mybase::result result; + typedef char _Byte; + typedef _Elem intern_type; + typedef _Byte extern_type; + typedef _Statype state_type; + + explicit codecvt_utf8(size_t _Refs = 0) + : _Mybase(_Refs) + { + } + + virtual ~codecvt_utf8() noexcept + { + } + +protected: + virtual result do_in(_Statype& _State, + const _Byte *_First1, const _Byte *_Last1, const _Byte *& _Mid1, + _Elem *_First2, _Elem *_Last2, _Elem *& _Mid2) const + { + char *_Pstate = (char *)&_State; + _Mid1 = _First1; + _Mid2 = _First2; + + for (; _Mid1 != _Last1 && _Mid2 != _Last2; ) + { + unsigned char _By = (unsigned char)*_Mid1; + unsigned long _Ch; + int _Nextra; + + if (_By < 0x80) + _Ch = _By, _Nextra = 0; + else if (_By < 0xc0) + { + ++_Mid1; + return (_Mybase::error); + } + else if (_By < 0xe0) + _Ch = _By & 0x1f, _Nextra = 1; + else if (_By < 0xf0) + _Ch = _By & 0x0f, _Nextra = 2; + else if (_By < 0xf8) + _Ch = _By & 0x07, _Nextra = 3; + else + _Ch = _By & 0x03, _Nextra = _By < 0xfc ? 4 : 5; + + if (_Nextra == 0) + ++_Mid1; + else if (_Last1 - _Mid1 < _Nextra + 1) + break; + else + for (++_Mid1; 0 < _Nextra; --_Nextra, ++_Mid1) + if ((_By = (unsigned char)*_Mid1) < 0x80 || 0xc0 <= _By) + return (_Mybase::error); + else + _Ch = _Ch << 6 | (_By & 0x3f); + + if (*_Pstate == 0) + { + *_Pstate = 1; + + if ((_Mymode & consume_header) != 0 && _Ch == 0xfeff) + { + result _Ans = do_in(_State, _Mid1, _Last1, _Mid1, + _First2, _Last2, _Mid2); + + if (_Ans == _Mybase::partial) + { + *_Pstate = 0; + _Mid1 = _First1; + } + return (_Ans); + } + } + + if (_Mymax < _Ch) + return (_Mybase::error); + *_Mid2++ = (_Elem)_Ch; + } + + return (_First1 == _Mid1 ? _Mybase::partial : _Mybase::ok); + } + + virtual result do_out(_Statype& _State, + const _Elem *_First1, const _Elem *_Last1, const _Elem *& _Mid1, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + char *_Pstate = (char *)&_State; + _Mid1 = _First1; + _Mid2 = _First2; + + for (; _Mid1 != _Last1 && _Mid2 != _Last2; ) + { + _Byte _By; + int _Nextra; + unsigned long _Ch = (unsigned long)*_Mid1; + + if (_Mymax < _Ch) + return (_Mybase::error); + + if (_Ch < 0x0080) + _By = (_Byte)_Ch, _Nextra = 0; + else if (_Ch < 0x0800) + _By = (_Byte)(0xc0 | _Ch >> 6), _Nextra = 1; + else if (_Ch < 0x00010000) + _By = (_Byte)(0xe0 | _Ch >> 12), _Nextra = 2; + else if (_Ch < 0x00200000) + _By = (_Byte)(0xf0 | _Ch >> 18), _Nextra = 3; + else if (_Ch < 0x04000000) + _By = (_Byte)(0xf8 | _Ch >> 24), _Nextra = 4; + else + _By = (_Byte)(0xfc | (_Ch >> 30 & 0x03)), _Nextra = 5; + + if (*_Pstate == 0) + { + *_Pstate = 1; + if ((_Mymode & generate_header) == 0) + ; + else if (_Last2 - _Mid2 < 3 + 1 + _Nextra) + return (_Mybase::partial); + else + { + *_Mid2++ = (_Byte)(unsigned char)0xef; + *_Mid2++ = (_Byte)(unsigned char)0xbb; + *_Mid2++ = (_Byte)(unsigned char)0xbf; + } + } + + if (_Last2 - _Mid2 < 1 + _Nextra) + break; + + ++_Mid1; + for (*_Mid2++ = _By; 0 < _Nextra; ) + *_Mid2++ = (_Byte)((_Ch >> 6 * --_Nextra & 0x3f) | 0x80); + } + return (_First1 == _Mid1 ? _Mybase::partial : _Mybase::ok); + } + + virtual result do_unshift(_Statype&, + _Byte *_First2, _Byte *, _Byte *& _Mid2) const + { + _Mid2 = _First2; + return (_Mybase::ok); + } + + virtual int do_length(_Statype& _State, const _Byte *_First1, + const _Byte *_Last1, size_t _Count) const noexcept + { + size_t _Wchars = 0; + _Statype _Mystate = _State; + + for (; _Wchars < _Count && _First1 != _Last1; ) + { + const _Byte *_Mid1; + _Elem *_Mid2; + _Elem _Ch; + + switch (do_in(_Mystate, _First1, _Last1, _Mid1, + &_Ch, &_Ch + 1, _Mid2)) + { + case _Mybase::noconv: + return ((int)(_Wchars + (_Last1 - _First1))); + + case _Mybase::ok: + if (_Mid2 == &_Ch + 1) + ++_Wchars; + _First1 = _Mid1; + break; + + default: + return ((int)_Wchars); + } + } + + return ((int)_Wchars); + } + + virtual bool do_always_noconv() const noexcept + { + return (false); + } + + virtual int do_max_length() const noexcept + { + return ((_Mymode & (consume_header | generate_header)) != 0 + ? 9 : 6); + } + + virtual int do_encoding() const noexcept + { + return ((_Mymode & (consume_header | generate_header)) != 0 + ? -1 : 0); + } + }; + + +template + class codecvt_utf16 + : public codecvt<_Elem, char, _Statype> + { + enum {_Bytes_per_word = 2}; +public: + typedef codecvt<_Elem, char, _Statype> _Mybase; + typedef typename _Mybase::result result; + typedef char _Byte; + typedef _Elem intern_type; + typedef _Byte extern_type; + typedef _Statype state_type; + + explicit codecvt_utf16(size_t _Refs = 0) + : _Mybase(_Refs) + { + } + + virtual ~codecvt_utf16() noexcept + { + } + +protected: + virtual result do_in(_Statype& _State, + const _Byte *_First1, const _Byte *_Last1, const _Byte *& _Mid1, + _Elem *_First2, _Elem *_Last2, _Elem *& _Mid2) const + { + char *_Pstate = (char *)&_State; + _Mid1 = _First1; + _Mid2 = _First2; + + for (; _Bytes_per_word <= _Last1 - _Mid1 && _Mid2 != _Last2; ) + { + unsigned char *_Ptr = (unsigned char *)_Mid1; + unsigned long _Ch; + unsigned short _Ch0, _Ch1; + + if (*_Pstate == 1) + _Ch0 = (unsigned short)(_Ptr[1] << 8 | _Ptr[0]); + else if (*_Pstate == 2) + _Ch0 = (unsigned short)(_Ptr[0] << 8 | _Ptr[1]); + else + { + unsigned char _Default_endian = (_Mymode & little_endian) != 0 + ? 1 : 2; + + if ((_Mymode & little_endian) != 0) + _Ch0 = (unsigned short)(_Ptr[1] << 8 | _Ptr[0]); + else + _Ch0 = (unsigned short)(_Ptr[0] << 8 | _Ptr[1]); + if ((_Mymode & consume_header) == 0 + || (_Ch0 != 0xfeff && _Ch0 != 0xfffe)) + *_Pstate = _Default_endian; + else + { + _Mid1 += _Bytes_per_word; + *_Pstate = (char)(_Ch0 == 0xfeff + ? _Default_endian + : (unsigned char)(3 - _Default_endian)); + result _Ans = do_in(_State, _Mid1, _Last1, _Mid1, + _First2, _Last2, _Mid2); + + if (_Ans == _Mybase::partial) + { + *_Pstate = 0; + _Mid1 = _First1; + } + return (_Ans); + } + } + + if (_Ch0 < 0xd800 || 0xdc00 <= _Ch0) + { + _Mid1 += _Bytes_per_word; + _Ch = _Ch0; + } + else if (_Last1 - _Mid1 < 2 * _Bytes_per_word) + break; + else + { + if (*_Pstate == 1) + _Ch1 = (unsigned short)(_Ptr[3] << 8 | _Ptr[2]); + else + _Ch1 = (unsigned short)(_Ptr[2] << 8 | _Ptr[3]); + + if (_Ch1 < 0xdc00 || 0xe000 <= _Ch1) + return (_Mybase::error); + + _Mid1 += 2 * _Bytes_per_word; + _Ch = (unsigned long)(_Ch0 - 0xd800 + 0x0040) << 10 + | (_Ch1 - 0xdc00); + } + + if (_Mymax < _Ch) + return (_Mybase::error); + *_Mid2++ = (_Elem)_Ch; + } + + return (_First1 == _Mid1 ? _Mybase::partial : _Mybase::ok); + } + + virtual result do_out(_Statype& _State, + const _Elem *_First1, const _Elem *_Last1, const _Elem *& _Mid1, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + char *_Pstate = (char *)&_State; + _Mid1 = _First1; + _Mid2 = _First2; + + if (*_Pstate == 0) + { + *_Pstate = (_Mymode & little_endian) != 0 + ? 1 : 2; + if ((_Mymode & generate_header) == 0) + ; + else if (_Last2 - _Mid2 < 3 * _Bytes_per_word) + return (_Mybase::partial); + else if (*_Pstate == 1) + { + *_Mid2++ = (_Byte)(unsigned char)0xff; + *_Mid2++ = (_Byte)(unsigned char)0xfe; + } + else + { + *_Mid2++ = (_Byte)(unsigned char)0xfe; + *_Mid2++ = (_Byte)(unsigned char)0xff; + } + } + + for (; _Mid1 != _Last1 && _Bytes_per_word <= _Last2 - _Mid2; ) + { + bool _Extra = false; + unsigned long _Ch = (unsigned long)*_Mid1++; + + if ((_Mymax < 0x10ffff ? _Mymax : 0x10ffff) < _Ch) + return (_Mybase::error); + else if (_Ch <= 0xffff) + { + if (0xd800 <= _Ch && _Ch < 0xdc00) + return (_Mybase::error); + } + else if (_Last2 - _Mid2 < 2 * _Bytes_per_word) + { + --_Mid1; + return (_Mybase::partial); + } + else + _Extra = true; + + if (*_Pstate == 1) + if (!_Extra) + { + *_Mid2++ = (_Byte)_Ch; + *_Mid2++ = (_Byte)(_Ch >> 8); + } + else + { + unsigned short _Ch0 = (unsigned short)(0xd800 + | (unsigned short)(_Ch >> 10) - 0x0040); + *_Mid2++ = (_Byte)_Ch0; + *_Mid2++ = (_Byte)(_Ch0 >> 8); + + _Ch0 = (unsigned short)(0xdc00 + | ((unsigned short)_Ch & 0x03ff)); + *_Mid2++ = (_Byte)_Ch0; + *_Mid2++ = (_Byte)(_Ch0 >> 8); + } + else + if (!_Extra) + { + *_Mid2++ = (_Byte)(_Ch >> 8); + *_Mid2++ = (_Byte)_Ch; + } + else + { + unsigned short _Ch0 = (unsigned short)(0xd800 + | (unsigned short)(_Ch >> 10) - 0x0040); + *_Mid2++ = (_Byte)(_Ch0 >> 8); + *_Mid2++ = (_Byte)_Ch0; + + _Ch0 = (unsigned short)(0xdc00 + | ((unsigned short)_Ch & 0x03ff)); + *_Mid2++ = (_Byte)(_Ch0 >> 8); + *_Mid2++ = (_Byte)_Ch0; + } + } + + return (_First1 == _Mid1 ? _Mybase::partial : _Mybase::ok); + } + + virtual result do_unshift(_Statype&, + _Byte *_First2, _Byte *, _Byte *& _Mid2) const + { + _Mid2 = _First2; + return (_Mybase::ok); + } + + virtual int do_length(_Statype& _State, const _Byte *_First1, + const _Byte *_Last1, size_t _Count) const noexcept + { + size_t _Wchars = 0; + _Statype _Mystate = _State; + + for (; _Wchars < _Count && _First1 != _Last1; ) + { + const _Byte *_Mid1; + _Elem *_Mid2; + _Elem _Ch; + + switch (do_in(_Mystate, _First1, _Last1, _Mid1, + &_Ch, &_Ch + 1, _Mid2)) + { + case _Mybase::noconv: + return ((int)(_Wchars + (_Last1 - _First1))); + + case _Mybase::ok: + if (_Mid2 == &_Ch + 1) + ++_Wchars; + _First1 = _Mid1; + break; + + default: + return ((int)_Wchars); + } + } + + return ((int)_Wchars); + } + + virtual bool do_always_noconv() const noexcept + { + return (false); + } + + virtual int do_max_length() const noexcept + { + return ((_Mymode & (consume_header | generate_header)) != 0 + ? 3 * _Bytes_per_word : 6 * _Bytes_per_word); + } + + virtual int do_encoding() const noexcept + { + return ((_Mymode & (consume_header | generate_header)) != 0 + ? -1 : 0); + } + }; + + +template + class codecvt_utf8_utf16 + : public codecvt<_Elem, char, _Statype> + { +public: + typedef codecvt<_Elem, char, _Statype> _Mybase; + typedef typename _Mybase::result result; + typedef char _Byte; + typedef _Elem intern_type; + typedef _Byte extern_type; + typedef _Statype state_type; + + static_assert(sizeof (unsigned short) <= sizeof (state_type), + "state_type too small"); + + explicit codecvt_utf8_utf16(size_t _Refs = 0) + : _Mybase(_Refs) + { + } + + virtual ~codecvt_utf8_utf16() noexcept + { + } + +protected: + virtual result do_in(_Statype& _State, + const _Byte *_First1, const _Byte *_Last1, const _Byte *& _Mid1, + _Elem *_First2, _Elem *_Last2, _Elem *& _Mid2) const + { + unsigned short *_Pstate = (unsigned short *)&_State; + _Mid1 = _First1; + _Mid2 = _First2; + + for (; _Mid1 != _Last1 && _Mid2 != _Last2; ) + { + unsigned char _By = (unsigned char)*_Mid1; + unsigned long _Ch; + int _Nextra, _Nskip; + + if (*_Pstate <= 1) + ; + else if (_By < 0x80 || 0xc0 <= _By) + return (_Mybase::error); + else + { + ++_Mid1; + *_Mid2++ = (_Elem)(*_Pstate | (_By & 0x3f)); + *_Pstate = 1; + continue; + } + + if (_By < 0x80) + _Ch = _By, _Nextra = 0; + else if (_By < 0xc0) + { + ++_Mid1; + return (_Mybase::error); + } + else if (_By < 0xe0) + _Ch = _By & 0x1f, _Nextra = 1; + else if (_By < 0xf0) + _Ch = _By & 0x0f, _Nextra = 2; + else if (_By < 0xf8) + _Ch = _By & 0x07, _Nextra = 3; + else + _Ch = _By & 0x03, _Nextra = _By < 0xfc ? 4 : 5; + + _Nskip = _Nextra < 3 ? 0 : 1; + _First1 = _Mid1; + + if (_Nextra == 0) + ++_Mid1; + else if (_Last1 - _Mid1 < _Nextra + 1 - _Nskip) + break; + else + for (++_Mid1; _Nskip < _Nextra; --_Nextra, ++_Mid1) + if ((_By = (unsigned char)*_Mid1) < 0x80 || 0xc0 <= _By) + return (_Mybase::error); + else + _Ch = _Ch << 6 | (_By & 0x3f); + if (0 < _Nskip) + _Ch <<= 6; + + if ((_Mymax < 0x10ffff ? _Mymax : 0x10ffff) < _Ch) + return (_Mybase::error); + else if (0xffff < _Ch) + { + unsigned short _Ch0 = + (unsigned short)(0xd800 | (_Ch >> 10) - 0x0040); + + *_Mid2++ = (_Elem)_Ch0; + *_Pstate = (unsigned short)(0xdc00 | (_Ch & 0x03ff)); + continue; + } + + if (_Nskip == 0) + ; + else if (_Mid1 == _Last1) + { + _Mid1 = _First1; + break; + } + else if ((_By = (unsigned char)*_Mid1++) < 0x80 || 0xc0 <= _By) + return (_Mybase::error); + else + _Ch |= _By & 0x3f; + + if (*_Pstate == 0) + { + *_Pstate = 1; + + if ((_Mymode & consume_header) != 0 && _Ch == 0xfeff) + { + result _Ans = do_in(_State, _Mid1, _Last1, _Mid1, + _First2, _Last2, _Mid2); + + if (_Ans == _Mybase::partial) + { + *_Pstate = 0; + _Mid1 = _First1; + } + return (_Ans); + } + } + + *_Mid2++ = (_Elem)_Ch; + } + + return (_First1 == _Mid1 ? _Mybase::partial : _Mybase::ok); + } + + virtual result do_out(_Statype& _State, + const _Elem *_First1, const _Elem *_Last1, const _Elem *& _Mid1, + _Byte *_First2, _Byte *_Last2, _Byte *& _Mid2) const + { + unsigned short *_Pstate = (unsigned short *)&_State; + _Mid1 = _First1; + _Mid2 = _First2; + + for (; _Mid1 != _Last1 && _Mid2 != _Last2; ) + { + unsigned long _Ch; + unsigned short _Ch1 = (unsigned short)*_Mid1; + bool _Save = false; + + if (1 < *_Pstate) + { + if (_Ch1 < 0xdc00 || 0xe000 <= _Ch1) + return (_Mybase::error); + _Ch = (*_Pstate << 10) | (_Ch1 - 0xdc00); + } + else if (0xd800 <= _Ch1 && _Ch1 < 0xdc00) + { + _Ch = (_Ch1 - 0xd800 + 0x0040) << 10; + _Save = true; + } + else + _Ch = _Ch1; + + _Byte _By; + int _Nextra; + + if (_Ch < 0x0080) + _By = (_Byte)_Ch, _Nextra = 0; + else if (_Ch < 0x0800) + _By = (_Byte)(0xc0 | _Ch >> 6), _Nextra = 1; + else if (_Ch < 0x10000) + _By = (_Byte)(0xe0 | _Ch >> 12), _Nextra = 2; + else + _By = (_Byte)(0xf0 | _Ch >> 18), _Nextra = 3; + + int _Nput = _Nextra < 3 ? _Nextra + 1 : _Save ? 1 : 3; + + if (_Last2 - _Mid2 < _Nput) + break; + else if (*_Pstate != 0 || (_Mymode & generate_header) == 0) + ; + else if (_Last2 - _Mid2 < 3 + _Nput) + break; + else + { + *_Mid2++ = (_Byte)(unsigned char)0xef; + *_Mid2++ = (_Byte)(unsigned char)0xbb; + *_Mid2++ = (_Byte)(unsigned char)0xbf; + } + + ++_Mid1; + if (_Save || _Nextra < 3) + { + *_Mid2++ = _By; + --_Nput; + } + for (; 0 < _Nput; --_Nput) + *_Mid2++ = (_Byte)((_Ch >> 6 * --_Nextra & 0x3f) | 0x80); + + *_Pstate = (unsigned short)(_Save ? _Ch >> 10 : 1); + } + + return (_First1 == _Mid1 ? _Mybase::partial : _Mybase::ok); + } + + virtual result do_unshift(_Statype& _State, + _Byte *_First2, _Byte *, _Byte *& _Mid2) const + { + unsigned short *_Pstate = (unsigned short *)&_State; + _Mid2 = _First2; + + return (1 < *_Pstate + ? _Mybase::error : _Mybase::ok); + } + + virtual int do_length(_Statype& _State, const _Byte *_First1, + const _Byte *_Last1, size_t _Count) const noexcept + { + size_t _Wchars = 0; + _Statype _Mystate = _State; + + for (; _Wchars < _Count && _First1 != _Last1; ) + { + const _Byte *_Mid1; + _Elem *_Mid2; + _Elem _Ch; + + switch (do_in(_Mystate, _First1, _Last1, _Mid1, + &_Ch, &_Ch + 1, _Mid2)) + { + case _Mybase::noconv: + return ((int)(_Wchars + (_Last1 - _First1))); + + case _Mybase::ok: + if (_Mid2 == &_Ch + 1) + ++_Wchars; + _First1 = _Mid1; + break; + + default: + return ((int)_Wchars); + } + } + + return ((int)_Wchars); + } + + virtual bool do_always_noconv() const noexcept + { + return (false); + } + + virtual int do_max_length() const noexcept + { + return ((_Mymode & consume_header) != 0 ? 9 + : (_Mymode & generate_header) != 0 ? 7 + : 6); + } + + virtual int do_encoding() const noexcept + { + return (0); + } + }; +} + +#pragma warning(pop) +#pragma pack(pop) +# 10 "D:/directui/DirectUI/Window.h" 2 + + +class Window { +public: + BOOL Init(const UiString& name) { + hInst = GetModuleHandleW(0);; + MyRegisterClass(hInst); + + hWnd = CreateWindowExW(0L, szWindowClass, name.c_str(), (0x00000000L | 0x00C00000L | 0x00080000L | 0x00040000L | 0x00020000L | 0x00010000L), ((int)0x80000000), 0,((int)0x80000000), 0, 0, 0, hInst, 0); + + + if(!hWnd) { + return 0; + } + SetWindowLongW(hWnd, (-21), (LONG_PTR)this); + ShowWindow(hWnd, 1); + UpdateWindow(hWnd); + SetSize(640, 480); + + + return 1; + } + + virtual ~Window() { + + } + + void ProcessMessages() { + MSG msg = { 0 }; + while(PeekMessageW(&msg, 0, 0, 0, 0x0001)) { + switch(msg.message) { + case 0x0012: + exit(0); + break; + } + TranslateMessage(&msg); + DispatchMessageW(&msg); + } + } + + HWND GetHwnd() { + return hWnd; + } + + void SetSize(int w, int h) { + RECT NewWindowSize; + NewWindowSize.top = 50; + NewWindowSize.left = 50; + NewWindowSize.bottom = NewWindowSize.top + h; + NewWindowSize.right = NewWindowSize.left + w; + + AdjustWindowRect(&NewWindowSize, (0x00000000L | 0x00C00000L | 0x00080000L | 0x00040000L | 0x00020000L | 0x00010000L), false); + SetWindowPos(hWnd, ((HWND)0), NewWindowSize.left, NewWindowSize.top, NewWindowSize.right - NewWindowSize.left, NewWindowSize.bottom - NewWindowSize.top, 0x0040 | 0x0020); + } + + void GetWindowSize(uint32_t& width, uint32_t& height) { + RECT r; + GetClientRect(hWnd, &r); + width = r.right - r.left; + height = r.bottom - r.top; + } + + uint32_t width() const{ + RECT r; + GetClientRect(hWnd, &r); + return r.right - r.left; + } + + uint32_t height() const { + RECT r; + GetClientRect(hWnd, &r); + return r.bottom - r.top; + } + + std::function messageCallback = nullptr; +private: + ATOM MyRegisterClass(HINSTANCE hInstance) { + WNDCLASSEX wcex; + + wcex.cbSize = sizeof(WNDCLASSEX); + wcex.style = 0x0002 | 0x0001; + wcex.lpfnWndProc = &Window::WndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = LoadIconW(wcex.hInstance, ((LPWSTR)((ULONG_PTR)((WORD)(32512))))); + wcex.hCursor = LoadCursorW(0, ((LPWSTR)((ULONG_PTR)((WORD)(32512))))); + wcex.hbrBackground = (HBRUSH)(5 + 1); + wcex.lpszMenuName = 0; + wcex.lpszClassName = szWindowClass; + wcex.hIconSm = LoadIconW(wcex.hInstance, ((LPWSTR)((ULONG_PTR)((WORD)(32512))))); + + return RegisterClassExW(&wcex); + } + + static LRESULT __stdcall WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { + + auto window = (Window*)GetWindowLongW(hWnd, (-21)); + if(window != nullptr && window->messageCallback) { + window->messageCallback(hWnd, message, wParam, lParam); + } + switch(message) { + case 0x0002: + PostQuitMessage(0); + break; + default: + return DefWindowProcW(hWnd, message, wParam, lParam); + } + return 0; + } + + HINSTANCE hInst; + TCHAR* szWindowClass = L"Window"; + HWND hWnd; +}; + +typedef std::shared_ptr WindowPtr; +# 4 "D:/directui/DirectUI/UiCore.h" 2 + +# 1 "D:/directui/DirectUI/UiRenderer.h" 1 +# 11 "D:/directui/DirectUI/UiRenderer.h" +#pragma comment (lib, "dwrite.lib") +#pragma comment (lib, "d2d1.lib") + +class UiRenderer { +public: + void BeginDraw(); + void EndDraw(); + static ID2D1FactoryPtr GetFactory(); + ID2D1RenderTargetPtr GetRenderTarget(); + static IDWriteFactoryPtr GetWriteFactory(); +protected: + static void Init(); + static IDWriteFactoryPtr m_pDWriteFactory; + static ID2D1FactoryPtr m_pDirect2dFactory; + ID2D1RenderTargetPtr m_pRenderTarget; +}; +# 5 "D:/directui/DirectUI/UiCore.h" 2 + + +class UiCore { +public: + bool Init(); +private: + +}; +# 4 "D:/directui/DirectUI\\Ui.h" 2 + + + +# 1 "D:/directui/DirectUI/DeviceResources/UiBitmap.h" 1 + + + + + + + + +class UiBitmap { +public: + ID2D1BitmapPtr GetBitmap(); + static std::shared_ptr Create(UiRendererPtr renderer, uint32_t width, uint32_t height, D2D1_PIXEL_FORMAT format); + static std::shared_ptr Create(ID2D1BitmapPtr bitmap); +protected: + UiBitmap(UiRendererPtr renderer, uint32_t width, uint32_t height, D2D1_PIXEL_FORMAT format); + UiBitmap(ID2D1BitmapPtr bitmap); +private: + ID2D1BitmapPtr _bitmap; +}; +# 7 "D:/directui/DirectUI\\Ui.h" 2 + +# 1 "D:/directui/DirectUI/DeviceResources/UiBitmapBrush.h" 1 + + + +# 1 "D:/directui/DirectUI/DeviceResources/UiBrush.h" 1 + + + + + + +# 1 "D:/directui/DirectUI/DeviceResources/UiDeviceResource.h" 1 + + + + + +class UiDeviceResource { +public: + +protected: + +}; +# 7 "D:/directui/DirectUI/DeviceResources/UiBrush.h" 2 + + +class UiBrush : public UiDeviceResource { +public: + ID2D1BrushPtr GetBrush() { + return _brush; + } +protected: + ID2D1BrushPtr _brush; +}; +# 4 "D:/directui/DirectUI/DeviceResources/UiBitmapBrush.h" 2 + + + + + + + +class UiBitmapBrush : public UiBrush { +public: + static std::shared_ptr Create(UiRendererPtr renderer, UiBitmapPtr bitmap); + ID2D1BitmapBrushPtr GetNativeBitmapBrush() { + return _bitmapBrush; + } + UiBitmapPtr GetBitmap() { + return _bitmap; + } +protected: + UiBitmapBrush(UiRendererPtr renderer, UiBitmapPtr bitmap); + +private: + ID2D1BitmapBrushPtr _bitmapBrush; + UiBitmapPtr _bitmap; +}; +# 8 "D:/directui/DirectUI\\Ui.h" 2 + + +# 1 "D:/directui/DirectUI/DeviceResources/UiSolidColorBrush.h" 1 +# 10 "D:/directui/DirectUI/DeviceResources/UiSolidColorBrush.h" +using namespace lm; + +class UiSolidColorBrush : public UiBrush{ +public: + float4 GetColor(); + void SetColor(const float4& color); + static std::shared_ptr Red(UiRendererPtr renderer); + static std::shared_ptr Green(UiRendererPtr renderer); + static std::shared_ptr Blue(UiRendererPtr renderer); + static std::shared_ptr Black(UiRendererPtr renderer); + static std::shared_ptr White(UiRendererPtr renderer); + static std::shared_ptr Create(UiRendererPtr renderer, const float4& color); + void SetRenderTarget(ID2D1RenderTargetPtr newOwner); +protected: + UiSolidColorBrush(UiRendererPtr renderer, const float4& color); +private: + ID2D1SolidColorBrushPtr _colorBrush; +}; +# 10 "D:/directui/DirectUI\\Ui.h" 2 + + +# 1 "D:/directui/DirectUI/Controls/UiTransform.h" 1 +# 12 "D:/directui/DirectUI/Controls/UiTransform.h" +using namespace lm; + +class UiTransform { +public: + friend class UiControl; + typedef std::vector children_container; + UiPoint position; + float rotation; + UiPoint scale; + + virtual void Draw(); + D2D1::Matrix3x2F LocalToWorldMatrix(); + D2D1::Matrix3x2F WorldToLocalMatrix(); + const children_container GetChildren() const; + UiControlPtr GetParent() const; + std::weak_ptr GetControl() const; + UiTransform(); +protected: + void SetParent(UiControlPtr parent); + +private: + std::weak_ptr _control; + std::weak_ptr _parent; + children_container _children; +}; +# 12 "D:/directui/DirectUI\\Ui.h" 2 + +# 1 "D:/directui/DirectUI/Controls/UiZoomPan.h" 1 + + + +# 1 "D:/directui/DirectUI/Controls/UiPanel.h" 1 + + + +# 1 "D:/directui/DirectUI/Controls/UiControl.h" 1 + + + + + + + + +# 1 "D:/directui/DirectUI/Controls/../UiMessage.h" 1 + + + +class UiMessage { +public: + virtual ~UiMessage() { + + } +}; +# 9 "D:/directui/DirectUI/Controls/UiControl.h" 2 + +# 1 "D:/directui/DirectUI/Controls/../UiProperties.h" 1 + + + +# 1 "D:/directui/DirectUI/UiValueProperty.h" 1 + + + +# 1 "D:/directui/DirectUI/UiAttachedProperty.h" 1 + + + + + + +class UiAttachedProperty { +public: + UiAttachedProperty(const UiString& name) : _name(name) { + + } +protected: + UiString _name; +}; +# 4 "D:/directui/DirectUI/UiValueProperty.h" 2 + +# 1 "D:/directui/DirectUI/Controls/UiGridLength.h" 1 + + + +enum class UiGridUnitType { + Auto, + Pixel, + Star +}; + +class UiGridLength { +public: + UiGridLength(double value):_value(value), _unitType(UiGridUnitType::Pixel){} + UiGridLength(double value, UiGridUnitType type) :_value(value), _unitType(type) {} + + UiGridUnitType GridUnitType() { + return _unitType; + } + + bool IsAbsolute() { + return _unitType == UiGridUnitType::Pixel; + } + bool IsAuto() { + return _unitType == UiGridUnitType::Auto; + } + bool IsStar() { + return _unitType == UiGridUnitType::Star; + } + double Value() { + return _value; + } + static UiGridLength Auto() { + return UiGridLength(0, UiGridUnitType::Auto); + } +private: + UiGridUnitType _unitType; + double _value; +}; +# 5 "D:/directui/DirectUI/UiValueProperty.h" 2 + + +template +class UiValueProperty : public UiAttachedProperty { +public: + UiValueProperty(const UiString& name, const T& value) + : UiAttachedProperty(name), _value(value) { + + } +private: + T _value; +}; +# 4 "D:/directui/DirectUI/Controls/../UiProperties.h" 2 + + + +typedef UiValueProperty UiGridLengthProperty; +typedef UiValueProperty UiDoubleProperty; +# 10 "D:/directui/DirectUI/Controls/UiControl.h" 2 + +# 1 "D:/directui/DirectUI/Controls/../UiInputMessage.h" 1 + + + + + +enum class UiInputMessageType { + MouseMove, + KeyDown, + MouseHWheel, + MouseVWheel, + MouseButtonUp, + MouseButtonDown, +}; + +class UiInputMessage : public UiMessage{ +public: + UiInputMessageType type; + int param; +}; +# 11 "D:/directui/DirectUI/Controls/UiControl.h" 2 + +# 1 "D:/directui/DirectUI/Controls/../Event.h" 1 + + + + + + + +template +class Event { +public: + typedef std::function handler_t; + + void invoke(Args... args){ + std::vector handlersCopy = _handlers; + for (auto handler : handlersCopy){ + handler(std::forward(args)...); + } + } + + void operator ()(Args... args) { + invoke(std::forward(args)...); + } + + Event& operator += (handler_t f){ + _handlers.push_back(f); + return *this; + } + + Event& operator -= (handler_t f){ + for (auto handler = _handlers.begin(); handler != _handlers.end(); ++handler){ + if ((*handler).target() == f.target()){ + _handlers.erase(handler); + break; + } + } + return *this; + } +private: + std::vector _handlers; +}; +# 12 "D:/directui/DirectUI/Controls/UiControl.h" 2 + +# 1 "D:/directui/DirectUI/Controls/../UiAlignment.h" 1 + + + +enum class UiHorizontalAlignment { + Left, + Center, + Right, + Stretch, +}; + +enum class UiVerticalAlignment { + Top, + Center, + Bottom, + Stretch, +}; +# 13 "D:/directui/DirectUI/Controls/UiControl.h" 2 + +# 1 "D:/directui/DirectUI/Controls/../UiRect.h" 1 + + + + + +class UiRect { +public: + UiLength x; + UiLength y; + UiLength width; + UiLength height; + + UiRect() + :x(0), y(0), width(0), height(0) + { + + } + + UiRect(UiLength _x, UiLength _y, UiLength _width, UiLength _height) + :x(_x), y(_y), width(_width), height(_height) + { + + } + + UiPoint TopLeft() { + return UiPoint(x, y); + } + + UiSize Size() { + return UiSize(width, height); + } +}; +# 14 "D:/directui/DirectUI/Controls/UiControl.h" 2 + + +class UiControl : public std::enable_shared_from_this { +public: + typedef Event control_event_t; + control_event_t DesiredSizeChanged; + UiVerticalAlignment verticalAlignment = UiVerticalAlignment::Stretch; + UiHorizontalAlignment horizontalAlignment = UiHorizontalAlignment::Stretch; + + uint32_t GridColumn; + uint32_t GridRow; + UiSize size; + bool clipContent = false; + UiControl(const UiString& name); + D2D1_RECT_F GetLocalSpaceRect(); + static bool IntersectAxisAlignedRect(const UiPoint& point, D2D1_RECT_F& rect); + UiPoint ToLocalSpace(UiPoint worldPoint); + UiPoint ToWorldSpace(UiPoint localPoint); + void PushMessage(std::shared_ptr message); + + virtual void OnMessagePreview(std::shared_ptr message); + virtual void OnMessage(std::shared_ptr message); + virtual ~UiControl(); + virtual UiCoreWindowPtr GetCoreWindow(); + virtual void Render(UiRendererPtr renderer); + virtual void Update(double dt); + void ApplyTransform(UiRendererPtr renderer); + void SetParent(UiControlPtr parent); + UiTransform& GetTransform(); + void Measure(UiSize availableSize); + void Arrange(UiRect localSpaceConstraint); + + UiSize DesiredSize(); + const std::vector GetChildren(); +protected: + virtual UiSize MeasureInternal(UiSize availableSize); + virtual UiRect ArrangeInternal(UiRect constraint); + virtual void ArrangeChildren(UiRect constraint); +private: + UiSize _desiredSize; + void OnMessagePreviewInternal(std::shared_ptr message); + UiTransform transform; + UiString _name; +}; +# 4 "D:/directui/DirectUI/Controls/UiPanel.h" 2 + + + + + +using namespace lm; + +class UiPanel : public UiControl { +public: + std::shared_ptr backgroundBrush; + virtual void Render(UiRendererPtr renderer) override; + static std::shared_ptr Create(UiRendererPtr renderer, const UiString& name); +protected: + UiPanel(UiRendererPtr renderer, const UiString& name); +}; +# 4 "D:/directui/DirectUI/Controls/UiZoomPan.h" 2 + + +# 1 "D:/directui/DirectUI/Controls/../UiInputManager.h" 1 + + + + + +class UiInputManager { +public: + static UiPoint mouseCoord; +}; +# 6 "D:/directui/DirectUI/Controls/UiZoomPan.h" 2 + +# 1 "D:/directui/DirectUI/Controls/UiCoreWindow.h" 1 +# 12 "D:/directui/DirectUI/Controls/UiCoreWindow.h" +using namespace lm; + +class UiCoreWindow : public UiControl { +public: + virtual void Update(double dt) override; + virtual UiCoreWindowPtr GetCoreWindow() override; + virtual void LockInput(); + virtual void UnlockInput(); + virtual UiRendererPtr GetRenderer() = 0; +protected: + UiCoreWindow(const UiString& name); +private: + UiCorePtr _uiCore; +}; +# 7 "D:/directui/DirectUI/Controls/UiZoomPan.h" 2 + + +class UiZoomPan : public UiPanel { +public: + static std::shared_ptr Create(UiRendererPtr renderer, const UiString& name); + std::shared_ptr contentPresenter; +protected: + bool _isPanning; + UiPoint _startPanPosition; + UiZoomPan(UiRendererPtr renderer, const UiString& name); + virtual void OnMessage(std::shared_ptr message) override; + virtual void Update(double dt) override; + virtual void ArrangeChildren(UiRect constraint) override; +}; +# 13 "D:/directui/DirectUI\\Ui.h" 2 + + + +# 1 "D:/directui/DirectUI/Controls/UiLabel.h" 1 +# 14 "D:/directui/DirectUI/Controls/UiLabel.h" +using namespace lm; + +class UiLabel : public UiControl { +public: + std::wstring text; + UiBrushPtr foregroundBrush; + virtual void Render(UiRendererPtr renderer) override; + static std::shared_ptr Create(UiRendererPtr renderer, const UiString& name); + void SetFontSize(float fontSize); + ~UiLabel() { + printf("UiLabel destructor\n"); + } +protected: + UiLabel(UiRendererPtr renderer, const UiString& name); + virtual UiSize MeasureInternal(UiSize availableSize) override; +private: + std::wstring _fontName; + float _fontSize; + IDWriteFactoryPtr _dwFactory; + IDWriteTextFormatPtr _format; + void RebuildTextFormat(); +}; +# 16 "D:/directui/DirectUI\\Ui.h" 2 + + +# 1 "D:/directui/DirectUI/Controls/UiButton.h" 1 + + + + + + + + +class UiButton : public UiPanel { +public: + typedef Event> button_event_t; + button_event_t Click; + static std::shared_ptr Create(UiRendererPtr renderer, const UiString& name) { + return std::shared_ptr(new UiButton(renderer, name)); + } + static std::shared_ptr Create(UiRendererPtr renderer, const UiString& name, const UiString& text) { + auto result = std::shared_ptr(new UiButton(renderer, name)); + auto label = UiLabel::Create(renderer, L"txt"); + label->text = text; + label->SetParent(result); + return result; + } +private: + UiBrushPtr normalBackground; + UiBrushPtr hoverBackground; + UiBrushPtr pressedBackground; + + bool _isPressed; + UiButton(UiRendererPtr renderer, const UiString& name); + virtual void OnMessage(std::shared_ptr message) override; + virtual void OnMessagePreview(std::shared_ptr message) override; + virtual void Update(double dt) override; + virtual void Render(UiRendererPtr renderer) override; +}; +# 18 "D:/directui/DirectUI\\Ui.h" 2 + +# 1 "D:/directui/DirectUI/Controls/UiHwndCoreWindow.h" 1 + + + +# 1 "D:/directui/DirectUI/Controls/UiNativeWindowBase.h" 1 + + + + +# 1 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\Windowsx.h" 1 +# 24 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\Windowsx.h" +extern "C" { +# 1373 "C:/Program Files (x86)/Windows Kits/10/Include/10.0.14393.0/shared\\Windowsx.h" +} +# 5 "D:/directui/DirectUI/Controls/UiNativeWindowBase.h" 2 + + + + +class UiNativeWindowBase : public UiCoreWindow { +public: + UiNativeWindowBase(const UiString& name); + virtual void Update(double dt) override; + WindowPtr GetWindow() { + return _window; + } +protected: + void WndMsgCallback(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); + WindowPtr _window; + int _width; + int _height; +}; +# 4 "D:/directui/DirectUI/Controls/UiHwndCoreWindow.h" 2 + +# 1 "D:/directui/DirectUI/Controls/../Renderers/UiHwndRenderer.h" 1 + + + + + + +class UiHwndRenderer : public UiRenderer { +public: + void Init(WindowPtr window); + static std::shared_ptr Create(); +private: + UiHwndRenderer() { + + } +}; +# 5 "D:/directui/DirectUI/Controls/UiHwndCoreWindow.h" 2 + + +class UiHwndCoreWindow : public UiNativeWindowBase { +public: + static std::shared_ptr Create(const UiString& name); + UiHwndCoreWindow(const UiString& name); + virtual UiRendererPtr GetRenderer() override; + virtual void Update(double dt) override; + void Render(); + + virtual void LockInput() override; + virtual void UnlockInput() override; + +private: + std::shared_ptr _renderer; +}; +# 19 "D:/directui/DirectUI\\Ui.h" 2 +# 5 "D:/lengine/LEditor/LEditor.cpp" 2 + + +# 1 "D:/directui/DirectUI\\Controls/UiSwapChainWindow.h" 1 + + + + +# 1 "D:/directui/DirectUI/Controls/../Renderers/UiSwapChainRenderer.h" 1 + + + + + + +class UiSwapChainRenderer : public UiRenderer { +public: + void Init(WindowPtr window, IDXGIDevicePtr device, IDXGISurfacePtr surface); + static std::shared_ptr Create(); +private: + UiSwapChainRenderer(); + ID2D1DevicePtr _device; + ID2D1DeviceContextPtr _context; + ID2D1Bitmap1Ptr _bitmap; +}; +# 5 "D:/directui/DirectUI\\Controls/UiSwapChainWindow.h" 2 + + + +class UiSwapChainWindow : public UiNativeWindowBase { +public: + static std::shared_ptr Create(const UiString& name); + virtual UiRendererPtr GetRenderer() override; + void Bind(IDXGIDevicePtr device, IDXGISurfacePtr backBuffer); +private: + UiSwapChainWindow(const UiString& name); + std::shared_ptr _renderer; +}; +# 7 "D:/lengine/LEditor/LEditor.cpp" 2 + +# 1 "../LEngine\\RenderTargetOutput.h" 1 +# 8 "D:/lengine/LEditor/LEditor.cpp" 2 + +# 1 "../LEngine\\SwapChainOutput.h" 1 + + + + + + + + +class SwapChainOutput : public RenderOutput { +public: + SwapChainOutput(RendererPtr renderer, HWND window, uint32_t width, uint32_t height, bool stereo) : _activeBuffer(0){ + _buffersCount = 2; + _swapChain = renderer->CreateSwapChain(window, true, width, height, _buffersCount, stereo); + auto device = renderer->GetDevice(); + + + D3D12_DESCRIPTOR_HEAP_DESC heap_desc = {}; + heap_desc.NumDescriptors = _buffersCount; + heap_desc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_RTV; + heap_desc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_NONE; + + while(true){ HRESULT hr_ = (device->CreateDescriptorHeap(&heap_desc, __uuidof(**(&rtvDescriptorHeap)), IID_PPV_ARGS_Helper(&rtvDescriptorHeap))); if ((((HRESULT)(hr_)) < 0)) { std::wstringstream ss; ss << L"Application fail with HRESULT:" << hr_ << " in file " << L"../LEngine\\SwapChainOutput.h" << " at line " << 22 << L" with message: " << L"Failed to allocate RTV descriptors heap"; FatalError(ss.str().c_str()); }break;}; + + rtvDescSize = device->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_RTV); + CD3DX12_CPU_DESCRIPTOR_HANDLE rtvHandle(rtvDescriptorHeap->GetCPUDescriptorHandleForHeapStart()); + + + + heap_desc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_DSV; + while(true){ HRESULT hr_ = (device->CreateDescriptorHeap(&heap_desc, __uuidof(**(&dsvDescriptorHeap)), IID_PPV_ARGS_Helper(&dsvDescriptorHeap))); if ((((HRESULT)(hr_)) < 0)) { std::wstringstream ss; ss << L"Application fail with HRESULT:" << hr_ << " in file " << L"../LEngine\\SwapChainOutput.h" << " at line " << 30 << L" with message: " << L"Failed to allocate DSV descriptors heap"; FatalError(ss.str().c_str()); }break;}; + dsvDescSize = device->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_DSV); + CD3DX12_CPU_DESCRIPTOR_HANDLE dsvHandle(dsvDescriptorHeap->GetCPUDescriptorHandleForHeapStart()); + + for(uint32_t i = 0; i < _buffersCount; ++i){ + + ID3D12ResourcePtr _backBuffer; + if ((((HRESULT)(_swapChain->GetBuffer(i, __uuidof(**(&_backBuffer)), IID_PPV_ARGS_Helper(&_backBuffer)))) < 0)){ + FatalError(L"Failed to get swap chain's bffer"); + } + device->CreateRenderTargetView(_backBuffer.p, nullptr, rtvHandle); + + + + + D3D12_CLEAR_VALUE depthOptimizedClearValue = {}; + depthOptimizedClearValue.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; + depthOptimizedClearValue.DepthStencil.Depth = 1.0f; + depthOptimizedClearValue.DepthStencil.Stencil = 0; + + CComPtr depthStencilBuffer; + device->CreateCommittedResource( + &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT), + D3D12_HEAP_FLAG_NONE, + &CD3DX12_RESOURCE_DESC::Tex2D(DXGI_FORMAT_D24_UNORM_S8_UINT, width, height, 1, 0, 1, 0, D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL), + D3D12_RESOURCE_STATE_DEPTH_WRITE, + &depthOptimizedClearValue, + __uuidof(**(&depthStencilBuffer)), IID_PPV_ARGS_Helper(&depthStencilBuffer) + ); + + device->CreateDepthStencilView(depthStencilBuffer.p, nullptr, dsvHandle); + + rtvHandle.Offset(1, rtvDescSize); + dsvHandle.Offset(1, dsvDescSize); + _buffers.push_back({ _backBuffer, depthStencilBuffer }); + } + } + virtual uint32_t GetWidth() override{ + return GetDesc().Width; + } + + virtual uint32_t GetHeight() override + { + return GetDesc().Height; + } + + CD3DX12_CPU_DESCRIPTOR_HANDLE GetRenderTargetDescriptor(uint32_t id) override { + return CD3DX12_CPU_DESCRIPTOR_HANDLE(rtvDescriptorHeap->GetCPUDescriptorHandleForHeapStart(), id, rtvDescSize); + } + CD3DX12_CPU_DESCRIPTOR_HANDLE GetDepthStencilDescriptor(uint32_t id) override { + return CD3DX12_CPU_DESCRIPTOR_HANDLE(dsvDescriptorHeap->GetCPUDescriptorHandleForHeapStart(), id, dsvDescSize); + } + + ID3D12ResourcePtr GetRenderTarget(uint32_t id) override{ + return _buffers[id].first; + } + + ID3D12ResourcePtr GetDepthBuffer(uint32_t id) override { + return _buffers[id].second; + } + + virtual void Present() override{ + _swapChain->Present(0, 0); + _activeBuffer = (_activeBuffer + 1) % _buffersCount; + } + + virtual void OnPreRender(RendererPtr renderer) override{ + + } + + DXGI_SWAP_CHAIN_DESC1 GetDesc() { + DXGI_SWAP_CHAIN_DESC1 desc; + _swapChain->GetDesc1(&desc); + return desc; + } + uint32_t GetCurrentBufferIndex() override{ + return _activeBuffer; + } + uint32_t GetBuffersCount() override{ + return _buffersCount; + } +private: + std::vector> _buffers; + uint32_t _activeBuffer; + uint32_t _buffersCount; + UINT rtvDescSize; + UINT dsvDescSize; + CComPtr rtvDescriptorHeap; + CComPtr dsvDescriptorHeap; + IDXGISwapChain1Ptr _swapChain; + +}; +# 9 "D:/lengine/LEditor/LEditor.cpp" 2 + +# 1 "../LEngine\\Mesh.h" 1 +# 10 "../LEngine\\Mesh.h" +# 1 "../LEngine/Vertex.h" 1 + + + + + +using namespace lm; +struct Vertex { + float4 position; + float3 normal; + float2 uv0; + float2 uv1; + + Vertex() { + + } + + Vertex(float4 _pos, float3 _norm) { + position = _pos; + normal = _norm; + } + Vertex(float4 _pos, float3 _norm, float2 _uv0) { + position = _pos; + normal = _norm; + uv0 = _uv0; + } +}; +# 10 "../LEngine\\Mesh.h" 2 + +# 1 "../LEngine/Submesh.h" 1 +# 11 "../LEngine/Submesh.h" +enum class MeshTopology { + TriangleList, + TriangleStrip, + LineList, + LineStrip +}; + +class Submesh { +public: + typedef uint32_t index_count_t; + typedef uint32_t index_t; + typedef std::vector index_array_t; + + Submesh() + :_indexCount(0) + { + + } + ID3D12ResourcePtr GetIndexBuffer() const{ + return _indexBuffer; + } + + MeshTopology GetTopology() const{ + return _topology; + } + + D3D12_INDEX_BUFFER_VIEW GetIndexBufferView() + { + return _indexBufferView; + } + + void Set(index_array_t indices, MeshTopology topology) { + _indexCount = indices.size(); + _topology = topology; + _indexBuffer = nullptr; + + if (_indexCount == 0) { + return; + } + + D3D11_BUFFER_DESC desc = { 0 }; + D3D11_SUBRESOURCE_DATA data = { 0 }; + + + desc.Usage = D3D11_USAGE_DEFAULT; + desc.ByteWidth = sizeof(indices[0]) * indices.size(); + desc.BindFlags = D3D11_BIND_INDEX_BUFFER; + desc.CPUAccessFlags = 0; + desc.MiscFlags = 0; + + data.pSysMem = &indices[0]; + data.SysMemPitch = 0; + data.SysMemSlicePitch = 0; + + auto renderer = LEngine::Instance()->GetRenderer(); + auto device = renderer->GetDevice(); + auto cmdList = renderer->BeginCommandList(); + + + CComPtr uploadBuffer; + device->CreateCommittedResource(&CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_UPLOAD), + D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES, + &CD3DX12_RESOURCE_DESC::Buffer(desc.ByteWidth), + D3D12_RESOURCE_STATE_GENERIC_READ, nullptr, __uuidof(**(&uploadBuffer)), IID_PPV_ARGS_Helper(&uploadBuffer)); + + + + void* p; + uploadBuffer->Map(0, nullptr, &p); + memcpy(p, &indices[0], desc.ByteWidth); + uploadBuffer->Unmap(0, nullptr); + + device->CreateCommittedResource(&CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT), + D3D12_HEAP_FLAG_NONE, + &CD3DX12_RESOURCE_DESC::Buffer(desc.ByteWidth), + D3D12_RESOURCE_STATE_COPY_DEST, + nullptr, + __uuidof(**(&_indexBuffer)), IID_PPV_ARGS_Helper(&_indexBuffer)); + + + _indexBufferView.BufferLocation = _indexBuffer->GetGPUVirtualAddress(); + _indexBufferView.SizeInBytes = desc.ByteWidth; + _indexBufferView.Format = DXGI_FORMAT_R32_UINT; + + + cmdList->CopyBufferRegion(_indexBuffer.p, 0, uploadBuffer.p, 0, desc.ByteWidth); + + CD3DX12_RESOURCE_BARRIER barriers[1] = { + CD3DX12_RESOURCE_BARRIER::Transition(_indexBuffer.p, + D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_INDEX_BUFFER) + }; + + + cmdList->ResourceBarrier(1, barriers); + renderer->EndCommandList(); + renderer->WaitCommandsQueue(); + } + index_count_t GetIndicesCount() const { + return _indexCount; + } +private: + index_count_t _indexCount; + MeshTopology _topology; + ID3D12ResourcePtr _indexBuffer; + D3D12_INDEX_BUFFER_VIEW _indexBufferView; +}; + +typedef std::shared_ptr SubmeshPtr; +# 11 "../LEngine\\Mesh.h" 2 + + + + +typedef std::function MeshProcessFunction; + +class Mesh : public Object { +public: + Mesh():_vertexCount(0) + { + + } + std::vector GetVertices(); + void SetVertices(const std::vector& vertices); + void SetIndices(const Submesh::index_array_t& indices, MeshTopology topology, uint32_t submeshId); + void RecalculateBounds(); + ID3D12ResourcePtr GetVertexBuffer(); + ID3D12DevicePtr GetDevice(); + static MeshPtr Create(); + static MeshPtr Create(MeshProcessFunction initFunction); + uint32_t GetSubmeshCount() const; + void SetSubmeshCount(uint32_t count); + const std::vector& GetSubmeshes(); + Bounds GetBounds() const; + D3D12_VERTEX_BUFFER_VIEW GetVertexBufferView(); +private: + size_t _vertexCount; + Bounds _bounds; + Mesh(ID3D12DevicePtr dev); + ID3D12ResourcePtr _vertexBuffer; + ID3D12DevicePtr _device; + std::vector _submeshes; +}; +# 10 "D:/lengine/LEditor/LEditor.cpp" 2 + +# 1 "../LEngine\\GameObject.h" 1 + + + + + + + + +# 1 "../LEngine/OutputArchive.h" 1 + + + +# 1 "../LEngine/Archive.h" 1 + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iostream" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + +namespace std { +# 26 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\iostream" 3 + extern istream cin, *_Ptr_cin; + extern ostream cout, *_Ptr_cout; + extern ostream cerr, *_Ptr_cerr; + extern ostream clog, *_Ptr_clog; + + extern wistream wcin, *_Ptr_wcin; + extern wostream wcout, *_Ptr_wcout; + extern wostream wcerr, *_Ptr_wcerr; + extern wostream wclog, *_Ptr_wclog; + + +class _Winit { +public: + __thiscall _Winit(); + __thiscall ~_Winit() noexcept; +private: + static int _Init_cnt; + }; + +} + +#pragma warning(pop) +#pragma pack(pop) +# 5 "../LEngine/Archive.h" 2 +# 16 "../LEngine/Archive.h" +class Object; +class Archive { +public: + typedef uint64_t size_type; + std::function)> SaveReferenceCallback; + std::function(const AssetFileLink&)> LoadReferenceCallback; + + Archive():SaveReferenceCallback(nullptr){ + + } + virtual ~Archive() {} + virtual bool is_loading() const = 0; + virtual void serialize(void* data, size_t size) = 0; + + virtual size_type get_offset() const = 0; + virtual void set_offset(size_type offset) = 0; + + virtual void flush() {} + + Archive& operator << (uint8_t& value) { serialize(&value, sizeof(value)); return *this; }; + Archive& operator << (uint16_t& value) { serialize(&value, sizeof(value)); return *this; }; + Archive& operator << (uint32_t& value) { serialize(&value, sizeof(value)); return *this; }; + Archive& operator << (uint64_t& value) { serialize(&value, sizeof(value)); return *this; }; + Archive& operator << (int8_t& value) { serialize(&value, sizeof(value)); return *this; }; + Archive& operator << (int16_t& value) { serialize(&value, sizeof(value)); return *this; }; + Archive& operator << (int32_t& value) { serialize(&value, sizeof(value)); return *this; }; + Archive& operator << (int64_t& value) { serialize(&value, sizeof(value)); return *this; }; + Archive& operator << (float& value) { serialize(&value, sizeof(value)); return *this; }; + Archive& operator << (double& value) { serialize(&value, sizeof(value)); return *this; }; + Archive& operator << (lm::float2& value) { serialize(&value, sizeof(value)); return *this; }; + Archive& operator << (lm::float3& value) { serialize(&value, sizeof(value)); return *this; }; + Archive& operator << (lm::float4& value) { serialize(&value, sizeof(value)); return *this; }; + Archive& operator << (lm::double2& value) { serialize(&value, sizeof(value)); return *this; }; + Archive& operator << (lm::double3& value) { serialize(&value, sizeof(value)); return *this; }; + Archive& operator << (lm::double4& value) { serialize(&value, sizeof(value)); return *this; }; + + Archive& operator << (lm::Quaternion_f& value) { serialize(&value, sizeof(value)); return *this; }; + + Archive& operator << (std::string& value) { + uint32_t string_len = 0; + if (is_loading()) { + serialize(&string_len, sizeof(string_len)); + value.resize(string_len); + serialize(&value[0], string_len); + } else { + string_len = value.size(); + serialize(&string_len, sizeof(string_len)); + serialize(&value[0], string_len); + } + return *this; + } + + Archive& operator << (std::wstring& value) { + uint32_t string_len = 0; + if (is_loading()) { + serialize(&string_len, sizeof(string_len)); + value.resize(string_len); + serialize(&value[0], string_len * sizeof(std::wstring::value_type)); + } else { + string_len = value.size(); + serialize(&string_len, sizeof(string_len)); + serialize(&value[0], string_len * sizeof(std::wstring::value_type)); + } + return *this; + } + + template::value>::type> + Archive& operator << (std::shared_ptr& value) { + if (is_loading()) { + AssetFileLink link; + (*this) << link; + if(link.localId == -1) + { + value = nullptr; + }else + { + auto pos = get_offset(); + value = LoadReferenceCallback == nullptr ? nullptr : std::dynamic_pointer_cast(LoadReferenceCallback(link)); + set_offset(pos); + } + + } else { + if (SaveReferenceCallback != nullptr) { + SaveReferenceCallback(value); + } + AssetFileLink link = value == nullptr ? AssetFileLink() : value->GetFileLink(); + (*this) << link; + } + return *this; + } +private: + Archive& operator << (AssetFileLink& value); +}; +# 4 "../LEngine/OutputArchive.h" 2 + + + + + + + +class OutputArchive : public Archive { +public: + OutputArchive(std::shared_ptr stream) + :_stream(stream) { + + } + + virtual bool is_loading() const override { + return false; + } + + size_type get_offset() const override { + return _stream->tellp(); + } + + void set_offset(size_type offset) override { + _stream->seekp(offset, std::ios::beg); + } + + virtual void serialize(void* data, size_t size) override { + _stream->write(reinterpret_cast(data), size); + } + + virtual void flush() override { + if(_stream->good()){ + _stream->flush(); + } + } + + ~OutputArchive() { + flush(); + } + std::shared_ptr GetStream() + { + return _stream; + } +private: + std::shared_ptr _stream; + std::vector> _processed_objects; +}; +# 9 "../LEngine\\GameObject.h" 2 + +# 1 "../LEngine/Transform.h" 1 + + + + +# 1 "../LEngine/Mathf.h" 1 + + +class Mathf { +public: + static float Pi() { + return 3.1415926535897932384626f; + } + static float RadToDeg() { + return 180.0f / Pi(); + } + static float DegToRad() { + return Pi() / 180.0f; + } +}; +# 5 "../LEngine/Transform.h" 2 + + + + + +using namespace lm; + +class Transform;static ObjectFactory Transform_factory;class Transform : public Component {public:static std::wstring type_name() {return L"Transform";}std::wstring get_type_name() const override{ return L"Transform";}static std::shared_ptr create() { auto result = std::shared_ptr(new Transform()); result->Register(); result->construct(); return result;} +public: + std::shared_ptr parent; + Quaternion_f _rotation; + float3 _position; + float3 _scale; + + Transform() + :_scale(1,1,1), _position(0,0,0), _rotation(0,0,0,1){ + } + + void serialize(Archive& archive) override{ + Component::serialize(archive); + archive << parent; + archive << _rotation << _position << _scale; + } + + std::wstring class_name() const { + return L"Transform"; + } + + void SetLocalPosition(const float3& position) { + _position = position; + } + float3 GetLocalPosition() { + return _position; + } + + float3 forward() const{ + return GetGlobalTransform().rows[2].xyz; + } + + float3 right() const { + return GetGlobalTransform().rows[0].xyz; + } + + float3 up() const { + return GetGlobalTransform().rows[1].xyz; + } + + void SetLocalRotation(const Quaternion_f& rotation) { + _rotation = rotation; + } + + Quaternion_f GetLocalRotation() { + return _rotation; + } + + void SetLocalScale(const float3& scale) { + _scale = scale; + } + + float3 GetLocalScale() { + return _scale; + } + + float4x4 GetLocalTransform() const{ + auto scaleMatrix = matrix4x4_scale(_scale); + auto rotationMatrix = matrix4x4_rotation(_rotation); + auto positionMatrix = matrix4x4_translation(_position); + return lm::mul(lm::mul(scaleMatrix, rotationMatrix), positionMatrix); + } + + float4x4 GetGlobalTransform() const{ + if(parent == nullptr) { + return GetLocalTransform(); + } + return lm::mul(GetLocalTransform(), parent->GetGlobalTransform()); + } + + float3 GetGlobalPosition() { + auto tf = GetGlobalTransform(); + return float3(tf.data_2d[3][0], tf.data_2d[3][1], tf.data_2d[3][2]); + } + + void RotateLocal(const Quaternion_f& rotation) { + _rotation = lm::mul(_rotation, rotation); + } +}; +# 10 "../LEngine\\GameObject.h" 2 + + +class GameObject;static ObjectFactory GameObject_factory;class GameObject : public Object {public:static std::wstring type_name() {return L"GameObject";}std::wstring get_type_name() const override{ return L"GameObject";}static std::shared_ptr create() { auto result = std::shared_ptr(new GameObject()); result->Register(); result->construct(); return result;} +public: + TransformPtr transform; + + void tick(float deltaTime); + + virtual void serialize(Archive& archive) override { + Object::serialize(archive); + + if (archive.is_loading()) { + components.clear(); + transform = nullptr; + } + + Archive::size_type cnt = components.size(); + archive << cnt; + + if (archive.is_loading()) { + for (Archive::size_type i = 0; i < cnt; ++i) { + std::shared_ptr obj; + archive << obj; + components.push_back(std::static_pointer_cast(obj)); + + auto tp = std::dynamic_pointer_cast(obj); + if (tp != nullptr) { + transform = tp; + } + } + } else { + for (auto component : components) { + archive << std::static_pointer_cast(component); + } + } + } + + std::shared_ptr as_game_object() { + return std::static_pointer_cast(shared_from_this()); + } + + template + std::shared_ptr AddComponent() { + auto component = T::create(); + component->gameObject = as_game_object(); + components.push_back(component); + return component; + } + + template + std::shared_ptr GetComponent() { + for (auto c : components) { + auto tmp = std::dynamic_pointer_cast(c); + if (tmp != nullptr) { + return tmp; + } + } + return nullptr; + } + + template + std::vector> GetComponents() { + std::vector> result; + for (auto c : components) { + auto tmp = std::dynamic_pointer_cast(c); + if (tmp != nullptr) { + result.push_back(tmp); + } + } + return result; + } + + void construct() override { + construct2(); + } + void construct2(); + +private: + GameObject() {} + std::vector components; +}; +# 11 "D:/lengine/LEditor/LEditor.cpp" 2 + +# 1 "../LEngine\\SceneRenderer.h" 1 + + + +# 1 "../LEngine/MeshGenerator.h" 1 + + + + + + +class MeshGenerator +{ +public: + static void Cube(MeshPtr mesh, bool splitFaces); + + static void Plane(MeshPtr mesh); +}; +# 4 "../LEngine\\SceneRenderer.h" 2 + + + + + +# 1 "../LEngine/MeshRenderer.h" 1 +# 12 "../LEngine/MeshRenderer.h" +class MeshRenderer;static ObjectFactory MeshRenderer_factory;class MeshRenderer : public Component {public:static std::wstring type_name() {return L"MeshRenderer";}std::wstring get_type_name() const override{ return L"MeshRenderer";}static std::shared_ptr create() { auto result = std::shared_ptr(new MeshRenderer()); result->Register(); result->construct(); return result;} +public: + std::shared_ptr SetMesh(MeshPtr m); + MeshPtr GetMesh(); + void SetMaterial(MaterialPtr material, int id); + std::vector GetMaterials() { + return _materials; + } + D3D12_INPUT_LAYOUT_DESC GetInputLayout() { + return _inputLayoutDesc; + } +private: + void UpdateInputLayouts(); + void SyncMaterialSlots(); + MeshPtr mesh; + std::vector _materials; + std::vector _inputElements; + D3D12_INPUT_LAYOUT_DESC _inputLayoutDesc; +}; +# 9 "../LEngine\\SceneRenderer.h" 2 + + +#pragma comment(lib, "d3d11.lib") + +class SceneRenderer { +public: + SceneRenderer(); + void RenderScene(RendererPtr renderer, ScenePtr scene, CameraPtr camera, std::shared_ptr renderScreen); +private: + CComPtr samplers_heap; +}; +# 12 "D:/lengine/LEditor/LEditor.cpp" 2 + +# 1 "../LEngine\\AssetManager.h" 1 + + + + + +# 1 "../LEngine/Texture.h" 1 + + + + + + +class Texture +{ +public: + Texture(ID3D12ResourcePtr _resource, D3D12_CPU_DESCRIPTOR_HANDLE _srvDescriptor) + :resource(_resource), srvDescriptor(_srvDescriptor) + { + + } + ID3D12ResourcePtr resource; + D3D12_CPU_DESCRIPTOR_HANDLE srvDescriptor; +}; +# 6 "../LEngine\\AssetManager.h" 2 + + + +class AssetManager { +public: + static std::shared_ptr Instance() { + if (_instance == nullptr) { + _instance = std::make_shared(); + } + return _instance; + } + + void SetAssetsFolder(const std::wstring& folder) { + _assetsFolder = folder; + } + + std::wstring GetFullAssetPath(const std::wstring& relativePath) const + { + return _assetsFolder + relativePath; + } + TexturePtr LoadTexture(const std::wstring& path) const; +private: + static std::shared_ptr _instance; + std::wstring _assetsFolder; +}; +# 13 "D:/lengine/LEditor/LEditor.cpp" 2 + +# 1 "../LEngine\\ObjMeshLoader.h" 1 + + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stack" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque" 1 3 + + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4127) + +namespace std { +# 26 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque" 3 +template + class _Deque_unchecked_const_iterator + + { +public: + typedef _Deque_unchecked_const_iterator<_Mydeque> _Myiter; + typedef random_access_iterator_tag iterator_category; + + typedef typename _Mydeque::value_type value_type; + typedef typename _Mydeque::size_type size_type; + typedef typename _Mydeque::difference_type difference_type; + typedef typename _Mydeque::const_pointer pointer; + typedef typename _Mydeque::const_reference reference; + + _Deque_unchecked_const_iterator() + : _Mycont(), + _Myoff(0) + { + } + + _Deque_unchecked_const_iterator(size_type _Off, + const _Container_base12 *_Pdeque) + : _Mycont(static_cast(_Pdeque)), + _Myoff(_Off) + { + } + + reference operator*() const + { + size_type _Block = _Mycont->_Getblock(_Myoff); + size_type _Off = _Myoff % (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1); + return (_Mycont->_Map[_Block][_Off]); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + ++_Myoff; + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + --_Myoff; + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + + _Myiter& operator+=(difference_type _Off) + { + _Myoff += _Off; + return (*this); + } + + _Myiter operator+(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp += _Off); + } + + _Myiter& operator-=(difference_type _Off) + { + return (*this += -_Off); + } + + _Myiter operator-(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp -= _Off); + } + + difference_type operator-(const _Myiter& _Right) const + { + return (_Right._Myoff <= _Myoff + ? _Myoff - _Right._Myoff + : -(difference_type)(_Right._Myoff - _Myoff)); + } + + reference operator[](difference_type _Off) const + { + return (*(*this + _Off)); + } + + bool operator==(const _Myiter& _Right) const + { + return (_Myoff == _Right._Myoff); + } + + bool operator!=(const _Myiter& _Right) const + { + return (!(*this == _Right)); + } + + bool operator<(const _Myiter& _Right) const + { + return (_Myoff < _Right._Myoff); + } + + bool operator>(const _Myiter& _Right) const + { + return (_Right < *this); + } + + bool operator<=(const _Myiter& _Right) const + { + return (!(_Right < *this)); + } + + bool operator>=(const _Myiter& _Right) const + { + return (!(*this < _Right)); + } + + const _Container_base12 *_Getcont() const + { + return (_Mycont); + } + + const _Mydeque *_Mycont; + size_type _Myoff; + }; + +template inline + _Deque_unchecked_const_iterator<_Mydeque> operator+( + typename _Deque_unchecked_const_iterator<_Mydeque> + ::difference_type _Off, + _Deque_unchecked_const_iterator<_Mydeque> _Next) + { + return (_Next += _Off); + } + + +template + class _Deque_unchecked_iterator + : public _Deque_unchecked_const_iterator<_Mydeque> + { +public: + typedef _Deque_unchecked_iterator<_Mydeque> _Myiter; + typedef _Deque_unchecked_const_iterator<_Mydeque> _Mybase; + typedef random_access_iterator_tag iterator_category; + + typedef typename _Mydeque::value_type value_type; + typedef typename _Mydeque::size_type size_type; + typedef typename _Mydeque::difference_type difference_type; + typedef typename _Mydeque::pointer pointer; + typedef typename _Mydeque::reference reference; + + _Deque_unchecked_iterator() + { + } + + _Deque_unchecked_iterator(size_type _Off, + const _Container_base12 *_Pdeque) + : _Mybase(_Off, _Pdeque) + { + } + + reference operator*() const + { + return ((reference)**(_Mybase *)this); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + ++*(_Mybase *)this; + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + --*(_Mybase *)this; + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + + _Myiter& operator+=(difference_type _Off) + { + *(_Mybase *)this += _Off; + return (*this); + } + + _Myiter operator+(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp += _Off); + } + + _Myiter& operator-=(difference_type _Off) + { + return (*this += -_Off); + } + + _Myiter operator-(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp -= _Off); + } + + difference_type operator-(const _Mybase& _Right) const + { + return (*(_Mybase *)this - _Right); + } + + reference operator[](difference_type _Off) const + { + return (*(*this + _Off)); + } + }; + +template inline + _Deque_unchecked_iterator<_Mydeque> operator+( + typename _Deque_unchecked_iterator<_Mydeque> + ::difference_type _Off, + _Deque_unchecked_iterator<_Mydeque> _Next) + { + return (_Next += _Off); + } + + +template + class _Deque_const_iterator + : public _Iterator_base12 + { +public: + typedef _Deque_const_iterator<_Mydeque> _Myiter; + typedef random_access_iterator_tag iterator_category; + + typedef typename _Mydeque::value_type value_type; + typedef typename _Mydeque::size_type size_type; + typedef typename _Mydeque::difference_type difference_type; + typedef typename _Mydeque::const_pointer pointer; + typedef typename _Mydeque::const_reference reference; + + typedef _Mydeque _Mydeque_t; + enum {_EEN_DS = (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)}; + _Deque_const_iterator() + : _Myoff(0) + { + _Setcont(0); + } + + _Deque_const_iterator(size_type _Off, const _Container_base12 *_Pdeque) + : _Myoff(_Off) + { + _Setcont((_Mydeque *)_Pdeque); + } + + typedef _Deque_unchecked_const_iterator<_Mydeque> _Unchecked_type; + + _Myiter& _Rechecked(_Unchecked_type _Right) + { + this->_Myoff = _Right._Myoff; + return (*this); + } + + _Unchecked_type _Unchecked() const + { + return (_Unchecked_type(_Myoff, this->_Getcont())); + } + + reference operator*() const + { + const auto _Mycont = static_cast(this->_Getcont()); + + if (_Mycont == 0 + || this->_Myoff < _Mycont->_Myoff + || _Mycont->_Myoff + _Mycont->_Mysize <= this->_Myoff) + { + _Debug_message(L"deque iterator not dereferencable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 329); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 330, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 330, 0); }; + } + + + + + + + + ; + + size_type _Block = _Mycont->_Getblock(_Myoff); + size_type _Off = _Myoff % (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1); + return (_Mycont->_Map[_Block][_Off]); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + + const auto _Mycont = static_cast(this->_Getcont()); + if (_Mycont == 0 + || _Mycont->_Myoff + _Mycont->_Mysize <= this->_Myoff) + { + _Debug_message(L"deque iterator not incrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 358); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 359, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 359, 0); }; + } + + + + + + + + ++_Myoff; + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + + const auto _Mycont = static_cast(this->_Getcont()); + if (_Mycont == 0 + || this->_Myoff <= _Mycont->_Myoff) + { + _Debug_message(L"deque iterator not decrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 386); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 387, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 387, 0); }; + } + + + + + + + + --_Myoff; + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + + _Myiter& operator+=(difference_type _Off) + { + + if (_Off != 0) + { + const auto _Mycont = static_cast(this->_Getcont()); + if (_Mycont == 0 + || this->_Myoff + _Off < _Mycont->_Myoff + || _Mycont->_Myoff + _Mycont->_Mysize < this->_Myoff + _Off) + { + _Debug_message(L"deque iterator + offset out of range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 417); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 418, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 418, 0); }; + } + } +# 431 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque" 3 + _Myoff += _Off; + return (*this); + } + + _Myiter operator+(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp += _Off); + } + + _Myiter& operator-=(difference_type _Off) + { + return (*this += -_Off); + } + + _Myiter operator-(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp -= _Off); + } + + difference_type operator-(const _Myiter& _Right) const + { + _Compat(_Right); + return (_Right._Myoff <= this->_Myoff + ? this->_Myoff - _Right._Myoff + : -(difference_type)(_Right._Myoff - this->_Myoff)); + } + + reference operator[](difference_type _Off) const + { + return (*(*this + _Off)); + } + + bool operator==(const _Myiter& _Right) const + { + _Compat(_Right); + return (this->_Myoff == _Right._Myoff); + } + + bool operator!=(const _Myiter& _Right) const + { + return (!(*this == _Right)); + } + + bool operator<(const _Myiter& _Right) const + { + _Compat(_Right); + return (this->_Myoff < _Right._Myoff); + } + + bool operator>(const _Myiter& _Right) const + { + return (_Right < *this); + } + + bool operator<=(const _Myiter& _Right) const + { + return (!(_Right < *this)); + } + + bool operator>=(const _Myiter& _Right) const + { + return (!(*this < _Right)); + } + + + void _Compat(const _Myiter& _Right) const + { + if (this->_Getcont() != _Right._Getcont()) + { + _Debug_message(L"deque iterators incompatible", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 502); + { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 503, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 503, 0); }; + } + } +# 517 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque" 3 + void _Setcont(const _Mydeque *_Pdeque) + { + this->_Adopt(_Pdeque); + } + + size_type _Myoff; + }; + +template inline + typename _Deque_const_iterator<_Mydeque>::_Unchecked_type + _Unchecked(_Deque_const_iterator<_Mydeque> _Iter) + { + return (_Iter._Unchecked()); + } + +template inline + _Deque_const_iterator<_Mydeque>& + _Rechecked(_Deque_const_iterator<_Mydeque>& _Iter, + typename _Deque_const_iterator<_Mydeque> + ::_Unchecked_type _Right) + { + return (_Iter._Rechecked(_Right)); + } + +template inline + _Deque_const_iterator<_Mydeque> operator+( + typename _Deque_const_iterator<_Mydeque>::difference_type _Off, + _Deque_const_iterator<_Mydeque> _Next) + { + return (_Next += _Off); + } + + +template + class _Deque_iterator + : public _Deque_const_iterator<_Mydeque> + { +public: + typedef _Deque_iterator<_Mydeque> _Myiter; + typedef _Deque_const_iterator<_Mydeque> _Mybase; + typedef _Deque_unchecked_iterator<_Mydeque> _Deque_unchecked_type; + typedef random_access_iterator_tag iterator_category; + + typedef typename _Mydeque::value_type value_type; + typedef typename _Mydeque::size_type size_type; + typedef typename _Mydeque::difference_type difference_type; + typedef typename _Mydeque::pointer pointer; + typedef typename _Mydeque::reference reference; + + _Deque_iterator() + { + } + + _Deque_iterator(size_type _Off, const _Container_base12 *_Pdeque) + : _Mybase(_Off, _Pdeque) + { + } + + typedef _Deque_unchecked_iterator<_Mydeque> _Unchecked_type; + + _Myiter& _Rechecked(_Unchecked_type _Right) + { + this->_Myoff = _Right._Myoff; + return (*this); + } + + _Unchecked_type _Unchecked() const + { + return (_Unchecked_type(this->_Myoff, this->_Getcont())); + } + + reference operator*() const + { + return ((reference)**(_Mybase *)this); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + ++*(_Mybase *)this; + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + --*(_Mybase *)this; + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + + _Myiter& operator+=(difference_type _Off) + { + this->_Myoff += _Off; + return (*this); + } + + _Myiter operator+(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp += _Off); + } + + _Myiter& operator-=(difference_type _Off) + { + return (*this += -_Off); + } + + _Myiter operator-(difference_type _Off) const + { + _Myiter _Tmp = *this; + return (_Tmp -= _Off); + } + + difference_type operator-(const _Mybase& _Right) const + { + return (*(_Mybase *)this - _Right); + } + + reference operator[](difference_type _Off) const + { + return (*(*this + _Off)); + } + }; + +template inline + typename _Deque_iterator<_Mydeque>::_Unchecked_type + _Unchecked(_Deque_iterator<_Mydeque> _Iter) + { + return (_Iter._Unchecked()); + } + +template inline + _Deque_iterator<_Mydeque>& + _Rechecked(_Deque_iterator<_Mydeque>& _Iter, + typename _Deque_iterator<_Mydeque> + ::_Unchecked_type _Right) + { + return (_Iter._Rechecked(_Right)); + } + +template inline + _Deque_iterator<_Mydeque> operator+( + typename _Deque_iterator<_Mydeque>::difference_type _Off, + _Deque_iterator<_Mydeque> _Next) + { + return (_Next += _Off); + } + + +template + struct _Deque_iter_types + { + typedef _Value_type value_type; + typedef _Size_type size_type; + typedef _Difference_type difference_type; + typedef _Pointer pointer; + typedef _Const_pointer const_pointer; + typedef _Reference reference; + typedef _Const_reference const_reference; + typedef _Mapptr_type _Mapptr; + }; + +template + struct _Deque_simple_types + : public _Simple_types<_Ty> + { + typedef _Ty **_Mapptr; + }; + +template + struct _Deque_base_types + { + typedef _Alloc0 _Alloc; + typedef _Deque_base_types<_Ty, _Alloc> _Myt; + + typedef _Wrap_alloc<_Alloc> _Alty0; + typedef typename _Alty0::template rebind<_Ty>::other _Alty; + + + typedef typename _Alty::pointer _Tptr; + typedef typename _Alty::template rebind<_Tptr>::other _Alpty; + typedef typename _Alpty::pointer _Mapptr; + + typedef typename _If<_Is_simple_alloc<_Alty>::value, + _Deque_simple_types, + _Deque_iter_types >::type + _Val_types; + }; + + +template + class _Deque_val + : public _Container_base12 + { +public: + typedef _Deque_val<_Val_types> _Myt; + + typedef typename _Val_types::value_type value_type; + typedef typename _Val_types::size_type size_type; + typedef typename _Val_types::difference_type difference_type; + typedef typename _Val_types::pointer pointer; + typedef typename _Val_types::const_pointer const_pointer; + typedef typename _Val_types::reference reference; + typedef typename _Val_types::const_reference const_reference; + typedef typename _Val_types::_Mapptr _Mapptr; + + typedef _Deque_iterator<_Myt> iterator; + typedef _Deque_const_iterator<_Myt> const_iterator; + + _Deque_val() + : _Map(), + _Mapsize(0), + _Myoff(0), + _Mysize(0) + { + } + + size_type _Getblock(size_type _Off) const + { + + return ((_Off / (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)) & (_Mapsize - 1)); + } + + _Mapptr _Map; + size_type _Mapsize; + size_type _Myoff; + size_type _Mysize; + }; + + +template + class _Deque_alloc + { +public: + typedef _Deque_alloc<_Alloc_types> _Myt; + typedef typename _Alloc_types::_Alloc _Alloc; + typedef typename _Alloc_types::_Alty _Alty; + typedef typename _Alloc_types::_Alpty _Alpty; + typedef typename _Alloc_types::_Val_types _Val_types; + + typedef typename _Val_types::value_type value_type; + typedef typename _Val_types::size_type size_type; + typedef typename _Val_types::difference_type difference_type; + typedef typename _Val_types::pointer pointer; + typedef typename _Val_types::const_pointer const_pointer; + typedef typename _Val_types::reference reference; + typedef typename _Val_types::const_reference const_reference; + typedef typename _Val_types::_Mapptr _Mapptr; + + typedef _Deque_iterator<_Deque_val<_Val_types> > iterator; + typedef _Deque_const_iterator<_Deque_val<_Val_types> > const_iterator; + + size_type _Getblock(size_type _Off) const + { + return (_Get_data()._Getblock(_Off)); + } + + _Deque_alloc() + : _Mypair(_Zero_then_variadic_args_t()) + { + _Alloc_proxy(); + } + + template, _Myt>::value> > + _Deque_alloc(_Any_alloc&& _Al) + : _Mypair(_One_then_variadic_args_t(), + ::std:: forward<_Any_alloc>(_Al)) + { + _Alloc_proxy(); + } + + ~_Deque_alloc() noexcept + { + _Free_proxy(); + } + + void _Copy_alloc(const _Alty& _Al) + { + _Free_proxy(); + _Pocca(_Getal(), _Al); + _Alloc_proxy(); + } + + void _Move_alloc(_Alty& _Al) + { + _Free_proxy(); + _Pocma(_Getal(), _Al); + _Alloc_proxy(); + } + + void _Alloc_proxy() + { + typename _Alty::template rebind<_Container_proxy>::other + _Alproxy(_Getal()); + _Myproxy() = _Unfancy(_Alproxy.allocate(1)); + _Alproxy.construct(_Myproxy(), _Container_proxy()); + _Myproxy()->_Mycont = &_Get_data(); + } + + void _Free_proxy() + { + typename _Alty::template rebind<_Container_proxy>::other + _Alproxy(_Getal()); + _Orphan_all(); + _Alproxy.destroy(_Myproxy()); + _Alproxy.deallocate(_Alproxy.address(*_Myproxy()), 1); + _Myproxy() = 0; + } + + _Iterator_base12 **_Getpfirst() const + { + return (_Get_data()._Getpfirst()); + } + + _Container_proxy * & _Myproxy() noexcept + { + return (_Get_data()._Myproxy); + } + + _Container_proxy * const & _Myproxy() const noexcept + { + return (_Get_data()._Myproxy); + } + + void _Orphan_all() + { + _Get_data()._Orphan_all(); + } + + void _Swap_all(_Myt& _Right) + { + _Get_data()._Swap_all(_Right._Get_data()); + } + + _Alty& _Getal() noexcept + { + return (_Mypair._Get_first()); + } + + const _Alty& _Getal() const noexcept + { + return (_Mypair._Get_first()); + } + + _Deque_val<_Val_types>& _Get_data() noexcept + { + return (_Mypair._Get_second()); + } + + const _Deque_val<_Val_types>& _Get_data() const noexcept + { + return (_Mypair._Get_second()); + } + + _Mapptr& _Map() noexcept + { + return (_Get_data()._Map); + } + + const _Mapptr& _Map() const noexcept + { + return (_Get_data()._Map); + } + + size_type& _Mapsize() noexcept + { + return (_Get_data()._Mapsize); + } + + const size_type& _Mapsize() const noexcept + { + return (_Get_data()._Mapsize); + } + + size_type& _Myoff() noexcept + { + return (_Get_data()._Myoff); + } + + const size_type& _Myoff() const noexcept + { + return (_Get_data()._Myoff); + } + + size_type& _Mysize() noexcept + { + return (_Get_data()._Mysize); + } + + const size_type& _Mysize() const noexcept + { + return (_Get_data()._Mysize); + } + +private: + _Compressed_pair<_Alty, _Deque_val<_Val_types> > _Mypair; + }; + + +template > + class deque + : public _Deque_alloc<_Deque_base_types<_Ty, _Alloc> > + { +public: + typedef deque<_Ty, _Alloc> _Myt; + typedef _Deque_alloc<_Deque_base_types<_Ty, _Alloc> > _Mybase; + typedef _Alloc allocator_type; + + typedef typename _Mybase::_Alty _Alty; + typedef typename _Mybase::_Alpty _Alpty; + typedef typename _Mybase::_Mapptr _Mapptr; + + typedef typename _Mybase::value_type value_type; + typedef typename _Mybase::size_type size_type; + typedef typename _Mybase::difference_type difference_type; + typedef typename _Mybase::pointer pointer; + typedef typename _Mybase::const_pointer const_pointer; + typedef typename _Mybase::reference reference; + typedef typename _Mybase::const_reference const_reference; + + typedef typename _Mybase::iterator iterator; + typedef typename _Mybase::const_iterator const_iterator; + + typedef ::std:: reverse_iterator reverse_iterator; + typedef ::std:: reverse_iterator const_reverse_iterator; + enum {_EEN_DS = (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)}; + deque() + : _Mybase() + { + } + + explicit deque(const _Alloc& _Al) + : _Mybase(_Al) + { + } + + explicit deque(size_type _Count) + : _Mybase() + { + resize(_Count); + } + + deque(size_type _Count, const value_type& _Val) + : _Mybase() + { + _Construct_n(_Count, _Val); + } + + deque(size_type _Count, const value_type& _Val, const _Alloc& _Al) + : _Mybase(_Al) + { + _Construct_n(_Count, _Val); + } + + deque(const _Myt& _Right) + + : _Mybase(_Right._Getal().select_on_container_copy_construction()) + + + { + _Construct(_Right.begin(), _Right.end()); + } + + deque(const _Myt& _Right, const _Alloc& _Al) + : _Mybase(_Al) + { + _Construct(_Right.begin(), _Right.end()); + } + + template::value, + void>::type> + deque(_Iter _First, _Iter _Last) + : _Mybase() + { + _Construct(_First, _Last); + } + + template::value, + void>::type> + deque(_Iter _First, _Iter _Last, const _Alloc& _Al) + : _Mybase(_Al) + { + _Construct(_First, _Last); + } + + template + void _Construct(_Iter _First, _Iter _Last) + { + try { + + for (; _First != _Last; ++_First) + emplace_back(*_First); + + } catch (...) { + _Tidy(); + throw; + } + } + + void _Construct_n(size_type _Count, const value_type& _Val) + { + try { + for (; 0 < _Count; --_Count) + push_back(_Val); + } catch (...) { + _Tidy(); + throw; + } + } +# 1091 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque" 3 + deque(_Myt&& _Right) + : _Mybase(::std:: move(_Right._Getal())) + { + _Assign_rv(::std:: forward<_Myt>(_Right), true_type()); + } + + deque(_Myt&& _Right, const _Alloc& _Al) + : _Mybase(_Al) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + + _Myt& operator=(_Myt&& _Right) + noexcept(_Alty::is_always_equal::value) + { + if (this != &_Right) + { + _Tidy(); + if (_Alty::propagate_on_container_move_assignment::value + && this->_Getal() != _Right._Getal()) + this->_Move_alloc(_Right._Getal()); + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + return (*this); + } + + void _Assign_rv(_Myt&& _Right, true_type) + { + this->_Swap_all((_Myt&)_Right); + this->_Map() = _Right._Map(); + this->_Mapsize() = _Right._Mapsize(); + this->_Myoff() = _Right._Myoff(); + this->_Mysize() = _Right._Mysize(); + + _Right._Map() = _Mapptr(); + _Right._Mapsize() = 0; + _Right._Myoff() = 0; + _Right._Mysize() = 0; + } + + void _Assign_rv(_Myt&& _Right, false_type) + { + if (get_allocator() == _Right.get_allocator()) + _Assign_rv(::std:: forward<_Myt>(_Right), true_type()); + else + _Construct(::std:: make_move_iterator(_Right.begin()), + ::std:: make_move_iterator(_Right.end())); + } + + void _Assign_rv(_Myt&& _Right) + { + _Assign_rv(::std:: forward<_Myt>(_Right), + typename _Alty::propagate_on_container_move_assignment()); + } + + + void push_front(value_type&& _Val) + { + this->_Orphan_all(); + if (this->_Myoff() % (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1) == 0 && this->_Mapsize() <= (this->_Mysize() + (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)) / (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)) _Growmap(1); this->_Myoff() &= this->_Mapsize() * (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1) - 1; size_type _Newoff = this->_Myoff() != 0 ? this->_Myoff() : this->_Mapsize() * (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1); size_type _Block = this->_Getblock(--_Newoff); if (this->_Map()[_Block] == pointer()) this->_Map()[_Block] = this->_Getal().allocate((sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)); + this->_Getal().construct( + _Unfancy(this->_Map()[_Block] + _Newoff % (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)), + ::std:: forward(_Val)); + this->_Myoff() = _Newoff; ++this->_Mysize(); + } + + void push_back(value_type&& _Val) + { + this->_Orphan_all(); + if ((this->_Myoff() + this->_Mysize()) % (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1) == 0 && this->_Mapsize() <= (this->_Mysize() + (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)) / (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)) _Growmap(1); this->_Myoff() &= this->_Mapsize() * (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1) - 1; size_type _Newoff = this->_Myoff() + this->_Mysize(); size_type _Block = this->_Getblock(_Newoff); if (this->_Map()[_Block] == pointer()) this->_Map()[_Block] = this->_Getal().allocate((sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)); + this->_Getal().construct( + _Unfancy(this->_Map()[_Block] + _Newoff % (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)), + ::std:: forward(_Val)); + ++this->_Mysize(); + } + + iterator insert(const_iterator _Where, _Ty&& _Val) + { + return (emplace(_Where, ::std:: move(_Val))); + } + + template + void emplace_front(_Valty&&... _Val) + { + this->_Orphan_all(); + if (this->_Myoff() % (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1) == 0 && this->_Mapsize() <= (this->_Mysize() + (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)) / (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)) _Growmap(1); this->_Myoff() &= this->_Mapsize() * (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1) - 1; size_type _Newoff = this->_Myoff() != 0 ? this->_Myoff() : this->_Mapsize() * (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1); size_type _Block = this->_Getblock(--_Newoff); if (this->_Map()[_Block] == pointer()) this->_Map()[_Block] = this->_Getal().allocate((sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)); + this->_Getal().construct( + _Unfancy(this->_Map()[_Block] + _Newoff % (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)), + ::std:: forward<_Valty>(_Val)...); + this->_Myoff() = _Newoff; ++this->_Mysize(); + } + + template + void emplace_back(_Valty&&... _Val) + { + this->_Orphan_all(); + if ((this->_Myoff() + this->_Mysize()) % (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1) == 0 && this->_Mapsize() <= (this->_Mysize() + (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)) / (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)) _Growmap(1); this->_Myoff() &= this->_Mapsize() * (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1) - 1; size_type _Newoff = this->_Myoff() + this->_Mysize(); size_type _Block = this->_Getblock(_Newoff); if (this->_Map()[_Block] == pointer()) this->_Map()[_Block] = this->_Getal().allocate((sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)); + this->_Getal().construct( + _Unfancy(this->_Map()[_Block] + _Newoff % (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)), + ::std:: forward<_Valty>(_Val)...); + ++this->_Mysize(); + } + + template + iterator emplace(const_iterator _Where, _Valty&&... _Val) + { + size_type _Off = _Where - begin(); + + + if (this->_Mysize() < _Off) + _Debug_message(L"deque emplace iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 1201); + + + if (_Off <= this->_Mysize() / 2) + { + emplace_front(::std:: forward<_Valty>(_Val)...); + ::std:: rotate(begin(), begin() + 1, begin() + 1 + _Off); + } + else + { + emplace_back(::std:: forward<_Valty>(_Val)...); + ::std:: rotate(begin() + _Off, end() - 1, end()); + } + return (begin() + _Off); + } + + + deque(::std:: initializer_list _Ilist, + const _Alloc& _Al = allocator_type()) + : _Mybase(_Al) + { + _Construct(_Ilist.begin(), _Ilist.end()); + } + + _Myt& operator=(::std:: initializer_list _Ilist) + { + assign(_Ilist.begin(), _Ilist.end()); + return (*this); + } + + void assign(::std:: initializer_list _Ilist) + { + assign(_Ilist.begin(), _Ilist.end()); + } + + iterator insert(const_iterator _Where, + ::std:: initializer_list _Ilist) + { + return (insert(_Where, _Ilist.begin(), _Ilist.end())); + } + + ~deque() noexcept + { + _Tidy(); + } + + _Myt& operator=(const _Myt& _Right) + { + if (this != &_Right) + { + if (this->_Getal() != _Right._Getal() + && _Alty::propagate_on_container_copy_assignment::value) + { + _Tidy(); + this->_Copy_alloc(_Right._Getal()); + } + + this->_Orphan_all(); + + if (_Right._Mysize() == 0) + clear(); + else if (_Right._Mysize() <= this->_Mysize()) + { + iterator _Mid = ::std:: copy(_Right.begin(), _Right.end(), + begin()); + erase(_Mid, end()); + } + else + { + const_iterator _Mid = _Right.begin() + this->_Mysize(); + ::std:: copy(_Right.begin(), _Mid, begin()); + insert(end(), _Mid, _Right.end()); + } + } + return (*this); + } + + iterator begin() noexcept + { + return (iterator(this->_Myoff(), &this->_Get_data())); + } + + const_iterator begin() const noexcept + { + return (const_iterator(this->_Myoff(), &this->_Get_data())); + } + + iterator end() noexcept + { + return (iterator(this->_Myoff() + this->_Mysize(), + &this->_Get_data())); + } + + const_iterator end() const noexcept + { + return (const_iterator(this->_Myoff() + this->_Mysize(), + &this->_Get_data())); + } + + iterator _Make_iter(const_iterator _Where) const + { + return (iterator(_Where._Myoff, &this->_Get_data())); + } + + reverse_iterator rbegin() noexcept + { + return (reverse_iterator(end())); + } + + const_reverse_iterator rbegin() const noexcept + { + return (const_reverse_iterator(end())); + } + + reverse_iterator rend() noexcept + { + return (reverse_iterator(begin())); + } + + const_reverse_iterator rend() const noexcept + { + return (const_reverse_iterator(begin())); + } + + const_iterator cbegin() const noexcept + { + return (begin()); + } + + const_iterator cend() const noexcept + { + return (end()); + } + + const_reverse_iterator crbegin() const noexcept + { + return (rbegin()); + } + + const_reverse_iterator crend() const noexcept + { + return (rend()); + } + + void shrink_to_fit() + { + size_type _Oldcapacity = (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1) * this->_Mapsize(); + size_type _Newcapacity = _Oldcapacity / 2; + + if (_Newcapacity < (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1) * 8) + _Newcapacity = (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1) * 8; + + if ((empty() && 0 < this->_Mapsize()) + || (!empty() + && size() <= _Newcapacity + && _Newcapacity < _Oldcapacity)) + { + _Myt _Tmp(::std:: make_move_iterator(begin()), + ::std:: make_move_iterator(end())); + swap(_Tmp); + } + } + + void resize(size_type _Newsize) + { + while (this->_Mysize() < _Newsize) + emplace_back(); + + while (_Newsize < this->_Mysize()) + pop_back(); + } + + void resize(size_type _Newsize, const value_type& _Val) + { + while (this->_Mysize() < _Newsize) + push_back(_Val); + while (_Newsize < this->_Mysize()) + pop_back(); + } + + size_type size() const noexcept + { + return (this->_Mysize()); + } + + size_type max_size() const noexcept + { + return (this->_Getal().max_size()); + } + + bool empty() const noexcept + { + return (this->_Mysize() == 0); + } + + allocator_type get_allocator() const noexcept + { + allocator_type _Ret(this->_Getal()); + return (_Ret); + } + + const_reference at(size_type _Pos) const + { + if (this->_Mysize() <= _Pos) + _Xran(); + return (*(begin() + _Pos)); + } + + reference at(size_type _Pos) + { + if (this->_Mysize() <= _Pos) + _Xran(); + return (*(begin() + _Pos)); + } + + const_reference operator[](size_type _Pos) const + { + + if (this->_Mysize() <= _Pos) + _Debug_message(L"deque subscript out of range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 1420); + + + return (*(begin() + _Pos)); + } + + reference operator[](size_type _Pos) + { + + if (this->_Mysize() <= _Pos) + _Debug_message(L"deque subscript out of range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 1430); + + + return (*(begin() + _Pos)); + } + + reference front() + { + return (*begin()); + } + + const_reference front() const + { + return (*begin()); + } + + reference back() + { + return (*(end() - 1)); + } + + const_reference back() const + { + return (*(end() - 1)); + } + + void push_front(const value_type& _Val) + { + this->_Orphan_all(); + if (this->_Myoff() % (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1) == 0 && this->_Mapsize() <= (this->_Mysize() + (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)) / (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)) _Growmap(1); this->_Myoff() &= this->_Mapsize() * (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1) - 1; size_type _Newoff = this->_Myoff() != 0 ? this->_Myoff() : this->_Mapsize() * (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1); size_type _Block = this->_Getblock(--_Newoff); if (this->_Map()[_Block] == pointer()) this->_Map()[_Block] = this->_Getal().allocate((sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)); + this->_Getal().construct( + _Unfancy(this->_Map()[_Block] + _Newoff % (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)), _Val); + this->_Myoff() = _Newoff; ++this->_Mysize(); + } + + void pop_front() + { + + if (empty()) + _Debug_message(L"deque empty before pop", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 1469); + else + { + _Orphan_off(this->_Myoff()); + size_type _Block = this->_Getblock(this->_Myoff()); + this->_Getal().destroy( + _Unfancy(this->_Map()[_Block] + this->_Myoff() % (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1))); + if (--this->_Mysize() == 0) + this->_Myoff() = 0; + else + ++this->_Myoff(); + } +# 1491 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque" 3 + } + + void push_back(const value_type& _Val) + { + this->_Orphan_all(); + if ((this->_Myoff() + this->_Mysize()) % (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1) == 0 && this->_Mapsize() <= (this->_Mysize() + (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)) / (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)) _Growmap(1); this->_Myoff() &= this->_Mapsize() * (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1) - 1; size_type _Newoff = this->_Myoff() + this->_Mysize(); size_type _Block = this->_Getblock(_Newoff); if (this->_Map()[_Block] == pointer()) this->_Map()[_Block] = this->_Getal().allocate((sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)); + this->_Getal().construct( + _Unfancy(this->_Map()[_Block] + _Newoff % (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)), _Val); + ++this->_Mysize(); + } + + void pop_back() + { + + if (empty()) + _Debug_message(L"deque empty before pop", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 1506); + else + { + size_type _Newoff = this->_Myoff() + this->_Mysize() - 1; + _Orphan_off(_Newoff); + size_type _Block = this->_Getblock(_Newoff); + this->_Getal().destroy( + _Unfancy(this->_Map()[_Block] + _Newoff % (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1))); + if (--this->_Mysize() == 0) + this->_Myoff() = 0; + } +# 1526 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque" 3 + } + + template + typename enable_if<_Is_iterator<_Iter>::value, + void>::type + assign(_Iter _First, _Iter _Last) + { + clear(); + + for (; _First != _Last; ++_First) + emplace_back(*_First); + } + + void assign(size_type _Count, const value_type& _Val) + { + erase(begin(), end()); + _Insert_n(begin(), _Count, _Val); + } + + iterator insert(const_iterator _Where, + const value_type& _Val) + { + size_type _Off = _Where - begin(); + + + if (this->_Mysize() < _Off) + _Debug_message(L"deque insert iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 1552); + + + if (_Off <= this->_Mysize() / 2) + { + push_front(_Val); + ::std:: rotate(begin(), begin() + 1, begin() + 1 + _Off); + } + else + { + push_back(_Val); + ::std:: rotate(begin() + _Off, end() - 1, end()); + } + return (begin() + _Off); + } + + iterator insert(const_iterator _Where, size_type _Count, + const value_type& _Val) + { + size_type _Off = _Where - begin(); + _Insert_n(_Where, _Count, _Val); + return (begin() + _Off); + } + + template + typename enable_if<_Is_iterator<_Iter>::value, + iterator>::type + insert(const_iterator _Where, _Iter _First, _Iter _Last) + { + size_type _Off = _Where - begin(); + + + if (this->_Mysize() < _Off) + _Debug_message(L"deque insert iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 1585); + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 1586); + + + size_type _Oldsize = this->_Mysize(); + + if (_First == _Last) + ; + else if (_Off <= this->_Mysize() / 2) + { + try { + for (; _First != _Last; ++_First) + push_front(*_First); + + } catch (...) { + for (; _Oldsize < this->_Mysize(); ) + pop_front(); + throw; + } + + size_type _Num = this->_Mysize() - _Oldsize; + ::std:: reverse(begin(), begin() + _Num); + ::std:: rotate(begin(), begin() + _Num, begin() + _Num + _Off); + } + else + { + try { + for (; _First != _Last; ++_First) + push_back(*_First); + + } catch (...) { + for (; _Oldsize < this->_Mysize(); ) + pop_back(); + throw; + } + + ::std:: rotate(begin() + _Off, begin() + _Oldsize, end()); + } + return (begin() + _Off); + } + + iterator erase(const_iterator _Where) + { + return (erase(_Where, _Where + 1)); + } + + iterator erase(const_iterator _First_arg, + const_iterator _Last_arg) + { + iterator _First = _Make_iter(_First_arg); + iterator _Last = _Make_iter(_Last_arg); + + + if (_Last < _First + || _First < begin() || end() < _Last) + _Debug_message(L"deque erase iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 1640); + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 1641); + + size_type _Off = _First - begin(); + size_type _Count = _Last - _First; + bool _Moved = 0 < _Off && _Off + _Count < this->_Mysize(); + + + + + + + if (_Off < (size_type)(end() - _Last)) + { + ::std:: move_backward(begin(), _First, _Last); + for (; 0 < _Count; --_Count) + pop_front(); + } + else + { + ::std:: move(_Last, end(), _First); + for (; 0 < _Count; --_Count) + pop_back(); + } + + + if (_Moved) + this->_Orphan_all(); + + + return (begin() + _Off); + } + + void clear() noexcept + { + _Tidy(); + } + + void swap(_Myt& _Right) + noexcept(_Alty::is_always_equal::value) + { + if (this != &_Right) + { + _Pocs(this->_Getal(), _Right._Getal()); + this->_Swap_all(_Right); + _Swap_adl(this->_Map(), _Right._Map()); + ::std:: swap(this->_Mapsize(), _Right._Mapsize()); + ::std:: swap(this->_Myoff(), _Right._Myoff()); + ::std:: swap(this->_Mysize(), _Right._Mysize()); + } + } + +protected: + void _Insert_n(const_iterator _Where, + size_type _Count, const value_type& _Val) + { + iterator _Mid; + size_type _Num; + size_type _Off = _Where - begin(); + size_type _Rem = this->_Mysize() - _Off; + size_type _Oldsize = this->_Mysize(); + + + if (this->_Mysize() < _Off) + _Debug_message(L"deque insert iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\deque", 1704); + + + if (_Off < _Rem) + { + try { + if (_Off < _Count) + { + for (_Num = _Count - _Off; 0 < _Num; --_Num) + push_front(_Val); + for (_Num = _Off; 0 < _Num; --_Num) + push_front(begin()[_Count - 1]); + + _Mid = begin() + _Count; + ::std:: fill(_Mid, _Mid + _Off, + _Val); + } + else + { + for (_Num = _Count; 0 < _Num; --_Num) + push_front(begin()[_Count - 1]); + + _Mid = begin() + _Count; + value_type _Tmp = _Val; + ::std:: move(_Mid + _Count, _Mid + _Off, + _Mid); + ::std:: fill(begin() + _Off, _Mid + _Off, + _Tmp); + } + } catch (...) { + for (; _Oldsize < this->_Mysize(); ) + pop_front(); + throw; + } + } + else + { + try { + if (_Rem < _Count) + { + for (_Num = _Count - _Rem; 0 < _Num; --_Num) + push_back(_Val); + for (_Num = 0; _Num < _Rem; ++_Num) + push_back(begin()[_Off + _Num]); + + _Mid = begin() + _Off; + ::std:: fill(_Mid, _Mid + _Rem, + _Val); + } + else + { + for (_Num = 0; _Num < _Count; ++_Num) + push_back(begin()[_Off + _Rem + - _Count + _Num]); + + _Mid = begin() + _Off; + value_type _Tmp = _Val; + ::std:: move_backward(_Mid, _Mid + _Rem - _Count, + _Mid + _Rem); + ::std:: fill(_Mid, _Mid + _Count, + _Tmp); + } + } catch (...) { + for (; _Oldsize < this->_Mysize(); ) + pop_back(); + throw; + } + } + } + + [[noreturn]] void _Xlen() const + { + _Xlength_error("deque too long"); + } + + [[noreturn]] void _Xran() const + { + _Xout_of_range("invalid deque subscript"); + } + + void _Growmap(size_type _Count) + { + static_assert(1 < 8, + "The _Xlen() test should always be performed."); + + typedef typename _Alpty::pointer _Blockptr; + _Alpty _Almap(this->_Getal()); + size_type _Newsize = 0 < this->_Mapsize() ? this->_Mapsize() : 1; + while (_Newsize - this->_Mapsize() < _Count + || _Newsize < 8) + { + if (max_size() / (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1) - _Newsize < _Newsize) + _Xlen(); + _Newsize *= 2; + } + _Count = _Newsize - this->_Mapsize(); + + size_type _Myboff = this->_Myoff() / (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1); + _Mapptr _Newmap = _Almap.allocate(this->_Mapsize() + _Count); + _Mapptr _Myptr = _Newmap + _Myboff; + + _Myptr = _Uninitialized_copy(this->_Map() + _Myboff, + this->_Map() + this->_Mapsize(), + _Myptr, _Almap); + if (_Myboff <= _Count) + { + _Myptr = _Uninitialized_copy(this->_Map(), + this->_Map() + _Myboff, + _Myptr, _Almap); + _Uninitialized_default_fill_n(_Myptr, _Count - _Myboff, + _Almap); + _Uninitialized_default_fill_n(_Newmap, _Myboff, + _Almap); + } + else + { + _Uninitialized_copy(this->_Map(), + this->_Map() + _Count, + _Myptr, _Almap); + _Myptr = _Uninitialized_copy(this->_Map() + _Count, + this->_Map() + _Myboff, + _Newmap, _Almap); + _Uninitialized_default_fill_n(_Myptr, _Count, + _Almap); + } + + _Destroy_range(this->_Map() + _Myboff, + this->_Map() + this->_Mapsize(), _Almap); + if (this->_Map() != _Mapptr()) + _Almap.deallocate(this->_Map(), + this->_Mapsize()); + + this->_Map() = _Newmap; + this->_Mapsize() += _Count; + } + + void _Tidy() + { + _Alpty _Almap(this->_Getal()); + while (!empty()) + pop_back(); + for (size_type _Block = this->_Mapsize(); 0 < _Block; ) + { + if (this->_Map()[--_Block] != pointer()) + { + this->_Getal().deallocate(this->_Map()[_Block], (sizeof (value_type) <= 1 ? 16 : sizeof (value_type) <= 2 ? 8 : sizeof (value_type) <= 4 ? 4 : sizeof (value_type) <= 8 ? 2 : 1)); + this->_Getal().destroy(::std:: addressof(this->_Map()[_Block])); + } + } + + if (this->_Map() != _Mapptr()) + _Almap.deallocate(this->_Map(), + this->_Mapsize()); + this->_Mapsize() = 0; + this->_Map() = _Mapptr(); + } + + + void _Orphan_off(size_type _Offlo) const + { + size_type _Offhigh = this->_Myoff() + this->_Mysize() <= _Offlo + 1 + ? (size_type)(-1) : _Offlo; + if (_Offlo == this->_Myoff()) + _Offlo = 0; + + _Lockit _Lock(3); + const_iterator **_Pnext = (const_iterator **)this->_Getpfirst(); + if (_Pnext != 0) + while (*_Pnext != 0) + if ((*_Pnext)->_Myoff < _Offlo + || _Offhigh < (*_Pnext)->_Myoff) + _Pnext = (const_iterator **)(*_Pnext)->_Getpnext(); + else + { + (*_Pnext)->_Clrcont(); + *_Pnext = *(const_iterator **)(*_Pnext)->_Getpnext(); + } + } + + }; + + + +template inline + void swap(deque<_Ty, _Alloc>& _Left, deque<_Ty, _Alloc>& _Right) + noexcept(noexcept(_Left.swap(_Right))) + { + _Left.swap(_Right); + } + +template inline + bool operator==(const deque<_Ty, _Alloc>& _Left, + const deque<_Ty, _Alloc>& _Right) + { + return (_Left.size() == _Right.size() + && ::std:: equal(_Left.begin(), _Left.end(), _Right.begin())); + } + +template inline + bool operator!=(const deque<_Ty, _Alloc>& _Left, + const deque<_Ty, _Alloc>& _Right) + { + return (!(_Left == _Right)); + } + +template inline + bool operator<(const deque<_Ty, _Alloc>& _Left, + const deque<_Ty, _Alloc>& _Right) + { + return (::std:: lexicographical_compare(_Left.begin(), _Left.end(), + _Right.begin(), _Right.end())); + } + +template inline + bool operator<=(const deque<_Ty, _Alloc>& _Left, + const deque<_Ty, _Alloc>& _Right) + { + return (!(_Right < _Left)); + } + +template inline + bool operator>(const deque<_Ty, _Alloc>& _Left, + const deque<_Ty, _Alloc>& _Right) + { + return (_Right < _Left); + } + +template inline + bool operator>=(const deque<_Ty, _Alloc>& _Left, + const deque<_Ty, _Alloc>& _Right) + { + return (!(_Left < _Right)); + } +} + + +#pragma warning(pop) +#pragma pack(pop) +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\stack" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + +namespace std { + +template > + class stack + { +public: + typedef stack<_Ty, _Container> _Myt; + typedef _Container container_type; + typedef typename _Container::value_type value_type; + typedef typename _Container::size_type size_type; + typedef typename _Container::reference reference; + typedef typename _Container::const_reference const_reference; + + stack() + : c() + { + } + + stack(const _Myt& _Right) + : c(_Right.c) + { + } + + explicit stack(const _Container& _Cont) + : c(_Cont) + { + } + + _Myt& operator=(const _Myt& _Right) + { + c = _Right.c; + return (*this); + } + + + template::value, + void>::type> + explicit stack(const _Alloc& _Al) + : c(_Al) + { + } + + template::value, + void>::type> + stack(const _Myt& _Right, const _Alloc& _Al) + : c(_Right.c, _Al) + { + } + + template::value, + void>::type> + stack(const _Container& _Cont, const _Alloc& _Al) + : c(_Cont, _Al) + { + } + + stack(_Myt&& _Right) + noexcept(is_nothrow_move_constructible<_Container>::value) + : c(::std:: move(_Right.c)) + { + } + + explicit stack(_Container&& _Cont) + : c(::std:: move(_Cont)) + { + } + + template::value, + void>::type> + stack(_Myt&& _Right, const _Alloc& _Al) + : c(::std:: move(_Right.c), _Al) + { + } + + template::value, + void>::type> + stack(_Container&& _Cont, const _Alloc& _Al) + : c(::std:: move(_Cont), _Al) + { + } + + _Myt& operator=(_Myt&& _Right) + noexcept(is_nothrow_move_assignable<_Container>::value) + { + c = ::std:: move(_Right.c); + return (*this); + } + + void push(value_type&& _Val) + { + c.push_back(::std:: move(_Val)); + } + + template + void emplace(_Valty&&... _Val) + { + c.emplace_back(::std:: forward<_Valty>(_Val)...); + } + + + bool empty() const + { + return (c.empty()); + } + + size_type size() const + { + return (c.size()); + } + + reference top() + { + return (c.back()); + } + + const_reference top() const + { + return (c.back()); + } + + void push(const value_type& _Val) + { + c.push_back(_Val); + } + + void pop() + { + c.pop_back(); + } + + const _Container& _Get_container() const + { + return (c); + } + +protected: + _Container c; + +public: + void swap(_Myt& _Right) + noexcept(_Is_nothrow_swappable<_Container>::value) + { + _Swap_adl(c, _Right.c); + } + }; + + +template::value>> inline + void swap(stack<_Ty, _Container>& _Left, + stack<_Ty, _Container>& _Right) + noexcept(noexcept(_Left.swap(_Right))) + { + _Left.swap(_Right); + } + +template inline + bool operator==(const stack<_Ty, _Container>& _Left, + const stack<_Ty, _Container>& _Right) + { + return (_Left._Get_container() == _Right._Get_container()); + } + +template inline + bool operator!=(const stack<_Ty, _Container>& _Left, + const stack<_Ty, _Container>& _Right) + { + return (!(_Left == _Right)); + } + +template inline + bool operator<(const stack<_Ty, _Container>& _Left, + const stack<_Ty, _Container>& _Right) + { + return (_Left._Get_container() < _Right._Get_container()); + } + +template inline + bool operator>(const stack<_Ty, _Container>& _Left, + const stack<_Ty, _Container>& _Right) + { + return (_Right < _Left); + } + +template inline + bool operator<=(const stack<_Ty, _Container>& _Left, + const stack<_Ty, _Container>& _Right) + { + return (!(_Right < _Left)); + } + +template inline + bool operator>=(const stack<_Ty, _Container>& _Left, + const stack<_Ty, _Container>& _Right) + { + return (!(_Left < _Right)); + } +} + +namespace std { +template + struct uses_allocator, _Alloc> + : uses_allocator<_Container, _Alloc> + { + }; +} + + +#pragma warning(pop) +#pragma pack(pop) +# 8 "../LEngine\\ObjMeshLoader.h" 2 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\filesystem" 1 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\chrono" 1 3 + + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\ratio" 1 3 + + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +namespace std { + +template + struct _Abs + { + static constexpr intmax_t value = _Val < 0 ? -_Val : _Val; + }; + + +template::value + <= 9223372036854775807i64 / (_Bx == 0 ? 1 : _Abs<_Bx>::value))> + struct _Safe_mult + : integral_constant + { + }; + +template + struct _Safe_mult<_Ax, _Bx, _Sfinae, false> + { + static_assert(_Sfinae, + "integer arithmetic overflow"); + }; + + +template + struct _Sign_of + { + static constexpr intmax_t value = _Val < 0 ? -1 : 1; + }; + + +template + struct _Safe_addX + { + static constexpr intmax_t value = _Ax + _Bx; + }; + +template + struct _Safe_addX<_Ax, _Bx, false, false> + { + static_assert(_Always_false<_Safe_addX>::value, + "integer arithmetic overflow"); + }; + +template + struct _Safe_add + { + static constexpr intmax_t value = _Safe_addX<_Ax, _Bx, + _Sign_of<_Ax>::value != _Sign_of<_Bx>::value, + (_Abs<_Ax>::value <= 9223372036854775807i64 - _Abs<_Bx>::value)>::value; + }; + + +template + struct _GcdX + { + static constexpr intmax_t value = _GcdX<_Bx, _Ax % _Bx>::value; + }; + +template + struct _GcdX<_Ax, 0> + { + static constexpr intmax_t value = _Ax; + }; + +template + struct _Gcd + { + static constexpr intmax_t value = + _GcdX<_Abs<_Ax>::value, _Abs<_Bx>::value>::value; + }; + +template<> + struct _Gcd<0, 0> + { + static constexpr intmax_t value = 1; + }; + + +template + struct ratio + { + static_assert(_Dx != 0, + "zero denominator"); + static_assert(-9223372036854775807i64 <= _Nx, + "numerator too negative"); + static_assert(-9223372036854775807i64 <= _Dx, + "denominator too negative"); + + static constexpr intmax_t num = _Sign_of<_Nx>::value + * _Sign_of<_Dx>::value * _Abs<_Nx>::value / _Gcd<_Nx, _Dx>::value; + + static constexpr intmax_t den = _Abs<_Dx>::value / _Gcd<_Nx, _Dx> + ::value; + + typedef ratio type; + }; + + +template + struct _Are_ratios + : false_type + { + }; + +template + struct _Are_ratios, ratio<_N2, _D2> > + : true_type + { + }; + + +template + struct _Ratio_add + { + static_assert(_Are_ratios<_R1, _R2>::value, + "ratio_add requires R1 and R2 to be ratio<>s."); + + static constexpr intmax_t _N1 = _R1::num; + static constexpr intmax_t _D1 = _R1::den; + static constexpr intmax_t _N2 = _R2::num; + static constexpr intmax_t _D2 = _R2::den; + + static constexpr intmax_t _Gx = _Gcd<_D1, _D2>::value; + + + typedef typename ratio< + _Safe_add< + _Safe_mult<_N1, _D2 / _Gx>::value, + _Safe_mult<_N2, _D1 / _Gx>::value + >::value, + _Safe_mult<_D1, _D2 / _Gx>::value + >::type type; + }; + +template + using ratio_add = typename _Ratio_add<_R1, _R2>::type; + + +template + struct _Ratio_subtract + { + static_assert(_Are_ratios<_R1, _R2>::value, + "ratio_subtract requires R1 and R2 to be ratio<>s."); + + static constexpr intmax_t _N2 = _R2::num; + static constexpr intmax_t _D2 = _R2::den; + + typedef ratio_add<_R1, ratio<-_N2, _D2> > type; + }; + +template + using ratio_subtract = typename _Ratio_subtract<_R1, _R2>::type; + + +template + struct _Ratio_multiply + { + static_assert(_Are_ratios<_R1, _R2>::value, + "ratio_multiply requires R1 and R2 to be ratio<>s."); + + static constexpr intmax_t _N1 = _R1::num; + static constexpr intmax_t _D1 = _R1::den; + static constexpr intmax_t _N2 = _R2::num; + static constexpr intmax_t _D2 = _R2::den; + + static constexpr intmax_t _Gx = _Gcd<_N1, _D2>::value; + static constexpr intmax_t _Gy = _Gcd<_N2, _D1>::value; + + typedef _Safe_mult<_N1 / _Gx, _N2 / _Gy, true> _Num; + typedef _Safe_mult<_D1 / _Gy, _D2 / _Gx, true> _Den; + }; + +template + struct _Ratio_multiply_sfinae + { + static_assert(_Sfinae, + "integer arithmetic overflow"); + }; + +template + struct _Ratio_multiply_sfinae<_R1, _R2, _Sfinae, void_t< + typename _Ratio_multiply<_R1, _R2>::_Num::type, + typename _Ratio_multiply<_R1, _R2>::_Den::type> > + { + typedef ratio< + _Ratio_multiply<_R1, _R2>::_Num::value, + _Ratio_multiply<_R1, _R2>::_Den::value> type; + }; + +template + using ratio_multiply = typename _Ratio_multiply_sfinae<_R1, _R2, false> + ::type; + + +template + struct _Ratio_divide + { + static_assert(_Are_ratios<_R1, _R2>::value, + "ratio_divide requires R1 and R2 to be ratio<>s."); + + static constexpr intmax_t _N2 = _R2::num; + static constexpr intmax_t _D2 = _R2::den; + + typedef ratio<_D2, _N2> _R2_inverse; + }; + +template + using _Ratio_divide_sfinae = typename _Ratio_multiply_sfinae< + _R1, typename _Ratio_divide<_R1, _R2>::_R2_inverse, _Sfinae>::type; + +template + using ratio_divide = _Ratio_divide_sfinae<_R1, _R2, false>; + + +template + struct ratio_equal + : _Cat_base<_R1::num == _R2::num && _R1::den == _R2::den> + { + static_assert(_Are_ratios<_R1, _R2>::value, + "ratio_equal requires R1 and R2 to be ratio<>s."); + }; + + +template + struct ratio_not_equal + : integral_constant::value> + { + static_assert(_Are_ratios<_R1, _R2>::value, + "ratio_not_equal requires R1 and R2 to be ratio<>s."); + }; + + +template + struct _Ratio_less + { + static constexpr intmax_t _N1 = _R1::num; + static constexpr intmax_t _D1 = _R1::den; + static constexpr intmax_t _N2 = _R2::num; + static constexpr intmax_t _D2 = _R2::den; + + static constexpr intmax_t _Gn = _Gcd<_N1, _N2>::value; + static constexpr intmax_t _Gd = _Gcd<_D1, _D2>::value; + + static constexpr intmax_t _Left = _Safe_mult<_N1 / _Gn, _D2 / _Gd>::value; + static constexpr intmax_t _Right = _Safe_mult<_N2 / _Gn, _D1 / _Gd>::value; + + typedef integral_constant type; + }; + +template + struct ratio_less + : _Ratio_less<_R1, _R2>::type + { + static_assert(_Are_ratios<_R1, _R2>::value, + "ratio_less requires R1 and R2 to be ratio<>s."); + }; + + +template + struct ratio_less_equal + : integral_constant::value> + { + static_assert(_Are_ratios<_R1, _R2>::value, + "ratio_less_equal requires R1 and R2 to be ratio<>s."); + }; + + +template + struct ratio_greater + : integral_constant::value> + { + static_assert(_Are_ratios<_R1, _R2>::value, + "ratio_greater requires R1 and R2 to be ratio<>s."); + }; + + +template + struct ratio_greater_equal + : integral_constant::value> + { + static_assert(_Are_ratios<_R1, _R2>::value, + "ratio_greater_equal requires R1 and R2 to be ratio<>s."); + }; + + + +template + constexpr bool ratio_equal_v = ratio_equal<_R1, _R2>::value; +template + constexpr bool ratio_not_equal_v = ratio_not_equal<_R1, _R2>::value; +template + constexpr bool ratio_less_v = ratio_less<_R1, _R2>::value; +template + constexpr bool ratio_less_equal_v = ratio_less_equal<_R1, _R2>::value; +template + constexpr bool ratio_greater_v = ratio_greater<_R1, _R2>::value; +template + constexpr bool ratio_greater_equal_v = ratio_greater_equal<_R1, _R2>::value; + + + + +typedef ratio<1, 1000000000000000000LL> atto; +typedef ratio<1, 1000000000000000LL> femto; +typedef ratio<1, 1000000000000LL> pico; + +typedef ratio<1, 1000000000> nano; +typedef ratio<1, 1000000> micro; +typedef ratio<1, 1000> milli; +typedef ratio<1, 100> centi; +typedef ratio<1, 10> deci; +typedef ratio<10, 1> deca; +typedef ratio<100, 1> hecto; +typedef ratio<1000, 1> kilo; +typedef ratio<1000000, 1> mega; +typedef ratio<1000000000, 1> giga; + +typedef ratio<1000000000000LL, 1> tera; +typedef ratio<1000000000000000LL, 1> peta; +typedef ratio<1000000000000000000LL, 1> exa; +} + +#pragma warning(pop) +#pragma pack(pop) +# 7 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\chrono" 2 3 + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\thr/xtimec.h" 1 3 + + + + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\thr/xthrcommon.h" 1 3 + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) +# 20 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\thr/xthrcommon.h" 3 +#pragma warning(disable: 4511 4512) + +extern "C" { + +#pragma warning(disable: 4115 4100 4097 4245) +# 34 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\thr/xthrcommon.h" 3 +typedef unsigned int _Thrd_id_t; +typedef struct + { + void *_Hnd; + _Thrd_id_t _Id; + } _Thrd_imp_t; + + + + + +typedef unsigned int (__stdcall *_Thrd_callback_t)(void *); +# 74 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\thr/xthrcommon.h" 3 +typedef struct _Mtx_internal_imp_t *_Mtx_imp_t; + +typedef struct _Cnd_internal_imp_t *_Cnd_imp_t; +typedef int _Tss_imp_t; + + + void __cdecl _Thrd_abort(const char *); + int __cdecl _Thrd_start(_Thrd_imp_t *, _Thrd_callback_t, void *); +void _Tss_destroy(void); +# 95 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\thr/xthrcommon.h" 3 +} +# 107 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\thr/xthrcommon.h" 3 +#pragma warning(pop) +#pragma pack(pop) +# 6 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\thr/xtimec.h" 2 3 + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + + +extern "C" { + + +typedef struct xtime + { + __time64_t sec; + long nsec; + } xtime; + + int __cdecl xtime_get(xtime*, int); + + long __cdecl _Xtime_diff_to_millis(const xtime *); + long __cdecl _Xtime_diff_to_millis2(const xtime*, const xtime *); + long long __cdecl _Xtime_get_ticks(void); + + + + long long __cdecl _Query_perf_counter(void); + long long __cdecl _Query_perf_frequency(void); + + +} + + +#pragma warning(pop) +#pragma pack(pop) +# 10 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\chrono" 2 3 + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4455) +#pragma warning(disable: 6326) + +namespace std { +namespace chrono { + +template + struct treat_as_floating_point + : is_floating_point<_Rep> + { + }; + + +template + constexpr bool treat_as_floating_point_v = treat_as_floating_point<_Rep>::value; + + + +template + struct duration_values + { + static constexpr _Rep zero() + { + return (_Rep(0)); + } + + static constexpr _Rep (min)() + { + return (numeric_limits<_Rep>::lowest()); + } + + static constexpr _Rep (max)() + { + return ((numeric_limits<_Rep>::max)()); + } + }; + + +template + struct _Is_ratio + { + static constexpr bool value = false; + }; + +template + struct _Is_ratio > + { + static constexpr bool value = true; + }; + + +template > + class duration; + +template + struct _Is_duration + : false_type + { + }; + +template + struct _Is_duration > + : true_type + { + }; + +template inline + constexpr typename enable_if<_Is_duration<_To>::value, _To>::type + duration_cast(const duration<_Rep, _Period>&); + +template + class duration + { +public: + typedef duration<_Rep, _Period> _Myt; + typedef _Rep rep; + typedef _Period period; + + static_assert(!_Is_duration<_Rep>::value, + "duration can't have duration as first template argument"); + static_assert(_Is_ratio<_Period>::value, + "period not an instance of std::ratio"); + static_assert(0 < _Period::num, + "period negative or zero"); + + constexpr duration() = default; + + template::value + && (treat_as_floating_point<_Rep>::value + || !treat_as_floating_point<_Rep2>::value), + void>::type> + constexpr explicit duration(const _Rep2& _Val) + : _MyRep(static_cast<_Rep>(_Val)) + { + } + + template::value + + || (_Ratio_divide_sfinae<_Period2, _Period>::den == 1 + + && !treat_as_floating_point<_Rep2>::value), + void>::type> + constexpr duration(const duration<_Rep2, _Period2>& _Dur) + : _MyRep(chrono::duration_cast<_Myt>(_Dur).count()) + { + } + + constexpr _Rep count() const + { + return (_MyRep); + } + + constexpr _Myt operator+() const + { + return (*this); + } + + constexpr _Myt operator-() const + { + return (_Myt(0 - _MyRep)); + } + + _Myt& operator++() + { + ++_MyRep; + return (*this); + } + + _Myt operator++(int) + { + return (_Myt(_MyRep++)); + } + + _Myt& operator--() + { + --_MyRep; + return (*this); + } + + _Myt operator--(int) + { + return (_Myt(_MyRep--)); + } + + _Myt& operator+=(const _Myt& _Right) + { + _MyRep += _Right._MyRep; + return (*this); + } + + _Myt& operator-=(const _Myt& _Right) + { + _MyRep -= _Right._MyRep; + return (*this); + } + + _Myt& operator*=(const _Rep& _Right) + { + _MyRep *= _Right; + return (*this); + } + + _Myt& operator/=(const _Rep& _Right) + { + _MyRep /= _Right; + return (*this); + } + + _Myt& operator%=(const _Rep& _Right) + { + _MyRep %= _Right; + return (*this); + } + + _Myt& operator%=(const _Myt& _Right) + { + _MyRep %= _Right.count(); + return (*this); + } + + static constexpr _Myt zero() + { + return (_Myt(duration_values<_Rep>::zero())); + } + + static constexpr _Myt (min)() + { + return (_Myt((duration_values<_Rep>::min)())); + } + static constexpr _Myt (max)() + { + return (_Myt((duration_values<_Rep>::max)())); + } + +private: + _Rep _MyRep; + }; + +template + class time_point + { +public: + typedef _Clock clock; + typedef _Duration duration; + typedef typename _Duration::rep rep; + typedef typename _Duration::period period; + + static_assert(_Is_duration<_Duration>::value, + "duration must be an instance of std::duration"); + + constexpr time_point() + : _MyDur(_Duration::zero()) + { + } + + constexpr explicit time_point(const _Duration& _Other) + : _MyDur(_Other) + { + } + + template::value, + void>::type> + constexpr time_point(const time_point<_Clock, _Duration2>& _Tp) + : _MyDur(_Tp.time_since_epoch()) + { + } + + constexpr _Duration time_since_epoch() const + { + return (_MyDur); + } + + time_point& operator+=(const _Duration& _Dur) + { + _MyDur += _Dur; + return (*this); + } + + time_point& operator-=(const _Duration& _Dur) + { + _MyDur -= _Dur; + return (*this); + } + + static constexpr time_point (min)() + { + return (time_point((_Duration::min)())); + } + static constexpr time_point (max)() + { + return (time_point((_Duration::max)())); + } + +private: + _Duration _MyDur; + }; +} + + +template + struct _Lcm + { + static constexpr intmax_t _Gx = _Gcd<_Ax, _Bx>::value; + static constexpr intmax_t value = (_Ax / _Gx) * _Bx; + }; + + +template + struct common_type< + chrono::duration<_Rep1, _Period1>, + chrono::duration<_Rep2, _Period2> > + { + typedef chrono::duration::type, + ratio<_Gcd<_Period1::num, _Period2::num>::value, + _Lcm<_Period1::den, _Period2::den>::value> > type; + }; + +template + struct common_type< + chrono::time_point<_Clock, _Duration1>, + chrono::time_point<_Clock, _Duration2> > + { + typedef chrono::time_point< + _Clock, typename common_type<_Duration1, _Duration2>::type> type; + }; + +namespace chrono { + +template inline + constexpr typename common_type< + duration<_Rep1, _Period1>, + duration<_Rep2, _Period2> >::type + operator+( + const duration<_Rep1, _Period1>& _Left, + const duration<_Rep2, _Period2>& _Right) + { + typedef typename common_type< + duration<_Rep1, _Period1>, + duration<_Rep2, _Period2> >::type _CD; + return (_CD(_CD(_Left).count() + _CD(_Right).count())); + } + +template inline + constexpr typename common_type< + duration<_Rep1, _Period1>, + duration<_Rep2, _Period2> >::type + operator-( + const duration<_Rep1, _Period1>& _Left, + const duration<_Rep2, _Period2>& _Right) + { + typedef typename common_type< + duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _CD; + return (_CD(_CD(_Left).count() - _CD(_Right).count())); + } + +template inline + constexpr typename enable_if::type>::value, + duration::type, _Period1> >::type + operator*( + const duration<_Rep1, _Period1>& _Left, + const _Rep2& _Right) + { + typedef typename common_type<_Rep1, _Rep2>::type _CR; + typedef duration<_CR, _Period1> _CD; + return (_CD(_CD(_Left).count() * _Right)); + } + +template inline + constexpr typename enable_if::type>::value, + duration::type, _Period2> >::type + operator*( + const _Rep1& _Left, + const duration<_Rep2, _Period2>& _Right) + { + return (_Right * _Left); + } + +template::value> + struct _Duration_div_mod1 + { + typedef duration<_CR, _Period1> type; + }; + +template + struct _Duration_div_mod1<_CR, _Period1, _Rep2, false> + { + }; + +template::value> + struct _Duration_div_mod + { + }; + +template + struct _Duration_div_mod<_Rep1, _Period1, _Rep2, false> + : _Duration_div_mod1::type, + _Period1, _Rep2> + { + }; + +template inline + typename _Duration_div_mod<_Rep1, _Period1, _Rep2>::type + constexpr operator/( + const duration<_Rep1, _Period1>& _Left, + const _Rep2& _Right) + { + typedef typename common_type<_Rep1, _Rep2>::type _CR; + typedef duration<_CR, _Period1> _CD; + return (_CD(_CD(_Left).count() / _Right)); + } + +template inline + constexpr typename common_type<_Rep1, _Rep2>::type + operator/( + const duration<_Rep1, _Period1>& _Left, + const duration<_Rep2, _Period2>& _Right) + { + typedef typename common_type< + duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _CD; + return (_CD(_Left).count() / _CD(_Right).count()); + } + +template inline + constexpr typename _Duration_div_mod<_Rep1, _Period1, _Rep2>::type + operator%( + const duration<_Rep1, _Period1>& _Left, + const _Rep2& _Right) + { + typedef typename common_type<_Rep1, _Rep2>::type _CR; + typedef duration<_CR, _Period1> _CD; + return (_CD(_CD(_Left).count() % _Right)); + } + +template inline + constexpr typename common_type< + duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type + operator%( + const duration<_Rep1, _Period1>& _Left, + const duration<_Rep2, _Period2>& _Right) + { + typedef typename common_type< + duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _CD; + return (_CD(_CD(_Left).count() % _CD(_Right).count())); + } + + +template inline + constexpr bool operator==( + const duration<_Rep1, _Period1>& _Left, + const duration<_Rep2, _Period2>& _Right) + { + typedef typename common_type< + duration<_Rep1, _Period1>, + duration<_Rep2, _Period2> >::type _CT; + return (_CT(_Left).count() == _CT(_Right).count()); + } + +template inline + constexpr bool operator!=( + const duration<_Rep1, _Period1>& _Left, + const duration<_Rep2, _Period2>& _Right) + { + return (!(_Left == _Right)); + } + +template inline + constexpr bool operator<( + const duration<_Rep1, _Period1>& _Left, + const duration<_Rep2, _Period2>& _Right) + { + typedef typename common_type< + duration<_Rep1, _Period1>, + duration<_Rep2, _Period2> >::type _CT; + return (_CT(_Left).count() < _CT(_Right).count()); + } + +template inline + constexpr bool operator<=( + const duration<_Rep1, _Period1>& _Left, + const duration<_Rep2, _Period2>& _Right) + { + return (!(_Right < _Left)); + } + +template inline + constexpr bool operator>( + const duration<_Rep1, _Period1>& _Left, + const duration<_Rep2, _Period2>& _Right) + { + return (_Right < _Left); + } + +template inline + constexpr bool operator>=( + const duration<_Rep1, _Period1>& _Left, + const duration<_Rep2, _Period2>& _Right) + { + return (!(_Left < _Right)); + } + + +template inline + constexpr typename enable_if<_Is_duration<_To>::value, _To>::type + duration_cast(const duration<_Rep, _Period>& _Dur) + { + typedef ratio_divide<_Period, typename _To::period> _CF; + + typedef typename _To::rep _ToRep; + typedef typename common_type<_ToRep, _Rep, intmax_t>::type _CR; + return (_CF::num == 1 && _CF::den == 1 + ? static_cast<_To>(static_cast<_ToRep>(_Dur.count())) + : _CF::num != 1 && _CF::den == 1 + ? static_cast<_To>(static_cast<_ToRep>( + static_cast<_CR>( + _Dur.count()) * static_cast<_CR>(_CF::num))) + : _CF::num == 1 && _CF::den != 1 + ? static_cast<_To>(static_cast<_ToRep>( + static_cast<_CR>(_Dur.count()) + / static_cast<_CR>(_CF::den))) + : static_cast<_To>(static_cast<_ToRep>( + static_cast<_CR>(_Dur.count()) * static_cast<_CR>(_CF::num) + / static_cast<_CR>(_CF::den)))); + } + + +template + using _As_integral = duration< + typename conditional::value, + intmax_t, + typename _Dur::rep>::type, + typename _Dur::period>; + + +template inline + constexpr _To_integral _Floor(const duration<_Rep, _Period>& _Dur, + const _To_integral& _Dur_integral) + { + return (_Dur_integral <= _Dur + ? _Dur_integral + : _Dur_integral - static_cast<_To_integral>(1)); + } + +template inline + constexpr typename enable_if<_Is_duration<_To>::value, _To>::type + floor(const duration<_Rep, _Period>& _Dur) + { + + return (_Floor(_Dur, chrono::duration_cast<_As_integral<_To> >(_Dur))); + } + + +template inline + constexpr _To_integral _Ceil(const duration<_Rep, _Period>& _Dur, + const _To_integral& _Dur_integral) + { + return (_Dur <= _Dur_integral + ? _Dur_integral + : _Dur_integral + static_cast<_To_integral>(1)); + } + +template inline + constexpr typename enable_if<_Is_duration<_To>::value, _To>::type + ceil(const duration<_Rep, _Period>& _Dur) + { + + return (_Ceil(_Dur, chrono::duration_cast<_As_integral<_To> >(_Dur))); + } + + +template inline + constexpr typename make_unsigned<_Rep>::type _Make_unsigned(_Rep _Val) + { + return (static_cast::type>(_Val)); + } + + +template inline + constexpr bool _Is_even(_Rep _Val) + { + return (_Val % 2 == 0); + } + + +template inline + constexpr _Rep _Bankers_divide_impl(_Rep _Truncated, _Rep _Mod, + _Rep _Half_divisor, bool _Half_divisor_is_exact) + { + return (_Truncated + static_cast<_Rep>( + + _Mod > _Half_divisor + + || (_Mod == _Half_divisor + + && _Half_divisor_is_exact + && !_Is_even(_Truncated) + ))); + } + +template inline + constexpr _Rep _Bankers_divide_tag(_Rep _Dividend, _Rep _Divisor, false_type) + { + return (_Bankers_divide_impl( + _Dividend / _Divisor, + _Dividend % _Divisor, + _Divisor / static_cast<_Rep>(2), + _Is_even(_Divisor))); + } + +template inline + constexpr _Rep _Bankers_divide_tag(_Rep _Dividend, _Rep _Divisor, true_type) + { + return (static_cast<_Rep>(duration_values<_Rep>::zero() <= _Dividend + ? _Bankers_divide_tag(_Make_unsigned(_Dividend), + _Make_unsigned(_Divisor), false_type()) + : duration_values<_Rep>::zero() - _Bankers_divide_tag( + duration_values<_Rep>::zero() - _Make_unsigned(_Dividend), + _Make_unsigned(_Divisor), false_type()))); + } + +template inline + constexpr _Rep _Bankers_divide(_Rep _Dividend, _Rep _Divisor) + { + + + + return (_Bankers_divide_tag(_Dividend, _Divisor, is_signed<_Rep>())); + } + + +template inline + constexpr bool _Round_should_truncate(_Rep _Val, intmax_t _Val_trunc) + { + return (_Val - static_cast<_Rep>(_Val_trunc) < static_cast<_Rep>(_Val_trunc + 1) - _Val + || (_Val - static_cast<_Rep>(_Val_trunc) == static_cast<_Rep>(_Val_trunc + 1) - _Val + && _Is_even(_Val_trunc))); + } + +template inline + constexpr intmax_t _Round_fp_non_negative(_Rep _Val, intmax_t _Val_trunc) + { + return (_Round_should_truncate(_Val, _Val_trunc) ? _Val_trunc : _Val_trunc + 1); + } + +template inline + constexpr intmax_t _Round_fp_non_negative(_Rep _Val) + { + return (_Round_fp_non_negative(_Val, static_cast(_Val))); + } + +template inline + constexpr _Rep _Round_fp(_Rep _Val) + { + + static_assert(treat_as_floating_point<_Rep>::value, + "_Round_fp needs floating input"); + return (static_cast<_Rep>(duration_values<_Rep>::zero() <= _Val + ? _Round_fp_non_negative(_Val) + : (duration_values<_Rep>::zero() + - _Round_fp_non_negative(duration_values<_Rep>::zero() - _Val)) + )); + } + + +template inline + constexpr _To _Round(const duration<_Rep, _Period>& _Dur, + false_type, false_type) + { + typedef ratio_divide<_Period, typename _To::period> _CF; + + typedef typename _To::rep _ToRep; + typedef typename common_type<_ToRep, _Rep, intmax_t>::type _CR; + return (_CF::num == 1 && _CF::den == 1 + ? static_cast<_To>(static_cast<_ToRep>(_Dur.count())) + : _CF::num != 1 && _CF::den == 1 + ? static_cast<_To>(static_cast<_ToRep>( + static_cast<_CR>( + _Dur.count()) * static_cast<_CR>(_CF::num))) + : _CF::num == 1 && _CF::den != 1 + ? static_cast<_To>(static_cast<_ToRep>(_Bankers_divide( + static_cast<_CR>(_Dur.count()), static_cast<_CR>(_CF::den)))) + : static_cast<_To>(static_cast<_ToRep>( + _Bankers_divide( + static_cast<_CR>(_Dur.count()) * static_cast<_CR>(_CF::num), + static_cast<_CR>(_CF::den))))); + } + +template inline + constexpr _To _Round(const duration<_Rep, _Period>& _Dur, + false_type, true_type) + { + + + typedef duration<_Rep, typename _To::period> _FloatTo; + return (static_cast<_To>(static_cast( + _Round_fp(chrono::duration_cast<_FloatTo>(_Dur).count())))); + } + +template inline + constexpr _To _Round(const duration<_Rep, _Period>& _Dur, + true_type, _Source_integral) + { + + return (static_cast<_To>(_Round_fp(chrono::duration_cast<_To>(_Dur).count()))); + } + +template inline + constexpr typename enable_if<_Is_duration<_To>::value, _To>::type + round(const duration<_Rep, _Period>& _Dur) + { + return (_Round<_To>(_Dur, + treat_as_floating_point(), + treat_as_floating_point<_Rep>())); + } + + +template inline + constexpr typename enable_if::is_signed, + duration<_Rep, _Period> >::type + abs(const duration<_Rep, _Period> _Dur) + { + return (_Dur < duration<_Rep, _Period>::zero() + ? duration<_Rep, _Period>::zero() - _Dur + : _Dur); + } + + +typedef duration nanoseconds; +typedef duration microseconds; +typedef duration milliseconds; +typedef duration seconds; +typedef duration > minutes; +typedef duration > hours; + + +template inline + constexpr time_point<_Clock, + typename common_type<_Duration, duration<_Rep, _Period> >::type> + operator+( + const time_point<_Clock, _Duration>& _Left, + const duration<_Rep, _Period>& _Right) + { + typedef time_point<_Clock, typename common_type< + _Duration, duration<_Rep, _Period> >::type> _RT; + return (_RT(_Left.time_since_epoch() + _Right)); + } + +template inline + constexpr time_point<_Clock, + typename common_type, _Duration>::type> + operator+( + const duration<_Rep, _Period>& _Left, + const time_point<_Clock, _Duration>& _Right) + { + return (_Right + _Left); + } + +template inline + constexpr time_point<_Clock, + typename common_type<_Duration, duration<_Rep, _Period> >::type> + operator-( + const time_point<_Clock, _Duration>& _Left, + const duration<_Rep, _Period>& _Right) + { + return (_Left + (-_Right)); + } + +template inline + constexpr typename common_type<_Duration1, _Duration2>::type + operator-( + const time_point<_Clock, _Duration1>& _Left, + const time_point<_Clock, _Duration2>& _Right) + { + return (_Left.time_since_epoch() - _Right.time_since_epoch()); + } + + +template inline + constexpr bool operator==( + const time_point<_Clock, _Duration1>& _Left, + const time_point<_Clock, _Duration2>& _Right) + { + return (_Left.time_since_epoch() == _Right.time_since_epoch()); + } + +template inline + constexpr bool operator!=( + const time_point<_Clock, _Duration1>& _Left, + const time_point<_Clock, _Duration2>& _Right) + { + return (!(_Left == _Right)); + } + +template inline + constexpr bool operator<( + const time_point<_Clock, _Duration1>& _Left, + const time_point<_Clock, _Duration2>& _Right) + { + return (_Left.time_since_epoch() < _Right.time_since_epoch()); + } + +template inline + constexpr bool operator<=( + const time_point<_Clock, _Duration1>& _Left, + const time_point<_Clock, _Duration2>& _Right) + { + return (!(_Right < _Left)); + } + +template inline + constexpr bool operator>( + const time_point<_Clock, _Duration1>& _Left, + const time_point<_Clock, _Duration2>& _Right) + { + return (_Right < _Left); + } + +template inline + constexpr bool operator>=( + const time_point<_Clock, _Duration1>& _Left, + const time_point<_Clock, _Duration2>& _Right) + { + return (!(_Left < _Right)); + } + + +template inline + constexpr typename enable_if<_Is_duration<_To>::value, + time_point<_Clock, _To> >::type + time_point_cast(const time_point<_Clock, _Duration>& _Time) + { + return (time_point<_Clock, _To>( + chrono::duration_cast<_To>(_Time.time_since_epoch()))); + } + + +template inline + constexpr typename enable_if<_Is_duration<_To>::value, + time_point<_Clock, _To> >::type + floor(const time_point<_Clock, _Duration>& _Time) + { + return (time_point<_Clock, _To>( + chrono::floor<_To>(_Time.time_since_epoch()))); + } + + +template inline + constexpr typename enable_if<_Is_duration<_To>::value, + time_point<_Clock, _To> >::type + ceil(const time_point<_Clock, _Duration>& _Time) + { + return (time_point<_Clock, _To>( + chrono::ceil<_To>(_Time.time_since_epoch()))); + } + + +template inline + constexpr typename enable_if<_Is_duration<_To>::value, + time_point<_Clock, _To> >::type + round(const time_point<_Clock, _Duration>& _Time) + { + return (time_point<_Clock, _To>( + chrono::round<_To>(_Time.time_since_epoch()))); + } + + +struct system_clock + + { + typedef long long rep; + + typedef ratio_multiply, nano> period; + + typedef chrono::duration duration; + typedef chrono::time_point time_point; + static constexpr bool is_steady = false; + + static time_point now() noexcept + { + return (time_point(duration(_Xtime_get_ticks()))); + } + + static __time64_t to_time_t(const time_point& _Time) noexcept + { + return ((__time64_t)(_Time.time_since_epoch().count() + / (long long)10000000)); + } + + static time_point from_time_t(__time64_t _Tm) noexcept + { + return (time_point(duration(_Tm * (long long)10000000))); + } + }; + +struct steady_clock + { + typedef long long rep; + typedef nano period; + typedef nanoseconds duration; + typedef chrono::time_point time_point; + static constexpr bool is_steady = true; + + static time_point now() noexcept + { + const long long _Freq = _Query_perf_frequency(); + const long long _Ctr = _Query_perf_counter(); + static_assert(period::num == 1, "This assumes period::num == 1."); + const long long _Whole = (_Ctr / _Freq) * period::den; + const long long _Part = (_Ctr % _Freq) * period::den / _Freq; + return (time_point(duration(_Whole + _Part))); + } + }; + +typedef steady_clock high_resolution_clock; +} + + +template inline + xtime _To_xtime(const chrono::duration<_Rep, _Period>& _Rel_time) + { + xtime _Xt; + if (_Rel_time <= chrono::duration<_Rep, _Period>::zero()) + { + _Xt.sec = 0; + _Xt.nsec = 0; + } + else + { + chrono::nanoseconds _T0 = + chrono::system_clock::now().time_since_epoch(); + _T0 += chrono::duration_cast(_Rel_time); + _Xt.sec = chrono::duration_cast(_T0).count(); + _T0 -= chrono::seconds(_Xt.sec); + _Xt.nsec = (long)_T0.count(); + } + return (_Xt); + } + + + + + + + +inline namespace literals { +inline namespace chrono_literals { +inline constexpr chrono::hours operator "" h(unsigned long long _Val) + { + return (chrono::hours(_Val)); + } + +inline constexpr chrono::duration > operator "" h( + long double _Val) + { + return (chrono::duration >(_Val)); + } + +inline constexpr chrono::minutes (operator "" min)(unsigned long long _Val) + { + return (chrono::minutes(_Val)); + } + +inline constexpr chrono::duration > (operator "" min)( + long double _Val) + { + return (chrono::duration >(_Val)); + } + +inline constexpr chrono::seconds operator "" s(unsigned long long _Val) + { + return (chrono::seconds(_Val)); + } + +inline constexpr chrono::duration operator "" s(long double _Val) + { + return (chrono::duration(_Val)); + } + +inline constexpr chrono::milliseconds operator "" ms(unsigned long long _Val) + { + return (chrono::milliseconds(_Val)); + } + +inline constexpr chrono::duration operator "" ms( + long double _Val) + { + return (chrono::duration(_Val)); + } + +inline constexpr chrono::microseconds operator "" us(unsigned long long _Val) + { + return (chrono::microseconds(_Val)); + } + +inline constexpr chrono::duration operator "" us( + long double _Val) + { + return (chrono::duration(_Val)); + } + +inline constexpr chrono::nanoseconds operator "" ns(unsigned long long _Val) + { + return (chrono::nanoseconds(_Val)); + } + +inline constexpr chrono::duration operator "" ns( + long double _Val) + { + return (chrono::duration(_Val)); + } +} +} + +namespace chrono { + using namespace literals::chrono_literals; +} + + + + + +} + +#pragma warning(pop) +#pragma pack(pop) +# 7 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\filesystem" 2 3 + + +# 1 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list" 1 3 + + + + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) + + + +#pragma warning(disable: 4127) +namespace std { + +template + class _List_unchecked_const_iterator + : public _Iterator012 + { +public: + typedef _List_unchecked_const_iterator<_Mylist, _Base> _Myiter; + typedef bidirectional_iterator_tag iterator_category; + + typedef typename _Mylist::_Nodeptr _Nodeptr; + typedef typename _Mylist::value_type value_type; + typedef typename _Mylist::difference_type difference_type; + typedef typename _Mylist::const_pointer pointer; + typedef typename _Mylist::const_reference reference; + + _List_unchecked_const_iterator() + : _Ptr() + { + } + + _List_unchecked_const_iterator(_Nodeptr _Pnode, const _Mylist *_Plist) + : _Ptr(_Pnode) + { + this->_Adopt(_Plist); + } + + reference operator*() const + { + return (_Mylist::_Myval(_Ptr)); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + _Ptr = _Mylist::_Nextnode(_Ptr); + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + _Ptr = _Mylist::_Prevnode(_Ptr); + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + + bool operator==(const _Myiter& _Right) const + { + return (_Ptr == _Right._Ptr); + } + + bool operator!=(const _Myiter& _Right) const + { + return (!(*this == _Right)); + } + + _Nodeptr _Mynode() const + { + return (_Ptr); + } + + _Nodeptr _Ptr; + }; + + +template + class _List_unchecked_iterator + : public _List_unchecked_const_iterator<_Mylist> + { +public: + typedef _List_unchecked_iterator<_Mylist> _Myiter; + typedef _List_unchecked_const_iterator<_Mylist> _Mybase; + typedef bidirectional_iterator_tag iterator_category; + + typedef typename _Mylist::_Nodeptr _Nodeptr; + typedef typename _Mylist::value_type value_type; + typedef typename _Mylist::difference_type difference_type; + typedef typename _Mylist::pointer pointer; + typedef typename _Mylist::reference reference; + + _List_unchecked_iterator() + { + } + + _List_unchecked_iterator(_Nodeptr _Pnode, const _Mylist *_Plist) + : _Mybase(_Pnode, _Plist) + { + } + + reference operator*() const + { + return ((reference)**(_Mybase *)this); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + ++(*(_Mybase *)this); + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + --(*(_Mybase *)this); + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + }; + + +template + class _List_const_iterator + : public _List_unchecked_const_iterator<_Mylist, _Iterator_base> + { +public: + typedef _List_const_iterator<_Mylist> _Myiter; + typedef _List_unchecked_const_iterator<_Mylist, _Iterator_base> _Mybase; + typedef bidirectional_iterator_tag iterator_category; + + typedef typename _Mylist::_Nodeptr _Nodeptr; + typedef typename _Mylist::value_type value_type; + typedef typename _Mylist::difference_type difference_type; + typedef typename _Mylist::const_pointer pointer; + typedef typename _Mylist::const_reference reference; + + _List_const_iterator() + : _Mybase() + { + } + + _List_const_iterator(_Nodeptr _Pnode, const _Mylist *_Plist) + : _Mybase(_Pnode, _Plist) + { + } + + typedef _List_unchecked_const_iterator<_Mylist> _Unchecked_type; + + _Myiter& _Rechecked(_Unchecked_type _Right) + { + this->_Ptr = _Right._Ptr; + return (*this); + } + + _Unchecked_type _Unchecked() const + { + return (_Unchecked_type(this->_Ptr, static_cast(this->_Getcont()))); + } + + reference operator*() const + { + + const auto _Mycont = static_cast(this->_Getcont()); + if (_Mycont == 0 + || this->_Ptr == nullptr_t{} + || this->_Ptr == _Mycont->_Myhead) + { + _Debug_message(L"list iterator not dereferencable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 211); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 212, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 212, 0); }; + } +# 222 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list" 3 + return (_Mylist::_Myval(this->_Ptr)); + } + + _Myiter& operator++() + { + + const auto _Mycont = static_cast(this->_Getcont()); + if (_Mycont == 0 + || this->_Ptr == nullptr_t{} + || this->_Ptr == _Mycont->_Myhead) + { + _Debug_message(L"list iterator not incrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 233); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 234, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 234, 0); }; + } +# 244 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list" 3 + this->_Ptr = _Mylist::_Nextnode(this->_Ptr); + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + + const auto _Mycont = static_cast(this->_Getcont()); + if (_Mycont == 0 + || this->_Ptr == nullptr_t{} + || (this->_Ptr = _Mylist::_Prevnode(this->_Ptr)) == _Mycont->_Myhead) + { + _Debug_message(L"list iterator not decrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 263); + { (void)( (!!(("Standard C++ Libraries Out of Range" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 264, 0, L"%ls", L"\"Standard C++ Libraries Out of Range\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"out of range\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 264, 0); }; + } +# 278 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list" 3 + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + + bool operator==(const _Myiter& _Right) const + { + + if (this->_Getcont() != _Right._Getcont()) + { + _Debug_message(L"list iterators incompatible", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 293); + { (void)( (!!(("Standard C++ Libraries Invalid Argument" && 0))) || (1 != _CrtDbgReportW(2, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 294, 0, L"%ls", L"\"Standard C++ Libraries Invalid Argument\" && 0")) || (__debugbreak(), 0) ); ::_invalid_parameter(L"\"invalid argument\"", L__FUNCTION__, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 294, 0); }; + } + + + + + + return (this->_Ptr == _Right._Ptr); + } + + bool operator!=(const _Myiter& _Right) const + { + return (!(*this == _Right)); + } + }; + +template inline + typename _List_const_iterator<_Mylist>::_Unchecked_type + _Unchecked(_List_const_iterator<_Mylist> _Iter) + { + return (_Iter._Unchecked()); + } + +template inline + _List_const_iterator<_Mylist>& + _Rechecked(_List_const_iterator<_Mylist>& _Iter, + typename _List_const_iterator<_Mylist> + ::_Unchecked_type _Right) + { + return (_Iter._Rechecked(_Right)); + } + + +template + class _List_iterator + : public _List_const_iterator<_Mylist> + { +public: + typedef _List_iterator<_Mylist> _Myiter; + typedef _List_const_iterator<_Mylist> _Mybase; + typedef bidirectional_iterator_tag iterator_category; + + typedef typename _Mylist::_Nodeptr _Nodeptr; + typedef typename _Mylist::value_type value_type; + typedef typename _Mylist::difference_type difference_type; + typedef typename _Mylist::pointer pointer; + typedef typename _Mylist::reference reference; + + _List_iterator() + { + } + + _List_iterator(_Nodeptr _Pnode, const _Mylist *_Plist) + : _Mybase(_Pnode, _Plist) + { + } + + typedef _List_unchecked_iterator<_Mylist> _Unchecked_type; + + _Myiter& _Rechecked(_Unchecked_type _Right) + { + this->_Ptr = _Right._Ptr; + return (*this); + } + + _Unchecked_type _Unchecked() const + { + return (_Unchecked_type(this->_Ptr, (_Mylist *)this->_Getcont())); + } + + reference operator*() const + { + return ((reference)**(_Mybase *)this); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myiter& operator++() + { + ++(*(_Mybase *)this); + return (*this); + } + + _Myiter operator++(int) + { + _Myiter _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myiter& operator--() + { + --(*(_Mybase *)this); + return (*this); + } + + _Myiter operator--(int) + { + _Myiter _Tmp = *this; + --*this; + return (_Tmp); + } + }; + +template inline + typename _List_iterator<_Mylist>::_Unchecked_type + _Unchecked(_List_iterator<_Mylist> _Iter) + { + return (_Iter._Unchecked()); + } + +template inline + _List_iterator<_Mylist>& + _Rechecked(_List_iterator<_Mylist>& _Iter, + typename _List_iterator<_Mylist> + ::_Unchecked_type _Right) + { + return (_Iter._Rechecked(_Right)); + } + + +template + struct _List_iter_types + { + typedef _Value_type value_type; + typedef _Size_type size_type; + typedef _Difference_type difference_type; + typedef _Pointer pointer; + typedef _Const_pointer const_pointer; + typedef _Reference reference; + typedef _Const_reference const_reference; + typedef _Nodeptr_type _Nodeptr; + }; + +template + struct _List_node + { + _Voidptr _Next; + _Voidptr _Prev; + _Value_type _Myval; + + private: + _List_node& operator=(const _List_node&); + }; + +template + struct _List_node<_Value_type, void *> + { + typedef _List_node<_Value_type, void *> *_Nodeptr; + _Nodeptr _Next; + _Nodeptr _Prev; + _Value_type _Myval; + + private: + _List_node& operator=(const _List_node&); + }; + +template + struct _List_simple_types + : public _Simple_types<_Ty> + { + typedef _List_node<_Ty, void *> _Node; + typedef _Node *_Nodeptr; + }; + +template + struct _List_base_types + { + typedef _Alloc0 _Alloc; + typedef _List_base_types<_Ty, _Alloc> _Myt; + + typedef _Wrap_alloc<_Alloc> _Alty0; + typedef typename _Alty0::template rebind<_Ty>::other _Alty; + + + typedef typename _Get_voidptr<_Alty, typename _Alty::pointer>::type + _Voidptr; + typedef _List_node _Node; + + typedef typename _Alty::template rebind<_Node>::other _Alnod_type; + typedef typename _Alnod_type::pointer _Nodeptr; + typedef _Nodeptr& _Nodepref; + + typedef typename _If<_Is_simple_alloc<_Alty>::value, + _List_simple_types, + _List_iter_types >::type + _Val_types; + }; + + +template + class _List_val + : public _Container_base + { +public: + typedef _List_val<_Val_types> _Myt; + + typedef typename _Val_types::_Nodeptr _Nodeptr; + typedef _Nodeptr& _Nodepref; + + typedef typename _Val_types::value_type value_type; + typedef typename _Val_types::size_type size_type; + typedef typename _Val_types::difference_type difference_type; + typedef typename _Val_types::pointer pointer; + typedef typename _Val_types::const_pointer const_pointer; + typedef typename _Val_types::reference reference; + typedef typename _Val_types::const_reference const_reference; + + typedef _List_const_iterator<_Myt> const_iterator; + typedef _List_iterator<_Myt> iterator; + + typedef _List_unchecked_const_iterator<_Myt> _Unchecked_const_iterator; + typedef _List_unchecked_iterator<_Myt> _Unchecked_iterator; + + _List_val() + : _Myhead(), + _Mysize(0) + { + } + + static _Nodepref _Nextnode(_Nodeptr _Pnode) + { + return ((_Nodepref)_Pnode->_Next); + } + + static _Nodepref _Prevnode(_Nodeptr _Pnode) + { + return ((_Nodepref)_Pnode->_Prev); + } + + static reference _Myval(_Nodeptr _Pnode) + { + return ((reference)_Pnode->_Myval); + } + + _Nodeptr _Myhead; + size_type _Mysize; + }; + + +template + class _List_alloc + { +public: + typedef _List_alloc<_Alloc_types> _Myt; + typedef typename _Alloc_types::_Alloc _Alloc; + typedef typename _Alloc_types::_Alnod_type _Alty; + typedef typename _Alloc_types::_Node _Node; + typedef typename _Alloc_types::_Nodeptr _Nodeptr; + + typedef typename _Alloc_types::_Val_types _Val_types; + + typedef _Nodeptr& _Nodepref; + + typedef typename _Val_types::value_type value_type; + typedef typename _Val_types::size_type size_type; + typedef typename _Val_types::difference_type difference_type; + typedef typename _Val_types::pointer pointer; + typedef typename _Val_types::const_pointer const_pointer; + typedef typename _Val_types::reference reference; + typedef typename _Val_types::const_reference const_reference; + + typedef _List_const_iterator<_List_val<_Val_types> > const_iterator; + typedef _List_iterator<_List_val<_Val_types> > iterator; + + typedef _List_unchecked_const_iterator<_List_val<_Val_types> > + _Unchecked_const_iterator; + typedef _List_unchecked_iterator<_List_val<_Val_types> > + _Unchecked_iterator; + + static _Nodepref _Nextnode(_Nodeptr _Pnode) + { + return (_List_val<_Val_types>::_Nextnode(_Pnode)); + } + + static _Nodepref _Prevnode(_Nodeptr _Pnode) + { + return (_List_val<_Val_types>::_Prevnode(_Pnode)); + } + + static reference _Myval(_Nodeptr _Pnode) + { + return (_List_val<_Val_types>::_Myval(_Pnode)); + } +# 631 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list" 3 + _List_alloc() + : _Mypair(_Zero_then_variadic_args_t()) + { + _Myhead() = _Buyheadnode(); + try { + _Alloc_proxy(); + } catch (...) { + _Freeheadnode(_Myhead()); + throw; + } + } + + template, _Myt>::value> > + _List_alloc(_Any_alloc&& _Al) + : _Mypair(_One_then_variadic_args_t(), + ::std:: forward<_Any_alloc>(_Al)) + { + _Myhead() = _Buyheadnode(); + try { + _Alloc_proxy(); + } catch (...) { + _Freeheadnode(_Myhead()); + throw; + } + } + + ~_List_alloc() noexcept + { + _Freeheadnode(_Myhead()); + _Free_proxy(); + } + + void _Copy_alloc(const _Alty& _Al) + { + _Free_proxy(); + _Pocca(_Getal(), _Al); + _Alloc_proxy(); + } + + void _Move_alloc(_Alty& _Al) + { + _Free_proxy(); + _Pocma(_Getal(), _Al); + _Alloc_proxy(); + } + + void _Alloc_proxy() + { + typename _Alty::template rebind<_Container_proxy>::other + _Alproxy(_Getal()); + _Myproxy() = _Unfancy(_Alproxy.allocate(1)); + _Alproxy.construct(_Myproxy(), _Container_proxy()); + _Myproxy()->_Mycont = &_Get_data(); + } + + void _Free_proxy() + { + typename _Alty::template rebind<_Container_proxy>::other + _Alproxy(_Getal()); + _Orphan_all(); + _Alproxy.destroy(_Myproxy()); + _Alproxy.deallocate(_Alproxy.address(*_Myproxy()), 1); + _Myproxy() = 0; + } + + _Iterator_base12 **_Getpfirst() const + { + return (_Get_data()._Getpfirst()); + } + + _Container_proxy * & _Myproxy() noexcept + { + return (_Get_data()._Myproxy); + } + + _Container_proxy * const & _Myproxy() const noexcept + { + return (_Get_data()._Myproxy); + } + + + _Nodeptr _Buyheadnode() + { + return (_Buynode0(_Nodeptr(), _Nodeptr())); + } + + void _Freeheadnode(_Nodeptr _Pnode) + { + _Getal().destroy( + ::std:: addressof(_Nextnode(_Pnode))); + _Getal().destroy( + ::std:: addressof(_Prevnode(_Pnode))); + _Getal().deallocate(_Pnode, 1); + } + + _Nodeptr _Buynode0(_Nodeptr _Next, + _Nodeptr _Prev) + { + _Nodeptr _Pnode = _Getal().allocate(1); + + if (_Next == _Nodeptr()) + { + _Next = _Pnode; + _Prev = _Pnode; + } + try { + _Getal().construct( + ::std:: addressof(_Nextnode(_Pnode)), _Next); + _Getal().construct( + ::std:: addressof(_Prevnode(_Pnode)), _Prev); + } catch (...) { + _Getal().deallocate(_Pnode, 1); + throw; + } + + return (_Pnode); + } + + void _Orphan_all() + { + _Get_data()._Orphan_all(); + } + + void _Swap_all(_Myt& _Right) + { + _Get_data()._Swap_all(_Right._Get_data()); + } + + _Alty& _Getal() noexcept + { + return (_Mypair._Get_first()); + } + + const _Alty& _Getal() const noexcept + { + return (_Mypair._Get_first()); + } + + _List_val<_Val_types>& _Get_data() noexcept + { + return (_Mypair._Get_second()); + } + + const _List_val<_Val_types>& _Get_data() const noexcept + { + return (_Mypair._Get_second()); + } + + _Nodeptr& _Myhead() noexcept + { + return (_Get_data()._Myhead); + } + + const _Nodeptr& _Myhead() const noexcept + { + return (_Get_data()._Myhead); + } + + size_type& _Mysize() noexcept + { + return (_Get_data()._Mysize); + } + + const size_type& _Mysize() const noexcept + { + return (_Get_data()._Mysize); + } + +private: + _Compressed_pair<_Alty, _List_val<_Val_types> > _Mypair; + }; + + +template + class _List_buy + : public _List_alloc<_List_base_types<_Ty, _Alloc> > + { +public: + typedef _List_buy<_Ty, _Alloc> _Myt; + typedef _List_alloc<_List_base_types<_Ty, _Alloc> > _Mybase; + typedef typename _Mybase::_Alty _Alty; + typedef typename _Mybase::_Nodeptr _Nodeptr; + + _List_buy() + : _Mybase() + { + } + + template, _Myt>::value> > + _List_buy(_Any_alloc&& _Al) + : _Mybase(::std:: forward<_Any_alloc>(_Al)) + { + } + + template + _Nodeptr _Buynode(_Nodeptr _Next, _Nodeptr _Prev, + _Valty&&... _Val) + { + _Nodeptr _Pnode = this->_Buynode0(_Next, _Prev); + + try { + this->_Getal().construct( + ::std:: addressof(this->_Myval(_Pnode)), + ::std:: forward<_Valty>(_Val)...); + } catch (...) { + this->_Getal().deallocate(_Pnode, 1); + throw; + } + + return (_Pnode); + } + + + void _Freenode(_Nodeptr _Pnode) + { + this->_Getal().destroy( + ::std:: addressof(this->_Nextnode(_Pnode))); + this->_Getal().destroy( + ::std:: addressof(this->_Prevnode(_Pnode))); + this->_Getal().destroy( + ::std:: addressof(this->_Myval(_Pnode))); + this->_Getal().deallocate(_Pnode, 1); + } + }; + + +template > + class list + : public _List_buy<_Ty, _Alloc> + { +public: + typedef list<_Ty, _Alloc> _Myt; + typedef _List_buy<_Ty, _Alloc> _Mybase; + typedef typename _Mybase::_Node _Node; + typedef typename _Mybase::_Nodeptr _Nodeptr; + typedef typename _Mybase::_Alty _Alty; + + typedef _Alloc allocator_type; + typedef typename _Mybase::size_type size_type; + typedef typename _Mybase::difference_type difference_type; + typedef typename _Mybase::pointer pointer; + typedef typename _Mybase::const_pointer const_pointer; + typedef typename _Mybase::reference reference; + typedef typename _Mybase::const_reference const_reference; + typedef typename _Mybase::value_type value_type; + + typedef typename _Mybase::const_iterator const_iterator; + typedef typename _Mybase::iterator iterator; + typedef typename _Mybase::_Unchecked_const_iterator + _Unchecked_const_iterator; + typedef typename _Mybase::_Unchecked_iterator + _Unchecked_iterator; + + typedef ::std:: reverse_iterator reverse_iterator; + typedef ::std:: reverse_iterator const_reverse_iterator; + + list() + : _Mybase() + { + } + + explicit list(const _Alloc& _Al) + : _Mybase(_Al) + { + } + + explicit list(size_type _Count) + : _Mybase() + { + resize(_Count); + } + + list(size_type _Count, const _Ty& _Val) + : _Mybase() + { + _Construct_n(_Count, _Val); + } + + list(size_type _Count, const _Ty& _Val, const _Alloc& _Al) + : _Mybase(_Al) + { + _Construct_n(_Count, _Val); + } + + list(const _Myt& _Right) + + : _Mybase(_Right._Getal().select_on_container_copy_construction()) + + + { + try { + insert(begin(), _Right.begin(), _Right.end()); + } catch (...) { + _Tidy(); + throw; + } + } + + list(const _Myt& _Right, const _Alloc& _Al) + : _Mybase(_Al) + { + try { + insert(begin(), _Right.begin(), _Right.end()); + } catch (...) { + _Tidy(); + throw; + } + } + + template::value, + void>::type> + list(_Iter _First, _Iter _Last) + : _Mybase() + { + _Construct(_First, _Last); + } + + template::value, + void>::type> + list(_Iter _First, _Iter _Last, const _Alloc& _Al) + : _Mybase(_Al) + { + _Construct(_First, _Last); + } + + template + void _Construct(_Iter _First, _Iter _Last) + { + try { + insert(begin(), _First, _Last); + } catch (...) { + _Tidy(); + throw; + } + } + + void _Construct_n(size_type _Count, + const _Ty& _Val) + { + try { + _Insert_n(_Unchecked_begin(), _Count, _Val); + } catch (...) { + _Tidy(); + throw; + } + } + + list(_Myt&& _Right) + : _Mybase(::std:: move(_Right._Getal())) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + + list(_Myt&& _Right, const _Alloc& _Al) + : _Mybase(_Al) + { + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + + _Myt& operator=(_Myt&& _Right) + noexcept(_Alty::is_always_equal::value) + { + if (this != &_Right) + { + clear(); + + if (_Alty::propagate_on_container_move_assignment::value + && this->_Getal() != _Right._Getal()) + this->_Move_alloc(_Right._Getal()); + + _Assign_rv(::std:: forward<_Myt>(_Right)); + } + return (*this); + } + + void _Assign_rv(_Myt&& _Right) + { + this->_Swap_all(_Right); + _Swap_adl(this->_Myhead(), _Right._Myhead()); + ::std:: swap(this->_Mysize(), _Right._Mysize()); + } + + void push_front(_Ty&& _Val) + { + _Insert(_Unchecked_begin(), ::std:: forward<_Ty>(_Val)); + } + + void push_back(_Ty&& _Val) + { + _Insert(_Unchecked_end(), ::std:: forward<_Ty>(_Val)); + } + + iterator insert(const_iterator _Where, _Ty&& _Val) + { + return (emplace(_Where, ::std:: forward<_Ty>(_Val))); + } + + template + void emplace_front(_Valty&&... _Val) + { + _Insert(_Unchecked_begin(), ::std:: forward<_Valty>(_Val)...); + } + + template + void emplace_back(_Valty&&... _Val) + { + _Insert(_Unchecked_end(), ::std:: forward<_Valty>(_Val)...); + } + + template + iterator emplace(const_iterator _Where, _Valty&&... _Val) + { + + if (_Where._Getcont() != &this->_Get_data()) + _Debug_message(L"list emplace iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 1051); + + + _Insert(_Where._Unchecked(), ::std:: forward<_Valty>(_Val)...); + return (_Make_iter(--_Where)); + } + + template + void _Insert(_Unchecked_const_iterator _Where, + _Valty&&... _Val) + { + _Nodeptr _Pnode = _Where._Mynode(); + _Nodeptr _Newnode = + this->_Buynode(_Pnode, this->_Prevnode(_Pnode), + ::std:: forward<_Valty>(_Val)...); + _Incsize(1); + this->_Prevnode(_Pnode) = _Newnode; + this->_Nextnode(this->_Prevnode(_Newnode)) = _Newnode; + } + + + list(::std:: initializer_list<_Ty> _Ilist, + const _Alloc& _Al = allocator_type()) + : _Mybase(_Al) + { + insert(begin(), _Ilist.begin(), _Ilist.end()); + } + + _Myt& operator=(::std:: initializer_list<_Ty> _Ilist) + { + assign(_Ilist.begin(), _Ilist.end()); + return (*this); + } + + void assign(::std:: initializer_list<_Ty> _Ilist) + { + assign(_Ilist.begin(), _Ilist.end()); + } + + iterator insert(const_iterator _Where, + ::std:: initializer_list<_Ty> _Ilist) + { + return (insert(_Where, _Ilist.begin(), _Ilist.end())); + } + + ~list() noexcept + { + _Tidy(); + } + + _Myt& operator=(const _Myt& _Right) + { + if (this != &_Right) + { + if (this->_Getal() != _Right._Getal() + && _Alty::propagate_on_container_copy_assignment::value) + { + clear(); + this->_Copy_alloc(_Right._Getal()); + } + + assign(_Right.begin(), _Right.end()); + } + return (*this); + } + + iterator begin() noexcept + { + return (iterator(this->_Nextnode(this->_Myhead()), + &this->_Get_data())); + } + + const_iterator begin() const noexcept + { + return (const_iterator(this->_Nextnode(this->_Myhead()), + &this->_Get_data())); + } + + iterator end() noexcept + { + return (iterator(this->_Myhead(), &this->_Get_data())); + } + + const_iterator end() const noexcept + { + return (const_iterator(this->_Myhead(), &this->_Get_data())); + } + + _Unchecked_iterator _Unchecked_begin() + { + return (_Unchecked_iterator(this->_Nextnode(this->_Myhead()), + &this->_Get_data())); + } + + _Unchecked_const_iterator _Unchecked_begin() const + { + return (_Unchecked_const_iterator(this->_Nextnode(this->_Myhead()), + &this->_Get_data())); + } + + _Unchecked_iterator _Unchecked_end() + { + return (_Unchecked_iterator(this->_Myhead(), &this->_Get_data())); + } + + _Unchecked_const_iterator _Unchecked_end() const + { + return (_Unchecked_const_iterator(this->_Myhead(), + &this->_Get_data())); + } + + iterator _Make_iter(const_iterator _Where) const noexcept + { + return (iterator(_Where._Ptr, &this->_Get_data())); + } + + iterator _Make_iter(_Unchecked_const_iterator _Where) const + { + return (iterator(_Where._Ptr, &this->_Get_data())); + } + + reverse_iterator rbegin() noexcept + { + return (reverse_iterator(end())); + } + + const_reverse_iterator rbegin() const noexcept + { + return (const_reverse_iterator(end())); + } + + reverse_iterator rend() noexcept + { + return (reverse_iterator(begin())); + } + + const_reverse_iterator rend() const noexcept + { + return (const_reverse_iterator(begin())); + } + + const_iterator cbegin() const noexcept + { + return (begin()); + } + + const_iterator cend() const noexcept + { + return (end()); + } + + const_reverse_iterator crbegin() const noexcept + { + return (rbegin()); + } + + const_reverse_iterator crend() const noexcept + { + return (rend()); + } + + void resize(size_type _Newsize) + { + if (this->_Mysize() < _Newsize) + { + size_type _Count = 0; + try { + for (; this->_Mysize() < _Newsize; ++_Count) + _Insert(_Unchecked_end()); + } catch (...) { + for (; 0 < _Count; --_Count) + pop_back(); + throw; + } + } + else + while (_Newsize < this->_Mysize()) + pop_back(); + } + + void resize(size_type _Newsize, const _Ty& _Val) + { + if (this->_Mysize() < _Newsize) + _Insert_n(_Unchecked_end(), _Newsize - this->_Mysize(), _Val); + else + while (_Newsize < this->_Mysize()) + pop_back(); + } + + size_type size() const noexcept + { + return (this->_Mysize()); + } + + size_type max_size() const noexcept + { + return (this->_Getal().max_size()); + } + + bool empty() const noexcept + { + return (this->_Mysize() == 0); + } + + allocator_type get_allocator() const noexcept + { + allocator_type _Ret(this->_Getal()); + return (_Ret); + } + + reference front() + { + return (*begin()); + } + + const_reference front() const + { + return (*begin()); + } + + reference back() + { + return (*(--end())); + } + + const_reference back() const + { + return (*(--end())); + } + + void push_front(const _Ty& _Val) + { + _Insert(_Unchecked_begin(), _Val); + } + + void pop_front() + { + erase(begin()); + } + + void push_back(const _Ty& _Val) + { + _Insert(_Unchecked_end(), _Val); + } + + void pop_back() + { + erase(--end()); + } + + template + typename enable_if<_Is_iterator<_Iter>::value, + void>::type + assign(_Iter _First, _Iter _Last) + { + iterator _Old = begin(); + try { + for (; _First != _Last && _Old != end(); ++_First, (void)++_Old) + _Reusenode(_Old, *_First); + for (; _First != _Last; ++_First) + _Insert(_Unchecked_end(), *_First); + } catch (...) { + clear(); + throw; + } + erase(_Old, end()); + } + + template + void _Reusenode(iterator _Where, _TArg&& _Arg) + { + try { + this->_Getal().destroy( + ::std:: addressof(this->_Myval(_Where._Ptr))); + this->_Getal().construct( + ::std:: addressof(this->_Myval(_Where._Ptr)), + ::std:: forward<_TArg>(_Arg)); + } catch (...) { + _Unlinknode(_Where); + this->_Getal().destroy( + ::std:: addressof(this->_Nextnode(_Where._Ptr))); + this->_Getal().destroy( + ::std:: addressof(this->_Prevnode(_Where._Ptr))); + this->_Getal().deallocate(_Where._Ptr, 1); + throw; + } + } + + void assign(size_type _Count, const _Ty& _Val) + { + clear(); + _Insert_n(_Unchecked_begin(), _Count, _Val); + } + + iterator insert(const_iterator _Where, const _Ty& _Val) + { + + if (_Where._Getcont() != &this->_Get_data()) + _Debug_message(L"list insert iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 1349); + + + _Insert(_Where._Unchecked(), _Val); + return (_Make_iter(--_Where)); + } + + iterator insert(const_iterator _Where, + size_type _Count, const _Ty& _Val) + { + + if (_Where._Getcont() != &this->_Get_data()) + _Debug_message(L"list insert iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 1361); + + + iterator _Prev = _Make_iter(_Where); + if (_Prev == begin()) + { + _Insert_n(_Where._Unchecked(), _Count, _Val); + return (begin()); + } + else + { + --_Prev; + _Insert_n(_Where._Unchecked(), _Count, _Val); + return (++_Prev); + } + } + + template + typename enable_if<_Is_iterator<_Iter>::value, + iterator>::type + insert(const_iterator _Where, _Iter _First, _Iter _Last) + { + + if (_Where._Getcont() != &this->_Get_data()) + _Debug_message(L"list insert iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 1385); + + + iterator _Prev = _Make_iter(_Where); + if (_Prev == begin()) + { + _Insert_range(_Where._Unchecked(), _First, _Last, + _Iter_cat_t<_Iter>()); + return (begin()); + } + else + { + --_Prev; + _Insert_range(_Where._Unchecked(), _First, _Last, + _Iter_cat_t<_Iter>()); + return (++_Prev); + } + } + + template + void _Insert_range(_Unchecked_const_iterator _Where, + _Iter _First, _Iter _Last, input_iterator_tag) + { + size_type _Num = 0; + + try { + for (; _First != _Last; ++_First, (void)++_Num) + _Insert(_Where, *_First); + } catch (...) { + for (; 0 < _Num; --_Num) + { + _Unchecked_const_iterator _Before = _Where; + _Unchecked_erase(--_Before); + } + throw; + } + } + + template + void _Insert_range(_Unchecked_const_iterator _Where, + _Iter _First, _Iter _Last, forward_iterator_tag) + { + _Debug_range(_First, _Last, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 1427); + _Iter _Next = _First; + + try { + for (; _First != _Last; ++_First) + _Insert(_Where, *_First); + } catch (...) { + for (; _Next != _First; ++_Next) + { + _Unchecked_const_iterator _Before = _Where; + _Unchecked_erase(--_Before); + } + throw; + } + } + + _Nodeptr _Unlinknode(const_iterator _Where) + { + + if (_Where._Getcont() != &this->_Get_data() + || _Where._Ptr == this->_Myhead()) + _Debug_message(L"list erase iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 1448); + _Nodeptr _Pnode = (_Where)._Mynode(); + _Orphan_ptr(_Pnode); + + + + + + this->_Nextnode(this->_Prevnode(_Pnode)) = + this->_Nextnode(_Pnode); + this->_Prevnode(this->_Nextnode(_Pnode)) = + this->_Prevnode(_Pnode); + + --this->_Mysize(); + return (_Pnode); + } + + iterator erase(const_iterator _Where) + { + _Nodeptr _Pnode = _Unlinknode(_Where++); + this->_Freenode(_Pnode); + return (_Make_iter(_Where)); + } + + void _Unchecked_erase(_Unchecked_const_iterator _Where) + { + _Nodeptr _Pnode = _Where._Mynode(); + + this->_Nextnode(this->_Prevnode(_Pnode)) = + this->_Nextnode(_Pnode); + this->_Prevnode(this->_Nextnode(_Pnode)) = + this->_Prevnode(_Pnode); + this->_Freenode(_Pnode); + --this->_Mysize(); + } + + iterator erase(const_iterator _First, const_iterator _Last) + { + if (_First == begin() && _Last == end()) + { + clear(); + return (end()); + } + else + { + while (_First != _Last) + _First = erase(_First); + return (_Make_iter(_Last)); + } + } + + void clear() noexcept + { + + + this->_Orphan_ptr(nullptr); + + _Nodeptr _Pnode = this->_Nextnode(this->_Myhead()); + this->_Nextnode(this->_Myhead()) = this->_Myhead(); + this->_Prevnode(this->_Myhead()) = this->_Myhead(); + this->_Mysize() = 0; + + for (_Nodeptr _Pnext; _Pnode != this->_Myhead(); _Pnode = _Pnext) + { + _Pnext = this->_Nextnode(_Pnode); + this->_Freenode(_Pnode); + } + } + + void swap(_Myt& _Right) + noexcept(_Alty::is_always_equal::value) + { + if (this != &_Right) + { + _Pocs(this->_Getal(), _Right._Getal()); + this->_Swap_all(_Right); + _Swap_adl(this->_Myhead(), _Right._Myhead()); + ::std:: swap(this->_Mysize(), _Right._Mysize()); + } + } + + void splice(const_iterator _Where, _Myt& _Right) + { + if (this != &_Right && !_Right.empty()) + { + _Splice(_Where, _Right, _Right.begin(), _Right.end(), + _Right._Mysize()); + } + } + + void splice(const_iterator _Where, _Myt&& _Right) + { + splice(_Where, (_Myt&)_Right); + } + + void splice(const_iterator _Where, _Myt& _Right, + const_iterator _First) + { + + if (_First == _Right.end()) + _Debug_message(L"list splice iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 1548); + else + + + + + + { + const_iterator _Last = _First; + ++_Last; + if (this != &_Right + || (_Where != _First && _Where != _Last)) + _Splice(_Where, _Right, _First, _Last, 1); + } + } + + void splice(const_iterator _Where, _Myt&& _Right, + const_iterator _First) + { + splice(_Where, (_Myt&)_Right, _First); + } + + void splice(const_iterator _Where, + _Myt& _Right, const_iterator _First, const_iterator _Last) + { + if (_First != _Last && (this != &_Right || _Where != _Last)) + { + size_type _Count = 0; + + if (this == &_Right) + ; + else if (_First == _Right.begin() && _Last == _Right.end()) + _Count = _Right._Mysize(); + else + { + const_iterator _Next = _First; + + for (; _Next != _Last; ++_Next, (void)++_Count) + if (_Next == _Right.end()) + _Xlength_error("list bad splice"); + } + _Splice(_Where, _Right, _First, _Last, _Count); + } + } + + void splice(const_iterator _Where, + _Myt&& _Right, const_iterator _First, const_iterator _Last) + { + splice(_Where, (_Myt&)_Right, _First, _Last); + } + + void remove(const _Ty& _Val) + { + iterator _Val_it = end(); + + for (iterator _First = begin(); _First != end(); ) + if (*_First == _Val) + if (::std:: addressof(*_First) == ::std:: addressof(_Val)) + _Val_it = _First++; + else + _First = erase(_First); + else + ++_First; + + if (_Val_it != end()) + erase(_Val_it); + } + + template + void remove_if(_Pr1 _Pred) + { + _Remove_if(_Pred); + } + + template + void _Remove_if(_Pr1& _Pred) + { + for (iterator _First = begin(); _First != end(); ) + if (_Pred(*_First)) + _First = erase(_First); + else + ++_First; + } + + void unique() + { + unique(equal_to<>()); + } + + template + void unique(_Pr2 _Pred) + { + const _Nodeptr _Phead = this->_Myhead(); + _Nodeptr _Pprev = this->_Nextnode(_Phead); + _Nodeptr _Pnode = this->_Nextnode(_Pprev); + + while (_Pnode != _Phead) + if (_Pred(_Pprev->_Myval, _Pnode->_Myval)) + { + const _Nodeptr _Perase = _Pnode; + _Pnode = this->_Nextnode(_Pnode); + + this->_Nextnode(_Pprev) = _Pnode; + this->_Prevnode(_Pnode) = _Pprev; + this->_Freenode(_Perase); + + --this->_Mysize(); + } + else + { + _Pprev = _Pnode; + _Pnode = this->_Nextnode(_Pnode); + } + } + + void merge(_Myt& _Right) + { + _Merge1(_Right, less<>()); + } + + void merge(_Myt&& _Right) + { + _Merge1(_Right, less<>()); + } + + template + void merge(_Myt& _Right, _Pr2 _Pred) + { + _Merge1(_Right, _Pred); + } + + template + void merge(_Myt&& _Right, _Pr2 _Pred) + { + _Merge1(_Right, _Pred); + } + + template + void _Merge1(_Myt& _Right, _Pr2&& _Pred) + { + if (&_Right != this) + { + iterator _First1 = begin(), _Last1 = end(); + iterator _First2 = _Right.begin(), _Last2 = _Right.end(); + _Debug_order(_First1, _Last1, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 1692); + _Debug_order(_First2, _Last2, _Pred, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 1693); + + while (_First1 != _Last1 && _First2 != _Last2) + if (_Debug_lt_pred(_Pred, *_First2, *_First1, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 1696)) + { + iterator _Mid2 = _First2; + _Splice(_First1, _Right, _First2, ++_Mid2, 1); + _First2 = _Mid2; + } + else + ++_First1; + + if (_First2 != _Last2) + _Splice(_Last1, _Right, _First2, _Last2, + _Right._Mysize()); + } + } + + void sort() + { + sort(less<>()); + } + + template + void sort(_Pr2 _Pred) + { + _Sort(begin(), end(), _Pred, this->_Mysize()); + } + + template + iterator _Sort(iterator _First, iterator _Last, _Pr2& _Pred, + size_type _Size) + { + + if (_Size < 2) + return (_First); + + iterator _Mid = ::std:: next(_First, _Size / 2); + _First = _Sort(_First, _Mid, _Pred, _Size / 2); + _Mid = _Sort(_Mid, _Last, _Pred, _Size - _Size / 2); + iterator _Newfirst = _First; + + for (bool _Initial_loop = true; ; _Initial_loop = false) + { + if (_Debug_lt_pred(_Pred, *_Mid, *_First, L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 1737)) + { + if (_Initial_loop) + _Newfirst = _Mid; + splice(_First, *this, _Mid++); + if (_Mid == _Last) + return (_Newfirst); + } + else + { + ++_First; + if (_First == _Mid) + return (_Newfirst); + } + } + } + + void reverse() noexcept + { + const _Nodeptr _Phead = this->_Myhead(); + _Nodeptr _Pnode = _Phead; + + for (; ; ) + { + const _Nodeptr _Pnext = this->_Nextnode(_Pnode); + this->_Nextnode(_Pnode) = this->_Prevnode(_Pnode); + this->_Prevnode(_Pnode) = _Pnext; + + if (_Pnext == _Phead) + break; + _Pnode = _Pnext; + } + } + + void _Splice(const_iterator _Where, + _Myt& _Right, const_iterator _First, const_iterator _Last, + size_type _Count) + { + + if (_Where._Getcont() != &this->_Get_data()) + _Debug_message(L"list splice iterator outside range", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 1777); + if (this->_Getal() != _Right._Getal()) + _Debug_message(L"list containers incompatible for splice", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 1779); + + if (this != &_Right) + { + _Lockit _Lock(3); + + const bool _One = _Count == 1; + const bool _All = !_One && _Count == _Right.size(); + const bool _Some = !_One && !_All; + + _Nodeptr _Oldprev = this->_Prevnode(_First._Ptr); + + if (_Some) + for (_Nodeptr _Ptr = _First._Ptr; _Ptr != _Last._Ptr; + _Ptr = this->_Nextnode(_Ptr)) + { + this->_Prevnode(_Ptr) = nullptr_t{}; + } + + const_iterator **_Pnext = (const_iterator **)_Right._Getpfirst(); + + if (_Pnext == 0) + _Debug_message(L"list container corrupted", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\list", 1801); + + while (*_Pnext != 0) + { + const_iterator& _Iter = **_Pnext; + + if ((_One && _Iter._Ptr == _First._Ptr) + || (_All && _Iter._Ptr != _Right._Myhead()) + || (_Some && this->_Prevnode(_Iter._Ptr) == nullptr_t{})) + { + *_Pnext = (const_iterator *)_Iter._Mynextiter; + _Iter._Myproxy = this->_Myproxy(); + _Iter._Mynextiter = this->_Myproxy()->_Myfirstiter; + this->_Myproxy()->_Myfirstiter = &_Iter; + } + else + { + _Pnext = (const_iterator **)_Iter._Getpnext(); + } + } + + if (_Some) + for (_Nodeptr _Ptr = _First._Ptr; _Ptr != _Last._Ptr; + _Ptr = this->_Nextnode(_Ptr)) + { + this->_Prevnode(_Ptr) = _Oldprev; + _Oldprev = _Ptr; + } + } + + + + + + + _Splice_same(_Where, _Right, _First, _Last, _Count); + } + + void _Splice_same(const_iterator _Where, + _Myt& _Right, const_iterator _First, const_iterator _Last, + size_type _Count) + { + if (this != &_Right) + { + _Incsize(_Count); + _Right._Mysize() -= _Count; + } + this->_Nextnode(this->_Prevnode(_First._Mynode())) = + _Last._Mynode(); + this->_Nextnode(this->_Prevnode(_Last._Mynode())) = + _Where._Mynode(); + this->_Nextnode(this->_Prevnode(_Where._Mynode())) = + _First._Mynode(); + + _Nodeptr _Pnode = this->_Prevnode(_Where._Mynode()); + this->_Prevnode(_Where._Mynode()) = + this->_Prevnode(_Last._Mynode()); + this->_Prevnode(_Last._Mynode()) = + this->_Prevnode(_First._Mynode()); + this->_Prevnode(_First._Mynode()) = _Pnode; + } + + void _Unchecked_splice(_Unchecked_const_iterator _Where, + _Unchecked_const_iterator _First, + _Unchecked_const_iterator _Last) + { + this->_Nextnode(this->_Prevnode(_First._Mynode())) = + _Last._Mynode(); + this->_Nextnode(this->_Prevnode(_Last._Mynode())) = + _Where._Mynode(); + this->_Nextnode(this->_Prevnode(_Where._Mynode())) = + _First._Mynode(); + + _Nodeptr _Pnode = this->_Prevnode(_Where._Mynode()); + this->_Prevnode(_Where._Mynode()) = + this->_Prevnode(_Last._Mynode()); + this->_Prevnode(_Last._Mynode()) = + this->_Prevnode(_First._Mynode()); + this->_Prevnode(_First._Mynode()) = _Pnode; + } + + void _Tidy() + { + clear(); + } + + void _Insert_n(_Unchecked_const_iterator _Where, + size_type _Count, const _Ty& _Val) + { + size_type _Countsave = _Count; + + try { + for (; 0 < _Count; --_Count) + _Insert(_Where, _Val); + } catch (...) { + for (; _Count < _Countsave; ++_Count) + { + _Unchecked_const_iterator _Before = _Where; + _Unchecked_erase(--_Before); + } + throw; + } + } + + void _Incsize(size_type _Count) + { + if (max_size() - this->_Mysize() - 1 < _Count) + _Xlength_error("list too long"); + this->_Mysize() += _Count; + } + + + void _Orphan_ptr(_Nodeptr _Ptr) + { + _Lockit _Lock(3); + const_iterator **_Pnext = (const_iterator **)this->_Getpfirst(); + if (_Pnext != 0) + while (*_Pnext != 0) + { + if ((*_Pnext)->_Ptr == this->_Myhead() + || (_Ptr != nullptr_t{} && (*_Pnext)->_Ptr != _Ptr)) + _Pnext = (const_iterator **)(*_Pnext)->_Getpnext(); + else + { + (*_Pnext)->_Clrcont(); + *_Pnext = *(const_iterator **)(*_Pnext)->_Getpnext(); + } + } + } + + }; + + + +template inline + void swap(list<_Ty, _Alloc>& _Left, list<_Ty, _Alloc>& _Right) + noexcept(noexcept(_Left.swap(_Right))) + { + _Left.swap(_Right); + } + +template inline + bool operator==(const list<_Ty, _Alloc>& _Left, + const list<_Ty, _Alloc>& _Right) + { + return (_Left.size() == _Right.size() + && ::std:: equal(_Left.begin(), _Left.end(), _Right.begin())); + } + +template inline + bool operator!=(const list<_Ty, _Alloc>& _Left, + const list<_Ty, _Alloc>& _Right) + { + return (!(_Left == _Right)); + } + +template inline + bool operator<(const list<_Ty, _Alloc>& _Left, + const list<_Ty, _Alloc>& _Right) + { + return (::std:: lexicographical_compare(_Left.begin(), _Left.end(), + _Right.begin(), _Right.end())); + } + +template inline + bool operator>(const list<_Ty, _Alloc>& _Left, + const list<_Ty, _Alloc>& _Right) + { + return (_Right < _Left); + } + +template inline + bool operator<=(const list<_Ty, _Alloc>& _Left, + const list<_Ty, _Alloc>& _Right) + { + return (!(_Right < _Left)); + } + +template inline + bool operator>=(const list<_Ty, _Alloc>& _Left, + const list<_Ty, _Alloc>& _Right) + { + return (!(_Left < _Right)); + } +} + +#pragma warning(pop) +#pragma pack(pop) +# 9 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\filesystem" 2 3 + + + + + +#pragma pack(push,8) +#pragma warning(push, 3) +# 27 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\filesystem" 3 +namespace std { +namespace experimental { + namespace filesystem { + inline namespace v1 { +typedef wchar_t _Pchar; +# 42 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\filesystem" 3 +struct char8_t; + + + +enum class file_type { + not_found = -1, none, regular, directory, symlink, + block, character, fifo, socket, unknown + }; + +typedef file_type _File_type; + + + +enum class copy_options { + none = 0, + skip_existing = 1, overwrite_existing = 2, update_existing = 4, + recursive = 8, + copy_symlinks = 16, skip_symlinks = 32, + directories_only = 64, create_symlinks = 128, create_hard_links = 256, + _Unspecified_recursion_prevention_tag = 512 + }; + +typedef copy_options _Copy_options; + +inline copy_options& operator&=(copy_options& _Left, copy_options _Right) { _Left = (copy_options)((int)_Left & (int)_Right); return (_Left); } inline copy_options& operator|=(copy_options& _Left, copy_options _Right) { _Left = (copy_options)((int)_Left | (int)_Right); return (_Left); } inline copy_options& operator^=(copy_options& _Left, copy_options _Right) { _Left = (copy_options)((int)_Left ^ (int)_Right); return (_Left); } inline constexpr copy_options operator&(copy_options _Left, copy_options _Right) { return ((copy_options)((int)_Left & (int)_Right)); } inline constexpr copy_options operator|(copy_options _Left, copy_options _Right) { return ((copy_options)((int)_Left | (int)_Right)); } inline constexpr copy_options operator^(copy_options _Left, copy_options _Right) { return ((copy_options)((int)_Left ^ (int)_Right)); } inline constexpr copy_options operator~(copy_options _Left) { return ((copy_options)~(int)_Left); } + + + +enum class directory_options { + none = 0, follow_directory_symlink + }; + +typedef directory_options _Directory_options; + + + +enum class perms { + none = 0, + owner_read = 0400, + owner_write = 0200, + owner_exec = 0100, + owner_all = 0700, + group_read = 040, + group_write = 020, + group_exec = 010, + group_all = 070, + others_read = 04, + others_write = 02, + others_exec = 01, + others_all = 07, + all = 0777, + set_uid = 04000, + set_gid = 02000, + sticky_bit = 01000, + mask = 07777, + unknown = 0xFFFF, + add_perms = 0x10000, + remove_perms = 0x20000, + resolve_symlinks = 0x40000 + }; + +typedef perms _Perms; + +inline perms& operator&=(perms& _Left, perms _Right) { _Left = (perms)((int)_Left & (int)_Right); return (_Left); } inline perms& operator|=(perms& _Left, perms _Right) { _Left = (perms)((int)_Left | (int)_Right); return (_Left); } inline perms& operator^=(perms& _Left, perms _Right) { _Left = (perms)((int)_Left ^ (int)_Right); return (_Left); } inline constexpr perms operator&(perms _Left, perms _Right) { return ((perms)((int)_Left & (int)_Right)); } inline constexpr perms operator|(perms _Left, perms _Right) { return ((perms)((int)_Left | (int)_Right)); } inline constexpr perms operator^(perms _Left, perms _Right) { return ((perms)((int)_Left ^ (int)_Right)); } inline constexpr perms operator~(perms _Left) { return ((perms)~(int)_Left); } + + +class file_status + { +public: + explicit file_status( + _File_type _Ftype = _File_type::none, + _Perms _Prms = perms::unknown) noexcept + : _Myftype(_Ftype), _Myperms(_Prms) + { + } + + file_status(const file_status&) noexcept = default; + ~file_status() noexcept = default; + file_status& operator=(const file_status&) noexcept = default; + + file_status(file_status&&) = default; + file_status& operator=(file_status&&) = default; + + _File_type type() const noexcept + { + return (_Myftype); + } + + _Perms permissions() const noexcept + { + return (_Myperms); + } + + void type(_File_type _Ftype) noexcept + { + _Myftype = _Ftype; + } + + void permissions(_Perms _Prms) noexcept + { + _Myperms = _Prms; + } + +private: + _File_type _Myftype; + _Perms _Myperms; + }; + + +struct space_info + { + uintmax_t capacity; + uintmax_t free; + uintmax_t available; + }; + + + +extern "C" void *__cdecl _Open_dir(wchar_t (&)[260], + const wchar_t *, int&, _File_type&); +extern "C" wchar_t *__cdecl _Read_dir(wchar_t (&)[260], + void *, _File_type&); +extern "C" void __cdecl _Close_dir(void *); +extern "C" bool __cdecl _Current_get(wchar_t (&)[260]); +extern "C" bool __cdecl _Current_set(const wchar_t *); +extern "C" wchar_t *__cdecl _Symlink_get(wchar_t (&)[260], + const wchar_t *); +extern "C" wchar_t *__cdecl _Temp_get(wchar_t (&)[260]); + +extern "C" int __cdecl _Make_dir(const wchar_t *, const wchar_t *); +extern "C" bool __cdecl _Remove_dir(const wchar_t *); + +extern "C" _File_type __cdecl _Stat(const wchar_t *, _Perms *); +extern "C" _File_type __cdecl _Lstat(const wchar_t *, _Perms *); +extern "C" uintmax_t __cdecl _File_size(const wchar_t *); +extern "C" uintmax_t __cdecl _Hard_links(const wchar_t *); +extern "C" int64_t __cdecl _Last_write_time(const wchar_t *); +extern "C" int __cdecl _Set_last_write_time(const wchar_t *, int64_t); +extern "C" space_info __cdecl _Statvfs(const wchar_t *); +extern "C" int __cdecl _Equivalent(const wchar_t *, const wchar_t *); + +extern "C" int __cdecl _Link(const wchar_t *, const wchar_t *); +extern "C" int __cdecl _Symlink(const wchar_t *, const wchar_t *); +extern "C" int __cdecl _Rename(const wchar_t *, const wchar_t *); +extern "C" int __cdecl _Resize(const wchar_t *, uintmax_t); +extern "C" int __cdecl _Unlink(const wchar_t *); +extern "C" int __cdecl _Copy_file(const wchar_t *, const wchar_t *); +extern "C" int __cdecl _Chmod(const wchar_t *, _Perms); + + +template, + class _Outalloc = allocator<_Outchar> > + struct _Path_cvt + { + typedef basic_string<_Outchar, _Outtraits, _Outalloc> _Outstr; + static _Outstr&& _Cvt(_Outstr& _Str, + const _Inchar *_First, size_t _Size, + const locale& = locale()) + { + for (; 0 < _Size; --_Size, ++_First) + _Str.append(1, (_Outchar)*_First); + return (::std:: move(_Str)); + } + }; + +template + struct _Path_cvt<_Outchar, _Outchar, _Outtraits, _Outalloc> + { + typedef basic_string<_Outchar, _Outtraits, _Outalloc> _Outstr; + static _Outstr&& _Cvt(_Outstr& _Str, + const _Outchar *_First, size_t _Size, + const locale& = locale()) + { + return (::std:: move(_Str.append(_First, _First + _Size))); + } + }; + +template + struct _Path_cvt + { + typedef char _Inchar; + typedef char16_t _Outchar; + typedef basic_string<_Outchar, _Outtraits, _Outalloc> _Outstr; + static _Outstr&& _Cvt(_Outstr& _Str, + const _Inchar *_First, size_t _Size, + const locale& = locale()) + { + wstring_convert, _Outchar> _Wcvt; + return (::std:: move( + _Str.append(_Wcvt.from_bytes(_First, _First + _Size)))); + } + }; + +template + struct _Path_cvt + { + typedef char16_t _Inchar; + typedef char _Outchar; + typedef basic_string<_Outchar, _Outtraits, _Outalloc> _Outstr; + static _Outstr&& _Cvt(_Outstr& _Str, + const _Inchar *_First, size_t _Size, + const locale& = locale()) + { + wstring_convert, _Inchar> _Wcvt; + return (::std:: move( + _Str.append(_Wcvt.to_bytes(_First, _First + _Size)))); + } + }; + +template + struct _Path_cvt + { + typedef char _Inchar; + typedef char32_t _Outchar; + typedef basic_string<_Outchar, _Outtraits, _Outalloc> _Outstr; + static _Outstr&& _Cvt(_Outstr& _Str, + const _Inchar *_First, size_t _Size, + const locale& = locale()) + { + wstring_convert, _Outchar> _Wcvt; + return (::std:: move( + _Str.append(_Wcvt.from_bytes(_First, _First + _Size)))); + } + }; + +template + struct _Path_cvt + { + typedef char32_t _Inchar; + typedef char _Outchar; + typedef basic_string<_Outchar, _Outtraits, _Outalloc> _Outstr; + static _Outstr&& _Cvt(_Outstr& _Str, + const _Inchar *_First, size_t _Size, + const locale& = locale()) + { + wstring_convert, _Inchar> _Wcvt; + return (::std:: move( + _Str.append(_Wcvt.to_bytes(_First, _First + _Size)))); + } + }; + +extern "C" int __cdecl _To_byte(const wchar_t *, char *); +extern "C" int __cdecl _To_wide(const char *, wchar_t *); + +template + struct _Path_cvt + { + typedef char _Inchar; + typedef wchar_t _Outchar; + typedef basic_string<_Outchar, _Outtraits, _Outalloc> _Outstr; + static _Outstr&& _Cvt(_Outstr& _Str, + const _Inchar *_First, size_t) + { + _Outchar _Fname_wide[260]; + if (_To_wide(_First, _Fname_wide) == 0) + _Xinvalid_argument("invalid char filename argument"); + return (::std:: move(_Str.append(&_Fname_wide[0]))); + } + + static _Outstr&& _Cvt(_Outstr& _Str, + const _Inchar *_First, size_t _Size, + const locale& _Loc) + { + typedef codecvt<_Outchar, _Inchar, _Mbstatet> _Mycvt; + wstring_convert<_Mycvt> _Wcvt(&use_facet< _Mycvt >(_Loc)); + return (::std:: move( + _Str.append(_Wcvt.from_bytes(_First, _First + _Size)))); + } + }; + +template + struct _Path_cvt + { + typedef wchar_t _Inchar; + typedef char _Outchar; + typedef basic_string<_Outchar, _Outtraits, _Outalloc> _Outstr; + static _Outstr&& _Cvt(_Outstr& _Str, + const _Inchar *_First, size_t) + { + _Outchar _Fname_byte[260]; + if (_To_byte(_First, _Fname_byte) == 0) + _Xinvalid_argument("invalid wchar_t filename argument"); + return (::std:: move(_Str.append(&_Fname_byte[0]))); + } + + static _Outstr&& _Cvt(_Outstr& _Str, + const _Inchar *_First, size_t _Size, + const locale& _Loc) + { + typedef codecvt<_Inchar, _Outchar, _Mbstatet> _Mycvt; + wstring_convert<_Mycvt> _Wcvt(&use_facet< _Mycvt >(_Loc)); + return (::std:: move( + _Str.append(_Wcvt.to_bytes(_First, _First + _Size)))); + } + }; + +template<> + struct _Path_cvt, allocator > + { + typedef char _Inchar; + typedef char _Outchar; + typedef char_traits<_Outchar> _Outtraits; + typedef allocator<_Outchar> _Outalloc; + typedef basic_string<_Outchar, _Outtraits, _Outalloc> _Outstr; + static _Outstr&& _Cvt(_Outstr& _Str, + const _Inchar *_First, size_t, + const locale& = locale()) + { + wchar_t _Fname_wide[260]; + if (_To_wide(_First, _Fname_wide) == 0) + _Xinvalid_argument("invalid char filename argument"); + + wstring_convert, wchar_t> _Wcvt; + wchar_t *_Last1 = &_Fname_wide[0]; + for (; *_Last1 != wchar_t(0); ++_Last1) + ; + return (::std:: move( + _Str.append(_Wcvt.to_bytes(&_Fname_wide[0], _Last1)))); + } + }; + +template + struct _Path_cvt + { + typedef char _Inchar; + typedef char _Outchar; + typedef basic_string<_Outchar, _Outtraits, _Outalloc> _Outstr; + static _Outstr&& _Cvt(_Outstr& _Str, + const _Inchar *_First, size_t _Size, + const locale& = locale()) + { + wstring_convert, wchar_t> _Wcvt; + wstring _Str0(_Wcvt.from_bytes(_First, _First + _Size)); + + _Outchar _Fname_byte[260]; + if (_To_byte(_Str0.c_str(), _Fname_byte) == 0) + _Xinvalid_argument("invalid UTF8 filename argument"); + return (::std:: move(_Str.append(&_Fname_byte[0]))); + } + }; + +template<> + struct _Path_cvt, allocator > + { + typedef wchar_t _Inchar; + typedef char _Outchar; + typedef char_traits<_Outchar> _Outtraits; + typedef allocator<_Outchar> _Outalloc; + typedef basic_string<_Outchar, _Outtraits, _Outalloc> _Outstr; + static _Outstr&& _Cvt(_Outstr& _Str, + const _Inchar *_First, size_t _Size, + const locale& = locale()) + { + wstring_convert, _Inchar> _Wcvt; + return (::std:: move( + _Str.append(_Wcvt.to_bytes(_First, _First + _Size)))); + } + }; + +template + struct _Path_cvt + { + typedef char _Inchar; + typedef wchar_t _Outchar; + typedef basic_string<_Outchar, _Outtraits, _Outalloc> _Outstr; + static _Outstr&& _Cvt(_Outstr& _Str, + const _Inchar *_First, size_t _Size, + const locale& = locale()) + { + wstring_convert, _Outchar> _Wcvt; + return (::std:: move( + _Str.append(_Wcvt.from_bytes(_First, _First + _Size)))); + } + }; + + + + +template + struct _Path_cvt + { + typedef wchar_t _Inchar; + typedef char32_t _Outchar; + typedef basic_string<_Outchar, _Outtraits, _Outalloc> _Outstr; + static _Outstr&& _Cvt(_Outstr& _Str, + const _Inchar *_First, size_t _Size, + const locale& = locale()) + { + wstring_convert, _Inchar> _Wcvt0; + ::std:: string _Str0(_Wcvt0.to_bytes(_First, _First + _Size)); + + wstring_convert, _Outchar> _Wcvt; + return (::std:: move( + _Str.append(_Wcvt.from_bytes(_Str0)))); + } + }; + +template + struct _Path_cvt + { + typedef char32_t _Inchar; + typedef wchar_t _Outchar; + typedef basic_string<_Outchar, _Outtraits, _Outalloc> _Outstr; + static _Outstr&& _Cvt(_Outstr& _Str, + const _Inchar *_First, size_t _Size, + const locale& = locale()) + { + wstring_convert, _Inchar> _Wcvt0; + ::std:: string _Str0(_Wcvt0.to_bytes(_First, _First + _Size)); + + wstring_convert, _Outchar> _Wcvt; + return (::std:: move( + _Str.append(_Wcvt.from_bytes(_Str0)))); + } + }; + + +class path; +path operator/(const path&, const path&); + +path _Absolute(const path&, const path&, error_code&); + + +void _Canonicalize_string_only(path&, const path&); + + +path canonical(const path&, + error_code&); +path canonical(const path&, const path&, + error_code&); + +void copy(const path&, const path&); +void copy(const path&, const path&, + error_code&) noexcept; +void copy(const path&, const path&, _Copy_options); +void copy(const path&, const path&, _Copy_options, + error_code&) noexcept; + +bool copy_file(const path&, const path&, _Copy_options = copy_options::none); +bool copy_file(const path&, const path&, + error_code&) noexcept; +bool copy_file(const path&, const path&, _Copy_options, + error_code&) noexcept; + +void copy_symlink(const path&, const path&); +void copy_symlink(const path&, const path&, + error_code&) noexcept; + +bool create_directories(const path&); +bool create_directories(const path&, + error_code&) noexcept; + +bool create_directory(const path&); +bool create_directory(const path&, + error_code&) noexcept; +bool create_directory(const path&, const path&); +bool create_directory(const path&, const path&, + error_code&) noexcept; + +void create_directory_symlink(const path&, const path&); +void create_directory_symlink(const path&, const path&, + error_code&) noexcept; + +void create_hard_link(const path&, const path&); +void create_hard_link(const path&, const path&, + error_code&) noexcept; + +void create_symlink(const path&, const path&); +void create_symlink(const path&, const path&, + error_code&) noexcept; + +path current_path(); +path current_path( + error_code&); +void current_path(const path&); +void current_path(const path&, + error_code&) noexcept; + +bool equivalent(const path&, const path&); +bool equivalent(const path&, const path&, + error_code&) noexcept; + +bool exists(file_status) noexcept; +bool exists(const path&); +bool exists(const path&, + error_code&) noexcept; + +uintmax_t file_size(const path&); +uintmax_t file_size(const path&, + error_code&) noexcept; + +uintmax_t hard_link_count(const path&); +uintmax_t hard_link_count(const path&, + error_code&) noexcept; + +bool is_block_file(file_status) noexcept; +bool is_block_file(const path&); +bool is_block_file(const path&, + error_code&) noexcept; + +bool is_character_file(file_status) noexcept; +bool is_character_file(const path&); +bool is_character_file(const path&, + error_code&) noexcept; + +bool is_directory(file_status) noexcept; +bool is_directory(const path&); +bool is_directory(const path&, + error_code&) noexcept; + +bool is_empty(const path&); +bool is_empty(const path&, + error_code&) noexcept; + +bool is_fifo(file_status) noexcept; +bool is_fifo(const path&); +bool is_fifo(const path&, + error_code&) noexcept; + +bool is_other(file_status) noexcept; +bool is_other(const path&); +bool is_other(const path&, + error_code&) noexcept; + +bool is_regular_file(file_status) noexcept; +bool is_regular_file(const path&); +bool is_regular_file(const path&, + error_code&) noexcept; + +bool is_socket(file_status) noexcept; +bool is_socket(const path&); +bool is_socket(const path&, + error_code&) noexcept; + +bool is_symlink(file_status) noexcept; +bool is_symlink(const path&); +bool is_symlink(const path&, + error_code&) noexcept; + +typedef chrono::system_clock::time_point file_time_type; + +file_time_type last_write_time(const path&, + error_code&) noexcept; +file_time_type last_write_time(const path&); +void last_write_time(const path&, file_time_type, + error_code&) noexcept; +void last_write_time(const path&, file_time_type); + +void permissions(const path&, _Perms); +void permissions(const path&, _Perms, + error_code&) noexcept; + +path read_symlink(const path&); +path read_symlink(const path&, + error_code&); + +bool remove(const path&); +bool remove(const path&, + error_code&) noexcept; + +uintmax_t remove_all(const path&); +uintmax_t remove_all(const path&, + error_code&) noexcept; + +void rename(const path&, const path&); +void rename(const path&, const path&, + error_code&) noexcept; + +void resize_file(const path&, uintmax_t); +void resize_file(const path&, uintmax_t, + error_code&) noexcept; + +space_info space(const path&); +space_info space(const path&, + error_code&) noexcept; + +file_status status(const path&); +file_status status(const path&, + error_code&) noexcept; + +bool status_known(file_status) noexcept; + +file_status symlink_status(const path&); +file_status symlink_status(const path&, + error_code&) noexcept; + +path system_complete(const path&); +path system_complete(const path&, + error_code&); + +path temp_directory_path(); +path temp_directory_path( + error_code&); + + +template + class _Path_iterator + { +public: + typedef _Path_iterator<_Path_type> _Myt; + typedef _Path_type path_type; + typedef typename _Path_type::string_type string_type; + + typedef bidirectional_iterator_tag iterator_category; + typedef path_type value_type; + typedef ptrdiff_t difference_type; + typedef const value_type *pointer; + typedef const value_type& reference; + + _Path_iterator() + : _Myptr(0), _Myoff(0) + { + } + + _Path_iterator(const path_type& _Path, size_t _Off) + : _Myptr(&_Path), _Myoff(_Off) + { + _Getval(); + } + + _Path_iterator(const _Path_iterator& _Right) + : _Myptr(_Right._Myptr), + _Myelem(_Right._Myelem), + _Myoff(_Right._Myoff) + { + } + + _Path_iterator& operator=(const _Path_iterator& _Right) + { + _Myptr = _Right._Myptr; + _Myelem = _Right._Myelem; + _Myoff = _Right._Myoff; + return (*this); + } + + _Path_iterator(_Path_iterator&& _Right) noexcept + : _Myptr(_Right._Myptr), + _Myelem(::std:: move(_Right._Myelem)), + _Myoff(_Right._Myoff) + { + } + + _Path_iterator& operator=(_Path_iterator&& _Right) noexcept + { + _Myptr = _Right._Myptr; + _Myelem = ::std:: move(_Right._Myelem); + _Myoff = _Right._Myoff; + return (*this); + } + + reference operator*() const + { + return (_Myelem); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myt& operator++() + { +#pragma warning(push) +#pragma warning(disable: 6011) + + + if (_Myptr == 0 || _Myptr->_Mystr.size() <= _Myoff) + _Debug_message(L"path::iterator is not incrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\filesystem", 724); + + + + + + + size_t _Pend = _Myptr->_Prefix_end(); + size_t _Size = _Myptr->_Mystr.size(); + + if (_Myoff < _Pend) + _Myoff = _Pend; + else if (_Myoff == _Pend && _Pend < _Size + && ((_Myptr->_Mystr[_Pend]) == L'/' || (_Myptr->_Mystr[_Pend]) == L'\\')) + { + for (++_Myoff; _Myoff < _Size; ++_Myoff) + if (!((_Myptr->_Mystr[_Myoff]) == L'/' || (_Myptr->_Mystr[_Myoff]) == L'\\')) + break; + } + else + { + for (; _Myoff < _Size; ++_Myoff) + if (!((_Myptr->_Mystr[_Myoff]) == L'/' || (_Myptr->_Mystr[_Myoff]) == L'\\')) + break; + for (; _Myoff < _Size; ++_Myoff) + if (((_Myptr->_Mystr[_Myoff]) == L'/' || (_Myptr->_Mystr[_Myoff]) == L'\\')) + break; + } + _Getval(); + return (*this); + +#pragma warning(pop) + } + + _Myt operator++(int) + { + _Myt _Tmp = *this; + ++*this; + return (_Tmp); + } + + _Myt& operator--() + { + + if (_Myptr == 0 || _Myoff == 0) + _Debug_message(L"path::iterator is not decrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\filesystem", 769); + + + + + + + size_t _Myoff_sav = _Myoff; + size_t _Off_back = 0; + _Myoff = 0; + do + { + _Off_back = _Myoff; + ++*this; + } while (_Myoff < _Myoff_sav); + _Myoff = _Off_back; + _Getval(); + return (*this); + } + + _Myt operator--(int) + { + _Myt _Tmp = *this; + --*this; + return (_Tmp); + } + + bool operator==(const _Myt& _Right) const + { + return (_Myptr == _Right._Myptr && _Myoff == _Right._Myoff); + } + + bool operator!=(const _Myt& _Right) const + { + return (!(*this == _Right)); + } + +private: + void _Getval() + { + string_type _Str; + size_t _Pend = _Myptr->_Prefix_end(); + size_t _Size = _Myptr->_Mystr.size(); + + if (_Size <= _Myoff) + ; + else if (_Myoff < _Pend) + _Str = _Myptr->_Mystr.substr(0, _Pend); + else if (_Myoff == _Pend && _Pend < _Size + && ((_Myptr->_Mystr[_Pend]) == L'/' || (_Myptr->_Mystr[_Pend]) == L'\\')) + _Str = L'\\'; + else + { + size_t _Nslash = 0; + size_t _Nstuff = 0; + + for (; _Myoff + _Nslash < _Size; ++_Nslash) + if (!((_Myptr->_Mystr[_Myoff + _Nslash]) == L'/' || (_Myptr->_Mystr[_Myoff + _Nslash]) == L'\\')) + break; + for (; _Myoff + _Nslash + _Nstuff < _Size; ++_Nstuff) + if (((_Myptr->_Mystr[_Myoff + _Nslash + _Nstuff]) == L'/' || (_Myptr->_Mystr[_Myoff + _Nslash + _Nstuff]) == L'\\')) + break; + if (0 < _Nstuff) + _Str = _Myptr->_Mystr.substr(_Myoff + _Nslash, + _Nstuff); + else if (0 < _Nslash) + _Str = L'.'; + } + _Myelem = _Str; + } + + const path_type *_Myptr; + path_type _Myelem; + size_t _Myoff; + }; + + +class path + { +public: + typedef _Pchar value_type; + typedef basic_string string_type; + static constexpr value_type preferred_separator = L'\\'; + + path() + { + } + + path(const path& _Right) + : _Mystr(_Right._Mystr) + { + } + + + + template::value, + void>::type> + path(_InIt _First, _InIt _Last) + + { + typedef _Iter_value_t<_InIt> _Valty; + basic_string<_Valty> _Str(_First, _Last); + string_type _Str_out; + *this /= _Path_cvt<_Valty, value_type>:: + _Cvt(_Str_out, _Str.c_str(), _Str.size()); + } + + template::value, + void>::type> + path(_InIt _First) + + { + typedef _Iter_value_t<_InIt> _Valty; + basic_string<_Valty> _Str; + for (; *_First != _Valty(0); ++_First) + _Str += *_First; + string_type _Str_out; + *this /= _Path_cvt<_Valty, value_type>:: + _Cvt(_Str_out, _Str.c_str(), _Str.size()); + } + + template + path(const basic_string<_Elem, _Traits, _Alloc>& _Str) + { + string_type _Str_out; + *this /= _Path_cvt<_Elem, value_type>:: + _Cvt(_Str_out, _Str.c_str(), _Str.size()); + } + + + + template::value, + void>::type> + path(_InIt _First, _InIt _Last, + const locale& _Loc) + + { + typedef _Iter_value_t<_InIt> _Valty; + basic_string<_Valty> _Str(_First, _Last); + string_type _Str_out; + *this /= _Path_cvt<_Valty, value_type>:: + _Cvt(_Str_out, _Str.c_str(), _Str.size(), _Loc); + } + + template::value, + void>::type> + path(_InIt _First, + const locale& _Loc) + + { + typedef _Iter_value_t<_InIt> _Valty; + basic_string<_Valty> _Str; + for (; *_First != _Valty(0); ++_First) + _Str += *_First; + string_type _Str_out; + *this /= _Path_cvt<_Valty, value_type>:: + _Cvt(_Str_out, _Str.c_str(), _Str.size(), _Loc); + } + + template + path(const basic_string<_Elem, _Traits, _Alloc>& _Str, + const locale& _Loc) + { + string_type _Str_out; + *this /= _Path_cvt<_Elem, value_type>:: + _Cvt(_Str_out, _Str.c_str(), _Str.size(), _Loc); + } + + path(path&& _Right) noexcept + : _Mystr(::std:: move(_Right._Mystr)) + { + } + + path& operator=(path&& _Right) noexcept + { + _Mystr = ::std:: move(_Right._Mystr); + return (*this); + } + + ~path() noexcept + { + } + + + path& operator=(const path& _Right) + { + _Mystr = _Right._Mystr; + return (*this); + } + + template + path& operator=(_InIt _First) + { + return (*this = path(_First)); + } + + template + path& operator=( + const basic_string<_Elem, _Traits, _Alloc>& _Str) + { + return (*this = path(_Str)); + } + + template + path& assign(_InIt _First, _InIt _Last) + { + return (*this = path(_First, _Last)); + } + + template + path& assign(_InIt _First) + { + return (*this = path(_First)); + } + + template + path& assign( + const basic_string<_Elem, _Traits, _Alloc>& _Str) + { + return (*this = path(_Str)); + } + + + path& operator/=(const path& _Path) + { + return (append(_Path._Mystr)); + } + + template + path& operator/=(_InIt _First) + { + return (append(path(_First)._Mystr)); + } + + template + path& operator/=( + const basic_string<_Elem, _Traits, _Alloc>& _Str) + { + return (append(_Str)); + } + + template + path& append(_InIt _First, _InIt _Last) + { + return (append(path(_First, _Last)._Mystr)); + } + + template + path& append(_InIt _First) + { + return (append(path(_First)._Mystr)); + } + + template + path& append( + const basic_string<_Elem, _Traits, _Alloc>& _Str0) + { + string_type _Str(_Str0.begin(), _Str0.end()); + + for (size_t _Idx = 0; _Idx < _Str.size(); ++_Idx) + if (_Str[_Idx] == L'/') + _Str[_Idx] = L'\\'; + + if (0 < _Mystr.size() && 0 < _Str.size() + && _Mystr.back() != L':' + && !((_Mystr.back()) == L'/' || (_Mystr.back()) == L'\\') + && !((_Str[0]) == L'/' || (_Str[0]) == L'\\')) + _Mystr.append(1, L'\\'); + + _Mystr.append(_Str); + return (*this); + } + + + path& operator+=(const path& _Path) + { + return (concat(_Path._Mystr)); + } + + template + path& operator+=(_Ty _Val) + { + return (concat(_Val)); + } + + template + path& operator+=( + const basic_string<_Elem, _Traits, _Alloc>& _Str) + { + return (concat(_Str)); + } + + template + path& operator+=(const _Elem *_Ptr) + { + return (concat(basic_string<_Elem>(_Ptr))); + } + + template + path& concat(_InIt _First, _InIt _Last) + { + return (concat(path(_First, _Last)._Mystr)); + } + + template::value, + void>::type> + path& concat(_InIt _First) + + { + return (concat(path(_First)._Mystr)); + } + + template + path& concat(const _Elem *_Ptr) + { + return (concat(basic_string<_Elem>(_Ptr))); + } + + template + path& concat(_Elem _Val) + { + return (concat(path(basic_string<_Elem>((size_t)1, _Val))._Mystr)); + } + + template + path& concat( + const basic_string<_Elem, _Traits, _Alloc>& _Str) + { + _Mystr.append(_Str.begin(), _Str.end()); + return (*this); + } + + + void clear() noexcept + { + _Mystr.clear(); + } + + path& make_preferred() + { + for (size_t _Idx = 0; _Idx < _Mystr.size(); ++_Idx) + + if (_Mystr[_Idx] == L'/') + _Mystr[_Idx] = L'\\'; + + return (*this); + } + + path& remove_filename() + { + if (!empty() && begin() != --end()) + { + size_t _Rend = _Root_end(); + size_t _Idx = _Mystr.size(); + + for (; _Rend < _Idx; --_Idx) + if (((_Mystr[_Idx - 1]) == L'/' || (_Mystr[_Idx - 1]) == L'\\')) + break; + for (; _Rend < _Idx; --_Idx) + if (!((_Mystr[_Idx - 1]) == L'/' || (_Mystr[_Idx - 1]) == L'\\')) + break; + _Mystr.erase(_Idx); + } + return (*this); + } + + path& replace_filename(const path& _Path) + { + remove_filename(); + *this /= _Path; + return (*this); + } + + path& replace_extension(const path& _Newext = path()) + { + if (_Newext.empty() || _Newext.c_str()[0] == L'.') + *this = parent_path() + / path((stem().native() + _Newext.native())); + else + *this = parent_path() + / path((stem().native() + L'.' + _Newext.native())); + return (*this); + } + + void swap(path& _Right) noexcept + { + _Mystr.swap(_Right._Mystr); + } + + + const string_type& native() const noexcept + { + return (_Mystr); + } + + const value_type *c_str() const noexcept + { + return (_Mystr.c_str()); + } + + operator string_type() const + { + return (_Mystr); + } + + template, + class _Alloc = allocator<_Elem> > + basic_string<_Elem, _Traits, _Alloc> + string(const _Alloc& _Al = _Alloc()) const + { + basic_string<_Elem, _Traits, _Alloc> _Str(_Al); + return (_Path_cvt:: + _Cvt(_Str, _Mystr.c_str(), _Mystr.size())); + } + + ::std:: string string() const + { + ::std:: string _Str; + return (_Path_cvt:: + _Cvt(_Str, _Mystr.c_str(), _Mystr.size())); + } + + ::std:: wstring wstring() const + { + ::std:: wstring _Str; + return (_Path_cvt:: + _Cvt(_Str, _Mystr.c_str(), _Mystr.size())); + } + + ::std:: string u8string() const + { + ::std:: string _Str; + return (_Path_cvt, allocator >:: + _Cvt(_Str, _Mystr.c_str(), _Mystr.size())); + } + + ::std:: u16string u16string() const + { + ::std:: u16string _Str; + return (_Path_cvt:: + _Cvt(_Str, _Mystr.c_str(), _Mystr.size())); + } + + ::std:: u32string u32string() const = delete; +# 1245 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\filesystem" 3 + string_type _Make_generic() const + { + string_type _Str = _Mystr; + ::std:: replace(_Str.begin(), _Str.end(), L'\\', L'/'); + return (_Str); + } + + template, + class _Alloc = allocator<_Elem> > + basic_string<_Elem, _Traits, _Alloc> + generic_string(const _Alloc& _Al = _Alloc()) const + { + basic_string<_Elem, _Traits, _Alloc> _Str(_Al); + const string_type _Genstr = _Make_generic(); + return (_Path_cvt:: + _Cvt(_Str, _Genstr.c_str(), _Genstr.size())); + } + + ::std:: string generic_string() const + { + ::std:: string _Str; + const string_type _Genstr = _Make_generic(); + return (_Path_cvt:: + _Cvt(_Str, _Genstr.c_str(), _Genstr.size())); + } + + ::std:: wstring generic_wstring() const + { + ::std:: wstring _Str; + const string_type _Genstr = _Make_generic(); + return (_Path_cvt:: + _Cvt(_Str, _Genstr.c_str(), _Genstr.size())); + } + + ::std:: string generic_u8string() const + { + ::std:: string _Str; + const string_type _Genstr = _Make_generic(); + return (_Path_cvt, allocator >:: + _Cvt(_Str, _Genstr.c_str(), _Genstr.size())); + } + + ::std:: u16string generic_u16string() const + { + ::std:: u16string _Str; + const string_type _Genstr = _Make_generic(); + return (_Path_cvt:: + _Cvt(_Str, _Genstr.c_str(), _Genstr.size())); + } + + ::std:: u32string generic_u32string() const = delete; +# 1308 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\filesystem" 3 + int compare(const path& _Path) const noexcept + { + return (_Mystr.compare(_Path._Mystr)); + } + + int compare(const string_type& _Str) const + { + return (_Mystr.compare(_Str)); + } + + int compare(const value_type *_Ptr) const + { + return (_Mystr.compare(_Ptr)); + } + + + path root_name() const + { + return (path(_Mystr.substr(0, _Prefix_end()))); + } + + path root_directory() const + { + size_t _Idx = _Prefix_end(); + if (_Idx < _Mystr.size() + && ((_Mystr[_Idx]) == L'/' || (_Mystr[_Idx]) == L'\\')) + return (path(string_type(1, L'\\'))); + else + return (path()); + } + + path root_path() const + { + return (path(_Mystr.c_str(), + _Mystr.c_str() + _Root_end())); + } + + path relative_path() const + { + size_t _Idx = _Root_end(); + while (_Idx < _Mystr.size() + && ((_Mystr[_Idx]) == L'/' || (_Mystr[_Idx]) == L'\\')) + ++_Idx; + + return (path(_Mystr.substr(_Idx))); + } + + path parent_path() const + { + path _Ans; + if (!empty()) + { + iterator _End = --end(); + for (iterator _Next = begin(); _Next != _End; ++_Next) + _Ans /= *_Next; + } + return (_Ans); + } + + path filename() const + { + return (empty() ? path() : path(*--end())); + } + + path stem() const + { + string_type _Str0 = filename().native(); + string_type _Str1 = extension().native(); + _Str0.resize(_Str0.size() - _Str1.size()); + return (path(_Str0)); + } + + path extension() const + { + string_type _Str = filename().native(); + size_t _Idx = _Str.rfind(L'.'); + return (_Idx == string_type::npos + || _Str.size() == 1 + || (_Str.size() == 2 && _Str[0] == L'.' + && _Str[1] == L'.') + ? path() : path(_Str.substr(_Idx))); + } + + bool empty() const noexcept + { + return (_Mystr.empty()); + } + + bool has_root_name() const + { + return (!root_name().empty()); + } + + bool has_root_directory() const + { + return (!root_directory().empty()); + } + + bool has_root_path() const + { + return (!root_path().empty()); + } + + bool has_relative_path() const + { + return (!relative_path().empty()); + } + + bool has_parent_path() const + { + return (!parent_path().empty()); + } + + bool has_filename() const + { + return (!filename().empty()); + } + + bool has_stem() const + { + return (!stem().empty()); + } + + bool has_extension() const + { + return (!extension().empty()); + } + + bool is_absolute() const + { + return (has_root_name() && has_root_directory()); + } + + bool is_relative() const + { + return (!is_absolute()); + } + + + typedef _Path_iterator iterator; + typedef iterator const_iterator; + + iterator begin() const + { + return (iterator(*this, (size_t)0)); + } + + iterator end() const + { + return (iterator(*this, _Mystr.size())); + } + + size_t _Prefix_end() const + { + if (2 < _Mystr.size() + && ((_Mystr[0]) == L'/' || (_Mystr[0]) == L'\\') + && ((_Mystr[1]) == L'/' || (_Mystr[1]) == L'\\') + && !((_Mystr[2]) == L'/' || (_Mystr[2]) == L'\\')) + { + size_t _Idx = 3; + for (; _Idx < _Mystr.size() && !((_Mystr[_Idx]) == L'/' || (_Mystr[_Idx]) == L'\\'); ++_Idx) + ; + return (_Idx); + } + else + { + size_t _Idx = _Mystr.find(L':', 0); + if (_Idx == _Mystr.npos) + _Idx = 0; + else + ++_Idx; + return (_Idx); + } + } + + size_t _Root_end() const + { + size_t _Idx = _Prefix_end(); + if (_Idx < _Mystr.size() + && ((_Mystr[_Idx]) == L'/' || (_Mystr[_Idx]) == L'\\')) + ++_Idx; + return (_Idx); + } + + string_type _Mystr; + }; + +inline void swap(path& _Left, + path& _Right) noexcept + { + _Left.swap(_Right); + } + +inline size_t hash_value(const path& _Path) noexcept + { + return (hash()(_Path.native())); + } + +inline bool operator==(const path& _Left, const path& _Right) noexcept + { + return (_Left.native() == _Right.native()); + } + +inline bool operator!=(const path& _Left, const path& _Right) noexcept + { + return (!(_Left == _Right)); + } + +inline bool operator<(const path& _Left, const path& _Right) noexcept + { + return (_Left.native() < _Right.native()); + } + +inline bool operator<=(const path& _Left, const path& _Right) noexcept + { + return (!(_Right < _Left)); + } + +inline bool operator>(const path& _Left, const path& _Right) noexcept + { + return (_Right < _Left); + } + +inline bool operator>=(const path& _Left, const path& _Right) noexcept + { + return (!(_Left < _Right)); + } + +inline path operator/(const path& _Left, const path& _Right) + { + path _Ans = _Left; + return (_Ans /= _Right); + } + +template inline + basic_ostream<_Elem, _Traits>& + operator<<(basic_ostream<_Elem, _Traits>& _Ostr, const path& _Path) + { + return (_Ostr << _Path.string<_Elem, _Traits, allocator<_Elem> >()); + } + +template inline + basic_istream<_Elem, _Traits>& + operator>>(basic_istream<_Elem, _Traits>& _Istr, path& _Path) + { + basic_string<_Elem, _Traits> _Str; + _Istr >> _Str; + _Path = _Str; + return (_Istr); + } + + + +template::value, + void>::type> inline + path u8path(_InIt _First, _InIt _Last) + + { + string _Str(_First, _Last); + path::string_type _Str_out; + return (path(_Path_cvt:: + _Cvt(_Str_out, _Str.c_str(), _Str.size()))); + } + +template::value, + void>::type> inline + path u8path(_InIt _First) + + { + string _Str; + for (; *_First != '\0'; ++_First) + _Str += *_First; + path::string_type _Str_out; + return (path(_Path_cvt:: + _Cvt(_Str_out, _Str.c_str(), _Str.size()))); + } + +template inline + path u8path(const basic_string& _Str) + { + path::string_type _Str_out; + return (path(_Path_cvt:: + _Cvt(_Str_out, _Str.c_str(), _Str.size()))); + } + + +class filesystem_error + : public system_error + { +public: + explicit filesystem_error(const string& _Message, + error_code _Errcode = make_error_code(errc::operation_not_permitted)) + : system_error(_Errcode, _Message) + { + } + + filesystem_error(const string& _Message, + const path& _Path1, + error_code _Errcode) + : system_error(_Errcode, _Message), + _Mypval1(_Path1) + { + } + + filesystem_error(const string& _Message, + const path& _Path1, + const path& _Path2, + error_code _Errcode) + : system_error(_Errcode, _Message), + _Mypval1(_Path1), _Mypval2(_Path2) + { + } + + virtual ~filesystem_error() noexcept + { + } + + filesystem_error(filesystem_error&& _Right) noexcept + : system_error(_Right.code(), _Right.what()), + _Mypval1(::std:: move(_Right._Mypval1)), + _Mypval2(::std:: move(_Right._Mypval2)) + { + } + + filesystem_error& operator=(filesystem_error&& _Right) noexcept + { + *((system_error *)this) = *(system_error *)&_Right; + _Mypval1 = ::std:: move(_Right._Mypval1); + _Mypval2 = ::std:: move(_Right._Mypval2); + return (*this); + } + + const path& path1() const noexcept + { + return (_Mypval1); + } + + const path& path2() const noexcept + { + return (_Mypval2); + } + + filesystem_error(const filesystem_error&) = default; + filesystem_error& operator=(const filesystem_error&) = default; + +private: + path _Mypval1; + path _Mypval2; +# 1671 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\filesystem" 3 + }; + + +class directory_entry + { +public: + typedef directory_entry _Myt; + typedef ::std:: experimental::filesystem::v1:: path::string_type string_type; + + directory_entry() + : _Mystat(), + _Mysymstat() + { + } + + directory_entry(const directory_entry&) = default; + ~directory_entry() noexcept = default; + directory_entry& operator=(const directory_entry&) = default; + + directory_entry(directory_entry&&) = default; + directory_entry& operator=(directory_entry&&) = default; + + explicit directory_entry(const ::std:: experimental::filesystem::v1:: path& _Path, + file_status _Statarg = file_status(), + file_status _Symstatarg = file_status()) + : _Mypval(_Path), + _Mystat(_Statarg), + _Mysymstat(_Symstatarg) + { + } + + void assign(const ::std:: experimental::filesystem::v1:: path& _Path, + file_status _Statarg = file_status(), + file_status _Symstatarg = file_status()) + { + _Mypval = _Path; + _Mystat = _Statarg; + _Mysymstat = _Symstatarg; + } + + void replace_filename(const ::std:: experimental::filesystem::v1:: path& _Path, + file_status _Statarg = file_status(), + file_status _Symstatarg = file_status()) + { + _Mypval = _Mypval.parent_path() / _Path; + _Mystat = _Statarg; + _Mysymstat = _Symstatarg; + } + + operator const ::std:: experimental::filesystem::v1:: path&() const noexcept + { + return (_Mypval); + } + + const ::std:: experimental::filesystem::v1:: path& path() const noexcept + { + return (_Mypval); + } + + file_status status() const + { + error_code _Code; + return (status(_Code)); + } + + file_status status(error_code& _Code) const noexcept + { + _Code = error_code(); + if (status_known(_Mystat)) + ; + else if (status_known(_Mysymstat) + && !is_symlink(_Mysymstat)) + _Mystat = _Mysymstat; + else + _Mystat = ::std:: experimental::filesystem::v1:: status(_Mypval, _Code); + return (_Mystat); + } + + file_status symlink_status() const + { + error_code _Code; + return (symlink_status(_Code)); + } + + file_status symlink_status(error_code& _Code) const noexcept + { + _Code = error_code(); + if (!status_known(_Mysymstat)) + _Mysymstat = ::std:: experimental::filesystem::v1:: symlink_status(_Mypval, _Code); + return (_Mysymstat); + } + + bool operator==(const _Myt& _Right) const noexcept + { + return (_Mypval == _Right._Mypval); + } + + bool operator!=(const _Myt& _Right) const noexcept + { + return (!(*this == _Right)); + } + + bool operator<(const _Myt& _Right) const noexcept + { + return (_Mypval < _Right._Mypval); + } + + bool operator>(const _Myt& _Right) const noexcept + { + return (_Right < *this); + } + bool operator<=(const _Myt& _Right) const noexcept + { + return (!(_Right < *this)); + } + + bool operator>=(const _Myt& _Right) const noexcept + { + return (!(*this < _Right)); + } + +private: + ::std:: experimental::filesystem::v1:: path _Mypval; + mutable file_status _Mystat; + mutable file_status _Mysymstat; + }; + +template + class _Directory_iterator + { +public: + typedef _Directory_iterator<_Prefix_directory> _Myt; + typedef path::string_type string_type; + + typedef input_iterator_tag iterator_category; + typedef directory_entry value_type; + typedef ptrdiff_t difference_type; + typedef const value_type *pointer; + typedef const value_type& reference; + + _Directory_iterator() noexcept + : _Mypdir(new void *(0), &_Delptr) + { + } + + explicit _Directory_iterator(const path& _Path) + : _Mypdir(new void *(0), &_Delptr), + _Mydirpath(_Path) + { + typename string_type::value_type _Dest[260]; + int _Errno = 0; + _File_type _Ftype; + + *_Mypdir = _Open_dir(_Dest, _Path.c_str(), _Errno, _Ftype); + if (*_Mypdir != 0) + _Form_name(_Dest, _Ftype, _Prefix_directory()); + } + + _Directory_iterator(const path& _Path, error_code& _Code) noexcept + : _Mypdir(new void *(0), &_Delptr), + _Mydirpath(_Path) + { + typename string_type::value_type _Dest[260]; + int _Errno = 0; + _File_type _Ftype; + + *_Mypdir = _Open_dir(_Dest, _Path.c_str(), _Errno, _Ftype); + if (*_Mypdir != 0) + _Form_name(_Dest, _Ftype, _Prefix_directory()); + _Code = error_code(_Errno, ::std:: system_category()); + } + + _Directory_iterator(const _Myt&) = default; + ~_Directory_iterator() noexcept = default; + _Myt& operator=(const _Myt&) = default; + + _Directory_iterator(_Myt&&) = default; + _Myt& operator=(_Myt&&) = default; + + const value_type& operator*() const + { + + if (!_Mypdir || *_Mypdir == 0) + _Debug_message(L"directory_iterator is not dereferencable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\filesystem", 1855); + + + + + + + return (_Myentry); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myt& operator++() + { + + if (!_Mypdir || *_Mypdir == 0) + _Debug_message(L"directory_iterator is not incrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\filesystem", 1874); + + + + + + + _Get(); + return (*this); + } + + _Myt& increment(error_code& _Code) noexcept + { + _Code = error_code(); + if (!_Mypdir || *_Mypdir == 0) + _Code = make_error_code(errc::operation_not_permitted); + else + _Get(); + return (*this); + } + + _Myt operator++(int) + { + _Myt _Tmp = *this; + ++*this; + return (_Tmp); + } + + bool _Equal(const _Myt& _Right) const + { + return (_Mypdir.get() != 0 && _Right._Mypdir.get() != 0 + ? *_Mypdir == *_Right._Mypdir + : _Mypdir.get() == 0 && _Right._Mypdir.get() == 0); + } + +private: + static void _Delptr(void **_Ptr) + { + if (_Ptr != 0 && *_Ptr != 0) + _Close_dir(*_Ptr); + delete _Ptr; + } + + void _Get() + { + if (*_Mypdir != 0) + { + typename string_type::value_type _Dest[260]; + _File_type _Ftype; + if (_Read_dir(_Dest, *_Mypdir, _Ftype)[0] == 0) + { + _Close_dir(*_Mypdir); + *_Mypdir = 0; + } + else + _Form_name(_Dest, _Ftype, _Prefix_directory()); + } + } + + void _Form_name(typename string_type::value_type *_Filename, + _File_type _Ftype, true_type) + { + _Myentry.assign(_Mydirpath / path(_Filename), + file_status(_Ftype)); + } + + void _Form_name(typename string_type::value_type *_Filename, + _File_type _Ftype, false_type) + { + _Myentry.assign(path(_Filename), file_status(_Ftype)); + } + + shared_ptr _Mypdir; + path _Mydirpath; + value_type _Myentry; + }; + +template inline + bool operator==( + const _Directory_iterator<_Prefix_directory>& _Left, + const _Directory_iterator<_Prefix_directory>& _Right) + { + return (_Left._Equal(_Right)); + } + +template inline + bool operator!=( + const _Directory_iterator<_Prefix_directory>& _Left, + const _Directory_iterator<_Prefix_directory>& _Right) + { + return (!(_Left == _Right)); + } + +typedef _Directory_iterator directory_iterator; + +inline const directory_iterator& begin( + const directory_iterator& _Iter) noexcept + { + return (_Iter); + } + +inline directory_iterator end( + const directory_iterator&) noexcept + { + return (directory_iterator()); + } + + +class recursive_directory_iterator + { +public: + typedef recursive_directory_iterator _Myt; + typedef _Directory_iterator _Myiter; + typedef pair<_Myiter, path> _Mypair; + typedef path::string_type string_type; + typedef string_type::value_type char_type; + + typedef input_iterator_tag iterator_category; + typedef directory_entry value_type; + typedef ptrdiff_t difference_type; + typedef const value_type *pointer; + typedef const value_type& reference; + + recursive_directory_iterator() noexcept + : _Mylist(1, _Mypair()), + _Myentry(), + _No_push(false), + _Options(_Directory_options::none) + { + } + + explicit recursive_directory_iterator(const path& _Path, + _Directory_options _Opts = _Directory_options::none) + : _Mylist(1, _Mypair(_Myiter(_Path), _Path)), + _Myentry(), + _No_push(false), + _Options(_Opts) + { + _Get(); + } + + recursive_directory_iterator(const path& _Path, + _Directory_options _Opts, error_code& _Code) noexcept + : _Mylist(1, _Mypair(_Myiter(_Path), _Path)), + _Myentry(), + _No_push(false), + _Options(_Opts) + { + _Code = error_code(); + _Get(); + } + + recursive_directory_iterator(const path& _Path, + error_code& _Code) noexcept + : _Mylist(1, _Mypair(_Myiter(_Path), _Path)), + _Myentry(), + _No_push(false), + _Options(_Directory_options::none) + { + _Code = error_code(); + _Get(); + } + + recursive_directory_iterator(const _Myt&) = default; + ~recursive_directory_iterator() noexcept = default; + _Myt& operator=(const _Myt&) = default; + + recursive_directory_iterator(_Myt&&) = default; + _Myt& operator=(_Myt&&) = default; + + _Directory_options options() const + { + return (_Options); + } + + int depth() const + { + return (static_cast(_Mylist.size()) - 1); + } + + bool recursion_pending() const + { + return (!_No_push); + } + + void pop() + { + if (1 < _Mylist.size()) + _Mylist.pop_front(); + } + + void disable_recursion_pending() + { + _No_push = true; + } + + const value_type& operator*() const + { + + if (_Mylist.front().first == _Myiter()) + _Debug_message(L"recursive_directory_iterator is not dereferencable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\filesystem", 2074); + + + + + + + return (_Myentry); + } + + pointer operator->() const + { + return (pointer_traits::pointer_to(**this)); + } + + _Myt& operator++() + { + + if (_Mylist.front().first == _Myiter()) + _Debug_message(L"recursive_directory_iterator is not incrementable", L"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include\\filesystem", 2093); + + + + + + + if (_No_push + || !is_directory(_Mylist.front().first->status()) + || (_Options != _Directory_options::follow_directory_symlink + && is_symlink(_Mylist.front().first->status()))) + { + _No_push = false; + ++_Mylist.front().first; + } + else + { + path _Newpath = _Mylist.front().second + / _Mylist.front().first->path(); + ++_Mylist.front().first; + _Mylist.push_front(_Mypair(_Myiter(_Newpath), _Newpath)); + } + while (1 < _Mylist.size() && _Mylist.front().first == _Myiter()) + pop(); + _Get(); + return (*this); + } + + _Myt& increment(error_code& _Code) noexcept + { + _Code = error_code(); + if (_Mylist.front().first == _Myiter()) + _Code = make_error_code(errc::operation_not_permitted); + else + ++*this; + return (*this); + } + + _Myt operator++(int) + { + _Myt _Tmp = *this; + ++*this; + return (_Tmp); + } + + bool _Equal(const _Myt& _Right) const + { + return (_Mylist.front().first == _Right._Mylist.front().first); + } + + void _Get() + { + if (_Mylist.front().first != _Myiter()) + { + value_type _Dentry = *_Mylist.front().first; + _Myentry.assign(_Mylist.front().second / _Dentry.path(), + _Dentry.status(), _Dentry.symlink_status()); + } + } + +private: + list<_Mypair> _Mylist; + value_type _Myentry; + bool _No_push; + _Directory_options _Options; + }; + +inline bool operator==( + const recursive_directory_iterator& _Left, + const recursive_directory_iterator& _Right) + { + return (_Left._Equal(_Right)); + } + +inline bool operator!=( + const recursive_directory_iterator& _Left, + const recursive_directory_iterator& _Right) + { + return (!(_Left == _Right)); + } + +inline const recursive_directory_iterator& begin( + const recursive_directory_iterator& _Iter) noexcept + { + return (_Iter); + } + +inline recursive_directory_iterator end( + const recursive_directory_iterator&) noexcept + { + return (recursive_directory_iterator()); + } + + +inline path _Absolute(const path& _Path, + const path& _Base, error_code& _Code) + { + _Code = error_code(); + bool _Path_has_root_name = _Path.has_root_name(); + bool _Path_has_root_directory = _Path.has_root_directory(); + if (_Path_has_root_name && _Path_has_root_directory) + return (_Path); + + path _Current = current_path(_Code); + if (_Code != error_code()) + return (path()); + path _Abs_base = _Absolute(_Base, _Current, _Code); + if (_Code != error_code()) + return (path()); + + if (_Path_has_root_name) + { + return (_Path.root_name() + / _Abs_base.root_directory() + / _Abs_base.relative_path() + / _Path.relative_path()); + } + else + if (_Path_has_root_directory) + return (_Abs_base.root_name() + / _Path); + else + return (_Abs_base + / _Path); + } + +inline path absolute(const path& _Path, + const path& _Base = current_path()) + { + error_code _Code; + path _Result = _Absolute(_Path, _Base, _Code); + if (_Code != error_code()) + throw filesystem_error("absolute(p1, p2): current_path() couldn't get current working directory"); + + return (_Result); + } + +inline void _Canonicalize_string_only(path& _Canon_path, const path& _Abs_path) + { + + vector _Components; + path::const_iterator _Abs_path_next = _Abs_path.begin(); + const path::const_iterator _Abs_path_end = _Abs_path.end(); + + _Canon_path /= *_Abs_path_next; + ++_Abs_path_next; + _Canon_path /= *_Abs_path_next; + ++_Abs_path_next; + for (; _Abs_path_next != _Abs_path_end; ++_Abs_path_next) + { + const auto _Cstr = _Abs_path_next->c_str(); + if (_Cstr[0] == L'.') + { + if (_Cstr[1] == static_cast(0)) + continue; + else if (_Cstr[1] == L'.' + && _Cstr[2] == static_cast(0)) + { + + + if (!_Components.empty()) + _Components.pop_back(); + + continue; + } + } + + _Components.push_back(*_Abs_path_next); + } + + for (const auto& _Component : _Components) + _Canon_path /= _Component; + } + +inline path canonical(const path& _Path, + const path& _Base = current_path()) + { + error_code _Code; + path _Ans = canonical(_Path, _Base, _Code); + + if (_Code != error_code()) + throw filesystem_error("canonical(p1, p2): invalid arguments"); + + return (_Ans); + } + +inline path canonical(const path& _Path, + error_code& _Code) + { + path _Current = current_path(_Code); + if (_Code != error_code()) + return (path()); + return (canonical(_Path, _Current, _Code)); + } + +inline path canonical(const path& _Path, const path& _Base, + error_code& _Code) + { + _Code = error_code(); + path _Canon_path; + path _Abs_path = _Absolute(_Path, _Base, _Code); + if (_Code != error_code()) + return (_Canon_path); + + if (_Abs_path.native().size() >= 260) + { + _Code = make_error_code(errc::filename_too_long); + return (_Canon_path); + } + + _Canonicalize_string_only(_Canon_path, _Abs_path); + return (_Canon_path); + } + +inline bool _Copy_options_indicate_recursive_copy(_Copy_options _Opts) + { + if (_Opts == _Copy_options::none) + + + return (true); + if ((_Opts & _Copy_options::recursive) != _Copy_options::none) + return (true); + return (false); + } + +inline void copy(const path& _Oldpval, const path& _Newpval) + { + error_code _Code; + + copy(_Oldpval, _Newpval, _Copy_options::none, _Code); + if (_Code != error_code()) + throw filesystem_error("copy(p1, p2): invalid arguments"); + + } + +inline void copy(const path& _Oldpval, const path& _Newpval, + error_code& _Code) noexcept + { + copy(_Oldpval, _Newpval, _Copy_options::none, _Code); + } + +inline void copy(const path& _Oldpval, const path& _Newpval, + _Copy_options _Opts) + { + error_code _Code; + + copy(_Oldpval, _Newpval, _Opts, _Code); + if (_Code != error_code()) + throw filesystem_error("copy(p1, p2, options): invalid arguments"); + + } + +inline void copy(const path& _Oldpval, const path& _Newpval, + _Copy_options _Opts, + error_code& _Code) noexcept + { + file_status _Oldstat; + file_status _Newstat; + error_code _Code2; + + _Code = error_code(); + if ((_Opts & _Copy_options::create_symlinks) != _Copy_options::none + || (_Opts & _Copy_options::skip_symlinks) != _Copy_options::none) + { + _Oldstat = symlink_status(_Oldpval); + _Newstat = symlink_status(_Newpval); + } + else + { + _Oldstat = status(_Oldpval); + _Newstat = status(_Newpval); + } + if (!exists(_Oldstat) + || equivalent(_Oldpval, _Newpval, _Code2) + || is_other(_Oldstat) + || is_other(_Newstat) + || (is_directory(_Oldstat) && is_regular_file(_Newstat))) + _Code = make_error_code(errc::operation_not_permitted); + else if (is_symlink(_Oldstat)) + if ((_Opts & _Copy_options::skip_symlinks) != _Copy_options::none) + ; + else if (!exists(_Newstat) + && (_Opts & _Copy_options::copy_symlinks) != _Copy_options::none) + copy_symlink(_Oldpval, _Newpval, _Code); + else + _Code = make_error_code(errc::operation_not_permitted); + else if (is_regular_file(_Oldstat)) + if ((_Opts & _Copy_options::directories_only) != _Copy_options::none) + ; + else if ((_Opts & _Copy_options::create_symlinks) + != _Copy_options::none) + create_symlink(_Oldpval, _Newpval, _Code); + else if ((_Opts & _Copy_options::create_hard_links) + != _Copy_options::none) + create_hard_link(_Oldpval, _Newpval, _Code); + else if (is_directory(_Newstat)) + copy_file(_Oldpval, _Newpval / _Oldpval.filename(), _Opts, _Code); + else + copy_file(_Oldpval, _Newpval, _Opts, _Code); + else if (is_directory(_Oldstat) + && _Copy_options_indicate_recursive_copy(_Opts)) + { + if (!exists(_Newpval) && !create_directory(_Newpval, _Code) && !_Code) + _Code = make_error_code(errc::operation_not_permitted); + for (directory_iterator _Next(_Oldpval), _End; + _Code == error_code() && _Next != _End; ++_Next) + copy(_Next->path(), + _Newpval / _Next->path().filename(), + _Opts | _Copy_options::_Unspecified_recursion_prevention_tag, + _Code); + } + } + +inline bool copy_file(const path& _Oldpval, const path& _Newpval, + _Copy_options _Opt ) + { + error_code _Code; + bool _Ans = copy_file(_Oldpval, _Newpval, _Opt, _Code); + if (_Code != error_code()) + throw filesystem_error("copy_file(p1, p2, options): invalid arguments"); + + return (_Ans); + } + +inline bool copy_file(const path& _Oldpval, const path& _Newpval, + error_code& _Code) noexcept + { + return (copy_file(_Oldpval, _Newpval, copy_options::none, _Code)); + } + +inline bool copy_file(const path& _Oldpval, const path& _Newpval, + _Copy_options _Opt, + error_code& _Code) noexcept + { + _Opt &= (copy_options::skip_existing + | copy_options::overwrite_existing + | copy_options::update_existing); + bool _Exists = exists(_Newpval); + bool _Ans = false; + file_time_type _Oldtime; + file_time_type _Newtime; + + _Code = error_code(); + if (_Exists && (_Opt == copy_options::none + || equivalent(_Oldpval, _Newpval, _Code))) + _Code = make_error_code(errc::file_exists); + else if (_Code) + ; + else if (!_Exists + || (_Opt & copy_options::overwrite_existing) != copy_options::none + || ((_Opt & copy_options::update_existing) != copy_options::none + && ((void)(_Oldtime = last_write_time(_Oldpval, _Code)), !_Code) + && ((void)(_Newtime = last_write_time(_Newpval, _Code)), !_Code) + && _Newtime < _Oldtime)) + { + if (_Copy_file(_Oldpval.c_str(), _Newpval.c_str()) == 0) + _Ans = true; + else + _Code = make_error_code(errc::operation_not_permitted); + } + return (_Ans); + } + +inline void copy_symlink(const path& _Oldpval, const path& _Newpval) + { + error_code _Code; + copy_symlink(_Oldpval, _Newpval, _Code); + if (_Code != error_code()) + throw filesystem_error("copy_symlink(p1, p2): invalid arguments"); + + } + +inline void copy_symlink(const path& _Oldpval, const path& _Newpval, + error_code& _Code) noexcept + { + if (is_directory(_Oldpval)) + create_directory_symlink(_Oldpval, _Newpval, _Code); + else + create_symlink(_Oldpval, _Newpval, _Code); + } + +inline bool create_directories(const path& _Path) + { + error_code _Code; + bool _Ans = create_directories(_Path, _Code); + if (_Code != error_code()) + throw filesystem_error("create_directories(p): invalid argument"); + + return (_Ans); + } + +inline bool create_directories(const path& _Path, + error_code& _Code) noexcept + { + _Code = error_code(); + if (_Path.empty()) + return (false); + else if (!exists(_Path)) + { + create_directories(_Path.parent_path(), _Code); + if (_Code) + return (false); + + create_directory(_Path, _Code); + if (_Code) + return (false); + + return (true); + } + else if (is_directory(_Path)) + return (false); + else + { + _Code = make_error_code(errc::operation_not_permitted); + return (false); + } + } + +inline bool create_directory(const path& _Path) + { + error_code _Code; + bool _Ans = create_directory(_Path, _Code); + + if (_Code != error_code()) + throw filesystem_error("create_directory(p): invalid argument"); + + return (_Ans); + } + +inline bool create_directory(const path& _Path, + error_code& _Code) noexcept + { + int _Ans = _Make_dir(_Path.c_str(), 0); + + _Code = error_code(); + if (_Ans < 0) + _Code = make_error_code(errc::operation_not_permitted); + return (0 < _Ans); + } + +inline bool create_directory(const path& _Path, const path& _Attrs) + { + error_code _Code; + bool _Ans = create_directory(_Path, _Attrs, _Code); + + if (_Code != error_code()) + throw filesystem_error("create_directory(p1, p2): invalid arguments"); + + return (_Ans); + } + +inline bool create_directory(const path& _Path, const path& _Attrs, + error_code& _Code) noexcept + { + int _Ans = _Make_dir(_Path.c_str(), _Attrs.c_str()); + + _Code = error_code(); + if (_Ans < 0) + _Code = make_error_code(errc::operation_not_permitted); + return (0 < _Ans); + } + +inline void create_directory_symlink(const path& _Oldpval, + const path& _Newpval) + { + error_code _Code; + create_directory_symlink(_Oldpval, _Newpval, _Code); + if (_Code != error_code()) + throw filesystem_error("create_directory_symlink(p1, p2): invalid arguments"); + + } + +inline void create_directory_symlink(const path& _Oldpval, + const path& _Newpval, + error_code& _Code) noexcept + { + int _Ans = _Symlink(_Oldpval.c_str(), _Newpval.c_str()); + + _Code = error_code(); + if (_Ans != 0) + _Code = error_code(_Ans, ::std:: system_category()); + } + +inline void create_hard_link(const path& _Oldpval, const path& _Newpval) + { + error_code _Code; + create_hard_link(_Oldpval, _Newpval, _Code); + if (_Code != error_code()) + throw filesystem_error("create_hard_link(p1, p2): invalid arguments"); + + } + +inline void create_hard_link(const path& _Oldpval, const path& _Newpval, + error_code& _Code) noexcept + { + int _Ans = _Link(_Oldpval.c_str(), _Newpval.c_str()); + + _Code = error_code(); + if (_Ans != 0) + _Code = error_code(_Ans, ::std:: system_category()); + } + +inline void create_symlink(const path& _Oldpval, const path& _Newpval) + { + error_code _Code; + create_symlink(_Oldpval, _Newpval, _Code); + if (_Code != error_code()) + throw filesystem_error("create_symlink(p1, p2): invalid arguments"); + + } + +inline void create_symlink(const path& _Oldpval, const path& _Newpval, + error_code& _Code) noexcept + { + int _Ans = _Symlink(_Oldpval.c_str(), _Newpval.c_str()); + + _Code = error_code(); + if (_Ans != 0) + _Code = error_code(_Ans, ::std:: system_category()); + } + +inline path current_path() + { + error_code _Code; + path _Ans = current_path(_Code); + if (_Code != error_code()) + throw filesystem_error("current_path(): can't get current working directory"); + + return (_Ans); + } + +inline path current_path( + error_code& _Code) + { + _Code = error_code(); + _Pchar _Dest[260]; + if (!_Current_get(_Dest)) + { + _Code = make_error_code(errc::operation_not_permitted); + return (path()); + } + return (path(_Dest)); + } + +inline void current_path(const path& _Path) + { + if (!_Current_set(_Path.c_str())) + throw filesystem_error("current_path(p): invalid argument"); + + } + +inline void current_path(const path& _Path, + error_code& _Code) noexcept + { + _Code = error_code(); + if (!_Current_set(_Path.c_str())) + _Code = make_error_code(errc::no_such_file_or_directory); + } + +inline bool equivalent(const path& _Path1, const path& _Path2) + { + error_code _Code; + int _Ans = equivalent(_Path1, _Path2, _Code); + + if (_Code != error_code()) + throw filesystem_error("equivalent(p1, p2): invalid arguments"); + + return (0 < _Ans); + } + +inline bool equivalent(const path& _Path1, const path& _Path2, + error_code& _Code) noexcept + { + int _Ans = _Equivalent(_Path1.c_str(), _Path2.c_str()); + + _Code = error_code(); + if (_Ans < 0) + _Code = make_error_code(errc::operation_not_permitted); + return (0 < _Ans); + } + +inline bool exists(file_status _Stat) noexcept + { + return (status_known(_Stat) + && _Stat.type() != _File_type::not_found); + } + +inline bool exists(const path& _Path) + { + return (exists(status(_Path))); + } + +inline bool exists(const path& _Path, + error_code& _Code) noexcept + { + _Code = error_code(); + return (exists(status(_Path))); + } + +inline uintmax_t file_size(const path& _Path) + { + error_code _Code; + uintmax_t _Ans = file_size(_Path, _Code); + if (_Code != error_code()) + throw filesystem_error("file_size(p): invalid argument"); + + return (_Ans); + } + +inline uintmax_t file_size(const path& _Path, + error_code& _Code) noexcept + { + uintmax_t _Ans = (uintmax_t)-1; + file_status _Stat = status(_Path); + + _Code = error_code(); + if (exists(_Stat) && is_regular_file(_Stat)) + _Ans = _File_size(_Path.c_str()); + if (_Ans == (uintmax_t)-1) + _Code = make_error_code(errc::operation_not_permitted); + return (_Ans); + } + +inline uintmax_t hard_link_count(const path& _Path) + { + error_code _Code; + uintmax_t _Ans = hard_link_count(_Path, _Code); + if (_Code != error_code()) + throw filesystem_error("hard_link_count(p): invalid argument"); + + return (_Ans); + } + +inline uintmax_t hard_link_count(const path& _Path, + error_code& _Code) noexcept + { + _Code = error_code(); + uintmax_t _Ans = _Hard_links(_Path.c_str()); + if (_Ans == (uintmax_t)-1) + _Code = make_error_code(errc::operation_not_permitted); + return (_Ans); + } + +inline bool is_block_file(file_status _Stat) noexcept + { + return (_Stat.type() == _File_type::block); + } + +inline bool is_block_file(const path& _Path) + { + return (is_block_file(status(_Path))); + } + +inline bool is_block_file(const path& _Path, + error_code& _Code) noexcept + { + return (is_block_file(status(_Path, _Code))); + } + +inline bool is_character_file(file_status _Stat) noexcept + { + return (_Stat.type() == _File_type::character); + } + +inline bool is_character_file(const path& _Path) + { + return (is_character_file(status(_Path))); + } + +inline bool is_character_file(const path& _Path, + error_code& _Code) noexcept + { + return (is_character_file(status(_Path, _Code))); + } + +inline bool is_directory(file_status _Stat) noexcept + { + return (_Stat.type() == _File_type::directory); + } + +inline bool is_directory(const path& _Path) + { + return (is_directory(status(_Path))); + } + +inline bool is_directory(const path& _Path, + error_code& _Code) noexcept + { + return (is_directory(status(_Path, _Code))); + } + +inline bool is_empty(const path& _Path) + { + error_code _Code; + bool _Ans = ::std:: experimental::filesystem::v1:: is_empty(_Path, _Code); + if (_Code != error_code()) + throw filesystem_error("is_empty(p): invalid argument"); + + return (_Ans); + } + +inline bool is_empty(const path& _Path, + error_code& _Code) noexcept + { + file_status _Stat = status(_Path); + + _Code = error_code(); + if (is_directory(_Stat)) + return (directory_iterator(_Path) + == directory_iterator()); + else + return (file_size(_Path, _Code) == 0); + } + +inline bool is_fifo(file_status _Stat) noexcept + { + return (_Stat.type() == _File_type::fifo); + } + +inline bool is_fifo(const path& _Path) + { + return (is_fifo(status(_Path))); + } + +inline bool is_fifo(const path& _Path, + error_code& _Code) noexcept + { + return (is_fifo(status(_Path, _Code))); + } + +inline bool is_other(file_status _Stat) noexcept + { + return (exists(_Stat) + && !is_regular_file(_Stat) + && !is_directory(_Stat) + && !is_symlink(_Stat)); + } + +inline bool is_other(const path& _Path) + { + return (is_other(status(_Path))); + } + +inline bool is_other(const path& _Path, + error_code& _Code) noexcept + { + return (is_other(status(_Path, _Code))); + } + +inline bool is_regular_file(file_status _Stat) noexcept + { + return (_Stat.type() == _File_type::regular); + } + +inline bool is_regular_file(const path& _Path) + { + return (is_regular_file(status(_Path))); + } + +inline bool is_regular_file(const path& _Path, + error_code& _Code) noexcept + { + return (is_regular_file(status(_Path, _Code))); + } + +inline bool is_socket(file_status _Stat) noexcept + { + return (_Stat.type() == _File_type::socket); + } + +inline bool is_socket(const path& _Path) + { + return (is_socket(status(_Path))); + } + +inline bool is_socket(const path& _Path, + error_code& _Code) noexcept + { + return (is_socket(status(_Path, _Code))); + } + +inline bool is_symlink(file_status _Stat) noexcept + { + return (_Stat.type() == _File_type::symlink); + } + +inline bool is_symlink(const path& _Path) + { + return (is_symlink(status(_Path))); + } + +inline bool is_symlink(const path& _Path, + error_code& _Code) noexcept + { + return (is_symlink(status(_Path, _Code))); + } + +inline file_time_type last_write_time(const path& _Path) + { + error_code _Code; + file_time_type _Ans = last_write_time(_Path, _Code); + if (_Code != error_code()) + throw filesystem_error("last_write_time(p): invalid argument"); + + return (_Ans); + } + +inline file_time_type last_write_time(const path& _Path, + error_code& _Code) noexcept + { + int64_t _Ticks = _Last_write_time(_Path.c_str()); + + _Code = error_code(); + if (_Ticks == -1) + { + _Code = make_error_code(errc::operation_not_permitted); + return ((file_time_type::min)()); + } + return (file_time_type(chrono::system_clock::duration(_Ticks))); + } + +inline void last_write_time(const path& _Path, file_time_type _Newtime) + { + error_code _Code; + last_write_time(_Path, _Newtime, _Code); + if (_Code != error_code()) + throw filesystem_error("last_write_time(p, new_time): invalid arguments"); + + } + +inline void last_write_time(const path& _Path, file_time_type _Newtime, + error_code& _Code) noexcept + { + _Code = error_code(); + if (_Set_last_write_time(_Path.c_str(), + _Newtime.time_since_epoch().count()) == 0) + _Code = make_error_code(errc::operation_not_permitted); + } + +inline void permissions(const path& _Path, _Perms _Mask) + { + error_code _Code; + permissions(_Path, _Mask, _Code); + if (_Code != error_code()) + throw filesystem_error("permissions(p, prms): can't set permissions"); + + } + +inline void permissions(const path& _Path, _Perms _Mask, + error_code& _Code) noexcept + { + _Perms _Todo = _Mask; + _Mask = (_Perms)(_Mask & perms::mask); + bool _Ok = true; + + _Code = error_code(); + if ((_Todo & perms::add_perms) == perms::none) + if ((_Todo & perms::remove_perms) == perms::none) + ; + else + _Mask = (_Perms)(status(_Path).permissions() & ~_Mask); + else + if ((_Todo & perms::remove_perms) == perms::none) + _Mask = (_Perms)(_Mask | status(_Path).permissions()); + else + _Ok = false; + if (!_Ok || _Chmod(_Path.c_str(), _Mask) != 0) + _Code = make_error_code(errc::operation_not_permitted); + } + +inline path read_symlink(const path& _Path) + { + error_code _Code; + path _Sympath = read_symlink(_Path, _Code); + if (_Code != error_code()) + throw filesystem_error("read_symlink(p): can't read symbolic link"); + + return (_Sympath); + } + +inline path read_symlink(const path& _Path, + error_code& _Code) + { + _Code = error_code(); + if (!is_symlink(_Path)) + { + _Code = make_error_code(errc::no_such_file_or_directory); + return (path()); + } + _Pchar _Dest[260]; + return (path(_Symlink_get(_Dest, _Path.c_str()))); + } + +inline bool remove(const path& _Path) + { + error_code _Code; + bool _Ans = remove(_Path, _Code); + + if (_Code != error_code()) + throw filesystem_error("remove(p): invalid argument"); + + return (_Ans); + } + +inline bool remove(const path& _Path, + error_code& _Code) noexcept + { + _Code = error_code(); + if (!exists(symlink_status(_Path))) + return (false); + else if (is_directory(_Path, _Code)) + if (_Remove_dir(_Path.c_str())) + return (true); + else + { + _Code = make_error_code(errc::operation_not_permitted); + return (false); + } + else + { + bool _Ans = _Unlink(_Path.c_str()) == 0; + if (!_Ans) + _Code = make_error_code(errc::operation_not_permitted); + return (_Ans); + } + } + +inline bool _Remove_all(const path& _Path, uintmax_t& _Ans, + error_code& _Code) noexcept + { + _Code = error_code(); + if (is_directory(_Path)) + { + typedef _Directory_iterator _Myit; + _Myit _Last; + + for (; ; ) + { + _Myit _First(_Path); + if (_First == _Last) + break; + if (!_Remove_all(_Path / _First->path(), _Ans, _Code)) + return (false); + } + if (_Remove_dir(_Path.c_str())) + return (true); + else + { + _Code = make_error_code(errc::operation_not_permitted); + return (false); + } + } + else if (!remove(_Path, _Code)) + return (false); + else + { + ++_Ans; + return (true); + } + } + +inline uintmax_t remove_all(const path& _Path) + { + error_code _Code; + uintmax_t _Ans = remove_all(_Path, _Code); + if (_Code != error_code()) + throw filesystem_error("remove_all(p): invalid argument"); + + return (_Ans); + } + +inline uintmax_t remove_all(const path& _Path, + error_code& _Code) noexcept + { + uintmax_t _Ans = 0; + _Remove_all(_Path, _Ans, _Code); + if (_Code) + return (static_cast(-1)); + return (_Ans); + } + +inline void rename(const path& _Oldpval, const path& _Newpval) + { + error_code _Code; + rename(_Oldpval, _Newpval, _Code); + if (_Code != error_code()) + throw filesystem_error("rename(p1, p2): invalid arguments"); + + } + +inline void rename(const path& _Oldpval, const path& _Newpval, + error_code& _Code) noexcept + { + _Code = error_code(); + + if (!exists(_Oldpval)) + { + _Code = make_error_code(errc::operation_not_permitted); + return; + } + + if (exists(_Newpval)) + { + if (equivalent(_Oldpval, _Newpval, _Code) || _Code != error_code()) + return; + + if (!remove(_Newpval, _Code)) + return; + } + + if (_Rename(_Oldpval.c_str(), _Newpval.c_str()) != 0) + _Code = make_error_code(errc::operation_not_permitted); + } + +inline void resize_file(const path& _Path, uintmax_t _Newsize) + { + error_code _Code; + resize_file(_Path, _Newsize, _Code); + if (_Code != error_code()) + throw filesystem_error("resize_file(p, n): invalid arguments"); + + }; + +inline void resize_file(const path& _Path, uintmax_t _Newsize, + error_code& _Code) noexcept + { + int _Errno = _Resize(_Path.c_str(), _Newsize); + + _Code = error_code(); + if (_Errno != 0) + _Code = error_code(_Errno, ::std:: system_category()); + } + +inline space_info space(const path& _Path) + { + return (_Statvfs(_Path.c_str())); + } + +inline space_info space(const path& _Path, + error_code& _Code) noexcept + { + _Code = error_code(); + return (_Statvfs(_Path.c_str())); + } + +inline file_status status(const path& _Path) + { + error_code _Code; + return (status(_Path, _Code)); + } + +inline file_status status(const path& _Path, + error_code& _Code) noexcept + { + _Code = error_code(); + _Perms _Mode; + _File_type _Ftype = _Stat(_Path.c_str(), &_Mode); + return (file_status(_Ftype, _Mode)); + } + +inline bool status_known(file_status _Stat) noexcept + { + return (_Stat.type() != _File_type::unknown); + } + +inline file_status symlink_status(const path& _Path) + { + error_code _Code; + return (symlink_status(_Path, _Code)); + } + +inline file_status symlink_status(const path& _Path, + error_code& _Code) noexcept + { + _Perms _Mode; + _File_type _Ftype = _Lstat(_Path.c_str(), &_Mode); + + _Code = error_code(); + return (file_status(_Ftype, _Mode)); + } + +inline path system_complete(const path& _Path) + { + if (_Path.is_absolute()) + return (_Path); + path _Curpath = current_path(); + if (!_Path.has_root_name() || _Path.root_name() == _Curpath.root_name()) + return (absolute(_Path)); + current_path(_Path.root_name()); + path _Altpath = current_path(); + current_path(_Curpath); + return (_Altpath / _Path.relative_path()); + } + +inline path system_complete(const path& _Path, + error_code& _Code) + { + _Code = error_code(); + + path _Ans; + + try { + _Ans = system_complete(_Path); + } catch (...) { + _Code = make_error_code(errc::operation_not_permitted); + return (path()); + } + + return (_Ans); + } + +inline path temp_directory_path() + { + error_code _Code; + path _Ans = temp_directory_path(_Code); + if (_Code != error_code()) + throw filesystem_error("temp_directory_path(): can't find temp directory"); + + return (_Ans); + } + +inline path temp_directory_path( + error_code& _Code) + { + _Pchar _Dest[260]; + _Temp_get(_Dest); + path _Ans(_Dest); + + _Code = error_code(); + if (!exists(_Ans) || !is_directory(_Ans)) + { + _Code = make_error_code(errc::no_such_file_or_directory); + return (path()); + } + return (_Ans); + } + } + } +} + +namespace tr2 { + namespace sys { +using namespace ::std:: experimental::filesystem::v1; + } +} +} + +#pragma warning(pop) +#pragma pack(pop) +# 14 "../LEngine\\ObjMeshLoader.h" 2 + + + +using namespace lm; + + +struct ObjVertex { + int32_t vid; + int32_t tid; + int32_t nid; +}; + +struct ObjFace { + int32_t sid; + int32_t mid; + std::array vertices; +}; + +class ObjGroup { +public: + ObjGroup(std::string objName) + :name(objName), smoothGroupsEnabled(true), activeSmoothGroup(0) + { + + } + void AddFace(int32_t matId, const ObjVertex& v0, const ObjVertex& v1, const ObjVertex& v2) { + ObjFace f; + f.vertices[0] = v0; + f.vertices[1] = v1; + f.vertices[2] = v2; + f.mid = matId; + f.sid = activeSmoothGroup; + faces.push_back(f); + + if (std::find(materials.begin(), materials.end(), matId) == materials.end()) { + materials.push_back(matId); + } + } + std::vector materials; + std::string name; + std::vector faces; + int32_t activeSmoothGroup; + bool smoothGroupsEnabled; +}; + +class ObjMeshLoader { +public: + friend class ObjGroup; + ObjMeshLoader() : _activeMatId(-1){ + + } + + std::string read_file(std::wstring path) + { + FILE* file = nullptr; + auto err = _wfopen_s(&file, path.c_str(), L"rb"); + + fseek(file, 0, 2); + auto file_size = ftell(file); + + std::string str; + str.resize(file_size); + fseek(file, 0, 0); + + auto done = fread_s(&str[0], file_size, 1, file_size, file); + fclose(file); + return str; + } + std::vector Load(const std::wstring& path) { + std::vector result; + + + + + + auto str = read_file(path); + + + std::stringstream buffer(str); + std::vector line_buffer; + line_buffer.resize(8192); + + + std::string previous_line; + std::string line; + + while (std::getline(buffer, line)) { + + + if (line.size() < 3) { + continue; + } + switch(line[0]){ + case 'v': + switch (line[1]) { + case ' ': { + float3 v; + sscanf_s(&line[2], "%f%f%f", &v.x, &v.y, &v.z); + _vertices.push_back(v); + break; + } + case 'n': { + float3 n; + sscanf_s(&line[2], "%f%f%f", &n.x, &n.y, &n.z); + _normals.push_back(n); + break; + } + case 't': + float3 t; + sscanf_s(&line[2], "%f%f%f", &t.x, &t.y, &t.z); + _texcoords.push_back(t); + break; + } + break; + case 'f': { + bool is_open = false; + size_t start = 2; + int slash_pos_0 = 0; + int slash_pos_1 = 0; + + if(line[line.size() - 1] == '\r') + { + line[line.size() - 1] = ' '; + }else + { + line += " "; + } + + std::vector fVertices; + for (size_t i = 2; i < line.size(); ++i) { + if (line[i] == ' ') { + if (is_open) { + is_open = false; + ObjVertex v; + if (slash_pos_0 == -1) { + auto pos2 = (int)buffer.tellg(); + sscanf_s(&line[start], "%d", &v.vid); + v.tid = v.nid = -1; + } else if (slash_pos_1 == -1) { + sscanf_s(&line[start], "%d/%d", &v.vid, &v.tid); + v.nid = -1; + } else { + if (slash_pos_1 - slash_pos_0 == 1) { + sscanf_s(&line[start], "%d//%d", &v.vid, &v.nid); + v.tid = -1; + } else { + sscanf_s(&line[start], "%d/%d/%d", &v.vid, &v.tid, &v.nid); + } + } + fVertices.push_back(v); + } + } else { + if (!is_open) { + start = i; + slash_pos_0 = -1; + slash_pos_1 = -1; + is_open = true; + } else { + if (line[i] == '/') { + if (slash_pos_0 == -1) { + slash_pos_0 = i; + } else { + slash_pos_1 = i; + } + } + } + } + + + } + + + if (fVertices.size() == 3) { + _groups[_groups.size() - 1].AddFace(_activeMatId, fVertices[0], fVertices[1], fVertices[2]); + } else if (fVertices.size() == 4) { + _groups[_groups.size() - 1].AddFace(_activeMatId, fVertices[0], fVertices[1], fVertices[2]); + _groups[_groups.size() - 1].AddFace(_activeMatId, fVertices[0], fVertices[2], fVertices[3]); + } + break; + } + case 'g': { + auto name = line.substr(2); + _groups.push_back(ObjGroup(name)); + break; + } + case 's': + if (line.find("off") != std::string::npos) { + _groups[_groups.size() - 1].smoothGroupsEnabled = false; + } else { + sscanf_s(&line[2], "%d", &_groups[_groups.size() - 1].activeSmoothGroup); + } + break; + case 'm': { + std::stringstream ss(line); + std::string key, value; + ss >> key; + ss >> value; + _mtlLibName = value; + std::cout << "Found material library: " << value << std::endl; + break; + } + case 'u': { + std::stringstream ss(line); + std::string key, value; + ss >> key; + ss >> value; + SetActiveMaterial(value); + break; + } + } + + previous_line = line; + } + + + auto mtllib_path = obj_to_mtl_path(path); + + _mats = load_mtllib(mtllib_path); + + for (auto& group : _groups) { + result.push_back(UnpackGroup(group)); + } + return result; + } +private: + std::vector _mats; + std::wstring obj_to_mtl_path(const std::wstring& obj_path){ + std::tr2::sys::path src(obj_path); + auto dst = src.parent_path(); + return dst.append(_mtlLibName).wstring(); + } + + std::vector load_mtllib(const std::wstring& path){ + std::vector result; + + auto text = std::ifstream(path); + + std::string line; + auto default_shader = Shader::Create(L"shaders/default.fx"); + + MaterialPtr active_material; + while(std::getline(text, line)) + { + if(line[0] == '#' || line.empty()){ + continue; + } + + std::string word; + std::stringstream ls(line); + ls >> word; + + if (word == "newmtl") { + std::string mat_name; + ls >> mat_name; + if(active_material != nullptr) + { + result.push_back(active_material); + } + active_material = Material::Create(default_shader, mat_name); + + } else { + if (active_material == nullptr) { + continue; + } else { + if(word == "Kd") + { + std::vector color; + float tmp = 0.0f; + while(ls >> tmp) + { + color.push_back(tmp); + } + + if(color.size() == 3) + { + active_material->GetParametersBlock().SetValue(Material::DiffuseColorName(), float4(color[0], color[1], color[2], 1.0f)); + } + } + } + } + } + + if (active_material != nullptr) { + result.push_back(active_material); + } + + return result; + + } + + typedef std::tuple VertexPair; + GameObjectPtr UnpackGroup(const ObjGroup& group) { + std::vector> facesTable; + facesTable.resize(_vertices.size()); + std::vector vertices; + std::map> submeshes; + + + EmitGeometrySimple(group, vertices, submeshes); + + auto mesh = Mesh::Create(); + mesh->SetSubmeshCount(group.materials.size()); + mesh->SetVertices(vertices); + + + + int id = 0; + for(auto& p : submeshes) + { + mesh->SetIndices(p.second, MeshTopology::TriangleList, id); + id++; + } + + auto obj = GameObject::create(); + obj->AddComponent()->SetMesh(mesh); + + + + for (size_t i = 0; i < group.materials.size(); ++i){ + auto mat_id = group.materials[i]; + + obj->GetComponent()->SetMaterial(_mats[mat_id], i); + } + + mesh->RecalculateBounds(); + return obj; + } +# 352 "../LEngine\\ObjMeshLoader.h" + void EmitGeometry(const ObjGroup& group, std::vector& vertices, std::map>& submeshes) { + auto vComp = [](ObjVertex v1, ObjVertex v2) { + return (v1.vid == v2.vid) && (v1.tid == v2.tid) && (v1.nid && v2.nid); + }; + + std::vector tmpVertices; + + for (auto& f : group.faces) { + for (auto& v : f.vertices) { + int id = -1; + for (size_t i = 0; i < tmpVertices.size(); ++i) { + if (vComp(tmpVertices[i], v)) { + id = i; + break; + } + } + + if (id == -1) { + id = tmpVertices.size(); + tmpVertices.push_back(v); + Vertex vertex; + vertex.position = float4(_vertices[v.vid - 1], 1.0f); + vertex.normal = _normals[v.nid - 1]; + vertex.uv0 = _texcoords[v.tid - 1].xy; + vertices.push_back(vertex); + } + + submeshes[f.mid].push_back(id); + } + } + } + + void EmitGeometrySimple(const ObjGroup& group, std::vector& vertices, std::map>& submeshes) { + int id = 0; + for (auto& f : group.faces) { + for (auto& v : f.vertices) { + Vertex vertex; + vertex.position = float4(_vertices[v.vid - 1], 1.0f); + vertex.normal = _normals[v.nid - 1]; + vertex.uv0 = _texcoords[v.tid - 1].xy; + vertices.push_back(vertex); + submeshes[f.mid].push_back(id); + ++id; + } + } + } + + void SetActiveMaterial(const std::string& name) { + for (size_t i = 0; i < _materials.size(); ++i) { + if (_materials[i] == name) { + _activeMatId = i; + return; + } + } + _activeMatId = _materials.size(); + _materials.push_back(name); + } + int _activeMatId; + std::string _mtlLibName; + std::vector _vertices; + std::vector _normals; + std::vector _texcoords; + std::vector _materials; + std::vector _groups; +}; +# 14 "D:/lengine/LEditor/LEditor.cpp" 2 + +# 1 "D:/lengine/LEditor/FreeCameraController.h" 1 + + + + +# 1 "D:/github/lframework\\lframework/Input.h" 1 + + + + + + +# 1 "D:/github/lframework/lframework/Mouse.h" 1 + + + + + +# 1 "D:/github/lframework/lframework/KeysStateManager.h" 1 + + + +template +class KeysStateManager { +public: + friend Owner; + KeysStateManager() + { + for (uint32_t i = 0; i < Count; ++i) { + _key_states[i] = _key_pressed[i] = _key_released[i] = _key_states_previous[i] = false; + } + } + void strobe(); +private: + bool _key_states[Count]; + bool _key_states_previous[Count]; + bool _key_pressed[Count]; + bool _key_released[Count]; +}; + +template +void KeysStateManager::strobe(){ + + + for (uint32_t i = 0; i < Count; ++i) { + if (_key_states[i]) { + if (_key_states_previous[i]) { + _key_pressed[i] = false; + } else { + _key_pressed[i] = true; + } + } else { + _key_pressed[i] = false; + } + if (!_key_states[i]) { + if (_key_states_previous[i]) { + _key_released[i] = true; + } else { + _key_released[i] = false; + } + } else { + _key_released[i] = false; + } + _key_states_previous[i] = _key_states[i]; + } +} +# 6 "D:/github/lframework/lframework/Mouse.h" 2 + + + +class Mouse { +public: + static constexpr uint32_t maxButtonsCount = 5; + friend class Input; + Mouse(HANDLE handle); + HANDLE GetHandle() const; + bool GetKeyState(uint32_t key_index) const; + bool GetKeyPressed(uint32_t key_index) const; + bool GetKeyReleased(uint32_t key_index) const; + int32_t GetDx() const; + int32_t GetDy() const; +private: + void Strobe(); + void ApplyInput(RAWINPUT input); + LONG _deltax_integral; + LONG _deltay_integral; + LONG _deltax; + LONG _deltay; + KeysStateManager _keys_manager; + HANDLE _handle; + std::wstring _name; + uint32_t _buttons_count; + bool _has_horizontal_wheel; +}; +# 7 "D:/github/lframework\\lframework/Input.h" 2 + +# 1 "D:/github/lframework/lframework/Keyboard.h" 1 + + + + + + + + +class Keyboard { +public: + friend class Input; + Keyboard(HANDLE hdevice); + + HANDLE GetHandle() const; + bool GetKeyState(uint32_t key_index) const; + bool GetKeyPressed(uint32_t key_index) const; + bool GetKeyReleased(uint32_t key_index) const; +private: + void Strobe(); + void ApplyInput(RAWINPUT input); + HANDLE _hdevice; + std::wstring _name; + uint32_t _function_keys_count; + uint32_t _keys_count; + uint32_t _indicators_count; + + KeysStateManager<0xff, Keyboard> _keys_manager; +}; +# 8 "D:/github/lframework\\lframework/Input.h" 2 + + +class Input { +public: + Input(); + static std::shared_ptr Instance(); + const std::vector>& mice() const; + const std::vector>& keyboards() const; + void strobe(); +private: + void enumerate_devices(); + ATOM register_input_window_class(HINSTANCE hinstance); + static LRESULT __stdcall wnd_proc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); + HWND _input_window; + const TCHAR* _class_name = L"RawInputWindow"; + std::vector> _mice; + std::vector> _keyboards; +}; +# 5 "D:/lengine/LEditor/FreeCameraController.h" 2 + + + + + +class FreeCameraController;static ObjectFactory FreeCameraController_factory;class FreeCameraController : public Component {public:static std::wstring type_name() {return L"FreeCameraController";}std::wstring get_type_name() const override{ return L"FreeCameraController";}static std::shared_ptr create() { auto result = std::shared_ptr(new FreeCameraController()); result->Register(); result->construct(); return result;} +public: + float mouse_speed; + float move_speed = 3.0f; + static constexpr float pi = 3.14159265358979f; + + FreeCameraController() : mouse_speed(0.01f){ + _angle_x = _angle_y = 0.0f; + } + + virtual void tick(float deltaTime) override { + auto mice = Input::Instance()->mice(); + auto mouse = mice[1]; + _angle_x += mouse_speed * mouse->GetDx(); + _angle_y += mouse_speed * mouse->GetDy(); + + _angle_y = clamp(_angle_y, -pi / 2.0f, pi / 2.0f); + + auto rv = Quaternion_f::angle_axis(_angle_y, float3(1, 0, 0)); + auto rh = Quaternion_f::angle_axis(_angle_x, float3(0, 1, 0)); +# 38 "D:/lengine/LEditor/FreeCameraController.h" + gameObject->transform->SetLocalRotation(lm::mul(rh, rv)); + + + + auto keyboards = Input::Instance()->keyboards(); + auto keyboard = keyboards[2]; + + if(keyboard->GetKeyState(0x57)){ + gameObject->transform->SetLocalPosition(gameObject->transform->GetLocalPosition() + gameObject->transform->forward() * (deltaTime * move_speed)); + } + + if (keyboard->GetKeyState(0x53)) { + gameObject->transform->SetLocalPosition(gameObject->transform->GetLocalPosition() - gameObject->transform->forward() * (deltaTime * move_speed)); + } + + if (keyboard->GetKeyState(0x41)) { + gameObject->transform->SetLocalPosition(gameObject->transform->GetLocalPosition() - gameObject->transform->right() * (deltaTime * move_speed)); + } + + if (keyboard->GetKeyState(0x44)) { + gameObject->transform->SetLocalPosition(gameObject->transform->GetLocalPosition() + gameObject->transform->right() * (deltaTime * move_speed)); + } + + + } +private: + float _angle_x; + float _angle_y; +}; +# 15 "D:/lengine/LEditor/LEditor.cpp" 2 + + + +# 1 "D:/lengine/LEditor/BoundsView.h" 1 + + + + + +class BoundsView;static ObjectFactory BoundsView_factory;class BoundsView : public Component {public:static std::wstring type_name() {return L"BoundsView";}std::wstring get_type_name() const override{ return L"BoundsView";}static std::shared_ptr create() { auto result = std::shared_ptr(new BoundsView()); result->Register(); result->construct(); return result;} +public: + void tick(float deltaTime) override { + LEngine::Instance()->GetActiveScene()->GetGizmos().SetMatrix(transform()->GetGlobalTransform()); + LEngine::Instance()->GetActiveScene()->GetGizmos().DrawBounds(gameObject->GetComponent()->GetMesh()->GetBounds()); + } +}; +# 18 "D:/lengine/LEditor/LEditor.cpp" 2 + + +# 1 "../LEngine\\AssetDatabase.h" 1 + + + + + + + +# 1 "../LEngine/AssetMetadata.h" 1 + + + + + + + +# 1 "../LEngine/AssetImporter.h" 1 + + + + + + + +class AssetImporter { +public: + virtual void import(std::wstring asset_path) = 0; + virtual bool can_import(const std::wstring& path) const = 0; + virtual bool set_parameters(std::wstring params) = 0; + virtual std::wstring get_parameters() const = 0; + virtual std::wstring name() = 0; +}; +# 8 "../LEngine/AssetMetadata.h" 2 + + +class AssetMetadata { +public: + typedef uint64_t file_time_t; + const std::wstring version = L"1.0"; + + AssetMetadata(const std::wstring& asset_path); + void Save(); + void Load(); + static std::wstring guid_to_str(const Guid& guid); + static Guid str_to_guid(const std::wstring& guid); + const Guid& get_guid() const; +private: + std::shared_ptr _importer; + void create(); + std::wstring _asset_path; + std::wstring _meta_path; + file_time_t _modification_time; + Guid _guid; +}; +# 8 "../LEngine\\AssetDatabase.h" 2 + + +# 1 "../LEngine/AssetFile.h" 1 + + + +# 1 "../LEngine/InputArchive.h" 1 +# 12 "../LEngine/InputArchive.h" +class InputArchive : public Archive { +public: + InputArchive(std::shared_ptr stream) + :_stream(stream) { + } + + virtual bool is_loading() const override { + return true; + } + + virtual void serialize(void* data, size_t size) override { + + _stream->read(reinterpret_cast(data), size); + if(!_stream) + { + + } + } + + size_type get_offset() const override + { + return _stream->tellg(); + } + + void set_offset(size_type offset) override { + _stream->seekg(offset, std::ios::beg); + } + + ~InputArchive() {} + + std::shared_ptr GetStream(){ + return _stream; + } +private: + std::shared_ptr _stream; +}; +# 4 "../LEngine/AssetFile.h" 2 + + + + + + + +namespace fs = std::experimental::filesystem::v1; + +class AssetObjectDescriptor : public Object { +public: + uint64_t localId; + int64_t offset; + uint64_t length; + AssetObjectDescriptor():localId(0), offset(0), length(0) + { + + } + AssetObjectDescriptor(uint64_t _localId, int64_t _offset, uint64_t _length):localId(_localId), offset(_offset), length(_length){ + + } + virtual void serialize(Archive& archive) override { + archive << localId << offset << length; + } + virtual std::wstring get_type_name() const override { + return L"AssetObjectDescriptor"; + } +}; + +class AssetObjectsTable : public Object{ +public: + uint64_t lastId; + std::vector objects; + + AssetObjectsTable():lastId(0) + { + + } + + bool GetFileDescriptor(uint64_t localId, AssetObjectDescriptor& desc){ + for (auto& o : objects) { + if (o.localId == localId) { + desc = o; + return true; + } + } + return false; + } + + bool Contains(uint64_t localId) const { + for (auto& o : objects) { + if (o.localId == localId) { + return true; + } + } + return false; + } + + virtual void serialize(Archive& archive) override { + archive << lastId; + if(archive.is_loading()){ + uint64_t objectsCount = 0; + archive << objectsCount; + objects.clear(); + for(uint64_t i = 0; i < objectsCount; ++i){ + AssetObjectDescriptor d; + d.serialize(archive); + objects.push_back(d); + } + }else{ + uint64_t objectsCount = objects.size(); + archive << objectsCount; + for (auto& o : objects){ + o.serialize(archive); + } + } + } + virtual std::wstring get_type_name() const override { + return L"AssetObjectsTable"; + } +}; + +inline std::shared_ptr CreateMemoryOutArchive(){ + return std::make_shared(std::make_shared(std::ios::in | std::ios::out | std::ios::binary)); +} + +class AssetFile { +public: + typedef uint64_t table_offset_t; + AssetObjectsTable objectsTable; + std::shared_ptr input; + std::shared_ptr output; + std::shared_ptr stream; + + AssetFile(Guid fileGuid, const std::wstring& path):_fileGuid(fileGuid), _path(path){ + OpenFile(false); + + if(stream->is_open()){ + stream->seekg(0, std::ios::end); + if((int)stream->tellg() == 0){ + std::cout << "Empty asset created!" << std::endl; + SaveFooter(); + } + ReadFooter(); + } + + } + + void OpenFile(bool trunc){ + input = nullptr; + output = nullptr; + stream = std::make_shared(_path, (trunc ? std::ios::trunc : std::ios::app) | std::ios::in | std::ios::out | std::ios::binary); + if (stream->is_open()) { + input = std::make_shared(stream); + output = std::make_shared(stream); + } + } + + void CloseFile() + { + input = nullptr; + output = nullptr; + if(stream != nullptr && stream->is_open()){ + stream->close(); + } + stream = nullptr; + } + + void Save(){ + auto tmpOut = CreateMemoryOutArchive(); + + int64_t objectOffset = 0; + for(auto& v : objectsTable.objects){ + auto object = Object::Find(AssetFileLink(_fileGuid, v.localId)); + + v.offset = objectOffset; + + auto startOffset = objectOffset = tmpOut->GetStream()->tellp(); + + if(object != nullptr){ + (*tmpOut) << object->get_type_name(); + object->serialize(*tmpOut); + }else{ + stream->seekg(v.offset, std::ios::beg); + std::vector objectBytes(v.length); + stream->read((char*)&objectBytes[0], objectBytes.size()); + tmpOut->GetStream()->write((char*)&objectBytes[0], objectBytes.size()); + } + objectOffset = tmpOut->GetStream()->tellp(); + v.length = objectOffset - startOffset; + } + + CloseFile(); + OpenFile(true); + + auto content = std::static_pointer_cast(tmpOut->GetStream())->str(); + stream->write(&content[0], content.size()); + stream->seekg(0, std::ios::end); + + SaveFooter(); + } + + bool SeekToFile(uint64_t fileId) { + AssetObjectDescriptor desc; + if (objectsTable.GetFileDescriptor(fileId, desc)) { + if (desc.offset >= 0) { + stream->seekg(desc.offset, std::ios::beg); + return true; + } + } + return false; + } + + void ReadFooter() + { + std::cout << "Read footer" << std::endl; + + auto off = -((std::streamoff)sizeof(table_offset_t)); + stream->seekg(off, std::ios::end); + table_offset_t offset = 0; + (*input) << offset; + + auto table_file_offset = off - (std::streamoff)offset; + stream->seekg(table_file_offset, std::ios::end); + objectsTable.serialize(*input); + } + + void SaveFooter(){ + std::cout << "Save footer" << std::endl; + stream->seekg(0, std::ios::end); + auto tmpArchive = CreateMemoryOutArchive(); + objectsTable.serialize(*tmpArchive); + auto data = std::static_pointer_cast(tmpArchive->GetStream())->str(); + table_offset_t size = data.size(); + stream->write(&data[0], size); + (*output) << size; + + output->flush(); + } + + void AddObject(std::shared_ptr obj){ + if (obj->GetFileLink().IsValid()) { + if (obj->GetFileLink().fileGuid == _fileGuid) { + std::wcout << "Object " << obj->get_name() << " is already in current asset. Can't add twice" << std::endl; + } else { + std::wcout << "Object " << obj->get_name() << " is already in another asset. Can't add." << std::endl; + } + } else { + obj->SetLink(AssetFileLink(_fileGuid, objectsTable.lastId++)); + objectsTable.objects.push_back(AssetObjectDescriptor(obj->GetFileLink().localId, 0, 0)); + } + } + const Guid& guid() const + { + return _fileGuid; + } +private: + Guid _fileGuid; + std::wstring _path; +}; +# 10 "../LEngine\\AssetDatabase.h" 2 + + + +class AssetDatabase{ +public: + static AssetDatabase& get() { + static AssetDatabase instance; + return instance; + } + static std::wstring asset_to_meta_path(const std::wstring& asset_path); + Guid file_to_guid(const std::wstring& path) const; + std::shared_ptr open_asset_file(const std::wstring& path); + void set_root_path(const std::wstring& path); + static void register_importer(std::shared_ptr importer); + std::shared_ptr find_importer(const std::wstring& asset_path) const; + + std::shared_ptr LoadReference(const AssetFileLink& link); + std::shared_ptr OpenArchive(Guid guid); + std::shared_ptr LoadObject(AssetFileLink link); + + std::vector> load_all_objects(std::shared_ptr asset); +private: + std::vector> open_archives; + AssetDatabase(); + std::vector> _importers; +}; +# 20 "D:/lengine/LEditor/LEditor.cpp" 2 + + + + + + + + +#pragma comment(lib, "lframework.lib") + +GameObjectPtr CreateCube() { + auto cubeObject = GameObject::create(); + cubeObject->AddComponent()->SetMesh(Mesh::Create([](MeshPtr mesh) {MeshGenerator::Cube(mesh, true); })); + return cubeObject; +} + +struct TestObject : public Object { + uint8_t uint8_t_; + uint16_t uint16_t_; + uint32_t uint32_t_; + uint64_t uint64_t_; + std::string string_; + std::wstring wstring_; + + std::shared_ptr next; + + virtual void serialize(Archive& archive) override { + archive << uint8_t_ << uint16_t_ << uint32_t_; + archive << uint64_t_ << string_ << wstring_; + archive << std::static_pointer_cast(next); + } +}; + +void SaveScene(const std::wstring& path){ + AssetDatabase::get().open_asset_file(path); + + AssetFile asset(Guid(1, 2, 3, 4), path); + + + auto scene_objects = Object::FindObjectsOfType(); + + + for(auto obj : scene_objects){ + asset.AddObject(obj); + auto components = obj->GetComponents(); + for (auto component : components) { + asset.AddObject(component); + } + } + + asset.Save(); +} + +void CreateTestScene(){ + auto cameraGo = GameObject::create(); + cameraGo->SetName(L"Main camera"); + cameraGo->AddComponent()->fov = 45.0f; + cameraGo->transform->SetLocalPosition(float3(0, 4, -4)); + cameraGo->AddComponent(); +} + +void LoadScene(const std::wstring& path){ + auto archive = AssetDatabase::get().open_asset_file(path); +} + + +int __stdcall wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { + AllocConsole(); + freopen("CONOUT$", "w", (__acrt_iob_func(1))); + + auto ints = Input::Instance(); + AssetDatabase::get().set_root_path(L"D:\\lengine\\Assets"); + + auto editorWindow = UiSwapChainWindow::Create(L"LEngineEditorWindow"); + auto engine = LEngine::Instance(); + engine->Init(L"D:/lengine/LEngine/"); + engine->LoadScene(""); + + std::wstring scene = L"TestScene.asset"; + + CreateTestScene(); + + + + + auto outputs = engine->GetRenderer()->EnumOutputs(); + auto modes = engine->GetRenderer()->GetDisplayModes(DXGI_FORMAT_B8G8R8A8_UNORM, outputs[0]); + + editorWindow->size = UiSize(640, 480); + + + auto output = std::make_shared(engine->GetRenderer(), editorWindow->GetWindow()->GetHwnd(), 640, 480, false); + engine->AddOutput(output); + + auto sceneRenderer = std::make_shared(); + + ObjMeshLoader loader; + auto ob = loader.Load(L"D:\\lengine\\Assets\\Boxes.obj"); + + + auto mat = Material::Create(Shader::Create(L"shaders/shader.fx"), ""); + auto tex = AssetManager::Instance()->LoadTexture(L"textures/1_store.dds"); + mat->GetParametersBlock().SetTexture("diffuse", tex); + + + for(auto o : ob) + { + o->GetComponent()->SetMaterial(mat, 0); + } + + + + + + + + auto cameras = Object::FindObjectsOfType(); + + auto cameraGo = cameras[0]->gameObject; + + cameraGo->transform->SetLocalPosition(float3(0, 0, -4)); + + typedef std::chrono::high_resolution_clock clock; + + auto last_time = clock::now(); + float delta_time = 0.0f; + while (true) { + auto now_time = clock::now(); + delta_time = (float)((double)std::chrono::duration_cast(now_time - last_time).count() / 1000000.0); + last_time = now_time; + std::chrono::high_resolution_clock::now(); + LEngine::Instance()->GetActiveScene()->tick(delta_time); + sceneRenderer->RenderScene(engine->GetRenderer(), engine->GetActiveScene(), cameraGo->GetComponent(), output); + editorWindow->Update(1); + Input::Instance()->strobe(); + + } + + return 0; +} diff --git a/LEditor/LEditor.ico b/LEditor/LEditor.ico new file mode 100644 index 0000000..d323b07 Binary files /dev/null and b/LEditor/LEditor.ico differ diff --git a/LEditor/LEditor.rc b/LEditor/LEditor.rc new file mode 100644 index 0000000..3fb49db Binary files /dev/null and b/LEditor/LEditor.rc differ diff --git a/LEditor/LEditor.vcxproj b/LEditor/LEditor.vcxproj new file mode 100644 index 0000000..6dde403 --- /dev/null +++ b/LEditor/LEditor.vcxproj @@ -0,0 +1,105 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {B7F1D57A-B85B-46CC-80F5-14DE9E2C69DA} + Win32Proj + LEditor + 10.0.14393.0 + + + + Application + true + v141 + Unicode + + + Application + false + v141 + true + Unicode + + + + + + + + + + + + + + + true + + + false + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + ../LEngine;../../nativelinq/nativelinq/nativelinq;D:\directui\DirectUI;D:\github\lframework;%(AdditionalIncludeDirectories);D:\lmath\lmath;D:\github\lframework\lframework + MultiThreadedDebug + + + Windows + true + ../Debug;D:\directui\Debug;D:\github\lframework\Debug;D:\DirectXTex\DirectXTex\Bin\Desktop_2015_Win10\Win32\Debug + DXGUID.LIB;DXGI.lib;DirectXTex.lib;DirectUI.lib;d3d11.lib;d3d12.lib;LEngine.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + ../LEngine;../../nativelinq/nativelinq/nativelinq;D:\directui\DirectUI;%(AdditionalIncludeDirectories);D:\lmath\lmath;D:\github\lframework\lframework + + + Windows + true + true + true + ../Release;../../NettleCode/DirectUI/Release;%(AdditionalIncludeDirectories) + DirectUI.lib;d3d12.lib;LEngine.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LEditor/Resource.h b/LEditor/Resource.h new file mode 100644 index 0000000..6ef7de8 --- /dev/null +++ b/LEditor/Resource.h @@ -0,0 +1,31 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by LEditor.rc +// + +#define IDS_APP_TITLE 103 + +#define IDR_MAINFRAME 128 +#define IDD_LEDITOR_DIALOG 102 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDI_LEDITOR 107 +#define IDI_SMALL 108 +#define IDC_LEDITOR 109 +#define IDC_MYICON 2 +#ifndef IDC_STATIC +#define IDC_STATIC -1 +#endif +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS + +#define _APS_NO_MFC 130 +#define _APS_NEXT_RESOURCE_VALUE 129 +#define _APS_NEXT_COMMAND_VALUE 32771 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 110 +#endif +#endif diff --git a/LEditor/small.ico b/LEditor/small.ico new file mode 100644 index 0000000..d323b07 Binary files /dev/null and b/LEditor/small.ico differ diff --git a/LEngine.sln b/LEngine.sln new file mode 100644 index 0000000..1fdffa1 --- /dev/null +++ b/LEngine.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.23107.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LEngine", "LEngine\LEngine.vcxproj", "{91440EE0-7471-4D73-A6FD-3DCB64E56C13}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LEditor", "LEditor\LEditor.vcxproj", "{B7F1D57A-B85B-46CC-80F5-14DE9E2C69DA}" + ProjectSection(ProjectDependencies) = postProject + {91440EE0-7471-4D73-A6FD-3DCB64E56C13} = {91440EE0-7471-4D73-A6FD-3DCB64E56C13} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LEnginePlayer", "LEnginePlayer\LEnginePlayer.vcxproj", "{845A038A-8163-4851-95E1-78EFFD5F0AAF}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {91440EE0-7471-4D73-A6FD-3DCB64E56C13}.Debug|x86.ActiveCfg = Debug|Win32 + {91440EE0-7471-4D73-A6FD-3DCB64E56C13}.Debug|x86.Build.0 = Debug|Win32 + {91440EE0-7471-4D73-A6FD-3DCB64E56C13}.Release|x86.ActiveCfg = Release|Win32 + {91440EE0-7471-4D73-A6FD-3DCB64E56C13}.Release|x86.Build.0 = Release|Win32 + {B7F1D57A-B85B-46CC-80F5-14DE9E2C69DA}.Debug|x86.ActiveCfg = Debug|Win32 + {B7F1D57A-B85B-46CC-80F5-14DE9E2C69DA}.Debug|x86.Build.0 = Debug|Win32 + {B7F1D57A-B85B-46CC-80F5-14DE9E2C69DA}.Release|x86.ActiveCfg = Release|Win32 + {B7F1D57A-B85B-46CC-80F5-14DE9E2C69DA}.Release|x86.Build.0 = Release|Win32 + {845A038A-8163-4851-95E1-78EFFD5F0AAF}.Debug|x86.ActiveCfg = Debug|Win32 + {845A038A-8163-4851-95E1-78EFFD5F0AAF}.Debug|x86.Build.0 = Debug|Win32 + {845A038A-8163-4851-95E1-78EFFD5F0AAF}.Release|x86.ActiveCfg = Release|Win32 + {845A038A-8163-4851-95E1-78EFFD5F0AAF}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/LEngine/Archive.cpp b/LEngine/Archive.cpp new file mode 100644 index 0000000..c6eee2d --- /dev/null +++ b/LEngine/Archive.cpp @@ -0,0 +1,7 @@ +#include "Archive.h" + + + +Archive& Archive::operator << (AssetFileLink& value) { + serialize(&value, sizeof(value)); return *this; +} \ No newline at end of file diff --git a/LEngine/Archive.h b/LEngine/Archive.h new file mode 100644 index 0000000..879e07e --- /dev/null +++ b/LEngine/Archive.h @@ -0,0 +1,109 @@ +#ifndef Archive_h__ +#define Archive_h__ + + +#include +#include +#include +#include +#include "Asset.h" +#include "lmath.h" +#include +#include "Object.h" +#include +#define POD_SERIALIZE(_type) Archive& operator << (_type& value) { serialize(&value, sizeof(value)); return *this; } + +class Object; +class Archive { +public: + typedef uint64_t size_type; + std::function)> SaveReferenceCallback; + std::function(const AssetFileLink&)> LoadReferenceCallback; + + Archive():SaveReferenceCallback(nullptr){ + + } + virtual ~Archive() {} + virtual bool is_loading() const = 0; + virtual void serialize(void* data, size_t size) = 0; + + virtual size_type get_offset() const = 0; + virtual void set_offset(size_type offset) = 0; + + virtual void flush() {} + + POD_SERIALIZE(uint8_t); + POD_SERIALIZE(uint16_t); + POD_SERIALIZE(uint32_t); + POD_SERIALIZE(uint64_t); + POD_SERIALIZE(int8_t); + POD_SERIALIZE(int16_t); + POD_SERIALIZE(int32_t); + POD_SERIALIZE(int64_t); + POD_SERIALIZE(float); + POD_SERIALIZE(double); + POD_SERIALIZE(lm::float2); + POD_SERIALIZE(lm::float3); + POD_SERIALIZE(lm::float4); + POD_SERIALIZE(lm::double2); + POD_SERIALIZE(lm::double3); + POD_SERIALIZE(lm::double4); + + POD_SERIALIZE(lm::Quaternion_f); + + Archive& operator << (std::string& value) { + uint32_t string_len = 0; + if (is_loading()) { + serialize(&string_len, sizeof(string_len)); + value.resize(string_len); + serialize(&value[0], string_len); + } else { + string_len = value.size(); + serialize(&string_len, sizeof(string_len)); + serialize(&value[0], string_len); + } + return *this; + } + + Archive& operator << (std::wstring& value) { + uint32_t string_len = 0; + if (is_loading()) { + serialize(&string_len, sizeof(string_len)); + value.resize(string_len); + serialize(&value[0], string_len * sizeof(std::wstring::value_type)); + } else { + string_len = value.size(); + serialize(&string_len, sizeof(string_len)); + serialize(&value[0], string_len * sizeof(std::wstring::value_type)); + } + return *this; + } + + template::value>::type> + Archive& operator << (std::shared_ptr& value) { + if (is_loading()) { + AssetFileLink link; + (*this) << link; + if(link.localId == -1) + { + value = nullptr; + }else + { + auto pos = get_offset(); + value = LoadReferenceCallback == nullptr ? nullptr : std::dynamic_pointer_cast(LoadReferenceCallback(link)); + set_offset(pos); + } + + } else { + if (SaveReferenceCallback != nullptr) { + SaveReferenceCallback(value); + } + AssetFileLink link = value == nullptr ? AssetFileLink() : value->GetFileLink(); + (*this) << link; + } + return *this; + } +private: + Archive& operator << (AssetFileLink& value); +}; +#endif // Archive_h__ diff --git a/LEngine/Asset.h b/LEngine/Asset.h new file mode 100644 index 0000000..089521f --- /dev/null +++ b/LEngine/Asset.h @@ -0,0 +1,45 @@ +#ifndef Asset_h__ +#define Asset_h__ + +#include +#include +#include +#include +#include "Guid.h" + +class AssetFileLink { +public: + using LocalFileID = std::uint32_t; + static constexpr LocalFileID InvalidID = -1; + + Guid fileGuid; + LocalFileID localId; + + AssetFileLink():localId(InvalidID){} + + AssetFileLink(const AssetFileLink& link) :fileGuid(link.fileGuid), localId(link.localId) {} + + AssetFileLink(Guid _fileGuid, LocalFileID _localId) :fileGuid(_fileGuid), localId(_localId) {} + + AssetFileLink& operator=(const AssetFileLink& link) { + fileGuid = link.fileGuid; + localId = link.localId; + return *this; + } + + bool operator==(const AssetFileLink& link) const { + return (fileGuid == link.fileGuid) && (localId == link.localId); + } + + bool operator!=(const AssetFileLink& link) const { + return (fileGuid != link.fileGuid) || (localId != link.localId); + } + + bool IsValid() const{ + return (localId != InvalidID) && !fileGuid.IsZero(); + } +}; + + + +#endif // Asset_h__ diff --git a/LEngine/AssetDatabase.cpp b/LEngine/AssetDatabase.cpp new file mode 100644 index 0000000..55cabe8 --- /dev/null +++ b/LEngine/AssetDatabase.cpp @@ -0,0 +1,101 @@ +#include "AssetDatabase.h" +#include +#include +#include "ModelImporter.h" +#include "TextureImporter.h" +#include + +AssetDatabase::AssetDatabase() +{ + _importers.push_back(std::make_shared()); + //_importers.push_back(std::make_shared()); +} + +void AssetDatabase::set_root_path(const std::wstring& path) +{ +} + +std::wstring AssetDatabase::asset_to_meta_path(const std::wstring& asset_path) +{ + std::tr2::sys::path src(asset_path); + return src.parent_path().append(src.filename().wstring() + L".meta").wstring(); +} + +void AssetDatabase::register_importer(std::shared_ptr importer) +{ +} + +std::vector> AssetDatabase::load_all_objects(std::shared_ptr asset) +{ + std::vector> result; + auto table = asset->objectsTable; + for (auto& obj : table.objects) + { + result.push_back(LoadObject(AssetFileLink(asset->guid(), obj.localId))); + } + return result; +} + + +std::shared_ptr AssetDatabase::find_importer(const std::wstring& asset_path) const +{ + auto importer = std::find_if(_importers.begin(), _importers.end(), [asset_path](std::shared_ptr im) { return im->can_import(asset_path); }); + if (importer != _importers.end()) + { + return *importer; + } + return nullptr; +} + +Guid AssetDatabase::file_to_guid(const std::wstring& path) const +{ + return AssetMetadata(path).get_guid(); +} + +std::shared_ptr AssetDatabase::open_asset_file(const std::wstring& path) +{ + return std::make_shared(file_to_guid(path), path); +} + +std::shared_ptr AssetDatabase::LoadReference(const AssetFileLink& link) +{ + return LoadObject(link); +} + + +std::wstring guid_to_path(Guid guid) +{//TODO: fix hardcode + return LR"(C:\Users\Sergey\Desktop\Assets\test.asset)"; +} + + +std::shared_ptr AssetDatabase::OpenArchive(Guid guid) +{ //TODO: fix hardcode + if (open_archives.empty()) + { + auto a = std::make_shared(guid, guid_to_path(guid)); + a->input->LoadReferenceCallback = std::bind(&AssetDatabase::LoadReference, this, std::placeholders::_1); + open_archives.push_back(a); + } + return open_archives[0]; +} + +std::shared_ptr AssetDatabase::LoadObject(AssetFileLink link) +{ + auto f = Object::Find(link); + if (f != nullptr) { return f; } + + auto archive = OpenArchive(link.fileGuid); + archive->SeekToFile(link.localId); + + std::wstring type_name; + (*archive->input) << type_name; + + auto obj = ObjectsFactory::instance().create_object(type_name); + obj->SetLink(link); + + obj->serialize(*archive->input); + + + return obj; +} diff --git a/LEngine/AssetDatabase.h b/LEngine/AssetDatabase.h new file mode 100644 index 0000000..d8b50ae --- /dev/null +++ b/LEngine/AssetDatabase.h @@ -0,0 +1,36 @@ +#ifndef AssetDatabase_h__ +#define AssetDatabase_h__ + +#include +#include +#include + +#include "AssetMetadata.h" +#include "AssetImporter.h" +#include "AssetFile.h" + + +class AssetDatabase{ +public: + static AssetDatabase& get() { + static AssetDatabase instance; + return instance; + } + static std::wstring asset_to_meta_path(const std::wstring& asset_path); + Guid file_to_guid(const std::wstring& path) const; + std::shared_ptr open_asset_file(const std::wstring& path); + void set_root_path(const std::wstring& path); + static void register_importer(std::shared_ptr importer); + std::shared_ptr find_importer(const std::wstring& asset_path) const; + + std::shared_ptr LoadReference(const AssetFileLink& link); + std::shared_ptr OpenArchive(Guid guid); + std::shared_ptr LoadObject(AssetFileLink link); + + std::vector> load_all_objects(std::shared_ptr asset); +private: + std::vector> open_archives; + AssetDatabase(); + std::vector> _importers; +}; +#endif // AssetDatabase_h__ diff --git a/LEngine/AssetFile.h b/LEngine/AssetFile.h new file mode 100644 index 0000000..52882fa --- /dev/null +++ b/LEngine/AssetFile.h @@ -0,0 +1,225 @@ +#ifndef AssetFile_h__ +#define AssetFile_h__ + +#include "InputArchive.h" +#include "OutputArchive.h" +#include "Asset.h" +#include +#include +#include + +namespace fs = std::experimental::filesystem::v1; + +class AssetObjectDescriptor : public Object { +public: + uint64_t localId; + int64_t offset; + uint64_t length; + AssetObjectDescriptor():localId(0), offset(0), length(0) + { + + } + AssetObjectDescriptor(uint64_t _localId, int64_t _offset, uint64_t _length):localId(_localId), offset(_offset), length(_length){ + + } + virtual void serialize(Archive& archive) override { + archive << localId << offset << length; + } + virtual std::wstring get_type_name() const override { + return L"AssetObjectDescriptor"; + } +}; + +class AssetObjectsTable : public Object{ +public: + uint64_t lastId; + std::vector objects; + + AssetObjectsTable():lastId(0) + { + + } + + bool GetFileDescriptor(uint64_t localId, AssetObjectDescriptor& desc){ + for (auto& o : objects) { + if (o.localId == localId) { + desc = o; + return true; + } + } + return false; + } + + bool Contains(uint64_t localId) const { + for (auto& o : objects) { + if (o.localId == localId) { + return true; + } + } + return false; + } + + virtual void serialize(Archive& archive) override { + archive << lastId; + if(archive.is_loading()){ + uint64_t objectsCount = 0; + archive << objectsCount; + objects.clear(); + for(uint64_t i = 0; i < objectsCount; ++i){ + AssetObjectDescriptor d; + d.serialize(archive); + objects.push_back(d); + } + }else{ + uint64_t objectsCount = objects.size(); + archive << objectsCount; + for (auto& o : objects){ + o.serialize(archive); + } + } + } + virtual std::wstring get_type_name() const override { + return L"AssetObjectsTable"; + } +}; + +inline std::shared_ptr CreateMemoryOutArchive(){ + return std::make_shared(std::make_shared(std::ios::in | std::ios::out | std::ios::binary)); +} + +class AssetFile { +public: + typedef uint64_t table_offset_t; + AssetObjectsTable objectsTable; + std::shared_ptr input; + std::shared_ptr output; + std::shared_ptr stream; + + AssetFile(Guid fileGuid, const std::wstring& path):_fileGuid(fileGuid), _path(path){ + OpenFile(false); + + if(stream->is_open()){ + stream->seekg(0, std::ios::end); + if((int)stream->tellg() == 0){ + std::cout << "Empty asset created!" << std::endl; + SaveFooter(); + } + ReadFooter(); + } + //input = std::make_shared(path); + } + + void OpenFile(bool trunc){ + input = nullptr; + output = nullptr; + stream = std::make_shared(_path, (trunc ? std::ios::trunc : std::ios::app) | std::ios::in | std::ios::out | std::ios::binary); + if (stream->is_open()) { + input = std::make_shared(stream); + output = std::make_shared(stream); + } + } + + void CloseFile() + { + input = nullptr; + output = nullptr; + if(stream != nullptr && stream->is_open()){ + stream->close(); + } + stream = nullptr; + } + + void Save(){ + auto tmpOut = CreateMemoryOutArchive(); + //save objects + int64_t objectOffset = 0; + for(auto& v : objectsTable.objects){ + auto object = Object::Find(AssetFileLink(_fileGuid, v.localId)); + + v.offset = objectOffset; + + auto startOffset = objectOffset = tmpOut->GetStream()->tellp(); + //save all loaded objects, copy not loaded + if(object != nullptr){ + (*tmpOut) << object->get_type_name(); + object->serialize(*tmpOut); + }else{ + stream->seekg(v.offset, std::ios::beg); + std::vector objectBytes(v.length); + stream->read((char*)&objectBytes[0], objectBytes.size()); + tmpOut->GetStream()->write((char*)&objectBytes[0], objectBytes.size()); + } + objectOffset = tmpOut->GetStream()->tellp(); + v.length = objectOffset - startOffset; + } + + CloseFile(); + OpenFile(true); + + auto content = std::static_pointer_cast(tmpOut->GetStream())->str(); + stream->write(&content[0], content.size()); + stream->seekg(0, std::ios::end); + //save footer + SaveFooter(); + } + + bool SeekToFile(uint64_t fileId) { + AssetObjectDescriptor desc; + if (objectsTable.GetFileDescriptor(fileId, desc)) { + if (desc.offset >= 0) { + stream->seekg(desc.offset, std::ios::beg); + return true; + } + } + return false; + } + + void ReadFooter() + { + std::cout << "Read footer" << std::endl; + //read table offset + auto off = -((std::streamoff)sizeof(table_offset_t)); + stream->seekg(off, std::ios::end); + table_offset_t offset = 0; + (*input) << offset; + + auto table_file_offset = off - (std::streamoff)offset; + stream->seekg(table_file_offset, std::ios::end); + objectsTable.serialize(*input); + } + + void SaveFooter(){ + std::cout << "Save footer" << std::endl; + stream->seekg(0, std::ios::end); + auto tmpArchive = CreateMemoryOutArchive(); + objectsTable.serialize(*tmpArchive); + auto data = std::static_pointer_cast(tmpArchive->GetStream())->str(); + table_offset_t size = data.size(); + stream->write(&data[0], size); + (*output) << size; + + output->flush(); + } + + void AddObject(std::shared_ptr obj){ + if (obj->GetFileLink().IsValid()) { + if (obj->GetFileLink().fileGuid == _fileGuid) { + std::wcout << "Object " << obj->get_name() << " is already in current asset. Can't add twice" << std::endl; + } else { + std::wcout << "Object " << obj->get_name() << " is already in another asset. Can't add." << std::endl; + } + } else { + obj->SetLink(AssetFileLink(_fileGuid, objectsTable.lastId++)); + objectsTable.objects.push_back(AssetObjectDescriptor(obj->GetFileLink().localId, 0, 0)); + } + } + const Guid& guid() const + { + return _fileGuid; + } +private: + Guid _fileGuid; + std::wstring _path; +}; + +#endif // AssetFile_h__ diff --git a/LEngine/AssetImporter.h b/LEngine/AssetImporter.h new file mode 100644 index 0000000..6b59626 --- /dev/null +++ b/LEngine/AssetImporter.h @@ -0,0 +1,16 @@ +#ifndef AssetImporter_h__ +#define AssetImporter_h__ + +#include +#include +#include + +class AssetImporter { +public: + virtual void import(std::wstring asset_path) = 0; + virtual bool can_import(const std::wstring& path) const = 0; + virtual bool set_parameters(std::wstring params) = 0; + virtual std::wstring get_parameters() const = 0; + virtual std::wstring name() = 0; +}; +#endif // AssetImporter_h__ diff --git a/LEngine/AssetManager.cpp b/LEngine/AssetManager.cpp new file mode 100644 index 0000000..e02270f --- /dev/null +++ b/LEngine/AssetManager.cpp @@ -0,0 +1,73 @@ +#include "AssetManager.h" +#include "DirectXTex.h" +#include "DDSTextureLoader12.h" +#include "LEngine.h" +#include "Texture.h" + +std::shared_ptr AssetManager::_instance = nullptr; + +TexturePtr AssetManager::LoadTexture(const std::wstring& path) const +{ + auto renderer = LEngine::Instance()->GetRenderer(); + auto device = renderer->GetDevice(); + + ID3D12ResourcePtr resource; + + std::unique_ptr data; + std::vector srData; + DirectX::LoadDDSTextureFromFile(device.Get(), GetFullAssetPath(path).c_str(), &resource, data, srData); + + //auto cmdList = renderer->BeginCommandList(); + + + //create upload heap + D3D12_RESOURCE_DESC desc; + desc = resource->GetDesc(); + + UINT64 textureUploadBufferSize; + device->GetCopyableFootprints(&desc, 0, srData.size(), 0, nullptr, nullptr, nullptr, &textureUploadBufferSize); + + // now we create an upload heap to upload our texture to the GPU + ID3D12ResourcePtr textureBufferUploadHeap; + auto hr = device->CreateCommittedResource( + &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_UPLOAD), // upload heap + D3D12_HEAP_FLAG_NONE, // no flags + &CD3DX12_RESOURCE_DESC::Buffer(textureUploadBufferSize), // resource description for a buffer (storing the image data in this heap just to copy to the default heap) + D3D12_RESOURCE_STATE_GENERIC_READ, // We will copy the contents from this heap to the default heap above + nullptr, + IID_PPV_ARGS(&textureBufferUploadHeap)); + if (FAILED(hr)) + { + FatalError(L"Failed to create upload heap"); + } + textureBufferUploadHeap->SetName(L"Texture Buffer Upload Resource Heap"); + + auto commandList = renderer->BeginCommandList(); + //copy subresource + UpdateSubresources(commandList.Get(), resource.Get(), textureBufferUploadHeap.Get(), 0, 0, srData.size(), &srData[0]); + commandList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(resource.Get(), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE)); + + + renderer->EndCommandList(); + renderer->WaitCommandsQueue(); + + //create shader resource view + auto srvMemory = renderer->getSrvDescriptorsAllocator()->alloc(); + + D3D12_RESOURCE_DESC texDesc; + texDesc = resource->GetDesc(); + + + D3D12_SHADER_RESOURCE_VIEW_DESC srvDesc = {}; + srvDesc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; + srvDesc.Format = texDesc.Format; + srvDesc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2D; + srvDesc.Texture2D.MipLevels = texDesc.MipLevels; + device->CreateShaderResourceView(resource.Get(), &srvDesc, srvMemory); + + + auto result = std::make_shared(resource, srvMemory); + + //DirectX::CreateTexture(renderer->GetDevice(), image.GetImages(), image.GetImageCount(), metadata, &resource); + return result; +} diff --git a/LEngine/AssetManager.h b/LEngine/AssetManager.h new file mode 100644 index 0000000..ec7e9d4 --- /dev/null +++ b/LEngine/AssetManager.h @@ -0,0 +1,30 @@ +#pragma once + +#include +#include +#include "d3d11_types.h" +#include "Texture.h" +#include "ForwardDeclarations.h" + +class AssetManager { +public: + static std::shared_ptr Instance() { + if (_instance == nullptr) { + _instance = std::make_shared(); + } + return _instance; + } + + void SetAssetsFolder(const std::wstring& folder) { + _assetsFolder = folder; + } + + std::wstring GetFullAssetPath(const std::wstring& relativePath) const + { + return _assetsFolder + relativePath; + } + TexturePtr LoadTexture(const std::wstring& path) const; +private: + static std::shared_ptr _instance; + std::wstring _assetsFolder; +}; diff --git a/LEngine/AssetMetadata.cpp b/LEngine/AssetMetadata.cpp new file mode 100644 index 0000000..a20a863 --- /dev/null +++ b/LEngine/AssetMetadata.cpp @@ -0,0 +1,75 @@ +#include "AssetMetadata.h" +#include +#include +#include +#include +#include +#include "AssetDatabase.h" +#include +#include +using namespace Microsoft::WRL; + +AssetMetadata::AssetMetadata(const std::wstring& asset_path) : _asset_path(asset_path) { + _meta_path = AssetDatabase::asset_to_meta_path(_asset_path); + + if (std::tr2::sys::exists(std::tr2::sys::path(_meta_path))) { + Load(); + } else { + create(); + Save(); + } +} + +void AssetMetadata::create() { + CoCreateGuid((GUID*)&_guid); + _modification_time = std::tr2::sys::last_write_time(std::tr2::sys::path(_asset_path)).time_since_epoch().count(); + _importer = AssetDatabase::get().find_importer(_asset_path); +} + +void AssetMetadata::Load() { + std::wifstream file(_meta_path); + + std::wstring v; + std::getline(file, v); + + std::wstring guid_str; + std::getline(file, guid_str); + _guid = str_to_guid(guid_str); + + std::wstring time_str; + std::getline(file, time_str); + _modification_time = std::stoull(time_str); + + file.close(); +} + +void AssetMetadata::Save() { + std::wofstream file; + file.open(_meta_path, std::ios::trunc); + file << version << std::endl; + file << guid_to_str(_guid) << std::endl; + file << _modification_time << std::endl; + //file << _importer->name(); + file.close(); +} + +Guid AssetMetadata::str_to_guid(const std::wstring& guid) { + Guid iid; + IIDFromString(guid.c_str(), (GUID*)&iid); + return iid; +} + +std::wstring AssetMetadata::guid_to_str(const Guid& guid) { + LPOLESTR guid_str = nullptr; + StringFromIID(*((const GUID*)&guid), &guid_str); + + //Microsoft::WRL::Wrappers::HStringReference + + std::wstring result(guid_str); + CoTaskMemFree(guid_str); + return result; +} + +const Guid& AssetMetadata::get_guid() const { + return _guid; +} \ No newline at end of file diff --git a/LEngine/AssetMetadata.h b/LEngine/AssetMetadata.h new file mode 100644 index 0000000..e598639 --- /dev/null +++ b/LEngine/AssetMetadata.h @@ -0,0 +1,29 @@ +#ifndef AssetMetadata_h__ +#define AssetMetadata_h__ + +#include +#include +#include +#include "Guid.h" +#include "AssetImporter.h" + +class AssetMetadata { +public: + typedef uint64_t file_time_t; + const std::wstring version = L"1.0"; + + AssetMetadata(const std::wstring& asset_path); + void Save(); + void Load(); + static std::wstring guid_to_str(const Guid& guid); + static Guid str_to_guid(const std::wstring& guid); + const Guid& get_guid() const; +private: + std::shared_ptr _importer; + void create(); + std::wstring _asset_path; + std::wstring _meta_path; + file_time_t _modification_time; + Guid _guid; +}; +#endif // AssetMetadata_h__ diff --git a/LEngine/Bounds.h b/LEngine/Bounds.h new file mode 100644 index 0000000..ab70d1d --- /dev/null +++ b/LEngine/Bounds.h @@ -0,0 +1,44 @@ +#ifndef Bounds_h__ +#define Bounds_h__ + +#include "lmath.h" +using namespace lm; + +class Bounds { +public: + Bounds() + :_center(0.0f,0.0f,0.0f), _size(0.0f,0.0f,0.0f) { + + } + Bounds(float3 center, float3 size) + :_center(center), _size(size) + { + + } + + float3 GetSize() { + return _size; + } + float3 GetCenter() { + return _center; + } + void SetSize(const float3& size) { + _size = size; + } + void SetCenter(const float3& center) { + _center = center; + } + void Scale(float value) { + _size *= value; + } + float3 Minimum() const { + return _size * -0.5f + _center; + } + float3 Maximum() const { + return _size * 0.5f + _center; + } +private: + float3 _center; + float3 _size; +}; +#endif // Bounds_h__ diff --git a/LEngine/Camera.cpp b/LEngine/Camera.cpp new file mode 100644 index 0000000..617a129 --- /dev/null +++ b/LEngine/Camera.cpp @@ -0,0 +1,31 @@ +#include "Camera.h" +#include "Transform.h" +#include "Mathf.h" +#include "Archive.h" + +float4x4 Camera::worldToCameraMatrix() { + auto world = transform()->GetGlobalTransform(); + + //TODO: why not affine ? + world = inverse(world, false); + +// auto test = lookatlh(transform()->GetGlobalPosition(), float3(0, 1, 1), float3(0, 1, 0)); + + return world; +} + + + +void Camera::serialize(Archive& archive) { + Component::serialize(archive); + archive << nearClipPlane << farClipPlane << fov << aspect; +} + +void Camera::UpdateProjectionMatrix() { + _projection = matrix4x4Perspective(fov * Mathf::DegToRad(), aspect, nearClipPlane, farClipPlane); +} + +float4x4 Camera::projectionMatrix() { + UpdateProjectionMatrix(); + return _projection; +} diff --git a/LEngine/Camera.h b/LEngine/Camera.h new file mode 100644 index 0000000..6362a99 --- /dev/null +++ b/LEngine/Camera.h @@ -0,0 +1,29 @@ +#ifndef Camera_h__ +#define Camera_h__ + +#include "ObjectsFactory.h" +#include "lmath.h" +#include "Component.h" +using namespace lm; + +LOBJECT(Camera, Component) +public: + float nearClipPlane = 0.03f; + float farClipPlane = 100.0f; + float fov = 45.0f; + float aspect = 1.333333333f; + + virtual void serialize(Archive& archive) override; + + float4x4 worldToCameraMatrix(); + float4x4 projectionMatrix(); + void test() { + construct(); + } +private: + float4x4 _projection; + void UpdateProjectionMatrix(); +}; + +typedef std::shared_ptr CameraPtr; +#endif // Camera_h__ diff --git a/LEngine/Component.cpp b/LEngine/Component.cpp new file mode 100644 index 0000000..efa216b --- /dev/null +++ b/LEngine/Component.cpp @@ -0,0 +1,18 @@ +#include "Component.h" +#include "GameObject.h" + +TransformPtr Component::transform() { + return gameObject->transform; +} + +void Component::serialize(Archive& archive) { + auto ptr = std::static_pointer_cast(gameObject); + archive << ptr; + + if (archive.is_loading()) { + gameObject = std::static_pointer_cast(ptr); + + } +} + + diff --git a/LEngine/Component.h b/LEngine/Component.h new file mode 100644 index 0000000..7fb253e --- /dev/null +++ b/LEngine/Component.h @@ -0,0 +1,19 @@ +#ifndef Component_h__ +#define Component_h__ + +#include +#include "ObjectsFactory.h" + +LOBJECT(Component, Object) +public: + GameObjectPtr gameObject; + TransformPtr transform(); + virtual void tick(float deltaTime) {} + Component(){} + + void serialize(Archive& archive) override; +}; + + + +#endif // Component_h__ diff --git a/LEngine/D3d12DescriptorHeapAllocator.h b/LEngine/D3d12DescriptorHeapAllocator.h new file mode 100644 index 0000000..5453b94 --- /dev/null +++ b/LEngine/D3d12DescriptorHeapAllocator.h @@ -0,0 +1,83 @@ +#ifndef D3d12DescriptorHeap_h__ +#define D3d12DescriptorHeap_h__ + +#include +#include "d3d11_helper.h" +#include "FatalError.h" +#include +#include "ForwardListItem.h" +#include + +using namespace Microsoft::WRL; + +class D3d12DescriptorHeapAllocator { +public: + //Assuming that heap is EMPTY! + D3d12DescriptorHeapAllocator(ComPtr heap):_heap(heap) + { + _descriptor = heap->GetDesc(); + _heapStartAddress = heap->GetCPUDescriptorHandleForHeapStart().ptr; + ID3D12DevicePtr device; + heap->GetDevice(IID_PPV_ARGS(&device)); + _itemSize = device->GetDescriptorHandleIncrementSize(_descriptor.Type); + + _items.resize(_descriptor.NumDescriptors); + //init free items list + for(size_t i = 0; i < _descriptor.NumDescriptors - 1; ++i){ + _items[i].next = &_items[i + 1]; + } + _items[_descriptor.NumDescriptors - 1].next = nullptr; + _listHead = &_items[0]; + } + + D3D12_CPU_DESCRIPTOR_HANDLE alloc(){ + if(_listHead == nullptr){ + return {0}; + } + auto allocatedId = getItemIndex(_listHead); + auto resultAddress = _heapStartAddress + (allocatedId * _itemSize); + _listHead = _listHead->next; + return{ resultAddress }; + } + void free(D3D12_CPU_DESCRIPTOR_HANDLE handle){ + auto itemId = getDescriptorId(handle); + if (itemId >= _items.size()) { + throw std::exception("Invalid handle"); + } + auto freeItem = &_items[itemId]; + freeItem->next = _listHead; + _listHead = freeItem; + + } + ComPtr getHeap() + { + return _heap; + } + size_t getItemSize() const + { + return _itemSize; + } + size_t getDescriptorId(D3D12_CPU_DESCRIPTOR_HANDLE handle) const + { + if (handle.ptr < _heapStartAddress) { + throw std::exception("Invalid handle"); + } + return (handle.ptr - _heapStartAddress) / _itemSize; + } + size_t getDescriptorsCount() const + { + return _descriptor.NumDescriptors; + } +private: + size_t getItemIndex(const ForwardListItem* item) const noexcept{ + return (item - &_items[0]); + } + ComPtr _heap; + ForwardListItem* _listHead = nullptr; + std::vector _items; + D3D12_DESCRIPTOR_HEAP_DESC _descriptor; + size_t _itemSize; + size_t _heapStartAddress; +}; + +#endif // D3d12DescriptorHeap_h__ diff --git a/LEngine/DDSTextureLoader12.cpp b/LEngine/DDSTextureLoader12.cpp new file mode 100644 index 0000000..bdc510b --- /dev/null +++ b/LEngine/DDSTextureLoader12.cpp @@ -0,0 +1,1476 @@ +//-------------------------------------------------------------------------------------- +// File: DDSTextureLoader12.cpp +// +// Functions for loading a DDS texture and creating a Direct3D 12 runtime resource for it +// +// Note these functions are useful as a light-weight runtime loader for DDS files. For +// a full-featured DDS file reader, writer, and texture processing pipeline see +// the 'Texconv' sample and the 'DirectXTex' library. +// +// 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. +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// http://go.microsoft.com/fwlink/?LinkId=248926 +// http://go.microsoft.com/fwlink/?LinkID=615561 +//-------------------------------------------------------------------------------------- + +#include "DDSTextureLoader12.h" + +#include +#include +#include + +#include "d3dx12.h" + +using namespace DirectX; + +//-------------------------------------------------------------------------------------- +// Macros +//-------------------------------------------------------------------------------------- +#ifndef MAKEFOURCC +#define MAKEFOURCC(ch0, ch1, ch2, ch3) \ + ((uint32_t)(uint8_t)(ch0) | ((uint32_t)(uint8_t)(ch1) << 8) | \ + ((uint32_t)(uint8_t)(ch2) << 16) | ((uint32_t)(uint8_t)(ch3) << 24 )) +#endif /* defined(MAKEFOURCC) */ + +//-------------------------------------------------------------------------------------- +// DDS file structure definitions +// +// See DDS.h in the 'Texconv' sample and the 'DirectXTex' library +//-------------------------------------------------------------------------------------- +#pragma pack(push,1) + +const uint32_t DDS_MAGIC = 0x20534444; // "DDS " + +struct DDS_PIXELFORMAT +{ + uint32_t size; + uint32_t flags; + uint32_t fourCC; + uint32_t RGBBitCount; + uint32_t RBitMask; + uint32_t GBitMask; + uint32_t BBitMask; + uint32_t ABitMask; +}; + +#define DDS_FOURCC 0x00000004 // DDPF_FOURCC +#define DDS_RGB 0x00000040 // DDPF_RGB +#define DDS_LUMINANCE 0x00020000 // DDPF_LUMINANCE +#define DDS_ALPHA 0x00000002 // DDPF_ALPHA +#define DDS_BUMPDUDV 0x00080000 // DDPF_BUMPDUDV + +#define DDS_HEADER_FLAGS_VOLUME 0x00800000 // DDSD_DEPTH + +#define DDS_HEIGHT 0x00000002 // DDSD_HEIGHT +#define DDS_WIDTH 0x00000004 // DDSD_WIDTH + +#define DDS_CUBEMAP_POSITIVEX 0x00000600 // DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEX +#define DDS_CUBEMAP_NEGATIVEX 0x00000a00 // DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEX +#define DDS_CUBEMAP_POSITIVEY 0x00001200 // DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEY +#define DDS_CUBEMAP_NEGATIVEY 0x00002200 // DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEY +#define DDS_CUBEMAP_POSITIVEZ 0x00004200 // DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEZ +#define DDS_CUBEMAP_NEGATIVEZ 0x00008200 // DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEZ + +#define DDS_CUBEMAP_ALLFACES ( DDS_CUBEMAP_POSITIVEX | DDS_CUBEMAP_NEGATIVEX |\ + DDS_CUBEMAP_POSITIVEY | DDS_CUBEMAP_NEGATIVEY |\ + DDS_CUBEMAP_POSITIVEZ | DDS_CUBEMAP_NEGATIVEZ ) + +#define DDS_CUBEMAP 0x00000200 // DDSCAPS2_CUBEMAP + +enum DDS_MISC_FLAGS2 +{ + DDS_MISC_FLAGS2_ALPHA_MODE_MASK = 0x7L, +}; + +struct DDS_HEADER +{ + uint32_t size; + uint32_t flags; + uint32_t height; + uint32_t width; + uint32_t pitchOrLinearSize; + uint32_t depth; // only if DDS_HEADER_FLAGS_VOLUME is set in flags + uint32_t mipMapCount; + uint32_t reserved1[11]; + DDS_PIXELFORMAT ddspf; + uint32_t caps; + uint32_t caps2; + uint32_t caps3; + uint32_t caps4; + uint32_t reserved2; +}; + +struct DDS_HEADER_DXT10 +{ + DXGI_FORMAT dxgiFormat; + uint32_t resourceDimension; + uint32_t miscFlag; // see D3D11_RESOURCE_MISC_FLAG + uint32_t arraySize; + uint32_t miscFlags2; +}; + +#pragma pack(pop) + +//-------------------------------------------------------------------------------------- +namespace +{ + struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h); } }; + + typedef public std::unique_ptr ScopedHandle; + + inline HANDLE safe_handle(HANDLE h) { return (h == INVALID_HANDLE_VALUE) ? 0 : h; } + + template + inline void SetDebugObjectName(_In_ ID3D12DeviceChild* resource, _In_z_ const wchar_t(&name)[TNameLength]) + { + #if !defined(NO_D3D12_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) ) + resource->SetName(name); + #else + UNREFERENCED_PARAMETER(resource); + UNREFERENCED_PARAMETER(name); + #endif + } + + inline uint32_t CountMips(uint32_t width, uint32_t height) + { + if (width == 0 || height == 0) + return 0; + + uint32_t count = 1; + while (width > 1 || height > 1) + { + width >>= 1; + height >>= 1; + count++; + } + return count; + } + + //-------------------------------------------------------------------------------------- + HRESULT LoadTextureDataFromFile( + _In_z_ const wchar_t* fileName, + std::unique_ptr& ddsData, + DDS_HEADER** header, + uint8_t** bitData, + size_t* bitSize) + { + if (!header || !bitData || !bitSize) + { + return E_POINTER; + } + + // open the file +#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) + ScopedHandle hFile( safe_handle( CreateFile2( fileName, + GENERIC_READ, + FILE_SHARE_READ, + OPEN_EXISTING, + nullptr ) ) ); +#else + ScopedHandle hFile( safe_handle( CreateFileW( fileName, + GENERIC_READ, + FILE_SHARE_READ, + nullptr, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + nullptr ) ) ); +#endif + + if ( !hFile ) + { + return HRESULT_FROM_WIN32( GetLastError() ); + } + + // Get the file size + FILE_STANDARD_INFO fileInfo; + if ( !GetFileInformationByHandleEx( hFile.get(), FileStandardInfo, &fileInfo, sizeof(fileInfo) ) ) + { + return HRESULT_FROM_WIN32( GetLastError() ); + } + + // File is too big for 32-bit allocation, so reject read + if (fileInfo.EndOfFile.HighPart > 0) + { + return E_FAIL; + } + + // Need at least enough data to fill the header and magic number to be a valid DDS + if (fileInfo.EndOfFile.LowPart < ( sizeof(DDS_HEADER) + sizeof(uint32_t) ) ) + { + return E_FAIL; + } + + // create enough space for the file data + ddsData.reset( new (std::nothrow) uint8_t[fileInfo.EndOfFile.LowPart ] ); + if (!ddsData) + { + return E_OUTOFMEMORY; + } + + // read the data in + DWORD BytesRead = 0; + if (!ReadFile( hFile.get(), + ddsData.get(), + fileInfo.EndOfFile.LowPart, + &BytesRead, + nullptr + )) + { + return HRESULT_FROM_WIN32( GetLastError() ); + } + + if (BytesRead < fileInfo.EndOfFile.LowPart) + { + return E_FAIL; + } + + // DDS files always start with the same magic number ("DDS ") + uint32_t dwMagicNumber = *( const uint32_t* )( ddsData.get() ); + if (dwMagicNumber != DDS_MAGIC) + { + return E_FAIL; + } + + auto hdr = reinterpret_cast( ddsData.get() + sizeof( uint32_t ) ); + + // Verify header to validate DDS file + if (hdr->size != sizeof(DDS_HEADER) || + hdr->ddspf.size != sizeof(DDS_PIXELFORMAT)) + { + return E_FAIL; + } + + // Check for DX10 extension + bool bDXT10Header = false; + if ((hdr->ddspf.flags & DDS_FOURCC) && + (MAKEFOURCC( 'D', 'X', '1', '0' ) == hdr->ddspf.fourCC)) + { + // Must be long enough for both headers and magic value + if (fileInfo.EndOfFile.LowPart < ( sizeof(DDS_HEADER) + sizeof(uint32_t) + sizeof(DDS_HEADER_DXT10) ) ) + { + return E_FAIL; + } + + bDXT10Header = true; + } + + // setup the pointers in the process request + *header = hdr; + ptrdiff_t offset = sizeof( uint32_t ) + sizeof( DDS_HEADER ) + + (bDXT10Header ? sizeof( DDS_HEADER_DXT10 ) : 0); + *bitData = ddsData.get() + offset; + *bitSize = fileInfo.EndOfFile.LowPart - offset; + + return S_OK; + } + + + //-------------------------------------------------------------------------------------- + // Return the BPP for a particular format + //-------------------------------------------------------------------------------------- + size_t BitsPerPixel( _In_ DXGI_FORMAT fmt ) + { + switch( fmt ) + { + case DXGI_FORMAT_R32G32B32A32_TYPELESS: + case DXGI_FORMAT_R32G32B32A32_FLOAT: + case DXGI_FORMAT_R32G32B32A32_UINT: + case DXGI_FORMAT_R32G32B32A32_SINT: + return 128; + + case DXGI_FORMAT_R32G32B32_TYPELESS: + case DXGI_FORMAT_R32G32B32_FLOAT: + case DXGI_FORMAT_R32G32B32_UINT: + case DXGI_FORMAT_R32G32B32_SINT: + return 96; + + case DXGI_FORMAT_R16G16B16A16_TYPELESS: + case DXGI_FORMAT_R16G16B16A16_FLOAT: + case DXGI_FORMAT_R16G16B16A16_UNORM: + case DXGI_FORMAT_R16G16B16A16_UINT: + case DXGI_FORMAT_R16G16B16A16_SNORM: + case DXGI_FORMAT_R16G16B16A16_SINT: + case DXGI_FORMAT_R32G32_TYPELESS: + case DXGI_FORMAT_R32G32_FLOAT: + case DXGI_FORMAT_R32G32_UINT: + case DXGI_FORMAT_R32G32_SINT: + case DXGI_FORMAT_R32G8X24_TYPELESS: + case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: + case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS: + case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT: + case DXGI_FORMAT_Y416: + case DXGI_FORMAT_Y210: + case DXGI_FORMAT_Y216: + return 64; + + case DXGI_FORMAT_R10G10B10A2_TYPELESS: + case DXGI_FORMAT_R10G10B10A2_UNORM: + case DXGI_FORMAT_R10G10B10A2_UINT: + case DXGI_FORMAT_R11G11B10_FLOAT: + case DXGI_FORMAT_R8G8B8A8_TYPELESS: + case DXGI_FORMAT_R8G8B8A8_UNORM: + case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: + case DXGI_FORMAT_R8G8B8A8_UINT: + case DXGI_FORMAT_R8G8B8A8_SNORM: + case DXGI_FORMAT_R8G8B8A8_SINT: + case DXGI_FORMAT_R16G16_TYPELESS: + case DXGI_FORMAT_R16G16_FLOAT: + case DXGI_FORMAT_R16G16_UNORM: + case DXGI_FORMAT_R16G16_UINT: + case DXGI_FORMAT_R16G16_SNORM: + case DXGI_FORMAT_R16G16_SINT: + case DXGI_FORMAT_R32_TYPELESS: + case DXGI_FORMAT_D32_FLOAT: + case DXGI_FORMAT_R32_FLOAT: + case DXGI_FORMAT_R32_UINT: + case DXGI_FORMAT_R32_SINT: + case DXGI_FORMAT_R24G8_TYPELESS: + case DXGI_FORMAT_D24_UNORM_S8_UINT: + case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: + case DXGI_FORMAT_X24_TYPELESS_G8_UINT: + case DXGI_FORMAT_R9G9B9E5_SHAREDEXP: + case DXGI_FORMAT_R8G8_B8G8_UNORM: + case DXGI_FORMAT_G8R8_G8B8_UNORM: + case DXGI_FORMAT_B8G8R8A8_UNORM: + case DXGI_FORMAT_B8G8R8X8_UNORM: + case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM: + case DXGI_FORMAT_B8G8R8A8_TYPELESS: + case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB: + case DXGI_FORMAT_B8G8R8X8_TYPELESS: + case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB: + case DXGI_FORMAT_AYUV: + case DXGI_FORMAT_Y410: + case DXGI_FORMAT_YUY2: + return 32; + + case DXGI_FORMAT_P010: + case DXGI_FORMAT_P016: + return 24; + + case DXGI_FORMAT_R8G8_TYPELESS: + case DXGI_FORMAT_R8G8_UNORM: + case DXGI_FORMAT_R8G8_UINT: + case DXGI_FORMAT_R8G8_SNORM: + case DXGI_FORMAT_R8G8_SINT: + case DXGI_FORMAT_R16_TYPELESS: + case DXGI_FORMAT_R16_FLOAT: + case DXGI_FORMAT_D16_UNORM: + case DXGI_FORMAT_R16_UNORM: + case DXGI_FORMAT_R16_UINT: + case DXGI_FORMAT_R16_SNORM: + case DXGI_FORMAT_R16_SINT: + case DXGI_FORMAT_B5G6R5_UNORM: + case DXGI_FORMAT_B5G5R5A1_UNORM: + case DXGI_FORMAT_A8P8: + case DXGI_FORMAT_B4G4R4A4_UNORM: + return 16; + + case DXGI_FORMAT_NV12: + case DXGI_FORMAT_420_OPAQUE: + case DXGI_FORMAT_NV11: + return 12; + + case DXGI_FORMAT_R8_TYPELESS: + case DXGI_FORMAT_R8_UNORM: + case DXGI_FORMAT_R8_UINT: + case DXGI_FORMAT_R8_SNORM: + case DXGI_FORMAT_R8_SINT: + case DXGI_FORMAT_A8_UNORM: + case DXGI_FORMAT_AI44: + case DXGI_FORMAT_IA44: + case DXGI_FORMAT_P8: + return 8; + + case DXGI_FORMAT_R1_UNORM: + return 1; + + case DXGI_FORMAT_BC1_TYPELESS: + case DXGI_FORMAT_BC1_UNORM: + case DXGI_FORMAT_BC1_UNORM_SRGB: + case DXGI_FORMAT_BC4_TYPELESS: + case DXGI_FORMAT_BC4_UNORM: + case DXGI_FORMAT_BC4_SNORM: + return 4; + + case DXGI_FORMAT_BC2_TYPELESS: + case DXGI_FORMAT_BC2_UNORM: + case DXGI_FORMAT_BC2_UNORM_SRGB: + case DXGI_FORMAT_BC3_TYPELESS: + case DXGI_FORMAT_BC3_UNORM: + case DXGI_FORMAT_BC3_UNORM_SRGB: + case DXGI_FORMAT_BC5_TYPELESS: + case DXGI_FORMAT_BC5_UNORM: + case DXGI_FORMAT_BC5_SNORM: + case DXGI_FORMAT_BC6H_TYPELESS: + case DXGI_FORMAT_BC6H_UF16: + case DXGI_FORMAT_BC6H_SF16: + case DXGI_FORMAT_BC7_TYPELESS: + case DXGI_FORMAT_BC7_UNORM: + case DXGI_FORMAT_BC7_UNORM_SRGB: + return 8; + + default: + return 0; + } + } + + + //-------------------------------------------------------------------------------------- + // Get surface information for a particular format + //-------------------------------------------------------------------------------------- + void GetSurfaceInfo( + _In_ size_t width, + _In_ size_t height, + _In_ DXGI_FORMAT fmt, + size_t* outNumBytes, + _Out_opt_ size_t* outRowBytes, + _Out_opt_ size_t* outNumRows ) + { + size_t numBytes = 0; + size_t rowBytes = 0; + size_t numRows = 0; + + bool bc = false; + bool packed = false; + bool planar = false; + size_t bpe = 0; + switch (fmt) + { + case DXGI_FORMAT_BC1_TYPELESS: + case DXGI_FORMAT_BC1_UNORM: + case DXGI_FORMAT_BC1_UNORM_SRGB: + case DXGI_FORMAT_BC4_TYPELESS: + case DXGI_FORMAT_BC4_UNORM: + case DXGI_FORMAT_BC4_SNORM: + bc=true; + bpe = 8; + break; + + case DXGI_FORMAT_BC2_TYPELESS: + case DXGI_FORMAT_BC2_UNORM: + case DXGI_FORMAT_BC2_UNORM_SRGB: + case DXGI_FORMAT_BC3_TYPELESS: + case DXGI_FORMAT_BC3_UNORM: + case DXGI_FORMAT_BC3_UNORM_SRGB: + case DXGI_FORMAT_BC5_TYPELESS: + case DXGI_FORMAT_BC5_UNORM: + case DXGI_FORMAT_BC5_SNORM: + case DXGI_FORMAT_BC6H_TYPELESS: + case DXGI_FORMAT_BC6H_UF16: + case DXGI_FORMAT_BC6H_SF16: + case DXGI_FORMAT_BC7_TYPELESS: + case DXGI_FORMAT_BC7_UNORM: + case DXGI_FORMAT_BC7_UNORM_SRGB: + bc = true; + bpe = 16; + break; + + case DXGI_FORMAT_R8G8_B8G8_UNORM: + case DXGI_FORMAT_G8R8_G8B8_UNORM: + case DXGI_FORMAT_YUY2: + packed = true; + bpe = 4; + break; + + case DXGI_FORMAT_Y210: + case DXGI_FORMAT_Y216: + packed = true; + bpe = 8; + break; + + case DXGI_FORMAT_NV12: + case DXGI_FORMAT_420_OPAQUE: + planar = true; + bpe = 2; + break; + + case DXGI_FORMAT_P010: + case DXGI_FORMAT_P016: + planar = true; + bpe = 4; + break; + } + + if (bc) + { + size_t numBlocksWide = 0; + if (width > 0) + { + numBlocksWide = std::max( 1, (width + 3) / 4 ); + } + size_t numBlocksHigh = 0; + if (height > 0) + { + numBlocksHigh = std::max( 1, (height + 3) / 4 ); + } + rowBytes = numBlocksWide * bpe; + numRows = numBlocksHigh; + numBytes = rowBytes * numBlocksHigh; + } + else if (packed) + { + rowBytes = ( ( width + 1 ) >> 1 ) * bpe; + numRows = height; + numBytes = rowBytes * height; + } + else if ( fmt == DXGI_FORMAT_NV11 ) + { + rowBytes = ( ( width + 3 ) >> 2 ) * 4; + numRows = height * 2; // Direct3D makes this simplifying assumption, although it is larger than the 4:1:1 data + numBytes = rowBytes * numRows; + } + else if (planar) + { + rowBytes = ( ( width + 1 ) >> 1 ) * bpe; + numBytes = ( rowBytes * height ) + ( ( rowBytes * height + 1 ) >> 1 ); + numRows = height + ( ( height + 1 ) >> 1 ); + } + else + { + size_t bpp = BitsPerPixel( fmt ); + rowBytes = ( width * bpp + 7 ) / 8; // round up to nearest byte + numRows = height; + numBytes = rowBytes * height; + } + + if (outNumBytes) + { + *outNumBytes = numBytes; + } + if (outRowBytes) + { + *outRowBytes = rowBytes; + } + if (outNumRows) + { + *outNumRows = numRows; + } + } + + + //-------------------------------------------------------------------------------------- + #define ISBITMASK( r,g,b,a ) ( ddpf.RBitMask == r && ddpf.GBitMask == g && ddpf.BBitMask == b && ddpf.ABitMask == a ) + + DXGI_FORMAT GetDXGIFormat( const DDS_PIXELFORMAT& ddpf ) + { + if (ddpf.flags & DDS_RGB) + { + // Note that sRGB formats are written using the "DX10" extended header + + switch (ddpf.RGBBitCount) + { + case 32: + if (ISBITMASK(0x000000ff,0x0000ff00,0x00ff0000,0xff000000)) + { + return DXGI_FORMAT_R8G8B8A8_UNORM; + } + + if (ISBITMASK(0x00ff0000,0x0000ff00,0x000000ff,0xff000000)) + { + return DXGI_FORMAT_B8G8R8A8_UNORM; + } + + if (ISBITMASK(0x00ff0000,0x0000ff00,0x000000ff,0x00000000)) + { + return DXGI_FORMAT_B8G8R8X8_UNORM; + } + + // No DXGI format maps to ISBITMASK(0x000000ff,0x0000ff00,0x00ff0000,0x00000000) aka D3DFMT_X8B8G8R8 + + // Note that many common DDS reader/writers (including D3DX) swap the + // the RED/BLUE masks for 10:10:10:2 formats. We assume + // below that the 'backwards' header mask is being used since it is most + // likely written by D3DX. The more robust solution is to use the 'DX10' + // header extension and specify the DXGI_FORMAT_R10G10B10A2_UNORM format directly + + // For 'correct' writers, this should be 0x000003ff,0x000ffc00,0x3ff00000 for RGB data + if (ISBITMASK(0x3ff00000,0x000ffc00,0x000003ff,0xc0000000)) + { + return DXGI_FORMAT_R10G10B10A2_UNORM; + } + + // No DXGI format maps to ISBITMASK(0x000003ff,0x000ffc00,0x3ff00000,0xc0000000) aka D3DFMT_A2R10G10B10 + + if (ISBITMASK(0x0000ffff,0xffff0000,0x00000000,0x00000000)) + { + return DXGI_FORMAT_R16G16_UNORM; + } + + if (ISBITMASK(0xffffffff,0x00000000,0x00000000,0x00000000)) + { + // Only 32-bit color channel format in D3D9 was R32F + return DXGI_FORMAT_R32_FLOAT; // D3DX writes this out as a FourCC of 114 + } + break; + + case 24: + // No 24bpp DXGI formats aka D3DFMT_R8G8B8 + break; + + case 16: + if (ISBITMASK(0x7c00,0x03e0,0x001f,0x8000)) + { + return DXGI_FORMAT_B5G5R5A1_UNORM; + } + if (ISBITMASK(0xf800,0x07e0,0x001f,0x0000)) + { + return DXGI_FORMAT_B5G6R5_UNORM; + } + + // No DXGI format maps to ISBITMASK(0x7c00,0x03e0,0x001f,0x0000) aka D3DFMT_X1R5G5B5 + + if (ISBITMASK(0x0f00,0x00f0,0x000f,0xf000)) + { + return DXGI_FORMAT_B4G4R4A4_UNORM; + } + + // No DXGI format maps to ISBITMASK(0x0f00,0x00f0,0x000f,0x0000) aka D3DFMT_X4R4G4B4 + + // No 3:3:2, 3:3:2:8, or paletted DXGI formats aka D3DFMT_A8R3G3B2, D3DFMT_R3G3B2, D3DFMT_P8, D3DFMT_A8P8, etc. + break; + } + } + else if (ddpf.flags & DDS_LUMINANCE) + { + if (8 == ddpf.RGBBitCount) + { + if (ISBITMASK(0x000000ff,0x00000000,0x00000000,0x00000000)) + { + return DXGI_FORMAT_R8_UNORM; // D3DX10/11 writes this out as DX10 extension + } + + // No DXGI format maps to ISBITMASK(0x0f,0x00,0x00,0xf0) aka D3DFMT_A4L4 + } + + if (16 == ddpf.RGBBitCount) + { + if (ISBITMASK(0x0000ffff,0x00000000,0x00000000,0x00000000)) + { + return DXGI_FORMAT_R16_UNORM; // D3DX10/11 writes this out as DX10 extension + } + if (ISBITMASK(0x000000ff,0x00000000,0x00000000,0x0000ff00)) + { + return DXGI_FORMAT_R8G8_UNORM; // D3DX10/11 writes this out as DX10 extension + } + } + } + else if (ddpf.flags & DDS_ALPHA) + { + if (8 == ddpf.RGBBitCount) + { + return DXGI_FORMAT_A8_UNORM; + } + } + else if (ddpf.flags & DDS_BUMPDUDV) + { + if (16 == ddpf.RGBBitCount) + { + if (ISBITMASK(0x00ff, 0xff00, 0x0000, 0x0000)) + { + return DXGI_FORMAT_R8G8_SNORM; // D3DX10/11 writes this out as DX10 extension + } + } + + if (32 == ddpf.RGBBitCount) + { + if (ISBITMASK(0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000)) + { + return DXGI_FORMAT_R8G8B8A8_SNORM; // D3DX10/11 writes this out as DX10 extension + } + if (ISBITMASK(0x0000ffff, 0xffff0000, 0x00000000, 0x00000000)) + { + return DXGI_FORMAT_R16G16_SNORM; // D3DX10/11 writes this out as DX10 extension + } + + // No DXGI format maps to ISBITMASK(0x3ff00000, 0x000ffc00, 0x000003ff, 0xc0000000) aka D3DFMT_A2W10V10U10 + } + } + else if (ddpf.flags & DDS_FOURCC) + { + if (MAKEFOURCC( 'D', 'X', 'T', '1' ) == ddpf.fourCC) + { + return DXGI_FORMAT_BC1_UNORM; + } + if (MAKEFOURCC( 'D', 'X', 'T', '3' ) == ddpf.fourCC) + { + return DXGI_FORMAT_BC2_UNORM; + } + if (MAKEFOURCC( 'D', 'X', 'T', '5' ) == ddpf.fourCC) + { + return DXGI_FORMAT_BC3_UNORM; + } + + // While pre-multiplied alpha isn't directly supported by the DXGI formats, + // they are basically the same as these BC formats so they can be mapped + if (MAKEFOURCC( 'D', 'X', 'T', '2' ) == ddpf.fourCC) + { + return DXGI_FORMAT_BC2_UNORM; + } + if (MAKEFOURCC( 'D', 'X', 'T', '4' ) == ddpf.fourCC) + { + return DXGI_FORMAT_BC3_UNORM; + } + + if (MAKEFOURCC( 'A', 'T', 'I', '1' ) == ddpf.fourCC) + { + return DXGI_FORMAT_BC4_UNORM; + } + if (MAKEFOURCC( 'B', 'C', '4', 'U' ) == ddpf.fourCC) + { + return DXGI_FORMAT_BC4_UNORM; + } + if (MAKEFOURCC( 'B', 'C', '4', 'S' ) == ddpf.fourCC) + { + return DXGI_FORMAT_BC4_SNORM; + } + + if (MAKEFOURCC( 'A', 'T', 'I', '2' ) == ddpf.fourCC) + { + return DXGI_FORMAT_BC5_UNORM; + } + if (MAKEFOURCC( 'B', 'C', '5', 'U' ) == ddpf.fourCC) + { + return DXGI_FORMAT_BC5_UNORM; + } + if (MAKEFOURCC( 'B', 'C', '5', 'S' ) == ddpf.fourCC) + { + return DXGI_FORMAT_BC5_SNORM; + } + + // BC6H and BC7 are written using the "DX10" extended header + + if (MAKEFOURCC( 'R', 'G', 'B', 'G' ) == ddpf.fourCC) + { + return DXGI_FORMAT_R8G8_B8G8_UNORM; + } + if (MAKEFOURCC( 'G', 'R', 'G', 'B' ) == ddpf.fourCC) + { + return DXGI_FORMAT_G8R8_G8B8_UNORM; + } + + if (MAKEFOURCC('Y','U','Y','2') == ddpf.fourCC) + { + return DXGI_FORMAT_YUY2; + } + + // Check for D3DFORMAT enums being set here + switch( ddpf.fourCC ) + { + case 36: // D3DFMT_A16B16G16R16 + return DXGI_FORMAT_R16G16B16A16_UNORM; + + case 110: // D3DFMT_Q16W16V16U16 + return DXGI_FORMAT_R16G16B16A16_SNORM; + + case 111: // D3DFMT_R16F + return DXGI_FORMAT_R16_FLOAT; + + case 112: // D3DFMT_G16R16F + return DXGI_FORMAT_R16G16_FLOAT; + + case 113: // D3DFMT_A16B16G16R16F + return DXGI_FORMAT_R16G16B16A16_FLOAT; + + case 114: // D3DFMT_R32F + return DXGI_FORMAT_R32_FLOAT; + + case 115: // D3DFMT_G32R32F + return DXGI_FORMAT_R32G32_FLOAT; + + case 116: // D3DFMT_A32B32G32R32F + return DXGI_FORMAT_R32G32B32A32_FLOAT; + } + } + + return DXGI_FORMAT_UNKNOWN; + } + + + //-------------------------------------------------------------------------------------- + DXGI_FORMAT MakeSRGB( _In_ DXGI_FORMAT format ) + { + switch( format ) + { + case DXGI_FORMAT_R8G8B8A8_UNORM: + return DXGI_FORMAT_R8G8B8A8_UNORM_SRGB; + + case DXGI_FORMAT_BC1_UNORM: + return DXGI_FORMAT_BC1_UNORM_SRGB; + + case DXGI_FORMAT_BC2_UNORM: + return DXGI_FORMAT_BC2_UNORM_SRGB; + + case DXGI_FORMAT_BC3_UNORM: + return DXGI_FORMAT_BC3_UNORM_SRGB; + + case DXGI_FORMAT_B8G8R8A8_UNORM: + return DXGI_FORMAT_B8G8R8A8_UNORM_SRGB; + + case DXGI_FORMAT_B8G8R8X8_UNORM: + return DXGI_FORMAT_B8G8R8X8_UNORM_SRGB; + + case DXGI_FORMAT_BC7_UNORM: + return DXGI_FORMAT_BC7_UNORM_SRGB; + + default: + return format; + } + } + + + //-------------------------------------------------------------------------------------- + HRESULT FillInitData(_In_ size_t width, + _In_ size_t height, + _In_ size_t depth, + _In_ size_t mipCount, + _In_ size_t arraySize, + _In_ DXGI_FORMAT format, + _In_ size_t maxsize, + _In_ size_t bitSize, + _In_reads_bytes_(bitSize) const uint8_t* bitData, + _Out_ size_t& twidth, + _Out_ size_t& theight, + _Out_ size_t& tdepth, + _Out_ size_t& skipMip, + _Out_writes_(mipCount*arraySize) D3D12_SUBRESOURCE_DATA* initData) + { + if (!bitData || !initData) + { + return E_POINTER; + } + + skipMip = 0; + twidth = 0; + theight = 0; + tdepth = 0; + + size_t NumBytes = 0; + size_t RowBytes = 0; + const uint8_t* pSrcBits = bitData; + const uint8_t* pEndBits = bitData + bitSize; + + size_t index = 0; + for (size_t j = 0; j < arraySize; j++) + { + size_t w = width; + size_t h = height; + size_t d = depth; + for (size_t i = 0; i < mipCount; i++) + { + GetSurfaceInfo(w, + h, + format, + &NumBytes, + &RowBytes, + nullptr + ); + + if ((mipCount <= 1) || !maxsize || (w <= maxsize && h <= maxsize && d <= maxsize)) + { + if (!twidth) + { + twidth = w; + theight = h; + tdepth = d; + } + + assert(index < mipCount * arraySize); + _Analysis_assume_(index < mipCount * arraySize); + initData[index].pData = reinterpret_cast(pSrcBits); + initData[index].RowPitch = RowBytes; + initData[index].SlicePitch = NumBytes; + ++index; + } + else if (!j) + { + // Count number of skipped mipmaps (first item only) + ++skipMip; + } + + if (pSrcBits + (NumBytes*d) > pEndBits) + { + return HRESULT_FROM_WIN32(ERROR_HANDLE_EOF); + } + + pSrcBits += NumBytes * d; + + w = w >> 1; + h = h >> 1; + d = d >> 1; + if (w == 0) + { + w = 1; + } + if (h == 0) + { + h = 1; + } + if (d == 0) + { + d = 1; + } + } + } + + return (index > 0) ? S_OK : E_FAIL; + } + + + //-------------------------------------------------------------------------------------- + HRESULT CreateTextureResource( + _In_ ID3D12Device* d3dDevice, + _In_ D3D12_RESOURCE_DIMENSION resDim, + _In_ size_t width, + _In_ size_t height, + _In_ size_t depth, + _In_ size_t mipCount, + _In_ size_t arraySize, + _In_ DXGI_FORMAT format, + _In_ D3D12_RESOURCE_FLAGS flags, + _In_ bool forceSRGB, + _Outptr_ ID3D12Resource** texture) + { + if (!d3dDevice) + return E_POINTER; + + HRESULT hr = E_FAIL; + + if (forceSRGB) + { + format = MakeSRGB(format); + } + + D3D12_RESOURCE_DESC desc = {}; + desc.Width = static_cast(width); + desc.Height = static_cast(height); + desc.MipLevels = static_cast(mipCount); + desc.DepthOrArraySize = (resDim == D3D12_RESOURCE_DIMENSION_TEXTURE3D) ? static_cast(depth) : static_cast(arraySize); + desc.Format = format; + desc.Flags = flags; + desc.SampleDesc.Count = 1; + desc.SampleDesc.Quality = 0; + desc.Dimension = resDim; + + CD3DX12_HEAP_PROPERTIES defaultHeapProperties(D3D12_HEAP_TYPE_DEFAULT); + + hr = d3dDevice->CreateCommittedResource( + &defaultHeapProperties, + D3D12_HEAP_FLAG_NONE, + &desc, + D3D12_RESOURCE_STATE_COPY_DEST, + nullptr, + IID_PPV_ARGS(texture)); + if (SUCCEEDED(hr)) + { + _Analysis_assume_(*texture != 0); + + SetDebugObjectName(*texture, L"DDSTextureLoader"); + } + + return hr; + } + + //-------------------------------------------------------------------------------------- + HRESULT CreateTextureFromDDS(_In_ ID3D12Device* d3dDevice, + _In_ const DDS_HEADER* header, + _In_reads_bytes_(bitSize) const uint8_t* bitData, + _In_ size_t bitSize, + _In_ size_t maxsize, + _In_ D3D12_RESOURCE_FLAGS flags, + _In_ bool forceSRGB, + _In_ bool reserveFullMipChain, + _Outptr_ ID3D12Resource** texture, + _Out_ std::vector& subresources, + _Out_opt_ bool* outIsCubeMap) + { + HRESULT hr = S_OK; + + UINT width = header->width; + UINT height = header->height; + UINT depth = header->depth; + + D3D12_RESOURCE_DIMENSION resDim = D3D12_RESOURCE_DIMENSION_UNKNOWN; + UINT arraySize = 1; + DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN; + bool isCubeMap = false; + + size_t mipCount = header->mipMapCount; + if (0 == mipCount) + { + mipCount = 1; + } + + if ((header->ddspf.flags & DDS_FOURCC) && + (MAKEFOURCC('D', 'X', '1', '0') == header->ddspf.fourCC)) + { + auto d3d10ext = reinterpret_cast((const char*)header + sizeof(DDS_HEADER)); + + arraySize = d3d10ext->arraySize; + if (arraySize == 0) + { + return HRESULT_FROM_WIN32(ERROR_INVALID_DATA); + } + + switch (d3d10ext->dxgiFormat) + { + case DXGI_FORMAT_AI44: + case DXGI_FORMAT_IA44: + case DXGI_FORMAT_P8: + case DXGI_FORMAT_A8P8: + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + + default: + if (BitsPerPixel(d3d10ext->dxgiFormat) == 0) + { + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + } + + format = d3d10ext->dxgiFormat; + + switch (d3d10ext->resourceDimension) + { + case D3D12_RESOURCE_DIMENSION_TEXTURE1D: + // D3DX writes 1D textures with a fixed Height of 1 + if ((header->flags & DDS_HEIGHT) && height != 1) + { + return HRESULT_FROM_WIN32(ERROR_INVALID_DATA); + } + height = depth = 1; + break; + + case D3D12_RESOURCE_DIMENSION_TEXTURE2D: + if (d3d10ext->miscFlag & 0x4 /* RESOURCE_MISC_TEXTURECUBE */) + { + arraySize *= 6; + isCubeMap = true; + } + depth = 1; + break; + + case D3D12_RESOURCE_DIMENSION_TEXTURE3D: + if (!(header->flags & DDS_HEADER_FLAGS_VOLUME)) + { + return HRESULT_FROM_WIN32(ERROR_INVALID_DATA); + } + + if (arraySize > 1) + { + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + break; + + default: + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + + resDim = static_cast(d3d10ext->resourceDimension); + } + else + { + format = GetDXGIFormat(header->ddspf); + + if (format == DXGI_FORMAT_UNKNOWN) + { + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + + if (header->flags & DDS_HEADER_FLAGS_VOLUME) + { + resDim = D3D12_RESOURCE_DIMENSION_TEXTURE3D; + } + else + { + if (header->caps2 & DDS_CUBEMAP) + { + // We require all six faces to be defined + if ((header->caps2 & DDS_CUBEMAP_ALLFACES) != DDS_CUBEMAP_ALLFACES) + { + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + + arraySize = 6; + isCubeMap = true; + } + + depth = 1; + resDim = D3D12_RESOURCE_DIMENSION_TEXTURE2D; + + // Note there's no way for a legacy Direct3D 9 DDS to express a '1D' texture + } + + assert(BitsPerPixel(format) != 0); + } + + // Bound sizes (for security purposes we don't trust DDS file metadata larger than the Direct3D hardware requirements) + if (mipCount > D3D12_REQ_MIP_LEVELS) + { + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + + switch (resDim) + { + case D3D12_RESOURCE_DIMENSION_TEXTURE1D: + if ((arraySize > D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION) || + (width > D3D12_REQ_TEXTURE1D_U_DIMENSION)) + { + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + break; + + case D3D12_RESOURCE_DIMENSION_TEXTURE2D: + if (isCubeMap) + { + // This is the right bound because we set arraySize to (NumCubes*6) above + if ((arraySize > D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION) || + (width > D3D12_REQ_TEXTURECUBE_DIMENSION) || + (height > D3D12_REQ_TEXTURECUBE_DIMENSION)) + { + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + } + else if ((arraySize > D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION) || + (width > D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION) || + (height > D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION)) + { + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + break; + + case D3D12_RESOURCE_DIMENSION_TEXTURE3D: + if ((arraySize > 1) || + (width > D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION) || + (height > D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION) || + (depth > D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION)) + { + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + break; + + default: + return HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED); + } + + if (outIsCubeMap != nullptr) + { + *outIsCubeMap = isCubeMap; + } + + // Create the texture + std::vector initData; + initData.resize(mipCount * arraySize); + + size_t skipMip = 0; + size_t twidth = 0; + size_t theight = 0; + size_t tdepth = 0; + hr = FillInitData(width, height, depth, mipCount, arraySize, format, maxsize, bitSize, bitData, + twidth, theight, tdepth, skipMip, &initData[0]); + + if (SUCCEEDED(hr)) + { + size_t reservedMips = mipCount; + if (reserveFullMipChain) + { + reservedMips = std::min(D3D12_REQ_MIP_LEVELS, CountMips(width, height)); + } + + hr = CreateTextureResource(d3dDevice, resDim, twidth, theight, tdepth, reservedMips - skipMip, arraySize, + format, flags, forceSRGB, texture); + + if (FAILED(hr) && !maxsize && (mipCount > 1)) + { + maxsize = (resDim == D3D12_RESOURCE_DIMENSION_TEXTURE3D) + ? D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION + : D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION; + + hr = FillInitData(width, height, depth, mipCount, arraySize, format, maxsize, bitSize, bitData, + twidth, theight, tdepth, skipMip, &initData[0]); + if (SUCCEEDED(hr)) + { + hr = CreateTextureResource(d3dDevice, resDim, twidth, theight, tdepth, mipCount - skipMip, arraySize, + format, flags, forceSRGB, texture); + } + } + } + + if (SUCCEEDED(hr)) + { + subresources.insert(subresources.end(), initData.begin(), initData.end()); + } + + return hr; + } + + //-------------------------------------------------------------------------------------- + DDS_ALPHA_MODE GetAlphaMode( _In_ const DDS_HEADER* header ) + { + if ( header->ddspf.flags & DDS_FOURCC ) + { + if ( MAKEFOURCC( 'D', 'X', '1', '0' ) == header->ddspf.fourCC ) + { + auto d3d10ext = reinterpret_cast( (const char*)header + sizeof(DDS_HEADER) ); + auto mode = static_cast( d3d10ext->miscFlags2 & DDS_MISC_FLAGS2_ALPHA_MODE_MASK ); + switch( mode ) + { + case DDS_ALPHA_MODE_STRAIGHT: + case DDS_ALPHA_MODE_PREMULTIPLIED: + case DDS_ALPHA_MODE_OPAQUE: + case DDS_ALPHA_MODE_CUSTOM: + return mode; + } + } + else if ( ( MAKEFOURCC( 'D', 'X', 'T', '2' ) == header->ddspf.fourCC ) + || ( MAKEFOURCC( 'D', 'X', 'T', '4' ) == header->ddspf.fourCC ) ) + { + return DDS_ALPHA_MODE_PREMULTIPLIED; + } + } + + return DDS_ALPHA_MODE_UNKNOWN; + } + +} // anonymous namespace + + +//-------------------------------------------------------------------------------------- +_Use_decl_annotations_ +HRESULT DirectX::LoadDDSTextureFromMemory( + ID3D12Device* d3dDevice, + const uint8_t* ddsData, + size_t ddsDataSize, + ID3D12Resource** texture, + std::vector& subresources, + size_t maxsize, + DDS_ALPHA_MODE* alphaMode, + bool* isCubeMap) +{ + return LoadDDSTextureFromMemoryEx( + d3dDevice, + ddsData, + ddsDataSize, + maxsize, + D3D12_RESOURCE_FLAG_NONE, + false, + false, + texture, + subresources, + alphaMode, + isCubeMap); +} + + +_Use_decl_annotations_ +HRESULT DirectX::LoadDDSTextureFromMemoryEx( + ID3D12Device* d3dDevice, + const uint8_t* ddsData, + size_t ddsDataSize, + size_t maxsize, + D3D12_RESOURCE_FLAGS flags, + bool forceSRGB, + bool reserveFullMipChain, + ID3D12Resource** texture, + std::vector& subresources, + DDS_ALPHA_MODE* alphaMode, + bool* isCubeMap ) +{ + if ( texture ) + { + *texture = nullptr; + } + if ( alphaMode ) + { + *alphaMode = DDS_ALPHA_MODE_UNKNOWN; + } + if ( isCubeMap ) + { + *isCubeMap = false; + } + + if (!d3dDevice || !ddsData || !texture) + { + return E_INVALIDARG; + } + + // Validate DDS file in memory + if (ddsDataSize < (sizeof(uint32_t) + sizeof(DDS_HEADER))) + { + return E_FAIL; + } + + uint32_t dwMagicNumber = *( const uint32_t* )( ddsData ); + if (dwMagicNumber != DDS_MAGIC) + { + return E_FAIL; + } + + auto header = reinterpret_cast( ddsData + sizeof( uint32_t ) ); + + // Verify header to validate DDS file + if (header->size != sizeof(DDS_HEADER) || + header->ddspf.size != sizeof(DDS_PIXELFORMAT)) + { + return E_FAIL; + } + + // Check for DX10 extension + bool bDXT10Header = false; + if ((header->ddspf.flags & DDS_FOURCC) && + (MAKEFOURCC( 'D', 'X', '1', '0' ) == header->ddspf.fourCC) ) + { + // Must be long enough for both headers and magic value + if (ddsDataSize < (sizeof(DDS_HEADER) + sizeof(uint32_t) + sizeof(DDS_HEADER_DXT10))) + { + return E_FAIL; + } + + bDXT10Header = true; + } + + ptrdiff_t offset = sizeof( uint32_t ) + + sizeof( DDS_HEADER ) + + (bDXT10Header ? sizeof( DDS_HEADER_DXT10 ) : 0); + + HRESULT hr = CreateTextureFromDDS( d3dDevice, + header, ddsData + offset, ddsDataSize - offset, maxsize, + flags, forceSRGB, reserveFullMipChain, + texture, subresources, isCubeMap ); + if ( SUCCEEDED(hr) ) + { + if (texture != 0 && *texture != 0) + { + SetDebugObjectName(*texture, L"DDSTextureLoader"); + } + + if ( alphaMode ) + *alphaMode = GetAlphaMode( header ); + } + + return hr; +} + + +//-------------------------------------------------------------------------------------- +_Use_decl_annotations_ +HRESULT DirectX::LoadDDSTextureFromFile( + ID3D12Device* d3dDevice, + const wchar_t* fileName, + ID3D12Resource** texture, + std::unique_ptr& ddsData, + std::vector& subresources, + size_t maxsize, + DDS_ALPHA_MODE* alphaMode, + bool* isCubeMap ) +{ + return LoadDDSTextureFromFileEx( + d3dDevice, + fileName, + maxsize, + D3D12_RESOURCE_FLAG_NONE, + false, + false, + texture, + ddsData, + subresources, + alphaMode, + isCubeMap ); +} + +_Use_decl_annotations_ +HRESULT DirectX::LoadDDSTextureFromFileEx( + ID3D12Device* d3dDevice, + const wchar_t* fileName, + size_t maxsize, + D3D12_RESOURCE_FLAGS flags, + bool forceSRGB, + bool reserveFullMipChain, + ID3D12Resource** texture, + std::unique_ptr& ddsData, + std::vector& subresources, + DDS_ALPHA_MODE* alphaMode, + bool* isCubeMap ) +{ + if ( texture ) + { + *texture = nullptr; + } + if ( alphaMode ) + { + *alphaMode = DDS_ALPHA_MODE_UNKNOWN; + } + if ( isCubeMap ) + { + *isCubeMap = false; + } + + if (!d3dDevice || !fileName || !texture) + { + return E_INVALIDARG; + } + + DDS_HEADER* header = nullptr; + uint8_t* bitData = nullptr; + size_t bitSize = 0; + + HRESULT hr = LoadTextureDataFromFile( fileName, + ddsData, + &header, + &bitData, + &bitSize + ); + if (FAILED(hr)) + { + return hr; + } + + hr = CreateTextureFromDDS( d3dDevice, + header, bitData, bitSize, maxsize, + flags, forceSRGB, reserveFullMipChain, + texture, subresources, isCubeMap ); + + if ( SUCCEEDED(hr) ) + { +#if !defined(NO_D3D12_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) ) + if (texture != 0) + { + CHAR strFileA[MAX_PATH]; + int result = WideCharToMultiByte( CP_ACP, + WC_NO_BEST_FIT_CHARS, + fileName, + -1, + strFileA, + MAX_PATH, + nullptr, + FALSE + ); + if ( result > 0 ) + { + const wchar_t* pstrName = wcsrchr(fileName, '\\'); + if (!pstrName) + { + pstrName = fileName; + } + else + { + pstrName++; + } + + if (texture != 0 && *texture != 0) + { + (*texture)->SetName(pstrName); + } + } + } +#endif + + if ( alphaMode ) + *alphaMode = GetAlphaMode( header ); + } + + return hr; +} diff --git a/LEngine/DDSTextureLoader12.h b/LEngine/DDSTextureLoader12.h new file mode 100644 index 0000000..31f99ce --- /dev/null +++ b/LEngine/DDSTextureLoader12.h @@ -0,0 +1,88 @@ +//-------------------------------------------------------------------------------------- +// File: DDSTextureLoader12.h +// +// Functions for loading a DDS texture and creating a Direct3D 12 runtime resource for it +// +// Note these functions are useful as a light-weight runtime loader for DDS files. For +// a full-featured DDS file reader, writer, and texture processing pipeline see +// the 'Texconv' sample and the 'DirectXTex' library. +// +// 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. +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// http://go.microsoft.com/fwlink/?LinkId=248926 +// http://go.microsoft.com/fwlink/?LinkID=615561 +//-------------------------------------------------------------------------------------- + +#pragma once + +#include + +#include +#include +#include + + +namespace DirectX +{ + enum DDS_ALPHA_MODE + { + DDS_ALPHA_MODE_UNKNOWN = 0, + DDS_ALPHA_MODE_STRAIGHT = 1, + DDS_ALPHA_MODE_PREMULTIPLIED = 2, + DDS_ALPHA_MODE_OPAQUE = 3, + DDS_ALPHA_MODE_CUSTOM = 4, + }; + + // Standard version + HRESULT __cdecl LoadDDSTextureFromMemory( + _In_ ID3D12Device* d3dDevice, + _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData, + size_t ddsDataSize, + _Outptr_ ID3D12Resource** texture, + std::vector& subresources, + size_t maxsize = 0, + _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr, + _Out_opt_ bool* isCubeMap = nullptr); + + HRESULT __cdecl LoadDDSTextureFromFile( + _In_ ID3D12Device* d3dDevice, + _In_z_ const wchar_t* szFileName, + _Outptr_ ID3D12Resource** texture, + std::unique_ptr& ddsData, + std::vector& subresources, + size_t maxsize = 0, + _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr, + _Out_opt_ bool* isCubeMap = nullptr); + + // Extended version + HRESULT __cdecl LoadDDSTextureFromMemoryEx( + _In_ ID3D12Device* d3dDevice, + _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData, + size_t ddsDataSize, + size_t maxsize, + D3D12_RESOURCE_FLAGS flags, + bool forceSRGB, + bool reserveFullMipChain, + _Outptr_ ID3D12Resource** texture, + std::vector& subresources, + _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr, + _Out_opt_ bool* isCubeMap = nullptr); + + HRESULT __cdecl LoadDDSTextureFromFileEx( + _In_ ID3D12Device* d3dDevice, + _In_z_ const wchar_t* szFileName, + size_t maxsize, + D3D12_RESOURCE_FLAGS flags, + bool forceSRGB, + bool reserveFullMipChain, + _Outptr_ ID3D12Resource** texture, + std::unique_ptr& ddsData, + std::vector& subresources, + _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr, + _Out_opt_ bool* isCubeMap = nullptr); +} diff --git a/LEngine/FatalError.h b/LEngine/FatalError.h new file mode 100644 index 0000000..f1e583a --- /dev/null +++ b/LEngine/FatalError.h @@ -0,0 +1,19 @@ +#ifndef FatalError_h__ +#define FatalError_h__ + +#include + +inline void FatalError(const TCHAR* message) { + int b1 = 12750; + int b2 = 4750; + int len = 80; + + for(int i = 0; i < 2; ++i) { + Beep(b1, len); + Beep(b2, len); + } + + MessageBox(NULL, message, TEXT("Error"), MB_OK); + exit(0); +} +#endif // FatalError_h__ diff --git a/LEngine/File.h b/LEngine/File.h new file mode 100644 index 0000000..458fc3b --- /dev/null +++ b/LEngine/File.h @@ -0,0 +1,46 @@ +#ifndef File_h__ +#define File_h__ + +#include +#include +#include + +uint32_t FileSize(const std::wstring& path) { + std::ifstream file(path, std::ios_base::binary); + if (!file.good()) { + return 0; + } + std::streampos current_position = file.tellg(); + file.seekg(0, std::ios::end); + std::streampos ending_position = file.tellg(); + file.seekg(current_position); + file.close(); + return (uint32_t)(ending_position - current_position); +} + +void FileReadAllText(const std::wstring& path, std::string& result) { + auto size = FileSize(path); + if (size == 0) { + return; + } + + std::ifstream file(path, std::ios::in); + result.reserve(size); + result.assign(std::istreambuf_iterator(file), std::istreambuf_iterator()); + file.close(); +} + +void FileReadAllBytes(const std::wstring& path, std::vector& result) { + auto size = FileSize(path); + if (size == 0) { + return; + } + + std::ifstream file(path, std::ios::in | std::ios::binary); + result.reserve(size); + result.assign(std::istreambuf_iterator(file), std::istreambuf_iterator()); + file.close(); +} + + +#endif // File_h__ diff --git a/LEngine/Filesystem.h b/LEngine/Filesystem.h new file mode 100644 index 0000000..29383eb --- /dev/null +++ b/LEngine/Filesystem.h @@ -0,0 +1,14 @@ +#ifndef Filesystem_h__ +#define Filesystem_h__ + +#include +#include + +class Filesystem { +public: + //static std::shared_ptr Create(const std::string& assetsFolder); + +private: + //Filesystem(); +}; +#endif // Filesystem_h__ diff --git a/LEngine/ForwardDeclarations.h b/LEngine/ForwardDeclarations.h new file mode 100644 index 0000000..80ea00f --- /dev/null +++ b/LEngine/ForwardDeclarations.h @@ -0,0 +1,35 @@ +#pragma once + +#include +#include +#include "lmath.h" + +class GameObject; +typedef std::shared_ptr GameObjectPtr; + +class Component; +typedef std::shared_ptr ComponentPtr; + +class Scene; +typedef std::shared_ptr ScenePtr; + +class Transform; +typedef std::shared_ptr TransformPtr; + +class Shader; +typedef std::shared_ptr ShaderPtr; + +class Mesh; +typedef std::shared_ptr MeshPtr; + +class Material; +typedef std::shared_ptr MaterialPtr; + +class Mouse; +typedef std::shared_ptr MousePtr; + +class Keyboard; +typedef std::shared_ptr KeyboardPtr; + +class Texture; +typedef std::shared_ptr TexturePtr; \ No newline at end of file diff --git a/LEngine/ForwardListItem.h b/LEngine/ForwardListItem.h new file mode 100644 index 0000000..5baff48 --- /dev/null +++ b/LEngine/ForwardListItem.h @@ -0,0 +1,8 @@ +#ifndef ForwardListItem_h__ +#define ForwardListItem_h__ + +class ForwardListItem{ +public: + ForwardListItem* next; +}; +#endif // ForwardListItem_h__ diff --git a/LEngine/GameObject.cpp b/LEngine/GameObject.cpp new file mode 100644 index 0000000..15bce53 --- /dev/null +++ b/LEngine/GameObject.cpp @@ -0,0 +1,18 @@ + +#include "Transform.h" +#include "LEngine.h" +#include "Component.h" +#include "GameObject.h" + +void GameObject::tick(float deltaTime) { + for (auto c : components) { + c->tick(deltaTime); + } +} + +void GameObject::construct2() { + Object::construct(); + auto this_ptr = std::static_pointer_cast(shared_from_this()); + LEngine::Instance()->GetActiveScene()->objects.push_back(this_ptr); + this_ptr->transform = this_ptr->AddComponent(); +} \ No newline at end of file diff --git a/LEngine/GameObject.h b/LEngine/GameObject.h new file mode 100644 index 0000000..f10facd --- /dev/null +++ b/LEngine/GameObject.h @@ -0,0 +1,94 @@ +#ifndef GameObject___h__ +#define GameObject___h__ + +#include "ForwardDeclarations.h" +#include +#include +#include +#include "ObjectsFactory.h" +#include "OutputArchive.h" +#include "Transform.h" + +LOBJECT(GameObject, Object) +public: + TransformPtr transform; + + void tick(float deltaTime); + + virtual void serialize(Archive& archive) override { + Object::serialize(archive); + + if (archive.is_loading()) { + components.clear(); + transform = nullptr; + } + + Archive::size_type cnt = components.size(); + archive << cnt; + + if (archive.is_loading()) { + for (Archive::size_type i = 0; i < cnt; ++i) { + std::shared_ptr obj; + archive << obj; + components.push_back(std::static_pointer_cast(obj)); + + auto tp = std::dynamic_pointer_cast(obj); + if (tp != nullptr) { + transform = tp; + } + } + } else { + for (auto component : components) { + archive << std::static_pointer_cast(component); + } + } + } + + std::shared_ptr as_game_object() { + return std::static_pointer_cast(shared_from_this()); + } + + template + std::shared_ptr AddComponent() { + auto component = T::create(); + component->gameObject = as_game_object(); + components.push_back(component); + return component; + } + + template + std::shared_ptr GetComponent() { + for (auto c : components) { + auto tmp = std::dynamic_pointer_cast(c); + if (tmp != nullptr) { + return tmp; + } + } + return nullptr; + } + + template + std::vector> GetComponents() { + std::vector> result; + for (auto c : components) { + auto tmp = std::dynamic_pointer_cast(c); + if (tmp != nullptr) { + result.push_back(tmp); + } + } + return result; + } + + void construct() override { + construct2(); + } + void construct2(); + +private: + GameObject() {} + std::vector components; +}; + + + +#endif // GameObject___h__ diff --git a/LEngine/GizmoVertex.h b/LEngine/GizmoVertex.h new file mode 100644 index 0000000..0bac385 --- /dev/null +++ b/LEngine/GizmoVertex.h @@ -0,0 +1,24 @@ +#ifndef GizmoVertex_h__ +#define GizmoVertex_h__ + +#include "lmath.h" + +using namespace lm; + +struct GizmoVertex { + float4 position; + float4 color; + + GizmoVertex(float4 _position, float4 _color) + :position(_position), color(_color) + { + + } + + GizmoVertex(float3 _position, float4 _color) + :position(_position.x(), _position.y(), _position.z(), 1.0f), color(_color) + { + + } +}; +#endif // GizmoVertex_h__ diff --git a/LEngine/Gizmos.cpp b/LEngine/Gizmos.cpp new file mode 100644 index 0000000..7115d32 --- /dev/null +++ b/LEngine/Gizmos.cpp @@ -0,0 +1,131 @@ +#include "Gizmos.h" +#include "GameObject.h" +#include "LEngine.h" +#include "d3d11_helper.h" +#include "LEngine.h" + +Gizmos::Gizmos() + :_color(0.0f, 1.0f, 0.0f, 1.0f) +{ + _matrix = float4x4::identity(); +} +void Gizmos::SetMatrix(const float4x4& matrix) { + _matrix = matrix; +} +float4x4 Gizmos::GetMatrix() { + return _matrix; +} +void Gizmos::DrawBounds(const Bounds& bounds) { + auto b = bounds; + b.Scale(1.01f); + auto bMin = b.Minimum(); + auto bMax = b.Maximum(); + + DrawLine(float3(bMin.x(), bMax.y(), bMax.z()), float3(bMax.x(), bMax.y(), bMax.z())); + DrawLine(float3(bMin.x(), bMax.y(), bMin.z()), float3(bMax.x(), bMax.y(), bMin.z())); + DrawLine(float3(bMin.x(), bMax.y(), bMax.z()), float3(bMin.x(), bMax.y(), bMin.z())); + DrawLine(float3(bMax.x(), bMax.y(), bMax.z()), float3(bMax.x(), bMax.y(), bMin.z())); + + DrawLine(float3(bMin.x(), bMin.y(), bMax.z()), float3(bMax.x(), bMin.y(), bMax.z())); + DrawLine(float3(bMin.x(), bMin.y(), bMin.z()), float3(bMax.x(), bMin.y(), bMin.z())); + DrawLine(float3(bMin.x(), bMin.y(), bMax.z()), float3(bMin.x(), bMin.y(), bMin.z())); + DrawLine(float3(bMax.x(), bMin.y(), bMax.z()), float3(bMax.x(), bMin.y(), bMin.z())); + + DrawLine(float3(bMin.x(), bMin.y(), bMin.z()), float3(bMin.x(), bMax.y(), bMin.z())); + DrawLine(float3(bMax.x(), bMin.y(), bMin.z()), float3(bMax.x(), bMax.y(), bMin.z())); + + DrawLine(float3(bMin.x(), bMin.y(), bMax.z()), float3(bMin.x(), bMax.y(), bMax.z())); + DrawLine(float3(bMax.x(), bMin.y(), bMax.z()), float3(bMax.x(), bMax.y(), bMax.z())); + +} +void Gizmos::Init() { + /*_backMaterial = Material::Create(Shader::Create(L"shaders/gizmos.fx"), "gizmo_back"); + + _frontMaterial = Material::Create(_backMaterial->GetShader(), "gizmo_front"); + + _backMaterial->GetParametersBlock().SetValue("alphaMul", 0.2f); + _frontMaterial->GetParametersBlock().SetValue("alphaMul", 1.0f); + + D3D11_INPUT_ELEMENT_DESC ied[] = { + { "POSITION", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, + { "COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 16, D3D11_INPUT_PER_VERTEX_DATA, 0 }, + }; + + auto vs = _backMaterial->GetShader()->GetShader(ShaderType::Vs); + auto device = LEngine::Instance()->GetRenderer()->GetDevice(); + auto hr = device->CreateInputLayout(ied, 2, vs->blob->GetBufferPointer(), vs->blob->GetBufferSize(), &_inputLayout); + + D3D11_DEPTH_STENCIL_DESC desc; + d3d11_helper::DefaultDepthStencilDesc(desc); + hr = device->CreateDepthStencilState(&desc, &_frontLineDepthState); + desc.DepthFunc = D3D11_COMPARISON_GREATER; + hr = device->CreateDepthStencilState(&desc, &_backLineDepthState);*/ +} +void Gizmos::DrawLine(const float3& from, const float3& to) { + /*_vertices.push_back(GizmoVertex(lm::mul(_matrix, from), _color)); + _vertices.push_back(GizmoVertex(lm::mul(_matrix, to), _color));*/ +} +void Gizmos::DrawAll(CameraPtr camera) { + /*auto renderer = LEngine::Instance()->GetRenderer(); + + renderer->GetImmediateContext()->OMSetDepthStencilState(_frontLineDepthState, 0); + DrawImpl(camera, _frontMaterial); + renderer->GetImmediateContext()->OMSetDepthStencilState(_backLineDepthState, 0); + DrawImpl(camera, _backMaterial); + renderer->GetImmediateContext()->OMSetDepthStencilState(_frontLineDepthState, 0);*/ +} +void Gizmos::DrawImpl(CameraPtr camera, MaterialPtr material) { + /*if (_vertices.size() < 2) { + return; + } + //set system variables + auto& params = material->GetParametersBlock(); + float4x4 matrix = float4x4::identity(); + params.SetValue("mWorld", matrix); + params.SetValue("mView", camera->worldToCameraMatrix()); + params.SetValue("mProjection", camera->projectionMatrix()); + + auto renderer = LEngine::Instance()->GetRenderer(); + + material->Apply(renderer->GetImmediateContext()); + + ID3D11Buffer* vb[1] = { _vertexBuffer }; + UINT stride = sizeof(GizmoVertex); + UINT offset = 0; + + renderer->GetImmediateContext()->IASetInputLayout(_inputLayout); + renderer->GetImmediateContext()->IASetVertexBuffers(0, 1, vb, &stride, &offset); + renderer->GetImmediateContext()->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_LINELIST); + renderer->GetImmediateContext()->Draw(_vertices.size(), 0);*/ +} +void Gizmos::Clear() { + /*_vertices.clear(); + _matrix = float4x4::identity();*/ +} +void Gizmos::PrepareRender() { + /*_vertexBuffer = nullptr; + + if (_vertices.size() < 2) { + return; + } + //vertex buffer + D3D11_BUFFER_DESC desc = { 0 }; + desc.Usage = D3D11_USAGE_DEFAULT; + desc.ByteWidth = sizeof(_vertices[0])* _vertices.size(); + desc.BindFlags = D3D11_BIND_VERTEX_BUFFER; + desc.CPUAccessFlags = 0; + desc.MiscFlags = 0; + + D3D11_SUBRESOURCE_DATA data; + data.pSysMem = &_vertices[0]; + data.SysMemPitch = 0; + + _vertexBuffer = nullptr; + LEngine::Instance()->GetRenderer()->GetDevice()->CreateBuffer(&desc, &data, &_vertexBuffer);*/ +} +float4 Gizmos::GetColor() { + return _color; +} +void Gizmos::SetColor(float4 color) { + _color = color; +} \ No newline at end of file diff --git a/LEngine/Gizmos.h b/LEngine/Gizmos.h new file mode 100644 index 0000000..e1245d2 --- /dev/null +++ b/LEngine/Gizmos.h @@ -0,0 +1,41 @@ +#ifndef Gizmos_h__ +#define Gizmos_h__ + +#include "GizmoVertex.h" +#include +#include "Material.h" +#include "Shader.h" +#include "d3d11_types.h" + +#include "lmath.h" +#include "Camera.h" +#include "Bounds.h" + +using namespace lm; + +class Gizmos { +public: + Gizmos(); + void Init(); + void DrawLine(const float3& from, const float3& to); + void DrawBounds(const Bounds& bounds); + void DrawAll(CameraPtr camera); + void Clear(); + void PrepareRender(); + float4 GetColor(); + void SetColor(float4 color); + void SetMatrix(const float4x4& matrix); + float4x4 GetMatrix(); +private: + void DrawImpl(CameraPtr camera, MaterialPtr material); + ID3D11InputLayoutPtr _inputLayout; + ID3D11BufferPtr _vertexBuffer; + ID3D11DepthStencilStatePtr _backLineDepthState; + ID3D11DepthStencilStatePtr _frontLineDepthState; + MaterialPtr _backMaterial; + MaterialPtr _frontMaterial; + float4 _color; + float4x4 _matrix; + std::vector _vertices; +}; +#endif // Gizmos_h__ diff --git a/LEngine/Guid.h b/LEngine/Guid.h new file mode 100644 index 0000000..dd284d6 --- /dev/null +++ b/LEngine/Guid.h @@ -0,0 +1,43 @@ +#ifndef Guid_h__ +#define Guid_h__ + +#include +#include + +struct Guid { + union { + std::array data; + std::array datai; + }; + + Guid() :datai{ 0,0,0,0 } { + + } + Guid(uint32_t i0, uint32_t i1, uint32_t i2, uint32_t i3) : datai{ i0,i1,i2,i3 } { + + } + Guid(const std::array& data_i) : datai(data_i) { + + } + Guid(const std::array& data) : data(data) { + + } + Guid(const Guid& guid) : data(guid.data) { + + } + Guid& operator =(const Guid& right) { + data = right.data; + return *this; + } + bool operator ==(const Guid& right) const { + return std::equal(data.begin(), data.end(), right.data.begin()); + } + bool operator !=(const Guid& right) const { + return !std::equal(data.begin(), data.end(), right.data.begin()); + } + bool IsZero() const { + return (datai[0] == 0) && (datai[1] == 0) && (datai[2] == 0) && (datai[3] == 0); + } +}; + +#endif // Guid_h__ diff --git a/LEngine/InputArchive.h b/LEngine/InputArchive.h new file mode 100644 index 0000000..6e64db2 --- /dev/null +++ b/LEngine/InputArchive.h @@ -0,0 +1,49 @@ +#ifndef InputArchive_h__ +#define InputArchive_h__ + + +#include "Archive.h" +#include "Object.h" +#include +#include +#include +#include + +class InputArchive : public Archive { +public: + InputArchive(std::shared_ptr stream) + :_stream(stream) { + } + + virtual bool is_loading() const override { + return true; + } + + virtual void serialize(void* data, size_t size) override { + + _stream->read(reinterpret_cast(data), size); + if(!_stream) + { + + } + } + + size_type get_offset() const override + { + return _stream->tellg(); + } + + void set_offset(size_type offset) override { + _stream->seekg(offset, std::ios::beg); + } + + ~InputArchive() {} + + std::shared_ptr GetStream(){ + return _stream; + } +private: + std::shared_ptr _stream; +}; + +#endif // InputArchive_h__ diff --git a/LEngine/LEngine.cpp b/LEngine/LEngine.cpp new file mode 100644 index 0000000..805c15c --- /dev/null +++ b/LEngine/LEngine.cpp @@ -0,0 +1,26 @@ +#include "LEngine.h" +#include "AssetManager.h" + +std::shared_ptr LEngine::_instance = nullptr; + +std::shared_ptr LEngine::Instance() { + if (_instance == nullptr) { + _instance = std::shared_ptr(new LEngine()); + } + return _instance; +} + +ScenePtr LEngine::GetActiveScene() { + return _activeScene; +} + +void LEngine::Init(const std::wstring& assetsPath) { + AssetManager::Instance()->SetAssetsFolder(assetsPath); + _renderer->Init(); +} + +void LEngine::LoadScene(const std::string& path) { + _activeScene = nullptr; + _activeScene = std::make_shared(); + _activeScene->SetName("New scene"); +} \ No newline at end of file diff --git a/LEngine/LEngine.h b/LEngine/LEngine.h new file mode 100644 index 0000000..73be2da --- /dev/null +++ b/LEngine/LEngine.h @@ -0,0 +1,37 @@ +#ifndef Application_h__ +#define Application_h__ + +#include "Scene.h" +#include "ForwardDeclarations.h" +#include +#include "Renderer.h" +#include "RenderOutput.h" + +class LEngine { +public: + static std::shared_ptr Instance(); + friend class Scene; + ScenePtr GetActiveScene(); + void LoadScene(const std::string& path); + void Init(const std::wstring& assetsPath); + RendererPtr& GetRenderer() { + return _renderer; + } + void AddOutput(RenderOutputPtr output) { + _outputs.push_back(output); + } + std::vector GetOutputs() { + return _outputs; + } +private: + LEngine() + { + _renderer = std::make_shared(); + } + RendererPtr _renderer; + ScenePtr _activeScene; + static std::shared_ptr _instance; + std::vector _outputs; +}; + +#endif // Application_h__ diff --git a/LEngine/LEngine.vcxproj b/LEngine/LEngine.vcxproj new file mode 100644 index 0000000..6d8c567 --- /dev/null +++ b/LEngine/LEngine.vcxproj @@ -0,0 +1,185 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {91440EE0-7471-4D73-A6FD-3DCB64E56C13} + Win32Proj + StereoTest + 10.0.14393.0 + + + + StaticLibrary + true + v141 + Unicode + + + Application + false + v140_clang_3_7 + true + Unicode + + + + + + + + + + + + + true + + + false + + + + NotUsing + Level3 + Disabled + NMATH_SWIZZLE_ENABLE;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + D:\nettlemath;D:\nativelinq\nativelinq\nativelinq;D:\github\lframework;D:\lmath\lmath;D:\DirectXTex\DirectXTex + true + false + MultiThreadedDebug + + + Windows + true + + + + + D:\github\lframework\Debug;D:\DirectXTex\DirectXTex\Bin\Desktop_2015_Win10\Win32\Debug + + + + + Level3 + NotUsing + MaxSpeed + true + true + NMATH_SWIZZLE_ENABLE;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreaded + D:\DirectXTex\DirectXTex;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Document + + + + + Document + + + + + + \ No newline at end of file diff --git a/LEngine/Material.cpp b/LEngine/Material.cpp new file mode 100644 index 0000000..a556f10 --- /dev/null +++ b/LEngine/Material.cpp @@ -0,0 +1,198 @@ +#include "Material.h" +#include +#include +#include "nativelinq.h" +#include +#include +#include "d3dx12.h" +#include "FatalError.h" + +void Material::SetShader(ShaderPtr _shader) { + shader = _shader; + RebuildBuffers(); +} + +std::string Material::DiffuseMapName() { + return "_DiffuseMap"; +} +std::string Material::NormalMapName() { + return "_NormalMap"; +} +std::string Material::DiffuseColorName() { + return "_DiffuseColor"; +} +MaterialPtr Material::Create(std::string name) { + return std::shared_ptr(new Material(name)); +} + +MaterialPtr Material::Create(ShaderPtr shader, std::string name) { + auto material = Create(name); + material->SetShader(shader); + return material; +} + +void Material::Apply() { + for(int i = 0; i < (int)ShaderType::Count; ++i) { + auto s = shader->GetShader((ShaderType)i); + if(s != nullptr) { + + //apply shaders + //s->Apply(context); + + auto& p = shaderParameters[i]; + //update and apply buffers + for (auto& bufferCtx : p.buffers) { + + D3D12_RANGE range; + range.Begin = range.End = 0; + + uint8_t* data = nullptr; + + auto hr = bufferCtx.buffer->Map(0, &range, (void**)&data); + assert(hr == S_OK); + + //write all variables + for (auto& variable : bufferCtx.variables) { + auto param = parameters.GetParameterByName(variable.name); + if (param != nullptr) { + memcpy(data + variable.offset, param->GetPointer(), variable.size); + } + } + + range.End = bufferCtx.size; + bufferCtx.buffer->Unmap(0, &range); + assert(hr == S_OK); + /*context->Unmap(bufferCtx.buffer, 0); + ID3D11Buffer* buffers[1] = { bufferCtx.buffer }; + + switch ((ShaderType)i) + { + case ShaderType::Vs: + context->VSSetConstantBuffers(bufferCtx.bindPoint, 1, buffers); + break; + case ShaderType::Ps: + context->PSSetConstantBuffers(bufferCtx.bindPoint, 1, buffers); + break; + default: + assert(false && "not implemented"); + }*/ + + //sr.pData + + } + + //apply shader resources + /*for (auto& resourceCtx : p.resources) { + auto param = parameters.GetParameterByName(resourceCtx.name); + if (param != nullptr) { + auto resourceParam = std::dynamic_pointer_cast(param); + + ID3D11ShaderResourceView* resources[1] = { resourceParam->value }; + + switch ((ShaderType)i) + { + case ShaderType::Vs: + context->VSSetShaderResources(resourceCtx.bindPoint, 1, resources); + break; + case ShaderType::Ps: + context->PSSetShaderResources(resourceCtx.bindPoint, 1, resources); + break; + default: + assert(false && "not implemented"); + } + } + + }*/ + + } else { + + } + } +} + +void Material::RebuildShaderParameters(ShaderParametersContext& params, ComPtr reflection) { + + + D3D12_SHADER_DESC d; + reflection->GetDesc(&d); + + params.Clear(); + + //get resource variables + for(uint32_t i = 0; i < d.BoundResources; ++i) { + D3D12_SHADER_INPUT_BIND_DESC bindDesc; + reflection->GetResourceBindingDesc(i, &bindDesc); + + ShaderResourceVariable var; + var.bindPoint = bindDesc.BindPoint; + var.name = bindDesc.Name; + var.type = bindDesc.Type; + params.resources.push_back(var); + } + + + //get constant buffers + for(uint32_t i = 0; i < d.ConstantBuffers; ++i) { + ShaderBufferContext ctx; + ID3D12ShaderReflectionConstantBuffer* cb = reflection->GetConstantBufferByIndex(i); + + auto device = shader->GetDevice(); + D3D12_SHADER_BUFFER_DESC bufferDesc; + cb->GetDesc(&bufferDesc); + + ctx.name = bufferDesc.Name; + + D3D11_BUFFER_DESC cbDesc; + cbDesc.ByteWidth = bufferDesc.Size; + cbDesc.Usage = D3D11_USAGE_DYNAMIC; + cbDesc.BindFlags = D3D11_BIND_CONSTANT_BUFFER; + cbDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE; + cbDesc.MiscFlags = 0; + cbDesc.StructureByteStride = 0; + + + auto hr = device->CreateCommittedResource( + &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_UPLOAD), // this heap will be used to upload the constant buffer data + D3D12_HEAP_FLAG_NONE, // no flags + &CD3DX12_RESOURCE_DESC::Buffer(1024 * 64), // Must be a multiple of 64KB for single-textures and constant buffers. TODO: handle size overflow o_O Maybe. + D3D12_RESOURCE_STATE_GENERIC_READ, + nullptr, + IID_PPV_ARGS(&ctx.buffer)); + + ctx.buffer->SetName(L"Constant Buffer Upload Resource Heap"); + + + //device->CreateBuffer(&cbDesc, nullptr, &ctx.buffer); + + for(uint32_t j = 0; j < bufferDesc.Variables; ++j) { + auto variable = cb->GetVariableByIndex(j); + D3D12_SHADER_VARIABLE_DESC varDesc; + variable->GetDesc(&varDesc); + ctx.variables.push_back(ShaderBufferVariable(varDesc.Name, varDesc.StartOffset, varDesc.Size)); + } + + //find buffer's bind point + + auto res = Where(params.resources, [ctx](ShaderResourceVariable srv) {return srv.name == ctx.name && srv.type == D3D_SIT_CBUFFER; })->ToVector(); + ctx.bindPoint = res[0].bindPoint; + ctx.type = res[0].type; + ctx.size = cbDesc.ByteWidth; + params.buffers.push_back(ctx); + } +} + +void Material::RebuildBuffers() { + ComPtr reflection; + for(int i = 0; i < (int)ShaderType::Count; ++i) { + auto& vs = shader->GetShader((ShaderType)i); + if(vs != nullptr) { + reflection = nullptr; + D3DReflect(vs->blob->GetBufferPointer(), vs->blob->GetBufferSize(), __uuidof(reflection), (void**)&reflection); + RebuildShaderParameters(shaderParameters[i], reflection); + } + } +} + +void Material::SetParametersBlock(ShaderParametersBlock& block) { + parameters = block; +} \ No newline at end of file diff --git a/LEngine/Material.h b/LEngine/Material.h new file mode 100644 index 0000000..f642875 --- /dev/null +++ b/LEngine/Material.h @@ -0,0 +1,57 @@ +#ifndef Material_h__ +#define Material_h__ + +#include "Shader.h" +#include +#include +#include +#include "ForwardDeclarations.h" +#include "ShaderParametersBlock.h" +#include "Object.h" + +#include + +using namespace Microsoft::WRL; + +class Material : public Object { +public: + std::wstring class_name() const { + return L"Material"; + } + void SetShader(ShaderPtr _shader); + ShaderPtr GetShader() { + return shader; + } + void SetParametersBlock(ShaderParametersBlock& block); + ShaderParametersBlock& GetParametersBlock() { + return parameters; + } + void Apply(); + static MaterialPtr Create(std::string name); + static MaterialPtr Create(ShaderPtr shader, std::string name); + static std::string DiffuseMapName(); + static std::string NormalMapName(); + static std::string DiffuseColorName(); + ShaderParametersContext& GetCompiledParameters(ShaderType shader_type) + { + return shaderParameters[(uint32_t)shader_type]; + } +private: + + Material(std::string name) + :_name(name) + { + + } + std::string _name; + ShaderPtr shader; + ShaderParametersContext shaderParameters[(uint32_t)ShaderType::Count]; + ShaderParametersBlock parameters; + + + void RebuildBuffers(); + void RebuildShaderParameters(ShaderParametersContext& params, ComPtr reflection); +}; + + +#endif // Material_h__ diff --git a/LEngine/Mathf.h b/LEngine/Mathf.h new file mode 100644 index 0000000..5d1d090 --- /dev/null +++ b/LEngine/Mathf.h @@ -0,0 +1,14 @@ +#pragma once + +class Mathf { +public: + static float Pi() { + return 3.1415926535897932384626f; + } + static float RadToDeg() { + return 180.0f / Pi(); + } + static float DegToRad() { + return Pi() / 180.0f; + } +}; \ No newline at end of file diff --git a/LEngine/Mesh.cpp b/LEngine/Mesh.cpp new file mode 100644 index 0000000..ac8c41f --- /dev/null +++ b/LEngine/Mesh.cpp @@ -0,0 +1,148 @@ +#include "Mesh.h" +#include "LEngine.h" +#include + +Mesh::Mesh(ID3D12DevicePtr dev) { + _device = dev; + SetSubmeshCount(1); +} + +MeshPtr Mesh::Create() { + return std::shared_ptr(new Mesh(LEngine::Instance()->GetRenderer()->GetDevice())); +} + +ID3D12ResourcePtr Mesh::GetVertexBuffer() { + return _vertexBuffer; +} + +ID3D12DevicePtr Mesh::GetDevice() { + return _device; +} + +MeshPtr Mesh::Create(MeshProcessFunction initFunction) { + auto mesh = Create(); + if (initFunction != nullptr) { + initFunction(mesh); + mesh->RecalculateBounds(); + } + return mesh; +} + +Bounds Mesh::GetBounds() const { + return _bounds; +} + +std::vector Mesh::GetVertices() { + std::vector result; + /*if (_vertexBuffer == nullptr) { + return result; + } + + D3D11_BUFFER_DESC desc; + _vertexBuffer->GetDesc(&desc); + desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ; + desc.Usage = D3D11_USAGE_STAGING; + desc.BindFlags = 0; + ID3D11BufferPtr stagingBuffer; + _device->CreateBuffer(&desc, nullptr, &stagingBuffer); + ID3D11DeviceContextPtr ctx; + _device->GetImmediateContext(&ctx); + + ctx->CopyResource(stagingBuffer, _vertexBuffer); + D3D11_MAPPED_SUBRESOURCE sr; + ctx->Map(stagingBuffer, 0, D3D11_MAP_READ, 0, &sr); + result.resize(desc.ByteWidth / sizeof(Vertex)); + memcpy_s(&result[0], desc.ByteWidth, sr.pData, desc.ByteWidth); + ctx->Unmap(stagingBuffer, 0);*/ + return result; +} + +D3D12_VERTEX_BUFFER_VIEW Mesh::GetVertexBufferView(){ + D3D12_VERTEX_BUFFER_VIEW result; + result.BufferLocation = _vertexBuffer->GetGPUVirtualAddress(); + result.SizeInBytes = _vertexCount * sizeof(Vertex); + result.StrideInBytes = sizeof(Vertex); + return result; +} + +void Mesh::SetVertices(const std::vector& vertices) { + auto bytesCount = sizeof(vertices[0])* vertices.size(); + _vertexCount = vertices.size(); + + + //create vertex buffer + _device->CreateCommittedResource( + &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT), + D3D12_HEAP_FLAG_NONE, + &CD3DX12_RESOURCE_DESC::Buffer(bytesCount), + D3D12_RESOURCE_STATE_COPY_DEST, + nullptr, + IID_PPV_ARGS(&_vertexBuffer)); + + + //create upload buffer + ComPtr vBufferUploadHeap; + _device->CreateCommittedResource( + &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_UPLOAD), + D3D12_HEAP_FLAG_NONE, + &CD3DX12_RESOURCE_DESC::Buffer(bytesCount), + D3D12_RESOURCE_STATE_GENERIC_READ, + nullptr, + IID_PPV_ARGS(&vBufferUploadHeap)); + vBufferUploadHeap->SetName(L"Vertex Buffer Upload Resource Heap"); + + + D3D12_SUBRESOURCE_DATA vertexData = {}; + vertexData.pData = reinterpret_cast(&vertices[0]); // pointer to our vertex array + vertexData.RowPitch = bytesCount; // size of all our triangle vertex data + vertexData.SlicePitch = bytesCount; // also the size of our triangle vertex data + + + auto renderer = LEngine::Instance()->GetRenderer(); + auto cl = renderer->BeginCommandList(); + UpdateSubresources(cl.Get(), _vertexBuffer.Get(), vBufferUploadHeap.Get(), 0, 0, 1, &vertexData); + cl->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(_vertexBuffer.Get(), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER)); + renderer->EndCommandList(); + renderer->WaitCommandsQueue(); +} + +void Mesh::SetIndices(const Submesh::index_array_t& indices, MeshTopology topology, uint32_t submeshId) { + if (submeshId >= GetSubmeshCount()) { + return; + } + _submeshes[submeshId]->Set(indices, topology); +} + +uint32_t Mesh::GetSubmeshCount() const { + return _submeshes.size(); +} +void Mesh::SetSubmeshCount(uint32_t count) { + auto oldSize = _submeshes.size(); + _submeshes.resize(count); + for (auto i = oldSize; i < count; ++i) { + _submeshes[i] = std::make_shared(); + } +} + +const std::vector& Mesh::GetSubmeshes() { + return _submeshes; +} + +void Mesh::RecalculateBounds() { + /*auto vertices = GetVertices(); + if (vertices.size() == 0) { + _bounds.SetSize(float3(0, 0, 0)); + _bounds.SetCenter(float3(0, 0, 0)); + } + + float3 minPoint = vertices[0].position.xyz; + float3 maxPoint = vertices[0].position.xyz; + + for (size_t i = 1; i < vertices.size(); ++i) { + minPoint = lm::min(minPoint, vertices[i].position.xyz); + maxPoint = lm::max(maxPoint, vertices[i].position.xyz); + } + + _bounds.SetCenter((minPoint + maxPoint) * 0.5f); + _bounds.SetSize(maxPoint - minPoint);*/ +} \ No newline at end of file diff --git a/LEngine/Mesh.h b/LEngine/Mesh.h new file mode 100644 index 0000000..3471661 --- /dev/null +++ b/LEngine/Mesh.h @@ -0,0 +1,49 @@ +#ifndef Mesh_h__ +#define Mesh_h__ + +#include +#include +#include +#include +#include "ForwardDeclarations.h" +#include "Vertex.h" +#include "Submesh.h" +#include "Bounds.h" +#include "Object.h" + +#include + +using namespace Microsoft::WRL; + +typedef std::function MeshProcessFunction; + +class Mesh : public Object { +public: + Mesh():_vertexCount(0) + { + + } + std::vector GetVertices(); + void SetVertices(const std::vector& vertices); + void SetIndices(const Submesh::index_array_t& indices, MeshTopology topology, uint32_t submeshId); + void RecalculateBounds(); + ID3D12ResourcePtr GetVertexBuffer(); + ID3D12DevicePtr GetDevice(); + static MeshPtr Create(); + static MeshPtr Create(MeshProcessFunction initFunction); + uint32_t GetSubmeshCount() const; + void SetSubmeshCount(uint32_t count); + const std::vector& GetSubmeshes(); + Bounds GetBounds() const; + D3D12_VERTEX_BUFFER_VIEW GetVertexBufferView(); +private: + size_t _vertexCount; + Bounds _bounds; + Mesh(ID3D12DevicePtr dev); + ID3D12ResourcePtr _vertexBuffer; + ID3D12DevicePtr _device; + std::vector _submeshes; +}; + + +#endif // Mesh_h__ diff --git a/LEngine/MeshGenerator.cpp b/LEngine/MeshGenerator.cpp new file mode 100644 index 0000000..c642cae --- /dev/null +++ b/LEngine/MeshGenerator.cpp @@ -0,0 +1,80 @@ +#include "MeshGenerator.h" +#include + +void MeshGenerator::Cube(MeshPtr mesh, bool splitFaces){ + if (mesh == nullptr) { + return; + } + + std::vector vertices; + std::vector indices; + + float3 corners[8]; + for (int i = 0; i < 2; ++i) { + for (int j = 0; j < 4; ++j) { + int id = i * 4 + j; + corners[id].x() = ((j == 0) || (j == 3)) ? -0.5f : 0.5f; + corners[id].y() = -((float)(j >> 1) - 0.5f); + corners[id].z() =(float)i - 0.5f; + } + } + + int vid[] = { 0,1,2,3, 5,4,7,6, 1,5,6,2, 4,0,3,7, 4,5,1,0, 3,2,6,7 }; + for (int i = 0; i < 24; ++i) { + Vertex v; + v.position.x() = corners[vid[i]].x(); + v.position.y() = corners[vid[i]].y(); + v.position.z() = corners[vid[i]].z(); + vertices.push_back(v); + } + + float3 normals[6] = { float3(0.0f,0.0f,-1.0f), float3(0.0f,0.0f,1.0f), float3(1.0f,0.0f,0.0f), float3(-1.0f,0.0f,0.0f), float3(0.0f,1.0f,0.0f), float3(0.0f,-1.0f,0.0f) }; + int indicesBase[] = { 0,1,3,1,2,3 }; + float2 uvBase[] = { float2(0.0f,0.0f), float2(1.0f,0.0f), float2(1.0f,1.0f), float2(0.0f,1.0f) }; + + mesh->SetSubmeshCount(splitFaces ? 6 : 1); + + for (int i = 0; i < 6; ++i) { + for (int j = 0; j < 4; ++j) { + vertices[i * 4 + j].normal = normals[i]; + vertices[i * 4 + j].uv0 = uvBase[j]; + } + + for (int j = 0; j < 6; ++j) { + indices.push_back(indicesBase[j] + i * 4); + } + + if (splitFaces) { + mesh->SetIndices(indices, MeshTopology::TriangleList, i); + indices.resize(0); + } + } + + mesh->SetVertices(vertices); + + if (!splitFaces) { + mesh->SetIndices(indices, MeshTopology::TriangleList, 0); + } +} + +void MeshGenerator::Plane(MeshPtr mesh) { + if (mesh == nullptr) { + return; + } + + float3 normal(0.0f, 1.0f, 0.0f); + float extend = 0.5f; + + std::vector vertices = { + Vertex(float4(-extend, 0.0f, extend, 1.0f), normal, float2(0.0f,0.0f)), + Vertex(float4(extend, 0.0f, extend, 1.0f), normal, float2(1.0f,0.0f)), + Vertex(float4(extend, 0.0f, -extend, 1.0f), normal, float2(1.0f,1.0f)), + Vertex(float4(-extend, 0.0f, -extend, 1.0f), normal, float2(0.0f,1.0f)), + }; + + std::vector indices = { 0,1,3,1,2,3 }; + + mesh->SetSubmeshCount(1); + mesh->SetVertices(vertices); + mesh->SetIndices(indices, MeshTopology::TriangleList, 0); +} \ No newline at end of file diff --git a/LEngine/MeshGenerator.h b/LEngine/MeshGenerator.h new file mode 100644 index 0000000..6c9c722 --- /dev/null +++ b/LEngine/MeshGenerator.h @@ -0,0 +1,15 @@ +#ifndef MeshGenerator_h__ +#define MeshGenerator_h__ + +#include "Mesh.h" +#include "ForwardDeclarations.h" + +class MeshGenerator +{ +public: + static void Cube(MeshPtr mesh, bool splitFaces); + + static void Plane(MeshPtr mesh); +}; +#endif // MeshGenerator_h__ + diff --git a/LEngine/MeshRenderer.cpp b/LEngine/MeshRenderer.cpp new file mode 100644 index 0000000..7600289 --- /dev/null +++ b/LEngine/MeshRenderer.cpp @@ -0,0 +1,54 @@ +#include "MeshRenderer.h" +#include + +void MeshRenderer::SyncMaterialSlots() { + if (mesh == nullptr) { + _materials.resize(0); + } + else { + _materials.resize(mesh->GetSubmeshCount()); + } +} + +std::shared_ptr MeshRenderer::SetMesh(MeshPtr m) { + mesh = m; + SyncMaterialSlots(); + UpdateInputLayouts(); + return std::static_pointer_cast(shared_from_this()); +} + +MeshPtr MeshRenderer::GetMesh() { + return mesh; +} + +void MeshRenderer::SetMaterial(MaterialPtr material, int id){ + SyncMaterialSlots(); + _materials[id] = material; + UpdateInputLayouts(); +} + +void MeshRenderer::UpdateInputLayouts(){ + + if (mesh == nullptr) { + return; + } + + if (_materials.size() == 0 || _materials[0] == nullptr) { + return; + } + + //D3D12_APPEND_ALIGNED_ELEMENT + _inputElements.clear(); + _inputElements.push_back({ "POSITION", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 0, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }); + _inputElements.push_back({ "NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 16, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }); + _inputElements.push_back({ "UV", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 28, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }); + _inputElements.push_back({ "UV", 1, DXGI_FORMAT_R32G32_FLOAT, 0, 36, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }); + + + _inputLayoutDesc.NumElements = _inputElements.size(); + _inputLayoutDesc.pInputElementDescs = &_inputElements[0]; + + //auto vs = _materials[0]->GetShader()->GetShader(ShaderType::Vs); + //auto hr = mesh->GetDevice()->CreateInputLayout(ied, 4, vs->blob->GetBufferPointer(), vs->blob->GetBufferSize(), &_inputLayout); + //assert(hr == S_OK); +} diff --git a/LEngine/MeshRenderer.h b/LEngine/MeshRenderer.h new file mode 100644 index 0000000..43f7783 --- /dev/null +++ b/LEngine/MeshRenderer.h @@ -0,0 +1,31 @@ +#ifndef MeshRenderer_h__ +#define MeshRenderer_h__ + +#include "ObjectsFactory.h" +#include "Mesh.h" +#include "Material.h" +#include +#include "ForwardDeclarations.h" +#include + + +LOBJECT(MeshRenderer, Component) +public: + std::shared_ptr SetMesh(MeshPtr m); + MeshPtr GetMesh(); + void SetMaterial(MaterialPtr material, int id); + std::vector GetMaterials() { + return _materials; + } + D3D12_INPUT_LAYOUT_DESC GetInputLayout() { + return _inputLayoutDesc; + } +private: + void UpdateInputLayouts(); + void SyncMaterialSlots(); + MeshPtr mesh; + std::vector _materials; + std::vector _inputElements; + D3D12_INPUT_LAYOUT_DESC _inputLayoutDesc; +}; +#endif // MeshRenderer_h__ diff --git a/LEngine/ModelImporter.h b/LEngine/ModelImporter.h new file mode 100644 index 0000000..a24eae3 --- /dev/null +++ b/LEngine/ModelImporter.h @@ -0,0 +1,36 @@ +#ifndef ModelImporter_h__ +#define ModelImporter_h__ + +#include "AssetImporter.h" +#include +#include +#include +#include "ObjMeshLoader.h" +#include "AssetDatabase.h" + +class ModelImporter : public AssetImporter { +public: + virtual bool can_import(const std::wstring& path) const override { + std::tr2::sys::path src_path(path); + return src_path.extension() == ".obj"; + } + + virtual std::wstring name() override { + return L"ModelImporter"; + } + + virtual bool set_parameters(std::wstring params) override { + return false; + } + + virtual std::wstring get_parameters() const override { + return L""; + } + + virtual void import(std::wstring asset_path) override { + ObjMeshLoader loader; + loader.Load(asset_path); + } + +}; +#endif // ModelImporter_h__ diff --git a/LEngine/ObjMeshLoader.h b/LEngine/ObjMeshLoader.h new file mode 100644 index 0000000..73439db --- /dev/null +++ b/LEngine/ObjMeshLoader.h @@ -0,0 +1,416 @@ +#pragma once + +#include "Mesh.h" +#include "GameObject.h" +#include +#include +#include "lmath.h" +#include +#include +#include +#include +#include +#include +#include + +#include "MeshRenderer.h" +using namespace lm; + + +struct ObjVertex { + int32_t vid; + int32_t tid; + int32_t nid; +}; + +struct ObjFace { + int32_t sid; + int32_t mid; + std::array vertices; +}; + +class ObjGroup { +public: + ObjGroup(std::string objName) + :name(objName), smoothGroupsEnabled(true), activeSmoothGroup(0) + { + + } + void AddFace(int32_t matId, const ObjVertex& v0, const ObjVertex& v1, const ObjVertex& v2) { + ObjFace f; + f.vertices[0] = v0; + f.vertices[1] = v1; + f.vertices[2] = v2; + f.mid = matId; + f.sid = activeSmoothGroup; + faces.push_back(f); + + if (std::find(materials.begin(), materials.end(), matId) == materials.end()) { + materials.push_back(matId); + } + } + std::vector materials; + std::string name; + std::vector faces; + int32_t activeSmoothGroup; + bool smoothGroupsEnabled; +}; + +class ObjMeshLoader { +public: + friend class ObjGroup; + ObjMeshLoader() : _activeMatId(-1){ + + } + + std::string read_file(std::wstring path) + { + FILE* file = nullptr; + auto err = _wfopen_s(&file, path.c_str(), L"rb"); + + fseek(file, 0, SEEK_END); + auto file_size = ftell(file); + + std::string str; + str.resize(file_size); + fseek(file, 0, SEEK_SET); + + auto done = fread_s(&str[0], file_size, 1, file_size, file); + fclose(file); + return str; + } + std::vector Load(const std::wstring& path) { + std::vector result; + + /*if (!file1.good()) { + return result; + }*/ + + auto str = read_file(path); + + + std::stringstream buffer(str); + std::vector line_buffer; + line_buffer.resize(8192); + + + std::string previous_line; + std::string line; + //while (buffer.getline(&line_buffer[0], line_buffer.size())) { + while (std::getline(buffer, line)) { + + //std::string line(&line_buffer[0]); + if (line.size() < 3) { + continue; + } + switch(line[0]){ + case 'v': + switch (line[1]) { + case ' ': { + float3 v; + sscanf_s(&line[2], "%f%f%f", &v.x(), &v.y(), &v.z()); + _vertices.push_back(v); + break; + } + case 'n': { + float3 n; + sscanf_s(&line[2], "%f%f%f", &n.x(), &n.y(), &n.z()); + _normals.push_back(n); + break; + } + case 't': + float3 t; + sscanf_s(&line[2], "%f%f%f", &t.x(), &t.y(), &t.z()); + _texcoords.push_back(t); + break; + } + break; + case 'f': { + bool is_open = false; + size_t start = 2; + int slash_pos_0 = 0; + int slash_pos_1 = 0; + + if(line[line.size() - 1] == '\r') + { + line[line.size() - 1] = ' '; + }else + { + line += " "; + } + + std::vector fVertices; + for (size_t i = 2; i < line.size(); ++i) { + if (line[i] == ' ') { + if (is_open) { //finalize chunk + is_open = false; + ObjVertex v; + if (slash_pos_0 == -1) { + auto pos2 = (int)buffer.tellg(); + sscanf_s(&line[start], "%d", &v.vid); + v.tid = v.nid = -1; + } else if (slash_pos_1 == -1) { + sscanf_s(&line[start], "%d/%d", &v.vid, &v.tid); + v.nid = -1; + } else { + if (slash_pos_1 - slash_pos_0 == 1) { + sscanf_s(&line[start], "%d//%d", &v.vid, &v.nid); + v.tid = -1; + } else { + sscanf_s(&line[start], "%d/%d/%d", &v.vid, &v.tid, &v.nid); + } + } + fVertices.push_back(v); + } + } else { + if (!is_open) { + start = i; + slash_pos_0 = -1; + slash_pos_1 = -1; + is_open = true; + } else { + if (line[i] == '/') { + if (slash_pos_0 == -1) { + slash_pos_0 = i; + } else { + slash_pos_1 = i; + } + } + } + } + + + } + + //emit triangles (split if quads) + if (fVertices.size() == 3) { + _groups[_groups.size() - 1].AddFace(_activeMatId, fVertices[0], fVertices[1], fVertices[2]); + } else if (fVertices.size() == 4) { + _groups[_groups.size() - 1].AddFace(_activeMatId, fVertices[0], fVertices[1], fVertices[2]); + _groups[_groups.size() - 1].AddFace(_activeMatId, fVertices[0], fVertices[2], fVertices[3]); + } + break; + } + case 'g': { + auto name = line.substr(2); + _groups.push_back(ObjGroup(name)); + break; + } + case 's': + if (line.find("off") != std::string::npos) { + _groups[_groups.size() - 1].smoothGroupsEnabled = false; + } else { + sscanf_s(&line[2], "%d", &_groups[_groups.size() - 1].activeSmoothGroup); + } + break; + case 'm': { + std::stringstream ss(line); + std::string key, value; + ss >> key; + ss >> value; + _mtlLibName = value; + std::cout << "Found material library: " << value << std::endl; + break; + } + case 'u': { + std::stringstream ss(line); + std::string key, value; + ss >> key; + ss >> value; + SetActiveMaterial(value); + break; + } + } + + previous_line = line; + } + + + auto mtllib_path = obj_to_mtl_path(path); + + _mats = load_mtllib(mtllib_path); + + for (auto& group : _groups) { + result.push_back(UnpackGroup(group)); + } + return result; + } +private: + std::vector _mats; + std::wstring obj_to_mtl_path(const std::wstring& obj_path){ + std::tr2::sys::path src(obj_path); + auto dst = src.parent_path(); + return dst.append(_mtlLibName).wstring(); + } + + std::vector load_mtllib(const std::wstring& path){ + std::vector result; + + auto text = std::ifstream(path); + + std::string line; + auto default_shader = Shader::Create(L"shaders/default.fx"); + + MaterialPtr active_material; + while(std::getline(text, line)) + { + if(line[0] == '#' || line.empty()){ + continue; + } + + std::string word; + std::stringstream ls(line); + ls >> word; + + if (word == "newmtl") { + std::string mat_name; + ls >> mat_name; + if(active_material != nullptr) + { + result.push_back(active_material); + } + active_material = Material::Create(default_shader, mat_name); + + } else { + if (active_material == nullptr) { + continue; + } else { + if(word == "Kd") + { + std::vector color; + float tmp = 0.0f; + while(ls >> tmp) + { + color.push_back(tmp); + } + + if(color.size() == 3) + { + active_material->GetParametersBlock().SetValue(Material::DiffuseColorName(), float4(color[0], color[1], color[2], 1.0f)); + } + } + } + } + } + + if (active_material != nullptr) { + result.push_back(active_material); + } + + return result; + + } + + typedef std::tuple VertexPair; + GameObjectPtr UnpackGroup(const ObjGroup& group) { + std::vector> facesTable; + facesTable.resize(_vertices.size()); + std::vector vertices; + std::map> submeshes; + + //EmitGeometry(group, vertices, submeshes); + EmitGeometrySimple(group, vertices, submeshes); + + auto mesh = Mesh::Create(); + mesh->SetSubmeshCount(group.materials.size()); + mesh->SetVertices(vertices); + + + + int id = 0; + for(auto& p : submeshes) + { + mesh->SetIndices(p.second, MeshTopology::TriangleList, id); + id++; + } + + auto obj = GameObject::create(); + obj->AddComponent()->SetMesh(mesh); + + + + for (size_t i = 0; i < group.materials.size(); ++i){ + auto mat_id = group.materials[i]; + + obj->GetComponent()->SetMaterial(_mats[mat_id], i); + } + + mesh->RecalculateBounds(); + return obj; + } + + /*MeshPtr BuildMesh(ObjGroup& group) { + std::vector vertices; + std::vector indices; + EmitGeometry(group, vertices, indices); + + auto mesh = Mesh::Create(); + mesh->SetSubmeshCount(group.materials.size()); + return mesh; + }*/ + + void EmitGeometry(const ObjGroup& group, std::vector& vertices, std::map>& submeshes) { + auto vComp = [](ObjVertex v1, ObjVertex v2) { + return (v1.vid == v2.vid) && (v1.tid == v2.tid) && (v1.nid && v2.nid); + }; + + std::vector tmpVertices; + + for (auto& f : group.faces) { + for (auto& v : f.vertices) { + int id = -1; + for (size_t i = 0; i < tmpVertices.size(); ++i) { + if (vComp(tmpVertices[i], v)) { + id = i; + break; + } + } + + if (id == -1) { + id = tmpVertices.size(); + tmpVertices.push_back(v); + Vertex vertex; + vertex.position = float4(_vertices[v.vid - 1], 1.0f); + vertex.normal = _normals[v.nid - 1]; + vertex.uv0 = _texcoords[v.tid - 1].xy(); + vertices.push_back(vertex); + } + + submeshes[f.mid].push_back(id); + } + } + } + + void EmitGeometrySimple(const ObjGroup& group, std::vector& vertices, std::map>& submeshes) { + int id = 0; + for (auto& f : group.faces) { + for (auto& v : f.vertices) { + Vertex vertex; + vertex.position = float4(_vertices[v.vid - 1], 1.0f); + vertex.normal = _normals[v.nid - 1]; + vertex.uv0 = _texcoords[v.tid - 1].xy(); + vertices.push_back(vertex); + submeshes[f.mid].push_back(id); + ++id; + } + } + } + + void SetActiveMaterial(const std::string& name) { + for (size_t i = 0; i < _materials.size(); ++i) { + if (_materials[i] == name) { + _activeMatId = i; + return; + } + } + _activeMatId = _materials.size(); + _materials.push_back(name); + } + int _activeMatId; + std::string _mtlLibName; + std::vector _vertices; + std::vector _normals; + std::vector _texcoords; + std::vector _materials; + std::vector _groups; +}; \ No newline at end of file diff --git a/LEngine/Object.cpp b/LEngine/Object.cpp new file mode 100644 index 0000000..c46e685 --- /dev/null +++ b/LEngine/Object.cpp @@ -0,0 +1,39 @@ +#include "Object.h" +#include "Archive.h" + +std::map> ObjectRegistry::_registry; + +std::atomic ObjectRegistry::_last_index = 0; + +Object::Object():_instance_id(-1){ + +} + +std::shared_ptr Object::create(){ + auto result = std::shared_ptr(new Object()); + result->Register(); + return result; +} + +Object::~Object(){ + ObjectRegistry::remove_object(_instance_id); +} + +void Object::Register(){ + _instance_id = ObjectRegistry::add_object(shared_from_this()); +} + +void Object::serialize(Archive& archive) { + archive << _name; +} + +ObjectRegistry::instance_id_t ObjectRegistry::add_object(std::shared_ptr object) { + auto result = _last_index++; + _registry[result] = object; + return result; +} + +void ObjectRegistry::remove_object(instance_id_t object) { + _registry.erase(object); +} + diff --git a/LEngine/Object.h b/LEngine/Object.h new file mode 100644 index 0000000..37ddadb --- /dev/null +++ b/LEngine/Object.h @@ -0,0 +1,104 @@ +#ifndef Object_h__ +#define Object_h__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "Asset.h" + +class Object; +class OutputArchive; + +class ObjectRegistry { +public: + using instance_id_t = uint64_t; + friend class Object; +private: + static instance_id_t add_object(std::shared_ptr object); + static void remove_object(instance_id_t object); + static std::map> _registry; + static std::atomic _last_index; +}; + +class Archive; +class Object : public std::enable_shared_from_this{ +public: + using instance_id_t = ObjectRegistry::instance_id_t; + virtual void serialize(Archive& archive); + + virtual void construct() { + + } + + virtual std::wstring get_type_name() const{ + return L"Object"; + } + + std::shared_ptr as_object(){ + return shared_from_this(); + } + + template + static std::vector> FindObjectsOfType() { + std::vector> result; + auto& registry = ObjectRegistry::_registry; + for(auto& pair : registry){ + auto obj = pair.second.lock(); + auto targetObj = std::dynamic_pointer_cast(obj); + if(targetObj != nullptr){ + result.push_back(targetObj); + } + } + return result; + } + + static std::shared_ptr Find(const AssetFileLink& link) + { + auto& registry = ObjectRegistry::_registry; + for (auto& pair : registry) { + auto obj = pair.second.lock(); + if(obj != nullptr && obj->GetFileLink() == link) + { + return obj; + } + } + return nullptr; + } + + static std::shared_ptr create(); + virtual ~Object(); + + const std::wstring& get_name() const{ + return _name; + } + + void SetName(const std::wstring& name){ + _name = name; + } + + instance_id_t GetInstanceId() const{ + return _instance_id; + } + + const AssetFileLink& GetFileLink() const{ + return _fileLink; + } + void SetLink(const AssetFileLink& link){ + _fileLink = link; + } +protected: + void Register(); + Object(); + AssetFileLink _fileLink; + instance_id_t _instance_id; +private: + std::wstring _name; +}; + +#endif // Object_h__ diff --git a/LEngine/ObjectsFactory.cpp b/LEngine/ObjectsFactory.cpp new file mode 100644 index 0000000..8b9f47b --- /dev/null +++ b/LEngine/ObjectsFactory.cpp @@ -0,0 +1,21 @@ +#include "ObjectsFactory.h" + + +void ObjectsFactory::register_factory(factory_function factory, const std::wstring& class_name) { + + _factory_functions[class_name] = factory; +} + +ObjectsFactory& ObjectsFactory::instance() +{ + static ObjectsFactory instance; + return instance; +} + +std::shared_ptr ObjectsFactory::create_object(const std::wstring& class_name) const { + try { + return _factory_functions.at(class_name)(); + } catch (...) { + return nullptr; + } +} \ No newline at end of file diff --git a/LEngine/ObjectsFactory.h b/LEngine/ObjectsFactory.h new file mode 100644 index 0000000..ed567a0 --- /dev/null +++ b/LEngine/ObjectsFactory.h @@ -0,0 +1,58 @@ +#ifndef ComponentFactory_h__ +#define ComponentFactory_h__ + +#include "ForwardDeclarations.h" +#include +#include +#include "Object.h" + +class ObjectsFactory { +public: + typedef std::function()> factory_function; + typedef std::map factory_container; + + static ObjectsFactory& instance(); + void register_factory(factory_function factory, const std::wstring& class_name); + std::shared_ptr create_object(const std::wstring& class_name) const; + + template + std::shared_ptr create_object(){ + return std::dynamic_pointer_cast(create_object(T::type_name(), game_object)); + } +private: + factory_container _factory_functions; +}; + + +template +struct ObjectFactory { + typedef std::shared_ptr object_pointer_t; + ObjectFactory() { + ObjectsFactory::instance().register_factory(&factory_func, T::type_name()); + } + static std::shared_ptr factory_func() { + return std::static_pointer_cast(T::create()); + } +}; + + +#define LOBJECT(__type_name, __base_type) \ +class __type_name;\ +static ObjectFactory<__type_name> __type_name##_factory;\ +class __type_name : public __base_type {\ +public:\ +static std::wstring type_name() {\ +return L#__type_name;\ +}\ +std::wstring get_type_name() const override{\ + return L#__type_name;\ +}\ +static std::shared_ptr<__type_name> create() {\ + auto result = std::shared_ptr<__type_name>(new __type_name());\ + result->Register();\ + result->construct();\ + return result;\ +} + + +#endif // ComponentFactory_h__ diff --git a/LEngine/OutputArchive.h b/LEngine/OutputArchive.h new file mode 100644 index 0000000..0ee5b41 --- /dev/null +++ b/LEngine/OutputArchive.h @@ -0,0 +1,53 @@ +#ifndef OutputArchive_h__ +#define OutputArchive_h__ + +#include "Archive.h" +#include "Object.h" +#include +#include +#include +#include + +class OutputArchive : public Archive { +public: + OutputArchive(std::shared_ptr stream) + :_stream(stream) { + // _stream = std::ofstream(path, std::ios::binary); + } + + virtual bool is_loading() const override { + return false; + } + + size_type get_offset() const override { + return _stream->tellp(); + } + + void set_offset(size_type offset) override { + _stream->seekp(offset, std::ios::beg); + } + + virtual void serialize(void* data, size_t size) override { + _stream->write(reinterpret_cast(data), size); + } + + virtual void flush() override { + if(_stream->good()){ + _stream->flush(); + } + } + + ~OutputArchive() { + flush(); + } + std::shared_ptr GetStream() + { + return _stream; + } +private: + std::shared_ptr _stream; + std::vector> _processed_objects; +}; + + +#endif // OutputArchive_h__ diff --git a/LEngine/RenderOutput.h b/LEngine/RenderOutput.h new file mode 100644 index 0000000..63a197d --- /dev/null +++ b/LEngine/RenderOutput.h @@ -0,0 +1,39 @@ +#ifndef Screen_h__ +#define Screen_h__ + +#include +#include +#include +#include "Renderer.h" +#include "d3d11_types.h" +#include +#include "d3dx12.h" +#include +#include + +using namespace Microsoft::WRL; + +class RenderOutput { +public: + + virtual ~RenderOutput() { + } + virtual uint32_t GetWidth() = 0; + virtual uint32_t GetHeight() = 0; + + virtual CD3DX12_CPU_DESCRIPTOR_HANDLE GetRenderTargetDescriptor(uint32_t id) = 0; + virtual CD3DX12_CPU_DESCRIPTOR_HANDLE GetDepthStencilDescriptor(uint32_t id) = 0; + + virtual ID3D12ResourcePtr GetRenderTarget(uint32_t id) = 0; + virtual ID3D12ResourcePtr GetDepthBuffer(uint32_t id) = 0; + + virtual void Present() = 0; + virtual void OnPreRender(RendererPtr renderer) = 0; + + virtual uint32_t GetCurrentBufferIndex() = 0; + virtual uint32_t GetBuffersCount() = 0; +protected: +}; + +typedef std::shared_ptr RenderOutputPtr; +#endif // Screen_h__ diff --git a/LEngine/RenderTargetOutput.cpp b/LEngine/RenderTargetOutput.cpp new file mode 100644 index 0000000..4c61f38 --- /dev/null +++ b/LEngine/RenderTargetOutput.cpp @@ -0,0 +1,81 @@ +#include "RenderTargetOutput.h" +/* +std::shared_ptr RenderTargetOutput::Create(RendererPtr renderer) { + return std::shared_ptr(new RenderTargetOutput(renderer)); +} +RenderTargetOutput::RenderTargetOutput(RendererPtr renderer) + :_renderer(renderer) { + +} +uint32_t RenderTargetOutput::GetWidth() { + if (_rt == nullptr) { + return 0; + } + D3D11_TEXTURE2D_DESC desc; + _rt->GetDesc(&desc); + return desc.Width; +} +uint32_t RenderTargetOutput::GetHeight() { + if (_rt == nullptr) { + return 0; + } + D3D11_TEXTURE2D_DESC desc; + _rt->GetDesc(&desc); + return desc.Height; +} +ID3D11RenderTargetViewPtr RenderTargetOutput::GetRenderTargetView() { + return _rtView; +} +ID3D11DepthStencilViewPtr RenderTargetOutput::GetDepthStencilView() { + return _dsView; +} +void RenderTargetOutput::Present() { + +} +void RenderTargetOutput::OnPreRender(RendererPtr renderer) { + +} +void RenderTargetOutput::Resize(uint32_t width, uint32_t height) { + if (_rt != nullptr) { + D3D11_TEXTURE2D_DESC desc; + _rt->GetDesc(&desc); + if (desc.Width == width && desc.Height == height) { + return; + } + } + + _rt = nullptr; + _ds = nullptr; + _rtView = nullptr; + _dsView = nullptr; + + D3D11_TEXTURE2D_DESC desc = { 0 }; + desc.Width = width; + desc.Height = height; + desc.MipLevels = 1; + desc.ArraySize = 1; + desc.Format = DXGI_FORMAT_B8G8R8A8_UNORM; + desc.SampleDesc.Count = 1; + desc.Usage = D3D11_USAGE_DEFAULT; + desc.BindFlags = D3D11_BIND_RENDER_TARGET | D3D11_BIND_SHADER_RESOURCE; + desc.CPUAccessFlags = 0; + desc.MiscFlags = 0; + + auto hr = _renderer->GetDevice()->CreateTexture2D(&desc, nullptr, &_rt); + hr = _renderer->GetDevice()->CreateRenderTargetView(_rt, nullptr, &_rtView); + + D3D11_TEXTURE2D_DESC descDepth; + descDepth.Width = width; + descDepth.Height = height; + descDepth.MipLevels = 1; + descDepth.ArraySize = 1; + descDepth.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; + descDepth.SampleDesc.Count = 1; + descDepth.SampleDesc.Quality = 0; + descDepth.Usage = D3D11_USAGE_DEFAULT; + descDepth.BindFlags = D3D11_BIND_DEPTH_STENCIL; + descDepth.CPUAccessFlags = 0; + descDepth.MiscFlags = 0; + hr = _renderer->GetDevice()->CreateTexture2D(&descDepth, NULL, &_ds); + hr = _renderer->GetDevice()->CreateDepthStencilView(_ds, nullptr, &_dsView); +}*/ \ No newline at end of file diff --git a/LEngine/RenderTargetOutput.h b/LEngine/RenderTargetOutput.h new file mode 100644 index 0000000..09e2802 --- /dev/null +++ b/LEngine/RenderTargetOutput.h @@ -0,0 +1,28 @@ +#ifndef RenderTargetOutput_h__ +#define RenderTargetOutput_h__ + +#include "RenderOutput.h" +#include "d3d11_types.h" +#include "Renderer.h" + + +/* +class RenderTargetOutput : public RenderOutput { +public: + static std::shared_ptr Create(RendererPtr renderer); + virtual uint32_t GetWidth() override; + virtual uint32_t GetHeight() override; + virtual ID3D11RenderTargetViewPtr GetRenderTargetView() override; + virtual ID3D11DepthStencilViewPtr GetDepthStencilView() override; + virtual void Present() override; + virtual void OnPreRender(RendererPtr renderer) override; + void Resize(uint32_t width, uint32_t height); +private: + RenderTargetOutput(RendererPtr renderer); + ID3D11DepthStencilViewPtr _dsView; + ID3D11RenderTargetViewPtr _rtView; + ID3D11Texture2DPtr _ds; + ID3D11Texture2DPtr _rt; + RendererPtr _renderer; +};*/ +#endif // RenderTargetOutput_h__ diff --git a/LEngine/Renderer.cpp b/LEngine/Renderer.cpp new file mode 100644 index 0000000..7d538e0 --- /dev/null +++ b/LEngine/Renderer.cpp @@ -0,0 +1,179 @@ +#include "Renderer.h" +#include +#include "d3dx12.h" +#include + +bool Renderer::Init() { + ComPtr debugController; + if (SUCCEEDED(D3D12GetDebugInterface(IID_PPV_ARGS(&debugController)))) { + debugController->EnableDebugLayer(); + } + + //Enable DXGI debug layer + if (SUCCEEDED(DXGIGetDebugInterface1(0, IID_PPV_ARGS(&dxgiInfoQueue)))) { + dxgiInfoQueue->SetBreakOnSeverity(DXGI_DEBUG_ALL, DXGI_INFO_QUEUE_MESSAGE_SEVERITY_ERROR, true); + dxgiInfoQueue->SetBreakOnSeverity(DXGI_DEBUG_ALL, DXGI_INFO_QUEUE_MESSAGE_SEVERITY_CORRUPTION, true); + dxgiInfoQueue->SetMuteDebugOutput(DXGI_DEBUG_ALL, FALSE); + } + + + + auto hr = CreateDXGIFactory2(DXGI_CREATE_FACTORY_DEBUG, IID_PPV_ARGS(&dxgiFactory)); + dxgiFactory->EnumAdapters1(0, &dxgiAdapter); + + IDXGIAdapter1Ptr warpAdapter; + //dxgiFactory->EnumWarpAdapter(IID_PPV_ARGS(&warpAdapter)); + warpAdapter = dxgiAdapter; + + DXGI_ADAPTER_DESC desc; + warpAdapter->GetDesc(&desc); + std::wcout << "Using adapter: " << desc.Description << std::endl; + + HR_ASSERT(D3D12CreateDevice(warpAdapter.Get(), D3D_FEATURE_LEVEL_11_0, IID_PPV_ARGS(&device))); + + // Describe and create the command queue. + D3D12_COMMAND_QUEUE_DESC queueDesc = {}; + queueDesc.Flags = D3D12_COMMAND_QUEUE_FLAG_NONE; + queueDesc.Type = D3D12_COMMAND_LIST_TYPE_DIRECT; + + device->CreateCommandQueue(&queueDesc, IID_PPV_ARGS(&_directCommandQueue)); + device->CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE_DIRECT, IID_PPV_ARGS(&_directCommandAllocator)); + device->CreateCommandList(0, D3D12_COMMAND_LIST_TYPE_DIRECT, _directCommandAllocator.Get(), nullptr, IID_PPV_ARGS(&_directCommandList)); + + + //create descriptor heaps + + constexpr size_t descriptorHeapsSize = 512; + + D3D12_DESCRIPTOR_HEAP_DESC srvHeapDesc = {}; + srvHeapDesc.NumDescriptors = descriptorHeapsSize; + srvHeapDesc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE; + srvHeapDesc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV; + hr = device->CreateDescriptorHeap(&srvHeapDesc, IID_PPV_ARGS(&_srvDescriptorsHeap)); + if (FAILED(hr)) + { + FatalError(L"Failed to create SRV descriptors heap"); + } + _srvDescriptorsHeap->SetName(L"SRV Heap"); + + _srvDescriptorAllocator = std::make_shared(_srvDescriptorsHeap); + + return true; +} + +void Renderer::reportLiveObjects() const +{ + IDXGIDebug1* pDebug = nullptr; + if (SUCCEEDED(DXGIGetDebugInterface1(0, IID_PPV_ARGS(&pDebug)))) { + pDebug->ReportLiveObjects(DXGI_DEBUG_ALL, DXGI_DEBUG_RLO_ALL); + pDebug->Release(); + } +} + +std::shared_ptr Renderer::getSrvDescriptorsAllocator(){ + return _srvDescriptorAllocator; +} + +ComPtr Renderer::BeginCommandList(){ + auto HR = _directCommandAllocator->Reset(); + HR = _directCommandList->Reset(_directCommandAllocator.Get(), nullptr); + return _directCommandList; +} + +void Renderer::EndCommandList(){ + _directCommandList->Close(); + ID3D12CommandList* ppCommandLists[] = { _directCommandList.Get()}; + _directCommandQueue->ExecuteCommandLists(_countof(ppCommandLists), ppCommandLists); +} + +void Renderer::WaitCommandsQueue(){ + ID3D12Fence* fence = nullptr; + HRESULT hr = device->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&fence)); + if (hr) + return; + + auto eventHandle = CreateEvent(NULL, FALSE, FALSE, NULL); + + _directCommandQueue->Signal(fence, 1); + fence->SetEventOnCompletion(1, eventHandle); + WaitForSingleObject(eventHandle, INFINITE); + + CloseHandle(eventHandle); + fence->Release(); +} + +ID3D12DevicePtr Renderer::GetDevice() { + return device; +} + +std::vector Renderer::EnumOutputs() { + IDXGIOutput1Ptr pOutput; + std::vector vOutputs; + int outputId = 0; + + IDXGIOutputPtr o; + while (GetAdapter()->EnumOutputs(outputId, &o) != DXGI_ERROR_NOT_FOUND) { + o->QueryInterface(IID_PPV_ARGS(&pOutput)); + vOutputs.push_back(pOutput); + pOutput = nullptr; + o = nullptr; + ++outputId; + } + return vOutputs; +} + +IDXGISwapChain1Ptr Renderer::CreateSwapChain(HWND window, bool windowed, uint32_t width, uint32_t height, uint32_t buffers_count, bool stereo) { + DXGI_SWAP_CHAIN_DESC1 swapChainDesc = { 0 }; + swapChainDesc.Width = width; + swapChainDesc.Height = height; + swapChainDesc.Format = DXGI_FORMAT_B8G8R8A8_UNORM; + swapChainDesc.Stereo = stereo; + swapChainDesc.SampleDesc.Count = 1; + swapChainDesc.SampleDesc.Quality = 0; + swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; + swapChainDesc.BufferCount = buffers_count; + swapChainDesc.Scaling = DXGI_SCALING_STRETCH; + swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL; + swapChainDesc.Flags = 0; + swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_UNSPECIFIED; + + /*DXGI_SWAP_CHAIN_FULLSCREEN_DESC fullscreenDesc = { 0 }; + fullscreenDesc.RefreshRate = {60 ,0}; + fullscreenDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED; + fullscreenDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED; + fullscreenDesc.Windowed = windowed;*/ + + IDXGISwapChain1Ptr result; + auto hr = GetFactory()->CreateSwapChainForHwnd(_directCommandQueue.Get(), window, &swapChainDesc, nullptr, nullptr, &result); + if (S_OK != hr){ + FatalError(TEXT("Failed to create swap chain")); + } + return result; +} + +//auto backBufferFormat = DXGI_FORMAT_B8G8R8A8_UNORM; + +std::vector Renderer::GetDisplayModes(DXGI_FORMAT format, IDXGIOutput1Ptr output) { + std::vector result; + UINT numStereoModes = 0; + DXGI_MODE_DESC1 modes[1024]; + auto enumFlags = DXGI_ENUM_MODES_STEREO; + + output->GetDisplayModeList1(format, enumFlags, &numStereoModes, 0); + output->GetDisplayModeList1(format, enumFlags, &numStereoModes, modes); + + for (UINT i = 0; i < numStereoModes; ++i) { + result.push_back(modes[i]); + } + return result; +} + +std::vector Renderer::GetStereoModes(std::vector& modes) { + std::vector result; + for (auto& m : modes) { + if (m.Stereo) { + result.push_back(m); + } + } + return result; +} \ No newline at end of file diff --git a/LEngine/Renderer.h b/LEngine/Renderer.h new file mode 100644 index 0000000..21e2ac2 --- /dev/null +++ b/LEngine/Renderer.h @@ -0,0 +1,79 @@ +#ifndef Renderer_h__ +#define Renderer_h__ + +#include +#include +#include +#include +#include +#include +#include "FatalError.h" +#include +#include "d3d11_types.h" +#include +#include +#include "D3d12DescriptorHeapAllocator.h" + +#include + +using namespace Microsoft::WRL; + +#define HR_ASSERT_MSG(__hr_expression, __message)\ +while(true){\ + HRESULT hr_ = (__hr_expression);\ + if (FAILED(hr_)) {\ + std::wstringstream ss; \ + ss << L"Application fail with HRESULT:" << hr_ << " in file " << TEXT(__FILE__) << " at line " << __LINE__ << L" with message: " << __message; \ + FatalError(ss.str().c_str()); \ + }\ +break;\ +} + + +#define HR_ASSERT(__hr_expression) HR_ASSERT_MSG(__hr_expression, "") + + + +class Renderer { +public: + bool Init(); + + ID3D12DevicePtr GetDevice(); + + ComPtr GetAdapter() { + return dxgiAdapter; + } + ComPtr GetFactory() { + return dxgiFactory; + } + + ComPtr BeginCommandList(); + void EndCommandList(); + + std::vector EnumOutputs(); + IDXGISwapChain1Ptr CreateSwapChain(HWND window, bool windowed, uint32_t width, uint32_t height, uint32_t buffers_count, bool stereo); + std::vector GetDisplayModes(DXGI_FORMAT format, IDXGIOutput1Ptr output); + std::vector GetStereoModes(std::vector& modes); + void WaitCommandsQueue(); + + std::shared_ptr getSrvDescriptorsAllocator(); + + void reportLiveObjects() const; +private: + ComPtr dxgiInfoQueue; + ID3D12DevicePtr device; + IDXGIAdapter1Ptr dxgiAdapter; + IDXGIFactory4Ptr dxgiFactory; + + ComPtr _directCommandQueue; + ComPtr _directCommandList; + ComPtr _directCommandAllocator; + + ComPtr _srvDescriptorsHeap; + std::shared_ptr _srvDescriptorAllocator; +}; + +typedef std::shared_ptr RendererPtr; + + +#endif // Renderer_h__ diff --git a/LEngine/Scene.cpp b/LEngine/Scene.cpp new file mode 100644 index 0000000..5412bfd --- /dev/null +++ b/LEngine/Scene.cpp @@ -0,0 +1,14 @@ +#include "Scene.h" +#include "GameObject.h" + +void Scene::tick(float deltaTime) { + for (auto go : objects) { + go->tick(deltaTime); + } +} +void Scene::SetName(const std::string& name) { + _name = name; +} +std::string Scene::GetName() { + return _name; +} \ No newline at end of file diff --git a/LEngine/Scene.h b/LEngine/Scene.h new file mode 100644 index 0000000..2c78de1 --- /dev/null +++ b/LEngine/Scene.h @@ -0,0 +1,26 @@ +#ifndef Scene_h__ +#define Scene_h__ + +#include + +#include "ForwardDeclarations.h" +#include +#include "Gizmos.h" + +class Scene { +public: + Scene() { + _gizmos.Init(); + } + std::vector objects; + void tick(float deltaTime); + void SetName(const std::string& name); + std::string GetName(); + Gizmos& GetGizmos() { + return _gizmos; + } +private: + Gizmos _gizmos; + std::string _name; +}; +#endif // Scene_h__ diff --git a/LEngine/SceneRenderer.cpp b/LEngine/SceneRenderer.cpp new file mode 100644 index 0000000..81a20a4 --- /dev/null +++ b/LEngine/SceneRenderer.cpp @@ -0,0 +1,308 @@ +#include "SceneRenderer.h" +#include "GameObject.h" +#include "Transform.h" +#include "Texture.h" + +SceneRenderer::SceneRenderer() +{ + auto renderer = LEngine::Instance()->GetRenderer(); + auto device = renderer->GetDevice(); + + //create samplers heap + D3D12_DESCRIPTOR_HEAP_DESC samplers_heap_desc; + samplers_heap_desc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE; + samplers_heap_desc.NodeMask = 0; + samplers_heap_desc.NumDescriptors = 1; + samplers_heap_desc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER; + HR_ASSERT(device->CreateDescriptorHeap(&samplers_heap_desc, IID_PPV_ARGS(&samplers_heap))); + samplers_heap->SetName(L"Samplers heap"); + + //create texture sampler + D3D12_SAMPLER_DESC sampler_desc = {}; + sampler_desc.Filter = D3D12_FILTER_MIN_MAG_MIP_LINEAR; + sampler_desc.AddressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP; + sampler_desc.AddressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP; + sampler_desc.AddressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP; + sampler_desc.MinLOD = 0; + sampler_desc.MaxLOD = D3D12_FLOAT32_MAX; + sampler_desc.MipLODBias = 0.0f; + sampler_desc.MaxAnisotropy = 1; + sampler_desc.ComparisonFunc = D3D12_COMPARISON_FUNC_ALWAYS; + + renderer->GetDevice()->CreateSampler(&sampler_desc, samplers_heap->GetCPUDescriptorHandleForHeapStart()); +} + +void SceneRenderer::RenderScene(RendererPtr renderer, ScenePtr scene, CameraPtr camera, std::shared_ptr renderScreen) { + camera->aspect = (float)renderScreen->GetWidth() / (float)renderScreen->GetHeight(); + renderScreen->OnPreRender(renderer); + + D3D12_VIEWPORT viewport = {}; + viewport.TopLeftX = 0; + viewport.TopLeftY = 0; + viewport.Width = (float)renderScreen->GetWidth(); + viewport.Height = (float)renderScreen->GetHeight(); + viewport.MinDepth = 0; + viewport.MaxDepth = 1; + + + D3D12_RECT scissorRect = {}; + scissorRect.left = 0; + scissorRect.top = 0; + scissorRect.right = renderScreen->GetWidth(); + scissorRect.bottom = renderScreen->GetHeight(); + + auto commandList = renderer->BeginCommandList(); + auto rt = renderScreen->GetRenderTarget(renderScreen->GetCurrentBufferIndex()); + commandList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(rt.Get(), D3D12_RESOURCE_STATE_PRESENT, D3D12_RESOURCE_STATE_RENDER_TARGET)); + auto rtvHandle = renderScreen->GetRenderTargetDescriptor(renderScreen->GetCurrentBufferIndex()); + auto dsvHandle = renderScreen->GetDepthStencilDescriptor(renderScreen->GetCurrentBufferIndex()); + commandList->OMSetRenderTargets(1, &rtvHandle, FALSE, &dsvHandle); + + const float clearColor[] = { 0.1f, 0.1f, 0.14f, 1.0f }; + commandList->ClearRenderTargetView(rtvHandle, clearColor, 0, nullptr); + commandList->ClearDepthStencilView(dsvHandle, D3D12_CLEAR_FLAG_DEPTH | D3D12_CLEAR_FLAG_STENCIL, 1.0f, 0, 0, nullptr); + + //renderer->EndCommandList(); +// renderer->WaitCommandsQueue(); + + commandList->RSSetViewports(1, &viewport); + commandList->RSSetScissorRects(1, &scissorRect); + + std::vector> signatures; + std::vector> pso; + + + //draw all objects + for (auto obj : scene->objects) { + auto mr = obj->GetComponent(); + if (mr != nullptr) { + auto mesh = mr->GetMesh(); + if (mesh != nullptr) { + for (uint32_t i = 0; i < mesh->GetSubmeshCount(); ++i) { + auto mat = mr->GetMaterials()[i]; + auto submesh = mesh->GetSubmeshes()[i]; + if (mat == nullptr || submesh == nullptr) { + continue; + } + auto& params = mat->GetParametersBlock(); + + //params.SetShaderResource() + + //set system variables + auto tf = obj->transform->GetGlobalTransform(); + auto view = camera->worldToCameraMatrix(); + auto proj = camera->projectionMatrix(); + params.SetValue("mWorld", transpose(tf)); + params.SetValue("mView", transpose(view)); + params.SetValue("mProjection", transpose(proj)); + + auto camPos = camera->transform()->GetGlobalPosition(); + params.SetValue("cameraWorldPos", float4(camPos.x(), camPos.y(), camPos.z(), 0.0f)); + + mat->Apply(); + + + //create single element ranges for constant buffers + std::vector root_parameters; + + auto compiled_params = mat->GetCompiledParameters(ShaderType::Vs); + + for(auto p : compiled_params.buffers) + { + D3D12_ROOT_DESCRIPTOR rootCBVDescriptor; + rootCBVDescriptor.RegisterSpace = 0; + rootCBVDescriptor.ShaderRegister = p.bindPoint; + + D3D12_ROOT_PARAMETER root_param = {}; + root_param.ParameterType = D3D12_ROOT_PARAMETER_TYPE_CBV; + root_param.Descriptor = rootCBVDescriptor; + + root_parameters.push_back(root_param); + } + + + size_t srvParamOffset = root_parameters.size(); + size_t srvParamCount = 0; + + auto srvHeapAllocator = renderer->getSrvDescriptorsAllocator(); + auto srvHeap = srvHeapAllocator->getHeap(); + + std::vector srvRanges[2]; + //size_t srvParamCount = + //VS + PS + for(int id = 0; id < 2; ++id){ + auto shader_params = mat->GetCompiledParameters((ShaderType)id); + + for(auto r : shader_params.resources){ + if(r.type == D3D_SIT_TEXTURE) + { + auto param = mat->GetParametersBlock().GetParameterByName(r.name); + auto texParam = std::static_pointer_cast(param); + auto tex = texParam == nullptr ? nullptr : texParam->value; + + D3D12_DESCRIPTOR_RANGE range{}; + range.RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_SRV; + range.RegisterSpace = 0; + range.NumDescriptors = 1; + range.BaseShaderRegister = r.bindPoint; + range.OffsetInDescriptorsFromTableStart = srvHeapAllocator->getDescriptorId(tex->srvDescriptor); + srvRanges[id].push_back(range); + } + } + } + + //for each shader => create root table parameter + for(size_t s = 0; s < 2; ++s) + { + auto& ranges = srvRanges[s]; + if(!ranges.empty()) + { + D3D12_ROOT_DESCRIPTOR_TABLE srvTable; + srvTable.NumDescriptorRanges = ranges.size(); + srvTable.pDescriptorRanges = &ranges[0]; + + D3D12_ROOT_PARAMETER srvParameter; + srvParameter.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; + srvParameter.ShaderVisibility = ((ShaderType)s == ShaderType::Vs) ? D3D12_SHADER_VISIBILITY_VERTEX : D3D12_SHADER_VISIBILITY_PIXEL; + srvParameter.DescriptorTable = srvTable; + root_parameters.push_back(srvParameter); + + srvParamCount++; + } + } + + + // create a static sampler + D3D12_STATIC_SAMPLER_DESC sampler = {}; + sampler.Filter = D3D12_FILTER_MIN_MAG_MIP_POINT; + sampler.AddressU = D3D12_TEXTURE_ADDRESS_MODE_BORDER; + sampler.AddressV = D3D12_TEXTURE_ADDRESS_MODE_BORDER; + sampler.AddressW = D3D12_TEXTURE_ADDRESS_MODE_BORDER; + sampler.MipLODBias = 0; + sampler.MaxAnisotropy = 0; + sampler.ComparisonFunc = D3D12_COMPARISON_FUNC_NEVER; + sampler.BorderColor = D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK; + sampler.MinLOD = 0.0f; + sampler.MaxLOD = D3D12_FLOAT32_MAX; + sampler.ShaderRegister = 0; + sampler.RegisterSpace = 0; + sampler.ShaderVisibility = D3D12_SHADER_VISIBILITY_PIXEL; + + + //create root signature + CD3DX12_ROOT_SIGNATURE_DESC rootSignatureDesc; + rootSignatureDesc.Init(root_parameters.size(), // we have 1 root parameter + &root_parameters[0], // a pointer to the beginning of our root parameters array + 1, + &sampler, + D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT | // we can deny shader stages here for better performance + D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS | + D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS | + D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS); + + + ComPtr signature; + ComPtr signatureErrors; + auto hr = D3D12SerializeRootSignature(&rootSignatureDesc, D3D_ROOT_SIGNATURE_VERSION_1, &signature, &signatureErrors); + if (FAILED(hr)) { + FatalError(L"Failed to serialize root signature"); + } + + ComPtr rootSignature; + hr = renderer->GetDevice()->CreateRootSignature(0, signature->GetBufferPointer(), signature->GetBufferSize(), IID_PPV_ARGS(&rootSignature)); + if (FAILED(hr)) { + FatalError(L"Failed to create root signature"); + } + + signatures.push_back(rootSignature); + + + //create PSO + DXGI_SAMPLE_DESC sampleDesc = {}; + sampleDesc.Count = 1; + + D3D12_GRAPHICS_PIPELINE_STATE_DESC psoDesc = {}; + psoDesc.pRootSignature = rootSignature.Get(); + psoDesc.InputLayout = mr->GetInputLayout(); + psoDesc.VS = mat->GetShader()->GetShader(ShaderType::Vs)->get_bytecode(); + psoDesc.PS = mat->GetShader()->GetShader(ShaderType::Ps)->get_bytecode(); + psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; + psoDesc.RTVFormats[0] = DXGI_FORMAT_B8G8R8A8_UNORM; + psoDesc.SampleDesc = sampleDesc; + psoDesc.SampleMask = 0xffffffff; + psoDesc.RasterizerState = CD3DX12_RASTERIZER_DESC(D3D12_DEFAULT); + psoDesc.BlendState = CD3DX12_BLEND_DESC(D3D12_DEFAULT); + psoDesc.NumRenderTargets = 1; + psoDesc.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC(D3D12_DEFAULT); + psoDesc.DSVFormat = DXGI_FORMAT_D24_UNORM_S8_UINT; + + auto device = renderer->GetDevice(); + + + if (FAILED(hr)) { + FatalError(L"Failed to create PSO"); + } + + ComPtr pipelineStateObject; + hr = device->CreateGraphicsPipelineState(&psoDesc, IID_PPV_ARGS(&pipelineStateObject)); + pipelineStateObject->SetName(L"PSO"); + + + pso.push_back(pipelineStateObject); + + + //commandList = renderer->BeginCommandList(); + + commandList->SetPipelineState(pipelineStateObject.Get()); + + commandList->SetGraphicsRootSignature(rootSignature.Get()); + + commandList->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); + auto vbView = mesh->GetVertexBufferView(); + + commandList->IASetVertexBuffers(0, 1, &vbView); + + auto ibView = submesh->GetIndexBufferView(); + commandList->IASetIndexBuffer(&ibView); + + //commandList->SetGraphicsRootShaderResourceView() + + + ID3D12DescriptorHeap* descriptorHeaps[] = { srvHeap.Get() }; + commandList->SetDescriptorHeaps(_countof(descriptorHeaps), descriptorHeaps); + + + for (size_t p = srvParamOffset; p < srvParamOffset + srvParamCount; ++p) { + commandList->SetGraphicsRootDescriptorTable(p, srvHeap->GetGPUDescriptorHandleForHeapStart()); + } + + //apply constant buffers + for (size_t k = 0; k < compiled_params.buffers.size(); ++k) { + commandList->SetGraphicsRootConstantBufferView(k, compiled_params.buffers[k].buffer->GetGPUVirtualAddress()); + } + + + commandList->DrawIndexedInstanced(submesh->GetIndicesCount(), 1, 0, 0, 0); + + //renderer->EndCommandList(); + //renderer->WaitCommandsQueue(); + } + } + } + } + + //commandList = renderer->BeginCommandList(); + commandList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(rt.Get(), D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_PRESENT)); + renderer->EndCommandList(); + renderer->WaitCommandsQueue(); + + + + renderScreen->Present(); + //signatures.clear(); + //renderer->reportLiveObjects(); + + scene->GetGizmos().PrepareRender(); + scene->GetGizmos().DrawAll(camera); + scene->GetGizmos().Clear(); +} \ No newline at end of file diff --git a/LEngine/SceneRenderer.h b/LEngine/SceneRenderer.h new file mode 100644 index 0000000..76a7598 --- /dev/null +++ b/LEngine/SceneRenderer.h @@ -0,0 +1,20 @@ +#pragma once +#include "LEngine.h" +#include "Mesh.h" +#include "MeshGenerator.h" +#include "Scene.h" +#include "Renderer.h" +#include "Camera.h" +#include "FatalError.h" +#include "MeshRenderer.h" + +#pragma comment(lib, "d3d11.lib") + +class SceneRenderer { +public: + SceneRenderer(); + void RenderScene(RendererPtr renderer, ScenePtr scene, CameraPtr camera, std::shared_ptr renderScreen); +private: + ComPtr samplers_heap; +}; + diff --git a/LEngine/Shader.cpp b/LEngine/Shader.cpp new file mode 100644 index 0000000..3226932 --- /dev/null +++ b/LEngine/Shader.cpp @@ -0,0 +1,76 @@ +#include "Shader.h" +#include +#include +#include "File.h" +#include "LEngine.h" +#include "AssetManager.h" +#include "ShaderInclude.h" +#include + +#pragma comment(lib, "D3dcompiler.lib") + +namespace fs = std::experimental::filesystem::v1; + +ComPtr Shader::CompileSHader(const std::wstring& filename, const std::string& entry, const std::string& profile) { + std::ifstream file(filename); + if(!file.good()) { + return nullptr; + } + + fs::path p(filename); + auto parent = p.parent_path(); + + ShaderInclude inc(parent.wstring()); + + std::string shaderCode; + FileReadAllText(filename, shaderCode); + + ComPtr blob; + ComPtr errorBlob; + + //compile vertex shader + if(S_OK != D3DCompile(shaderCode.c_str(), shaderCode.size(), "", nullptr, &inc, entry.c_str(), profile.c_str(), D3DCOMPILE_DEBUG | D3DCOMPILE_SKIP_OPTIMIZATION, 0, &blob, &errorBlob)) { + char* ptr = (char*)errorBlob->GetBufferPointer(); + throw std::exception((char*)errorBlob->GetBufferPointer()); + return nullptr; + } + return blob; +} + +Shader::Shader(ComPtr dev) :device(dev) { + +} + +ShaderPtr Shader::Create() { + return std::shared_ptr(new Shader(LEngine::Instance()->GetRenderer()->GetDevice())); +} + +ShaderPtr Shader::Create(const std::wstring& filePath) { + auto shader = Create(); + shader->FromFile(AssetManager::Instance()->GetFullAssetPath(filePath)); + return shader; +} + +void Shader::FromFile(const std::wstring& shaderFilePath) { + auto vsBlob = CompileSHader(shaderFilePath, "main_vs", "vs_5_0"); + if(vsBlob != nullptr) { + ShaderDataPtr shader(new ShaderData()); + shader->blob = vsBlob; + shaders[(int)ShaderType::Vs] = shader; + } + + auto psBlob = CompileSHader(shaderFilePath, "main_ps", "ps_5_0"); + if(psBlob != nullptr) { + ShaderDataPtr shader(new ShaderData()); + shader->blob = psBlob; + shaders[(int)ShaderType::Ps] = shader; + } +} + +ShaderDataPtr Shader::GetShader(ShaderType type) { + return shaders[(uint32_t)type]; +} + +ComPtr Shader::GetDevice() { + return device; +} \ No newline at end of file diff --git a/LEngine/Shader.h b/LEngine/Shader.h new file mode 100644 index 0000000..36740b9 --- /dev/null +++ b/LEngine/Shader.h @@ -0,0 +1,56 @@ +#ifndef Shader_h__ +#define Shader_h__ + +#include +#include +#include +#include "ForwardDeclarations.h" +#include +#include +#include + +using namespace Microsoft::WRL; + +class ShaderData { +public: + ComPtr blob; + + D3D12_SHADER_BYTECODE get_bytecode() { + D3D12_SHADER_BYTECODE bytecode = {}; + bytecode.BytecodeLength = blob->GetBufferSize(); + bytecode.pShaderBytecode = blob->GetBufferPointer(); + return bytecode; + } +}; + +typedef std::shared_ptr ShaderDataPtr; + +enum class ShaderType { + Vs, + Ps, + Gs, + Hull, + Domain, + Count +}; + +class Shader { +public: + std::wstring class_name() const { + return L"Shader"; + } + static ShaderPtr Create(); + static ShaderPtr Create(const std::wstring& filePath); + void FromFile(const std::wstring& shaderFilePath); + ShaderDataPtr GetShader(ShaderType type); + ComPtr GetDevice(); +private: + Shader(ComPtr dev); + ShaderDataPtr shaders[(uint32_t)ShaderType::Count]; + ComPtr device; + ComPtr CompileSHader(const std::wstring& filename, const std::string& entry, const std::string& profile); +}; + + + +#endif // Shader_h__ diff --git a/LEngine/ShaderInclude.h b/LEngine/ShaderInclude.h new file mode 100644 index 0000000..3e1c529 --- /dev/null +++ b/LEngine/ShaderInclude.h @@ -0,0 +1,68 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include "File.h" +#include +#include +#include + +namespace fs = std::experimental::filesystem::v1; + +class ShaderIncludeFile { +public: + std::wstring fullPath; + std::vector data; +}; + +class ShaderInclude : public ID3DInclude { +public: + ShaderInclude(std::wstring localDirectory){ + _localPathStack.push(localDirectory); + } + + STDOVERRIDEMETHODIMP Open(THIS_ D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes){ + std::wstring_convert> converter; + std::wstring wideFileName = converter.from_bytes(pFileName); + std::wstring fullPath; + + switch (IncludeType) { + case D3D_INCLUDE_LOCAL: + case D3D_INCLUDE_SYSTEM: + fullPath = _localPathStack.top() + L"/" + wideFileName; + + fs::path p(fullPath); + auto parent = p.parent_path(); + _localPathStack.push(parent.wstring()); + break; + } + + for (auto& f : _files) { + if (f->fullPath == fullPath) { + throw std::exception("Circular dependency detected!"); + } + } + + auto file = std::make_shared(); + file->fullPath = fullPath; + FileReadAllBytes(fullPath, file->data); + _files.push_back(file); + + *ppData = &file->data[0]; + *pBytes = file->data.size(); + return S_OK; + } + + STDOVERRIDEMETHODIMP Close(THIS_ LPCVOID pData){ + _localPathStack.pop(); + return S_OK; + } + +private: + std::stack _localPathStack; + std::vector> _files; +}; diff --git a/LEngine/ShaderParametersBlock.h b/LEngine/ShaderParametersBlock.h new file mode 100644 index 0000000..004433a --- /dev/null +++ b/LEngine/ShaderParametersBlock.h @@ -0,0 +1,159 @@ +#ifndef ShaderParametersBlock_h__ +#define ShaderParametersBlock_h__ + +#include "Shader.h" +#include +#include +#include +#include "ForwardDeclarations.h" +#include "d3d11_types.h" + +class ShaderBufferVariable { +public: + std::string name; + uint32_t offset; + uint32_t size; + + ShaderBufferVariable() { + + } + + ShaderBufferVariable(const std::string& _name, uint32_t _offset, uint32_t _size) + :name(_name), size(_size), offset(_offset){ + + } +}; + +class ShaderResourceVariable { +public: + std::string name; + uint32_t bindPoint; + D3D_SHADER_INPUT_TYPE type; +}; + +class ShaderBufferContext { +public: + ID3D12ResourcePtr buffer; + size_t size; + std::vector variables; + std::string name; + uint32_t bindPoint; + D3D_SHADER_INPUT_TYPE type; +}; + +class ShaderParametersContext { +public: + void Clear() { + buffers.clear(); + resources.clear(); + } + std::vector buffers; + std::vector resources; +}; + +class ShaderParameter { +public: + virtual ~ShaderParameter() + { + } + + ShaderParameter(const std::string& _name) :name(_name) { + + } + virtual void* GetPointer() = 0; + std::string name; +}; + +typedef std::shared_ptr ShaderParameterPtr; + +template +class ShaderValueParameter : public ShaderParameter { +public: + ShaderValueParameter(const std::string& _name) :ShaderParameter(_name) + { + + } + void* GetPointer() override { + return &value; + } + T value; +}; + +class ShaderResourceParameter : public ShaderParameter { +public: + ShaderResourceParameter(const std::string& _name) :ShaderParameter(_name) { + + } + ShaderResourceParameter(const std::string& _name, ID3D11ShaderResourceViewPtr view) : value(view), ShaderParameter(_name) { + name = _name; + } + ID3D11ShaderResourceViewPtr value; + void* GetPointer() override { + return nullptr; + } +}; + +class ShaderTextureParameter : public ShaderParameter { +public: + ShaderTextureParameter(const std::string& _name) :ShaderParameter(_name) { + + } + ShaderTextureParameter(const std::string& _name, TexturePtr view) : ShaderParameter(_name), value(view){ + name = _name; + } + TexturePtr value; + void* GetPointer() override { + return nullptr; + } +}; + +typedef std::shared_ptr ShaderResourceParameterPtr; +typedef std::shared_ptr ShaderTextureParameterPtr; + +class ShaderParametersBlock { +public: + void SetTexture(const std::string& name, TexturePtr texture) { + /*ID3D11ResourcePtr resourcePtr; + + D3D11_TEXTURE2D_DESC desc; + texture->GetDesc(&desc); + texture.QueryInterface(&resourcePtr); + SetShaderResource(name, resourcePtr);*/ + + ShaderTextureParameterPtr parameter(new ShaderTextureParameter(name, texture)); + for (auto it = parameters.begin(); it != parameters.end(); ++it) { + if ((*it)->name == name) { + *it = parameter; + return; + } + } + parameters.push_back(parameter); + + } + + template + void SetValue(const std::string& name, const T& value) { + std::shared_ptr> param(new ShaderValueParameter(name)); + param->value = value; + for (auto it = parameters.begin(); it != parameters.end(); ++it) { + if ((*it)->name == name) { + *it = param; + return; + } + } + parameters.push_back(param); + } + + ShaderParameterPtr GetParameterByName(const std::string& name) { + for (auto p : parameters) { + if (p->name == name) { + return p; + } + } + return nullptr; + } +private: + std::vector parameters; +}; + +#endif // ShaderParametersBlock_h__ diff --git a/LEngine/Submesh.h b/LEngine/Submesh.h new file mode 100644 index 0000000..a6a3763 --- /dev/null +++ b/LEngine/Submesh.h @@ -0,0 +1,118 @@ +#ifndef Submesh_h__ +#define Submesh_h__ + +#include +#include "LEngine.h" +#include "d3d11_types.h" +#include +#include "d3dx12.h" + +enum class MeshTopology { + TriangleList, + TriangleStrip, + LineList, + LineStrip +}; + +class Submesh { +public: + typedef uint32_t index_count_t; + typedef uint32_t index_t; + typedef std::vector index_array_t; + + Submesh() + :_indexCount(0) + { + + } + ID3D12ResourcePtr GetIndexBuffer() const{ + return _indexBuffer; + } + + MeshTopology GetTopology() const{ + return _topology; + } + + D3D12_INDEX_BUFFER_VIEW GetIndexBufferView() + { + return _indexBufferView; + } + + void Set(index_array_t indices, MeshTopology topology) { + _indexCount = indices.size(); + _topology = topology; + _indexBuffer = nullptr; + + if (_indexCount == 0) { + return; + } + + D3D11_BUFFER_DESC desc = { 0 }; + D3D11_SUBRESOURCE_DATA data = { 0 }; + + //index buffer + desc.Usage = D3D11_USAGE_DEFAULT; + desc.ByteWidth = sizeof(indices[0]) * indices.size(); + desc.BindFlags = D3D11_BIND_INDEX_BUFFER; + desc.CPUAccessFlags = 0; + desc.MiscFlags = 0; + + data.pSysMem = &indices[0]; + data.SysMemPitch = 0; + data.SysMemSlicePitch = 0; + + auto renderer = LEngine::Instance()->GetRenderer(); + auto device = renderer->GetDevice(); + auto cmdList = renderer->BeginCommandList(); + + //create temporal upload resource + ComPtr uploadBuffer; + device->CreateCommittedResource(&CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_UPLOAD), + D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES, + &CD3DX12_RESOURCE_DESC::Buffer(desc.ByteWidth), + D3D12_RESOURCE_STATE_GENERIC_READ, nullptr, IID_PPV_ARGS(&uploadBuffer)); + + + //upload data to temporal resource + void* p; + uploadBuffer->Map(0, nullptr, &p); + memcpy(p, &indices[0], desc.ByteWidth); + uploadBuffer->Unmap(0, nullptr); + + device->CreateCommittedResource(&CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT), + D3D12_HEAP_FLAG_NONE, + &CD3DX12_RESOURCE_DESC::Buffer(desc.ByteWidth), + D3D12_RESOURCE_STATE_COPY_DEST, + nullptr, + IID_PPV_ARGS(&_indexBuffer)); + + + _indexBufferView.BufferLocation = _indexBuffer->GetGPUVirtualAddress(); + _indexBufferView.SizeInBytes = desc.ByteWidth; + _indexBufferView.Format = DXGI_FORMAT_R32_UINT; + + + cmdList->CopyBufferRegion(_indexBuffer.Get(), 0, uploadBuffer.Get(), 0, desc.ByteWidth); + + CD3DX12_RESOURCE_BARRIER barriers[1] = { + CD3DX12_RESOURCE_BARRIER::Transition(_indexBuffer.Get(), + D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_INDEX_BUFFER) + }; + + + cmdList->ResourceBarrier(1, barriers); + renderer->EndCommandList(); + renderer->WaitCommandsQueue(); + } + index_count_t GetIndicesCount() const { + return _indexCount; + } +private: + index_count_t _indexCount; + MeshTopology _topology; + ID3D12ResourcePtr _indexBuffer; + D3D12_INDEX_BUFFER_VIEW _indexBufferView; +}; + +typedef std::shared_ptr SubmeshPtr; +#endif // Submesh_h__ diff --git a/LEngine/SwapChainOutput.h b/LEngine/SwapChainOutput.h new file mode 100644 index 0000000..b31bbd5 --- /dev/null +++ b/LEngine/SwapChainOutput.h @@ -0,0 +1,124 @@ +#pragma once + +#include "RenderOutput.h" +#include "d3d11_types.h" +#include "Renderer.h" +#include "d3dx12.h" + + +class SwapChainOutput : public RenderOutput { +public: + SwapChainOutput(RendererPtr renderer, HWND window, uint32_t width, uint32_t height, bool stereo) : _activeBuffer(0){ + _buffersCount = 2; + _swapChain = renderer->CreateSwapChain(window, true, width, height, _buffersCount, stereo); + auto device = renderer->GetDevice(); + + //create RTV descriptors heap + D3D12_DESCRIPTOR_HEAP_DESC heap_desc = {}; + heap_desc.NumDescriptors = _buffersCount; + heap_desc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_RTV; + heap_desc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_NONE; + + HR_ASSERT_MSG(device->CreateDescriptorHeap(&heap_desc, IID_PPV_ARGS(&rtvDescriptorHeap)), L"Failed to allocate RTV descriptors heap"); + rtvDescriptorHeap->SetName(L"RTV Heap"); + + rtvDescSize = device->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_RTV); + CD3DX12_CPU_DESCRIPTOR_HANDLE rtvHandle(rtvDescriptorHeap->GetCPUDescriptorHandleForHeapStart()); + + + //create DSV descriptors heap + heap_desc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_DSV; + HR_ASSERT_MSG(device->CreateDescriptorHeap(&heap_desc, IID_PPV_ARGS(&dsvDescriptorHeap)), L"Failed to allocate DSV descriptors heap"); + dsvDescriptorHeap->SetName(L"DSV Heap"); + + dsvDescSize = device->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_DSV); + CD3DX12_CPU_DESCRIPTOR_HANDLE dsvHandle(dsvDescriptorHeap->GetCPUDescriptorHandleForHeapStart()); + + for(uint32_t i = 0; i < _buffersCount; ++i){ + //get back buffer + ID3D12ResourcePtr _backBuffer; + if (FAILED(_swapChain->GetBuffer(i, IID_PPV_ARGS(&_backBuffer)))){ + FatalError(TEXT("Failed to get swap chain's bffer")); + } + device->CreateRenderTargetView(_backBuffer.Get(), nullptr, rtvHandle); + + + + //create depth buffer + D3D12_CLEAR_VALUE depthOptimizedClearValue = {}; + depthOptimizedClearValue.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; + depthOptimizedClearValue.DepthStencil.Depth = 1.0f; + depthOptimizedClearValue.DepthStencil.Stencil = 0; + + ComPtr depthStencilBuffer; + device->CreateCommittedResource( + &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT), + D3D12_HEAP_FLAG_NONE, + &CD3DX12_RESOURCE_DESC::Tex2D(DXGI_FORMAT_D24_UNORM_S8_UINT, width, height, 1, 0, 1, 0, D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL), + D3D12_RESOURCE_STATE_DEPTH_WRITE, + &depthOptimizedClearValue, + IID_PPV_ARGS(&depthStencilBuffer) + ); + + device->CreateDepthStencilView(depthStencilBuffer.Get(), nullptr, dsvHandle); + + rtvHandle.Offset(1, rtvDescSize); + dsvHandle.Offset(1, dsvDescSize); + _buffers.push_back({ _backBuffer, depthStencilBuffer }); + } + } + virtual uint32_t GetWidth() override{ + return GetDesc().Width; + } + + virtual uint32_t GetHeight() override + { + return GetDesc().Height; + } + + CD3DX12_CPU_DESCRIPTOR_HANDLE GetRenderTargetDescriptor(uint32_t id) override { + return CD3DX12_CPU_DESCRIPTOR_HANDLE(rtvDescriptorHeap->GetCPUDescriptorHandleForHeapStart(), id, rtvDescSize); + } + CD3DX12_CPU_DESCRIPTOR_HANDLE GetDepthStencilDescriptor(uint32_t id) override { + return CD3DX12_CPU_DESCRIPTOR_HANDLE(dsvDescriptorHeap->GetCPUDescriptorHandleForHeapStart(), id, dsvDescSize); + } + + ID3D12ResourcePtr GetRenderTarget(uint32_t id) override{ + return _buffers[id].first; + } + + ID3D12ResourcePtr GetDepthBuffer(uint32_t id) override { + return _buffers[id].second; + } + + virtual void Present() override{ + _swapChain->Present(0, 0); + _activeBuffer = (_activeBuffer + 1) % _buffersCount; + } + + virtual void OnPreRender(RendererPtr renderer) override{ + + } + + DXGI_SWAP_CHAIN_DESC1 GetDesc() { + DXGI_SWAP_CHAIN_DESC1 desc; + _swapChain->GetDesc1(&desc); + return desc; + } + uint32_t GetCurrentBufferIndex() override{ + return _activeBuffer; + } + uint32_t GetBuffersCount() override{ + return _buffersCount; + } +private: + std::vector> _buffers; + uint32_t _activeBuffer; + uint32_t _buffersCount; + UINT rtvDescSize; + UINT dsvDescSize; + ComPtr rtvDescriptorHeap; + ComPtr dsvDescriptorHeap; + IDXGISwapChain1Ptr _swapChain; + +}; diff --git a/LEngine/Texture.h b/LEngine/Texture.h new file mode 100644 index 0000000..caf9d95 --- /dev/null +++ b/LEngine/Texture.h @@ -0,0 +1,18 @@ +#ifndef Texture_h__ +#define Texture_h__ + +#include +#include "d3d11_types.h" + +class Texture +{ +public: + Texture(ID3D12ResourcePtr _resource, D3D12_CPU_DESCRIPTOR_HANDLE _srvDescriptor) + :resource(_resource), srvDescriptor(_srvDescriptor) + { + + } + ID3D12ResourcePtr resource; + D3D12_CPU_DESCRIPTOR_HANDLE srvDescriptor; +}; +#endif // Texture_h__ diff --git a/LEngine/TextureImporter.h b/LEngine/TextureImporter.h new file mode 100644 index 0000000..c107185 --- /dev/null +++ b/LEngine/TextureImporter.h @@ -0,0 +1,33 @@ +#ifndef TextureImporter_h__ +#define TextureImporter_h__ + +#include "AssetImporter.h" +#include + +/* +class TextureImporter : public AssetImporter { +public: + virtual bool can_import(const std::wstring& path) const override { + std::tr2::sys::path file_path(path); + if (!file_path.has_extension()) { + return false; + } else { + return file_path.extension() == ".bmp"; + } + } + + virtual bool load_parameters(const std::wstring& params) override { + throw std::logic_error("The method or operation is not implemented."); + } + + virtual std::wstring save_parameters() override { + throw std::logic_error("The method or operation is not implemented."); + } + + virtual std::wstring name() override { + return L"TextureImporter"; + } + +};*/ + +#endif // TextureImporter_h__ diff --git a/LEngine/Transform.h b/LEngine/Transform.h new file mode 100644 index 0000000..a6d59b8 --- /dev/null +++ b/LEngine/Transform.h @@ -0,0 +1,94 @@ +#ifndef Transform_h__ +#define Transform_h__ + +#include "lmath.h" +#include "Mathf.h" +#include "ObjectsFactory.h" +#include "Component.h" +#include "Archive.h" + +using namespace lm; + +LOBJECT(Transform, Component) +public: + std::shared_ptr parent; + Quaternion_f _rotation; + float3 _position; + float3 _scale; + + Transform() + :_scale(1.0f,1.0f,1.0f), _position(0.0f,0.0f,0.0f), _rotation(0.0f,0.0f,0.0f,1.0f){ + } + + void serialize(Archive& archive) override{ + Component::serialize(archive); + archive << parent; + archive << _rotation << _position << _scale; + } + + std::wstring class_name() const { + return L"Transform"; + } + + void SetLocalPosition(const float3& position) { + _position = position; + } + float3 GetLocalPosition() { + return _position; + } + + float3 forward() const{ + return GetGlobalTransform().z().xyz(); + } + + float3 right() const { + return GetGlobalTransform().x().xyz(); + } + + float3 up() const { + return GetGlobalTransform().y().xyz(); + } + + void SetLocalRotation(const Quaternion_f& rotation) { + _rotation = rotation; + } + + Quaternion_f GetLocalRotation() { + return _rotation; + } + + void SetLocalScale(const float3& scale) { + _scale = scale; + } + + float3 GetLocalScale() { + return _scale; + } + + float4x4 GetLocalTransform() const{ + auto scaleMatrix = matrix4x4Scale(_scale); + auto rotationMatrix = matrix4x4RotationQuaternion(_rotation); + auto positionMatrix = matrix4x4Translation(_position); + return lm::mul(lm::mul(scaleMatrix, rotationMatrix), positionMatrix); + } + + float4x4 GetGlobalTransform() const{ + if(parent == nullptr) { + return GetLocalTransform(); + } + return lm::mul(GetLocalTransform(), parent->GetGlobalTransform()); + } + + float3 GetGlobalPosition() { + auto tf = GetGlobalTransform(); + return float3(tf[0][3], tf[1][3], tf[2][3]); + } + + void RotateLocal(const Quaternion_f& rotation) { + _rotation = lm::mul(_rotation, rotation); + } +}; + + + +#endif // Transform_h__ diff --git a/LEngine/Vertex.h b/LEngine/Vertex.h new file mode 100644 index 0000000..41b2604 --- /dev/null +++ b/LEngine/Vertex.h @@ -0,0 +1,27 @@ +#ifndef Vertex_h__ +#define Vertex_h__ + +#include "lmath.h" + +using namespace lm; +struct Vertex { + float4 position; + float3 normal; + float2 uv0; + float2 uv1; + + Vertex() { + + } + + Vertex(float4 _pos, float3 _norm) { + position = _pos; + normal = _norm; + } + Vertex(float4 _pos, float3 _norm, float2 _uv0) { + position = _pos; + normal = _norm; + uv0 = _uv0; + } +}; +#endif // Vertex_h__ diff --git a/LEngine/WindowRenderOutput.cpp b/LEngine/WindowRenderOutput.cpp new file mode 100644 index 0000000..c0d6144 --- /dev/null +++ b/LEngine/WindowRenderOutput.cpp @@ -0,0 +1,242 @@ +#include "WindowRenderOutput.h" +#include +#include +#include +#include "LEngine.h" +/* +std::vector GetDisplayModes(DXGI_FORMAT format, CComPtr output) { + std::vector result; + UINT numStereoModes = 0; + DXGI_MODE_DESC1 modes[1024]; + auto enumFlags = DXGI_ENUM_MODES_STEREO; + + output->GetDisplayModeList1(format, enumFlags, &numStereoModes, 0); + output->GetDisplayModeList1(format, enumFlags, &numStereoModes, modes); + + for (UINT i = 0; i < numStereoModes; ++i) { + result.push_back(modes[i]); + } + return result; +} + +std::vector GetStereoModes(std::vector& modes) { + std::vector result; + for (auto& m : modes) { + if (m.Stereo) { + result.push_back(m); + } + } + return result; +} + +std::vector GetModesByResolution(std::vector& modes, UINT width, UINT height) { + std::vector result; + for (auto& m : modes) { + if (m.Width == width && m.Height == height) { + result.push_back(m); + } + } + return result; +} + +bool FindModeByRefreshRate(UINT targetRate, std::vector& modes, DXGI_MODE_DESC1& mode) { + for (auto& m : modes) { + auto refreshRate = m.RefreshRate.Numerator / m.RefreshRate.Denominator; + int range = 2; + //test if in range + if ((refreshRate >= (targetRate - range)) && (refreshRate <= (targetRate + range))) { + mode = m; + return true; + } + } + return false; +} + + +WindowRenderOutput::WindowRenderOutput(){ + +} + +WindowRenderOutput::~WindowRenderOutput() +{ +} + +Window& WindowRenderOutput::GetWindow() { + return _window; +} + +void WindowRenderOutput::Init(){ + _window.Init();*/ + /*NettleDisplayManager::EDID edid; + NettleDisplayManager::ReadEdidForDxgiOutput(vOutputs[0], edid); + auto& mainEdidBlock = edid.GetMainBlock(); + + auto hSize = mainEdidBlock.detailedTimingDescriptions.detailedTimingDescription1.horizontalBlanking.GetActivePixels(); + auto vSize = mainEdidBlock.detailedTimingDescriptions.detailedTimingDescription1.verticalBlanking.GetActivePixels();*/ + /* + auto hSize = 640; + auto vSize = 480; + + auto backBufferFormat = DXGI_FORMAT_B8G8R8A8_UNORM; + + CComPtr pOutput; + std::vector> vOutputs; + int outputId = 0; + while (LEngine::Instance()->GetRenderer()->GetAdapter()->EnumOutputs(outputId, &pOutput) != DXGI_ERROR_NOT_FOUND) { + vOutputs.push_back(pOutput); + pOutput = nullptr; + ++outputId; + } + + DXGI_OUTPUT_DESC desc; + vOutputs[0]->GetDesc(&desc); + _output = vOutputs[0]; + + CComPtr testOutput; + vOutputs[0].QueryInterface(&testOutput); + auto displayModes = GetDisplayModes(backBufferFormat, testOutput); + //auto stereoModes = GetModesByResolution(GetStereoModes(displayModes), 1920, 1080); + auto stereoModes = GetModesByResolution(displayModes, hSize, vSize); + + DXGI_MODE_DESC1 targetMode = { 0 }; + if (!FindModeByRefreshRate(60, stereoModes, targetMode)) { + FatalError(TEXT("Failed to find 1920 x 1080 stereo 60Hz mode!")); + } + + // Allocate a descriptor. + DXGI_SWAP_CHAIN_DESC1 swapChainDesc = { 0 }; + swapChainDesc.Width = targetMode.Width; + swapChainDesc.Height = targetMode.Height; + swapChainDesc.Format = targetMode.Format; + swapChainDesc.Stereo = targetMode.Stereo; + swapChainDesc.SampleDesc.Count = 1; + swapChainDesc.SampleDesc.Quality = 0; + swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; + swapChainDesc.BufferCount = 1; + swapChainDesc.Scaling = DXGI_SCALING_STRETCH; + swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; + swapChainDesc.Flags = 0; + + DXGI_SWAP_CHAIN_FULLSCREEN_DESC fullscreenDesc = { 0 }; + fullscreenDesc.RefreshRate = targetMode.RefreshRate; + fullscreenDesc.ScanlineOrdering = targetMode.ScanlineOrdering; + fullscreenDesc.Scaling = targetMode.Scaling; + fullscreenDesc.Windowed = TRUE; + + //create swap chain + if (S_OK != LEngine::Instance()->GetRenderer()->GetFactory()->CreateSwapChainForHwnd(LEngine::Instance()->GetRenderer()->GetDevice(), _window.GetHwnd(), &swapChainDesc, &fullscreenDesc, nullptr, &_swapChain)) { + FatalError(TEXT("Failed to create swap chain")); + } + + //get back buffer + + _swapChain->GetBuffer(0, IID_PPV_ARGS(&_backBuffer)); + + //left eye + + CD3D11_RENDER_TARGET_VIEW_DESC renderTargetViewDescLeft(D3D11_RTV_DIMENSION_TEXTURE2DARRAY, DXGI_FORMAT_B8G8R8A8_UNORM, 0, 0, 1); + if (S_OK != LEngine::Instance()->GetRenderer()->GetDevice()->CreateRenderTargetView(_backBuffer, &renderTargetViewDescLeft, &_leftRtv)) { + FatalError(TEXT("Failed to create left eye RTV")); + } + + bool forceStereo = false; + + + D3D11_TEXTURE2D_DESC descDepth; + descDepth.Width = swapChainDesc.Width; + descDepth.Height = swapChainDesc.Height; + descDepth.MipLevels = 1; + descDepth.ArraySize = 1; + descDepth.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; + descDepth.SampleDesc.Count = 1; + descDepth.SampleDesc.Quality = 0; + descDepth.Usage = D3D11_USAGE_DEFAULT; + descDepth.BindFlags = D3D11_BIND_DEPTH_STENCIL; + descDepth.CPUAccessFlags = 0; + descDepth.MiscFlags = 0; + auto hr = LEngine::Instance()->GetRenderer()->GetDevice()->CreateTexture2D(&descDepth, NULL, &_depthBuffer); + + LEngine::Instance()->GetRenderer()->GetDevice()->CreateDepthStencilView(_depthBuffer, nullptr, &_depthStencilView); + */ + //right eye + /*CD3D11_RENDER_TARGET_VIEW_DESC renderTargetViewDescRight(D3D11_RTV_DIMENSION_TEXTURE2DARRAY, DXGI_FORMAT_B8G8R8A8_UNORM, 0, 1, 1); + if(S_OK != device->CreateRenderTargetView(backBuffer, &renderTargetViewDescRight, &rightRtv)) { + if(forceStereo) { + FatalError(TEXT("Failed to create right eye RTV")); + } else { + rightRtv = nullptr; + } + + }*//* +} + +ID3D11DepthStencilViewPtr WindowRenderOutput::GetDepthStencilView() { + return _depthStencilView; +} + +void WindowRenderOutput::Update() { + _window.ProcessMessages(); +} + +void WindowRenderOutput::OnPreRender(RendererPtr renderer){ + uint32_t w, h; + _window.GetWindowSize(w, h); + D3D11_TEXTURE2D_DESC desc; + _backBuffer->GetDesc(&desc); + + if (desc.Width != w || desc.Height != h) { + _backBuffer = nullptr; + _leftRtv = nullptr; + _rightRtv = nullptr; + auto hr = _swapChain->ResizeBuffers(0, w, h, DXGI_FORMAT_UNKNOWN, 0); + if (hr != S_OK) { + assert(false && "Can't resize BB"); + } + + _swapChain->GetBuffer(0, IID_PPV_ARGS(&_backBuffer)); + + //left eye + CD3D11_RENDER_TARGET_VIEW_DESC renderTargetViewDescLeft(D3D11_RTV_DIMENSION_TEXTURE2DARRAY, DXGI_FORMAT_B8G8R8A8_UNORM, 0, 0, 1); + if (S_OK != renderer->GetDevice()->CreateRenderTargetView(_backBuffer, &renderTargetViewDescLeft, &_leftRtv)) { + FatalError(TEXT("Failed to create left eye RTV")); + } + } + + D3D11_VIEWPORT viewport; + ZeroMemory(&viewport, sizeof(D3D11_VIEWPORT)); + + viewport.TopLeftX = 0; + viewport.TopLeftY = 0; + viewport.Width = (float)w; + viewport.Height = (float)h; + viewport.MinDepth = 0; + viewport.MaxDepth = 1; + + renderer->GetImmediateContext()->RSSetViewports(1, &viewport); +} + +void WindowRenderOutput::Present() { + DXGI_PRESENT_PARAMETERS parameters = { 0 }; + parameters.DirtyRectsCount = 0; + parameters.pDirtyRects = nullptr; + parameters.pScrollRect = nullptr; + parameters.pScrollOffset = nullptr; + HRESULT hr = _swapChain->Present1(0, 0, ¶meters); +} + +uint32_t WindowRenderOutput::GetWidth(){ + D3D11_TEXTURE2D_DESC desc; + _backBuffer->GetDesc(&desc); + return desc.Width; +} + +uint32_t WindowRenderOutput::GetHeight(){ + D3D11_TEXTURE2D_DESC desc; + _backBuffer->GetDesc(&desc); + return desc.Height; +} + +CComPtr WindowRenderOutput::GetRenderTargetView(){ + return _leftRtv; +} +*/ \ No newline at end of file diff --git a/LEngine/WindowRenderOutput.h b/LEngine/WindowRenderOutput.h new file mode 100644 index 0000000..b59a44a --- /dev/null +++ b/LEngine/WindowRenderOutput.h @@ -0,0 +1,32 @@ +#ifndef WindowScreen_h__ +#define WindowScreen_h__ +/* +#include "RenderOutput.h" +#include "Renderer.h" +#include "d3d11_types.h" + +class WindowRenderOutput : public RenderOutput +{ +public: + WindowRenderOutput(); + ~WindowRenderOutput(); + void Init(); + void OnPreRender(RendererPtr renderer) override; + void Present() override; + void Update(); + virtual uint32_t GetWidth() override; + virtual uint32_t GetHeight() override; + virtual ID3D11RenderTargetViewPtr GetRenderTargetView() override; + virtual ID3D11DepthStencilViewPtr GetDepthStencilView() override; + Window& GetWindow(); +private: + Window _window; + IDXGIOutputPtr _output; + ID3D11Texture2DPtr _backBuffer; + ID3D11Texture2DPtr _depthBuffer; + ID3D11RenderTargetViewPtr _leftRtv; + ID3D11RenderTargetViewPtr _rightRtv; + ID3D11DepthStencilViewPtr _depthStencilView; + IDXGISwapChain1Ptr _swapChain; +};*/ +#endif // WindowScreen_h__ diff --git a/LEngine/d3d11_helper.h b/LEngine/d3d11_helper.h new file mode 100644 index 0000000..4f34724 --- /dev/null +++ b/LEngine/d3d11_helper.h @@ -0,0 +1,25 @@ +#ifndef d3d11_helper_h__ +#define d3d11_helper_h__ + +#include "d3d11_types.h" + +class d3d11_helper { +public: + static void DefaultDepthStencilDesc(D3D11_DEPTH_STENCIL_DESC& desc) { + desc.DepthEnable = TRUE; + desc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL; + desc.DepthFunc = D3D11_COMPARISON_LESS; + desc.StencilEnable = FALSE; + desc.StencilReadMask = D3D11_DEFAULT_STENCIL_READ_MASK; + desc.StencilWriteMask = D3D11_DEFAULT_STENCIL_WRITE_MASK; + desc.FrontFace.StencilFunc = D3D11_COMPARISON_ALWAYS; + desc.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS; + desc.FrontFace.StencilDepthFailOp = D3D11_STENCIL_OP_KEEP; + desc.BackFace.StencilDepthFailOp = D3D11_STENCIL_OP_KEEP; + desc.FrontFace.StencilPassOp = D3D11_STENCIL_OP_KEEP; + desc.BackFace.StencilPassOp = D3D11_STENCIL_OP_KEEP; + desc.FrontFace.StencilFailOp = D3D11_STENCIL_OP_KEEP; + desc.BackFace.StencilFailOp = D3D11_STENCIL_OP_KEEP; + } +}; +#endif // d3d11_helper_h__ diff --git a/LEngine/d3d11_types.h b/LEngine/d3d11_types.h new file mode 100644 index 0000000..7fde22f --- /dev/null +++ b/LEngine/d3d11_types.h @@ -0,0 +1,44 @@ +#ifndef d3d11_types_h__ +#define d3d11_types_h__ + +#include +#include +#include +#include + +#include + +using namespace Microsoft::WRL; + +typedef ComPtr ID3D11BufferPtr; +typedef ComPtr ID3D11DevicePtr; +typedef ComPtr ID3D11InputLayoutPtr; +typedef ComPtr ID3D11DepthStencilStatePtr; + +typedef ComPtr ID3D11DeviceContextPtr; + +typedef ComPtr ID3D11ShaderResourceViewPtr; + +typedef ComPtr IDXGIOutputPtr; +typedef ComPtr ID3D11Texture2DPtr; +typedef ComPtr ID3D11ResourcePtr; +typedef ComPtr ID3D12ResourcePtr; + +typedef ComPtr ID3D11RenderTargetViewPtr; +typedef ComPtr IDXGISwapChain1Ptr; +typedef ComPtr IDXGISwapChainPtr; +typedef ComPtr ID3D11DepthStencilViewPtr; + +typedef ComPtr IDXGIOutput1Ptr; + + +typedef ComPtr IDXGIDevice1Ptr; +typedef ComPtr IDXGIAdapterPtr; +typedef ComPtr IDXGIAdapter1Ptr; +typedef ComPtr IDXGIFactory2Ptr; +typedef ComPtr IDXGIFactory4Ptr; + + +typedef ComPtr ID3D12DevicePtr; + +#endif // d3d11_types_h__ diff --git a/LEngine/d3dx12.h b/LEngine/d3dx12.h new file mode 100644 index 0000000..36a68c1 --- /dev/null +++ b/LEngine/d3dx12.h @@ -0,0 +1,1766 @@ +//********************************************************* +// +// Copyright (c) Microsoft. All rights reserved. +// This code is licensed under the MIT License (MIT). +// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY +// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR +// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT. +// +//********************************************************* + +#ifndef __D3DX12_H__ +#define __D3DX12_H__ + +#include "d3d12.h" + +#if defined( __cplusplus ) + +struct CD3DX12_DEFAULT {}; +extern const DECLSPEC_SELECTANY CD3DX12_DEFAULT D3D12_DEFAULT; + +//------------------------------------------------------------------------------------------------ +inline bool operator==(const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r) { + return l.TopLeftX == r.TopLeftX && l.TopLeftY == r.TopLeftY && l.Width == r.Width && + l.Height == r.Height && l.MinDepth == r.MinDepth && l.MaxDepth == r.MaxDepth; +} + +//------------------------------------------------------------------------------------------------ +inline bool operator!=(const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r) { + return !(l == r); +} + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_RECT : public D3D12_RECT { + CD3DX12_RECT() { + } + explicit CD3DX12_RECT(const D3D12_RECT& o) : + D3D12_RECT(o) { + } + explicit CD3DX12_RECT( + LONG Left, + LONG Top, + LONG Right, + LONG Bottom) { + left = Left; + top = Top; + right = Right; + bottom = Bottom; + } + ~CD3DX12_RECT() {} + operator const D3D12_RECT&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_BOX : public D3D12_BOX { + CD3DX12_BOX() { + } + explicit CD3DX12_BOX(const D3D12_BOX& o) : + D3D12_BOX(o) { + } + explicit CD3DX12_BOX( + LONG Left, + LONG Right) { + left = Left; + top = 0; + front = 0; + right = Right; + bottom = 1; + back = 1; + } + explicit CD3DX12_BOX( + LONG Left, + LONG Top, + LONG Right, + LONG Bottom) { + left = Left; + top = Top; + front = 0; + right = Right; + bottom = Bottom; + back = 1; + } + explicit CD3DX12_BOX( + LONG Left, + LONG Top, + LONG Front, + LONG Right, + LONG Bottom, + LONG Back) { + left = Left; + top = Top; + front = Front; + right = Right; + bottom = Bottom; + back = Back; + } + ~CD3DX12_BOX() {} + operator const D3D12_BOX&() const { return *this; } +}; +inline bool operator==(const D3D12_BOX& l, const D3D12_BOX& r) { + return l.left == r.left && l.top == r.top && l.front == r.front && + l.right == r.right && l.bottom == r.bottom && l.back == r.back; +} +inline bool operator!=(const D3D12_BOX& l, const D3D12_BOX& r) { + return !(l == r); +} + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_DEPTH_STENCIL_DESC : public D3D12_DEPTH_STENCIL_DESC { + CD3DX12_DEPTH_STENCIL_DESC() { + } + explicit CD3DX12_DEPTH_STENCIL_DESC(const D3D12_DEPTH_STENCIL_DESC& o) : + D3D12_DEPTH_STENCIL_DESC(o) { + } + explicit CD3DX12_DEPTH_STENCIL_DESC(CD3DX12_DEFAULT) { + DepthEnable = TRUE; + DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; + DepthFunc = D3D12_COMPARISON_FUNC_LESS; + StencilEnable = FALSE; + StencilReadMask = D3D12_DEFAULT_STENCIL_READ_MASK; + StencilWriteMask = D3D12_DEFAULT_STENCIL_WRITE_MASK; + const D3D12_DEPTH_STENCILOP_DESC defaultStencilOp = + { D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_COMPARISON_FUNC_ALWAYS }; + FrontFace = defaultStencilOp; + BackFace = defaultStencilOp; + } + explicit CD3DX12_DEPTH_STENCIL_DESC( + BOOL depthEnable, + D3D12_DEPTH_WRITE_MASK depthWriteMask, + D3D12_COMPARISON_FUNC depthFunc, + BOOL stencilEnable, + UINT8 stencilReadMask, + UINT8 stencilWriteMask, + D3D12_STENCIL_OP frontStencilFailOp, + D3D12_STENCIL_OP frontStencilDepthFailOp, + D3D12_STENCIL_OP frontStencilPassOp, + D3D12_COMPARISON_FUNC frontStencilFunc, + D3D12_STENCIL_OP backStencilFailOp, + D3D12_STENCIL_OP backStencilDepthFailOp, + D3D12_STENCIL_OP backStencilPassOp, + D3D12_COMPARISON_FUNC backStencilFunc) { + DepthEnable = depthEnable; + DepthWriteMask = depthWriteMask; + DepthFunc = depthFunc; + StencilEnable = stencilEnable; + StencilReadMask = stencilReadMask; + StencilWriteMask = stencilWriteMask; + FrontFace.StencilFailOp = frontStencilFailOp; + FrontFace.StencilDepthFailOp = frontStencilDepthFailOp; + FrontFace.StencilPassOp = frontStencilPassOp; + FrontFace.StencilFunc = frontStencilFunc; + BackFace.StencilFailOp = backStencilFailOp; + BackFace.StencilDepthFailOp = backStencilDepthFailOp; + BackFace.StencilPassOp = backStencilPassOp; + BackFace.StencilFunc = backStencilFunc; + } + ~CD3DX12_DEPTH_STENCIL_DESC() {} + operator const D3D12_DEPTH_STENCIL_DESC&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_BLEND_DESC : public D3D12_BLEND_DESC { + CD3DX12_BLEND_DESC() { + } + explicit CD3DX12_BLEND_DESC(const D3D12_BLEND_DESC& o) : + D3D12_BLEND_DESC(o) { + } + explicit CD3DX12_BLEND_DESC(CD3DX12_DEFAULT) { + AlphaToCoverageEnable = FALSE; + IndependentBlendEnable = FALSE; + const D3D12_RENDER_TARGET_BLEND_DESC defaultRenderTargetBlendDesc = + { + FALSE,FALSE, + D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, + D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, + D3D12_LOGIC_OP_NOOP, + D3D12_COLOR_WRITE_ENABLE_ALL, + }; + for (UINT i = 0; i < D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT; ++i) + RenderTarget[i] = defaultRenderTargetBlendDesc; + } + ~CD3DX12_BLEND_DESC() {} + operator const D3D12_BLEND_DESC&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_RASTERIZER_DESC : public D3D12_RASTERIZER_DESC { + CD3DX12_RASTERIZER_DESC() { + } + explicit CD3DX12_RASTERIZER_DESC(const D3D12_RASTERIZER_DESC& o) : + D3D12_RASTERIZER_DESC(o) { + } + explicit CD3DX12_RASTERIZER_DESC(CD3DX12_DEFAULT) { + FillMode = D3D12_FILL_MODE_SOLID; + CullMode = D3D12_CULL_MODE_BACK; + FrontCounterClockwise = FALSE; + DepthBias = D3D12_DEFAULT_DEPTH_BIAS; + DepthBiasClamp = D3D12_DEFAULT_DEPTH_BIAS_CLAMP; + SlopeScaledDepthBias = D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; + DepthClipEnable = TRUE; + MultisampleEnable = FALSE; + AntialiasedLineEnable = FALSE; + ForcedSampleCount = 0; + ConservativeRaster = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF; + } + explicit CD3DX12_RASTERIZER_DESC( + D3D12_FILL_MODE fillMode, + D3D12_CULL_MODE cullMode, + BOOL frontCounterClockwise, + INT depthBias, + FLOAT depthBiasClamp, + FLOAT slopeScaledDepthBias, + BOOL depthClipEnable, + BOOL multisampleEnable, + BOOL antialiasedLineEnable, + UINT forcedSampleCount, + D3D12_CONSERVATIVE_RASTERIZATION_MODE conservativeRaster) { + FillMode = fillMode; + CullMode = cullMode; + FrontCounterClockwise = frontCounterClockwise; + DepthBias = depthBias; + DepthBiasClamp = depthBiasClamp; + SlopeScaledDepthBias = slopeScaledDepthBias; + DepthClipEnable = depthClipEnable; + MultisampleEnable = multisampleEnable; + AntialiasedLineEnable = antialiasedLineEnable; + ForcedSampleCount = forcedSampleCount; + ConservativeRaster = conservativeRaster; + } + ~CD3DX12_RASTERIZER_DESC() {} + operator const D3D12_RASTERIZER_DESC&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_RESOURCE_ALLOCATION_INFO : public D3D12_RESOURCE_ALLOCATION_INFO { + CD3DX12_RESOURCE_ALLOCATION_INFO() { + } + explicit CD3DX12_RESOURCE_ALLOCATION_INFO(const D3D12_RESOURCE_ALLOCATION_INFO& o) : + D3D12_RESOURCE_ALLOCATION_INFO(o) { + } + CD3DX12_RESOURCE_ALLOCATION_INFO( + UINT64 size, + UINT64 alignment) { + SizeInBytes = size; + Alignment = alignment; + } + operator const D3D12_RESOURCE_ALLOCATION_INFO&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_HEAP_PROPERTIES : public D3D12_HEAP_PROPERTIES { + CD3DX12_HEAP_PROPERTIES() { + } + explicit CD3DX12_HEAP_PROPERTIES(const D3D12_HEAP_PROPERTIES &o) : + D3D12_HEAP_PROPERTIES(o) { + } + CD3DX12_HEAP_PROPERTIES( + D3D12_CPU_PAGE_PROPERTY cpuPageProperty, + D3D12_MEMORY_POOL memoryPoolPreference, + UINT creationNodeMask = 1, + UINT nodeMask = 1) { + Type = D3D12_HEAP_TYPE_CUSTOM; + CPUPageProperty = cpuPageProperty; + MemoryPoolPreference = memoryPoolPreference; + CreationNodeMask = creationNodeMask; + VisibleNodeMask = nodeMask; + } + explicit CD3DX12_HEAP_PROPERTIES( + D3D12_HEAP_TYPE type, + UINT creationNodeMask = 1, + UINT nodeMask = 1) { + Type = type; + CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN; + MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN; + CreationNodeMask = creationNodeMask; + VisibleNodeMask = nodeMask; + } + operator const D3D12_HEAP_PROPERTIES&() const { return *this; } + bool IsCPUAccessible() const { + return Type == D3D12_HEAP_TYPE_UPLOAD || Type == D3D12_HEAP_TYPE_READBACK || (Type == D3D12_HEAP_TYPE_CUSTOM && + (CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE || CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_BACK)); + } +}; +inline bool operator==(const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r) { + return l.Type == r.Type && l.CPUPageProperty == r.CPUPageProperty && + l.MemoryPoolPreference == r.MemoryPoolPreference && + l.CreationNodeMask == r.CreationNodeMask && + l.VisibleNodeMask == r.VisibleNodeMask; +} +inline bool operator!=(const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r) { + return !(l == r); +} + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_HEAP_DESC : public D3D12_HEAP_DESC { + CD3DX12_HEAP_DESC() { + } + explicit CD3DX12_HEAP_DESC(const D3D12_HEAP_DESC &o) : + D3D12_HEAP_DESC(o) { + } + CD3DX12_HEAP_DESC( + UINT64 size, + D3D12_HEAP_PROPERTIES properties, + UINT64 alignment = 0, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) { + SizeInBytes = size; + Properties = properties; + Alignment = alignment; + Flags = flags; + } + CD3DX12_HEAP_DESC( + UINT64 size, + D3D12_HEAP_TYPE type, + UINT64 alignment = 0, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) { + SizeInBytes = size; + Properties = CD3DX12_HEAP_PROPERTIES(type); + Alignment = alignment; + Flags = flags; + } + CD3DX12_HEAP_DESC( + UINT64 size, + D3D12_CPU_PAGE_PROPERTY cpuPageProperty, + D3D12_MEMORY_POOL memoryPoolPreference, + UINT64 alignment = 0, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) { + SizeInBytes = size; + Properties = CD3DX12_HEAP_PROPERTIES(cpuPageProperty, memoryPoolPreference); + Alignment = alignment; + Flags = flags; + } + CD3DX12_HEAP_DESC( + const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, + D3D12_HEAP_PROPERTIES properties, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) { + SizeInBytes = resAllocInfo.SizeInBytes; + Properties = properties; + Alignment = resAllocInfo.Alignment; + Flags = flags; + } + CD3DX12_HEAP_DESC( + const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, + D3D12_HEAP_TYPE type, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) { + SizeInBytes = resAllocInfo.SizeInBytes; + Properties = CD3DX12_HEAP_PROPERTIES(type); + Alignment = resAllocInfo.Alignment; + Flags = flags; + } + CD3DX12_HEAP_DESC( + const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, + D3D12_CPU_PAGE_PROPERTY cpuPageProperty, + D3D12_MEMORY_POOL memoryPoolPreference, + D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) { + SizeInBytes = resAllocInfo.SizeInBytes; + Properties = CD3DX12_HEAP_PROPERTIES(cpuPageProperty, memoryPoolPreference); + Alignment = resAllocInfo.Alignment; + Flags = flags; + } + operator const D3D12_HEAP_DESC&() const { return *this; } + bool IsCPUAccessible() const { + return static_cast< const CD3DX12_HEAP_PROPERTIES* >(&Properties)->IsCPUAccessible(); + } +}; +inline bool operator==(const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r) { + return l.SizeInBytes == r.SizeInBytes && + l.Properties == r.Properties && + l.Alignment == r.Alignment && + l.Flags == r.Flags; +} +inline bool operator!=(const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r) { + return !(l == r); +} + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_CLEAR_VALUE : public D3D12_CLEAR_VALUE { + CD3DX12_CLEAR_VALUE() { + } + explicit CD3DX12_CLEAR_VALUE(const D3D12_CLEAR_VALUE &o) : + D3D12_CLEAR_VALUE(o) { + } + CD3DX12_CLEAR_VALUE( + DXGI_FORMAT format, + const FLOAT color[4]) { + Format = format; + memcpy(Color, color, sizeof(Color)); + } + CD3DX12_CLEAR_VALUE( + DXGI_FORMAT format, + FLOAT depth, + UINT8 stencil) { + Format = format; + /* Use memcpy to preserve NAN values */ + memcpy(&DepthStencil.Depth, &depth, sizeof(depth)); + DepthStencil.Stencil = stencil; + } + operator const D3D12_CLEAR_VALUE&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_RANGE : public D3D12_RANGE { + CD3DX12_RANGE() { + } + explicit CD3DX12_RANGE(const D3D12_RANGE &o) : + D3D12_RANGE(o) { + } + CD3DX12_RANGE( + SIZE_T begin, + SIZE_T end) { + Begin = begin; + End = end; + } + operator const D3D12_RANGE&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_SHADER_BYTECODE : public D3D12_SHADER_BYTECODE { + CD3DX12_SHADER_BYTECODE() { + } + explicit CD3DX12_SHADER_BYTECODE(const D3D12_SHADER_BYTECODE &o) : + D3D12_SHADER_BYTECODE(o) { + } + CD3DX12_SHADER_BYTECODE( + ID3DBlob* pShaderBlob) { + pShaderBytecode = pShaderBlob->GetBufferPointer(); + BytecodeLength = pShaderBlob->GetBufferSize(); + } + CD3DX12_SHADER_BYTECODE( + void* _pShaderBytecode, + SIZE_T bytecodeLength) { + pShaderBytecode = _pShaderBytecode; + BytecodeLength = bytecodeLength; + } + operator const D3D12_SHADER_BYTECODE&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_TILED_RESOURCE_COORDINATE : public D3D12_TILED_RESOURCE_COORDINATE { + CD3DX12_TILED_RESOURCE_COORDINATE() { + } + explicit CD3DX12_TILED_RESOURCE_COORDINATE(const D3D12_TILED_RESOURCE_COORDINATE &o) : + D3D12_TILED_RESOURCE_COORDINATE(o) { + } + CD3DX12_TILED_RESOURCE_COORDINATE( + UINT x, + UINT y, + UINT z, + UINT subresource) { + X = x; + Y = y; + Z = z; + Subresource = subresource; + } + operator const D3D12_TILED_RESOURCE_COORDINATE&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_TILE_REGION_SIZE : public D3D12_TILE_REGION_SIZE { + CD3DX12_TILE_REGION_SIZE() { + } + explicit CD3DX12_TILE_REGION_SIZE(const D3D12_TILE_REGION_SIZE &o) : + D3D12_TILE_REGION_SIZE(o) { + } + CD3DX12_TILE_REGION_SIZE( + UINT numTiles, + BOOL useBox, + UINT width, + UINT16 height, + UINT16 depth) { + NumTiles = numTiles; + UseBox = useBox; + Width = width; + Height = height; + Depth = depth; + } + operator const D3D12_TILE_REGION_SIZE&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_SUBRESOURCE_TILING : public D3D12_SUBRESOURCE_TILING { + CD3DX12_SUBRESOURCE_TILING() { + } + explicit CD3DX12_SUBRESOURCE_TILING(const D3D12_SUBRESOURCE_TILING &o) : + D3D12_SUBRESOURCE_TILING(o) { + } + CD3DX12_SUBRESOURCE_TILING( + UINT widthInTiles, + UINT16 heightInTiles, + UINT16 depthInTiles, + UINT startTileIndexInOverallResource) { + WidthInTiles = widthInTiles; + HeightInTiles = heightInTiles; + DepthInTiles = depthInTiles; + StartTileIndexInOverallResource = startTileIndexInOverallResource; + } + operator const D3D12_SUBRESOURCE_TILING&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_TILE_SHAPE : public D3D12_TILE_SHAPE { + CD3DX12_TILE_SHAPE() { + } + explicit CD3DX12_TILE_SHAPE(const D3D12_TILE_SHAPE &o) : + D3D12_TILE_SHAPE(o) { + } + CD3DX12_TILE_SHAPE( + UINT widthInTexels, + UINT heightInTexels, + UINT depthInTexels) { + WidthInTexels = widthInTexels; + HeightInTexels = heightInTexels; + DepthInTexels = depthInTexels; + } + operator const D3D12_TILE_SHAPE&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_RESOURCE_BARRIER : public D3D12_RESOURCE_BARRIER { + CD3DX12_RESOURCE_BARRIER() { + } + explicit CD3DX12_RESOURCE_BARRIER(const D3D12_RESOURCE_BARRIER &o) : + D3D12_RESOURCE_BARRIER(o) { + } + static inline CD3DX12_RESOURCE_BARRIER Transition( + _In_ ID3D12Resource* pResource, + D3D12_RESOURCE_STATES stateBefore, + D3D12_RESOURCE_STATES stateAfter, + UINT subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES, + D3D12_RESOURCE_BARRIER_FLAGS flags = D3D12_RESOURCE_BARRIER_FLAG_NONE) { + CD3DX12_RESOURCE_BARRIER result; + ZeroMemory(&result, sizeof(result)); + D3D12_RESOURCE_BARRIER &barrier = result; + result.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; + result.Flags = flags; + barrier.Transition.pResource = pResource; + barrier.Transition.StateBefore = stateBefore; + barrier.Transition.StateAfter = stateAfter; + barrier.Transition.Subresource = subresource; + return result; + } + static inline CD3DX12_RESOURCE_BARRIER Aliasing( + _In_ ID3D12Resource* pResourceBefore, + _In_ ID3D12Resource* pResourceAfter) { + CD3DX12_RESOURCE_BARRIER result; + ZeroMemory(&result, sizeof(result)); + D3D12_RESOURCE_BARRIER &barrier = result; + result.Type = D3D12_RESOURCE_BARRIER_TYPE_ALIASING; + barrier.Aliasing.pResourceBefore = pResourceBefore; + barrier.Aliasing.pResourceAfter = pResourceAfter; + return result; + } + static inline CD3DX12_RESOURCE_BARRIER UAV( + _In_ ID3D12Resource* pResource) { + CD3DX12_RESOURCE_BARRIER result; + ZeroMemory(&result, sizeof(result)); + D3D12_RESOURCE_BARRIER &barrier = result; + result.Type = D3D12_RESOURCE_BARRIER_TYPE_UAV; + barrier.UAV.pResource = pResource; + return result; + } + operator const D3D12_RESOURCE_BARRIER&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_PACKED_MIP_INFO : public D3D12_PACKED_MIP_INFO { + CD3DX12_PACKED_MIP_INFO() { + } + explicit CD3DX12_PACKED_MIP_INFO(const D3D12_PACKED_MIP_INFO &o) : + D3D12_PACKED_MIP_INFO(o) { + } + CD3DX12_PACKED_MIP_INFO( + UINT8 numStandardMips, + UINT8 numPackedMips, + UINT numTilesForPackedMips, + UINT startTileIndexInOverallResource) { + NumStandardMips = numStandardMips; + NumPackedMips = numPackedMips; + NumTilesForPackedMips = numTilesForPackedMips; + StartTileIndexInOverallResource = startTileIndexInOverallResource; + } + operator const D3D12_PACKED_MIP_INFO&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_SUBRESOURCE_FOOTPRINT : public D3D12_SUBRESOURCE_FOOTPRINT { + CD3DX12_SUBRESOURCE_FOOTPRINT() { + } + explicit CD3DX12_SUBRESOURCE_FOOTPRINT(const D3D12_SUBRESOURCE_FOOTPRINT &o) : + D3D12_SUBRESOURCE_FOOTPRINT(o) { + } + CD3DX12_SUBRESOURCE_FOOTPRINT( + DXGI_FORMAT format, + UINT width, + UINT height, + UINT depth, + UINT rowPitch) { + Format = format; + Width = width; + Height = height; + Depth = depth; + RowPitch = rowPitch; + } + explicit CD3DX12_SUBRESOURCE_FOOTPRINT( + const D3D12_RESOURCE_DESC& resDesc, + UINT rowPitch) { + Format = resDesc.Format; + Width = UINT(resDesc.Width); + Height = resDesc.Height; + Depth = (resDesc.Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? resDesc.DepthOrArraySize : 1); + RowPitch = rowPitch; + } + operator const D3D12_SUBRESOURCE_FOOTPRINT&() const { return *this; } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_TEXTURE_COPY_LOCATION : public D3D12_TEXTURE_COPY_LOCATION { + CD3DX12_TEXTURE_COPY_LOCATION() { + } + explicit CD3DX12_TEXTURE_COPY_LOCATION(const D3D12_TEXTURE_COPY_LOCATION &o) : + D3D12_TEXTURE_COPY_LOCATION(o) { + } + CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes) { pResource = pRes; } + CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes, D3D12_PLACED_SUBRESOURCE_FOOTPRINT const& Footprint) { + pResource = pRes; + Type = D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT; + PlacedFootprint = Footprint; + } + CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes, UINT Sub) { + pResource = pRes; + Type = D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX; + SubresourceIndex = Sub; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_DESCRIPTOR_RANGE : public D3D12_DESCRIPTOR_RANGE { + CD3DX12_DESCRIPTOR_RANGE() {} + explicit CD3DX12_DESCRIPTOR_RANGE(const D3D12_DESCRIPTOR_RANGE &o) : + D3D12_DESCRIPTOR_RANGE(o) { + } + CD3DX12_DESCRIPTOR_RANGE( + D3D12_DESCRIPTOR_RANGE_TYPE rangeType, + UINT numDescriptors, + UINT baseShaderRegister, + UINT registerSpace = 0, + UINT offsetInDescriptorsFromTableStart = + D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) { + Init(rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart); + } + + inline void Init( + D3D12_DESCRIPTOR_RANGE_TYPE rangeType, + UINT numDescriptors, + UINT baseShaderRegister, + UINT registerSpace = 0, + UINT offsetInDescriptorsFromTableStart = + D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) { + Init(*this, rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart); + } + + static inline void Init( + _Out_ D3D12_DESCRIPTOR_RANGE &range, + D3D12_DESCRIPTOR_RANGE_TYPE rangeType, + UINT numDescriptors, + UINT baseShaderRegister, + UINT registerSpace = 0, + UINT offsetInDescriptorsFromTableStart = + D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) { + range.RangeType = rangeType; + range.NumDescriptors = numDescriptors; + range.BaseShaderRegister = baseShaderRegister; + range.RegisterSpace = registerSpace; + range.OffsetInDescriptorsFromTableStart = offsetInDescriptorsFromTableStart; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_ROOT_DESCRIPTOR_TABLE : public D3D12_ROOT_DESCRIPTOR_TABLE { + CD3DX12_ROOT_DESCRIPTOR_TABLE() {} + explicit CD3DX12_ROOT_DESCRIPTOR_TABLE(const D3D12_ROOT_DESCRIPTOR_TABLE &o) : + D3D12_ROOT_DESCRIPTOR_TABLE(o) { + } + CD3DX12_ROOT_DESCRIPTOR_TABLE( + UINT numDescriptorRanges, + _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) { + Init(numDescriptorRanges, _pDescriptorRanges); + } + + inline void Init( + UINT numDescriptorRanges, + _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) { + Init(*this, numDescriptorRanges, _pDescriptorRanges); + } + + static inline void Init( + _Out_ D3D12_ROOT_DESCRIPTOR_TABLE &rootDescriptorTable, + UINT numDescriptorRanges, + _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) { + rootDescriptorTable.NumDescriptorRanges = numDescriptorRanges; + rootDescriptorTable.pDescriptorRanges = _pDescriptorRanges; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_ROOT_CONSTANTS : public D3D12_ROOT_CONSTANTS { + CD3DX12_ROOT_CONSTANTS() {} + explicit CD3DX12_ROOT_CONSTANTS(const D3D12_ROOT_CONSTANTS &o) : + D3D12_ROOT_CONSTANTS(o) { + } + CD3DX12_ROOT_CONSTANTS( + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0) { + Init(num32BitValues, shaderRegister, registerSpace); + } + + inline void Init( + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0) { + Init(*this, num32BitValues, shaderRegister, registerSpace); + } + + static inline void Init( + _Out_ D3D12_ROOT_CONSTANTS &rootConstants, + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0) { + rootConstants.Num32BitValues = num32BitValues; + rootConstants.ShaderRegister = shaderRegister; + rootConstants.RegisterSpace = registerSpace; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_ROOT_DESCRIPTOR : public D3D12_ROOT_DESCRIPTOR { + CD3DX12_ROOT_DESCRIPTOR() {} + explicit CD3DX12_ROOT_DESCRIPTOR(const D3D12_ROOT_DESCRIPTOR &o) : + D3D12_ROOT_DESCRIPTOR(o) { + } + CD3DX12_ROOT_DESCRIPTOR( + UINT shaderRegister, + UINT registerSpace = 0) { + Init(shaderRegister, registerSpace); + } + + inline void Init( + UINT shaderRegister, + UINT registerSpace = 0) { + Init(*this, shaderRegister, registerSpace); + } + + static inline void Init(_Out_ D3D12_ROOT_DESCRIPTOR &table, UINT shaderRegister, UINT registerSpace = 0) { + table.ShaderRegister = shaderRegister; + table.RegisterSpace = registerSpace; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_ROOT_PARAMETER : public D3D12_ROOT_PARAMETER { + CD3DX12_ROOT_PARAMETER() {} + explicit CD3DX12_ROOT_PARAMETER(const D3D12_ROOT_PARAMETER &o) : + D3D12_ROOT_PARAMETER(o) { + } + + static inline void InitAsDescriptorTable( + _Out_ D3D12_ROOT_PARAMETER &rootParam, + UINT numDescriptorRanges, + _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR_TABLE::Init(rootParam.DescriptorTable, numDescriptorRanges, pDescriptorRanges); + } + + static inline void InitAsConstants( + _Out_ D3D12_ROOT_PARAMETER &rootParam, + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_CONSTANTS::Init(rootParam.Constants, num32BitValues, shaderRegister, registerSpace); + } + + static inline void InitAsConstantBufferView( + _Out_ D3D12_ROOT_PARAMETER &rootParam, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_CBV; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); + } + + static inline void InitAsShaderResourceView( + _Out_ D3D12_ROOT_PARAMETER &rootParam, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_SRV; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); + } + + static inline void InitAsUnorderedAccessView( + _Out_ D3D12_ROOT_PARAMETER &rootParam, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_UAV; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); + } + + inline void InitAsDescriptorTable( + UINT numDescriptorRanges, + _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsDescriptorTable(*this, numDescriptorRanges, pDescriptorRanges, visibility); + } + + inline void InitAsConstants( + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsConstants(*this, num32BitValues, shaderRegister, registerSpace, visibility); + } + + inline void InitAsConstantBufferView( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsConstantBufferView(*this, shaderRegister, registerSpace, visibility); + } + + inline void InitAsShaderResourceView( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsShaderResourceView(*this, shaderRegister, registerSpace, visibility); + } + + inline void InitAsUnorderedAccessView( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsUnorderedAccessView(*this, shaderRegister, registerSpace, visibility); + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_STATIC_SAMPLER_DESC : public D3D12_STATIC_SAMPLER_DESC { + CD3DX12_STATIC_SAMPLER_DESC() {} + explicit CD3DX12_STATIC_SAMPLER_DESC(const D3D12_STATIC_SAMPLER_DESC &o) : + D3D12_STATIC_SAMPLER_DESC(o) { + } + CD3DX12_STATIC_SAMPLER_DESC( + UINT shaderRegister, + D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, + D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + FLOAT mipLODBias = 0, + UINT maxAnisotropy = 16, + D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, + D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, + FLOAT minLOD = 0.f, + FLOAT maxLOD = D3D12_FLOAT32_MAX, + D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, + UINT registerSpace = 0) { + Init( + shaderRegister, + filter, + addressU, + addressV, + addressW, + mipLODBias, + maxAnisotropy, + comparisonFunc, + borderColor, + minLOD, + maxLOD, + shaderVisibility, + registerSpace); + } + + static inline void Init( + _Out_ D3D12_STATIC_SAMPLER_DESC &samplerDesc, + UINT shaderRegister, + D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, + D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + FLOAT mipLODBias = 0, + UINT maxAnisotropy = 16, + D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, + D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, + FLOAT minLOD = 0.f, + FLOAT maxLOD = D3D12_FLOAT32_MAX, + D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, + UINT registerSpace = 0) { + samplerDesc.ShaderRegister = shaderRegister; + samplerDesc.Filter = filter; + samplerDesc.AddressU = addressU; + samplerDesc.AddressV = addressV; + samplerDesc.AddressW = addressW; + samplerDesc.MipLODBias = mipLODBias; + samplerDesc.MaxAnisotropy = maxAnisotropy; + samplerDesc.ComparisonFunc = comparisonFunc; + samplerDesc.BorderColor = borderColor; + samplerDesc.MinLOD = minLOD; + samplerDesc.MaxLOD = maxLOD; + samplerDesc.ShaderVisibility = shaderVisibility; + samplerDesc.RegisterSpace = registerSpace; + } + inline void Init( + UINT shaderRegister, + D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, + D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, + FLOAT mipLODBias = 0, + UINT maxAnisotropy = 16, + D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, + D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, + FLOAT minLOD = 0.f, + FLOAT maxLOD = D3D12_FLOAT32_MAX, + D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, + UINT registerSpace = 0) { + Init( + *this, + shaderRegister, + filter, + addressU, + addressV, + addressW, + mipLODBias, + maxAnisotropy, + comparisonFunc, + borderColor, + minLOD, + maxLOD, + shaderVisibility, + registerSpace); + } + +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_ROOT_SIGNATURE_DESC : public D3D12_ROOT_SIGNATURE_DESC { + CD3DX12_ROOT_SIGNATURE_DESC() {} + explicit CD3DX12_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC &o) : + D3D12_ROOT_SIGNATURE_DESC(o) { + } + CD3DX12_ROOT_SIGNATURE_DESC( + UINT numParameters, + _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, + UINT numStaticSamplers = 0, + _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + Init(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); + } + CD3DX12_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT) { + Init(0, NULL, 0, NULL, D3D12_ROOT_SIGNATURE_FLAG_NONE); + } + + inline void Init( + UINT numParameters, + _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, + UINT numStaticSamplers = 0, + _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + Init(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); + } + + static inline void Init( + _Out_ D3D12_ROOT_SIGNATURE_DESC &desc, + UINT numParameters, + _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, + UINT numStaticSamplers = 0, + _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + desc.NumParameters = numParameters; + desc.pParameters = _pParameters; + desc.NumStaticSamplers = numStaticSamplers; + desc.pStaticSamplers = _pStaticSamplers; + desc.Flags = flags; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_DESCRIPTOR_RANGE1 : public D3D12_DESCRIPTOR_RANGE1 { + CD3DX12_DESCRIPTOR_RANGE1() {} + explicit CD3DX12_DESCRIPTOR_RANGE1(const D3D12_DESCRIPTOR_RANGE1 &o) : + D3D12_DESCRIPTOR_RANGE1(o) { + } + CD3DX12_DESCRIPTOR_RANGE1( + D3D12_DESCRIPTOR_RANGE_TYPE rangeType, + UINT numDescriptors, + UINT baseShaderRegister, + UINT registerSpace = 0, + D3D12_DESCRIPTOR_RANGE_FLAGS flags = D3D12_DESCRIPTOR_RANGE_FLAG_NONE, + UINT offsetInDescriptorsFromTableStart = + D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) { + Init(rangeType, numDescriptors, baseShaderRegister, registerSpace, flags, offsetInDescriptorsFromTableStart); + } + + inline void Init( + D3D12_DESCRIPTOR_RANGE_TYPE rangeType, + UINT numDescriptors, + UINT baseShaderRegister, + UINT registerSpace = 0, + D3D12_DESCRIPTOR_RANGE_FLAGS flags = D3D12_DESCRIPTOR_RANGE_FLAG_NONE, + UINT offsetInDescriptorsFromTableStart = + D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) { + Init(*this, rangeType, numDescriptors, baseShaderRegister, registerSpace, flags, offsetInDescriptorsFromTableStart); + } + + static inline void Init( + _Out_ D3D12_DESCRIPTOR_RANGE1 &range, + D3D12_DESCRIPTOR_RANGE_TYPE rangeType, + UINT numDescriptors, + UINT baseShaderRegister, + UINT registerSpace = 0, + D3D12_DESCRIPTOR_RANGE_FLAGS flags = D3D12_DESCRIPTOR_RANGE_FLAG_NONE, + UINT offsetInDescriptorsFromTableStart = + D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) { + range.RangeType = rangeType; + range.NumDescriptors = numDescriptors; + range.BaseShaderRegister = baseShaderRegister; + range.RegisterSpace = registerSpace; + range.Flags = flags; + range.OffsetInDescriptorsFromTableStart = offsetInDescriptorsFromTableStart; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_ROOT_DESCRIPTOR_TABLE1 : public D3D12_ROOT_DESCRIPTOR_TABLE1 { + CD3DX12_ROOT_DESCRIPTOR_TABLE1() {} + explicit CD3DX12_ROOT_DESCRIPTOR_TABLE1(const D3D12_ROOT_DESCRIPTOR_TABLE1 &o) : + D3D12_ROOT_DESCRIPTOR_TABLE1(o) { + } + CD3DX12_ROOT_DESCRIPTOR_TABLE1( + UINT numDescriptorRanges, + _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1* _pDescriptorRanges) { + Init(numDescriptorRanges, _pDescriptorRanges); + } + + inline void Init( + UINT numDescriptorRanges, + _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1* _pDescriptorRanges) { + Init(*this, numDescriptorRanges, _pDescriptorRanges); + } + + static inline void Init( + _Out_ D3D12_ROOT_DESCRIPTOR_TABLE1 &rootDescriptorTable, + UINT numDescriptorRanges, + _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1* _pDescriptorRanges) { + rootDescriptorTable.NumDescriptorRanges = numDescriptorRanges; + rootDescriptorTable.pDescriptorRanges = _pDescriptorRanges; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_ROOT_DESCRIPTOR1 : public D3D12_ROOT_DESCRIPTOR1 { + CD3DX12_ROOT_DESCRIPTOR1() {} + explicit CD3DX12_ROOT_DESCRIPTOR1(const D3D12_ROOT_DESCRIPTOR1 &o) : + D3D12_ROOT_DESCRIPTOR1(o) { + } + CD3DX12_ROOT_DESCRIPTOR1( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE) { + Init(shaderRegister, registerSpace, flags); + } + + inline void Init( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE) { + Init(*this, shaderRegister, registerSpace, flags); + } + + static inline void Init( + _Out_ D3D12_ROOT_DESCRIPTOR1 &table, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE) { + table.ShaderRegister = shaderRegister; + table.RegisterSpace = registerSpace; + table.Flags = flags; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_ROOT_PARAMETER1 : public D3D12_ROOT_PARAMETER1 { + CD3DX12_ROOT_PARAMETER1() {} + explicit CD3DX12_ROOT_PARAMETER1(const D3D12_ROOT_PARAMETER1 &o) : + D3D12_ROOT_PARAMETER1(o) { + } + + static inline void InitAsDescriptorTable( + _Out_ D3D12_ROOT_PARAMETER1 &rootParam, + UINT numDescriptorRanges, + _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1* pDescriptorRanges, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR_TABLE1::Init(rootParam.DescriptorTable, numDescriptorRanges, pDescriptorRanges); + } + + static inline void InitAsConstants( + _Out_ D3D12_ROOT_PARAMETER1 &rootParam, + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_CONSTANTS::Init(rootParam.Constants, num32BitValues, shaderRegister, registerSpace); + } + + static inline void InitAsConstantBufferView( + _Out_ D3D12_ROOT_PARAMETER1 &rootParam, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_CBV; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR1::Init(rootParam.Descriptor, shaderRegister, registerSpace, flags); + } + + static inline void InitAsShaderResourceView( + _Out_ D3D12_ROOT_PARAMETER1 &rootParam, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_SRV; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR1::Init(rootParam.Descriptor, shaderRegister, registerSpace, flags); + } + + static inline void InitAsUnorderedAccessView( + _Out_ D3D12_ROOT_PARAMETER1 &rootParam, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_UAV; + rootParam.ShaderVisibility = visibility; + CD3DX12_ROOT_DESCRIPTOR1::Init(rootParam.Descriptor, shaderRegister, registerSpace, flags); + } + + inline void InitAsDescriptorTable( + UINT numDescriptorRanges, + _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1* pDescriptorRanges, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsDescriptorTable(*this, numDescriptorRanges, pDescriptorRanges, visibility); + } + + inline void InitAsConstants( + UINT num32BitValues, + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsConstants(*this, num32BitValues, shaderRegister, registerSpace, visibility); + } + + inline void InitAsConstantBufferView( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsConstantBufferView(*this, shaderRegister, registerSpace, flags, visibility); + } + + inline void InitAsShaderResourceView( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsShaderResourceView(*this, shaderRegister, registerSpace, flags, visibility); + } + + inline void InitAsUnorderedAccessView( + UINT shaderRegister, + UINT registerSpace = 0, + D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, + D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) { + InitAsUnorderedAccessView(*this, shaderRegister, registerSpace, flags, visibility); + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC : public D3D12_VERSIONED_ROOT_SIGNATURE_DESC { + CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC() {} + explicit CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC &o) : + D3D12_VERSIONED_ROOT_SIGNATURE_DESC(o) { + } + explicit CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC &o) { + Version = D3D_ROOT_SIGNATURE_VERSION_1_0; + Desc_1_0 = o; + } + explicit CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC1 &o) { + Version = D3D_ROOT_SIGNATURE_VERSION_1_1; + Desc_1_1 = o; + } + CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC( + UINT numParameters, + _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, + UINT numStaticSamplers = 0, + _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + Init_1_0(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); + } + CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC( + UINT numParameters, + _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER1* _pParameters, + UINT numStaticSamplers = 0, + _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + Init_1_1(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); + } + CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT) { + Init_1_1(0, NULL, 0, NULL, D3D12_ROOT_SIGNATURE_FLAG_NONE); + } + + inline void Init_1_0( + UINT numParameters, + _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, + UINT numStaticSamplers = 0, + _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + Init_1_0(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); + } + + static inline void Init_1_0( + _Out_ D3D12_VERSIONED_ROOT_SIGNATURE_DESC &desc, + UINT numParameters, + _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, + UINT numStaticSamplers = 0, + _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + desc.Version = D3D_ROOT_SIGNATURE_VERSION_1_0; + desc.Desc_1_0.NumParameters = numParameters; + desc.Desc_1_0.pParameters = _pParameters; + desc.Desc_1_0.NumStaticSamplers = numStaticSamplers; + desc.Desc_1_0.pStaticSamplers = _pStaticSamplers; + desc.Desc_1_0.Flags = flags; + } + + inline void Init_1_1( + UINT numParameters, + _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER1* _pParameters, + UINT numStaticSamplers = 0, + _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + Init_1_1(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); + } + + static inline void Init_1_1( + _Out_ D3D12_VERSIONED_ROOT_SIGNATURE_DESC &desc, + UINT numParameters, + _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER1* _pParameters, + UINT numStaticSamplers = 0, + _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, + D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) { + desc.Version = D3D_ROOT_SIGNATURE_VERSION_1_1; + desc.Desc_1_1.NumParameters = numParameters; + desc.Desc_1_1.pParameters = _pParameters; + desc.Desc_1_1.NumStaticSamplers = numStaticSamplers; + desc.Desc_1_1.pStaticSamplers = _pStaticSamplers; + desc.Desc_1_1.Flags = flags; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_CPU_DESCRIPTOR_HANDLE : public D3D12_CPU_DESCRIPTOR_HANDLE { + CD3DX12_CPU_DESCRIPTOR_HANDLE() {} + explicit CD3DX12_CPU_DESCRIPTOR_HANDLE(const D3D12_CPU_DESCRIPTOR_HANDLE &o) : + D3D12_CPU_DESCRIPTOR_HANDLE(o) { + } + CD3DX12_CPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) { ptr = 0; } + CD3DX12_CPU_DESCRIPTOR_HANDLE(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize) { + InitOffsetted(other, offsetScaledByIncrementSize); + } + CD3DX12_CPU_DESCRIPTOR_HANDLE(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize) { + InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize); + } + CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize) { + ptr += offsetInDescriptors * descriptorIncrementSize; + return *this; + } + CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize) { + ptr += offsetScaledByIncrementSize; + return *this; + } + bool operator==(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE& other) const { + return (ptr == other.ptr); + } + bool operator!=(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE& other) const { + return (ptr != other.ptr); + } + CD3DX12_CPU_DESCRIPTOR_HANDLE &operator=(const D3D12_CPU_DESCRIPTOR_HANDLE &other) { + ptr = other.ptr; + return *this; + } + + inline void InitOffsetted(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) { + InitOffsetted(*this, base, offsetScaledByIncrementSize); + } + + inline void InitOffsetted(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) { + InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize); + } + + static inline void InitOffsetted(_Out_ D3D12_CPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) { + handle.ptr = base.ptr + offsetScaledByIncrementSize; + } + + static inline void InitOffsetted(_Out_ D3D12_CPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) { + handle.ptr = base.ptr + offsetInDescriptors * descriptorIncrementSize; + } +}; + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_GPU_DESCRIPTOR_HANDLE : public D3D12_GPU_DESCRIPTOR_HANDLE { + CD3DX12_GPU_DESCRIPTOR_HANDLE() {} + explicit CD3DX12_GPU_DESCRIPTOR_HANDLE(const D3D12_GPU_DESCRIPTOR_HANDLE &o) : + D3D12_GPU_DESCRIPTOR_HANDLE(o) { + } + CD3DX12_GPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) { ptr = 0; } + CD3DX12_GPU_DESCRIPTOR_HANDLE(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize) { + InitOffsetted(other, offsetScaledByIncrementSize); + } + CD3DX12_GPU_DESCRIPTOR_HANDLE(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize) { + InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize); + } + CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize) { + ptr += offsetInDescriptors * descriptorIncrementSize; + return *this; + } + CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize) { + ptr += offsetScaledByIncrementSize; + return *this; + } + inline bool operator==(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE& other) const { + return (ptr == other.ptr); + } + inline bool operator!=(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE& other) const { + return (ptr != other.ptr); + } + CD3DX12_GPU_DESCRIPTOR_HANDLE &operator=(const D3D12_GPU_DESCRIPTOR_HANDLE &other) { + ptr = other.ptr; + return *this; + } + + inline void InitOffsetted(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) { + InitOffsetted(*this, base, offsetScaledByIncrementSize); + } + + inline void InitOffsetted(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) { + InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize); + } + + static inline void InitOffsetted(_Out_ D3D12_GPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) { + handle.ptr = base.ptr + offsetScaledByIncrementSize; + } + + static inline void InitOffsetted(_Out_ D3D12_GPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) { + handle.ptr = base.ptr + offsetInDescriptors * descriptorIncrementSize; + } +}; + +//------------------------------------------------------------------------------------------------ +inline UINT D3D12CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT PlaneSlice, UINT MipLevels, UINT ArraySize) { + return MipSlice + ArraySlice * MipLevels + PlaneSlice * MipLevels * ArraySize; +} + +//------------------------------------------------------------------------------------------------ +template +inline void D3D12DecomposeSubresource(UINT Subresource, UINT MipLevels, UINT ArraySize, _Out_ T& MipSlice, _Out_ U& ArraySlice, _Out_ V& PlaneSlice) { + MipSlice = static_cast(Subresource % MipLevels); + ArraySlice = static_cast((Subresource / MipLevels) % ArraySize); + PlaneSlice = static_cast(Subresource / (MipLevels * ArraySize)); +} + +//------------------------------------------------------------------------------------------------ +inline UINT8 D3D12GetFormatPlaneCount( + _In_ ID3D12Device* pDevice, + DXGI_FORMAT Format +) { + D3D12_FEATURE_DATA_FORMAT_INFO formatInfo = { Format }; + if (FAILED(pDevice->CheckFeatureSupport(D3D12_FEATURE_FORMAT_INFO, &formatInfo, sizeof(formatInfo)))) { + return 0; + } + return formatInfo.PlaneCount; +} + +//------------------------------------------------------------------------------------------------ +struct CD3DX12_RESOURCE_DESC : public D3D12_RESOURCE_DESC { + CD3DX12_RESOURCE_DESC() { + } + explicit CD3DX12_RESOURCE_DESC(const D3D12_RESOURCE_DESC& o) : + D3D12_RESOURCE_DESC(o) { + } + CD3DX12_RESOURCE_DESC( + D3D12_RESOURCE_DIMENSION dimension, + UINT64 alignment, + UINT64 width, + UINT height, + UINT16 depthOrArraySize, + UINT16 mipLevels, + DXGI_FORMAT format, + UINT sampleCount, + UINT sampleQuality, + D3D12_TEXTURE_LAYOUT layout, + D3D12_RESOURCE_FLAGS flags) { + Dimension = dimension; + Alignment = alignment; + Width = width; + Height = height; + DepthOrArraySize = depthOrArraySize; + MipLevels = mipLevels; + Format = format; + SampleDesc.Count = sampleCount; + SampleDesc.Quality = sampleQuality; + Layout = layout; + Flags = flags; + } + static inline CD3DX12_RESOURCE_DESC Buffer( + const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, + D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE) { + return CD3DX12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION_BUFFER, resAllocInfo.Alignment, resAllocInfo.SizeInBytes, + 1, 1, 1, DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags); + } + static inline CD3DX12_RESOURCE_DESC Buffer( + UINT64 width, + D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, + UINT64 alignment = 0) { + return CD3DX12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION_BUFFER, alignment, width, 1, 1, 1, + DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags); + } + static inline CD3DX12_RESOURCE_DESC Tex1D( + DXGI_FORMAT format, + UINT64 width, + UINT16 arraySize = 1, + UINT16 mipLevels = 0, + D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, + D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, + UINT64 alignment = 0) { + return CD3DX12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION_TEXTURE1D, alignment, width, 1, arraySize, + mipLevels, format, 1, 0, layout, flags); + } + static inline CD3DX12_RESOURCE_DESC Tex2D( + DXGI_FORMAT format, + UINT64 width, + UINT height, + UINT16 arraySize = 1, + UINT16 mipLevels = 0, + UINT sampleCount = 1, + UINT sampleQuality = 0, + D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, + D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, + UINT64 alignment = 0) { + return CD3DX12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION_TEXTURE2D, alignment, width, height, arraySize, + mipLevels, format, sampleCount, sampleQuality, layout, flags); + } + static inline CD3DX12_RESOURCE_DESC Tex3D( + DXGI_FORMAT format, + UINT64 width, + UINT height, + UINT16 depth, + UINT16 mipLevels = 0, + D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, + D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, + UINT64 alignment = 0) { + return CD3DX12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION_TEXTURE3D, alignment, width, height, depth, + mipLevels, format, 1, 0, layout, flags); + } + inline UINT16 Depth() const { + return (Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1); + } + inline UINT16 ArraySize() const { + return (Dimension != D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1); + } + inline UINT8 PlaneCount(_In_ ID3D12Device* pDevice) const { + return D3D12GetFormatPlaneCount(pDevice, Format); + } + inline UINT Subresources(_In_ ID3D12Device* pDevice) const { + return MipLevels * ArraySize() * PlaneCount(pDevice); + } + inline UINT CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT PlaneSlice) { + return D3D12CalcSubresource(MipSlice, ArraySlice, PlaneSlice, MipLevels, ArraySize()); + } + operator const D3D12_RESOURCE_DESC&() const { return *this; } +}; +inline bool operator==(const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r) { + return l.Dimension == r.Dimension && + l.Alignment == r.Alignment && + l.Width == r.Width && + l.Height == r.Height && + l.DepthOrArraySize == r.DepthOrArraySize && + l.MipLevels == r.MipLevels && + l.Format == r.Format && + l.SampleDesc.Count == r.SampleDesc.Count && + l.SampleDesc.Quality == r.SampleDesc.Quality && + l.Layout == r.Layout && + l.Flags == r.Flags; +} +inline bool operator!=(const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r) { + return !(l == r); +} + +//------------------------------------------------------------------------------------------------ +// Row-by-row memcpy +inline void MemcpySubresource( + _In_ const D3D12_MEMCPY_DEST* pDest, + _In_ const D3D12_SUBRESOURCE_DATA* pSrc, + SIZE_T RowSizeInBytes, + UINT NumRows, + UINT NumSlices) { + for (UINT z = 0; z < NumSlices; ++z) { + BYTE* pDestSlice = reinterpret_cast(pDest->pData) + pDest->SlicePitch * z; + const BYTE* pSrcSlice = reinterpret_cast(pSrc->pData) + pSrc->SlicePitch * z; + for (UINT y = 0; y < NumRows; ++y) { + memcpy(pDestSlice + pDest->RowPitch * y, + pSrcSlice + pSrc->RowPitch * y, + RowSizeInBytes); + } + } +} + +//------------------------------------------------------------------------------------------------ +// Returns required size of a buffer to be used for data upload +inline UINT64 GetRequiredIntermediateSize( + _In_ ID3D12Resource* pDestinationResource, + _In_range_(0, D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, + _In_range_(0, D3D12_REQ_SUBRESOURCES - FirstSubresource) UINT NumSubresources) { + D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); + UINT64 RequiredSize = 0; + + ID3D12Device* pDevice; + pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); + pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, 0, nullptr, nullptr, nullptr, &RequiredSize); + pDevice->Release(); + + return RequiredSize; +} + +//------------------------------------------------------------------------------------------------ +// All arrays must be populated (e.g. by calling GetCopyableFootprints) +inline UINT64 UpdateSubresources( + _In_ ID3D12GraphicsCommandList* pCmdList, + _In_ ID3D12Resource* pDestinationResource, + _In_ ID3D12Resource* pIntermediate, + _In_range_(0, D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, + _In_range_(0, D3D12_REQ_SUBRESOURCES - FirstSubresource) UINT NumSubresources, + UINT64 RequiredSize, + _In_reads_(NumSubresources) const D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, + _In_reads_(NumSubresources) const UINT* pNumRows, + _In_reads_(NumSubresources) const UINT64* pRowSizesInBytes, + _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_DATA* pSrcData) { + // Minor validation + D3D12_RESOURCE_DESC IntermediateDesc = pIntermediate->GetDesc(); + D3D12_RESOURCE_DESC DestinationDesc = pDestinationResource->GetDesc(); + if (IntermediateDesc.Dimension != D3D12_RESOURCE_DIMENSION_BUFFER || + IntermediateDesc.Width < RequiredSize + pLayouts[0].Offset || + RequiredSize >(SIZE_T) - 1 || + (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER && + (FirstSubresource != 0 || NumSubresources != 1))) { + return 0; + } + + BYTE* pData; + HRESULT hr = pIntermediate->Map(0, NULL, reinterpret_cast(&pData)); + if (FAILED(hr)) { + return 0; + } + + for (UINT i = 0; i < NumSubresources; ++i) { + if (pRowSizesInBytes[i] >(SIZE_T)-1) return 0; + D3D12_MEMCPY_DEST DestData = { pData + pLayouts[i].Offset, pLayouts[i].Footprint.RowPitch, pLayouts[i].Footprint.RowPitch * pNumRows[i] }; + MemcpySubresource(&DestData, &pSrcData[i], (SIZE_T)pRowSizesInBytes[i], pNumRows[i], pLayouts[i].Footprint.Depth); + } + pIntermediate->Unmap(0, NULL); + + if (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER) { + CD3DX12_BOX SrcBox(UINT(pLayouts[0].Offset), UINT(pLayouts[0].Offset + pLayouts[0].Footprint.Width)); + pCmdList->CopyBufferRegion( + pDestinationResource, 0, pIntermediate, pLayouts[0].Offset, pLayouts[0].Footprint.Width); + } else { + for (UINT i = 0; i < NumSubresources; ++i) { + CD3DX12_TEXTURE_COPY_LOCATION Dst(pDestinationResource, i + FirstSubresource); + CD3DX12_TEXTURE_COPY_LOCATION Src(pIntermediate, pLayouts[i]); + pCmdList->CopyTextureRegion(&Dst, 0, 0, 0, &Src, nullptr); + } + } + return RequiredSize; +} + +//------------------------------------------------------------------------------------------------ +// Heap-allocating UpdateSubresources implementation +inline UINT64 UpdateSubresources( + _In_ ID3D12GraphicsCommandList* pCmdList, + _In_ ID3D12Resource* pDestinationResource, + _In_ ID3D12Resource* pIntermediate, + UINT64 IntermediateOffset, + _In_range_(0, D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, + _In_range_(0, D3D12_REQ_SUBRESOURCES - FirstSubresource) UINT NumSubresources, + _In_reads_(NumSubresources) D3D12_SUBRESOURCE_DATA* pSrcData) { + UINT64 RequiredSize = 0; + UINT64 MemToAlloc = static_cast(sizeof(D3D12_PLACED_SUBRESOURCE_FOOTPRINT) + sizeof(UINT) + sizeof(UINT64)) * NumSubresources; + if (MemToAlloc > SIZE_MAX) { + return 0; + } + void* pMem = HeapAlloc(GetProcessHeap(), 0, static_cast(MemToAlloc)); + if (pMem == NULL) { + return 0; + } + D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts = reinterpret_cast(pMem); + UINT64* pRowSizesInBytes = reinterpret_cast(pLayouts + NumSubresources); + UINT* pNumRows = reinterpret_cast(pRowSizesInBytes + NumSubresources); + + D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); + ID3D12Device* pDevice; + pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); + pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, pLayouts, pNumRows, pRowSizesInBytes, &RequiredSize); + pDevice->Release(); + + UINT64 Result = UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, pLayouts, pNumRows, pRowSizesInBytes, pSrcData); + HeapFree(GetProcessHeap(), 0, pMem); + return Result; +} + +//------------------------------------------------------------------------------------------------ +// Stack-allocating UpdateSubresources implementation +template +inline UINT64 UpdateSubresources( + _In_ ID3D12GraphicsCommandList* pCmdList, + _In_ ID3D12Resource* pDestinationResource, + _In_ ID3D12Resource* pIntermediate, + UINT64 IntermediateOffset, + _In_range_(0, MaxSubresources) UINT FirstSubresource, + _In_range_(1, MaxSubresources - FirstSubresource) UINT NumSubresources, + _In_reads_(NumSubresources) D3D12_SUBRESOURCE_DATA* pSrcData) { + UINT64 RequiredSize = 0; + D3D12_PLACED_SUBRESOURCE_FOOTPRINT Layouts[MaxSubresources]; + UINT NumRows[MaxSubresources]; + UINT64 RowSizesInBytes[MaxSubresources]; + + D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); + ID3D12Device* pDevice; + pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); + pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, Layouts, NumRows, RowSizesInBytes, &RequiredSize); + pDevice->Release(); + + return UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, Layouts, NumRows, RowSizesInBytes, pSrcData); +} + +//------------------------------------------------------------------------------------------------ +inline bool D3D12IsLayoutOpaque(D3D12_TEXTURE_LAYOUT Layout) { + return Layout == D3D12_TEXTURE_LAYOUT_UNKNOWN || Layout == D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE; +} + +//------------------------------------------------------------------------------------------------ +inline ID3D12CommandList * const * CommandListCast(ID3D12GraphicsCommandList * const * pp) { + // This cast is useful for passing strongly typed command list pointers into + // ExecuteCommandLists. + // This cast is valid as long as the const-ness is respected. D3D12 APIs do + // respect the const-ness of their arguments. + return reinterpret_cast(pp); +} + +//------------------------------------------------------------------------------------------------ +// D3D12 exports a new method for serializing root signatures in the Windows 10 Anniversary Update. +// To help enable root signature 1.1 features when they are available and not require maintaining +// two code paths for building root signatures, this helper method reconstructs a 1.0 signature when +// 1.1 is not supported. +inline HRESULT D3DX12SerializeVersionedRootSignature( + _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignatureDesc, + D3D_ROOT_SIGNATURE_VERSION MaxVersion, + _Outptr_ ID3DBlob** ppBlob, + _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob) { + switch (MaxVersion) { + case D3D_ROOT_SIGNATURE_VERSION_1_0: + switch (pRootSignatureDesc->Version) { + case D3D_ROOT_SIGNATURE_VERSION_1_0: + return D3D12SerializeRootSignature(&pRootSignatureDesc->Desc_1_0, D3D_ROOT_SIGNATURE_VERSION_1, ppBlob, ppErrorBlob); + + case D3D_ROOT_SIGNATURE_VERSION_1_1: + { + const D3D12_ROOT_SIGNATURE_DESC1& desc_1_1 = pRootSignatureDesc->Desc_1_1; + + SIZE_T ParametersSize = sizeof(D3D12_ROOT_PARAMETER) * desc_1_1.NumParameters; + void* pParameters = (ParametersSize > 0) ? HeapAlloc(GetProcessHeap(), 0, ParametersSize) : NULL; + D3D12_ROOT_PARAMETER* pParameters_1_0 = reinterpret_cast(pParameters); + + for (UINT n = 0; n < desc_1_1.NumParameters; n++) { + pParameters_1_0[n].ParameterType = desc_1_1.pParameters[n].ParameterType; + pParameters_1_0[n].ShaderVisibility = desc_1_1.pParameters[n].ShaderVisibility; + + switch (desc_1_1.pParameters[n].ParameterType) { + case D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS: + pParameters_1_0[n].Constants.Num32BitValues = desc_1_1.pParameters[n].Constants.Num32BitValues; + pParameters_1_0[n].Constants.RegisterSpace = desc_1_1.pParameters[n].Constants.RegisterSpace; + pParameters_1_0[n].Constants.ShaderRegister = desc_1_1.pParameters[n].Constants.ShaderRegister; + break; + + case D3D12_ROOT_PARAMETER_TYPE_CBV: + case D3D12_ROOT_PARAMETER_TYPE_SRV: + case D3D12_ROOT_PARAMETER_TYPE_UAV: + pParameters_1_0[n].Descriptor.RegisterSpace = desc_1_1.pParameters[n].Descriptor.RegisterSpace; + pParameters_1_0[n].Descriptor.ShaderRegister = desc_1_1.pParameters[n].Descriptor.ShaderRegister; + break; + + case D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE: + const D3D12_ROOT_DESCRIPTOR_TABLE1& table_1_1 = desc_1_1.pParameters[n].DescriptorTable; + + SIZE_T DescriptorRangesSize = sizeof(D3D12_DESCRIPTOR_RANGE) * table_1_1.NumDescriptorRanges; + void* pDescriptorRanges = (DescriptorRangesSize > 0) ? HeapAlloc(GetProcessHeap(), 0, DescriptorRangesSize) : NULL; + D3D12_DESCRIPTOR_RANGE* pDescriptorRanges_1_0 = reinterpret_cast(pDescriptorRanges); + + for (UINT x = 0; x < table_1_1.NumDescriptorRanges; x++) { + pDescriptorRanges_1_0[x].BaseShaderRegister = table_1_1.pDescriptorRanges[x].BaseShaderRegister; + pDescriptorRanges_1_0[x].NumDescriptors = table_1_1.pDescriptorRanges[x].NumDescriptors; + pDescriptorRanges_1_0[x].OffsetInDescriptorsFromTableStart = table_1_1.pDescriptorRanges[x].OffsetInDescriptorsFromTableStart; + pDescriptorRanges_1_0[x].RangeType = table_1_1.pDescriptorRanges[x].RangeType; + pDescriptorRanges_1_0[x].RegisterSpace = table_1_1.pDescriptorRanges[x].RegisterSpace; + } + + D3D12_ROOT_DESCRIPTOR_TABLE& table_1_0 = pParameters_1_0[n].DescriptorTable; + table_1_0.NumDescriptorRanges = table_1_1.NumDescriptorRanges; + table_1_0.pDescriptorRanges = pDescriptorRanges_1_0; + } + } + + CD3DX12_ROOT_SIGNATURE_DESC desc_1_0(desc_1_1.NumParameters, pParameters_1_0, desc_1_1.NumStaticSamplers, desc_1_1.pStaticSamplers, desc_1_1.Flags); + HRESULT hr = D3D12SerializeRootSignature(&desc_1_0, D3D_ROOT_SIGNATURE_VERSION_1, ppBlob, ppErrorBlob); + + for (UINT n = 0; n < desc_1_0.NumParameters; n++) { + if (desc_1_0.pParameters[n].ParameterType == D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE) { + HeapFree(GetProcessHeap(), 0, reinterpret_cast(const_cast(pParameters_1_0[n].DescriptorTable.pDescriptorRanges))); + } + } + HeapFree(GetProcessHeap(), 0, pParameters); + return hr; + } + } + break; + + case D3D_ROOT_SIGNATURE_VERSION_1_1: + return D3D12SerializeVersionedRootSignature(pRootSignatureDesc, ppBlob, ppErrorBlob); + } + + return E_INVALIDARG; +} + +#endif // defined( __cplusplus ) + +#endif //__D3DX12_H__ diff --git a/LEngine/shaders/car_shader.fx b/LEngine/shaders/car_shader.fx new file mode 100644 index 0000000..98b6aa5 --- /dev/null +++ b/LEngine/shaders/car_shader.fx @@ -0,0 +1,57 @@ +struct VS_INPUT { + float4 vPosition : POSITION; + float3 normal : NORMAL; + float2 uv0 : UV0; + float2 uv1 : UV1; +}; + +struct VS_OUTPUT { + float4 vPosition : SV_POSITION; + float3 normal : TEXCOORD0; + float2 uv0 : TEXCOORD1; + float2 uv1 : TEXCOORD2; + float3 worldPos : TEXCOORD3; +}; + +cbuffer TestBuffer : register(b3) { + float4x4 mWorld; + float4x4 mView; + float4x4 mProjection; + float4 cameraWorldPos; +} + +Texture2D diffuse : register(t0); +Texture2D tex2 : register(t1); +SamplerState MeshTextureSampler; + + + +VS_OUTPUT main_vs(VS_INPUT v) { + VS_OUTPUT o; + + float4x4 wvp = mul(mul(mProjection, mView), mWorld); + + o.vPosition = mul(wvp, float4(v.vPosition.xyz, 1)); + + o.normal = mul((float3x3)mWorld, v.normal); + o.uv0 = v.uv0; + o.uv1 = v.uv1; + o.worldPos = mul((float3x3)mWorld, v.vPosition.xyz); + return o; +} + +#include "lighting/cook_torrance_term.inc" + +float4 main_ps(VS_OUTPUT input) : SV_Target +{ + float3 ambient = float3(0.3f, 0.3f, 0.4f); + + float4 diffuseColor = 1.0f;// diffuse.Sample(MeshTextureSampler, input.uv0); + float3 worldPos = input.worldPos; + float3 camPos = cameraWorldPos.xyz; + float3 viewDir = normalize(camPos - worldPos); + float3 sun = normalize(float3(-1, 1, -1)); + + float3 surfaceColor = cook_torrance(normalize(input.normal), viewDir, sun, 0.1f, 1.0f, float3(1,1,1), diffuseColor.rgb); + return float4(surfaceColor + ambient * diffuseColor, 1); +} \ No newline at end of file diff --git a/LEngine/shaders/default.fx b/LEngine/shaders/default.fx new file mode 100644 index 0000000..d9007ad --- /dev/null +++ b/LEngine/shaders/default.fx @@ -0,0 +1,64 @@ +struct VS_INPUT +{ + float4 vPosition : POSITION; + float3 normal : NORMAL; + float2 uv0 : UV0; + float2 uv1 : UV1; +}; + +struct VS_OUTPUT { + float4 vPosition : SV_POSITION; + float3 normal : TEXCOORD0; + float2 uv0 : TEXCOORD1; + float2 uv1 : TEXCOORD2; + float3 worldPos : TEXCOORD3; + float3 viewPos : TEXCOORD4; +}; + +cbuffer TestBuffer : register(b3) { + float4x4 mWorld; + float4x4 mView; + float4x4 mProjection; + float4 cameraWorldPos; + float4 _DiffuseColor; +} + +Texture2D diffuse : register(t0); +Texture2D tex2 : register(t1); +SamplerState MeshTextureSampler; + + + +VS_OUTPUT main_vs(VS_INPUT v){ + VS_OUTPUT o; + + + float4x4 wv = mul(mView, mWorld); + float4x4 wvp = mul(mul(mProjection, mView), mWorld); + + o.vPosition = mul(wvp, float4(v.vPosition.xyz,1)); + + o.normal = mul((float3x3)mWorld, v.normal); + o.uv0 = v.uv0; + o.uv1 = v.uv1; + o.worldPos = mul((float3x3)mWorld, v.vPosition.xyz); + o.viewPos = mul(wv, float4(v.vPosition.xyz, 1)); + return o; +} + +#include "lighting/cook_torrance_term.inc" + +float4 main_ps(VS_OUTPUT input) : SV_Target +{ + float3 ambient = float3(0.3f, 0.3f, 0.4f); + + float4 diffuseColor = _DiffuseColor * diffuse.Sample(MeshTextureSampler, input.uv0); + float3 worldPos = input.worldPos; + float3 camPos = cameraWorldPos.xyz; + float3 viewDir = normalize(camPos - worldPos); + float3 sun = normalize(float3(-1, 1, -1)); + + float3 surfaceColor = cook_torrance(normalize(input.normal), viewDir, sun, 0.7f, 0.1f, diffuseColor.rgb, diffuseColor.rgb); + + return float4(surfaceColor + ambient * diffuseColor, 1); +} \ No newline at end of file diff --git a/LEngine/shaders/gizmos.fx b/LEngine/shaders/gizmos.fx new file mode 100644 index 0000000..5c63d54 --- /dev/null +++ b/LEngine/shaders/gizmos.fx @@ -0,0 +1,32 @@ +struct VS_INPUT +{ + float4 position : POSITION; + float4 color : COLOR; +}; + +struct VS_OUTPUT { + float4 position : SV_POSITION; + float4 color : TEXCOORD0; +}; + +cbuffer TestBuffer : register(b3) { + float4x4 mWorld; + float4x4 mView; + float4x4 mProjection; + float alphaMul; +} + +VS_OUTPUT main_vs(VS_INPUT v) { + VS_OUTPUT o; + + float4x4 wvp = mul(mul(mProjection, mView), mWorld); + o.position = mul(wvp, float4(v.position.xyz, 1)); + o.color = v.color; + return o; +} + +float4 main_ps(VS_OUTPUT input) : SV_Target{ + float4 color = input.color; + color *= alphaMul; + return color; +} \ No newline at end of file diff --git a/LEngine/shaders/lighting/cook_torrance_term.inc b/LEngine/shaders/lighting/cook_torrance_term.inc new file mode 100644 index 0000000..460277d --- /dev/null +++ b/LEngine/shaders/lighting/cook_torrance_term.inc @@ -0,0 +1,70 @@ +#ifndef COOK_TORRANCE_TERM +#define COOK_TORRANCE_TERM + +float4 cook_torrance( + in float3 normal, + in float3 viewer, + in float3 light, float roughness_value, float ref_at_norm_incidence, float3 cSpecular, float3 cDiffuse) +{ + // Compute any aliases and intermediary values + // ------------------------------------------- + float3 half_vector = normalize( light + viewer ); + float NdotL = saturate( dot( normal, light ) ); + float NdotH = max( dot( normal, half_vector ) , 1.0e-7); + float NdotV = saturate( dot( normal, viewer ) ); + float VdotH = saturate( dot( viewer, half_vector ) ); + float r_sq = roughness_value * roughness_value; + + + + // Evaluate the geometric term + // -------------------------------- + float geo_numerator = 2.0f * NdotH; + float geo_denominator = VdotH; + + float geo_b = (geo_numerator * NdotV ) / geo_denominator; + float geo_c = (geo_numerator * NdotL ) / geo_denominator; + float geo = min( 1.0f, min( geo_b, geo_c ) ); + + + + // Now evaluate the roughness term + // ------------------------------- + float roughness; + float roughness_a = 1.0f / ( 4.0f * r_sq * pow( NdotH, 4 ) ); + float roughness_b = NdotH * NdotH - 1.0f; + float roughness_c = r_sq * NdotH * NdotH; + roughness = roughness_a * exp( roughness_b / roughness_c ); + + + // Next evaluate the Fresnel value + // ------------------------------- + float fresnel = pow( 1.0f - VdotH, 5.0f ); + fresnel *= ( 1.0f - ref_at_norm_incidence ); + fresnel += ref_at_norm_incidence; + + + + // Put all the terms together to compute + // the specular term in the equation + // ------------------------------------- + float3 Rs_numerator = ( fresnel * geo * roughness ); + float Rs_denominator = max(1.0e-7, NdotV * NdotL); + float3 Rs = Rs_numerator/ Rs_denominator; + + + + // Put all the parts together to generate + // the final colour + // -------------------------------------- + + + Rs = max(0, Rs); + float3 final = max(0.0f, NdotL) *cDiffuse + (1 * Rs ); + + // Return the result + // ----------------- + return float4( final, 1.0f ); +} + +#endif \ No newline at end of file diff --git a/LEngine/shaders/red_shader.fx b/LEngine/shaders/red_shader.fx new file mode 100644 index 0000000..d2ab3fb --- /dev/null +++ b/LEngine/shaders/red_shader.fx @@ -0,0 +1,47 @@ +struct VS_INPUT +{ + float4 vPosition : POSITION; + float3 normal : NORMAL; + float2 uv0 : UV0; + float2 uv1 : UV1; +}; + +struct VS_OUTPUT { + float4 vPosition : SV_POSITION; + float3 normal : TEXCOORD0; + float2 uv0 : TEXCOORD1; + float2 uv1 : TEXCOORD2; +}; + +cbuffer TestBuffer : register(b3) { + float4x4 mWorld; + float4x4 mView; + float4x4 mProjection; +} + +Texture2D tex : register(t0); +Texture2D tex2 : register(t1); +SamplerState MeshTextureSampler; + +VS_OUTPUT main_vs(VS_INPUT v) { + VS_OUTPUT o; + + float4x4 wvp = mul(mul(mProjection, mView), mWorld); + + o.vPosition = mul(wvp, float4(v.vPosition.xyz, 1)); + + o.normal = mul((float3x3)mWorld, v.normal); + o.uv0 = v.uv0; + o.uv1 = v.uv1; + return o; +} + + +float4 main_ps(VS_OUTPUT input) : SV_Target +{ + float3 sun = normalize(float3(-1,1,-1)); + float lit = dot(sun, input.normal); + float3 diffuse = float3(1, 0, 0); + + return float4(diffuse * lit, 1); +} \ No newline at end of file diff --git a/LEngine/shaders/shader.fx b/LEngine/shaders/shader.fx new file mode 100644 index 0000000..b09811c --- /dev/null +++ b/LEngine/shaders/shader.fx @@ -0,0 +1,63 @@ +struct VS_INPUT +{ + float4 vPosition : POSITION; + float3 normal : NORMAL; + float2 uv0 : UV0; + float2 uv1 : UV1; +}; + +struct VS_OUTPUT { + float4 vPosition : SV_POSITION; + float3 normal : TEXCOORD0; + float2 uv0 : TEXCOORD1; + float2 uv1 : TEXCOORD2; + float3 worldPos : TEXCOORD3; + float3 viewPos : TEXCOORD4; +}; + +cbuffer TestBuffer : register(b3) { + float4x4 mWorld; + float4x4 mView; + float4x4 mProjection; + float4 cameraWorldPos; +} + +Texture2D diffuse : register(t0); +SamplerState MeshTextureSampler : register(s0); + + + +VS_OUTPUT main_vs(VS_INPUT v){ + VS_OUTPUT o; + + + float4x4 wv = mul(mView, mWorld); + float4x4 wvp = mul(mul(mProjection, mView), mWorld); + + o.vPosition = mul(wvp, float4(v.vPosition.xyz,1)); + + o.normal = mul((float3x3)mWorld, v.normal); + o.uv0 = v.uv0; + o.uv1 = v.uv1; + o.worldPos = mul((float3x3)mWorld, v.vPosition.xyz); + o.viewPos = mul(wv, float4(v.vPosition.xyz, 1)); + return o; +} + +#include "lighting/cook_torrance_term.inc" + +float4 main_ps(VS_OUTPUT input) : SV_Target +{ + float3 ambient = float3(0.3f, 0.3f, 0.4f); + + float4 diffuseColor = diffuse.Sample(MeshTextureSampler, input.uv0); + return diffuseColor; + float3 worldPos = input.worldPos; + float3 camPos = cameraWorldPos.xyz; + float3 viewDir = normalize(camPos - worldPos); + float3 sun = normalize(float3(-1, 1, -1)); + + float3 surfaceColor = cook_torrance(normalize(input.normal), viewDir, sun, 0.7f, 0.1f, diffuseColor.rgb, diffuseColor.rgb); + + return float4(surfaceColor + ambient * diffuseColor, 1); +} \ No newline at end of file diff --git a/LEngine/textures/1_store.dds b/LEngine/textures/1_store.dds new file mode 100644 index 0000000..93d630a Binary files /dev/null and b/LEngine/textures/1_store.dds differ diff --git a/LEnginePlayer/LEnginePlayer.cpp b/LEnginePlayer/LEnginePlayer.cpp new file mode 100644 index 0000000..76a04e0 --- /dev/null +++ b/LEnginePlayer/LEnginePlayer.cpp @@ -0,0 +1,7 @@ + + +int main() +{ + return 0; +} + diff --git a/LEnginePlayer/LEnginePlayer.vcxproj b/LEnginePlayer/LEnginePlayer.vcxproj new file mode 100644 index 0000000..c3b587e --- /dev/null +++ b/LEnginePlayer/LEnginePlayer.vcxproj @@ -0,0 +1,90 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {845A038A-8163-4851-95E1-78EFFD5F0AAF} + Win32Proj + LEnginePlayer + + + + Application + true + v140 + Unicode + + + Application + false + v140 + true + Unicode + + + + + + + + + + + + + + + true + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + ../LEngine;../../nettlemath;../../nativelinq/nativelinq/nativelinq; + + + Console + true + ../Debug; + LEngine.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + ../LEngine;../../nettlemath;../../nativelinq/nativelinq/nativelinq; + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index 3c9d941..0e34532 100644 --- a/README.md +++ b/README.md @@ -1,2 +1 @@ -# LEngine - +# LEngine \ No newline at end of file diff --git a/doc/CppAMPOpenSpecificationV12.pdf b/doc/CppAMPOpenSpecificationV12.pdf new file mode 100644 index 0000000..895adca Binary files /dev/null and b/doc/CppAMPOpenSpecificationV12.pdf differ diff --git a/doc/obj_spec.pdf b/doc/obj_spec.pdf new file mode 100644 index 0000000..d9a6ada Binary files /dev/null and b/doc/obj_spec.pdf differ